23 lines
1.1 KiB
Markdown
23 lines
1.1 KiB
Markdown
|
|
# Phase 6.20 Plan (2025-10-23)
|
|||
|
|
|
|||
|
|
目的: Large(64KB–1MB) を「よりシンプルで速いホットパス」に寄せ、free/ミス時の残コストを更に削減。
|
|||
|
|
|
|||
|
|
方針(シンプル/綺麗/効く)
|
|||
|
|
- TC を配列リング化(per‑thread, LIFO)
|
|||
|
|
- free は TLS メタデータ(配列)への書込みのみ。ブロックへの `next` 書込みは “spill時” に限定
|
|||
|
|
- run 採用時の owner 更新
|
|||
|
|
- page‑desc.owner_tid を run 採用/バッチpop採用時に現在スレへ更新 → same‑thread free 命中率UP
|
|||
|
|
- remote‑first の起動条件の明確化
|
|||
|
|
- `ring->top < trigger` かつ `remote_count>0` の時だけ trylock/batch‑pop。`__builtin_prefetch` を remote_head に
|
|||
|
|
- 中央は run 在庫専用(継続)
|
|||
|
|
- ブロック単位は扱わず、採用後は TLS 直詰め
|
|||
|
|
|
|||
|
|
ENV 追加
|
|||
|
|
- `HAKMEM_L25_TC_CAP` — TC リング容量(既定 64)
|
|||
|
|
- `HAKMEM_L25_RING_TRIGGER` — remote‑first 起動のリング残トリガ(既定 2)
|
|||
|
|
|
|||
|
|
計測
|
|||
|
|
- 10s/4T, timing OFF で `RUN_FACTOR={3,4,5} × TC_SPILL={8,16,24,32} × TC_CAP={32,64,128}`
|
|||
|
|
- 最良構成で head‑to‑head 保存
|
|||
|
|
|