AArch64
(ARM 64에서 넘어옴)
AArch64 또는 ARM64는 ARM 아키텍처 제품군의 64비트 실행 상태이다. Armv8-A 아키텍처로 처음 도입되었으며 많은 확장 업데이트가 있었다.[1]
AArch64 실행 상태
편집명명 규칙
편집- 64비트:
- 실행 상태: AArch64.
- 명령어 집합: A64.
- 32비트:
- 실행 상태: AArch32.
- 명령어 집합: A32 + T32.
- 예: ARMv8-R, Cortex-A32.[2]
AArch64 기능
편집- 새로운 명령어 집합, A64:
- 31개의 범용 64비트 레지스터가 있다.
- 전용 0 또는 스택 포인터(SP) 레지스터가 있다(명령어에 따라 다름).
- 프로그램 카운터(PC)는 더 이상 레지스터로 직접 액세스할 수 없다.
- 명령어는 여전히 32비트 길이이며 대부분 A32와 동일하다(LDM/STM 명령어 및 대부분의 조건부 실행이 삭제됨).
- LDM/STM 대신 로드/스토어 쌍이 있다.
- 대부분의 명령(분기 제외)에는 예측이 없다.
- 대부분의 명령어는 32비트 또는 64비트 인수를 사용할 수 있다.
- 주소는 64비트로 가정된다.
- 고급 SIMD(Neon) 향상:
- 32 × 128비트 레지스터(최대 16개)가 있으며 VFPv4를 통해서도 액세스할 수 있다.
- 배정밀도 부동 소수점 형식을 지원한다.
- IEEE 754를 완벽하게 준수한다.
- AES 암호화/해독 및 SHA-1/SHA-2 해싱 명령어도 이러한 레지스터를 사용한다.
- 새로운 예외 시스템:
- 뱅크 레지스터 및 모드 수가 적다.
- 64비트로 쉽게 확장할 수 있도록 설계된 기존 LPAE(Large Physical Address Extension)를 기반으로 48비트 가상 주소에서 메모리 변환.
확장: 데이터 수집 힌트(ARMv8.0-DGH).
AArch64는 ARMv8-A에 도입되었으며 ARMv8-A의 후속 버전에 포함된다. ARMv8-A에 도입된 후 ARMv8-R에도 옵션으로 도입되었다. ARMv8-M에는 포함되지 않는다.
ARM-A
편집- ARMv8.1-A
- ARMv8.2-A
- ARMv8.3-A
- ARMv8.4-A
- ARMv8.5-A 및 ARMv9.0-A
- ARMv8.6-A 및 ARMv9.1-A
- ARMv8.7-A 및 ARMv9.2-A
- ARMv8.8-A 및 ARMv9.3-A
- ARMv8.9-A 및 ARMv9.4-A
- ARMv9.5-A
- ARMv9.6-A
각주
편집- ↑ “Overview”. 《Learn the architecture: Understanding the Armv8.x and Armv9.x extensions》.
- ↑ “Cortex-A32 Processor – ARM”. 2016년 12월 18일에 확인함.