컴퓨터 구조 정기철 pdf 다운로드를 무료로 제공합니다 프로그래밍 관점에서 바라보는 컴퓨터 구조 컴퓨터구조 수업도 재미있게! 이론에 실습까지 가능한 구성 – 노트북만 있으면 팀단위 수업도 가능
관련 책 pdf 모음
책 소개
‘컴퓨터 구조’라는 과목은 컴퓨터 분야의 아주 중요한 과목이다. 그런데,‘컴퓨터 구조’를 이야기하기 전에 ‘컴퓨터’가 무엇인가를 먼저 정해야 할 것 같다. 그 이유는 기술이 발전함에 따라 ‘컴퓨터’를 바라보는 관점이 달라지고, 이에 따라 그 해답도 달라질 수 있기 때문이다. 컴퓨터 기술이 급속도로 발전하고 대중화 됨에 따라, 점점 컴퓨터의 의미가 ‘가정 에서의 TV’, ‘손 안의 장난감’이 되어가고 있다. TV의 개발/사용 초기에는 TV의 제작 기술이 가장 중요한 이슈였지만, 지금은 대부분의 사람들이 TV의 구조에 대해서는 관심이 없고, TV를 통해 제공되는 콘텐츠에 더 관심이 많은 것처럼, ‘컴퓨터 구조’ 또한 이미 기술적 관심의 대상에서 조금씩 멀어져 가고 있다고 생각한다. 즉, 이제는 조금 더 많은 비중을 컴퓨터를 이용해서 제공할 수 있는 서비스를 고려한 컴퓨터 구조 학습이 필요하다고 생각된다. 예를 들어 보자. 30~40년 전(1980년대 초반)의 개인용 컴퓨터는 IBM XT 계열이었다. 그 당시의 컴퓨터는 하드웨어가 그리 복잡하지 않았으며, 운영 체제 또한 지금에 비해 아주 간단했다. 또한 프로그래밍 언어의 문법만 익히면, 소프트웨어 프로그래밍이라는 작업도 모두 프로그래머의 머리에서 나오는 작업이었다. 오픈 소스(open source)… 이러한 것들은 관심이 적었던 시절이었다. 이제 2010년대 후반으로 와보자. 지금의 개인용 컴퓨터의 하드웨어의 속도 및 저장 용량을 그때와 단순 비교하면, 지금의 컴퓨터는 그 당시에 비해서 수 십만 배의 성능 향상을 보이고 있고, 운영 체제 또한 엄청나게 복잡해지고 다양한 기능을 지원하고 있다. 또한 프로그래머들은 프로그래밍 언어의 문법을 익힌 후, 다양한 프로그래밍 개발 환경, 개발 플랫폼, 관련 라이브러리 등의 사용법들을 익혀야만 프로그래밍이 가능하다. 또한 지금은 가상머신(virtual machines)과 가상화(virtualization) 기술로 인하여 물리적인 하드웨어의 구조보다 소프트웨어에 의한 컴퓨터 구조의 중요성이 더욱 중요해지고 있다.
컴퓨터 구조 정기철 pdf 다운로드
PREFACE iii
교재의 구성 v
강의계획표 vii
CHAPTER 1 컴퓨터 구조 개론 1
1.1 컴퓨터의 종류 3
1.2 컴퓨터 전원을 켜면 어떤 일이? 5
1.3 컴퓨터 구조 개괄 6
PART 1 논리 회로 관점에서의 컴퓨터 구조
CHAPTER 2 컴퓨터 내부의 데이터 표현 11
2.1 컴퓨터에서 사용하는 수 13
2.1.1 정보 표현의 단위 13
2.2 진법(numeral system) 15
2.2.1 10진법 16
2.2.2 2진법, 8진법, 10진법, 16진법 18
2.3 정수의 표현 20
2.3.1 2진수로 변환: 정수 부분의 변환 21
2.3.2 2진수로 변환: 소수 부분의 변환 23
2.3.3 각 진법 간의 숫자 표현 연습 24
2.3.4 부호없는 정수(unsigned integer: 0과 자연수) 32
2.3.5 부호있는 정수(signed integer) 35
2.3.6 심화 정수 연산 46
2.4 실수의 표현 47
2.4.1 고정 소수점 표현 방법 53
2.4.2 부동 소수점(浮動小數點, floating point) 표현 방법 54
2.4.3 심화 부동 소수점 연산 64
2.5 문자의 표현 66
2.5.1 ASCII 코드 67
2.5.2 유니코드(Unicode) 69
CHAPTER 3 논리 회로 기초 77
3.1 논리 회로를 시작하며 79
3.1.1 기계어 프로그래밍 80
3.1.2 기계어 밑에는 무엇이 있을까? 82
3.1.3 논리 회로 기초 86
3.2 기본 게이트 89
3.2.1 반도체 게이트 이전에는 무엇이 계산에 사용되었을까? 92
3.3 논리 회로 표현 방식 기초 94
3.3.1 간단한 경우 #1 94
3.3.2 간단한 경우 #2 96
3.3.3 논리식/ 논리도/ 진리표 99
3.3.4 논리 회로의 2가지 종류: 조합 논리 회로/ 순서 논리 회로 102
CHAPTER 4 조합 논리 회로 105
4.1 조합 논리 회로를 만들자 107
4.1.1 불 대수 법칙 108
4.1.2 And-Or/Or-And 회로 111
4.1.3 논리식(부울식: boolean expression)의 간소화 113
4.2 논리식의 간소화: Karnaugh map(K-map) 115
4.2.1 2개의 입력 117
4.2.2 3개의 입력 119
4.2.3 Don’t Care 조건 122
4.2.4 4개의 입력 123
4.2.5 Don’t Care 실용적인 예제 127
4.2.6 Dual K-Map 131
4.2.7 입력이 4개 보다 많은 경우 133
4.2.8 NAND 게이트 134
4.3 조합 논리 회로 실습 136
4.3.1 다양한 시뮬레이션 예제 139
4.3.2 회로 제작 실습 문제 140
4.4 디지털 부품 141
4.4.1 작동 구동 신호(Enabling Lines) 141
4.4.2 멀티플렉서 (multiplexer)와 디-멀티플렉서(de-multiplexer) 143
4.4.3 이진 디코더(binary decoder)와 이진 인코더(binary encoder) 146
CHAPTER 5 순서 논리 회로(순차 논리 회로) 153
5.1 Stable(안정)/Unstable(불안정) 155
5.1.1 SR latch 156
5.1.2 SR flip-flop 160
5.2 다양한 종류의 플립플랍 167
5.2.1 SR 플립플랍 167
5.2.2 JK 플립플랍 169
5.2.3 D 플립플랍 170
5.2.4 T 플립플랍 172
5.3 순서 논리 회로를 만들자: 카운터(counter) 회로 예제 173
5.3.1 비동기식 카운터 174
5.3.2 동기식 카운터 177
5.4 순서 논리 회로 실습 180
5.4.1 프로그램 사용법 익히기 180
5.4.2 플립플랍의 사용 예 181
5.4.3 비동기식 카운터 182
5.4.4 동기식 카운터 183
PART2 하드웨어 관점에서의 컴퓨터 구조
CHAPTER 6 컴퓨터 하드웨어 189
6.1 하드웨어 구성 요소 191
6.2 중앙처리장치(CPU: Central Processing Unit) 192
6.2.1 레지스터(registers) 193
6.2.2 산술/논리 연산 장치(Arithmetic and Logic Unit: ALU) 200
6.2.3 제어 장치(control unit) 215
6.2.4 파이프라이닝 225
6.2.5 CISC/RISC 226
6.3 버스(bus) 228
6.4 기억(저장) 장치 231
6.4.1 내부 메모리(internal memory) 232
6.4.2 외부 메모리(external memory/ 보조 기억 장치) 238
6.4.3 캐쉬 메모리(cache memory) 243
6.5 입출력 장치(I/O Device) 249
6.5.1 입출력 장치 250
6.5.2 입출력 장치의 제어 방식 255
6.5.3 인터럽트 258
CHAPTER 7 기계어 프로그래밍을 통한 컴퓨터 구조 이해 265
7.1 가상 머신의 구조 267
7.1.1 Pep/8 가상 머신 267
7.1.2 레지스터 269
7.1.3 메인 메모리 270
7.1.4 입출력 장치 271
7.2 기계어(machine language)와 어셈블리 언어(assembly language) 272
7.2.1 고급 언어의 명령문의 기본적 구조 273
7.2.2 기계어 273
7.2.3 어셈블리 언어 288
7.3 명령어 집합 311
7.3.1 명령어의 구성 312
7.3.2 연산자 코드(op-code) 312
7.3.3 명령어의 형식 313
7.3.4 피연산자의 주소 지정 방식 317
PART3 또 다른 컴퓨터들…
CHAPTER 8 가상머신(Virtual Machines) 331
8.1 NOX: 안드로이드 가상 머신 333
8.2 VirtualBox 335
8.3 자바 가상 머신 341
CHAPTER 9 병렬 컴퓨터(parallel computer) 349
9.1 단일 프로세서/멀티 프로세서 351
9.2 병렬 컴퓨터 종류 356
9.3 OpenMP를 이용한 병렬 프로그래밍 358
9.3.1 OpenMP 개발 환경 구축 362
9.3.2 OpenMP를 이용한 실제 예제 363
CHAPTER 10 클라우드 컴퓨팅(Cloud Computing) 365
10.1 클라우드 컴퓨팅 주요 기술 368
10.2 Google Drive 서비스(SaaS) 369
10.3 Google Compute Engine(PaaS) 372
10.4 개발자를 위한 가상 머신: 클라우드9(PaaS) 379
INDEX 383