v001 → v002 설계 근거

pccx v001 은 구현 직전 단계 까지 갔지만 최종적으로 실장되지 않고 docs/archive/experimental_v001/ 로 이동되었습니다. 본 페이지는 어떤 아키텍처적 결함을 발견했고 v002 가 이를 어떻게 해소했는지를 정리합니다.

1. v001 의 핵심 결함

결함

현상

코어 역할 분담 모호

Matrix / Vector / CVO 코어의 경계가 애매하여, 같은 연산을 여러 코어가 중복 지원하거나 어느 코어에도 정확히 맞지 않는 연산이 존재.

불필요한 버스 다수

Weight / Activation / 중간 결과가 서로 다른 버스를 통해 교차 이동 하여 라우팅 혼잡 및 타이밍 악화.

L2 ↔ Global Cache 역할 중복

두 레벨의 책임이 중첩되어, 동일 데이터가 양쪽에 복제되고 일관성 유지 로직이 추가 비용을 유발.

HP 포트 배치 비효율

단일 시스톨릭 어레이에 1 개의 HP 포트만 매핑되어, 외부 250 MHz 속도가 내부 400 MHz 소비 속도의 상한을 좁혔음.

시스톨릭 어레이 미최적화

1 DSP = 1 MAC 구조로 DSP48E2 의 비트 공간 잉여를 활용하지 못함.

2. v002 의 응답

v002 는 위의 결함 각각에 대해 다음과 같이 대응했습니다.

대응

설명

3 코어 체제

GEMV, GEMM, SFU 로 코어를 명확히 분리. 각 코어는 L2 Cache, Weight Buffer, 파이프라인 레지스터 / FIFO 로 연결되어 역할 중복 제거.

버스 단순화

WEIGHT BUS / ACTIVATION BUS 두 축으로 통일. 양 축은 물리적으로 직교 배치되어 라우팅 충돌 방지.

L2 중앙 집중화

Global Cache 역할을 L2 에 흡수하고 플로어플랜 중앙에 배치. 상·하 슬라이스가 대칭 접근.

HP 포트 분산

HP2 / HP3 두 포트를 독립 슬라이스에 할당하여 병목 해소.

듀얼 채널 비트 패킹

1 DSP = 2 MAC (DSP48E2 W4A8 비트 패킹과 부호 복원) — 시스톨릭 어레이 전체가 클럭 당 2,048 multiply + 2,048 accumulate 수행.

3. 속도 향상 분석 — 3.125 배

v001 대비 v002 의 이론 처리량 개선은 다음 세 요소의 합성으로 설명됩니다.

개선 항목

배수

근거

내부 클럭 향상

× 400 / 250 = 1.6

외부 AXI 250 MHz → 내부 코어 400 MHz 로 분리.

HP 포트 2 개화

(이미 400 MHz 도메인에서 소비)

4 개 HP 포트 중 2 개 (HP2 / HP3) 를 상·하 슬라이스에 독립 할당, 가중치 공급 대역폭 2 배.

비트 패킹

× 2

1 DSP = 2 MAC 동시 수행.

이 세 요소를 곱해 1.6 × 2 × (공급 병목 해소) ≈ 3.125 배의 유효 처리량 향상이 도출됩니다.

3.1 부하 관점의 유도

v001 의 경우: 250 MHz × 1 HP × 1 MAC/DSP = 250 단위 처리량. v002 의 경우: 400 MHz × 2 MAC/DSP, 그리고 HP 포트가 250 MHz × (HP2+HP3) 로 쌓이는 버퍼 위에서 400 MHz 로 소비 → 내부 소비율 기준 800 단위.

\[\frac{800}{250} \;=\; \mathbf{3.125\,\times}\]

즉, 외부 포트 속도 자체는 변하지 않지만, 버퍼에 쌓고 내부에서 빠르게 소비 + 한 사이클에 두 번의 MAC 를 수행함으로써 시스톨릭 어레이가 받는 유효 처리량이 3.125 배가 됩니다.

3.2 매 클럭 내부 Throughput 의 구성

        flowchart LR
  subgraph ext[외부 250 MHz 도메인]
    HP2[AXI HP2] --> BUF[Weight Buffer<br/>CDC FIFO]
    HP3[AXI HP3] --> BUF
  end
  subgraph core[내부 400 MHz 도메인]
    BUF -->|broadcast| SA[Systolic Array<br/>32×32 · 1 DSP = 2 MAC<br/>cascade break @ 16 행]
    SA --> ACC[Result Accumulator<br/>819 GMAC/s peak]
  end
    

32 × 32 단일 격자가 1,024 PE × 2 MAC = 2,048 MAC/clk 을 수행하고, 400 MHz 로 동작하여 819 GMAC/s 이론 피크가 산출됩니다.

4. 새로운 트레이드오프

속도 향상의 대가로 v002 는 다음 제약을 수용합니다.

제약

설명

가중치 정밀도 제한

W4 초과 시 guard bits 부족으로 N_max 급감. W5/W6 이 필요하면 별도 모드 설계 필요.

K-split 필요

K > 4,096 인 레이어는 드라이버 계층에서 타일 분할.

부호 복원 후처리

PE 당 1-bit adder + 23-bit 분리 로직이 추가되지만 throughput 영향 없음.

CDC 복잡도

250 MHz ↔ 400 MHz async FIFO 설계 및 검증 비용.

5. 아카이브 된 v001 과의 요약 비교

항목

v001 (Archived)

v002

설계 편중

GEMM 중심 (프리필 최적화)

GEMM · GEMV · SFU 3 코어 체제

L2 캐시 위치

외곽

중심 배치, 양측 대칭 인터커넥트

Global Cache

별도 블록

L2 에 통합

양자화

W4A16 (BF16 activation)

W4A8 (INT8 activation)

HP 포트

단일 SA 에 1 개

HP2 / HP3 분산 (상·하 슬라이스)

DSP 활용

1 DSP = 1 MAC

1 DSP = 2 MAC

이론 피크 (400 MHz)

~320 GMAC/s

819 GMAC/s (×2.56 실측 기대)