내가 이 책을 굳이 구입했던 이유는 기존의 책들에서 다루지 않던 내용을 다뤘기 때문이다. 이 책은 폭넓은 주제를 다루고 있다.
논리회로에서 부터 실시간 시스템 까지. 특히 C 언어에서 코드, 스택, 힙, 변수에 대해 알기쉽게 설명한 부분이 좋았다.
사실, '뇌를 자극하는' 시리즈가 전문적인 서적보다는 입문서의 성격을 띄는 책이다.
하지만, 기초를 제대로 모르고서는 더 높은 단계에 오르지 못한다. 이 책은 자칫 모두 흔히 알고 있지만, 정확히 알고 있지 못하는 것들에 대해 알기쉽게 설명한다.
학부 때 배우는 두꺼운 운영체제 교체보다도, 이책 한권이 더 낫다. 이제 막 입문하는 사람에게 추천할 만한 책이다.
기억에 남는 구절
CISC 방식과 RISC 방식의 비교
구분 | CISC 방식 | RISC 방식 |
---|---|---|
레지스터 개수 | 메모리와 직접 연산을 하는 인스트럭션은 많고 일반적으로 연산을 저장하는 어큐뮬레이터가 있어 계산을 위한 다수의 레지스터가 필요없다 | 메모리 엑세스는 일반적으로 LOAD/STORE 정도의 인스트럭션으로 제한되며 나머지는 모두 레지스터 기반의 연산이므로 상대적으로 레지스터 개수가 많다 |
인스트럭션 길이 | 각 인스트럭션마다 가변적이다 | 모든 인스트럭션이 동일하며 일반적으로 CPU 의 처리단위인 한 워드와 동일하게 맞추어져 있다 |
인스트럭션 수행 시간 | 인스트럭션마다 최소의 수행시간에 맞추어 가변적으로 설계되어 있다. 따라서 필요한 내용만 해석하면 되므로 디코딩 시간이 짧다 | 모든 인스트럭션이 동일한 단계를 거쳐 수행되며 대부분의 인스트럭션은 각 단계별로 비슷한 실행시간을 가지게 된다. 단 메모리 엑세스등 일부 실행 시간이 긴 인스트럭션은 STALL(스톨)이라고 하는 딜레이(지연)가 생길 수 있다 |
인스트럭션 개수 | 다양한 인스트럭션이 많이 제공된다 | 단순한 인스트럭션으로만 이루어져 있으며 개수 또한 적다 |
컴파일러 설계 | 인스트럭션의 복잡성으로 인해 효율적인 코드 생산이 어려우며 컴파일러 자체의 설계도 복잡해진다 | 인스트럭션이 단순하므로 컴파일러 설계도 간단해지고 효율적인 코드 생산이 가능하다 |
하드웨어 설계 | 복잡하게 되며 안정성 문제도 발생하며 가격 또한 비싸진다 | 단순하므로 신뢰도가 높고 개발 주기도 짧아져 빠른 시장 대응을 할 수 있다 |