목차
제1장 컴퓨터 시스템의 소개 ... 15
   1.1 컴퓨터 시스템의 특성 ... 17
   1.2 컴퓨터 시스템의 구성 ... 18
      1.2.1 물리적 장치 ... 19
      1.2.2 시스템 프로그램 ... 22
      1.2.3 응용 프로그램 ... 25
      1.2.4 사용 목적에 따른 컴퓨터의 분류 ... 25
   1.3 컴퓨터 시스템의 성능 ... 26
      1.3.1 성능의 측도 ... 27
      1.3.2 시스템 성능 ... 30
   1.4 성능의 평균 ... 32
      1.4.1 단순 평균과 가중치 평균 ... 33
      1.4.2 처리 시간데 대한 산술 평균(arithmetic mean) ... 33
      1.4.3 처리율에 대한 조화 평균(harmonic mean) ... 34
      1.4.4 상대적인 수행 시간에 대한 기하 평균(geometric mean) ... 36
      1.4.5 벤치마크 프로그램 ... 38
   1.5 컴퓨터의 발전 ... 38
      1.5.1 폰노이만(Von Neumann) 구조 컴퓨터 ... 38
      1.5.2 컴퓨터의 발전 과정 ... 39
   1.6 컴퓨터 시스템의 설계 ... 40
   1.7 요약 ... 42
   연습문제 ... 43
제2장 논리 회로의 활용 ... 45
   2.1 스위칭 회로 ... 47
   2.2 부울 연산과 부울 대수 ... 48
   2.3 논리 게이트 ... 52
   2.4 논리 게이트의 구현 ... 57
   2.5 논리 연산식의 간단화 ... 59
      2.5.1 연산식 변형 ... 59
      2.5.2 카노맵 이용 ... 59
   2.6 조합 회로(Combinational Circuit) ... 67
      2.6.1 가산기 ... 69
      2.6.2 디코더 ... 71
      2.6.3 멀티플렉서 ... 72
      2.6.4 패리티 검사 회로 ... 74
   2.7 저장 장치 ... 76
      2.7.1 플립플롭 ... 76
      2.7.2 레지스터 ... 81
      2.7.3 쉬프트 레지스터 ... 82
   2.8 순차 회로(Sequential Circuit) ... 83
      2.8.1 비동기 카운터회로 ... 84
      2.8.2 동기 카운터회로 ... 86
   2.9 요약 ... 88
   연습문제 ... 89
제3장 자료의 표현과 산술 연산 ... 93
   3.1 문자의 표현 ... 96
   3.2 2진수의 표현 ... 97
   3.3 수의 표현 ... 103
      3.3.1 보수 ... 103
      3.3.2 정수의 표현 ... 104
      3.3.3 부동 소수점에 의한 실수의 표현 ... 106
   3.4 정수의 연산 ... 108
      3.4.1 양수의 덧셈 ... 108
      3.4.2 정수의 덧셈과 뺄셈 ... 109
      3.4.3 정수의 곱셈 ... 113
      3.4.4 정수의 나눗셈 ... 117
   3.5 실수의 연산 ... 119
      3.5.1 부동 소수점 수의 덧셈과 뺄셈 ... 119
      3.5.2 부동 소수점 수의 곱셈 ... 120
   3.6 이진 코드 ... 121
      3.6.1 Gray코드 ... 121
      3.6.2 BCD(Binary Coded Decimal) 코드 ... 122
   3.7 요약 ... 122
   연습문제 ... 124
제4장 CPU의 내부 구조와 명령어 집합 ... 127
   4.1 CPU 내부의 저장 장치 ... 130
      4.1.1 특수 레지스터 ... 130
      4.1.2 범용 레지스터(General Purpose Register) ... 131
      4.1.3 스택 저장 장치 ... 132
   4.2 레지스터와 CPU 내부의 연결 ... 134
   4.3 ALU(Arithmetic and Logic Unit)의 설계 ... 138
   4.4 명령어 집합 ... 144
   4.5 실행 내용에 따른 명령어 구분 ... 147
      4.5.1 명령어의 실행 내용 ... 147
      4.5.2 사용자 모드와 감독자 모드 ... 153
   4.6 주소 지정 모드(Addressing mode) ... 154
   4.7 명령어의 형식 ... 160
   4.8 스택의 활용 ... 166
      4.8.1 서브루틴 호출의 처리 ... 166
      4.8.2 연산식의 표현과 계산 ... 169
   4.9 CISC와 RISC ... 172
   4.10 요약 ... 174
   연습문제 ... 175
제5장 마이크로 연산과 제어장치 ... 181
   5.1 마이크로 연산 ... 183
   5.2 명령어 처리 과정 ... 184
      5.2.1 명령어의 페치 과정 ... 184
      5.2.2 디코딩 및 유효 주소 계산 ... 186
      5.2.3 실행 단계 ... 187
      5.2.4 버스의 구조와 명령어 실행 단계 ... 188
   5.3 제어 장치의 유형 ... 190
   5.4 하드와이어적 제어 장치 ... 192
   5.5 마이크로프로그램된 제어 장치 ... 193
   5.6 마이크로프로그램의 실행 제어 ... 199
   5.7 요약 ... 203
   연습문제 ... 204
제6장 파이프라인 구조 ... 207
   6.1 파이프라인 구조의 성능 ... 212
   6.2 파이프라인 CPU의 분석 ... 215
      6.2.1 처리 과정이 동일하지 않은 명령어 실행 ... 216
      6.2.2 일정하지 않은 단계별 처리 시간 ... 217
      6.2.3 분기 명령어의 영향 ... 220
      6.2.4 명령어 사이의 의존성 ... 226
      6.2.5 자원의 부족에 의한 충돌 ... 228
   6.3 파이프라인을 이용한 산술 연산 ... 229
   6.4 RISC 프로세서 ... 231
   6.5 수퍼스칼라 프로세서(Superscalar Processor) ... 235
   6.6 병렬 처리의 한계성 ... 237
      6.6.1 제어의 의존성(control dependency) ... 237
      6.6.2 자료의 의존성(data dependency) ... 238
      6.6.3 이름의 의존성(name dependency) ... 238
      6.6.4 자원의 충돌(resource conflict) ... 239
   6.7 예측적 실행 기법 ... 239
   6.8 요약 ... 241
   연습문제 ... 242
제7장 메모리 시스템 ... 245
   7.1 메모리의 성능 ... 247
   7.2 메모리 소자 ... 250
      7.2.1 DRAM 메모리의 내부 구조 ... 254
   7.3 메모리 주소 지정 ... 258
   7.4 메모리 참조의 특성과 계층적 메모리 ... 259
   7.5 캐쉬 메모리 ... 264
      7.5.1 직접 매핑(direct mapping) ... 268
      7.5.2 어소시어티브 매핑(associative mapping) ... 270
      7.5.3 셋 어소시어티브 매핑(Set Associative mapping) ... 272
      7.5.4 캐쉬 제거(Replacement) ... 275
      7.5.5 캐쉬 쓰기 정책 ... 277
      7.5.6 캐쉬 블록의 구성 ... 280
      7.5.7 다양한 캐쉬 구조 ... 282
   7.6 메모리 인터리빙 ... 283
   7.7 가상 메모리 ... 287
      7.7.1 메모리 관리의 주처 ... 287
      7.7.2 페이징 기법 ... 289
      7.7.3 가상 주소 변환 ... 290
      7.7.4 TLB(Translation Lockaside Buffer) ... 296
      7.7.5 페이지의 제거 ... 297
      7.7.6 캐쉬를 고려한 가상 메모리 ... 297
   7.8 프로그램 수행시의 메모리 구조 ... 300
   7.9 디스크 ... 301
   7.10 요약 ... 306
   연습문제 ... 307
제8장 입출력 ... 313
   8.1 입출력 연결과 주소 지정 ... 316
      8.1.1 입출력 연결 ... 316
      8.1.2 입출력 주소 지정 ... 318
      8.1.3 입출력 버스 ... 320
   8.2 입출력 수행의 분류 ... 324
      8.2.1 프로그램적 입출력 ... 325
      8.2.2 독립적 입출력 ... 329
   8.3 인터럽트 ... 333
      8.3.1 인터럽트의 발생 유형 ... 334
      8.3.2 외부 인터럽트 ... 335
      8.3.3 다중 인터럽트의 처리 ... 338
      8.3.4 내부 인터럽트(예외) ... 340
      8.3.5 동시 발생한 인터럽트와 예외의 처리 ... 341
   8.4 요약 ... 342
   연습문제 ... 343
제9장 병렬처리와 멀티프로세서 ... 347
   9.1 컴퓨터 시스템 구조의 분류 ... 351
   9.2 멀티프로세서 구조의 성능 및 신뢰성 ... 353
   9.3 상호 연결 구조 ... 354
      9.3.1 공통 버스 ... 356
      9.3.2 크로스바 연결 구조 ... 357
      9.3.3 다단계 연결 구조(multistage interconnection) ... 357
      9.3.4 하이퍼큐브(Hypercube) 연결 구조 ... 359
   9.4 공유 메모리 구조 ... 360
      9.4.1 멀티프로세서의 캐쉬 일관성(cache coherency) ... 362
      9.4.2 동기화 ... 365
   9.5 메시지 전달 구조 ... 366
      9.5.1 메시지 전송 ... 367
      9.5.2 메시지 전송 성능 ... 367
   9.6 요약 ... 369
   연습문제 ... 370
제10장 컴퓨터 통신 ... 371
   10.1 지역 비동기 통신 ... 373
      10.1.1 비동기 통신의 필요성 ... 373
      10.1.2 비트 전송 ... 374
      10.1.3 통신을 위한 표준 ... 374
      10.1.4 RS-232에서의 비동기 문자 전송 ... 375
      10.1.5 보율, 프래밍 오류 ... 377
      10.1.6 전이중 비동기 통신 ... 378
      10.1.7 하드웨어 대역폭과 비트들의 전송 ... 379
   10.2 원거리 통신(운반자와 모뎀) ... 380
      10.2.1 원거리를 통한 신호 전송 ... 380
      10.2.2 변조와 복조를 위한 모뎀 하드웨어 ... 384
      10.2.3 운반자 주파수와 멀티플렉싱 ... 385
      10.2.4 시분할 멀티플렉싱 ... 387
   10.3 패킷, 프레임 그리고 오류 발견 ... 387
      10.3.1 패킷의 개념 ... 387
      10.3.2 패킷과 시분할 멀티플렉싱 ... 389
      10.3.3 패킷과 하드웨어 프레임 ... 389
      10.3.4 전송 오류 ... 391
      10.3.5 패리트 비트(parity bit)와 패리티 검사 ... 392
      10.3.6 첵섬(checksum)을 이용한 오류 발견 ... 393
   10.4 LAN 기술과 네트워크 구조 ... 394
      10.4.1 점-대-점 통신 ... 394
      10.4.2 공유된 통신 채널 ... 395
      10.4.3 LAN 구조(Topology) ... 396
      10.4.4 버스 구조 네트워크의 예 : 이더넷 ... 399
      10.4.5 링 네트워크의 예 : IBM 토큰 링 ... 400
      10.4.6 별 네트워크의 예 : ATM ... 402
   10.5 WAN 기술 ... 403
      10.5.1 대규모 네트워크와 광역 ... 403
      10.5.2 패킷 스위치 ... 404
      10.5.3 WAN 구조 ... 405
   10.6 저장과 발송 ... 406
   10.7 프로토콜과 계층화 ... 406
      10.7.1 프로토콜의 필요성 ... 407
      10.7.2 프로토콜 군 ... 407
      10.7.3 ISO 7 계층 ... 408
      10.7.4 계층화된 소프트웨어가 동작하는 방법 ... 410
   10.8 인터네트워킹 ... 411
      10.8.1 인터네트워킹의 필요성 ... 412
      10.8.2 인터네트워킹 ... 412
      10.8.3 라우터로 네트워크 연결 ... 413
      10.8.4 가상 네트워크 ... 414
      10.8.5 인터네트워킹을 위한 프로토콜들 ... 415
      10.8.6 IP:(인터넷 프로토콜) 주소 ... 417
      10.8.7 IP 데이터그램과 데이터그램 전송 ... 420
      10.8.8 TCP : 신뢰성 있는 트랜스포트 서비스 ... 422
   10.9 클라이언트-서버 상호작용 ... 424
   10.10 요약 ... 427
   연습문제 ... 428
제11장 마이크로프로세서의 내부 구조 ... 431
   11.1 IA 구조의 용어와 특성 ... 434
   11.2 동작 모드 ... 436
   11.3 8086의 구조 ... 439
      11.3.1 8086의 내부 구조 ... 439
      11.3.2 8086의 레지스터 ... 441
      11.3.3 프로세서의 초기 동작 ... 442
   11.4 80286의 구조 ... 442
      11.4.1 80286의 내부 구조 ... 443
      11.4.2 80286의 레지스터 ... 444
   11.5 80386의 구조 ... 445
      11.5.1 80386 내부 구조 ... 445
      11.5.2 80386의 레지스터 ... 447
   11.6 80486의 구조 ... 449
      11.6.1 80486의 내부 구조 ... 449
      11.6.2 80486의 레지스터 ... 450
   11.7 펜티엄 프로세서의 구조 ... 451
      11.7.1 펜티엄의 내부 구조 ... 451
      11.7.2 펜티엄 레지스터 ... 453
   11.8 P6군 프로세서(펜티엄프로, 펜티엄 Ⅱ, 펜티엄 Ⅲ) ... 454
      11.8.1 개선된 수퍼스칼라 구조 ... 454
      11.8.2 동적 실행 체계 ... 455
      11.8.3 계층적 온칩 캐쉬 ... 455
      11.8.4 작업-지향적(transaction-oriented) 외부 64비트 자료 버스 ... 455
      11.8.5 주소 버스 확장 ... 456
      11.8.6 메모리 부시스템 ... 457
      11.8.7 페치 및 디코딩 장치 ... 458
      11.8.8 명령어풀(재배치 버퍼) ... 460
      11.8.9 발송 및 실행 장치(Dispatch/Execute Unit) ... 460
      11.8.10 회수 장치(Retirement Unit) ... 461
   11.9 요약 ... 464
찾아보기 ... 465
닫기