# ADR-0002: 라우팅 거리, 순서 및 우회 규칙 ## Status Accepted ## Date 2026-02-27 ## Context KernBench Graph Latency Simulator는 서로 다른 아키텍처·토폴로지에 대한 커널 실행 시간을 비교해야 하며, 그래프 순회로부터 end-to-end 레이턴시를 계산하여 이를 달성한다. 의미 있는 비교를 지원하려면: - 라우팅이 결정론적이어야 한다 - 레이턴시가 실제 인터커넥트 구조를 반영해야 한다 - 로컬과 리모트 트래픽이 구분 가능해야 한다 - "우회(bypass)" 최적화가 디버깅 가능성이나 정확성을 훼손해서는 안 된다 또한 시뮬레이터는 소프트웨어가 관리하는 메타데이터 및 제어 경로를 가리는 숨겨진 지름길을 피하는 것을 목표로 한다. ## Decision ### D1. 거리(distance)는 hop 수가 아니라 누적 레이턴시이다 - 라우팅 "거리"는 **노드별·링크별 레이턴시의 합**으로 정의된다. - 순서 결정이나 경로 선택에 hop 수만을 사용해서는 안 된다. - 크기 인지(size-aware) 직렬화 레이턴시(bytes / BW)가 거리에 기여한다. ### D2. 라우팅 순서는 그래프 순회에서 유도된다 - 선택된 경로는 구성된 그래프와 라우팅 정책 하에서 누적 레이턴시가 최소인 경로이다. - 동일 입력(토폴로지 + 정책 + 요청)에 대해 결정론적 순서가 보장되어야 한다. ### D3. 우회는 명시적이며 그래프로 표현된다 - 모든 경로는 그래프에 명시적으로 표현되며 레이턴시 누적의 대상이 되어야 한다. - 예: PE_DMA는 NOC 라우터 메시(ADR-0017 D7)에 연결된다. 모든 목적지 (HBM, 공유 SRAM, 큐브 간 UCIe)는 명시적 메시 hop을 통해 도달한다. 로컬 HBM 접근은 hop 수가 최소(스위칭 오버헤드만)이며, 리모트 접근은 추가 라우터를 거친다. - 암묵적이거나 "마법 같은" 우회 경로는 금지된다. ### D4. end-to-end 레이턴시가 0인 경로는 없다 - 모든 라우팅 요청은 **end-to-end** 레이턴시가 > 0이어야 한다. - 개별 패브릭 세그먼트(예: NOC hop)는 패브릭이 분산되어 있고 해당 granularity에서 거리가 의미가 없을 때 distance_mm = 0을 가질 수 있다. 이는 같은 경로상의 다른 컴포넌트(예: PE_DMA, SRAM, UCIe 엔드포인트)가 0이 아닌 레이턴시에 기여하여 end-to-end 불변성을 유지하므로 허용된다. - end-to-end가 완전히 0 레이턴시인 경로는 금지된다. 단, 명시적으로 표시된 테스트 전용 stub만 예외이다. ### D5. 정책과 토폴로지의 책임 분리 - 토폴로지 빌더: - 노드와 링크 및 그들의 레이턴시/BW 파라미터를 정의한다 - 라우팅 정책: - 디코딩된 도메인을 바탕으로 사용 가능한 그래프 경로 중에서 선택한다 - 라우팅 정책은 누락된 링크를 가정해서는 안 된다. 누락된 연결성은 토폴로지 구성 오류이다. ### D6. 소프트웨어 관리 라우팅 메타데이터 금지 - 라우팅 결정은 그래프 모델 외부에서 거리·hop 수·순서를 추적하는 요청별 소프트웨어 관리 메타데이터에 의존해서는 안 된다. - 모든 거리·순서 계산은 순회 자체에서 유도된다. ## Alternatives Considered 1) **Hop 수 기반 라우팅** - 기각: 이질적인 레이턴시·BW를 무시하고 아키텍처 차이를 잘못 표현한다. 2) **암묵적 로컬 지름길** - 기각: 디버깅 가능성을 해치고 순회 기반 레이턴시 원칙을 위반한다. 3) **소프트웨어 관리 거리 메타데이터** - 기각: 제어 오버헤드를 증가시키고 라우팅 시맨틱을 모호하게 만든다. ## Consequences ### 긍정적 - 명확하고 디버깅 가능한 hop-by-hop 트레이스 (SPEC R2, R4). - 아키텍처 비교가 실제 인터커넥트 구조를 반영한다. - 라우팅 동작이 재현 가능하고 결정론적이다. ### 트레이드오프 / 비용 - 그래프 구성이 정확하고 완전해야 한다. - 우회 모델링이 명시적 그래프 표현을 요구하므로 토폴로지 기술이 약간 더 복잡해진다. ## Implementation Notes (Non-normative) - 권장 책임 분담: - 그래프 빌더: 필요한 모든 경로가 존재함을 보장. - 라우터: 디코딩된 도메인과 정책을 바탕으로 다음 hop 선택. - 테스트가 검증해야 할 항목: - end-to-end 레이턴시 > 0 - 동일 입력에 대한 결정론적 라우팅 - 우회 경로가 출력 트레이스에 명시적으로 나타남 ## Links - SPEC.md: R1 (라우팅), R2 (레이턴시), R3 (토폴로지), R5 (다중 도메인 통신) - ADR-0001: PhysAddr 레이아웃 및 디코딩 계약