Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

76261
1501
219118


[ARM] ARMv8(Aarch64) 아키텍처 기반 프로젝트가 대세인가? #이제는 ARM의 시대

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 프로세서를 탑재할 수 있습니다.

Written by <디버깅을 통해 배우는 리눅스 커널의 구조와 원리> 저자


덧글

  • shaind 2020/09/04 22:53 # 답글

    "64비트 ARMv8 아키텍처 기반 ARM 프로세서에 2GB 정도의 DDR(주메모리)를 탑재한 기기를 본 적이 있나요?"

    라즈베리 파이 4 나 오드로이드 C2 같은 기기도 메모리 2GB 탑재 버전이 잘 팔리고 있습니다. (과거에는 R-Pi 4B의 1GB모델도 팔렸죠.)

    사실 휴대폰이나 태블릿만 해도 ARMv8 명령어를 쓰는 A53 코어 탑재 프로세서에 2GB나 3GB 메모리를 탑재한 제품이 저가형 중에는 꽤 나와 있습니다. 커널이 64비트 커널인지는 일단 차치하고서라도...
  • AustinKim 2020/09/09 11:47 #

    아 그렇군요, 좋은 정보 감사합니다.
  • cpuu 2021/01/20 10:57 # 삭제 답글

    혹시 집필하신 책은 32bit 라즈베리 리눅스 기반인 것일까요?
  • AustinKim 2021/01/20 11:02 #

    네, 32비트 기반이 맞습니다.
    하지만 커널을 이루는 주요 기능은 64비트 기반 아키텍처에서도 적용될 내용을 다루고 있습니다.

    감사합니다.
댓글 입력 영역