본문 바로가기
리뷰/book

[후기] 시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리

by 공밀레의 재료 2025. 1. 15.
반응형

 

700쪽에 달하는 방대한 분량과 19챕터로 이루어진 체계적인 구성이 인상적인 책이다.

처음 Arm 아키텍처에 대해서 공부하려는 사람에게 유용하다. 단, 컴퓨터구조를 배우려는 사람한테는 목적에 맞지 않기 때문에 추천하고 싶지는 않다.

 

Arm의 Cortex 프로세서를 사용하는 환경에서 시스템 코딩을 하는 사람들과 Cortex 프로세서를 integration 하고 검증해야 하는 SoC엔지니어 모두에게 좋은 책이다.

 

필자는 SoC엔지니어로서 최근 Cortex-A 프로세스를 담당하는 업무를 진행중인데 워낙 방대한 공식 문서들이 있어서 어디서부터 어떻게 공부를 해야 하며, 기초가 없는 상황에선 어떤 순서대로 공부해야 하는지 막막한 상황에 처한 것도 사실이었다. 처음엔 무작정 TRM(테크니컬 레퍼런스 메뉴얼, Arm의 공식 문서)과 아키텍처 문서, ISA 문서 등등을 보면서 RTL을 integration 하고, 시뮬레이션으로 boot를 진행하면서 막히는 부분을 부분부분 살피면서 하는 과정을 거쳤었다. 당연히 제대로 공부하지 못했고 내가 어떤걸 봐야하는지 모르는게 사실이었다.

 

업무와 병행해서 그런지 이 책은 나에게 Cortex의 구조와, tarmac 등의 신호들을 어떻게 봐야 할 것이며, 현재 simulation에서 잘못된 부분이 어떤 것인지 내가 찾아서 디버깅을 할 수 있게 만든 좋은 길잡이었다. 특히 시스템 엔지니어들이 알면 bootcode 및, 설정등을 다루기에도 충분한 내용들이 있어서 이 책을 양쪽 모두에게 추천했던 바였다.

 

다만 조금 아쉬운 점도 있다. 책의 중반부분에 각각의 Exception Level에 대한 설명들과 각 Exception을 넘어가는 흐름 등등을 설명하면서 VBAR라는 vector table을 참조하는 방법들에 대한 설명들이 있는데, 이 부분이 과도하게 복붙된 느낌이있다. 개념이 없다는 것은 아니나, 대부분이 비슷하게 생긴 table을 가져오고, 거기에서 offset을 적용해 어떤 주소로 뛴다. 이런 정보들이 수십페이지는 되는 느낌이었다. 조금 더 깔끔하게 정리했으면 조금 더 책이 가벼워지지 않았을까 싶지만 아마 이런 문제는 처음부터 끝까지 책을 본 사람에게 해당되는 문제이고 필요한 부분만 찾아서 보는 사람에겐 필요한 부분일 수 있기 때문에 이 부분은 독자 개개인의 판단과 주관적인 부분으로 판단 할 수 밖에 없다.

 

Arm architecture는 입문이 참 어려운 것 같다. 내가 꼬박 반년의 시간을 투자해도 나에게 제대로된 학습 순서를 알려주는 사람도 없고, 대부분 공식 문서들을 보면서 하나씩 뜯어보라는 말밖에 해주지 않았기 떄문이다. 영문 문서들은 읽기도 어려울 뿐더러 처음엔 가독성도 좋지 않아서 시간이 엄청 오래 걸린다는 단점도 있고, 특히 이렇게 막혀서 버벅이면 내가 많이 뒤쳐지거나 실력이 떨어지는 느낌에 사로잡히기도 한다.

 

Cortex를 사용하는 많은 사람들이 가급적 이 책을 봤으면 좋겠다. 모두의 역량이 향상될 수 있는 좋은 계기가 될 수도 있고 아마 본인의 업무에도 큰 도움이 될 것이라 생각된다. 학생이라면.. 책을 본다면 아마 취업에도 큰 도움이 되지 않을까 싶다. 그렇지만 내가 이 책을 빠르게 이해하고 잘 흡수한 것은 아마도 내가 Cortex-A 프로세서를 다루고 계속 실험하면서 업무적으로도 충분히 학습을 했기 때문일 것이다. 만약 그렇지 않다면 나 또한 이것의 이해에 굉장히 많은 어려움이 있었을 것이다.

내가 이것을 깨닫게 된 것은 마지막 메모리 관리(Memory management) 부분을 읽으면서이다. 필자는 MMU 부분은 다른 인원에게 맡겨두고 겉 핥기 식으로만 관여했었는데, 그래서 그런지 해당 챕터의 내용이 굉장히 어렵고 잘 이해가 되지 않았다는 점이 있었다. 아마 이 부분은 직접 MMU의 코드들을 뜯어서 살펴보고 공부하고 다시보면 퍼즐이 맞춰지듯이 이해되는 부분이 있지 않을까 싶다.

 

하여튼 Arm의 Architecture(armv7, armv8)를 공부하려는 사람들에게 이 책을 추천한다. AMBA BUS는 다루지 않으니 해당 부분은 다른 책을 봐도 좋고, 사실 AMBA는 인터넷에 워낙 잘 정리된 부분이있어서 CHI를 공부할게 아니라면 인터넷만 활용해도 충분히 프로토콜은 공부 할 수 있을 것이라고 생각된다.

 

참, 이 책은 일부 오류가 있다. 때문에 정오표를 한번 살펴보고 해당 부분은 수정해서 보는 것이 이롭다.

https://wikibook.co.kr/arm/

 

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리: Armv8-A와 Armv7-A로 배우는 시스템 반

친절한 선배 개발자가 Arm 아키텍처에 대해 꼼꼼하게 알려주듯, Arm 아키텍처(Armv8-A, Armv7-A) 아키텍처를 쉽고 친절하게 설명합니다! 이 책에서는 Arm 아키텍처를 구성하는 주요 기능 중에서 실전 프

wikibook.co.kr

 

이 책을 공부하는 많은 사람들이 도움이 되길 바라며, 리뷰를 남긴다.

반응형