로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

Great Code 제1권 : 하드웨어의 이해

   
지은이 RANDALL HYDE   |   출판사 에이콘  |   발행일 2007년 07월 31일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 25,000원22,500원 10%
마일리지 5% 1,250원
발행일 2007-07-31
ISBN 8989975719 |  9788989975717
기타정보 번역서 | 464쪽
예상출고일
배송비 무료배송
   
프로그래밍언어
종합지수 12p 167 위
   
이 책의 원서
  Write Great Code: Understanding the Machine
NO STARCH PRESS | Randall Hyde
 

유능한 프로그래머가 되기 위해 닦아야 할 개념 원리를 학습해서 프로그래머의 내공을 높여주는 원리학습 가이드 시리즈인 GREAT CODE 제1권. 이 시리즈는 더 빠르고 훌륭한 최고의 코드를 짤 수 있도록 전 4권에 걸쳐 프로그래밍의 근본원리를 쉽게 가르쳐준다.

제1권 '하드웨어 이해하기'에서는 어셈블리 프로그래밍 언어를 익혀야하는 부담 없이도 컴퓨터 구조에 관한 내용을 공부할 수 있다. 이 책은 C++, VB, 파스칼, 자바 등 여러 고급언어 프로그래머를 위해 저술됐으며, 컴퓨터 교육과정에서 흔히 다루지 않는 컴퓨터 구조의 기계적인 수준까지 자세하게 다루고 있다.

1장 최고의 코드를 작성하기 위해 알아야 할 것 1
1.1 ‘최고의 코드’ 시리즈 1
1.2 이 책의 내용 2
1.3 이 책의 대상 5
1.4 최고의 코드의 특징 6
1.5 동작 환경 7
1.6 더 많은 정보를 원하면 8

2장 수치 표기법 9
2.1 수란 무엇인가? 9
2.2 수 체계 10
2.2.1 10진 위치 표기법 11
2.2.2 기수 12
2.2.3 2진법 수체계 13
2.2.4 16진법 수체계 15
2.2.5 8진법 수체계 18
2.3 수치/문자열 변환 19
2.4 내부 수치 표현법 21
2.4.1 비트 21
2.4.2 비트 스트링 22
2.5 부호 있는 수와 부호 없는 수 24
2.6 2진수의 유용한 속성 26
2.7 부호 확장, 0 확장과 축소 27
2.8 포화 31
2.9 2진화 10진 표기법 32
2.10 고정소수점 표기 33
2.11 스케일 수치 포맷 35
2.12 유리수 표기법 37
2.13 더 많은 정보를 원하면 38

3장 2진법 연산과 비트 연산
3.1 2진수, 16진수의 연산
3.1.1 2진수 덧셈
3.1.2 2진수 뺄셈
3.1.3 2진수 곱셈
3.1.4 2진수 나눗셈
3.2 비트 논리 연산
3.3 2진수와 비트 스트링에 대한 논리 연산
3.4 유용한 비트 연산
3.4.1 AND를 이용, 비트 스트링의 비트 테스트
3.4.2 AND를 이용, 여러 비트가 모두 0인지 테스트
3.4.3 비트 스트링 내부의 여러 비트 비교
3.4.4 AND를 이용, 모듈로-n 카운터 만들기
3.5 쉬프트와 로테이트
3.6 비트 필드와 묶인 데이터

4장 부동소수점 표기 65
4.1 부동소수점 연산 소개 65
4.2 IEEE 부동소수점 포맷 71
4.2.1 단정밀도 부동소수점 포맷 71
4.2.2 복정밀도 부동소수 포맷 73
4.2.3 확정 정밀도 부동소수 포맷 73
4.3 정규화 74
4.4 라운딩 76
4.5 특별 부동소수점 값 77
4.6 부동소수점 예외 78
4.7 부동소수점 연산 79
4.7.1 부동소수점 표기 79
4.7.2 부동소수점 덧셈과 뺄셈 79
4.7.3 부동소수점 곱셈과 나눗셈 92
4.8 더 많은 정보를 원하면 102

5장 문자 표기법 103
5.1 문자 데이터 103
5.1.1 ASCII 문자셋 104
5.1.2 EBCDIC 문자셋 107
5.1.3 더블 바이트 문자셋 108
5.1.4 유니코드 문자셋 109
5.2 문자열 111
5.2.1 문자열 포맷 111
5.2.2 문자열의 유형: 정적 문자열, 유사 동적 문자열, 동적 문자열 116
5.2.3 문자열의 참조 횟수 118
5.2.4 델파이/카일릭스 문자열 119
5.2.5 자신만의 문자열 포맷 만들기 119
5.3 문자셋 120
5.3.1 문자셋의 멱집합 표기 120
5.3.2 문자셋의 문자 나열식 표기 121
5.4 자신만의 문자셋을 설계하기 122

6장 메모리 구조와 접근 133
6.1 기본 시스템 구성요소 133
6.1.1 시스템 버스 134
6.1.2 주소 버스 135
6.1.3 제어 버스 136
6.2 메모리의 물리적 구조 137
6.2.1 8비트 데이터 버스 139
6.2.2 16비트 데이터 버스 140
6.2.3 32비트 데이터 버스 142
6.2.4 64비트 버스 143
6.2.5 80x86 프로세서가 아닌 프로세서에서의 작은 단위 메모리 접근 143
6.3 빅 엔디안 구조 VS 리틀 엔디안 구조 144
6.4 시스템 클럭 150
6.4.1 메모리 접근과 시스템 클럭 151
6.4.2 대기 상태 152
6.4.3 캐쉬 메모리 154
6.5 CPU 메모리 접근 157
6.5.1 직접 지정 모드 157
6.5.2 간접 지정 모드 158
6.5.3 인덱스 지정 모드 159
6.5.4 스케일 인덱스 지정 모드 160
6.6 더 많은 정보를 원하면 160

7장 혼합 데이터 형과 메모리 객체 161
7.1 포인터 161
7.1.1 포인터 구현 163
7.1.2 포인터와 동적 메모리 할당 164
7.1.3 포인터 연산 164
7.2 배열 168
7.2.1 배열의 선언 169
7.2.2 메모리 상에서 배열의 모습 172
7.2.3 배열 원소에 접근하기 173
7.2.4 다차원 배열 174
7.3 레코드/구조체 181
7.3.1 파스칼/델파이 레코드 181
7.3.2 C/C++ 레코드 182
7.3.3 HLA 레코드 182
7.3.4 레코드를 위한 메모리 공간 183
7.4 식별 유니온 185
7.4.1 C/C++ 유니온 186
7.4.2 파스칼/델파이/카일릭스 유니온
7.4.3 HLA 유니온 188
7.4.4 유니온을 위한 메모리 공간 188
7.4.5 유니온의 다른 용법 189
7.5 더 많은 정보를 원하면 190

8장 불리언 로직과 디지털 설계 191
8.1 불리언 대수 191
8.1.1 불리언 연산자 192
8.1.2 불리언 공리 192
8.1.3 불리언 연산자 우선순위 194
8.2 불리언 함수와 진리표 194
8.3 함수 번호 196
8.4 불리언 수식의 대수 처리 197
8.5 정규형 198
8.5.1 최소항의 합과 진리표 200
8.5.2 대수적으로 최소항의 합 만들기 201
8.5.3 최대항의 곱 정규형 202
8.6 불리언 함수의 단순화 204
8.7 결국, 이는 컴퓨터에 어떻게 적용되는가? 212
8.7.1 전자 회로와 불리언 함수의 관계 213
8.7.2 조합 회로 214
8.7.3 순차 로직과 클럭 로직 220
8.8 더 많은 정보를 원하면 224

9장 CPU 구조 225
9.1 기본적인 CPU 설계 225
9.2 명령어의 해석과 수행: 랜덤 로직 vs. 마이크로코드 228
9.3 단계별로 명령어 수행하기 229
9.3.1 mov 명령어 230
9.3.2 add 명령어 231
9.3.3 jnz 명령어 234
9.3.4 loop 명령어 234
9.4 병렬성-더 높은 성능의 비결 235
9.4.1 프리페치 큐 238
9.4.2 프리페치 큐의 성능 향상을 방해하는 요소들 242
9.4.3 파이프라이닝-여러 명령어 수행을 중첩하기 234
9.4.4 명령어 캐쉬-다수의 메모리 경로 제공하기 247
9.4.5 피이프라인 헤저드 249
9.4.6 슈퍼스칼라 오퍼레이션-명령어를 병렬적으로 수행하기 251
9.4.7 비순차적 수행 253
9.4.8 레지스터 이름 바꾸기 254
9.4.9 VLIW 아키텍처 255
9.4.10 병렬 처리 256
9.4.11 멀티프로세싱 257
9.5 더 많은 정보를 원하면 258

10장 명령어 집합 구조 259
10.1 명령어 집합 설계의 중요성 260
10.2 명령어 설계의 기본적인 목적 261
10.2.1 op코드 길이 선택하기 263
10.2.2 미래에 대한 대비 265
10.2.3 명령어 선택하기 266
10.2.4 명렁어에 op코드 할당하기 266
10.3 가상 프로세서 Y86 267
10.3.1 Y86 프로세서의 제한 사항 268
10.3.2 Y86 명령어 268
10.3.3 Y86의 지정 모드 270
10.3.4 Y86 명령어 인코딩하기 272
10.3.5 Y86 명령어 인코딩의 예 275
10.3.6 Y86 명령어 집합 확장하기 279
10.4 80x86 명령어 인코딩하기 280
10.4.1 명령어 오퍼런드 인코딩하기 282
10.4.2 add 명령어 인코딩하기 - 몇 가지 예제들 288
10.4.3 상수 오퍼런드 인코딩하기 291
10.4.4 8비트, 16비트, 32비트 오퍼런드 인코딩하기 292
10.4.5 명령어의 대안 인코딩 293
10.5 명령어 집합 설계가 프로그래머에게 의미하는 것들 294
10.6 더 많은 정보를 원한다면 294

11장 메모리 구조와 구성 295
11.1 메모리 계층 295
11.2 메모리 계층의 동작 방식 298
11.3 메모리 하위시스템에 존재하는 성능 차이 300
11.4 캐쉬의 구조
11.4.1 직접-사상 캐쉬 303
11.4.2 완전 연관 캐쉬 304
11.4.3 n-Way 집합 연관 캐쉬 304
11.4.4 데이터 접근 유형에 따라 캐쉬 방식 결정하기 305
11.4.5 캐쉬 라인 교체 정책 306
11.4.6 메모리에 데이터 쓰기 307
11.4.7 캐쉬 사용과 소프트웨어 308
11.5 가상 메모리, 보호 장치, 페이징 309
11.6 스래슁 312
11.7 NUMA와 주변 장치들 313
11.8 메모리 계층을 고려해서 소프트웨어 작성하기 314
11.9 실행 중 메모리의 구성 방식 316
11.9.1 정적/동적인 오브젝트, 결합, 수명기간 317
11.9.2 코드, 읽기전용, 상수 영역 319
11.9.3 정적인 변수 영역 319
11.9.4 초기화되지 않은 영역 319
11.9.5 스택 영역 320
11.9.6 힙 영역과 동적인 메모리 할당 321
11.10 더 많은 정보를 원하면 328

12장 입력과 출력 329
12.1 CPU를 외부와 연결하기 329
12.2 포트를 시스템에 연결하는 다른 방법들 333
12.3 입출력 메커니즘 334
12.3.1 메모리-맵 입출력 334
12.3.2 입출력과 캐쉬 335
12.3.3 I/O-맵 입출력 335
12.3.4 직접 메모리 접근 336
12.4 입출력 속도 계층 337
12.5 시스템 버스와 각 데이터 전송률 338
12.5.1 PCI 버스의 성능 340
12.5.2 ISA 버스의 성능 340
12.5.3 AGP 버스 341
12.6 버퍼링 341
12.7 핸드쉐이킹 342
12.8 입출력 포트의 타임아웃 343
12.9 인터럽트와 폴링 345
12.10 보호 모드 연산과 장치 드라이버 346
12.10.1 장치 드라이버 346
12.10.2 장치 드라이버 및 "파일들"과 통신하기 347
12.11 각 PC 주변 장치에 대해 348
12.12 키보드 348
12.13 표준 PC 병렬 포트 349
12.14 직렬 포트 351
12.15 디스크 드라이브 352
12.15.1 플로피 드라이브 352
12.15.2 하드 드라이브 352
12.15.3 RAID 시스템 358
12.15.4 Zip 드라이브 등의 광 드라이브 359
12.15.5 광학 드라이브 359
12.15.6 CD-ROM, CD-R, CD-R/W, DVD, DVD-R, DVD-RAM과 DVD-R/W 드라이브 360
12.16 테이프 드라이브 362
12.17 플래시 저장장치 363
12.18 램 디스크와 반도체 디스크 365
12.19 SCSI 장치와 제어기 366
12.20 IDE/ATA 인터페이스 371
12.21 대용량 저장 장치의 파일 시스템 374
12.21.1 자유공간 비트맵을 사용한 파일 관리 376
12.21.2 파일 할당 테이블 377
12.21.3 블록 리스트 파일 구조 381
12.22 대용량 장치의 데이터를 조작하는 소프트웨어를 작성하기 386
12.22.1 파일 접근 속도 386
12.22.2 동기 I/O와 비동기 I/O 388
12.22.3 I/O 형식의 의미 388
12.22.4 메모리 맵 파일 389
12.23 범용 직렬 버스 390
12.23.1 USB 설계 390
12.23.2 USB 성능 392
12.23.3 USB 전송의 형식 393
12.23.4 USB 장치 드라이버 395
12.24 마우스, 트랙패드 및 다른 포인팅 장치 396
12.25 조이스틱과 게임 제어기 398
12.26 사운드 카드 399
12.26.1 오디오 주변장치가 소리를 만드는 방법 400
12.26.2 오디오와 MIDI 파일 형식 401
12.26.3 오디오 장치를 프로그래밍 하기 403
12.27 좀 더 많은 정보를 원하면 404
Randall Hyde
최고의 어셈블리 언어 관련 서적인 “The Art of Assembly Language (No Starch Press)”의 저자이며, “The Waite Group’s MASM 6.0 Bible”의 공동 저자이다. 그는 닥터 돕스 저널(Dr.Bobb’s Journal)과 바이트(Byte)지를 비롯한 여러 전문 잡지에 기고하고 있다.

전동환
서울대학교 컴퓨터공학과를 졸업하고 한국MDS에서 순수 국산 RTOS인 Velos를 개발하고 있다. 임베디드 시스템 및 RTOS 관련 강좌를 다수 진행했으며, <월간 마이크로소프트>, <월간 임베디드 월드> 등에 RTOS 관련 기사를 기고하기도 했다. 현재 에이콘 출판사의 임베디드 시스템 프로그래밍 시리즈 에디터로도 활동 중이며 ‘RTOS를 이용한 실시간 임베디드 시스템 디자인’, ‘임베디드 시스템 대사전’ 등을 번역했다.

김원호
서울대학교 컴퓨터공학과에 재학 중이다. 트랙나인에서 개발팀장을 맡았고, 케이비테크놀러지(주)의 자바카드개발팀에서 자바 카드 KONA개발을 담당했다. 현재는 복학해서 학업에 매진하고 있다. 취미는 하드커버 원서 책 수집이다.

최재식
서울대학교 컴퓨터공학과를 졸업한 후, 소만사(주)에서 CRM 관련 제품 개발팀장을 맡았다. 2005년 가을에 일리노이 주립대학교(UIUC) 전산학 석사과정으로 진학 예정이다. 로봇 시스템과 관련한 A.I. 알고리즘들이 주요 연구 관심사다.

강승훈
서울대학교 컴퓨터공학과를 졸업했다. 현재 케이비테크놀러지(주)의 플랫폼개발팀 팀장이며, 다양한 칩 플랫폼 상에 자바카드를 개발해왔고, 지금은 UICC/USIM 개발에 매진하고 있다.


베스트 하드웨어 북
이인상님이 쓰신 서평보기 I 평점 I 조회수(1212) I 공감 (0) I 블로그
쉽게 접근 가능하지만 유용한 내용들. 책장을 펼쳐보자마자 왠지 정이 않가는 작의 활자의 빽빽한 구성. 책의 1/4가량을차지하는 각종 수치표기법. 한마디로 책의 첫 인상은 고리타분한 교과서 같은서적이라고 할 수 있습니다. 그래도 일단 책을 읽기로 마음먹었으니 끝까지 한번 가봐야겠죠. 5장까지 수치 ,문자 표기법에 대해 다룹니다. 대부분의 하드웨어 책들에서2진수 연산, 기수법, 소수와 문자 표기법에 관해 다룹니다만 간략하게넘어가는 경우가 대부분이...
괜찮은책
송재운님이 쓰신 서평보기 I 평점 I 조회수(1497) I 공감 (0) I 블로그
하드웨어적인 부분과현재 사용하는 소프트에어에서의 처리부분에 대한 부분을 잘 설명하고 있는 책이다.  프로그래밍을 하는데그러한 내부 처리부분에 대한 지식이 필요없을지도 모르지만그래도 알고 사용하는것이 더 좋지 않을까 싶다.  책의 내용은 참 좋다.설명이 좀 딱딱한 면도 없지 않지만그래도 충분히 감수하고 볼 정도로 내용에 만족한다. 읽다보면 프로그래밍하면서 아..이건 이래서 그렇군 하고생각이 드는 부분도 있어서 참 좋았던거 같다. 예를 들면...
중급 프로그래머를 위한 정말 좋은 책입니다.
한민호님이 쓰신 서평보기 I 평점 I 조회수(1306) I 공감 (0) I 블로그
슬럼프에 빠지기 쉬운 중급 프로그래머에게 단비같은 책이라고 할 수 있습니다. 작성한 프로그램이 하드웨어 레벨과 어떻게 접목되어 동작하는지  좀 더 자세히 알고 싶고 공부하고 싶다면 강력하게 이 책을 추천 드립니다.
좀더 깊은곳으로 들어가자.
황재희님이 쓰신 서평보기 I 평점 I 조회수(1052) I 공감 (0) I 블로그
운영체제와 컴퓨터 구조의 내용을 섞어놓은듯한 느낌의 책입니다.이책을 학부2학년때 샀는데요, 좀 설명이 어렵게 되있습니다. 전반적인 많은 내용을 알고자 할때 보면 괜찮은 책인데, 전반적으로 어렵더라구요. 설명도 그렇게, 친절한 편이 아닙니다. 3학년때 운영체제 과목등을 듣고나서, 다시 이책을 보니 그렇게 이해가 안가던 내용들이 이해가 가면서, 괜찮은 책이구나 느꼇습니다. 이 책과 비슷한 책으로 컴퓨터 동작원리 라는 책이 있는데, 그책과 함께보시면 매우 좋을 듯합니...
SW는 무엇으로 사는가
이상주님이 쓰신 서평보기 I 평점 I 조회수(1732) I 공감 (0) I 블로그
간혹 처음 컴퓨터를 접할 때를 떠올려 보곤한다. 컴퓨터를 한다거나 배운다는 건 곧 프로그래밍을 배운다는 뜻이었으며 당시 프로그래밍 관련 책들은 HW에 관한 내용이 상당한 부분을 차지하고 있었다. 물론 당시에도 운영 체제는 존재했지만 지금과는 달리 가장 기본적인 디스크 입출력만을 처리해 줄 뿐, 그 외 필요한 것은 모두 HW 제어를 통해 직접 구현해야 했으므로 HW의 구조와 처리 방법에 대한 이해는 필수였다. 현재의 환경은 단적으로 윈도우즈 등 GUI를 기반으로 ...
클릭하세요 HTML 입문+웹디자인...
성윤정
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(40)
회원평점   회원서평수 5
베스트 하드웨어 북
이인상 님  2008-03-20
괜찮은책
송재운 님  2007-09-02
중급 프로그래머를 위한 정말 좋은 책입니다.
한민호 님  2007-07-25
좀더 깊은곳으로 들어가자.
황재희 님  2007-01-17
SW는 무엇으로 사는가
이상주 님  2006-04-29
Randall Hyde 의 최근 저서
 
Write Great Code, Volume 1, 2nd Edition
55,940원
(20%↓+1%)
 
Write Great Code, Volume 3
55,940원
(20%↓+1%)
 
강승훈 의 최근 저서
 
Textbook of Absorbable THREAD LIFTING
205,200원
(5%↓+0%)
 
실리프팅 테크닉
171,000원
(5%↓+0%)
 
최재식 의 최근 저서
 
가난한 노년 탈출 연금이 해답이다
11,700원
(10%↓+5%)
 
에이콘 출판사의 신간
OpenCV 4 마스터(3판)(오픈소스 프로그래밍)
로이 실크롯/테크 트랜스 그룹 T4 저
27,000원
(10%↓+5%)
 
Splunk를 활용한 시큐리티 모니터링(해킹과 보안)
서진원 저
31,500원
(10%↓+5%)
 
AWS 침투 테스트
칼 길버트/이진호 저
36,000원
(10%↓+5%)
 
적대적 머신러닝
앤서니 조셉 외 지음/김우석 저
36,000원
(10%↓+5%)
 
The Python 3 Standard Library by Example: 예제로 배우는 파이썬 표준 라이브러리
더그 헬먼/권석기 저
52,200원
(10%↓+5%)
 
이메일주소수집거부