ARMv8 아키텍처는 64비트로 구성된 명령어를 지원하고 최신 ARM 코어 기술들을 지원합니다. 최근에 출시된 모바일 폰은 거의 대부분 ARMv8(Aarch64: 64비트 명령어) 아키텍처 기반의 ARM 프로세서를 탑재하고 있습니다. 그래서 대부분 ARMv8(Aarch64) 프로세서를 대부분 IT 기기에서 적용한다고 생각했습니다. 하지만 이건 저만의 착각이었습니다. 여러 임베디드 개발자분들과 교류한 후 다음과 같은 사실을 깨닫게 됐습니다.
* ARMv7 아키텍처(32비트 명령어) ARM 프로세서를 많이 사용하고 있다.
ARM 프로세서의 가격
그렇다면 32비트 기반 ARM 프로세서(Cortex-A9, Cortex-M3)를 채택하는 이유는 무엇일까요?
* 바로 가격 때문입니다.
모바일과 같이 다양한 멀티미디어 컨텐츠를 지원하려면 ARM 코어의 성능이 좋아야 합니다. 당연히 메모리 사이즈도 커지는데(4GB 이상), 이 과정에서 자연히 ARMv8(Aarch64) 기반의 Cortex-A53, Cortex-A57와 같은 ARM 프로세서를 탑재하게 됩니다. 그런데 이렇게 고성능을 지원하는 ARM 프로세서는 가격이 비싸질 수 밖에 없습니다.
하지만 많은 임베디드 프로젝트는 저렴한 부품으로 구성돼 개발하는 경우가 많습니다. 특히 IoT 기기는 가격이 더 중요해집니다. 최소한의 가격과 성능으로 최대한의 효율을 내는 제품을 기획하게 됩니다. 메모리 사이즈는 512MB에서 256MB로 내려나게 됩니다. 메모리 사이즈가 커지면 이에 비례해서 가격이 비싸게 되거든요.
이 밖에도 여러 가지 이유를 말씀드릴 수 있으나, 요약을 하면 많은 임베디드 제품은 32비트 기반 ARM 프로세서를 탑재돼 시장에 출시되고 있습니다.
메모리 사이즈에 따라 선택하는 ARM 프로세서
어느 IT 업체에서 ARMv8(Aarch64) 기반 ARM 프로세서를 탑재하려고 고려 중입니다. 그런데 DDR(주기억 장치) 메모리 사이즈가 2GB 라고 합니다. 이 경우 ARMv8 기반 ARM 프로세서를 탑재할 수 있을까요? 아마 포기할 겁니다. 그 이유는;
* DDR(주기억 장치) 메모리 사이즈가 최소 4GB 정도는 돼야 ARMv8(Aarch64) 기반 프로세서를 구동시킬 수
있기 때문입니다.
그렇다면 2GB DDR에서 64비트 기반(Aarch64) ARMv8 프로세서를 탑재하지 못하는 이유를 설명하기 위해서는 가상 메모리의 근본 원리에 대해 자세히 설명드려야 하므로 생략하겠습니다. 대신 다음과 같은 질문으로 답을 대신하려고 합니다.
* 64비트 ARMv8 아키텍처 기반 ARM 프로세서에 2GB 정도의 DDR(주메모리)를 탑재한 기기를 본 적이 있나요?
아마 없을 겁니다. 어느 정도 고성능 스택을 지원하는 IT 제품에서 64비트 기반 ARMv8 프로세서를 탑재할 수 있습니다.
Reference: ARM 프로세서의 주요 기능
ARM 프로세서는 왜 배워야 할까
ARM 프로세서 학습하는 방법의 문제점
ARM 프로세서 소개
ARM 아키텍처를 구성하는 주요 기능
● 어셈블리 명령어란
● ARM의 동작 모드와 익셉션 레벨
Written by <디버깅을 통해 배우는 리눅스 커널의 구조와 원리> 저자
'시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 카테고리의 다른 글
[Arm] 유용한 홈페이지 링크 (0) | 2023.06.09 |
---|---|
[ARM] ARM technical referenece document (0) | 2023.06.09 |
[ARM] ARM 프로세서에서 말하는 프로그래밍 모델이란 (0) | 2023.06.09 |
[ARM][ARMv7 아키텍처] 성능: 사이클(cycle) 정보 얻어오기 - [1] (0) | 2023.06.09 |
[ARM] ARM사의 라이센스 방식: 소프트 매크로/하드 매크로 (0) | 2023.06.09 |