본문 바로가기
조회 수 24 추천 수 0 댓글 0

단축키

Prev이전 문서

Next다음 문서

단축키

Prev이전 문서

Next다음 문서

01_o.png

 

Arm의 고성능 CPU 코어 두번째, Cortex-A77

 

Arm은 지난주의 컴퓨텍스 타이페이에서 2020년 스마트폰의 CPU가 될 Cortex-A77을 발표했습니다. 싱글스레드 성능을 높인 고성능 코어입니다. 

 

Arm 명령어 세트 아키텍처의 CPU 코어는 Arm이 직접 설계한 Cortex-A 시리즈 외에도, 퀄컴/애플/삼성이 독자적으로 개발한 코어가 있습니다. 이들 회사들은 Arm보다 더 높은 성능의 코어를 만들어 차별화를 꾀했으며, Arm은 자사 아키텍처의 보급을 위해 고성능 CPU 코어를 만들지 않았습니다.

 

02_o.png

 

Cortex-A76의 확장

 

03_o.png

 

Cortex-A76에서 같은 클럭이 전력 효율을 유지하면서 성능을 높인 Cortex-A77

 

하지만 2018년 Cortex-A76에서 그 전략이 바뀌었습니다. Cortex-A76은 고성능 Arm 코어 아키텍처로, Cortex-A75에서 성능이 대폭 높아졌습니다. Cortex-A77은 그 노선을 계승해 성능을 더욱 높였습니다. Cortex-A77은 7~6nm 공정에서 Arm의 고성능 코어가 됩니다. 

 

이런 전략은 서버용 CPU 브랜드인 Neoverse와도 연계됩니다. Arm은 작년까지 서버용 고성능 CPU 코어를 직접 개발하지 않았으며, 이는 다른 회사에게 맡겼습니다. 하지만 지금은 서버용 기능을 갖춘 CPU를 Neoverse라는 이름으로 출시하며, 첫 제품인 N1은 Cortex-A76 기반입니다. A77도 Neoverse 시스템으로 출시되리라 보입니다.

 

 

싱글스레드 성능 향상에 초점

 

Cortex-A77는 Arm CPU 코어의 약점이었던 싱글 스레드 성능을 크게 늘렸습니다. 작년에 발표한 Cortex-A76에서 IPC (Instruction-per-Clock)가 20% 이상 향상됐습니다.

 

04_o.png

 

같은 7nm 공정에 같은 클럭일 경우의 싱글 스레드 성능은 20% 올랐다고 Arm은 설명합니다. 그것도 다이 크기가 겨우 17% 커졌을 뿐인데 말입니다.

 

05_o.png

 

Cortex-A76이 그 전의 Cortex-A75보다 싱글 스레드 성능이 35% 올랐으니, 2년 사이에 Arm의 CPU IP 성능이 극적으로 오른 것입니다.

 

이런 성능 비교는 마케팅적인 메세지가 강합니다. Cortex-A77는 전력을 희생해서 성능을 높이는 게 아니라, 코어의 면적과 전력 사용량을 최소화하면서 효율을 높이는 게 목적입니다. 

 

Cortex-A77 아키텍처의 가장 큰 특징은 6매크로 오퍼레이션/사이클로의 확장입니다. Cortex-A15부터 Cortex-A75까지 7년 동안 고성능 CPU는 명령어 디코딩 대역을 3명령/사이클로 유지했습니다. Cortex-A76은 4명령 디코드/사이클로 확장해 명령어 병렬 처리를 높였습니다.

 

Cortex-A77은 이를 더 확장해 프론트 엔드에서 명령 대역을 6MOPs/사이클로 50% 늘렸습니다. 즉 Arm CPU의 명령 대역은 1년 사이에 3명령/사이클에서 4명령/사이클, 다시 6명령/사이클로 급격히 늘었습니다. 더 많은 명령을 스케줄러에 보내면 명령 병렬 실행 비중이 높아지며, 클럭 당 처리 성능인 IPC도 향상됩니다.

 

그러나 명령 대역폭을 늘리면 소비 전력도 늘어납니다. 명령 디코더가 전력을 소비하고, 명령 인출 단위를 늘리면 잘못된 분기 예측 시 낭비되는 전력도 크기 때문입니다. 그래서 Arm은 내부 명령어 캐시인 매크로 OP 캐시를 도입했습니다. 

 

 

64비트 내부 표현으로 변환하는 Cortex-A77 아키텍처

 

Cortex-A77도 명령 디코딩 대역은 Cortex-A76와 같은 4명령/사이클입니다. 그러나 디코더에 의해 변환된 내부 명령은 전용 L0 명령 캐시에 저장되며, L0 명령 캐시의 명령 발행 대역은 6명령/사이클입니다. 즉, 캐시에 적중됐다면 6명령/사이클의 아키텍처입니다. 

 

Arm은 명령 디코딩 로직 규모가 비교적 크고 전력 사모량도 많습니다. 물론 가변형 접두사를 지닌 x86과 비교하면 훨씬 가볍지만 그래도 명령 디코딩에서 전력을 쓴다는 건 변함이 없습니다. 따라서 명령 디코더의 수를 확실히 정해두는 게 전력과 효율에서 유리합니다. 

 

06_o.png

 

Cortex-A77 아키텍처

 

07_o.png

 

풍부해진 Cortex-A77 아키텍처

 

Arm의 고성능 CPU 마이크로 아키텍처에서 Arm의 CPU 명령어는 간단한 내부 명령 마이크로 오퍼레이션(uOP : Micro-Operation)로 변환해 실행합니다. 명령 스케줄러에서 uOP가 실행 엔진에 발행되나, 명령 디코더는 일부 uOP가 융합된 형태로 디코딩됩니다. 이 퓨전 uOP는 Macro-OP라고 부르기도 합니다. Cortex-A77에 구현된 이 MOP를 캐시하는 L0 명령 캐시를 MOP Cache라고 부릅니다. 

 

현재 아키텍처는 Arm 32비트 명령 A32, T32 모두 64비트로 변환해서 처리합니다. 모두 A64에 해당되는 64비트 계열 내부 명령으로 표현됩니다. Cortex-A76/77 세대 CPU에서 소프트웨어 측은 64비트가 주류를 이룬다고 판단, 하드웨어를 단순화하기 위해 64비트 변환한 것으로 보입니다. 인텔도 한때 16비트를 32비트 내부 명령으로 변환하는 접근 방식을 취했습니다.

 

08_o.png

 

다만 MOP 캐시 아키텍처를 설명하는 Arm 슬라이드는 프론트 엔드 부분이 좀 이상합니다. 원래대로라면 디코더 아래에 있어야 할 MOP 캐시가 프론트엔드에 포함됩니다.

 

09_o.png

 

그리고 MOP 캐시를 포함한 프론트엔드에서 디코더 파이프라인에 6명령어/클럭으로 발송됩니다. MOP 캐시에서 불러온다면 L1 명령 캐시부터의 명령 디코더는 4명령/사이클이어야 합니다. 명령 대역폭이 늘었음을 강조하기 위해서라 보입니다. 

 

 

MOP 캐시로 명령 대역을 확장하는 분위기

 

Cortex-A77은 MOP 캐시를 써서 6MOPs/사이클로 명령 대역 디코더를 늘렸습니다. 이는 Arm의 독창적인 기술이 아니라 인텔이나 AMD도 쓰는 방법입니다. 인텔은 스카이레이크 아키텍처의 명령 디코더가 5웨이지만 uOP 캐시를 둬서 최대 6 uOPs/사이클의 명령을 판독합니다. AMD 젠 아키텍처는 4웨이 명령 디코더를 지녔으나 OP 캐시로 최대 8 MOPs/사이클의 명령어를 읽어냅니다. 내부 명령어 캐시를 사용해 명령 대역폭을 늘리는 건 현재의 CPU 아키텍처에서 일반적인 방법입니다.

 

Arm은 L0의 MOP 캐시의 적중률이 85% 이상이라 많은 워크로드에서 성능 향상이 있다고 설명합니다. Cortex-A76의 설계 단계에서 이미 다음번에 L0 MOP 캐시를 포함시킬 예정이었고, Cortex-A76의 Technical Reference Manual은 L0 Macro-OP 캐시 이벤트 정의를 포함시켰습니다.

 

10_o.png

 

Cortex-A77는 MOP 캐시의 도입해 명령어 대역을 강화시켜 다른 부분까지 성능이 올랐습니다. 프론트 엔드에선 분기 예측 읽기를 64바이트/사이클로 확장하고 이전 분기까지 예측하도록 했습니다. MOP 캐시도 분기 예측 유닛과 맞춰 6MOP/사이클로 확장했습니다. 분기 예측 유닛도 강화돼 BTB(Branch Target Buffer)는 Cortex-A76의 6K에서 8K 엔트리로 확장됐습니다. 3레벨이었던 BTB는 2레벨이 됐습니다.

 

레지스터 리네이밍/파견/커밋 엔진은 uOP 파견이 최대 10 uOP/사이클리 됐습니다. Cortex-A76는 8 uOP/사이클이었습니다. 또 내부에서 제어할 수 있는 명령 윈도우가 128개에서 160개로 늘었습니다. 더 많은 MOP를 처리할 수 있도록 확장됐지만 인텔 서니 코브는 352개니 x86에 비하면 적은 편입니다.

 

 

실행 파이프는 ALU가 4개, 분기는 2개의 구성

 

11_o.png


실행 유닛은 ALU와 분기 유닛이 1개씩 추가됐습니다. 분기 유닛은 총 2개로 각각 전용 이슈 포트를 지녀 2분기/사이클이 가능해졌습니다. ALU는 간단한 명령의 ALU가 추가돼 복잡한 명령을 처리하는 ALU 1개에 간단한 명령을 처리하는 ALU 2개가 됩니다. 또 ALU와 명령 포트를 공유하는 AES 암호화 엔진도 있습니다.

 

12_o.png

 

로드/스토어 유닛은 Cortex-A76에 스토어 데이터 파이프가 추가됐습니다. Cortex-A76의 AGU(주소 생성 유닛 : Address Generator Unit)와 스토어 파이프는 같은 명령 발행 포트를 공유합니다.

 

13_o.png

 

Cortex-A77는 인텔처럼 AGU와 스토어 파이프의 명령 포트가 분리됐습니다. 이론적으로는 주소 생성과 저장, 데이터 관리가 함께 이루어지기에 효율적이나, 로드/스토어의 경우 내부에서 제어할 수 있는 로드/스토어의 수나 대역폭을 프리페치하는 작업이 중요합니다. 

 

14_o.png

 

Arm이 설계한 CPU 코어 중 최고 성능 




List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 에디터 업데이트+) GPT AI 기능을 포함하여 강력한 도구들을 사용해보세요 ⬆️ file 🍀플로버404 2024.04.16 300
공지 덕질 공통 이용규칙 및 안내 (업데이트중+ 2024-04-13) 😀컴덕824 2024.04.14 603
공지 1000P를 모으면 다이소 상품권 1000원을 신청할 수 있습니다. file Private 2024.02.14 2522
1269 일반 갤핏3 간단 수령 후기 file 😀갤덕193 2024.04.17 239
1268 일반 갤럭시핏3 후기 file 😀갤덕272 2024.04.17 273
1267 일반 S24 도착해따 file 😀갤덕579 2024.04.17 242
1266 삼성 갤럭시S24 분해했더니…핵심 칩이 삼성 제품이 아니라고? [창+] / KBS 2024.03.18. file 😀갤덕449 2024.03.18 421
1265 일반 보이스피싱 방지 갤럭시 설정방법! 오늘은갤럭시 스마트폰에서 보이스피싱 방지 설정 방법 😀갤덕334 2024.03.16 574
1264 일반 핸드폰 중독 😀갤덕075 2024.03.15 639
1263 질문 갤럭시 S24 많이 좋나요?? 1 😀갤덕386 2024.03.15 694
1262 일반 S23FE 엑시노스2200 벤치마크 상세분석 😀갤덕345 2024.03.10 560
1261 정보공유 알리 충전기 쓰면 전자기기 고장날 확률이 높다. 😀갤덕310 2024.02.15 941
1260 정보공유 알리 충전기 pd 이것 사면 된다 file 😀갤덕442 2024.02.15 808
1259 일반 S24U 교품 판정 받았습니다. 😀갤덕058 2024.02.07 288
1258 일반 갤럭시 S24 울트라를 용광로에서 녹여 티타늄이 얼마나 들어갔는지 확인 file 😀갤덕314 2024.02.07 246
1257 일반 퀄컴과 삼성, 장기간의 스냅드래곤 게약 체결 😀갤덕072 2024.02.07 270
1256 일반 엑시노스 2400의 수율은 60% 😀갤덕488 2024.02.07 281
1255 일반 ASUS 젠폰 11 울트라의 이미지 유출 file 😀갤덕445 2024.02.07 233
1254 일반 12월 요금제 알뜰폰 갈아 탈만한게 있나요?? 2 😀갤덕413 2024.01.22 212
1253 일반 [자막뉴스] 갤럭시S24 깜짝 놀랄 성능...삼성, AI폰 시대 열었다 / YTN file 😀갤덕323 2024.01.18 940
1252 일반 갤럭시 S24+는 대부분의 국가에서 스냅드래곤 8 Gen3 사용 file 😀익명506 2024.01.15 724
1251 일반 스냅드래곤 8 Gen3 갤럭시, 성능 차이가 크지 않음 file 😀익명682 2024.01.15 602
1250 일반 오포 파인드 X7 시리즈 스마트폰 발표 file 😀갤덕580 2024.01.15 698
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 64 Next
/ 64