다음은 미드 코어(mid-core), 즉 Olympus 내부의 리네임(rename) 영역이다. 이 부분은 CPU의 다른 영역이 대기하는 동안에도 독립적으로 처리할 수 있는 작업을 찾아내도록 설계됐다. 이를 통해 리오더 버퍼(reorder buffer) 는 실행할 명령어를 지속적으로 적재하며, 비순차 실행(out-of-order execution) 의 깊이를 더욱 확대할 수 있다. 리네임 및 할당 맵(rename and allocation maps)은 명령어를 실제 하드웨어 자원에 매핑하며, 이러한 기능들은 함께 명령어 수준 병렬성(instruction parallelism)을 극대화해 특히 실행 흐름이 갑자기 바뀌는 소프트웨어 워크로드에서도 높은 실행 효율을 유지하도록 돕는다.
이렇게 준비된 명령어의 실행은 NVIDIA의 실행 엔진(execution engine) 이 담당한다. 명령어가 마이크로오퍼레이션(microoperations) 으로 분해되면, 각각의 마이크로오퍼레이션은 해당하는 스칼라(scalar) 또는 벡터(vector) 처리 엔진에 할당된다. Olympus 실행 엔진은 동적 스케줄링(dynamic scheduling) 을 통해 스칼라, 벡터, 부동소수점, 암호화, 로드/스토어 자원에 대한 마이크로오퍼레이션을 낮은 지연 시간으로 분배해 초당 처리 가능한 명령어 수를 크게 높인다. NVIDIA는 이 부분에 대해서는 많은 정보를 공개하지 않았는데, 새로운 CPU 코어 설계의 핵심 혁신이 대부분 이 영역에 담겨 있기 때문으로 보인다.
시스템을 완성하는 캐시 서브시스템(cache subsystem) 은 CPU 외부의 데이터를 빠르게 가져오도록 설계됐다. 에이전트형 AI 워크로드는 CPU 캐시에 모두 담을 수 없는 데이터를 필요로 하기 때문에 부담이 크며, 희소 데이터(sparse data), 데이터베이스, 런타임 객체(runtime objects), 검색 인덱스(retri*!* indexes) 등 다양한 데이터 구조를 높은 처리량으로 불러와야 한다. Olympus 코어는 깊은 캐시 계층 구조(deep cache hierarchy) 와 여러 개의 프리페치 엔진(prefetch engine) 을 통해 데이터 접근 속도를 높이며, 그래프 데이터 처리를 위한 전용 프리페처(prefetcher)도 갖추고 있다.
기존 동시 멀티스레딩(SMT) 을 지원하는 x86 CPU와 Olympus의 가장 큰 차이점 중 하나는 자원 관리 방식이다. 기존 x86 CPU는 하나의 코어를 두 개의 하드웨어 스레드가 공유하는 구조를 사용한다. 그러나 현대적인 환경에서는 두 스레드가 동일한 자원을 놓고 경쟁하는 '노이지 네이버(noisy neighbor)' 현상이 발생해 실행이 지연될 수 있다. NVIDIA는 Olympus 코어의 넓은 실행 폭을 활용해 각 스레드에 자원을 할당하기 전에 미리 자원을 분할하는 방식의 SMT를 적용했다. 이를 통해 모든 작업이 효율적으로 분배되도록 했다고 설명했다.
이 모든 요소를 연결하는 것은 NVIDIA의 Scalable Coherency Fabric(SCF) 이다. SCF는 3.4TB/s의 패브릭 대역폭을 제공하며, CPU 다이 전체에 걸쳐 164MB 통합 L3 캐시를 연결한다. 외부 메모리는 SOCAMM2 LPDDR5X를 사용하며, 총 1.2TB/s의 메모리 대역폭을 제공한다. NVIDIA는 CPU 하나당 최대 1.5TB의 LPDDR5X 메모리를 지원한다고 밝혔다. 또한 NVIDIA는 AMD의 EPYC 'Turin' 9755 CPU와의 코어당 성능 비교 결과도 일부 공개했으며, 특정 워크로드에서는 최대 1.8배 높은 성능을 제공한다고 주장했다.
|