AArch64
| 파일:AArch64 logo.svg | |
| 발표 | 2011년 |
|---|---|
| 버전 | ARMv8-A, ARMv8-R, ARMv9-A |
| 인코딩 | AArch64/A64 및 AArch32/A32는 32비트 명령어를 사용하며, AArch32/T32 (Thumb-2)는 16비트와 32비트 혼합 명령어를 사용함[1] |
| 엔디언 | 데이터에 대해서만 바이엔디언 (기본값은 리틀 엔디언, 명령어는 리틀 엔디언) |
| 확장 | |
| 레지스터 | |
| 범용 목적 | 31 × 64비트 정수 레지스터[1] |
| 부동소수점 | 32 × 128비트 레지스터[1] (스칼라 32 및 64비트 부동소수점 또는 SIMD 부동소수점 또는 정수용, 또는 암호화용) |
AArch64 또는 ARM64는 널리 사용되는 컴퓨터 프로세서 설계 세트인 ARM 아키텍처의 64비트 버전이다. 2011년 ARMv8 아키텍처와 함께 도입되었으며 나중에 ARMv9 시리즈의 일부가 되었다. AArch64를 사용하면 프로세서가 이전의 32비트 버전보다 더 많은 메모리를 처리하고 더 빠른 계산을 수행할 수 있다. 이는 AArch32로 알려진 이전 32비트 모드와 함께 작동하도록 설계되어 광범위한 소프트웨어와의 호환성을 허용한다. AArch64를 사용하는 장치에는 스마트폰, 태블릿, 개인용 컴퓨터 및 서버가 포함된다. AArch64 아키텍처는 성능, 보안 및 고급 컴퓨팅 작업에 대한 지원을 개선하는 업데이트를 통해 계속 진화하고 있다.[2]
AArch64 실행 상태
ARMv8-A, ARMv8-R 및 ARMv9-A에서 "실행 상태"(Execution state)는 프로세서 환경의 주요 특성을 정의한다. 여기에는 기본 프로세서 레지스터에 사용되는 비트 수, 지원되는 명령어 집합 및 프로세서 실행 환경의 기타 측면이 포함된다. 이러한 버전의 ARM 아키텍처는 64비트 AArch64 상태와 32비트 AArch32 상태의 두 가지 실행 상태를 지원한다.[3]
명명 규칙
- 64비트:
- 실행 상태: AArch64
- 명령어 집합: A64
- 32비트:
- 실행 상태: AArch32
- 명령어 집합: A32 + T32
- 예: ARMv8-R, Cortex-A32[4]
AArch64 기능
- 새로운 명령어 집합, A64:
- 향상된 고급 SIMD (Neon):
- 32 × 128비트 레지스터를 가짐 (16개에서 증가), VFPv4를 통해서도 접근 가능
- 배정밀도 부동소수점수 지원
- IEEE 754 완벽 준수
- AES 암호화/복호화 및 SHA-1/SHA-2 해싱 명령어도 이 레지스터를 사용함
- 새로운 예외 시스템:
- 뱅크드(banked) 레지스터와 모드가 줄어듦
- 64비트로 쉽게 확장되도록 설계된 기존의 대용량 물리 주소 확장(LPAE)을 기반으로 한 48비트 가상 주소로부터의 메모리 변환
확장: 데이터 수집 힌트 (ARMv8.0-DGH).
AArch64는 ARMv8-A에서 도입되었으며 이후 버전의 ARMv8-A 및 모든 버전의 ARMv9-A에 포함되어 있다. 또한 ARMv8-A 도입 이후 ARMv8-R에서도 옵션으로 도입되었으나, ARMv8-M에는 포함되지 않는다.
A64 명령어 형식
A64 명령어가 속한 그룹을 선택하기 위한 주요 연산 코드(opcode)는 25~28비트에 위치한다.
| 유형 | 비트 | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 예약됨 | 0 | op0 | 0 | 0 | 0 | 0 | op1 | |||||||||||||||||||||||||
| SME | 1 | op0 | 0 | 0 | 0 | 0 | 가변적 | |||||||||||||||||||||||||
| 미할당 | 0 | 0 | 0 | 1 | ||||||||||||||||||||||||||||
| SVE | 0 | 0 | 1 | 0 | 가변적 | |||||||||||||||||||||||||||
| 미할당 | 0 | 0 | 1 | 1 | ||||||||||||||||||||||||||||
| 데이터 처리 — 즉시 PC-상대 | op | immlo | 1 | 0 | 0 | 0 | 0 | immhi | Rd | |||||||||||||||||||||||
| 데이터 처리 — 즉시 기타 | sf | 1 | 0 | 0 | 01–11 | Rd | ||||||||||||||||||||||||||
| 분기 + 시스템 명령어 | op0 | 1 | 0 | 1 | op1 | op2 | ||||||||||||||||||||||||||
| 로드 및 스토어 명령어 | op0 | 1 | op1 | 0 | op2 | op3 | op4 | |||||||||||||||||||||||||
| 데이터 처리 — 레지스터 | sf | op0 | op1 | 1 | 0 | 1 | op2 | op3 | ||||||||||||||||||||||||
| 데이터 처리 — 부동소수점 및 SIMD | op0 | 1 | 1 | 1 | op1 | op2 | op3 | |||||||||||||||||||||||||
ARM-A (애플리케이션 아키텍처)
2011년 10월에 발표된[5] ARMv8-A는 ARM 아키텍처의 근본적인 변화를 나타낸다. 이는 "AArch64"라고 불리는 선택적 64비트 실행 상태와 관련 새로운 "A64" 명령어 집합을 추가하며, 기존의 32비트 "A32"(오리지널 32비트 ARM) 및 "T32"(Thumb/Thumb-2) 명령어 집합을 지원하는 32비트 실행 상태인 "AArch32"도 함께 지원한다. 후자의 명령어 집합은 기존의 32비트 ARMv7-A 아키텍처와 사용자 공간 호환성을 제공한다. ARMv8-A를 사용하면 64비트 OS에서 32비트 애플리케이션을 실행할 수 있으며, 32비트 OS를 64비트 하이퍼바이저의 제어 하에 둘 수 있다.[1] ARM은 2012년 10월 30일에 Cortex-A53 및 Cortex-A57 코어를 발표했다.[6] 애플은 소비자 제품(iPhone 5S)에 ARMv8-A 호환 코어(Cyclone)를 최초로 출시했다. AppliedMicro는 FPGA를 사용하여 ARMv8-A를 최초로 시연했다.[7] 삼성전자의 첫 번째 ARMv8-A SoC는 갤럭시 노트4에 사용된 엑시노스 5433으로, Big.LITTLE 구성의 Cortex-A57 및 Cortex-A53 코어 4개씩 두 개의 클러스터를 특징으로 하지만 AArch32 모드에서만 실행된다.[8] ARMv8-A는 AArch32와 AArch64 모두에서 VFPv3/v4 및 고급 SIMD(Neon)를 표준 기능으로 포함한다. 또한 AES, SHA-1/SHA-256 및 유한체 산술을 지원하는 암호화 명령어를 추가한다.[9]
ARMv8-A 프로세서는 AArch32와 AArch64 중 하나 또는 둘 다를 지원할 수 있다. 낮은 예외 레벨에서는 AArch32와 AArch64를 지원하고 높은 예외 레벨에서는 AArch64만 지원할 수도 있다.[10] 예를 들어, ARM Cortex-A32는 AArch32만 지원하고, ARM Cortex-A34는 AArch64만 지원하며, ARM Cortex-A72는 AArch64와 AArch32를 모두 지원한다.[11] ARMv9-A 프로세서는 모든 예외 레벨에서 AArch64를 지원해야 하며, EL0에서 AArch32를 지원할 수 있다.[10]
ARMv8.1-A
2014년 12월, "v8.0에 비해 점진적인 이점"을 가진 업데이트인 ARMv8.1-A가 발표되었다.[12] 향상된 기능은 명령어 집합의 변경과 예외 모델 및 메모리 변환의 변경이라는 두 가지 범주로 나뉜다.
명령어 집합의 향상된 기능은 다음과 같다.
- AArch64 원자적 읽기-쓰기 명령어 세트.
- 일부 라이브러리 최적화를 가능하게 하기 위해 AArch32 및 AArch64 모두를 위한 고급 SIMD 명령어 집합 추가:
- Signed Saturating Rounding Doubling Multiply Accumulate, Returning High Half.
- Signed Saturating Rounding Doubling Multiply Subtract, Returning High Half.
- 명령어가 벡터 및 스칼라 형식으로 추가됨.
- 구성 가능한 주소 영역으로 제한된 메모리 접근 순서를 제공할 수 있는 AArch64 로드 및 스토어 명령어 세트.
- v8.0의 선택적 CRC 명령어가 ARMv8.1에서 필수 사항이 됨.
예외 모델 및 메모리 변환 시스템의 향상된 기능은 다음과 같다.
- 새로운 PAN(Privileged Access Never) 상태 비트는 명시적으로 활성화되지 않는 한 사용자 데이터에 대한 특권 접근을 방지하는 제어 기능을 제공함.
- 가상화를 위한 VMID 범위 증가; 더 많은 수의 가상 머신 지원.
- 페이지 테이블 접근 플래그의 하드웨어 업데이트에 대한 선택적 지원 및 선택적인 하드웨어 업데이트 더티 비트 메커니즘의 표준화.
- 가상화 호스트 확장(Virtualization Host Extensions, VHE). 이러한 향상된 기능은 호스트와 게스트 운영 체제 간의 전환 시 발생하는 소프트웨어 오버헤드를 줄여 유형 2 하이퍼바이저의 성능을 개선함. 이 확장을 통해 호스트 OS는 실질적인 수정 없이 EL1 대신 EL2에서 실행될 수 있음.[13]
- OS에 하드웨어 지원이 필요하지 않은 경우 운영 체제 용도로 일부 변환 테이블 비트를 해제하는 메커니즘.
- 메모리 태깅을 위한 Top byte ignore.[14]
ARMv8.2-A
ARMv8.2-A는 2016년 1월에 발표되었다.[15] 향상된 기능은 네 가지 범주로 나뉜다.
- 선택적 반정밀도 부동소수점 데이터 처리 (반정밀도는 이미 지원되었지만 처리가 아닌 저장 형식으로만 지원되었음.)
- 메모리 모델 향상.
- RAS 확장(RAS Extension) 도입.
- 통계적 프로파일링 도입.
확장형 벡터 확장 (SVE)
확장형 벡터 확장(Scalable Vector Extension, SVE)은 고능성 컴퓨팅 과학 워크로드의 벡터화를 위해 특별히 개발된 "ARMv8.2-A 아키텍처 이상에 대한 선택적 확장"으로 라이선스가 부여된다.[16][17] 사양에 따라 ARM 라이선스 사용자는 128비트 배수로 128에서 2048비트 사이의 하드코딩된 아키텍처 레지스터 너비를 선택할 수 있다. 이 확장은 NEON 확장을 보완하며 이를 대체하지 않는다.
512비트 SVE 변체는 후지쯔 A64FX ARM 프로세서를 사용하는 후가쿠 슈퍼컴퓨터에서 이미 구현되었다. 이 컴퓨터는[18] 2020년 6월부터[19] 2022년 5월까지[20] 2년 동안 세계에서 가장 빠른 슈퍼컴퓨터였다. 더 유연한 버전인 2x256 SVE는 AWS Graviton3 ARM 프로세서에 의해 구현되었다.
SVE는 GCC에서 지원되며, GCC 8은 자동 벡터화를 지원하고[17] GCC 10은 C 인트린직(intrinsics)을 지원한다. 2020년 7월 현재 LLVM과 클랭은 C 및 IR 인트린직을 지원한다. ARM 자체 LLVM 포크는 자동 벡터화를 지원한다.[21]
ARMv8.3-A
2016년 10월, ARMv8.3-A가 발표되었다. 향상된 기능은 여섯 가지 범주로 나뉜다.[22]
- 포인터 인증 (PAC)[23][24] (AArch64 전용); 새로운 블록 암호인 QARMA[25]를 기반으로 하는 아키텍처의 필수 확장(컴파일러는 보안 기능을 활용해야 하지만, 명령어가 NOP 공간에 있으므로 이전 칩에서 추가 보안을 제공하지는 않지만 하위 호환성을 유지함).
- 중첩 가상화 (AArch64 전용).
- 고급 SIMD 복소수 지원 (AArch64 및 AArch32); 예: 90도 배수 회전.
- 새로운 FJCVTZS (Floating-point 자바스크립트 Convert to Signed fixed-point, rounding toward Zero) 명령어.[26]
- C++11/C11의 (비기본) 약한 RCpc(Release Consistent processor consistent) 모델을 지원하기 위한 메모리 일관성 모델의 변경 (AArch64 전용) (기본 C++11/C11 일관성 모델은 이전 ARMv8에서 이미 지원되었음).
- 대규모 시스템 가시성 캐시를 위한 ID 메커니즘 지원 (AArch64 및 AArch32).
ARMv8.3-A 아키텍처는 이제 최소 GCC 7.0에서 지원된다.[27]
ARMv8.4-A
2017년 11월, ARMv8.4-A가 발표되었다. 향상된 기능은 다음 범주로 나뉜다.[28][29][30]
- "SHA3 / SHA512 / SM3 / SM4 암호화 확장", 즉 선택적 명령어.
- 가상화 지원 개선.[31]
- 메모리 파티셔닝 및 모니터링 (MPAM) 기능.
- 새로운 Secure EL2 상태 및 활동 모니터.
- 부호 있는 및 부호 없는 정수 스칼라곱(SDOT 및 UDOT) 명령어.
ARMv8.5-A 및 ARMv9.0-A
2018년 9월, ARMv8.5-A가 발표되었다. 향상된 기능은 다음 범주로 나뉜다.[32][33][34]
- 메모리 태깅 확장 (MTE) (AArch64).[35]
- "공격자가 임의의 코드를 실행할 수 있는 능력"을 줄이기 위한 분기 타겟 표시기 (BTI) (AArch64). 포인터 인증과 마찬가지로 관련 명령어는 이전 버전의 ARMv8-A에서 무연산(no-ops)이다.
- 난수 생성기 명령어 – "다양한 국내 및 국제 표준을 준수하는 결정론적 및 진정 난수 제공".
2019년 8월 2일, 구글은 안드로이드가 메모리 태깅 확장(MTE)을 채택할 것이라고 발표했다.[36]
2021년 3월, ARMv9-A가 발표되었다. ARMv9-A의 기준선은 ARMv8.5의 모든 기능이다.[37][38][39] ARMv9-A는 또한 다음을 추가한다.
- 확장형 벡터 확장 2 (SVE2). SVE2는 명령어당 더 많은 작업을 수행할 수 있도록 미세한 데이터 레벨 병렬성(DLP)을 높이기 위해 SVE의 확장 가능한 벡터화를 기반으로 구축되었다. SVE2의 목표는 현재 NEON을 사용하는 DSP 및 멀티미디어 SIMD 코드를 포함한 더 광범위한 소프트웨어에 이러한 이점을 제공하는 것이다.[40] LLVM/클랭 9.0 및 GCC 10.0은 SVE2를 지원하도록 업데이트되었다.[40][41]
- 트랜잭셔널 메모리 확장 (TME). x86 확장을 따라 TME는 하드웨어 트랜잭셔널 메모리 (HTM) 및 트랜잭셔널 락 엘리전(TLE) 지원을 제공한다. TME는 스레드당 더 많은 작업을 수행할 수 있도록 거친 스레드 레벨 병렬성(TLP)을 높이기 위해 확장 가능한 동시성을 제공하는 것을 목표로 한다.[40] LLVM/클랭 9.0 및 GCC 10.0은 TME를 지원하도록 업데이트되었다.[41]
- 기밀 컴퓨팅 아키텍처 (CCA).[42][43][44]
ARMv8.6-A 및 ARMv9.1-A
2019년 9월, ARMv8.6-A가 발표되었다. 향상된 기능은 다음 범주로 나뉜다.[32][45]
- 일반 행렬 곱셈 (GEMM).
- Bfloat16 형식 지원.
- SIMD 행렬 조작 명령어 (NEON에 추가됨):
- BFDOT* (BFloat16 스칼라곱)
- BFMMLA (BFloat16 행렬 곱셈 및 누산)
- BFMLAL* (BFloat16 곱셈 및 누산, long으로 확장)
- BFCVT* (BFloat16 변환)
- 가상화, 시스템 관리 및 보안을 위한 향상된 기능.
- 그리고 다음 확장 기능 (LLVM 11에서 이미 지원 추가됨):
- 향상된 카운터 가상화 (ARMv8.6-ECV).
- 미세 트랩 (ARMv8.6-FGT).
- 활동 모니터 가상화 (ARMv8.6-AMU).
예를 들어, 미세 트랩, WFE(Wait-for-Event) 명령어, EnhancedPAC2 및 FPAC가 있다. SVE 및 Neon을 위한 bfloat16 확장은 주로 딥 러닝 용도이다.[46]
ARMv8.7-A 및 ARMv9.2-A
2020년 9월, ARMv8.7-A가 발표되었다. 향상된 기능은 다음 범주로 나뉜다.[32][47]
- 확장형 행렬 확장 (SME) (ARMv9.2 전용).[48] SME는 다음과 같이 행렬을 효율적으로 처리하기 위한 새로운 기능을 추가한다.
- 행렬 타일 저장소.
- 즉석(On-the-fly) 행렬 전치.
- 타일 벡터 로드/스토어/삽입/추출.
- SVE 벡터의 행렬 외적.
- "스트리밍 모드" SVE.
- PCIe 핫 플러그에 대한 향상된 지원 (AArch64).
- 가속기에 대한 원자적 64바이트 로드 및 스토어 (AArch64).
- 타임아웃이 있는 WFI(Wait For Interrupt) 및 WFE(Wait For Event) (AArch64).
- 분기 기록 기록 (ARMv9.2 전용).
- 콜 스택 레코더.
ARMv8.8-A 및 ARMv9.3-A
2021년 9월, ARMv8.8-A 및 ARMv9.3-A가 발표되었다. 향상된 기능은 다음 범주로 나뉜다.[32][49]
- 마스크 불가능 인터럽트 (AArch64).
- memcpy() 및 memset() 스타일 작업을 최적화하기 위한 명령어 (AArch64).
- PAC의 향상된 기능 (AArch64).
- 힌트가 포함된 조건부 분기 (AArch64).
LLVM 15는 ARMv8.8-A 및 ARMv9.3-A를 지원한다.[50]
ARMv8.9-A 및 ARMv9.4-A
2022년 9월, ARMv8.9-A 및 ARMv9.4-A가 발표되었으며 다음을 포함한다.[51]
- 가상 메모리 시스템 아키텍처 (VMSA) 향상.
- 권한 간접 참조 및 오버레이.
- 변환 강화(Translation hardening).
- 128비트 변환 테이블 (ARMv9 전용).
- 확장형 행렬 확장 2 (SME2) (ARMv9 전용).
- 다중 벡터 명령어.
- 다중 벡터 프레디케이트(predicates).
- 2b/4b 가중치 압축.
- 1b 이진 네트워크.
- 범위 프리페치(Range Prefetch).
- 가드 제어 스택 (GCS) (ARMv9 전용).
- 기밀 컴퓨팅.
- 메모리 암호화 컨텍스트.
- 장치 할당.
ARMv9.5-A
2023년 10월, ARMv9.5-A가 발표되었으며 다음을 포함한다.[52]
- 다음에 추가된 FP8 지원 (E5M2 및 E4M3 형식):
- SME2
- SVE2
- 고급 SIMD (Neon)
- 하드웨어 더티 상태 추적 구조(FEAT_HDBSS)를 이용한 가상 머신의 라이브 마이그레이션
- 체크 포인트 산술
- 포인터 인증 코드를 생성하거나 확인할 때 PC와 SP의 조합을 수정자로 사용하는 기능 지원.
- 영역 관리 확장(RME) 활성화 설계 지원, 과립 보호 테이블(Granule Protection Tables)에서 비보안 전용 지원 및 특정 물리 주소 공간(PAS)을 비활성화하는 기능.
- EL3 구성 쓰기 트랩.
- 링크 연결 없이 주소 범위 및 불일치 트리거에 대한 중단점 지원.
- EL3에서 EL2 또는 EL1로 SError를 효율적으로 위임하는 기능 지원.
ARMv9.6-A
2024년 10월, ARMv9.6-A가 발표되었으며 다음을 포함한다.[53]
- 구조적 희소성 및 쿼터 타일(quarter tile) 연산을 통한 SME 효율성 개선
- 멀티 칩렛 및 멀티 칩 시스템에서 공유 메모리 컴퓨터 시스템을 더 잘 지원하기 위한 MPAM 도메인
- 가상 머신에서의 추적 및 통계적 프로파일링을 위한 하이퍼바이저 메모리 제어
- 캐싱 및 데이터 배치 개선
- 기밀 컴퓨팅을 위한 세밀한 데이터 격리
- EL1 시스템 레지스터의 비트 단위 잠금
- 대규모 메모리 시스템을 위한 과립 보호 테이블(GPT)의 확장성 개선
- 확장/축소 및 첫 번째/마지막 활성 요소를 찾기 위한 새로운 SVE 명령어
- OS가 애플리케이션 메모리와 상호작용할 수 있도록 하는 추가적인 비특권 로드 및 스토어 명령어 (LDL(U)R* 및 STL(U)R*)
- EL3에서 정의되지 않은 명령어 예외 주입
ARMv9.7-A
2025년 10월, ARMv9.7-A가 발표되었으며 다음을 포함한다.[54]
- 타겟 메모리 무효화 브로드캐스트
- 유연한 리소스 관리 (MPAMv2)
- 인공지능을 위한 6비트 데이터 유형
- 비디오 코덱
- GICv5
ARM-R (실시간 아키텍처)
ARM-R 아키텍처, 특히 Armv8-R 프로파일은 예측 가능하고 결정론적인 동작이 필수적인 실시간 애플리케이션의 요구 사항을 해결하도록 설계되었다. 이 프로파일은 실시간 제약이 중요한 임베디드 시스템에서 고성능, 신뢰성 및 효율성을 제공하는 데 중점을 둔다.
Armv8-R 프로파일에 선택적인 AArch64 지원이 도입되면서 실시간 기능이 더욱 향상되었다. Cortex-R82[55]는 이 확장된 지원을 구현한 최초의 프로세서로, 실시간 영역에 여러 가지 새로운 기능과 개선 사항을 가져왔다.[56]
각주
- ↑ 가 나 다 라 Grisenthwaite, Richard (2011). “ARMv8-A Technology Preview” (PDF). 2011년 11월 11일에 원본 문서 (PDF)에서 보존된 문서. 2011년 10월 31일에 확인함.
- ↑ “Overview”. 《Learn the architecture: Understanding the Armv8.x and Armv9.x extensions》.
- ↑ “ARM Cortex-A57 MPCore Processor Technical Reference Manual”. Arm Ltd.
- ↑ “Cortex-A32 Processor – ARM”. 2016년 12월 18일에 확인함.
- ↑ “ARM Discloses Technical Details Of The Next Version Of The ARM Architecture” (보도 자료). ARM 홀딩스. 2011년 10월 27일. 2019년 1월 1일에 원본 문서에서 보존된 문서. 2013년 9월 20일에 확인함.
- ↑ “ARM Launches Cortex-A50 Series, the World's Most Energy-Efficient 64-bit Processors” (보도 자료). ARM 홀딩스. 2012년 10월 31일에 확인함.
- ↑ “AppliedMicro Showcases World's First 64-bit ARM v8 Core” (보도 자료). AppliedMicro. 2011년 10월 28일. 2014년 2월 11일에 확인함.
- ↑ “Samsung's Exynos 5433 is an A57/A53 ARM SoC”. AnandTech. 2014년 9월 17일에 원본 문서에서 보존된 문서. 2014년 9월 17일에 확인함.
- ↑ “ARM Cortex-A53 MPCore Processor Technical Reference Manual: Cryptography Extension”. ARM. 2016년 9월 11일에 확인함.
- ↑ 가 나 “Impact of implemented Exception levels”. 《Learn the architecture - AArch64 Exception Model》. Arm.
- ↑ “Cortex-A72”. 《Arm Developer》.
- ↑ Brash, David (2014년 12월 2일). “The ARMv8-A architecture and its ongoing development”. 2015년 1월 23일에 확인함.
- ↑ “ARM Virtualization: Performance and Architectural Implications”. 《ISCA 2016》. 2016년 6월 18일.
- ↑ “Top-byte ignore (TBI)”. 《WikiChip》.
- ↑ Brash, David (2016년 1월 5일). “ARMv8-A architecture evolution”. 2016년 6월 7일에 확인함.
- ↑ “The scalable vector extension sve for the ARMv8 a architecture” (영어). 《Arm Community》. 2016년 8월 22일. 2018년 7월 8일에 확인함.
- ↑ 가 나 “GCC 8 Release Series – Changes, New Features, and Fixes – GNU Project – Free Software Foundation (FSF)” (영어). 《gcc.gnu.org》. 2018년 7월 9일에 확인함.
- ↑ “Fujitsu Completes Post-K Supercomputer CPU Prototype, Begins Functionality Trials – Fujitsu Global” (영어) (보도 자료). 《www.fujitsu.com》. 2018년 7월 8일에 확인함.
- ↑ “Japan's Fugaku gains title as world's fastest supercomputer” (영어) (보도 자료). www.riken.jp. 2020년 6월 23일. 2020년 12월 7일에 확인함.
- ↑ “ORNL's Frontier First to Break the Exaflop Ceiling”. 《Top500》. 2022년 5월 30일. 2022년 5월 30일에 확인함.
- ↑ “⚙ D71712 Downstream SVE/SVE2 implementation (LLVM)”. 《reviews.llvm.org》.
- ↑ David Brash (2016년 10월 26일). “ARMv8-A architecture – 2016 additions”.
- ↑ “[Ping~,AArch64] Add commandline support for -march=armv8.3-a”.
pointer authentication extension is defined to be mandatory extension on ARMv8.3-A and is not optional
- ↑ “Pointer Authentication on Arm”. ARM. 2025년 3월 5일에 확인함.
- ↑ “Qualcomm releases whitepaper detailing pointer authentication on ARMv8.3”. 2017년 1월 10일.
- ↑ “A64 Floating-point Instructions: FJCVTZS”. 《arm.com》. 2019년 7월 11일에 확인함.
- ↑ “GCC 7 Release Series – Changes, New Features, and Fixes”.
The ARMv8.3-A architecture is now supported. It can be used by specifying the -march=armv8.3-a option. [..] The option -msign-return-address= is supported to enable return address protection using ARMv8.3-A Pointer Authentication Extensions.
- ↑ “Introducing 2017's extensions to the Arm Architecture” (영어). 《community.arm.com》. 2017년 11월 2일. 2019년 6월 15일에 확인함.
- ↑ “Exploring dot product machine learning” (영어). 《community.arm.com》. 2017년 12월 6일. 2019년 6월 15일에 확인함.
- ↑ “ARM Preps ARMv8.4-A Support For GCC Compiler – Phoronix” (영어). 《www.phoronix.com》. 2018년 1월 14일에 확인함.
- ↑ “NEVE: Nested Virtualization Extensions for ARM”. 《SOSP 2017》. 2017년 10월 14일.
- ↑ 가 나 다 라 “ARMv8.x and ARMv9.x extensions and features”. 《Learn the architecture: Understanding the ARMv8.x and ARMv9.x extensions》.
- ↑ “Arm Architecture ARMv8.5-A Announcement – Processors blog – Processors – Arm Community” (영어). 《community.arm.com》. 2019년 4월 26일에 확인함.
- ↑ “Arm Architecture Reference Manual ARMv8, for ARMv8-A architecture profile” (영어). 《ARM Developer》. 2019년 8월 6일에 확인함.
- ↑ “Arm MTE architecture: Enhancing memory safety” (영어). 《community.arm.com》. 2019년 8월 5일. 2021년 7월 27일에 확인함.
- ↑ “Adopting the Arm Memory Tagging Extension in Android” (영어). 《Google Online Security Blog》. 2019년 8월 6일에 확인함.
- ↑ “Arm's solution to the future needs of AI, security and specialized computing is v9” (영어). 《Arm | The Architecture for the Digital World》. 2021년 7월 27일에 확인함.
- ↑ Schor, David (2021년 3월 30일). “Arm Launches ARMv9” (미국 영어). 《WikiChip Fuse》. 2021년 7월 27일에 확인함.
- ↑ Frumusanu, Andrei. “Arm Announces ARMv9 Architecture: SVE2, Security, and the Next Decade”. 《www.anandtech.com》. 2021년 3월 30일에 원본 문서에서 보존된 문서. 2021년 7월 27일에 확인함.
- ↑ 가 나 다 “Arm releases SVE2 and TME for A-profile architecture – Processors blog – Processors – Arm Community” (영어). 《community.arm.com》. 2019년 4월 18일. 2019년 5월 25일에 확인함.
- ↑ 가 나 “Arm SVE2 Support Aligning For GCC 10, LLVM Clang 9.0 – Phoronix”. 《www.phoronix.com》. 2019년 5월 26일에 확인함.
- ↑ “Design and Verification of the Arm Confidential Compute Architecture”. 《OSDI 2022》. 2022년 7월 11일에 확인함.
- ↑ “Unlocking the power of data with Arm CCA” (영어). 《community.arm.com》. 2021년 6월 23일. 2021년 7월 27일에 확인함.
- ↑ “Arm Introduces Its Confidential Compute Architecture” (미국 영어). 《WikiChip Fuse》. 2021년 6월 23일. 2021년 7월 27일에 확인함.
- ↑ “Arm A profile architecture update 2019” (영어). 《community.arm.com》. 2019년 9월 25일. 2019년 9월 26일에 확인함.
- ↑ “BFloat16 extensions for ARMv8-A” (영어). 《community.arm.com》. 2019년 8월 29일. 2019년 8월 30일에 확인함.
- ↑ Weidmann, Martin (2020년 9월 21일). “Arm A-Profile Architecture Developments 2020”. 《community.arm.com》. ARM. 2022년 9월 28일에 확인함.
- ↑ “Scalable Matrix Extension for the ARMv9-A Architecture” (영어). 《community.arm.com》. 2021년 7월 14일. 2021년 7월 27일에 확인함.
- ↑ Weidmann, Martin (2021년 9월 8일). “Arm A-Profile Architecture Developments 2021”. 《community.arm.com》. ARM. 2022년 9월 28일에 확인함.
- ↑ “What is New in LLVM 15? - Architectures and Processors blog - Arm Community blogs - Arm Community”. 2023년 2월 27일. 2023년 4월 15일에 확인함.
- ↑ “Arm A-Profile Architecture Developments 2022 - Architectures and Processors blog - Arm Community blogs - Arm Community” (영어). 《community.arm.com》. 2022년 9월 29일. 2022년 12월 9일에 확인함.
- ↑ “Arm A-Profile Architecture Developments 2023 - Architectures and Processors blog - Arm Community blogs - Arm Community” (영어). 《community.arm.com》. 2023년 10월 5일. 2024년 10월 14일에 확인함.
- ↑ “Arm A-Profile Architecture Developments 2024 - Architectures and Processors blog - Arm Community blogs - Arm Community” (영어). 《community.arm.com》. 2024년 10월 1일. 2024년 10월 14일에 확인함.
- ↑ “Arm A-Profile Architecture developments 2025 - Architectures and Processors blog - Arm Community blogs - Arm Community” (영어). 《community.arm.com》. 2025년 10월 2일. 2025년 10월 15일에 확인함.
- ↑ Frumusanu, Andrei (2020년 9월 3일). “ARM Announced Cortex-R82: First 64-bit Real Time Processor”. 《AnandTech》. 2020년 9월 3일에 원본 문서에서 보존된 문서.
- ↑ “Arm Architecture Reference Manual Supplement - Armv8, for Armv8-R AArch64 architecture profile”. Arm Ltd.
외부 링크
- CS1 - 영어 인용 (en)
- CS1 - 미국 영어 인용 (en)
- 잘못된 파일 링크가 포함된 문서
- 존재하지 않는 문서를 대상으로 하는 hatnote 틀을 사용하는 문서
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- ARM 아키텍처
- 64비트 컴퓨터