프로그래밍 언어의 추상화 수준이 점점 더 올라가면서, 컴퓨터 아키텍처와 운영체제 이론에 대해 몰라도 되는 세상이 도래할 듯이 보였다. 하지만 완벽하게 하드웨어와 운영체제 동작 방식을 가려버리는 프로그래밍 언어가 등장하지 못했기 때문에 (정도는 다르겠지만) 개발자들은 여전히 아키텍처와 운영체제에 대해 충분히 이해하고 있어야 한다. 하지만 실제 개발과 무관하게 이런 기초 지식을 쌓으려면 시간과 노력을 투자해야만 하는데 쉽지 않는 말이다. 이번에 Blog2Book 시리즈로 나온 "프로그래머가 몰랐던 멀티코어 CPU 이야기"는 컴퓨터 아키텍처 관련 내용을 설명하는 책이다.
이 책은 전산과 전공자가 아니면 이해하기가 어려울지도 모르겠다. CPU 설계와 아키텍처는 원래 어려운 분야이므로 아무리 쉽게 설명하려고 노력해봐야 한계가 있고 이 책 역시 이런 한계에서 벗어나지는 못한다. 그나마 기존 딱딱한 아키텍처 교과서보다는 훨씬 눈에 잘 들어오므로 하드웨어에 관심이 많은 호사가라면 충분히 재미있게 읽을 수 있으리라는 생각이다. 멀티코어 CPU라고 제목이 붙긴 했지만, 싱글코어 CPU부터 시작해서 차근차근 복잡한 구조로 올라가면서 설명을 전개하기 때문에 처음부터 차근차근 정독하기를 원한다.
x86 어셈블리어와 C 프로그래밍 언어를 모를 경우 책을 읽는 도중에 애로 사항이 꽃필지도 모르겠다. 어차피 CPU가 사용하는 기초적인 언어는 어셈블리이며, 비교적 어셈블리로 쉽게 변환이 가능한 언어는 C이므로 두 가지 프로그래밍 언어를 사용해 설명을 전개할 수 밖에 없는 상황이다. x86 어셈블리와 C 프로그래밍 언어 이외에 알고리즘과 자료 구조론을 이해하고 있다면 더욱 쉽게 책을 읽을 수 있을 것이다.
목차를 살펴보면 프로세스 명령어 집합 구조와 기본 부품 소개, 프로그래밍의 의미를 결정 짓는 의존성, 프로세스 기본 동작, 고성능 프로세스를 위한 명령어 파이프라인/비순차 실행/하이퍼스레딩, 멀티 코어, 데이터 병렬성, 캐시, 분기 예측, 메모리 명령 실행 알고리즘, 병렬 프로그래밍, 하이젠버그에 대한 내용이 나온다. 여러 가지 컴퓨터에 대한 하드웨어 관련 내용을 모두 다루는 아키텍처 교과서와는 달리 싱글/멀티코어 CPU와 관련한 내용만 압축해놓았으므로 CPU와 관련해서 머리 속으로 정리가 필요할 때 읽어보면 좋겠다.
아쉬운 점 한 가지: Blog2Book 시리즈 구성에 맞추려다 보니 대화식으로 전개하는 내용이 본문과는 조금 동떨어져서 움직이기에 사족처럼 느껴진다.
EOB
아직 다 읽지는 않았지만
답글삭제이 책 정말 내용도 좋고
재밌게 읽고 있어요^^