이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
컴퓨터 아키텍처
석기 시대에서 양자 시대까지를 꿰뚫는 컴퓨터 역사
베스트
컴퓨터 공학 top100 1주
가격
38,000
10 34,200
YES포인트?
1,900원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  국내배송만 가능
  •  문화비소득공제 가능

카드뉴스로 보는 책

카드뉴스0
카드뉴스1
카드뉴스2
카드뉴스3
카드뉴스4
카드뉴스5
카드뉴스6
카드뉴스7
카드뉴스8

상세 이미지

책소개

목차

지은이·감수자·옮긴이 소개 xiv
옮긴이 머리말 xvi
베타리더 후기 xviii
시작하며 xx
감사의 말 xxxviii

PART I 기본 개념
CHAPTER 1 역사적 아키텍처들 3
1.1 컴퓨터란 무엇인가? 4
1.2 산업혁명 이전 7
1.2.1 석기 시대 7 / 1.2.2 청동기 시대 9 / 1.2.3 철기 시대 11
1.2.4 이슬람 황금기 13 / 1.2.5 르네상스와 계몽주의 시대 15
1.3 증기 시대 17
1.3.1 자카르 방직기 17 / 1.3.2 빅토리아 시대의 배럴 오르간과 오르골 18
1.3.3 배비지의 차분기관 18 / 1.3.4 배비지의 해석기관 20
1.3.5 기계식 미분 해석기 24
1.4 디젤 시대 25
1.4.1 홀러리스 표 계산기와 IBM 26 / 1.4.2 전기기계식 미분 해석기 28
1.4.3 제2차 세계 대전의 전기기계식 기계 28 / 1.4.4 추제 Z3 31
1.5 전기 시대 31
1.5.1 2차대전의 순수 전자적 암호학 32 / 1.5.2 에니악 33
1.5.3 VM 에니악 35 / 1.5.4 맨체스터 베이비 35
1.5.5 1950년대와 상업용 컴퓨팅 37
1.6 트랜지스터 시대 38
1.6.1 1960년대와 대형 트랜지스터 38 / 1.6.2 1970년대와 집적회로 40
1.6.3 1980년대 황금기 41 / 1.6.4 따분한 1990년대 42
1.6.5 2000년대와 커뮤니티 재구성 44
1.6.6 2010년대와 무어의 법칙의 종말 45
1.6.7 클라우드와 사물 인터넷(IoT)의 2020년대 48
1.7 그래서 최초의 컴퓨터는 무엇인가? 50
이번 장 요약 51
실습과제 51
더 읽을거리 52

CHAPTER 2 데이터 표현 53
2.1 데이터 표현의 간략한 역사 54
2.1.1 탤리 스틱과 거래용 토큰 54 / 2.1.2 로마 숫자 56
2.1.3 쪼갠 탤리 56 / 2.1.4 아라비아 숫자와 기타 숫자 57
2.2 현대적 수체계 59
2.2.1 기수와 지수 59 / 2.2.2 기수 10: 십진수 60
2.2.3 기수 2: 이진수 61 / 2.2.4 기수 10,000 62
2.2.5 기수 60: 60진수 63 / 2.2.6 기수 16: 16진수 63
2.2.7 기수 256: 바이트 66 / 2.2.8 진수 변환 방법 66
2.3 데이터 표현 67
2.3.1 자연수 67 / 2.3.2 정수 70 / 2.3.3 유리수 71
2.3.4 고정소수점 72 / 2.3.5 부동소수점 72 / 2.3.6 배열 73
2.3.7 텍스트 75 / 2.3.8 멀티미디어 데이터 표현 80 / 2.3.9 자료구조 83
2.4 데이터 측정 84
이번 장 요약 86
실습과제 86
더 읽을거리 87

CHAPTER 3 기초적인 CPU 기반 아키텍처 88
3.1 음악 처리 장치 88
3.1.1 음악에서 수치 연산으로 91 / 3.1.2 수치 연산에서 계산으로 92
3.2 배비지의 CPU 93
3.2.1 고수준 아키텍처 94 / 3.2.2 프로그래머 인터페이스 95
3.2.3 내부 하위부품들 100 / 3.2.4 내부 작동 103
이번 장 요약 106
실습과제 107
더 읽을거리 107

PART II 전자회로의 계층구조 109
CHAPTER 4 스위치 111
4.1 유향 시스템 112
4.1.1 체크 밸브 113 / 4.1.2 열 다이오드 114 / 4.1.3 PN 접합 다이오드 115
4.2 스위치 121
4.2.1 수압 스위치 121 / 4.2.2 전기 진공관 스위치 122
4.2.3 PNP 트랜지스터 123 / 4.2.4 수압 효과 스위치 125
4.2.5 전계효과 트랜지스터 126 / 4.2.6 클록 127
4.3 트랜지스터 제조 128
4.4 무어의 법칙 130
이번 장 요약 131
실습과제 132
더 읽을거리 132

CHAPTER 5 디지털 논리 133
5.1 클로드 섀넌과 논리 게이트 134
5.2 논리 게이트 135
5.2.1 범용 게이트 식별 138 / 5.2.2 트랜지스터로 논리 게이트 만들기 138
5.2.3 논리 게이트를 칩에 얹기 140
5.3 부울 논리 143
5.3.1 산술로서의 논리 144 / 5.3.2 모델 검사 대 증명 145
5.4 부울 논리를 이용한 논리 회로 간소화 148
5.5 디지털 논리의 구현 150
5.5.1 7400 시리즈 칩 활용 150 / 5.5.2 포토 공정 151
5.5.3 PLA 151 / 5.5.4 FPGA 152
이번 장 요약 154
실습과제 154
더 읽을거리 155

CHAPTER 6 단순 기계 156
6.1 조합 논리 157
6.1.1 비트별 논리 연산 157 / 6.1.2 다중 입력 논리 연산 158
6.1.3 자리이동 장치 158 / 6.1.4 디코더와 인코더 159
6.1.5 멀티플렉서와 디멀티플렉서 160 / 6.1.6 가산기 161
6.1.7 부정 소자와 감산기 165
6.2 조합 논리에서 순차 논리로 166
6.3 클록 논리 169
6.3.1 클록 플립플롭 170 / 6.3.2 카운터 171
6.3.3 시퀀서 172 / 6.3.4 RAM(임의 접근 메모리) 173
이번 장 요약 176
실습과제 176
더 읽을거리 178

CHAPTER 7 디지털 CPU 설계 179
7.1 베이비의 프로그래머 인터페이스 180
7.1.1 정지 181 / 7.1.2 상수 181 / 7.1.3 적재와 저장 182
7.1.4 산술 183 / 7.1.5 점프 183 / 7.1.6 분기 184
7.2 어셈블러 184
7.3 맨체스터 베이비의 내부 구조 189
7.3.1 레지스터 190 / 7.3.2 산술 논리 장치(ALU) 192 / 7.3.3 제어 장치(CU) 193
7.4 전체 조립 196
7.4.1 인출 197 / 7.4.2 해독 198 / 7.4.3 실행 199 / 7.4.4 완전한 베이비 구현 204
이번 장 요약 206
실습과제 207
더 읽을거리 209

CHAPTER 8 고급 CPU 설계 210
8.1 사용자 레지스터 개수 210
8.2 명령어 개수 212
8.3 명령어 지속 시간 213
8.4 여러 가지 주소 지정 모드 214
8.5 서브루틴 217
8.5.1 스택 없는 아키텍처 218 / 8.5.2 택 아키텍처 218
8.6 부동소수점 처리장치(FPU) 220
8.7 파이프라이닝 221
8.7.1 해저드(위험 요소) 223 / 8.7.2 해저드 해결 225
8.8 비순차 실행 229
8.9 하이퍼스레딩 231
이번 장 요약 232
실습과제 232
더 읽을거리 233

CHAPTER 9 입출력(I/O) 234
9.1 기본 I/O 개념 234
9.2 버스 236
9.2.1 버스선들 237 / 9.2.2 CPU-버스 인터페이스 238
9.3 I/O 모듈 240
9.3.1 제어와 타이밍 241 / 9.3.2 오류 검출 243
9.4 I/O 모듈 기법 243
9.4.1 폴링 244 / 9.4.2 인터럽트 244 / 9.4.3 직접 메모리 접근(DMA) 246
9.5 모듈 없는 I/O 247
9.5.1 CPU의 I/O 전용 핀 247 / 9.5.2 메모리 매핑 247 / 9.5.3 버스 계층구조 247
이번 장 요약 248
실습과제 249
더 읽을거리 249

CHAPTER 10 메모리 250
10.1 메모리 계층구조 250
10.2 주 메모리 252
10.2.1 바이트와 엔디언 253 / 10.2.2 메모리 모듈 255
10.2.3 RAM(임의 접근 메모리) 256 / 10.2.4 ROM(읽기 전용 메모리) 261
10.3 캐시 263
10.3.1 캐시의 주요 개념 265 / 10.3.2 여러 가지 캐시 읽기 정책 267
10.3.3 여러 가지 캐시 쓰기 정책 269 / 10.3.4 고급 캐시 아키텍처 270
10.4 보조 메모리와 오프라인 메모리 272
10.4.1 테이프 273 / 10.4.2 디스크 276 / 10.4.3 SSD(고체상 드라이브) 280
10.5 3차 메모리 281
10.6 데이터 센터 281
이번 장 요약 282
실습과제 282
더 읽을거리 283

PART III 예제 아키텍처 285
CHAPTER 11 레트로 아키텍처 287
11.1 1980년대 황금기의 프로그래밍 288
11.1.1 8비트 시대 290 / 11.1.2 16비트 시대 291
11.2 8비트 CPU MOS 6502 다루기 292
11.2.1 내부 구성요소 292 / 11.2.2 프로그래머 인터페이스 298
11.3 코모도어 64로 살펴보는 8비트 컴퓨터 설계 303
11.3.1 아키텍처의 이해 303 / 11.3.2 C64 프로그래밍 306
11.4 모토롤라 68000으로 살펴보는 16비트 컴퓨터 설계 309
11.4.1 내부 구성요소 309 / 11.4.2 프로그래머 인터페이스 310
11.5 코모도어 아미가로 살펴보는 16비트 컴퓨터 설계 313
11.5.1 아키텍처의 이해 314 / 11.5.2 아미가 프로그래밍 316
11.6 레트로 주변기기 320
11.6.1 CRT(음극선관) 디스플레이 320 / 11.6.2 사용자 입력 321
11.6.3 직렬 포트 322 / 11.6.4 MIDI 인터페이스 322
이번 장 요약 324
실습과제 324
더 읽을거리 326

CHAPTER 12 임베디드 아키텍처 328
12.1 설계 원칙 329
12.1.1 단일 용도 329 / 2.1.2 신뢰성 329 / 12.1.3 이동성과 전력 공급 329
12.1.4 캡슐화 330 / 12.1.5 신중한 디버깅 330
12.2 마이크로컨트롤러 330
12.2.1 CPU 331 / 12.2.2 메모리 331 / 12.2.3 타이머와 카운터 331
12.3 임베디드 I/O 332
12.3.1 아날로그-디지털 변환 332 / 12.3.2 임베디드 직렬 포트 333
12.3.3 IC 간 버스 334 / 12.3.4 CAN 버스 335
12.4 아두이노 336
12.4.1 ATmega328 마이크로컨트롤러 337 / 12.4.2 아두이노 보드의 나머지 부분 339
12.4.3 아두이노 프로그래밍 340
12.5 그 밖의 CPU 기반 임베디드 시스템 342
12.5.1 아두이노 없는 Atmel AVR 342 / 12.5.2 PIC 마이크로컨트롤러 342
12.5.3 디지털 신호 처리 장치(DSP) 343
12.6 CPU 없는 임베디드 시스템 344
12.6.1 PLC(프로그래머블 로직 컨트롤러) 345 / 12.6.2 임베디드 FPGA 347
이번 장 요약 348
실습과제 349
더 읽을거리 349

CHAPTER 13 데스크톱 아키텍처 351
13.1 CISC 설계 철학 352
13.2 마이크로프로그래밍 353
13.3 x86의 역사 355
13.3.1 선사시대 355 / 13.3.2 16비트 고전 시대 356
13.3.3 32비트 클론 전쟁 시대 357 / 13.3.4 64비트 브랜드 시대 358
13.4 x86 프로그래밍 360
13.4.1 레지스터 360 / 13.4.2 NASM 문법 363
13.4.3 세그멘테이션 372 / 13.4.4 하위 호환 모드 372
13.5 PC 컴퓨터 설계 373
13.5.1 버스 계층구조 374 / 13.5.2 공통 버스 377 / 13.5.3 표준 장치 380
이번 장 요약 388
실습과제 388
더 읽을거리 394

CHAPTER 14 스마트 아키텍처 396
14.1 스마트 기기 397
14.2 RISC 철학 398
14.3 RISC-V 400
14.3.1 아키텍처의 이해 401 / 14.3.2 핵심 RISC-V 프로그래밍 403
14.3.3 RISC-V 확장 405
14.4 다양한 RISC-V 구현 407
14.5 RISC-V 도구 사슬과 커뮤니티 408
14.6 스마트 컴퓨터 설계 409
14.6.1 저전력 DRAM(LP-DRAM) 410 / 14.6.2 카메라 410 / 14.6.3 터치스크린 411
이번 장 요약 412
실습과제 413
더 읽을거리 415

CHAPTER 15 병렬 아키텍처 416
15.1 직렬적 사고방식 대 병렬적 사고방식 417
15.2 CPU의 SIMD 420
15.2.1 SIMD 소개 420 / 15.2.2 x86의 SIMD 421
15.3 GPU에서의 SIMD 428
15.3.1 GPU 아키텍처 429 / 15.3.2 Nvidia GPU 어셈블리 프로그래밍 430
15.3.3 SASS 방언들 438 / 15.3.4 고수준 GPU 프로그래밍 442
15.4 MIMD(다중 명령 다중 데이터) 445
15.4.1 단일 프로세서 MIMD 445 / 15.4.2 공유 메모리 MIMD 445
15.4.3 MIMD 분산 컴퓨팅 451
15.5 명령 없는 병렬성 456
15.5.1 데이터 흐름 아키텍처 456 / 15.5.2 데이터 흐름 컴파일러 458
15.5.3 하드웨어 신경망 459
이번 장 요약 460
실습과제 462
더 읽을거리 465

CHAPTER 16 미래의 아키텍처 467
16.1 새로운 황금기 467
16.1.1 오픈소스 아키텍처 468 / 16.1.2 원자 규모의 트랜지스터 470
16.1.3 3D 실리콘 아키텍처 471 / 16.1.4 1만 년 메모리 472
16.2 광학 아키텍처 473
16.2.1 광 트랜지스터 473 / 16.2.2 광학 상관기 474 / 16.2.3 광신경망 476
16.3 DNA 아키텍처 477
16.3.1 합성 생물학 478 / 16.3.2 DNA 컴퓨팅 479
16.4 신경 아키텍처 480
16.4.1 트랜지스터 대 이온 통로 481 / 16.4.2 논리 게이트 대 뉴런 481
16.4.3 구리선 대 화학 신호 483 / 16.4.4 단순 기계 대 피질 기둥 484
16.4.5 칩 대 대뇌 피질 485 / 16.4.6 병렬 계산 대 직렬 계산 486
16.5 양자 아키텍처 487
16.5.1 양자역학의 만화 버전 488 / 16.5.2 양자역학의 수학 버전 489
16.5.3 큐비트로 이루어진 양자 레지스터 490 / 16.5.4 여러 세계에 걸친 계산 493
16.5.5 실용적인 양자 컴퓨터 아키텍처 494
16.6 미래의 물리 아키텍처 494
이번 장 요약 497
실습과제 498
더 읽을거리 499

APPENDIX 부록 501
APPENDIX A 운영체제 지원 503
동시성 504
커널 모드와 사용자 모드 505
가상 메모리 505
장치 드라이버 506
로더 507
링커 508
추가적인 부팅 단계 510
하이퍼바이저 모드, 가상화, 그리고 컨테이너 512
실시간 운영체제 512
추측 실행 취약점 513
실습과제 517
더 읽을거리 518

그림 출처 519
찾아보기 527

저자 소개2

찰스 폭스(Charles Fox)

관심작가 알림신청
 
영국 링컨 대학교의 수상 경력이 있는 선임 강사다. 케임브리지, 옥스퍼드, 에든버러 대학교에서 학위를 받은 폭스는 100편 이상의 연구 논문을 발표했으며, 주로 임베디드/스마트/병렬/신경망 아키텍처를 AI와 로보틱스에 적용하는 연구를 해왔다. 영국 고등교육 아카데미 펠로(FHEA)이며 《Data Science for Transport》(Springer, 2018)의 저자다.
도널드 커누스 교수의 《컴퓨터 프로그래밍의 예술》 시리즈를 비롯해 다양한 IT 전문서를 번역한 전문 번역가이다. 생성형 AI 관련 번역서로는 《마스터링 트랜스포머》 《실전! RAG 기반 생성형 AI 개발》 《LLM 인 프로덕션》 《AI 에이전트 인 액션》 등이 있다. 개인 웹사이트 류광의 번역 이야기(https://occamsrazr.net)와 IT 및 게임 개발 정보 공유 사이트 GpgStudy.com(https://gpgstudy.com)을 운영한다

류광의 다른 상품

품목정보

발행일
2025년 11월 06일
쪽수, 무게, 크기
588쪽 | 188*245*28mm
ISBN13
9791194587439

책 속으로

흔히 컴퓨터 아키텍처는 학위를 위한 필수 과목이거나 직업상의 필수 요건이다. 그리고 아키텍처를 좋아하지 않지만 배워야 하는 사람들도 많다. 나도 그런 사람이라서 이 점을 잘 알고 있다. 나와 비슷한 독자가 이 책을 삼키기 쉽도록 나는 책에 설탕 한 숟갈을 첨가했다. 독자가 좋아할 만한 주제들을 아키텍처 공부와 연결한 것이다. 하드웨어는 별로 안 좋아하지만 음악이나 로봇, AI, 역사를 좋아한다면, 이 책에 흥미를 느낄 것이다. 고급 레고 제작을 즐기는 독자도 마찬가지다. 그런 연결고리 덕분에 아키텍처를 조금은 좋아하게 될 수도 있다. 학교에서 컴퓨터 아키텍처 과목의 시험을 봐야 한다면, 이 책으로 시험공부를 조금이나마 재미있게 할 수 있을 것이다.
--- p.xxiv

예전부터 사람들은 컴퓨터 아키텍처와 컴퓨터 구조(computer organization)를 구분했다. 전자는 프로그래머가 인식할 수 있는 하드웨어/소프트웨어 인터페이스들의 설계를 가리키고, 후자는 그런 인터페이스들의 내부적인 (프로그래머에게는 보이지 않는) 구현을 가리킨다. 이런 맥락에서 프로그래머는 어셈블리 언어(프로그래머와 하드웨어 사이의 인터페이스에 해당한다)의 수준에서 코드를 짜는 것으로 간주되었다. 하지만 요즘 세상에서 프로그래머는 거의 항상 적어도 컴파일 방식의 언어로 작업하고, 어셈블리 언어 수준에서 작업하는 프로그래머는 아주 드물다. 현세대 프로그래머들은 컴파일러와 운영체제들 때문에 예전 어셈블리 인터페이스보다 훨씬 높은 추상화 수준에서 일한다. 덧붙여, 라이브러리나 게임 엔진 같은 좀 더 상위 수준의 구성요소들 역시 추상화 수준을 높이는 요소다. 그런 만큼, 지금 시점에서 기존의 컴퓨터 아키텍처 대 컴퓨터 구조라는 구분은 그리 중요하지 않다.
--- p.xxxv

컴퓨터의 역사를 되짚으려면 먼저 컴퓨터가 무엇인지, 단순한 계산기(calculator)나 수치 연산 기계와는 무엇이 다른지부터 정의해야 한다. 이것은 여전히 논쟁 중인, 의외로 어려운 질문이다. 주어진 대상이 컴퓨터인지 아닌지를 판단하는 나만의 경험법칙(rule of thumb)이 있다. 바로, “스페이스 인베이더(Space Invaders)를 프로그래밍할 수 있는가?”이다. 단순한 계산기로는 그럴 수 없다. 따라서 단순한 계산기는 컴퓨터가 아니다. 반면에 프로그래밍 기능이 있는 계산기는 스페이스 인베이더를 프로그래밍하는 것이 가능하므로 컴퓨터가 맞다.
--- p.4

양자역학에서 상호작용하는 여러 현실이 평행으로 존재하는 것처럼 보이는 것을 병렬 계산의 한 형태로 활용할 수는 없을까? 단일 현실에서 계산 작업을 여러 CPU에 분산하듯이, 계산 작업을 여러 평행 현실에 분산해서 각각 계산을 수행한 후 그 결과들을 우리가 살고 있는 단일 현실로 취합할 수 있다면, 수많은 평행 현실에 존재하는 방대한 계산 자원을 활용할 수 있다. 단일 현실에서 CPU를 수없이 만들어 내는 대신, CPU가 하나인 여러 평행 현실에서 동시에 계산을 진행하면 되는 것이다. 이런 아이디어를 1988년에 리처드 파인먼이 처음 제안했다. 이것이 양자 컴퓨팅의 시초다.

--- p.490

출판사 리뷰

■ 다양한 인코딩 방식으로 데이터를 표현하는 방법과 디지털 논리 게이트를 구축하는 방법
■ 기계어와 어셈블리 프로그래밍의 기초
■ 파이프라이닝, 비순차 실행, 병렬처리의 작동 원리와 실제 사례
■ 신경망, DNA, 광학, 양자 컴퓨팅의 파급력과 전망

리뷰/한줄평5

리뷰

10.0 리뷰 총점

한줄평

10.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정
34,200
1 34,200