# Arm, Arm ARM, Armv9, ARM9, ARM64, Aarch64, A64, A78,.. 구분하기

> Clean Markdown view of GeekNews topic #8687. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=8687](https://news.hada.io/topic?id=8687)
- GeekNews Markdown: [https://news.hada.io/topic/8687.md](https://news.hada.io/topic/8687.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2023-03-14T10:03:01+09:00
- Updated: 2023-03-14T10:03:01+09:00
- Original source: [nickdesaulniers.github.io](https://nickdesaulniers.github.io/blog/2023/03/10/disambiguating-arm/)
- Points: 14
- Comments: 3

## Topic Body

Arm 에코시스템 입문자를 위한 용어 정리   
- Arm 아키텍처는 심플 어드레싱 모드를 가진 RISC 제품군  
- Arm Limited는 Arm 아키텍처를 관리하는 영국 회사   
- ARM 은 Acorn RISC Machine 에서 Advanced RISC Machines 가 된 것   
- Arm ARM(Architecture Referecnce Manual) 은 Arm 에 대한 프로그래밍 매뉴얼   
- Armv9 는 아키텍처 제품군중 최신(글쓴 현재). SIMD 벡터(SVE) 와 매트릭스 연산(SME/SME2) 등을 추가   
- Armv9.4-A 는 Armv9 의 최신 확장 배치. 이 확장들은 Arm ARM에 문서화 되어있음. 일부 확장은 도입 당시에는 선택인데, 향후 버전에서는 필수 사항이 될 예정   
- Armv9.4-A 의 A 는 "Application Profile"을 의미. MMU를 통해서 가상 메모리를 지원하며, 폰/노트북/서버등 모든 Arm 시스템에서 볼 수 있음.   
실시간 시스템을 위한 "R" 이나, MMU가 없는 마이크로컨트롤러용 "M" 같은 것도 있음.   
이 세개의 아키텍처 프로파일 역시 "A" "R" "M"  
- AArch64 는 ARMv8에서 도입된 "execution state". 64b 레지스터를 지원(31개의 일반용 레지스터, 전용 64b 스택 포인터, 64b 프로그램 카운터, zero-value pseudo 레지스터)  
이와 함께 ARMv7 에서 사용되던 32b 기능을 AArch32라고 명명   
- 흥미롭게도 Arm ARM에선 ARM64 용어를 언급하지 않음 (애플, 마이크로소프트, 리누스 토발즈는 이걸 선호)  
이 이름은 궁극적으로는 의미가 있음; arm64 리눅스 커널은 AArch64 또는 AArch32 execution state에서 사용자 공간 코드를 실행가능하지만, 커널 자체는 AArch64 전용임   
- A64는 AArch64에서 소개된 명령어 셋. 실제로는, AArch64가 지원하는 유일한 명령어 셋임. AArch64의 레지스터는 64b지만, 명령어 자체는 아직 32b(고정폭)  
A32 는 예전 ISA를 의미. 이 역시 32b 고정폭. T32는 Armv8 이전에 사용하던 명령어 셋으로 32b 와 16b Thumb2 을 의미   
- A64와 혼동하지 말아야할 것으로 "A78"로 코어를 지칭하는게 있는데 이것은 Cortex-A78.   
Arm은 Arm 아키텍처 뿐만 아니라, 우리가 마이크로 아키텍처라 부르는 아키텍처 구현체도 설계함. 뒤에오는 숫자와 상관없이 Cortex 또는 Neoverse 라는 단어가 보이면 이것들은 Arm 이 설계한 마이크로 아키텍처임.  
예를 들어서 Cortex-A78은 ArmV8.3 까지의 확장을 구현함. 위키피디아에는 이걸 정리한 [템플릿](https://en.wikipedia.org/wiki/Template:Application_ARM-based_chips)이 있음   
- DynamIQ(이전의 bit.LITTLE)은 멀티코어에서 동종(homogeneous)이 아닌 이기종(Heterogeneous) 코어를 사용한다는 아이디어를 기반으로 함   
이 디자인의 장점은 서로 다른 때에 서로 다른 일을 잘할 수 있다는 것. 성능이 필요할 때는 큰전력을 소모하는 Out-of-order 프로세서를, 전력 소모를 줄이기 위해서는 느린 in-order 코어를 사용  
인텔이 Alder Lake에 성능/효율 코어를 활용하는 비슷한 작업을 하는 것을 보는게 흥미로움   
- 레퍼런스 매뉴얼을 뒤져보면 다양한 Execution State들이 흥미롭게 발전함 : A55, X1, X3 등   
- 레거시 용어들   
  - ARM9 는 Armv9와 혼동하면 안됨. 코어 제품군으로 일부는 ARMv4t 를 구현하고, 일부는 ARMv5를 구현함   
  - StrongARM은 ARMv4 CPU 시리즈로 DEC가 만든 것. 인텔은 소송 합의 통해서 이 IP를 획득했고 결국 XScale 이라는 자신들만의 ARMv5 마이크로 아키텍처를 디자인   
결국엔 인텔은 XScale을 사용하던 PXA SoC 제품군을 Marvell에 매각. 인텔이 Atom과 함께/또는 XScale을 고수했다면 세상이 어땠을지 궁금   
  - ARMv4는 Thumb라고 부르는 압축 명령어 세트를 도입. 명령어들은 16b 고정폭   
  - ARMv6t2 는 Thumb2 를 도입. 32b 명령어 및 UAL(Unified Assembly Language)등을 지원

## Comments



### Comment 15213

- Author: roxie
- Created: 2023-03-16T13:46:17+09:00
- Points: 1

Arm ARM은 아무리 봐도 노린거같네요 ㅌㅌ

### Comment 15214

- Author: roxie
- Created: 2023-03-16T13:46:24+09:00
- Points: 1
- Parent comment: 15213
- Depth: 1

*ㅋㅋ

### Comment 15183

- Author: eususu
- Created: 2023-03-14T16:36:17+09:00
- Points: 1

Arm ARM 은 꼭 기억에 남을 것 같습니다 :)
