목차
1. 소개 = 3
1.1 개요 = 3
1.2 간략한 역사 = 3
1.3 폰 노이만 모델 = 6
1.4 시스템버스 모델 = 7
1.5 기계의 단계 = 8
1.5.1 상향 호환성 = 8
1.5.2 단계 = 9
1.6 전형적인 컴퓨터시스템 = 13
1.7 책의 구성 = 14
1.8 사례연구 : 슈퍼컴퓨터에서는 어떤 일이 일어나고 있는가? = 15
요약 = 17
참고문헌 = 18
연습문제 = 18
2. 데이터 표현 = 21
2.1 개요 = 21
2.2 고정 소수점 수 = 22
2.2.1 고정 소수점 수의 범위와 정밀도 = 22
2.2.2 대수의 결합법칙이 컴퓨터에서 항상 유효한 것은 아니다 = 23
2.2.3 기수 수 시스템 = 24
2.2.4 기수 사이의 변환 = 25
2.2.5 컴퓨터산술의 개관 = 30
2.2.6 부호 있는 고정 소수점 수 = 31
2.2.7 이진코드화 십진수 = 34
2.3 부동 소수점 수 = 35
2.3.1 부동 소수점 수에서의 범위와 정밀도 = 36
2.3.2 정규화와 숨겨진 비트 = 37
2.3.3 컴퓨터 내에 부동 소수점 수 표현 : 소개 = 38
2.3.4 부동 소수점 표현에서의 오류 = 40
예제 = 44
2.3.5 IEEE 754 부동 소수점 표준 = 44
2.4 사례연구 : 정밀도 상실에 의한 패트리어트 미사일 방어 실패 = 47
2.5 문자코드 = 49
2.5.1 ASCII 문자 집합 = 49
2.5.2 EBCDIC 문자 집합 = 50
2.5.3 유니코드 문자 집합 = 50
요약 = 53
참고문헌 = 53
연습문제 = 54
3. 산술 = 59
3.1 개요 = 59
3.2 고정 소수점 덧셈과 뺄셈 = 59
3.2.1 2의 보수덧셈과 뺄셈 = 60
3.2.2 가산기와 감산기의 하드웨어 구현 = 62
3.2.3 1의 보수덧셈과 뺄셈 = 65
3.3 고정 소수점 곱셈과 나눗셈 = 66
3.3.1 부호 없는 곱셈 = 66
3.3.2 부호 없는 나눗셈 = 68
3.3.3 부호 있는 곱셈과 나눗셈 = 71
3.4 부동 소수점 산술 = 71
3.4.1 부동 소수점 덧셈과 뺄셈 = 72
3.4.2 부동 소수점 곱셈과 나눗셈 = 73
3.5 고성능 산술 = 73
3.5.1 고성능 덧셈 = 74
3.5.2 고성능 곱셈 = 75
3.5.3 고성능 나눗셈 = 79
3.5.4 잔여산술 = 82
예제 : 넓은 워드 고성능 가산기 = 83
3.6 사례연구 : 이진코드화 십진수를 사용한 계산기산술 = 85
3.6.1 HP9100A 계산기 = 85
3.6.2 이진코드화 십진덧셈과 뺄셈 = 85
3.6.3 BCD 부동 소수점 덧셈과 뺄셈 = 89
요약 = 90
참고문헌 = 90
연습문제 = 91
4. 명령어 집합 구조 = 95
4.1 명령어 집합 구조의 하드웨어 구성요소 = 96
4.1.1 개정된 시스템버스 모델 = 96
4.1.2 메모리 = 97
4.1.3 CPU = 99
4.2 ARC, a RISC 컴퓨터 = 104
4.2.1 ARC 메모리 = 104
4.2.2 ARC 명령어 집합 = 105
4.2.3 ARC 어셈블리어 형식 = 107
4.2.4 ARC 명령어 형식 = 108
4.2.5 ARC 데이터 형식 = 110
4.2.6 ARC 명령어 기술 = 112
4.3 의사연산 = 115
4.4 어셈블리어 프로그램의 예제 = 117
4.4.1 기계 구조와 주소지정의 다양성 = 120
4.4.2 명령어 집합 구조의 성능 = 122
4.5 메모리 내에 있는 데이터 접근 : 주소지정모드 = 123
4.6 서브루틴 링키지와 스택 = 124
4.7 어셈블리어에서의 입력과 출력 = 130
4.8 사례연구 : 자바 가상기계 ISA = 133
요약 = 138
참고문헌 = 139
연습문제 = 140
5. 컴퓨터 언어와 기계 = 145
5.1 컴파일과정 = 145
5.1.1 컴파일 단계 = 146
5.1.2 컴파일러 사상 사양 = 147
5.1.3 컴파일러를 통한 세 가지 명령어 군의 어셈블리코드 사상 = 147
5.1.4 데이터 이동 = 149
5.1.5 산술 명령어 = 150
5.1.6 프로그램의 제어흐름 = 151
5.2 어셈블리과정 = 153
5.2.1 어셈블리와 2-패스 어셈블러 = 154
5.2.2 어셈블과 기호테이블 = 157
5.2.3 어셈블러의 마지막 작업 = 159
5.2.4 프로그램의 메모리 배치 = 160
5.3 링크와 적재 = 160
5.3.1 링크 = 161
5.3.2 적재 = 163
프로그래밍 예문 = 164
5.4 매크로 = 166
5.5 사례연구 : 명령어 집합의 확장 인텔 MMX™와 모토롤라 AltiVec™ SIMD 명령어 = 168
5.5.1 배경 = 169
5.5.2 기본 아키텍처 = 169
5.5.3 벡터 레지스터 = 170
5.5.4 벡터 산술연산 = 172
5.5.5 벡터 비교연산 = 174
5.5.6 사례연구 요약 = 176
요약 = 176
참고문헌 = 177
연습문제 = 177
6. 데이터패스와 제어 = 181
6.1 마이크로아키텍처의 기본 = 182
6.2 ARC를 위한 마이크로아키텍처 = 183
6.2.1 데이터패스 = 185
6.2.2 제어섹션 = 191
6.2.3 타이밍 = 194
6.2.4 마이크로프로그램의 개발 = 195
예제 = 204
6.2.5 트랩과 인터럽트 = 205
6.2.6 나노프로그래밍 = 207
6.3 고정배선식 제어 = 208
예제 = 216
6.4 사례연구 : VHDL 하드웨어 기술언어 = 216
6.4.1 배경 = 217
6.4.2 VHDL이란? = 217
6.4.3 다수함수의 VHDL 내역 = 218
6.4.4 9값 논리시스템 = 221
요약 = 222
참고문헌 = 223
연습문제 = 223
7. 메모리 = 231
7.1 메모리 계층 = 231
7.2 램 = 233
7.3 칩 구성 = 234
7.3.1 작은 램으로 큰 램 구성하기 = 237
7.4 상용 메모리모듈 = 239
7.5 읽기 전용 메모리 = 240
7.6 캐시메모리 = 241
7.6.1 연관사상 캐시 = 243
7.6.2 직접사상 캐시 = 247
7.6.3 집합연관사상 캐시 = 249
7.6.4 캐시 성능 = 250
7.6.5 히트율과 유효 접근시간 = 251
7.6.6 다단계 캐시 = 253
7.6.7 캐시 관리 = 254
7.7 가상메모리 = 255
7.7.1 오버레이 = 256
7.7.2 페이징 = 257
7.7.3 세그먼테이션 = 260
7.7.4 단편화 = 262
7.7.5 가상메모리 대 캐시메모리 = 263
7.7.6 변환참조버퍼 = 263
7.8 발전된 주제 = 264
7.8.1 트리디코더 = 265
7.8.2 큰 램에 대한 디코더 = 266
7.8.3 내용주소화(연관) 메모리 = 267
메모리 설계 예제 : 이중 포트 RAM = 270
7.9 사례연구 : 렘버스메모리 = 271
7.10 사례연구 : 인텔 펜티엄 메모리시스템 = 274
요약 = 277
참고문헌 = 277
연습문제 = 279
8. 입력과 출력 = 285
8.1 간단한 버스 구조 = 286
8.1.1 BUS 구조, 프로토콜, 제어 = 287
8.1.2 버스 클록킹 = 288
8.1.3 동기버스 = 288
8.1.4 비동기버스 = 289
8.1.5 버스 중재 : 마스터와 슬레이브 = 290
8.2 브리지 기반의 버스 구조 = 292
8.3 통신방법론 = 294
8.3.1 프로그램된 입출력 = 295
8.3.2 인터럽트 구동 입출력 = 296
8.3.3 직접 메모리 접근 = 298
8.4 사례연구 : 인터넷 펜티엄 구조에서의 통신 = 299
8.4.1 시스템 클록, 버스 클록 그리고 버스속도 = 300
8.4.2 주소, 데이터, 메모리 그리고 입출력 능력 = 300
8.4.3 데이터워드는 유연한 정렬을 갖는다 = 300
8.4.4 펜티엄 군에서 버스 사이클 = 301
8.4.5 메모리 읽기와 쓰기버스 사이클 = 301
8.4.6 버스트 읽기버스 사이클 = 303
8.4.7 질의를 위한 버스 마스터에 의한 버스 유지 = 304
8.4.8 데이터 전송률 = 305
8.5 대용량 저장매체 = 305
8.5.1 자기 디스크 = 306
8.5.2 자기 테이프 = 313
8.5.3 자기 드럼 = 314
8.5.4 광 디스크 = 315
예제 : 하드 디스크에서의 전송시간 = 317
8.6 입력장치 = 318
8.6.1 자판 = 318
8.6.2 비트패드 = 319
8.6.3 마우스와 트랙볼 = 320
8.6.4 라이트펜과 터치스크린 = 321
8.6.5 조이스틱 = 322
8.7 출력장치 = 323
8.7.1 레이저 프린터 = 323
8.7.2 비디오 화면 = 324
요약 = 326
참고문헌 = 327
연습문제 = 327
9. 통신 = 331
9.1 모뎀 = 331
9.2 전송매체 = 333
9.2.1 개방선로 = 334
9.2.2 트위스티드 페어선 = 335
9.2.3 동축 케이블선 = 335
9.2.4 광섬유 = 336
9.2.5 위성 = 336
9.2.6 지상 마이크로파 = 337
9.2.7 라디오 = 337
9.3 네트워크 구조 : Local Area Networks(LAN) = 337
9.3.1 OSI 모델 = 338
9.3.2 위상 = 340
9.3.3 데이터 전송 = 341
9.3.4 브리지, 라우터 그리고 게이트웨이 = 342
9.4 통신오류와 오류 정정코드 = 343
9.4.1 정의된 비트오류율 = 344
9.4.2 오류 탐지와 정정 = 344
9.4.3 수직 리던던시 검사 = 350
9.4.4 순환 리던던시 검사 = 350
예제 : 이중 오류 정정 = 352
9.5 네트워크 구조 : Internet = 353
9.5.1 인터넷모델 = 353
9.5.2 브리지, 수정된 라우터 그리고 스위치 = 358
9.6 사례연구 : ATM(비동기적 전송모드 : Asynchronous Transfer Mode) = 360
9.6.1 STM과 ATM 비교 = 361
9.6.2 ATM이란 무엇인가? = 362
9.6.3 ATM 네트워크 구조 = 362
9.6.4 ATM에 대한 전망 = 364
요약 = 364
참고문헌 = 364
연습문제 = 365
10. 컴퓨터 구조의 경향 = 369
10.1 프로그램 실행의 정량적 분석 = 369
10.1.1 정량적 성능 분석 = 369
예제 : 새로운 명령어 집합의 속도 향상 계산 = 372
10.2 CISC에서 RISC로 = 373
10.3 데이터패스에서의 파이프라이닝 = 374
10.3.1 산술, 분기 LOAD-STORE 명령어 = 374
10.3.2 명령어 파이프라인 = 376
10.3.3 파이프라인 관리 = 376
예제 : 파이프라인의 성능 분석 = 378
10.4 오버래핑 레지스터 윈도우 = 379
예제 : 오버래핑 레지스터 윈도우와 지연된 분기의 컴파일코드 = 381
10.5 다중 명령어(슈퍼스칼라) 기계 : PowerPC 601 = 386
10.6 사례연구 : 슈퍼스칼라 구조로서의 파워 PowerPc 601 = 388
10.6.1 PowerPC™ 601의 명령어 구조 = 388
10.6.2 PowerPC™ 601의 하드웨어 구조 = 388
10.7 VLIW = 390
10.8 사례연구 : 인텔 IA-64(Merced) 구조 = 391
10.8.1 개발배경 : 80×86 CISC 구조 = 391
10.8.2 Merced : EPIC 구조 = 391
10.9 병렬 구조 = 394
10.9.1 플린(Flynn)의 분류 = 396
10.9.2 상호 연결망 = 397
예제 : 엄격한 논블록킹 망 = 401
10.9.3 병렬 구조로 적합한 알고리듬 = 404
10.9.4 프로세스 분리형 병렬처리 = 408
10.9.5 프로세스 결합형 병렬처리 = 411
10.10 사례연구 : Sega Genesis에서의 병렬 프로세싱 = 413
10.10.1 SEGA GENESIS 구조 = 413
10.10.2 SEGA GENESIS 작동 = 415
10.10.3 SEGA GENESIS 프로그래밍 = 415
요약 = 416
참고문헌 = 417
연습문제 = 419
찾아보기 = 421