Arm의 마이크로 아키텍처 IP | |||
Arm Cortex 시리즈 | |||
A 시리즈 | R 시리즈 | M 시리즈 | X 시리즈 |
Arm Neoverse 시리즈 | |||
Arm AE 시리즈 |
1. 개요2. ARMv7-A3.
ARMv8-A
3.1. Cortex-A50 시리즈3.2. Cortex-A70 시리즈
4.
ARMv9-A3.2.1. Cortex-A72 (2015년)3.2.2. Cortex-A73 (2016년)3.2.3. Cortex-A75 (2017년)3.2.4. Cortex-A76 (2018년)3.2.5. Cortex-A77 (2019년)3.2.6. Cortex-A78 (2020년)
3.3. Cortex-A30 시리즈3.4. Cortex-A60 시리즈3.2.6.1. Cortex-A78C (2020년)
3.4.1. Cortex-A65
4.1. Cortex-A700 시리즈
5. 관련 문서4.1.1. Cortex-A710 (2021년)4.1.2. Cortex-A715 (2022년)4.1.3. Cortex-A720 (2023년)4.1.4. Cortex-A725 (2024년)
4.2. Cortex-A500 시리즈1. 개요
2005년부터 Arm 사에서 라이센싱하는 주력 마이크로아키텍처 IP이다.
초기에는 고성능을 위한 단일 라인업으로써 이어졌다가, 2009년 Cortex-A5를 기점으로 고성능/고효율이라는 2단계 라인업으로 개편되었고, 2011년 Cortex-A7과 함께 발표된 ARM big.LITTLE 솔루션이 도입되면서 하나의 SoC에 이 기종 CPU 코어 구성이 가능해졌다.
2015년을 기점으로 고성능/중간급/고효율 이라는 3단계 라인업으로 구성이 정리된 상황.[1] 이는 일반적으로 언급되는 하이엔드-미들레인지-엔트리 또는 로우엔드 개념으로 봐도 무방하다. 2017년 상반기 기준 고성능엔 Cortex-A73, 중간급엔 Cortex-A53, 고효율엔 Cortex-A35가 대표격인 아키텍처들이다.
그러나 2020년에 더 높은 성능을 요구함에 따라 ARM Cortex-X 시리즈가 신설되면서, 2021년부터 고성능은 Cortex-X1, 중간급은 Cortex-A78, 고효율은 Cortex-A55로 정리되었고, ARMv9-A의 발표 이후에도 넘버링만 바뀌었을 뿐 그대로 존속되고 있다.
Cortex-A 시리즈에 적용된 명령어셋은 ARMv7-A 부터이며, 이전 세대의 ARMv6 명령어셋 아키텍처는 ARM11 계열까지 적용되었다.
2013년에 ARMv7-A의 후속 명령어셋인 ARMv8-A이 공개되었으며 가장 큰 특징은 ARMv8-A 안에 AArch32와 AArch64라는 두 가지 서브 명령어셋이 도입되면서 AArch64를 통해 64비트 구조를 쓸 수 있게 된 점이다. 이후 대부분의 신형 Cortex-A 시리즈와 커스텀 아키텍처들은 ARMv8-A에 기반하여 활발하게 개발되고 있다.
2017년에는 엔트리급 ARMv7-A 기반 Cortex-A7도 64비트 ARMv8-A 기반 Cortex-A35에 바통을 넘겨주고 있어서 PC처럼 32비트 시대는 2~3년 내로 사장되고 있다. 2021년에 ARMv9-A가 발표되면서 32비트 하위 호환성을 버리고 완전한 64비트 시대 전환을 앞두고 있다.
2. ARMv7-A
2.1. 고전력 고성능 지향
2.1.1. Cortex-A8 (2005년)
- 마이크로아키텍처 특징
- 한 사이클에 2개의 명령어 디코더
- Issue명령 분배기에서 3개의 연산 모듈로 파견
- 3개의 연산 모듈
- A - ALU/MUL : 정수 연산 모듈, 덧/뺄셈 및 곱/나눗셈 지원
- B - ALU
- C - LS - 로드/스토어 모듈
2005년 10월 초에 발표된 첫 ARMv7-A 기반의 CPU 아키텍처이자 Cortex-A 시리즈의 첫 번째 제품이다.
이전 세대 ARMv6 명령어 셋을 이용한 싱글 파이프라인 구조의 ARM11 마이크로아키텍처와 비교 했을 때, 중요한 변경점은 2 Issue in-order 슈퍼스칼라 처리 구조의 도입. x86을 사용하는 인텔 CPU로 따지면 80486 → P5 기반 펜티엄같은 격이라고 보면 된다. 또한, NEON SIMD가 기본으로 지원되면서 클럭당 동시 명령어 처리 능력, 클럭 당 동시 데이터 처리 능력이 향상되어 정수 및 멀티미디어 데이터, 부동 소수점 연산 능력 모두 향상되었다. 이 외에 선택 사양이지만 최대 1 MB까지 구성 가능한 L2 캐시 메모리가 공유 LLC 메모리 계층으로써 추가되었다.
=====# 여담 #=====
Arm이 Texas Instruments와 같이 설계했던 첫 Cortex-A8 기반 AP인 OMAP 34XX에서 최대 클럭을 800MHz까지밖에 끌어올리지 못했기 때문에, 초기 최대 클럭은 800MHz였다. Arm에서는 800MHz가 한계라 보고 삼성전자를 만류했지만, 이후 삼성전자가 코어 커스텀을 통해서 1 GHz를 돌파하고, ARM도 코어 리비전을 통해 1 GHz로 끌어 올림에 따라 2010년 당시 보편적인 최대 클럭은 1GHz가 되었다.
아키텍처가 발표된 당시에는 ARM에서 아키텍처를 발표하고 해당 아키텍처가 적용된 프로세서, 그리고 그 프로세서가 탑재된 제품이 나올 때까지 4년 정도 걸렸다. 그래서 A8 코어를 적용한 제품들이 본격적으로 출시된 것은 2009년이었고 TI OMAP 3430이 탑재된 옴니아 HD같은 높은 프로세싱 능력이 필요하고 리소스 소모 역시 큰 제품에 먼저 사용되었다. 이후 애플이 아이폰 3GS에 삼성전자의 S5PC100 600 MHz를 사용하면서 기존 ARM11을 사용한 S3C6410가 탑재된 옴니아 II를 눌러버렸다. 옴니아 II에 탑재된 S3C6410의 CPU 클럭은 당시에도 고클럭이었던 800 MHz였지만, 실성능 차이는 운영체제를 차이를 감안해도 상당히 컸다.
이후 안드로이드 탑재 스마트폰들에 의해 스마트폰 시장이 급성장하기 시작하면서 Cortex-A8을 사용한 AP들이 덩달아서 활발히 출시되었고, 동 세대 비교 대상이었던 퀄컴 스냅드래곤 S1 및 S2의 Scorpion 아키텍처보다 클럭 대비 성능이 뛰어나다는 평가를 받는다.
2.1.2. Cortex-A9 (2007년)
- 마이크로아키텍처 특징
- 8~11단계 파이프라인
- 한 사이클에 2개의 명령어 디코더 (DE) - 64k
- 명령어 발행 어레이 개수 = 1
- ISSUE명령 분배기 1개가 3+1라인(in) 한번에 파견은 최대 3개
- 외장 L2 Cache (최대 8 MB 구성 가능)
- 연산 모듈은 총 4개
- A1 - ALU(out) : 정수 연산 모듈, 덧/뺄셈 지원
- A2 - ALU(out추가) : 정수 연산 모듈, 덧/뺄셈+곱셈 지원
- B - Load/Store - AGU
- C - NEONvfp (in)
Cortex-A8의 후속작으로, 2007년 10월 초에 발표되었다. 혁신적이라고 평가 받았던 Cortex-A8이 나온 지 불과 2년 만에 또 한 번 혁신적인 수준으로 개선되었다.
첫 번째로 멀티 코어를 기본적으로 지원하면서 최대 쿼드 코어까지 구성이 가능해지면서 모바일 분야에서도 멀티 코어를 손쉽게 구성할 수 있게 되었다.
두 번째는 명령어의 비순차적 실행 지원이다. 인텔 x86 계열 CPU로 따지면 P5 기반 펜티엄 → P6 기반 펜티엄 프로, 펜티엄 II같은 격.[2]
=====# 여담 #=====
원래 비순차 명령어 처리 기능의 경우 전성비 측면에서 불리하여 모바일 분야를 타겟으로 한 제품으로의 도입에 부정적이었으나 결국 A9를 기점으로 도입이 성사되었다.
Cortex-A8의 순차적 명령어 처리방법에서 진보한 비 순차적 명령어 처리를 지원한다. 다만 위의 파이프라인 개요도에서 볼 수 있듯이 파란색의 비 순차적 처리를 지원하는 모듈은 Issue명령어 분배기와 ALU 연산 유닛뿐이다. 내장화 된 Neon 유닛과 AGU 자체는 순차적으로 명령어를 처리한다. 이전 Cortex-A과 ALU 유닛의 개수는 같지만 두 번째 ALU 유닛에서 정수 곱셈을 지원이 추가 되었다. 다만 이는 일종의 보조 유닛으로, Issue 분배기에서 한 번에 보낼 수 있는 파견량은 3개로써 한 번에 모든 연산 모듈에 명령을 보낼 수는 없다. 이를 만회하기 위해서 비교적 대용량의 L2 Cache를 코어에 외장으로 지원하며 운영체제에서 지원이 필요하다.
Cortex-A8과 마찬가지로 아키텍처 발표부터 탑재 제품의 시장 진입까지 4년 정도 소요되었다. 2011년 1월에 Cortex-A9 기반의 NVIDIA Tegra 2가 탑재된 옵티머스 2X가 첫 제품이었다.
더군다나 Cortex-A9의 멀티코어 구성으로 2011년부터 본격화된 안드로이드 스마트폰 열풍은 정점을 찍게 된다. 특히 삼성전자의 엑시노스 4210을 사용한 갤럭시 S II의 성공으로 더욱 가세되었기 때문이다. 이뿐만이 아니라 Cortex-A8보다 진보한 아키텍처 구조로 클럭당 성능비도 증가했으며 멀티 코어화로 인한 성능 상승폭은 거의 코어 수에 비례하기 때문에 단순이 코어 개선의 효과보다 큰 성능 향상이 있었다.
이러한 Cortex-A9 멀티 코어에 대응하기 위해 퀄컴은 Scorpion 아키텍처를 멀티 코어화 시키고 고클럭화를 목표로 파이프라인을 늘려 1.5GHz의 클럭을 달성하지만 태생적으로 클럭당 성능이 Cortex-A9보다 밀리기 때문에 성능은 성능대로 놓치고 발열은 발열대로 놓쳤다. 이후 Krait 아키텍처가 나오기 전까지 퀄컴 스냅드래곤의 이미지가 하락하게 된 원흉이 되었다.
2.1.3. Cortex-A15 (2010년)
- 마이크로아키텍처 특징
- 정수-15 / 부동 소수점- 17~25단계 파이프라인
- 한 사이클에 3개의 명령어 디코더 - 128k
- 명령어 발행 어레이 개수 = 5
- Issue명령 분배기 5개가 각 1~2개씩 총 8라인
- 내장 L2 Cache 통합, 분배식 입력
- 연산 모듈은 총 8개 (A~E)
- A1 - 정수연산(덧/뺄셈)(out)
- A2 - 정수연산(덧/뺄셈)(out)
- B - 정수 연산(곱/나눗샘)(out)
- C1 - NEONvfp (out)
- C2 - NEONvfp (out)
- D - branch(분기 예측)
- E1 - load/store
- E2 - load/store
2010년 9월에 발표된 Cortex-A9를 잇는 고성능 컨셉의 마이크로아키텍처. 코드네임은 Eagle.
ALU 유닛의 기본적인 성능이 전작인 Cortex-A9보다 향상되었고, 배수, 곱셈, 나눗셈 전용의 ALU도 추가되었으며, 분기 예측기(Branch Predictor) 모듈이 내장되었다.[3] 또한 모든 유닛에 비 순차 처리 방식 도입을 하는 등 ARMv7-A 기반의 아키텍처가 보여줄 수 있는 최대한의 성능을 보여준다. 때문에 처리 능력에서는 코어 초기형 수준 x86 호환 아키텍처들과도 견줄 수 있는 수준이다.
확실하게 기존 ARM의 CPU 아키텍처보다 파이프라인이 대폭 복잡해진 것을 알 수 있다. Cortex-A9 대비 명령어 디코더의 개수가 1개 더 늘어나서 3개를 가지고 있으며 각 연산 유닛의 파트마다 각각의 독립적인 발행 어레이와 명령 분배기를 가지는 구조로써 Cortex-A9 대비 2배로 연산 유닛이 증가하고 이것을 효율적으로 이용하도록 되어있다. Cortex-A9가 최대 발행 능력이 떨어져서 모든 모듈을 한 번에 동작할 수 없었지만 Cortex-A15는 한 번에 8개 유닛을 모두 사용할 수 있다고 한다.
L2 Cache를 ARMv7-A 명령어셋 기반 Cortex-A 시리즈 중 최초로 아키텍처 안에 내장하였으며 통합된 하나의 거대 L2 Cache는 각 코어로부터 직접적으로 리소스를 주고 받을 수 있다. 이는 Cortex-A9에서 아키텍처와 외장 L2 Cache가 컨트롤러를 통해 한 단계 연결되었던 설계에 비해서 개선된 구조이다.
문제는, ARM이 추구하던 저전력 코어로서의 이점을 상당히 잃었다는 것인데...
내부 구조상 성능을 올릴 수 있는 모든 것을 때려 넣은 구조이기 때문에 이전의 ARM이 출시한 그 어떤 CPU 아키텍처보다 자비없는 발열과 이성을 잃은 전력 소모율을 보여준다. 때문에 크레이트 같은 모바일 지향으로 설계된 아키텍처에 비해 발열 문제를 처리하기 어려운 아키텍처가 되어버렸다. 32nm 공정에서는 듀얼 코어의 엑시노스 5250 정도가 태블릿 전용으로 탑재되었고, 2013년에 28nm 공정을 사용한 5410에 와서야 스마트폰에 탑재하는 데 성공. 다만 전력 소모는 경쟁 제품 대비 압도적인 모습을 보여주지는 못하고 있다.
다만 이러한 상황은 ARM 사가 A15의 포지션을 모바일뿐만 아니라 서버 영역까지 확장하면서 벌어진 것이며 ARM은 이 문제를 해결하기 위해서 모바일 영역에서는 ARM big.LITTLE 솔루션을 도입하게 되었다. big.LITTLE은 서로 다른 종류의 CPU 코어를 한 시스템에서 제어해야 하고, 기존에는 잘 사용하지 않았던 새로운 형태의 멀티 프로세싱 모델이었다. 이 구조를 제대로 사용하려면 하드웨어 구성뿐만 아니라 운영 체제 커널에서도 작업을 효율적으로 분배해 주어야 했다. 커널 지원은 2013년 말경에 마무리 되었고 실제 출시된 제품에 적용될 정도로 안정화된 것은 2014년 중반이다.
2.2. 저전력 고효율 지향
2.2.1. Cortex-A5 (2009년)
- 마이크로아키텍처 특징
- 8단계 파이프라인
- 한 사이클에 1개의 명령어 디코더 (DE) - 64k
- NEON/vfp SIMD 유닛을 외장 형태로 부착 가능
- Issue 명령 분배기 1개가 모듈 2-3개로 분배
- 기본적인 연산 모듈은 2개이다.
- A - ALU
- B - Load/Store - AGU
- C - Neon/vfp - 외장형 옵션
2009년 10월에 발표된 저사양 CPU 마이크로아키텍처. 전성비 극대화를 추구하는 컨셉이었기 때문에 기존의 ARM11과 유사한 싱글 파이프라인 구조를 유지했다. x86 인텔 CPU로 따지면 본넬 기반의 아톰같은 격. 그래서 성능은 ARM11보다 약간 더 좋은 정도로, ARMv7-A 명령어 셋을 지원하는 CPU 아키텍처 중에서 가장 성능이 낮지만 소비전력도 매우 낮다. 그래서 ARM에서는 아직도 흐르고 넘치는 100개 이상의 ARM9 내지는 ARM11 아키텍처 라이센스 취득사가 Cortex-A5를 대체재로 이용할 수 있도록 독려하고 있다.
=====# 여담 #=====
Cortex-A9처럼 멀티코어화가 가능하다. 때문에 임베디드 시스템 뿐만이 아니라 저사양 스마트폰에도 종종 탑재되고 있으며 퀄컴 역시 스냅드래곤 S1에 Cortex-A5 멀티코어 CPU를 사용하는 라인업을 잡아두었다. 다만, 쿼드코어 구성이라 하더라도 성능은 옴니아 II에 들어간 ARM11을 네 개 붙여 놓은 것과 비슷하기 때문에 많은 것을 기대하기는 어렵다.
ARMv7-A 기반 아키텍처 중에서 유일하게 1개의 디코더를 가지고 있다. L2 캐시는 지원하지 않으며 Neon/vfp도 필요에 따라서 외장으로 따로 부착하는 형태이다. 다만 ARMv7-A 자체의 성능이 준수하기 때문에 아무리 저사양이라고 불리더라도 Cortex-A5의 성능은 ARM11의 120% 정도.
2020년 이후엔 AMD의 x86 CPU와 퀄컴의 스냅드래곤 보안 프로세서로 사용하고 있다.
2.2.2. Cortex-A7 (2011년)
- 마이크로아키텍처 특징
- 8단계 파이프라인 + 슈퍼스칼라
- 한 사이클에 2개의 명령어 디코더(DE) - 128k
- 명령어 발행 어레이 개수 = 1
- Issue명령 분배기 1개가 5라인(in) 파견 5개
- L2 Cache 내장
- 연산 모듈은 총 5개(A~E)
- A - ALU(in)-정수연산 덧/뺄셈
- B - ALU(in)-정수연산 덧/뺄셈+곱/나눗셈
- C - NEONvfp
- D - Dual issue-Superscalar
- E - load/store
2011년 10월에 발표된 엔트리급 CPU 마이크로아키텍처. 코드네임은 Kingfisher.
전체적으로 Cortex-A5의 연장선상에서 개발되었지만, Cortex-A8의 주요 특징인 슈퍼스칼라를 지원한다. 기본적으로 모든 유닛이 Cortex-A8과 같은 순차적 명령어 처리지만, Cortex-A9의 특징이었던 멀티코어 지원, NEON 및 L2 Cache 내장, ALU 모듈의 나눗셈 지원 등이 추가되었다.
=====# 여담 #=====
Cortex-A8이 주력이었던 시기에는 65nm, 45nm 공정이 주력 공정이었으나 Cortex-A7은 그보다 훨씬 미세한 공정에서 제조된다. 이러한 공정 미세화와 기술 진보로 인해 성능은 Cortex-A8과 비슷한 수준이지만 그 성능을 내기 위한 전력 소모는 5배 이상 적다.
ARM의 목표대로 2010년에 $500 정도의 스마트폰 성능을 2013년에 $100 ~ 200 정도의 스마트폰 성능으로 만들어준 주역이다.
저전력을 목적으로 나온 코어답게 먼저 나온 Cortex-A15보다 간단한 설계를 보여주고 있다. 기본적으로 모든 유닛은 순차적 명령어 처리 방식이지만, L2 Cache, NEON SIMD의 통합 등 진보적인 설계를 도입함에 따라 실제로는 Cortex-A8 이상의 성능을 보여주고 있다. Cortex-A7의 ALU는 Cortex-A12나 Cortex-A15의 ALU같이 나눗셈을 지원하며, 그 외의 다른 특징으로 Dual-Issue가 가능한 슈퍼스칼라 유닛을 추가하여 제한적으로 1사이클당 2개 명령어 처리가 가능하도록 되어 있고 기존 A8/A9와는 달리 파이프라인 구조 안으로 NEON 연산 유닛을 통합함으로써 연산 성능을 향상 시키고 있다.
간단한 구조와 전력 소모가 적은 설계를 기반으로 고성능 CPU 아키텍처의 자비 없는 전력 소모량을 보완하기 위한 ARM big.LITTLE 솔루션에서 Cortex-A12와 Cortex-A15의 LITTLE 코어를 담당한다. 하지만 자체적인 성능 역시 나쁘지 않고 설계와 양산도 쉽기 때문에 Cortex-A7로 이루어진 모바일 AP도 퀄컴과 미디어텍 그리고 여러 중국산 업체를 중심으로 활성화되고 있다. 예로 Cortex-A7 기반 삼성 엑시노스 5410의 LITTLE 코어와 Cortex-A9 기반 NVIDIA Tegra 3의 성능이 비슷한 결과가 있기도 했었다.
2.2.3. Cortex-A12 (2013년)
- 마이크로아키텍처 특징
- 10~12단계 파이프라인
- 한 사이클에 2개의 명령어 디코더(DE) - 128k
- 명령어 발행 어레이(Rename & Dispatch) = 2
- ISSUE명령 분배기 3개가[4] 각 2라인씩 총 6라인 파견 6개
- 내장 L2 Cache
- 연산 모듈은 총 6개
- A1- ALU(out) : 정수 연산 모듈, 덧/뺄/곱셈 + 나눗셈 지원
- A2- ALU(out) : 정수 연산 모듈, 덧/뺄/곱셈 + 나눗셈 지원
- B1- load/store(out) - AGU
- B2- load/store(out)
- C1- NEONvfp (out)
- C2- NEONvfp (out)
2013년 6월 2일에 발표된 ARMv7-A 기반 아키텍처.
Cortex-A7이 Cortex-A8과 Cortex-A9의 일부 장점을 절충한 저전력 컨셉이었다면, 이번에는 전반적으로 Cortex-A9와 Cortex-A15의 설계를 혼용하여 전성비를 높이는 데 주력한 아키텍처이다.
=====# 여담 #=====
Cortex-A15, A7 → Cortex-A57, A53이라는 주력 라인업과는 다르게 좀 갑툭튀한 느낌이 있는데, ARMv7-A 기반인 이 아키텍처가 제품화될 시기인 2015년에는 64비트를 지원하는 ARMv8.0-A 호환 마이크로아키텍처(Cortex-A57, A53) 기반의 프로세서들이 출시될 시기와 겹치게 될 상황이기 때문.
그런데 A12가 적용되는 타겟 공정은 2015년 시점에서는 저가 양산 라인으로 포지션하게 될 GF와 TSMC의 28nm가 될 예정이고, 반면 A57/A53기반의 하이엔드 제품들은 20/16/14nm공정 라인에서의 생산을 목표로 하고 있다. 2015년 시점에서 생산 단가가 떨어질 대로 떨어지게 될 28nm 공정을 활용하기에 기존에 개발된 A15는 해당 공정에서 전력 소모 특성이 좋다고 말하기 힘들어 사용이 제한되고, 그것보다도 복잡한 A57은 더더욱 28nm수준에서는 부적합하다고 추정할 수 있는 상황이다. 그럴 경우 28nm 공정에 적용할 만한 제품은 저성능의 A7/A9/A53로 한정되면서 중간급 라인업이 비어버리는 문제가 생긴다. 즉 원래는 시기적으로 A15가 미들 레인지로 내려오면서 채워 넣었어야 하는 부분을 A12가 대신 채워 넣어야 하는 상황이 된 것.
Cortex-A9와 비교했을 때 명령 디코더가 3개로 늘어났고, Cortex-A9가 정수 연산 부분에서 부분적으로 비 순차적 명령어 처리를 한 것에 반해서 Cortex-A12는 모든 연산 유닛이 비 순차적 처리를 지원한다. 또한 외장으로 Cortex-A53의 분기 예측기를 도입하고 ALU 모듈에서 나눗셈을 지원, L2 Cache의 내장화 같은 개선점이 있다.
파란색이 비 순차적 명령어 처리 부분으로 ALU 모듈에서만 비 순차적으로 명령어를 처리했던 Cortex-A9에 비해서 모든 유닛에서 지원하게 되었다. 또한 Cortex-A15와 마찬가지로 명령어 발행 어레이와 Issue 분배기를 분리했다. 하나의 발행 어레이는 Neon/vfp SMID를 담당하며, 나머지 하나의 발행기가 ALU 모듈과 AGU 모듈을 통합해서 관리한다. 다만 Issue 분배기 자체는 3개로써 각각 2개의 연산 모듈을 담당하며 한번에 최대 6개의 명령어를 발행할 수 있다. 이는 Cortex-A9에서의 Issue 분배기가 한 번에 최대 3개까지밖에 명령어를 발행하지 못했기 때문에 모든 연산 유닛을 활용할 수 없었던 것에 대한 개선점이다.
또한 미드레인지 라인업이지만, Cortex-A15와 같이 Cortex-A7 아키텍처와 조합해서 big.LITTLE을 지원한다고 한다.
전반적인 성능은 퀄컴 Krait와 애플의 Swift와 비슷할 것으로 예측되고 있다. 구조적으로는 Cortex-A15의 요소들을 최소한으로 잘라내어 Cortex-A9에 적용한 것으로 추측된다.
2014년 10월 1일 ARM 공식 홈페이지에서 Cortex-A12가 Cortex-A17로 통합되었다고 발표했다.
2.2.4. Cortex-A17 (2014년)
2014년 2월에 발표된 A 라인업 중 마지막 ARMv7-A 기반 마이크로아키텍처.
마이크로아키텍처 이름만 보면 Cortex-A15의 상위 라인처럼 보이지만, 정작 A17은 A12의 리네이밍이기[5] 때문에 아키텍처 스케일은 오히려 Cortex-A15보다도 작다고 한다. 그래도, 아키텍처 설계 최적화가 잘 되어서 성능은 A15와도 비슷한 수준이라고. 따라서, Cortex-A15의 성능을 유지하면서 전성비를 극대화한 아키텍처라 보면 된다. Cortex-A15와 마찬가지로 Cortex-A7 아키텍처와 조합해서 big.LITTLE을 지원한다고 한다. 전체적인 성능은 Cortex A9보다 60% 향상.
=====# 여담 #=====
과거 하이엔드 프로세서였던 Cortex-A15는 초기 양산이 힘들었기 때문에 이 문제를 극복하지 못한 SoC 제작사들은 Cortex-A15를 포기하고 다른 방법을 찾았다. Cortex-A9 R4 같은 기존 프로세서의 최신 리비전 버전을 사용하거나 Cortex-A7을 쿼드코어 2모듈 구조로 8코어까지 묶는 등 여러 가지
출시 초기에는 64비트 지원의 ARMv8-A로 시장의 하이엔드 주력이 넘어가는 2014~2015년도 시점에서 미들레인지 정도의 성능으로 시장 포지셔닝이 가능할 것으로 예상되었다. Cortex-A15는 양산 문제가 있었고 새로 기획된 ARMv8-A 기반 Cortex-A57 프로세서도 이 문제를 피해갈 수는 없었다고 보았기 때문에 미들레인지 용으로 기존
하지만 시장 상황은 2013년 아이폰 5s를 시작으로 2014년부터 본격적으로 64비트로 전환되었고, Cortex-A17은 초기에 예상한 것과는 달리 입지가 더 좁아졌다. 2014년도 기준으로 64비트 구조의 Cortex-A53이 오히려 하이엔드인 Cortex-A57보다도 더욱 공격적으로 시장에 진입하면서 엔트리급에서 미들레인지, 심지어는 일부 하이엔드 영역까지 Cortex-A53의 고클럭 버전이 선점해 버리는 기염을 토하는 상황이 벌어졌기 때문이다.
Cortex-A17 아키텍처가 적용되어 시장에 첫 출시된 제품은 미디어텍의 MT6595로 Cortex-A7과 big.LITTLE 솔루션으로 구성되었다.
3. ARMv8-A
ARMv8은 ARM의 64비트 명령어 집합이다. 성능은 매우 크게 향상되어서 후기형 빅칩에 경우 데스크탑에서 사용되는 CPU와 비교될 정도로 성능 향상폭이 컸다. 그러나 ARMv8.1, v8.2, v8.3, v8.4, v8.5, v8.6 등 심각한 파편화로 일부 명령어 집합(8.5, 8.6)은 사용되지도 못했다. 이 때문에 이 모두를 포함한 ARMv9-A가 개발된다.코어들의 코드명은 그리스 로마 신화의 신들의 이름에서 유래했다.
3.1. Cortex-A50 시리즈
Cortex-A53은 전체적으로 Cortex-A9와 비슷하거나 향상된 성능을 보이며 Cortex-A57은 Cortex-A53의 약 1.5배에서 2배의 성능을 보인다.
Cortex-A57 프로세서와 Cortex-A15 프로세서의 비교 그래프.
- 마이크로아키텍처 특징
- 64비트 지원 (AArch64)
- 32비트 ARMv7-A 명령어와 100% 하위호환
- TrustZone® 보안 기술
- NEON™ Advanced SIMD
- DSP & SIMD 확장
- VFPv4 부동소숫점 연산
- 하드웨어 가상화 지원
3.1.1. Cortex-A57 (2012년)
Arm 레퍼런스 마이크로아키텍처로써 최초의 ARMv8-A 명령어셋 기반이자, 최초의 64비트 지원 마이크로아키텍처. 코드네임은 Atlas. Cortex-A53과 ARM big.LITTLE 솔루션으로 구성이 가능하다. 대표적으로 퀄컴 스냅드래곤 808 MSM8992, 퀄컴 스냅드래곤 810 MSM8994, 삼성 엑시노스 7 Octa 5433, 삼성 엑시노스 7 Octa 7420 등이 있다.
=====# 여담 #=====
여담으로 28nm Cortex-A15와 20nm Cortex-A57의 전력 소모량은 비슷하다.
스냅드래곤 810으로 불타는 전설을 쓴 아키텍쳐이기도 하다.
3.1.2. Cortex-A53 (2012년)
- 코어 구성 [ 펼치기 · 접기 ]
- * 코어 레벨
- ISA: ARMv8.0-A
- 프론트 엔드
- 분기 예측
- 명령어 캐시
- 2-way 디코더
- 백 엔드
- 2-issue 순차적 실행
- 메모리 서브시스템
- 주 TLB
- 데이터 캐시
- L2 캐시 (선택)
- 3072 엔트리 크기의 전역(global) 분기 예측기
- 256 엔트리 크기의 분기 대상 주소 캐시(BTAC)
- 8 엔트리 크기의 리턴 스택
- 용량: 8 KB ~ 64 KB 범위에서 구성 가능
- 배치 정책: 2-way set associative (교체 정책: pseudo random)
- 라인 크기: 64 바이트
- ALU 2개
- 하드웨어 곱셈기 1개 (4 사이클 레이턴시)
- AGU 1개
- (선택) 부동소수점 유닛 2개
- 크기: 512 엔트리
- 배치 정책: 4-way set associative
- 크기: 8 KB ~ 64 KB 범위에서 구성 가능
- 배치 정책: 4-way set associative (교체 정책: pseudo random)
- 라인 크기: 64 바이트
- 크기: 128 KB ~ 2048 KB (2 MB) 범위에서 구성 가능
- 배치 정책: 16-way set associative
- 라인 크기: 64 바이트
영국 캠브리지 연구소에서 개발되었으며, 코드네임은 Apollo.
리틀 코어, 저전력 컨셉을 실현하기 위해 비순차적 실행을 지원하지 않아 성능은 낮다.
=====# 여담 #=====
원래는 ARMv8-A 명령어셋 기반의 CPU로 Cortex-A57/72와 ARM big.LITTLE 솔루션의 LITTLE 역할을 담당하도록 구성하거나 단독으로도 사용 가능하도록 기획된 제품으로 발표 초기에는 ARM 역사상 최강이자 최초의 64비트 프로세서가 될 예정이었던 Cortex-A57의 들러리 정도로 생각된 CPU였다.
따라서 관련 업계는 A53을 단독 솔루션으로는 크게 생각 안하는 분위기에서 64비트에 관심있는 업체들은 A57을 위주로 제품전략을 짜고 중저가 라인업의 업체들은 64비트의 본격적인 도입 시기는 2015년이나 될 걸로 예상하고 그냥 기존에 써먹었던 A9나 A7을 재탕하거나 새로 나온 A17 정도에 관심을 두면서 다가오는 2014년도의 제품 라인업을 구상하고 있을 즈음...
2013년 9월, 애플이 느닷없이 모바일 사상 최초로 64비트를 지원하는 ARMv8.0-A 호환 CPU가 탑재된 아이폰 5s를 시장에 냅다 투척했다!
갑자기 로드맵상으로 1년이 앞당겨진 64비트 시대 도래에 당황한 업계와 업체들은 그동안 개발해 왔던 로드맵들을 갈아엎기 시작하면서 대안을 찾아 헤메기 시작하게 되고, 단기간에 64비트 프로세서를 설계하여 애플을 따라잡기 위해 고군분투 하게 된다.
삼성 엑시노스 5433이 당시 시장 상황이 얼마나 급박했는지 알려주는 좋은 예. 커널의 코어 정보를 보면 Eagle과 Kingfisher가 존재하는데, 이는 A15와 A7의 코드네임이다. 즉, 출시일을 맞추기 위해 A15와 A7을 이용해 개발을 진행하다가 마지막 단계에 갓 출시된 A57과 A53을 끼워넣어 양산을 시작했다는 정황을 확인 할 수 있는 것.
A53의 등장 이후 ARM이 의도했던 대로 고성능 설계의 A57을 big으로, 저전력설계의 A53을 LITTLE로 사용한 옥타코어 구성의 SoC가 주로 출시되었다. 대표적으로 퀄컴 스냅드래곤 808 MSM8992, 퀄컴 스냅드래곤 810 MSM8994, 삼성 엑시노스 7 Octa(5433, 7420) 등이 있다.
몇몇 업체가 높은 클럭으로 동작 할 수 있도록 설계하여 중급형 일부뿐만이 아니라 중급형 전체를 아우를 수 있는 성능을 발휘하게 되어 중급형 AP에 탑재되는 경우도 있다. 대표적으로 퀄컴 스냅드래곤 410 MSM8916, 퀄컴 스냅드래곤 615 MSM8939, 미디어텍 MT6795, 삼성 엑시노스 7580 등이 있다.
화웨이의 Krin920은 A53의 클럭을 2.0GHz까지 올리고서는 A53e라는 자체 코드명을 내세웠다.
가장 많이 사용되는 모바일 CPU 벤치마크인 GeekBench의 성능을 기준으로 A53의 성능은 1GHz내외의 저클럭 에서는 A7보다 살짝 높고, A9와 동급의 클럭당 성능을 보여준다.[6] 다만 클럭을 높임에 따라서, Krait이나 A15와 비슷한 성능비를 보여줄 만큼 클럭에 따른 성능 차이가 크다.
참고로 기린 950 벤치마크의 측정된 전력 소모량에서 보여준 결과로는 28nm HPC + 2.0GHz가 570mW를, 1.5GHz가 350mW를 소비한다. 또 28nm HPM + 1.7GHz에선 400mW, 20nm SoC + 1.6GHz는 470mW[7], TSMC의 16nm FF+ 공정에서 1.8GHz가 164mW를 소비한다.
라즈베리 파이 2B(일부 모델), 3 시리즈 전체, Zero 2W에 탑재되었다.
소니 워크맨 NW-A100에 탑재되었다.[8]
=====# 사용 모델 #=====
3.1.3. Cortex-A55 (2017년)
- 코어 구성 [ 펼치기 · 접기 ]
- * 코어 레벨
- ISA: ARMv8.2-A
- 프론트 엔드
- 분기 예측기
- L1 명령어 TLB
- 명령어 캐시
- 2-way 디코더
- 백 엔드
- 2-issue 순차적 실행
- 메모리 서브시스템
- L1 데이터 TLB
- L2 TLB
- 데이터 캐시
- L2 캐시 (선택)
- 크기: 15 엔트리
- 배치 정책: fully associative
- 용량: 16 KB ~ 64 KB 범위에서 구성 가능
- 배치 정책: 4-way set associative
- 라인 크기: 64 바이트
- ALU 2개 (Shift 및 ALU)
- MAC 1개 (Multiply 및 Accumulate)
- DIV 1개 (Divide)
- AGU 2개 (Store 1개 + Load 1개)
- NEON MAC & DIV/SQRT
- NEON ALU
- 크기: 16 엔트리
- 배치 정책: fully associative
- 크기: 1024 엔트리
- 배치 정책: 4-way set associative
- 크기: 16 KB ~ 64 KB 범위에서 구성 가능
- 배치 정책: 4-way set associative
- 라인 크기: 64 바이트
- 크기: 64 KB ~ 256 KB 범위에서 구성 가능
- 배치 정책: 4-way set associative
- 코어 레벨 (Cortex-A53 대비)
- 프론트 엔드
- 분기 예측 개선
- 명령어 캐시
- 디코더는 2-way로 유지
- 백 엔드
- AGU가 1개 → 2개로 증가
- 메모리 서브시스템
- 프리페칭 개선
- 신경망 기반 분기예측 도입
- 루프 전용 예측기 도입
- associativity가 2-way → 4-way로 증가
- 로드/스토어 파이프라인이 로드 파이프라인과 스토어 파이프라인으로 분리됨
Cortex A53의 후속으로 코드네임 Ananke, 2017년 5월에 공개되었다. Cortex A75와 세트로 ARMv8.2-A 명령어 세트를 지원한다.
일반적인 내부 구성은 A53과 같은 듀얼 Issue, in-order, 8단계의 파이프라인 스테이지를 가지고 있지만, A53에서 1개였던 AGU가 Load 전용 + Store 전용 2개로 분리되었다.
또한 개선된 캐시 계층 구조와 최적화로 정수는 18%, 부동 소수점은 20%, 메모리 점수는 200% 상승하였으며 대표적인 CPU 벤치마크인 Geekbench 기준 21%의 성능 상승이 있다고 한다.
또한 자사의 DynamIQ를 지원하는 최초의 CPU이며, Cortex-A55만으로 최대 8개의 코어를 1개의 클러스터에 묶을 수 있는 등 많은 개선점이 있다.
=====# 여담 #=====
엑시노스 850과, 유니SOC(스프레드트럼) SC9863A에 메인코어로 적용되었다.
ARM은 LITTLE코어를 몇 년간의 텀을 두고 발표하고 있으며, 이에 2017년 이후부터 2021년까지 대부분의 ARM 호환 CPU에서 LITTLE 코어로 채용하고 있다. 2021년 출시된 엑시노스 2100과 스냅드래곤888에서도 여전히 사용하고 있다. 이 코어는 2017년 5월 공개된 이래 2017년 12월 스냅드래곤 845에 세미커스텀 되어 리틀코어인 Qualcomm Kryo 385 Silver로 들어간 이후 스냅드래곤 시리즈에 계속해서 탑재되고 있다. 2021년에 공개된 엑시노스 2100에도 채용되었다.
때문에, 이와 반대로 매년 개선되는 애플의 LITTLE 코어에 비해 성능과 전성비 모두 심하게 뒤쳐지게 되었다. 가령 애플 A13 Bionic 에 리틀코어로 탑재된 Apple Thunder 코어의 경우, 스냅드래곤 855에 탑재된 A55에 비해 2.5배~3배의 성능, 절반 이하의 에너지 소모를 보여준다. # 심지어 big 코어인 cortex-A77은 최저클럭일 때, 동일 클럭의 A55보다 나은 성능과 더 적은 전력소모를 보여준다! #
3.2. Cortex-A70 시리즈
ARM Cortex-A70 시리즈 성능 향상 비교표 |
3.2.1. Cortex-A72 (2015년)
2015년 2월 5일에 공개된 ARM Cortex-A 시리즈의 차세대 고성능 CPU이며 Cortex-A57의 후속 아키텍처이다. 전작과 동일한 ARMv8-A 명령어셋 기반의 CPU로 Cortex-A53과 ARM big.LITTLE 솔루션으로 구성이 가능하다. 코드네임 Maia.
2014년 말에 첫 제품이 양산된 Cortex-A57에서 성능은 올리고, 면적은 줄이는 동시에 최대한 전력소모를 줄이는 것을 목표로 진행된 이례적으로 짧은 프로젝트의 산물이다. 통상 ARM제품의 개발주기는 아키텍처 발표 후 3년 정도 후에 초기 제품이 출시되는 패턴으로 2012년에 발표된 Cortex-A57의 실제품 양산은 2014년 말이라서 이러한 주기와 잘 일치하였으나 Cortex-A72는 그러한 관례를 깬 첫 제품으로 이후 출시되는 IP들은 거진 당해에 시제품이 출시된다. 성능상으로도 개발사 주장에 따르면 20% 정도 향상되었다고 한다.
ARM의 발표에 의하면, Cortex-A57 대비 동클럭당 약 23%, Cortex-A15의 약 3.5배의 성능을 보여준다고 한다.
클럭을 정규화했을 경우의 성능 비율은 각각 1.0:1.5:1.8:2.2이다. 다만 같은 CPU임에도 불구하고 제조사간의 편차가 조금씩은 존재한다. 한쪽은 공정 20나노 2.0Ghz, 다른 쪽은 14나노, 16나노 2.3Ghz이다.
일반연산에서 16%, 암호화에서 38%, 메모리I/O에서 50%, 실수연산 26%, 정수연산에서 16% 향상되었다고 발표되었으며 전반적으로 23% 향상이라는 위의 내용과 대체로 일치한다.
=====# 여담 #=====
특이하게도 Cortex-A57이 TSMC의 20nm 공정과 삼성S.LSI의 14nm LPE 공정을 지원한다. 참고로 삼성 S.LSI의 14nm 공정 지원은 삼성 측의 독자 지원에 가깝다. 파운드리 업계에서의 레퍼런스로서의 위상은 TSMC가 여전히 절대적이라서 ARM사가 TSMC 측의 공정을 레퍼런스로 메크로 설계를 우선 지원하는 것이 이상한 일이 아니다. 그러나 이보다 신형인 Cortex-A72는 최신형의 TSMC 16nmFF+ 공정뿐만 아니라 구형인 TSMC 28nm공정을 지원하는 상식 밖의 행보를 보여주었다. 이는 이전 Cortex A57이 64bit를 지원하는 첫 IP였지만, Cortex A15와 같이 기존의 ARM설계보다 대폭 증가된 트랜지스터의 수로 인하여 중/소형 업체들의 채택률이 낮았다는 것에 기인하여, 양산의 용이성을 높이러는 이유에서이다.
하지만 이러한 결단 덕분에 상대적으로 저렴한 28nm 공정에서 제조되는 미들레인지 AP 제품군에서도 Cortex-A72 쿼드 구성이라는 준 하이엔드급 구성이 가능해지면서 Cortex-A72의 시장 입지가 크게 넓어졌다.
성능 자체도 16nmFF+에서 생산되는 제품은 강력한 클럭으로 인해 하이엔드-플래그십으로서의 역할을 충분히 감당할 수 있는 상황인지라 커스텀 아키텍처를 개발할 여력이 되는 퀄컴이나 삼성 같은 대규모 Tier-1급 AP 개발 업체가 아닌 하이실리콘, 미디어텍, LG 등과 같은 업체들의 경우 하이엔드 영역의 AP개발을 가능케 해 주는 여러모로 필수요소 같은 존재다.
라즈베리 파이 4에 탑재되었다.
3.2.2. Cortex-A73 (2016년)
- 코어 레벨 (Cortex-A72 대비)
- 프론트 엔드
- 분기 예측 개선
- 명령어 캐시
- 디코더가 3개 → 2개로 감소
- 백 엔드
- 메모리 서브시스템
- 프리페칭 개선
- 데이터 캐시
- BTAC(BTB) 크기 증가
- 용량이 48 KB → 64 KB로 증가
- associativity가 3-way → 4-way로 증가
- 용량이 32 KB → 32 KB ~ 64 KB로 증가
- associativity가 2-way → 4-way로 증가
Cortex-A72의 후속 모델로 발표되었으나, 태생적으로 A57 - A72의 계보를 잇는 ARM의 오스틴 연구소의 결과물이 아니라 이전 A12 - A17의 계보를 잇는 프랑스 소피아 설계팀의 작품이다. 코드네임은 Artemis.
특징으로는 이전 Cortex A72는 A57의 원형을 유지하며 양산성을 높인 형태라면, A73은 최대한의 컴팩트함을 추구한 최적화 버전이다. 이전 A15/57에서 19스테이지까지 올라간 파이프라인을 A72에서는 16 스테이지까지 낮췄으나 컴팩트 버전의 A73에서는 11스테이지 까지 스테이지의 깊이를 낮추었다. LITTLE 코어로 사용되는 상대적으로 저전력인 Cortex A53이 8개 스테이지의 파이프라인을 가지고 있다는 것과 비교하면 상당한 최적화가 이루어진 것으로 추정된다.
A73은 A72의 개선된 버전이며 면적당 성능비가 40% 향상되고, 20%이상 전력효율이 증가하였으며 10nm공정에 최적화 되어있다고 발표했다.
하지만 Cortex A72와 비교했을 때 절대적 성능은 크게 오르지 않았다. 시제품에서 IPC상승은 10% 정도.
=====# 여담 #=====
퀄컴 스냅드래곤 835에 사용되는 Kryo 280이 해당 아키텍처를 약간 커스텀해 만들어졌다.
3.2.3. Cortex-A75 (2017년)
- 코어 레벨 (Cortex-A73 대비)
- 프론트 엔드
- 분기 예측 개선
- 디코더가 2개 → 3개로 증가
- 백 엔드
- 메모리 서브시스템
- 프리페칭 개선
ARM의 첫 ARM v8.2명령어를 지원하는 CPU이다. 같은 공정일 때 A73 대비 20% 내외의 성능 향상이 있으며, 10nm 공정에서 최대 3GHz가 가능해 더 높은 클럭의 AP를 만들 수 있다. 이는 이전 A73의 낮은 성능 향상폭으로 인한 갈증을 어느 정도 채워주는 수준. 코드네임은 Prometheus.
이보다 흥미로운 건 DynamIQ 기술이 가능한 첫 프로세서이다. DynamIQ는 big.LITTLE의 후속기술이며 다양한 목적의 코어를 하나로 묶어 더 효율적으로 사용할 수 있다. 기존 빅리틀은 고성능, 저성능 2가지를 묶는 방식이지만, 다이나믹을 이용한다면 고성능, 중성능, 저성능의 조합이 가능해진다. 또한 1+7, 2+6, 4+4 등 다양하게 코어 갯수를 설계할 수 있으며 향후의 ARM v8.2 명령어를 탑재한 IP들에 호환된다. 다만 삼성에서 기존 DynamlQ의 지원이 불가능한 ARMv8.1의 코어들로 2+6 구조의 AP를 생산하는 것을 보면, DynamlQ 없이도 복잡한 방법으로 비슷하게 구현은 할 수 있던 것으로 추정된다.[9]
다만 A73까진 L2 캐시 메모리가 공유 LLC 메모리 계층이였고, CCI가 Cache coherency를 보장했던 것과 달리 L3 캐시 메모리가 공유 LLC 메모리 계층이 되면서 코어 클러스터의 크기가 커지는 문제가 생겼다. 이에 따라 플래그십 스마트폰을 위한 고성능 AP개발이 아닌, 차량용 반도체나 저가 반도체에 사용하기에 단가가 높아진다는 단점으로 작용하게 되었다.
3.2.4. Cortex-A76 (2018년)
- 코어 레벨 (Cortex-A75 대비)
- 프론트 엔드
- 분기 예측 개선
- 디코더가 3개 → 4개로 증가
- 백 엔드
- 메모리 서브시스템
- 프리페칭 개선
Cortex-A73, Cortex-A75에 비해 최대 성능은 35% 향상되었으며, 40% 정도 전력 효율이 개선되었다. 그리고 SIMD/부동 소수점 연산 파이프 라인이 향상돼 부동소수점 연산 성능이 35% 이상 개선됐다. 이외에 머신 러닝 성능 4배 개선됐고, 메모리 대역폭이 90% 정도 확장됐다. 코드네임은 Enyo.
3.2.5. Cortex-A77 (2019년)
- 코어 레벨 (Cortex-A76 대비)
- 프론트 엔드
- 분기 예측 개선
- 1.5K 크기의 Mop 캐시 추가
- 프론트엔드의 대역폭이 사이클당 4 Mops → 6 Mops로 증가
- 백 엔드
- 재정렬 버퍼의 크기가 128 엔트리 → 160 엔트리로 25% 증가
- ALU의 수가 3개 → 4개로 증가
- 분기 유닛의 수가 1개 → 2개로 증가
- 정수 곱셈의 실행 레이턴시 개선
- 메모리 서브시스템
- 프리페칭 개선
- 명령어 프리페칭을 위한 분기예측 대역폭 개선 (사이클당 32B → 64B)
- L1 BTB의 크기가 16 엔트리 → 64 엔트리로 증가
- 주 BTB의 크기가 6K 엔트리 → 8K 엔트리로 증가
- ARM에 따르면 적중률은 85% 이상이라고 한다.
- 분기 예측 실패 패널티가 감소
같은 공정의 Cortex-A76 대비 최대 성능이 20% 향상되었다. 코드네임은 Deimos.
3.2.6. Cortex-A78 (2020년)
- 코어 레벨 (Cortex-A77 대비)
- 프론트 엔드
- 분기 예측 개선
- 백 엔드
- 정수 곱셈기의 수가 1개 → 2개로 증가
- 메모리 서브시스템
- 로드/스토어 유닛
- L2 캐시
- 프리페칭 개선
- 로드 전용 AGU 1개 추가로 AGU의 수가 총 2개 → 3개로 증가
- 로드 대역폭 50% 증가
- 스토어 대역폭이 2배로 증가
- 대역폭이 2배로 증가
5nm 공정을 타겟으로 개발된 ARMv8 아키텍처의 마지막 레퍼런스 프로세서. 코드네임은 Hercules.
성능은 ARM 공식 발표 상 SPECint2006 기준 Cortex-A77 대비 20% 상승하였으며, 동일 클럭 기준으로는 8% 상승하였다.
=====# 여담 #=====
발표 후 3년이 넘어가는 2023년 기준으로는 A700번대 시리즈가 새롭게 등장했지만, 여전히 스냅드래곤 7s Gen 2를 비롯한 신규 중급기 AP들에 채택되고 있다. 이에 대해서는 고클럭 구간이 아닐 경우 A700번대 시리즈가 A78 대비 성능 및 전성비 측면에서 의미있는 차이가 없기 때문이라는 분석이 존재한다. 가능한 최대한의 성능을 달성하기 위해 클럭을 높게 올리는 플래그십 AP들과는 달리, 중급기 이하의 AP들은 클럭을 높게 올리지 않기 때문에 면적 증가 및 신규 코어 라이센스로 인한 비용 지출 대비 이익이 거의 없게 된다. 덕분에 함께 리틀코어로 조합되는 Cortex-A55 또한
그러나 2024년 공개된 미디어텍의 Dimensity 7300/7300X에서 또 Cortex-A78과 Cortex-A55가 채택되면서 계속해서 사용되고 있다.
3.2.6.1. Cortex-A78C (2020년)
퀄컴의 요청에 의해 A78을 기반으로 노트북, 클램쉘, 패드 제품을 위해 커스텀된 고성능 코어.
최대 8코어로 구성이 가능하다.
이후 ARM Cortex-X 시리즈로 이어지게 된다. #. 코드네임은 Hera Prime.
3.3. Cortex-A30 시리즈
3.3.1. Cortex-A35 (2015년)
- Cortex-A7 대비 개선점
- 효율성 극대화를 위해 명령어 페치 유닛 재설계.
- 메모리 스트리밍 퍼포먼스에서 고성능 L1, L2 메모리 서브시스템 결과 최대 3.75배의 향상.
- 지역 고효율 NEON, 부동 소수점 파이프라인으로 부동 소수점과 DSP 작업 성능 향상
- 새로운 전력 관리 기술 지원
2015년 11월에 발표된 ARMv8-A 명령어셋 기반 CPU 마이크로아키텍처이며, Cortex-A5와 A7의 포지션을 잇는 후속작이다. 코드네임은 Mercury.
Cortex-A53을 기반으로 설계된 저전력 프로세서다. 때문에 많은 부분에서 Cortex-A53과 유사성을 가진다.
Cortex-A35는 8스테이지의 파이프라인을 가지고 있고 성능은 A7 대비 정수 연산에선 1.06배, 부동 소수점 연산에선 1.36배, 브라우징에선 1.16배, 긱벤치 MPI에선 1.4배의 성능 향상이 있다. 세 번째 사진에서 알 수 있듯이 엄청나게 유연한 설계가 가능하다. 28nm 쿼드 코어 구성에서 10배 더 작은 싱글 코어 구성까지 가능한 정도.
=====# 여담 #=====
2010년대 중~후반 기준 64비트 ARM 프로세서 중 전성비가 가장 높음과 동시에 다이 면적을 축소하여 비용을 절감시킨 프로세서이며 ARM 사의 주장에 따르면 28nm 공정 기준 90mW로 1GHz까지도 가능하다고 한다. 동시대의 다른 프로세서와 비교하면 ARM Cortex-A57 2.1GHz(14LPE)가 풀 로드 시 코어당 1.3W의 전력 소모, Cortex-A72 2.3GHz(16FF+)가 1.5W의 전력 소모, [email protected]가 14nm 공정에서 200mW의 전력 소모를 보여준다. A57이나 A72는 물론, 그동안 리틀 코어를 담당했던 A53에 비해서도 매우 전성비가 좋은 편이다. 물론 이는 폴락의 법칙과도 관련 있는 부분이기도 하지만...
Cortex-A53과 ARM big.LITTLE 솔루션으로 구성이 가능하다. A72와도 가능한 모양.
참고로 해당 IP를 처음으로 탑재한 AP는 Helio X30.
3.3.2. Cortex-A32 (2016년)
2016년 2월 22일에 발표된 마이크로아키텍처. ARMv8-A 명령어 셋을 내장하였으나, 특이하게도 Cortex-A35와는 다르게 AArch32만 지원하고 AArch64는 지원하지 않는다. 즉, Arm 레퍼런스 마이크로아키텍처로써 마지막 32비트 ARM 마이크로아키텍처인 셈. 코드네임은 Minerva.
대체로 전세대의 Cortex-A5 대비 30% 이상, Cortex-A7과 비교해도 5~25% 높은 성능을 보여주며 제작사의 주장으로는 10년 전의 Cortex-A9와 유사한 성능이라고 한다. 위의 그림에서 스트리밍과 암/복호화에서 5배수 이상의 성능향상을 보여주는 것은 NEON SIMD 유닛의 성능 향상과 전용 암/복호화 명령어셋-하드웨어에 의한 것임을 상기할 필요가 있다. 전성비 역시 Cortex-A5와 Cortex-A7 대비 각각 30%와 25% 이상 향상된 것으로 알려졌다. #
=====# 여담 #=====
64비트를 포기한 프로세서답게 Cortex-A 라인업 중에서 최고의 전성비를 자랑하며 MCU급의 소형 임베디드 분야 중 고스펙 OS, 즉 리눅스나 안드로이드, 윈도우즈 등이 필요한 시장을 타겟으로 삼고 있다.
3.3.3. Cortex-A34 (2019년)
2019년에 발표된 Cortex-A30 시리즈 중 최신 마이크로아키텍처. ARMv8-A 명령어 셋 중에 AArch32 전용이었던 Cortex-A32와는 다르게 이쪽은 AArch64 전용이기 때문에, Arm 레퍼런스 마이크로아키텍처로써 최초의 AArch64 전용 마이크로아키텍처라고 볼 수 있다. 코드네임은 Metis.
3.4. Cortex-A60 시리즈
3.4.1. Cortex-A65
ARM 최초의 SMT지원 프로세서. Cortex-A55를 기반으로 제작된 고성능 고효율 프로세서다. 코드네임은 Helios.
단독으로 사용 할 수 있으며, big-LITTLE 구성으로도 사용 할 수 있다. big-LITTLE 구성으로 사용 할 경우 LITTLE로 사용된다.
=====# 여담 #=====
추후 A65에 서버용 기능이 추가되어 Neoverse E1으로 발표되었다.
4. ARMv9-A
ARMv8 ISA가 ARMv8.6-A까지 발전하는 와중에, 실제 개발된 ARM의 레퍼런스 코어는 ARMv8.2-A만 존재하며, 커스텀의 경우에도 애플만이 ARMv8.4-A를 구현하고 있는 상황이었다. 이에 차세대 ISA인 ARMv9에서는 ARMv8.6까지 개발된 기능들을 모두 구현하며, 보안 능력과 딥러닝 연산 능력의 강화에 집중하고 있다.
또한 32비트인 AArch32 지원을 중단하고 64비트인 AArch64 전용으로 완전하게 전환된다. 이로서 AArch32 지원에 사용하던 트렌지스터까지 모두 할당해 20% 추가 성능 향상이 있을 것으로 기대한다. #
코어들의 코드명은 산 이름에서 유래했다.[10]
4.1. Cortex-A700 시리즈
4.1.1. Cortex-A710 (2021년)
ARMv9 아키텍처를 지원하는 첫 고성능 CPU이다. 코드네임은 Matterhorn. 이전 A78 대비 성능은 10% 향상되었고, 소비전력은 30% 개선되었다. 또한 머신러닝 성능이 두 배 향상되었다.
=====# 여담 #=====
X2나 A510과 달리 32비트 처리 기능을 남겨두었다. ARM의 말에 따르면 여전히 남아있는 32비트 앱들에 대응하기 위해서라고 한다. 이는 A510의 개발 일정이 지연되어 본래 지원하기로 되어있던 32비트 처리 기능이 빠졌기 때문인데, 최신버전의 A510에서는 32비트 처리 기능이 추가되어 A715에서는 다시 32비트 처리 기능이 빠지게 되었다.
4.1.2. Cortex-A715 (2022년)
ARMv9 레퍼런스 코어. 코드네임 Makalu.
Aarch64만을 지원하는 첫 Arm big CPU이다. A710와 동일한 면적으로 5% 성능 증가를 이뤄냈다.
4.1.3. Cortex-A720 (2023년)
A715를 기반으로 제작된 ARMv9.2 레퍼런스 코어. 코드네임 Hunter. A710과 동일한 면적, A715보다 더 개선된 성능을 제공한다.
32비트 레이어를 제거해 완전한 64비트 CPU가 되었으며, 덕분에 A715 대비 전력효율은 20% 향상되었다.
=====# 여담 #=====
추가로 A78과 비슷한 면적으로 더 높은 성능을 제공하는 최소면적 옵션이 존재한다. 아직도 A78과 A55를 주력으로 사용하는 중저가형 기기들이 Armv9으로 이행하는 것을 가속화 할 예정이다.
4.1.4. Cortex-A725 (2024년)
A720을 기반으로 제작된 ARMv9.2 레퍼런스 코어. Logan, Hayes와 함께 big.Mid.LITTLE로 구성하거나 big.LITTLE로 구성 할 수 있다.
4.2. Cortex-A500 시리즈
4.2.1. Cortex-A510 (2021년)
ARMv9 아키텍처를 지원하는 첫 저전력 CPU이다. 코드네임은 Klein. 2017년 공개되었던 A55 이후로 4년 만에 발표된 후속작이다. 오랜만에 공개된 Arm의 레퍼런스 저전력 코어인 만큼 많은 부분이 변경되었다.
저전력과 고성능 두 마리 토끼를 한 번에 잡기 위해 Complex 구조를 채택하였으며, 두 개의 코어가 NEON/SVE2 SIMD 엔진과 TLB, 그리고 L2 캐시를 공유한다. 이를 통해 굉장히 큰 폭의 성능 개선이 있었지만, Area와 Power는 크게 증가하지 않았다. 물론 NEON/SVE와 TLB, L2를 코어 하나가 단독으로 사용하는 Single-core Complex 구성도 지원한다.
=====# 여담 #=====
Single-core Complex로 구성하여 Noverse E시리즈로 활용할 수 있으며, Neoverse E2의 포지션을 담당하고 있지만 공식적으로 E2로 네이밍 되진 않았다.
반도체 제조사들 사이에선 LITTLE 코어인데 성능 개선에 너무 큰 욕심을 낸 아키텍쳐이며, 전력 소모가 기대했던 것보다 높아 LITTLE의 컨셉에 맞지 않는다는 불만이 잦다. 초기 목표와 다르게 32-bit 명령어를 지원하지 않으며, 추후 추가 예정이다.
2022년에 Aarch32를 지원하고, 소비 전력이 5% 개선 된 리프레시 버전의 A510이 발표되었다.
4.2.2. Cortex-A520 (2023년)
Cortex‐A510의 후속 LITTLE 코어, Armv9.2 아키텍쳐를 지원한다. 코드네임 Hayes.
A510의 기반을 유지하며 더 높은 동작클럭, 저전력 그리고 더 높은 보안성을 목표로 개발 된 프로세서.
32비트 레이어를 제거해 완전한 64비트 CPU가 되었으며, 덕분에 A510 대비 전력 효율은 22% 향상되었다.
추가로, 2024년에 ARM에서 TSMC 3nm공정에 최적화한 A520 리비전을 공개했다.
기존 A520대비 15%의 전력 효율 향상을 달성했다고 한다.
5. 관련 문서
[1]
굳이 언급하자면 ARM사의 Cortex-A 제품의 3단계 라인업은 사전에 설정된 라인업이라기 보다는 사후 정리에 가깝다. 예를 들어 Cortex-A9의 출시 시점에서는 아예 3단계 구분이 가능할 만큼 제품의 종류가 많지 않아서 Cortex-A9가 올라운드 플레이를 해야하는 상황이었고, Cortex-A7과 Cortex-A15의 big.LITTLE 솔루션이 출현하는 시점에서는 오히려 빅 코어와 리틀 코어라는 2단계 구분법이 더 합리적이더라는 측면도 있었기 때문.
[2]
단,
분기 예측기가 아직 탑재되지 않았기 때문에 비유적으로 완전하지 않다.
[3]
인텔 x86 호환 CPU에서는
비순차적 실행 기능이 도입되기 이전인 P5 마이크로아키텍처 기반의 펜티엄부터 탑재되었다.
[4]
밑에서 각 A,B,C로 지칭
[5]
2014년 10월 1일
ARM 홈페이지에서 공식적으로 Cortex-A12를 Cortex-A17 라인으로 편입시켰다.
[6]
큰 차이가 없는 성능이기는 하지만, 엑시노스 5430 vs 5433을 비교해보면, 쿼드코어 기준 A53은 A7 대비 거의 2배의 전력소비가 있다.
http://www.anandtech.com/show/8718/the-samsung-galaxy-note-4-exynos-review/4
[7]
스냅드래곤 810...
[8]
자체 커스텀 모델로 보이며 a53 쿼드코어 1.2~ 1.8ghz 로 동작한다. 다만, 테스트 기기의 버벅임 때문에 최적화 논란이 일고 있는 상황
[9]
이전 미디어텍의 10코어 AP도 big.LITTLE의 구현의 중심에 있는 캐쉬 동기화 기능을 하는 CCI파트를 커스텀으로 구현하였다.
[10]
여담으로 Cortex-A 시리즈를 라이센싱하여 사용하는
삼성 엑시노스의 플래그십 라인업 또한 산 이름을 코드명으로 사용하는데, 이 때문에 Cortex-A715의 코드명이
엑시노스 9820와 겹치는
Makalu가 되었다.
[11]
여러 가지 이유로 암호화 알고리즘 가속기인 Cryptography Extension의 무료 버전을 공개했다, 물론 무료 버전을 사용하면 Arm의 지원을 받을 수 없다. 이 링크를 통해 출시 예정인 신제품들의 코드네임을 파악 할 수 있다.