Files
kernbench2/docs/adr-ko/ADR-0004-mem-memory-semantics-local-hbm.md
ywkang 168b0c89f0 ADR: translate adr-ko/ to Korean, fix ADR-0013 slug, refine Status check
Follow-up to the bilingual-structure commit: docs/adr-ko/ now holds
only Korean versions (24 files translated from English placeholders),
ADR-0013 slug uses kebab-case in both folders, and the verify tool
allows translated parenthetical commentary in the Status block.

- Translate 24 English files in docs/adr-ko/ to Korean. The previous
  bilingual-structure commit had left these as English copies because
  their source content was already English; this commit fulfills the
  policy that docs/adr-ko/ contains only Korean.
- Rename ADR-0013 in both adr/ and adr-ko/ from
  ver-verification_strategy.md to ver-verification-strategy.md
  (kebab-case consistency with other ADRs).
- CLAUDE.md (ADR Translation Discipline): clarify that only the
  Status lifecycle keyword (Accepted / Proposed / Stub / Draft /
  Superseded by ADR-NNNN / Merged into ADR-NNNN) must match across
  EN and KO; parenthetical commentary and trailing list items may be
  translated.
- tools/verify_adr_lang_pairs.py: replace byte-equal Status check
  with normalize_status_keyword() which strips parenthetical
  commentary and takes only the first non-empty line.
- tests/test_verify_adr_lang_pairs.py: update existing test names,
  add coverage for translated parenthetical, translated trailing
  list, and Superseded-by-NNNN keyword equality.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 08:17:56 -07:00

79 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ADR-0004: 메모리 시맨틱 및 로컬 HBM 대역폭 보장
## Status
Accepted
## Context
PE↔HBM 동작을 정확하게 모델링하는 것은 커널 레이턴시 추정에 필수적이다.
각 PE는 "로컬 HBM"이라는 개념을 가지며, 이는 중간 온칩 패브릭 대역폭과
무관하게 HBM 전체 대역폭을 보장해야 한다.
## Decision
### D1. 로컬 HBM의 정의
- 각 PE에는 논리적으로 정의된 "로컬 HBM" 영역이 할당된다.
- 로컬 HBM은 NOC 메시(ADR-0017 D4) 내에서 해당 PE의 라우터에 직접 연결된
pseudo-channel 부분집합에 대응한다.
- 경로는: PE_DMA → 로컬 라우터 → HBM_CTRL (스위칭 오버헤드만, 메시 hop 0개).
- 매핑(HBM pseudo-channel → PE 로컬 영역)은 토폴로지 구성에서 유도된다.
### D2. 로컬 HBM 대역폭 보장 계약
- PE에서 자신의 로컬 HBM으로의 접근은 중간 패브릭 대역폭 제한과
무관하게 HBM의 유효 read/write 대역폭 전부를 보장해야 한다.
- 유효 HBM 대역폭 = 스펙 대역폭 × 효율 계수.
효율 계수(`hbm_ctrl.attrs.efficiency`로 설정, 기본값 0.8)는 실세계 DRAM의
비효율(리프레시 사이클, 뱅크 충돌, 페이지 미스 등)을 모델링한다.
예: 256 GB/s 스펙 × 0.8 = 204.8 GB/s 유효 대역폭.
- 토폴로지 빌더는 그래프 구성 시점에 router-to-hbm 에지의 대역폭에
효율 계수를 적용하므로, 이후의 모든 라우팅·레이턴시 계산은 유효 값을
사용한다.
- 이 보장은 다음으로 모델링된다:
- PE-로컬-HBM 상호작용 지점에서 HBM 대역폭을 강제하는 전용 논리 경로
그리고/또는 서비스 모델,
- 명시적으로 모델링된 컴포넌트들을 따라 0이 아닌 레이턴시를 여전히 발생시킨다.
- HBM CTRL 내부 모델링(PC 스트라이핑, cut-through, 스케줄링 충실도)은
ADR-0033 (레이턴시 모델: 가정 및 알려진 단순화)에 통합되어 있다.
여기서의 총 대역폭 보장은 계약으로 유지되며, ADR-0033은 PC 단위 모델이
이를 어떻게 실현하는지와 어떤 스케줄러 효과가 의도적으로 단순화되었는지를
기록한다.
### D3. 리모트 PE HBM 시맨틱 (큐브 내)
- 한 PE가 다른 PE의 로컬 HBM에 접근할 때는 NOC를 거친다:
- PE_DMA → NOC → (패브릭 hop) → 대상 PE의 NOC 포트 → HBM_CTRL
- NOC의 대역폭과 hop 수에 의해 리모트 HBM 접근이 로컬 접근 대비 제한될 수 있다.
### D4. 비로컬 HBM 시맨틱 (큐브 간 / SIP 간)
- PE에서 다른 큐브나 SIP에 있는 HBM으로의 접근은 다음에 의해 제한될 수 있다:
- 큐브 내 NOC 대역폭,
- 큐브 간 UCIe 링크,
- SIP 간 패브릭 (PCIe/UAL).
- 이 경로들은 명시적이고 추적 가능해야 한다.
### D5. 공유 SRAM 시맨틱
- 각 CUBE는 해당 CUBE의 모든 PE가 접근 가능한 공유 SRAM을 포함한다.
- 접근 경로: PE_DMA → NOC → 공유 SRAM.
- 공유 SRAM의 대역폭은 NOC↔SRAM 링크 대역폭으로 제한된다.
- 공유 SRAM은 HBM 주소 공간의 일부가 아니라 별도의 메모리 도메인이다.
## Verification Notes
테스트가 다뤄야 할 케이스:
- 로컬 HBM 케이스: 패브릭 BW 파라미터와 무관하게 대역폭이 HBM 대역폭과 일치
- 리모트 PE HBM 케이스: 레이턴시가 메시 hop 순회를 포함
- 비로컬 케이스(큐브 간/SIP 간): 패브릭/링크 파라미터에 대역폭·레이턴시가 반응
- 공유 SRAM 케이스: NOC 경유 접근이 올바른 대역폭으로 수행됨
## Links
- SPEC R2/R5
- ADR-0002 (거리/순서 및 명시적 우회)
- ADR-0017 D7 (NOC를 통한 PE DMA → HBM 데이터 경로)