ARMv8 Intro.
1. Device as File
리눅스 커널은 대부분 아키텍처 독립적이지만, 부트업 코드나 구동 중 빈번히 수행되는 많은 코드(스핀락)가 아키텍처 의존적으로 구현되어 있다.
2. ARM 특징
- 구조가 단순하다
- 낮은 소비전력
- 저전력 고성능
3. ARM 아키텍처의 발전 과정
ARMv4 → ARMv5 → ARMv6 → ARMv7 → ARMv8
4. ARMv8 특징
- 64bit 아키텍처
- 실행상태라는 개념을 도입하여 32bit ARMv7용 코드도 실행이 가능하다.
5. ARMv8 성능 이점
- 산술 연산 시 64bit 정수 데이터를 1개의 *인스트럭션으로 처리 가능
- 64bit 가상주소공간을 제공해 애플리케이션도 넓어진 가상 주소 공간 사용이 가능
* 인스트럭션 : 컴퓨터에게 일을 시키는 단위로 컴퓨터가 알아들을 수 있는 기계어로 이루어져있는 명령
→ 연산에 필요한 클록 사이클 수가 절약됨
6. AArch64의 성능 단점
- 포인터의 크기가 64bit로 증가해 포인터 변수가 차지하는 메모리가 증가하는 것
7. ARMv8 아키텍처의 변화
- 물리적 주소 확장으로 프로세서가 4GB 이상 주소에 접근이 가능해짐
- 레지스터 파일이 확장되어 항상 접근 가능한 64bit 레지스터 31개를 제공
- PC 상대 주소 지정 범위가 [현재 PC(Program Counter) Address +/- 4GB]로 커짐
- 라이브러리나 위치 독립적인 코드에서 데이터 주소 지정을 위해 주로 사용
- HW 암호화 인스트럭션 자원으로 복호화 시 속도 향상
- 새로운 익셉션모델(예외처리) 도입으로 OS와 *하이퍼바이저의 소프트웨어의 복잡성이 내려감
- 16KB, 64KB 변환 단위를 추가지원하여 *TLB(Translactoin Lookaside Buffer) Miss 감소 → 여러 단계가 구성된 페이지 테이블을 찾아 들어감.
- 레지스터가 커진 고급 SIMD 자원이 추가되며, 벡터 연산 성능이 크게 향상되었다.
* 하이퍼바이저 : (= 가상머신 모니터) 운영체제와 가상 머신의 리소스를 분리해 VM의 생성과 관리를 지원
* TLB : 가상 메모리 주소를 물리적인 주소로 변환하는 속도를 높이기 위해 사용되는 캐시
'Embedded : : Arm Architecture > : : Arm Architecture' 카테고리의 다른 글
Exception(익셉션) 개요 (0) | 2024.11.06 |
---|