인텔이 2022년 6월 13일의 VLSI 심포지엄 2022에서 발표한 논문인 An 8-core RISC-V Processor with Compute near Last Level Cache in Intel 4 CMOS입니다. 인텔 4 CMOS 공정으로 만든 라스트 레벨 캐시와 8코어 RISC-V를 소개하는 글입니다.
인텔 4 CMOS 공정이 이 정도까지 왔다는 데 의의를 두면 되겠습니다. 물론 여기서 중요한 건 An 8-core RISC-V Processor나 in Intel 4 CMOS가 아니라 with Compute near Last Level Cache 부분입니다. PIM(Processor In Memory) 기술에 대한 논문에 가깝습니다.
왼쪽이 현재 인텔 프로세서, 오른쪽이 인텔이 이번에 공개한 컴퓨트 니어 메모리 개념입니다. 컴퓨트 유닛을 어디에 두는지에 따라서 효율과 용량, 대역폭이 달라지거든요.
인텔은 라스트 레벨 캐시(LLC) 안에 컴퓨트 유닛(CNC)를 넣어 고성능, 광대역, 대용량의 균형을 고려했습니다. 그리고 이 효과를 시험하기 위해 RISC-V 코어를 썼습니다.
코어 아키텍처의 링버스가 아니라 2D 메시 구성입니다. 8개의 64비트 RSIC-V 코어에 64KB SRAM과 CNC를 조합해 배치했습니다. L2 캐시의 용량은 512KB, 코어마다 L1 명령어/데이터 캐시만 있습니다. 그리고 이 CNC는 256비트 와이드의 단순한 IMD이며 MAC 연산만 가능합니다. 그리고 LLC에 로드/스토어, CNC의 레지스터 파일 읽기/기록(RDCNC/WRCNC)의 5가지 명령만 가능한 매우 단순한 코어입니다.
메모리 액세스 리퀘스트를 바로 보낼 수 있으며 CNC와 거기에 인접한 LLC 사이에서만 연산이 이루어지는 단순한 구조입니다.
CNC multiplies an 8×8 INT8 Matrix by an 8×1 INT8 Vector and accumulates the INT32 result in RFCNC. 8x8 행렬과 8x1 행렬을 곱셈해 그 결과를 INT32 값으로 범용 레지스터에 보냅니다.
RSIC-V로 만든 건 구현이 쉬워서입니다. 이번에 기반으로 삼은 건 CVA6, 시스템 베릴로그로 만든 인 오더/6스테이지 파이프라인의 간단한 구성입니다. 프론트엔드 2스테이지, ID, 이슈, Ex, 커밋이 1스테이지이며, 이슈에서 5명령 동시 발행이 가능하지만 명령어 큐는 1명령/사이클이기에 실질적으로는 인 오더 구조입니다. RSIC-V가 복잡한 명령어 아키텍처를 탑재하기보다, 복잡한 처리는 내부에서 처리하고 명령어 세트 자체는 단순하게 하자는 컨셉을 쓰고 있습니다.
검은색이 기본 CVA6이고 다른 색으로 표기한 부분이 인텔이 수정한 곳입니다. 명령 실행 유닛은 수정하지 않고, CNC를 구동하기 위해 명령 디코더에 CNC 명령을 추가했으며, 메모리 물리 어드레스 알림과 CNC 커맨드 발행 유닛을 이슈 포트에 추가했습니다. x86에서 이렇게 개조하려면 내부 구조가 복잡해지지만 RISC-V에선 커스텀 명령을 추가하기 자유롭고, 기반으로 쓸 코어도 무료 배포하고 있기에 시험용으로 RISC-V를 썼습니다.
LLC에서 달라진 점. 기본적인 RISC-V 코어는 수정하지 않았고, CNC를 쓰지 않으면 평범한 CVA6 코어로 작동하기에 RISC-V용 소프트웨어를 바로 실행할 수 있습니다. SECDED(Single Error Collection/Double Error Detection)은 ECC 기능에 기본 제공하는 것입니다.
인텔은 인텔 4 CMOS 공정을 써서 이 프로세서를 만들었습니다. CNC를 추가하면서 전체 면적은 1.4% 정도 늘어난 1.92제곱mm입니다.
프로그램의 대부분은 RISC-V 컴파일러를 써서 C++로 만들었고, 새로 추가한 CNC 부분은 인라인 어셈블러로 만들었습니다. 왼쪽 소스에서 CNMWR(), CNMMAC(), CNMRF()가 인라인 어셈블러의 일부입니다.
0.55V에서 350MHz, 0.75V에서 1.15GHz로 작동합니다. CVA6 같은 단순한(파이프라인 1스테이지의 처리가 크고 클럭을 높이기 쉬운 구조) 형태임을 감안해 주세요. 성능은 8코어 1GHz에서 75.8GOPS, 1GHz에서 소비 전력은 400mW니까 총 성능은 189.5GOPS/W입니다. 500MHz로 클럭을 낮추면 285GOPS/W, LLC의 소비 전력은 1.6TOPS/W입니다.
CNC는 범용 프로세서보다는 AI 같은 뉴럴 네트워크 연산에 특화된 구조입니다. 그래서 CVA6의 내장 엔진(스칼라 엔진, 빨간색으로 표시), CNC(파란색)의 성능을 비교했습니다. CNC에서 성능이 높아지며 소비 전력은 스칼라 엔진보다 낮습니다. 물론 CVA6이 이런 용도로 쓰라고 만든 건 아닙니다만.
32비트 RISC-V 코어를 사용한 경우입니다. 레이턴시가 범용 프로세서의 1/4이며 성능은 260배, 에너지 효율은 35배입니다.
인텔이 이걸 상용화할 가능성은 적지만 어쨌건 인텔 4 공정은 차근차근 개발 중입니다.