제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