DynamIQ 세대의 CPU 코어 세트를 도입
ARM은 대만에서 개최된 컴퓨텍스에서 새로운 CPU 코어 Cortex-A75, Cortex-A55와 GPU 코어 Mali-G72를 발표했습니다. Cortex-A75는 플래그십 고성능 CPU 코어이며, Cortex-A55가 저전력에 작은 코어, Mali-G72은 기존의 G71 아키텍처 확장 버전입니다.
매년 이맘때쯤 ARM CPU 코어가 새로 나오는 건 늘 있던 일이나 이번에는 지금까지와 다른 점이 있습니다. Cortex-A75 / A55은 지금까지 나왔던 것처럼 단순한 아키텍처 업데이트가 아니라 핵심 플랫폼 레벨에서의 변화입니다.
ARM 코어 1,000억개 시대를 향한 프로세서
컴퓨팅의 변화에 대응
DynamIQ 세대의 CPU 코어를 발표
ARM은 CPU 코어 클러스터 아키텍처의 혁신인 DynamIQ를 도입합니다. DynamIQ는 CPU 클러스터의 구조가 근본적으로 바뀌기에 DynamIQ에 대응한 새로운 CPU 코어가 필요합니다. Cortex-A75과 Cortex-A55는 DynamIQ에 대응하는 최초의 CPU 코어가 됩니다. 즉 DynamIQ과 Cortex-A75 / A55의 조합으로 ARM의 새로운 Cortex-A 패밀리가 시작됩니다. 구체적으로는 Cortex-A75 / A55과 기존의 Cortex-A 코어를 함께 구성하지 못합니다. 명령어 집합도 새로운 ARMv8.2로 달라졌습니다. Cortex-A 패밀리가 다시 시작한다고 봐도 될 것입니다.
DynamIQ에서는 ARM의 헤테로지니어스 멀티 코어 구성인 big.LITTLE을 보다 유연하고 효율적으로 실현할 수 있습니다. 최대 8코어 구성에, 빅코어 1개에 리틀코어 7개 같은 조합도 가능합니다. 또한 CPU 코어 이외에 다른 가속 장치와의 연결도 효율적이고 쉬워집니다. 또한 클러스터 아키텍처의 변화에 따라 캐시 계층이 효율적으로 바뀝니다.
DynamIQ 컴퓨팅의 변화에 대응
새로운 유연한 클러스터 아키텍처 DynamIQ
가속 장치와의 통합을 효율적으로 수행하는 DynamIQ
DynamIQ에 의해 big.LITTLE 구성이 바뀌다
Cortex-A75 / A55은 DynamIQ의 도입으로 CPU 아키텍처가 달라지는 첫번째 세대의 CPU 코어입니다. 모두 기존 세대의 CPU 아키텍처를 기반으로 하지만 마이크로 아키텍처가 확장되며 특히 캐시 계층 구조가 크게 바뀌었습니다. Cortex-A75는 기존의 Cortex-A72 / 73보다 성능이 향상되고, Cortex-A55는 기존의 Cortex-A53보다 전력 효율이 올랐습니다.
두 CPU 모두 명령어 세트 확장 버전은 ARMv8.2를 구현해, 딥 러닝을 의식한 명령 확장과 가속 장치와의 통합이 쉬워졌습니다. A75과 A55 모두 새로운 세대에 걸맞는 마이크로 아키텍쳐가 됐습니다. 그러나 DynamIQ 세대의 하이엔드 CPU 코어로 새로 개발하는 플래그쉽 CPU 코어(코드네임 Zeus)는 이번에 발표되지 않았습니다.
3명령 디코딩 코어. Cortex-A75
ARM의 Cortex-A CPU 코어 마이크로 아키텍처는 명령 디코드 및 스케줄에 따라 5가지로 구분할 수 있습니다.
(1) 3명령 디코딩의 아웃 오브 오더 실행 코어 Cortex-A15 / 57 / 72 / 75 계열
(2) 2명령 디코딩의 아웃 오브 오더 코어 Cortex-A9 / 12 / 17 / 73 계열
(3) 2명령 디코딩의 인 오더 실행 코어 Cortex-A53 / 55 계열
(4) 일부 2명령 디코딩의 인 오더 코어 Cortex-A7 / 35 계열
(5) 1명령 디코드의 인 오더 코어 Cortex-A5 / 32 계열
ARM의 Cortex-A 패밀리
이번에 개선된 건 하이엔드 3 명령 디코딩의 아웃 오브 오더 코어 Cortex-A75와 2 명령 디코드의 인 오더 코어 Cortex-A55입니다. 즉 프리미엄 big.LITTLE 구성에 사용되는 코어의 조합이 바뀌었습니다. 보급형에서 쓰이는 일부 2명령 디코드 인 오더 코어가 먼저 바뀌었습니다.
새로운 프리미엄 코어 Cortex-A75
Cortex-A75는 폭 넓은 용도에 대응
Cortex-A75는 ARM의 새로운 플래그쉽 CPU 코어입니다. 3-way 명령 디코드 슈퍼 스칼라 아키텍처이며, 명령 병렬도로 따지면 Cortex-A72 급이 됩니다. 2 명령 디코딩의 Cortex-A73는 CPU의 마이크로 아키텍처 레벨에서 디코딩 처리 수준이 다릅니다. Cortex-A75는 더 넓은 명령 디코딩으로 처리량을 높이는 마이이크로 아키텍처의를 쓴 CPU입니다.
따라서 Cortex-A75는 Cortex-A73와 같은 수준의 전력 효율에서 싱글 스레드 성능이 20% 높아집니다. 또한 캐시 계층 구조가 크게 개선되었습니다. 기존의 Cortex-A는 코어마다 전용 L1 캐시가 있고, 클러스터에서 공유하는 L2 캐시의 2레벨 캐시 구성이었습니다. 반면 Cortex-A75는 L1 및 L2가 각 코어 전용으로 구성되며, L3 캐시가 클러스터에서 공유됩니다. DynamIQ 중재 유닛 DynamIQ Shared Unit (DSU)에 의해 공유 캐시가 제어됩니다.
DynamIQ 클러스터 아키텍처
L1 명령 캐시는 64KB에 4-way 세트의 연관 태그 관리인 Virtually indexed, physically tagged (VIPT) 방식을 씁니다. 명령어 인출은 128-bit 폭의 4 명어를 단위로 수행하며, 넓은 폭의 명령어 인출에서 캡쳐한 명령 대기열이 3명령/사이클로 디코딩합니다. 분기 예측은 이번에 0 사이클 분기 예측을 도입했는데, 계층화된 분기 예측의 L1 예측 대기 시간이 단축됐으리라 추측됩니다. 분기 예측 자체의 지연 시간 단축은 IPC (Instruction-per-Clock)의 향상에 크게 영향을 줍니다.
ARM CPU를 총괄하는 Nandan Nayampally(VP & GM, Compute Product Group, ARM)
딥 러닝을 지원하는 SIMD 명령어 확장
명령 디스패치는 7 포트 큐가 있습니다. 그 구성은 다음과 같습니다.
· 정수 연산 x2
· 분기 x1
· NEON / FPUx2
· 로드 / 스토어 x2
3 명령 디코딩에 정수 연산 유닛이 2 분기로 독립됐다는 점은 Cortex-A72과 같습니다. 그러나 Cortex-A72는 8큐지만 Cortex-A75는 7큐로 줄어들었습니다. 곱셈/나눗셈 파이프 대기열이 다른 대기열과 통합된 것으로 보입니다.
확장된 Cortex-A75 CPU 코어
연산 유닛은 SIMD (Single Instruction, Multiple Data)의 NEON 유닛이 크게 확장되었습니다. 기존의 FP32 32-bit 단정밀도 부동 소수점 연산 이외에 FP16 16-bit 반정밀도 부동 소수점 연산과 int8 8-bit 정수 연산을 지원합니다다. NEON 디바이스 폭은 128-bit로 FP16는 8엘리먼트/사이클의 SIMD가 되고 NEON의 모든 명령을 지원합니 int8는 내적 연산만 지원하는데 이는 신경망 연산에 맞춘 구성입니다.
현재 딥 러닝에 쓰이는 신경망은 데이터 정밀도 FP16의 학습과 추론인데, int8이 추론 단계에서 많이 쓰입니다.
로드 / 스토어 슬롯은 16개로 확장되며 RAW (Read After Write)의 아웃 오브 오더 로드/스토어를 하드웨어 지원합니다. 캐시는 프리 페치가 강화됐습니다. L2는 각 코어마다 256KB 또는 512KB를 독점 사용하며 레이턴시는 L1 3사이클, L2가 8사이클, 공유 L3가 25 사이클이 됩니다. 흥미로운 점은 아토믹 오퍼레이션과 Cache Stashing을 지원한다는 것입니다. 가속기 등의 코어와의 제휴가 효율적으로 바뀌며 RAS 기능도 구현되었습니다.
이렇게 보면 Cortex-A75가 마이크로 아키텍처으로 크게 확장되었음을 알 수 있습니다.
크게 확장된 Cortex-A55 아키텍처
Cortex-A75와 짝을 이루는 Cortex-A55의 마이크로 아키텍처는 Cortex-A53를 기반으로 합니다. 전체 2 명령 디코딩의 인 오더 실행입니다. 그러나 마이크로 아키텍처 자체는 크게 확장됐습니다. 명령 세트는 Cortex-A75와 마찬가지로 딥 러닝을 위한 NEON 명령어 확장을 포함해 ARMv8.2가 됐습니다.
크게 확장된 Cortex-A55 마이크로 아키텍처
전력 효율을 높인 Cortex-A55
임베디드도 의식한 Cortex-A55
CPU의 프론트 엔드에서 Cortex-A55는 분기 예측이 향상된 Cortex-A75와 마찬가지로 0 사이클 분기 예측을 지원합니다. 또한 루프의 끝을 예측하는 루프 종료 프레딕터가 구현됐습니다. 분기 예측은 신경망 기반이나 구현의 상세 정보는 아직 알려지지 않았습니다. L1 명령 캐시는 16 / 32 / 64KB로 설정 가능합니다.
Cortex-A55는 기존의 로드/스토어가 1 유닛이었으나 2유닛으로 확장됐습니다. 또한 로드 / 스토어 대기 시간이 단축됐으며 명령 대기의 패널티가 많이 완화됐습니다. L1 지연 시간은 2 사이클입니다. ALU 파이프에서 로드 / 스토어의 어드레스 생성에 전달할 수 있게 된 것도 대기 시간을 줄이는 요소입니다. L1 데이터 캐시 크기는 16 ~ 64KB로 설정 가능하며 프리페처가 확장됐습니다. Cortex-A75와 마찬가지로 L2 캐시는 코어에 통합됐습니다. L2 크기의 설정 가능한 최대 크기는 256KB. 아토믹 캐시 스태싱도 지원합니다.
흥미로운 것은 RAS 기능의 지원합니다. 캐시에 ECC 구현 뿐만 아니라 데이터 포이즈닝 등의 기능도 구현합니다. 저전력 코어에 RAS를 통합하는 건 자동차처럼 안전성이 중요한 임베디드 분야를 의식한 것입니다.
DynamIQ과 Cortex-A75 / 55, ARMv8.2를 통해 ARM은 차세대 CPU 플랫폼을 시작했습니다. 앞으로는 DynamIQ 기반의 Cortex-A 패밀리의 확충 단계에 들어갑니다. 지금까지 ARM 코어는 기존 클러스터 아키텍처을 확장하고 구성하는 데 어려움이 있었으나, DynamIQ는 그 제한이 없어져 보다 고성능/고효율 CPU 클러스터가 가능하게 됐습니다.