loading

ETC.Mobile/News.Security

Arm, Skyleke의 90% 성능에 근접하는 CPU 코어 'Cortex A76'

나에+ 2018. 6. 2. 18:28
반응형

https://pc.watch.impress.co.jp/docs/column/kaigai/1125098.html


■ Skylake의 90%에 달하는 성능을 가진 Cortex-A76


ARM이 만반의 준비를 하여 고성능 CPU코어인 'Cortex-A76(Enyo)'를 출시합니다. ARM이 2017년에 도입한 DynamIQ 플랫폼의 새로운 CPU 코어라고 하며 CPU 마이크로 아키텍쳐를 일신해 4년에 걸쳐 완벽한 설계를 수행했습니다. ARM CPU 코어로는 최초로 4명령 디코드/사이클을 채용(기존 ARM CPU는 최대 3명령 디코드/사이클)해 더 넓어진 명령 디코드 대역을 지니게 되었습니다.


△ 새 CPU 코어 제품군의 기반이 되는 새로운 아키텍처

△ 높은 성능 효율을 가지는 Cortex-A76


디코딩할 수 있는 명령 수가 늘어나면 병렬로 실행할 수 있는 평균 명령어 수(IPC(Instruction-per-Clock)가 늘어나게 됩니다. 그렇기에 그만큼 클럭에 따른 성능 역시 오르게 되죠. Cortex-A76은 같은 클럭에서 최고성능의 ARM CPU가 됩니다. Arm에 따르면 Cortex-A76은 랩톱 PC 수준의 성능을 달성했다고 전합니다.


예를 들면 같은 Arm CPU코어와 비교해 7nm 공정의 Cortex-A76(3.3GHz)은 단일 스레드 최고 성능에서 16nm 공정의 Cortex-A73(2.45GHz)의 약 2.1배, big.LITTLE 구성으로 5W 전력 소모로 비교해 보면 1.9배의 성능을 발휘한다고 Arm은 말하고있습니다. 2017년의 Arm 최고 성능 모바일의 2배에 달하는 성능을 2019년의 Cortex-A76에서 실현되게 된 것이죠.


△ Cortex-A73 2.45GHz@16nm 공정, Cortex-A75 2.8GHz@10nm 공정, Cortex-A76 3.3GHz@7nm 공정의 성능 비교


Cortex-A76이 랩톱 클래스라고 ARM이 말하고 있는 건 성능 범위에 관한 것이라고 합니다. Cortex-A76은 intel의 Skylake와 비교해 10%의 성능 차이까지 좁혀졌다고 Arm의 Nandan Nayampally(VP and GM of Client Line of Business,Arm)씨는 말하고 있으며, 같은 폼팩터라면 Skylake의 90%에 준하는 성능을 달성할 수 있기에 랩톱 클래스라고 평가한다고 합니다.


무엇보다, 그렇다고해서 Arm이 Cortex-A76을 랩톱에 특화된 CPU코어라고 권장하고 있는 건 아닙니다. 또한 Cortex-A76이 랩톱 범주의 전력에 최적화되어 있는 것도 아니고요. 그런 의미에서 보면 랩톱 클래스라고 하는 건 Intel CPU의 성능 범위에 근접했다는 걸 나타내는 마케팅 용어라고 생각하면 될 것 같습니다.



■ 전력 효율을 최우선으로 중시한 Cortex-A76

실제로 Cortex-A76은 기존 Arm의 big CPU 코어와 동일한 전력 범위에서 성능을 끌어 올렸습니다. 즉, 기존과 마찬가지로 스마트폰 등 모바일 장치에서의 탑재할 수 있는 전력(수준의) 코어인 것이죠. 10nm의 Cortex-A75와의 비교에서는 7nm의 Cortex-A76이 코어당 750mW의 전력에 비해 40% 성능이 향상되었습니다. 또한 동일한 성능에서 약 50%의 전력을 억제할 수 있다고 하고요. 10nm와 7nm의 공정 기술에 따른 차이는 적은 편이기에 상대적으로 아키텍터의 향상폭이 크다는 것을 확인할 수 있습니다


△ 10nm의 Cortex-A75와 7nm의 Cortex-A76의 비교


또한 Cortex-A76은 이번에 SIMD/부동 소수점 연산 파이프 라인이 향상되어 부동 소수점 연산 성능이 향상되었습니다. 그렇기에 Cortex-A73/75와 비교해 부동 소수점 관련 성능향상이 큰 편입니다. Cortex-A73과 비교하면 부동 소수점 성능은 2.5배라고 하며, SIMD연산에는 딥 러닝에 필요한 점곱 연산 명령어도 추가돼 있습니다.


△ Cortex-A73,A75,A76의 비교


△ 성능과 전력 효율이 개선된 Cortex-A76


Arm은 Cortex-A76외에 새로운 CPU 'Mali-G76'과 새로운 비디오 프로세서 'Mali-V76'도 투입했다고 합니다. Cortex-A76의 CPU는 메이저 아키텍처 변화였지만, GPU 역시 Mali-G76에서 아키텍처가 크게 확장되었고, 비디오 역시 Mali-V76에서 아키텍처가 크게 확장되었다고 하며 Arm은 이러한 새로운 코어 IP를 2019년 프리미엄 모바일용으로 추진하고 있다고 합니다.


△ Cortex-A76, Mali-G76, Mali-V76으로 모습을 갖춘 IP군

△ Arm이 제안하는 2019년 프리미엄 솔루션



■ 4명령 디코드로 확장된 Cortex-A76 프런트 엔드

Cortex-A76의 마이크로 아키텍처의 개요를 다시 보면 이 새로운 CPU 코어가 효율적으로 설계되었다는 걸 확인할 수 있는데요, 가장 중요한 포인트는 명령 디코드 폭을 4명령/사이클로 높히면서도 실행 코어의 확장은 최소화한 점입니다.


△ 명령 디코딩 대역은 높혔지만, 실행 파이프 라인은 억제


△ Cortex-A76 코어의 전체 구성 PDF: https://pc.watch.impress.co.jp/video/pcw/docs/1125/098/p1.pdf


Arm의 프리미엄 Cortex-A 시리즈는 2종류의 마이크로 아키텍처가 있는데요, 하나는 Cortex A73이나 A75등과 같이 정수 연산 및 데이터 계열의 파이프라인과 부동 소수점/SIMD 연산 파이프 라인이 분리되어 있는 구조의 아키텍처와, 또 하나는 Cortex-A75나 A72와 같이 모든 파이프라인의 스케줄링이 통합된 아키텍처인데요, Cortex-A76은 후자로 Cortex-A72와 비슷한 구조로 되어 있습니다.


Cortex-A76에선 명령 디코드가 3디코드에서 4디코더로 확장되었습니다. 하지만, 실행 유닛으로의 명령 이슈포트는 8개로 3명령 디코드인 Cortex-A72와 이슈포트수에서는 차이가 없죠. 실행 파이프 라인의 자원은 억제되어 파이프라인의 가동률을 향상하는 것에 초점을 둔 아키텍쳐인 것이죠. 아웃오브오더 윈도 역시 128 명령으로 억제되어 있습니다.


프론트 엔드에서는 우선 분기 예측기를 명령어 패치 파이프 라인으로부터 분리해 분기예측을 프리패치 - 패치파이프라인과 평행하게 동작하게 만들어 분기예측에 따른 레이턴시를 은폐하고 있습니다. BTB(Branch Target Buffer)를 보면 메인 BTB는 6K 엔트리로 크게 잡고, BTB 액세스 레이턴시를 줄이기 위해 BTB를 3단계로 구성했습니다. 기존의 아키텍처에서도 채용했던 64엔트리의 마이크로 BTB외에도 더욱 작은 16엔트리인 나노 BTB를 갖추었네요. 분기 예측 알고리즘은 공개되어 있지 않습니다.


△ BTB를 3스테이디(단계)로 한 분기 예측 기구


L1 명령 캐시는 64KB, 4Way이며, 명령 패치는 각 사이클 최대 4명령, 다만 16bit명령인 경우엔 최대 8명령패치가 됩니다. 명령 디코더는 4명령 디코드/사이클이며 Arm명령체계의 명령군은 일단 '매크로 OPs(Mops)'로 변환됩니다. 디코더부턴 최대 4Mops/사이클로 레지스터 리네이밍/디스패치 유닛으로 전돨됩니다. 디스패치 스테이지에서 Mops는 마이크로오퍼레이션인'마이크로ops(uops)로 분해되어 디스패치됩니다. 디스패치에선 최대 8uops/사이클이고요.


△ 명령패치는 최대 4명령/사이클

△ CPU 명령은 일단 매크로 OPs로 변환되고, 마이크로 OPs로 분해된다. 이 구조 자체는 Cortex-A72와 동일



■ 효율을 준시한 실행엔진

8개의 uops는 8개의 독립된 이슈 큐로 디스패치된다. 정수 연산계의 이슈포트가 4개, 부동 소수점/SIMD(Single Instruction, Multiple Data)연산 계통의 이슈 포트가 2개, 데이터 액세스 계통의 이슈 프토가 2개. 이 구성은 이전 세대 Cortex-A72와 다르지 않다.


정수 연산 시스템은 심플 ALU로의 포트가 2개, 심플 ALU와 멀티사이클ALU의 공유포트가 1개, 분기 유닛으로의 포트가 1개. ALU는 총 3파이프 라인으로, 4명령 디코더에도 정수 연산을 항상 4개 병렬로 실행할 수 있는 건 아니다. 이건 프로그램의 명령 믹스를 생각한 결과라고 볼 수 있다.


△ 정수 연산 계통은 4파이프로 1개는 분기 전용


SIMD/부동 소수점 계통은128bit SIMD인 2파이프 라인. 모두 적화산(곱셈) FMAC, 승산 FMUL, 덧셈 FADD를 지원하며 한쪽 파이프는 거기에서 나누기 FDIV와 전수의 적화산인 IMAC도 지원한다. 연산 레이턴시는 FADD에서 2사이클, FMUL에서 3사이클, FMAC에서 4사이클 정도로 레이턴시가 짧게 되어 있다.

△ 부동 소수점/SIMD는 완전한 128bit SIMD가 되어 대역폭(처리량)이 향상되었다


데이터 계열은 2포트로 각각 로드 및 저장(스토어) 모두를 지원하는 '어드레스 제네레이터(AGU)'로 연결되어 있습니다. 68 인플라이트로드와 72 인프라이트스토어를 지원하며 메모리 액세스 레이턴시를 감출 수 있게(은폐) 되어 있다. 데이터 프리패처도 크게 강화되어 있다.


△ ARM은 세대마다 메모리 레벨의 병렬성을 높이고 있다


△ 캐시 계층은 L1, L2, L3 이렇게 3계층


△ 캐시 실효 대역을 향상


64KB의 L1 데이터 캐시는 멀티 뱅크화로 액세스 대역폭을 확장하고 있고, L2 데이터 캐시로드 레이턴시는 4사이클, 256KB 또는 512KB의 L2 캐시는 9사이클, L2까진 코어 전용 캐시로 되어 있고, L3부턴 CPU 사이에서 공유된다.



■ ARM PCU코어의 대폭 향상

Arm은 지금까지 최고 성능의 Cortex-A75에서도 3ㅁ여령 디코딩/사이클로 좁은 명령 디코드 폭을 고집해왔습니다. 이에 비해 x86계열 CPU코어에는 Intel의 Lake 계열이 5명령 디코드, AMD의 Zen이 4명령 디코드이면서 명령은 복합 명령어를 포함한 CISC(복합 명령 세트 컴퓨터)아키텍처로 명령 디코드 대역은 넓습니다. 또한, 같은 Arm 명령 세트 아키텍처에서도 Apple과 Samsung, Qualcomm 등이 이미 Arm보다 넓은 명령 디코드 폭을 가진 CPU를 시장에 도입하고 있고요. 하지만 Arm은 3명령 디코딩의 작은 CPU코어를 고집해 왔습니다.


하지만 Cortex-A76의 등장으로 상황은 바뀌었습니다. Arm은 1단 내딛은 더 고성능 CPU에로의 문을 열였습니다. DynamIC 플랫폼은 고성능 코어가 4명령 디코드인 Cortex-A76, 그 이하가 3명령 디코드은 Cortex-A75, LITTLE 코어가 2명령 디코드면서 인오더 실행인 Cortex-A55로 되어 있습니다. DynamIQ세대부터 Arm의 CPU코어 성능 범위가 1단계씩 끌어올라왔음을 알 수 있었니다.




△ Cortex-A 제품군 아키텍처, PDF: https://pc.watch.impress.co.jp/video/pcw/docs/1125/098/p2.pdf


또한, Cortex-A76의 실행 파이프라인 및 데이터 액세스는 Cortex-A72를답습하고 있는 것처럼 보이지만 실제로르 크게 개선되었는데요, 명령 디코드 대역의 확장에 걸맞은 확장이 더해졌습니다. 더 자세한 내용은 다른 Arm코어와 비교해가면서 설명을 해야겠네요.

반응형