computer abstractions and Technology
컴퓨터 추상화와 기술
instruction : language of the computer
컴퓨터 언어
arithmetic for computers
컴퓨터의 산술 연산
the processor
중앙처리장치
large and fast : exploiting Memory Hierarchy
메모리 계층 구조를 활용
parallel processors from client to cloud
클라이언트에서 클라우드로의 병렬 프로세서
CH 1 Computer Abstractions and Technology
CH 2 Instructions: Language of the Computer
CH 3 Arithmetic for Computers
CH 4 The Processor
CH 5 Large and Fast: Exploiting Memory Hierarchy
CH 6 Parallel Processors from Client to Cloud
APP A Assemblers, Linkers, and the SPIM Simulator A-2
APP B Th-2 High Performance Computing System B-2
APP F Networks-on-Chip F-2
ONLINE CONTENT
C. Graphincs and computing GPUs C-2
D. Mapping Control to Hardware D-2
E. A Survey of RISC Architectures for Desktop, Server, and Embedded Computers E-2
=============================================================================================
*책 소개
컴퓨터 구조/설계 분야의 세계적인 베스트셀러!
"이번 4판의 특이한 점은 컴퓨터 설계의 기본원리를 제시하려 사용된 코어 프로세서가 MIPS에서 ARM으로 전환된 것이다. 이 같은 전환은 이 책에 다른 차원의 특징을 제공하고 있다. ARM은 임베디드 영역에서는 절대적인 프로세서이기에 임베디드 컴퓨팅 커뮤니티에는 아주 커다란 중요성을 가지고 있다.이 책은 임베디드 설계를 하는 학생들에게 컴퓨터 구조의 기본 원리를 가르치는데 있어서 존재하던 빈틈을 메워준다. 지난 버전들과 마찬가지로 이번 4판도 하드웨어-소프트웨어 인터페이스에 초점을 맞추고 있는데, 이러한 하드웨어-소프트웨어 인터페이스는 임베디드 시스템 설계의 핵심사항들과 깔끔하게 잘 어울린다."
-Ranjani Parthasarathi / Anna University, Chennai
베스트 셀러인 이 컴퓨터 구조 책은 요즘 업계에서 일어나고 있는 혁신적인 변화에 초점을 맞춰 철저히 개정되었다. 즉 단일프로세서에서 다중코어 프로세서로의 변환이 그것이다. 추가로 이 ARM 버전은 아시아에서의 임베디드 컴퓨팅 업계의 중요성과 임베디드 디바이스에서의 가장 인기 있는 명령어 집합 구조 중 하나인 ARM 프로세서의 특징을 강조하여 실제 컴퓨터에서의 명령어 집합과 산술연산을 자세히 살펴본다. 지난 버전에서와 마찬가지로 MIPS 프로세서는 하드웨어 기술, 파이프라이닝, 메모리 계층 및 입출력의 기본원리를 설명하는데 사용되었다. X86 구조에 대한 해당 절들 또한 포함되어있다.
CD에서는 시뮬레이터와 컴파일러 툴킷을 제공할 뿐 아니라 이들을 사용하기 위한 튜토리얼 및 좀 더 깊은 공부를 위한 고급 내용들과 책에 포함되지 않은 연습문제들을 확인할 수 있다.
특징
- 핵심 구조로서 ARMv6(ARM11 계열)를 사용하여 명령어 집합과 컴퓨터 산술연산의 기본 원리를 설명하였다.
- 순차적 컴퓨팅에서 병렬 컴퓨팅으로의 혁신적 변화를 다루어서 병렬처리에 대한 새로운 장을 집어넣었으며, 매 장마다 병렬 하드웨어와 소프트웨어 주제를 다루는 절을 추가하였다.
- NVIDIA의 Chief Scientist와Director of Architecture가 쓴 부록을 CD에 추가하여 최신 GPU의 부상 및 중요성을 다루고, 비주얼 컴퓨팅으로 최적화된 고성능 병렬, 고성능 멀티스레드 다중프로세서를 심도 있게 다루었다.
- 다중코어의 성능을 측정하기 위한 새로운 방법인 "루프라인 모델"을 설명하고AMD Opteron X4, Intel Xeon 5000, Sun UltraSPARC T2 및 IBM Cell을 벤치마킹하고 분석하였다.
- 플래시 메모리와 가상머신에 대한 새로운 내용을 추가하였다.
- 거의 200쪽에 달하는 새로운 연습문제에 대한 커다란 시뮬레이팅 셋을 제공한다.
- AMD Opteron X4와 Intel Nehalem을 실세계의 예제로 철저히 다룬다.
- SPEC CPU2006 스위트를 사용하여 모든 프로세서의 성능을 최근 자료로 바꾸었다.
*상세 정보
4차 개정판에서의 변화
이 책의 4차 개정판을 내는데 있어서 다섯 가지 목표를 정했다. 즉 마이크로프로세서에서 다중코어 혁명이 일어나므로 이 책 전반을 통하여 병렬 하드웨어 및 소프트웨어 토픽을 강조하자. 병렬성 관련 주제에 대한 공간을 마련하기 위하여 기존 자료를 합리화하자. 2004년도의 3판 발간 이후의 산업계 변화를 반영하기 위하여 기술 자료를 갱신하자. 인터넷 시대에 맞도록 연습문제의 유용성을 복원하자 라는 여섯 가지 목표였다.
이 목표들에 대해 좀 더 구체적으로 논의하기 전에 다음 페이지에 있는 표를 보자.여기에는 이 책을 통한 하드웨어 및 소프트웨어 측면에서 읽어야 될 방향을 보여주고 있다.
1장, 4장, 5장, 7장은 경험이나 강조관점하고 상관없이 양쪽에서 다 찾을 수 있다. 1장은 새로운 소개로서 전력의 중요성에 대한 논의를 포함하고 있으며 단일 코어에서 다중코어 프로세서로 전환하도록 동기유발을 하고 있다. 또한 3판에서 다른 장에 있던 성능과 벤치마킹에 관한 것도 1장에 포함되어있다.
2장은 하드웨어 관련자들을 위하여 자료를 훑고 있는 것처럼 보이지만 소프트웨어 관련자들 특히 컴파일러나 객체지향 언어에 대해 좀 더 배우고 싶어하는 독자에게는 반드시 읽어야 되는 장이다. 여기에는 3판에서 3장에 있던 자료를 포함하고 있으며 단일 장에서 부동소수점 명령어를 제외하고는 ARM 구조에 대해 완벽하게 커버하고 있다.
3장은 데이터패스 구성하는 것에 관심있거나 부동소수점 연산에 관심있는 독자를 위한 장이다. 여기에선 예제로 ARM 명령어를 사용한다. 어떤 이들은 3장을 건너뛸텐데 3장내용이 필요없거나 단지 복습이기 때문일 것이다.
4장에서는 3판에서 두 장에 걸쳐 다루었던 내용을 합하여 파이프라인 프로세서를 설명하고 있다. 4.1절, 4.5절, 4.10절은 소프트웨어 관심자들에게는 개략적인 내용을 알게 해줄 것이다. 하드웨어 관심자들에게는 4장은 핵심 내용을 제공하고 있다. 또한 독자들 지식배경에 따라 논리 회로 설계에 관한 부록 C를 맨 먼저 읽기를 원할 수도 있다.
저장장치에 관한 6장은 소프트웨어 관심자들에게는 필수적인 내용을 포함하고 있으며 다른 사람들도 시간이 허용하는 한 읽어야 한다. 다중 코어, 다중 프로세서, 클러스터를 다루고 있는 마지막 장은 거의 모두 새로운 내용이며 모든 이가 읽어야 된다.
첫 번째 목표가 병렬성을 이 책에서 가장 우선시하는 것이었다. 이 내용은 지난 3판에서는 CD 에 포함되어있던 장이었다. 가장 확실한 예는 7장인데 특히 이 장은 천장라인(Roofline) 성능 모델을 소개하고 있으며 최근에 나온 네 개의 다중코어 구조를 두 개의 커널에서 성능평가함으로써 그 가치를 보여주고 있다.
이 모델은 마치 3C 모델이 캐쉬에 대한 관점을 잘 나타내듯이 다중 코어 마이크로프로세서에 대해 쉽게 이해하도록 해준다. 병렬성의 중요성 때문에 이를 다루기 위해 마지막 장까지 기다리는 것은 어리석기 때문에 앞선 6개의 장에서도 병렬성에 관한 절이 따로 있다.
1장: 병렬성과 전력. 전력제한이 어떻게 업계로 하여금 병렬성으로 눈을 돌리게 만들었으며 병렬성은 왜 도움이 되는지 보여준다.
2장: 병렬성과 명령어: 동기화. 이 절에서는 공유 변수에 대한 잠금을 다룬다. 특히ARM명령어 SWP를 다룬다.
3장: 병렬성과 컴퓨터 연산: 부동소수점 결합법칙. 이 절에서는 수치 정밀도 및 부동소수점 계산시의 도전을 다룬다.
4장: 병렬성과 고급 명령어수준 병렬성. 이 절에서는 파이프라인 깊이와 전력 소모 사이의 관계뿐 아니라 고급 ILP 즉 슈퍼스칼라, 추정, VLIW, 루프 펼치기 및 OOO 등을 다룬다.
5장: 병렬성 및 메모리 계층: 캐쉬 일관성. 이 절에서는 일관성 및 캐쉬 프로토콜 스누핑을 소개한다.
6장: 병렬성 및 입출력: RAID. RAID을 가용성 높은 ICO 시스템뿐 아니라 병렬 입출력 시스템으로 서술한다.
7장에서는 병렬성으로 나가는 것이 과거 때보다 왜 성공적인지에 대한 이유를 이야기하면서 결론 맺고 있다.
특히 부록에 그래픽처리 유닛을 추가하게 되어 매우 들떠있는데 이 그래픽처리 유닛은 NVIDIA의 주임과학자 David Kirk와 주임 설계자 John Nickolls가 쓴 것이다. 부록A는 GPU 에 대해 처음으로 깊게 다루고 있는데 이러한 GPU는 컴퓨터 구조에서 새롭고 흥미 있는 동력이다.
이 부록편은 이번 개정판의 병렬성에 관한 주제를 쌓아나가 컴퓨팅의 유형을 제시하도록 주력하는데 이러한 컴퓨팅의 유형은 비록 하드웨어는 가능한 한 SIMD 스타일로 실행하려 하겠지만 프로그래머로 하여금 MIMD 스타일로 생각하게끔 만든다.
GPU 가 값싸지고 광범위하게 가용함에 따라 이제는 많은 랩탑에서도 발견할 수 있게 되었고 이들의 프로그래밍 환경은 제한 없이 가용하게 되어 많은 사람들이 경험할 수 있는 병렬 하드웨어 플랫폼을 제공하고 있다.
두 번째 목표는 책을 합리화하여 병렬성을 위한 내용을 실을 수 있도록 공간을 마련하는 것이다. 첫 번째 단계는 지난 세 개의 버전에 있는 모든 구절을 자세히 훓어서 그들이 아직도 필요한지 살피는 것이다. 좀 더 큼직한 변화는 장들을 합치고 주제를 떨어내는 것이다. Mark Hill 은 다중사이클 프로세서 구현을 버리고 대신에 다중사이클 캐쉬 제어기를 메모리계층 장에 추가할 것을 제안하였는데 이렇게 함으로써 프로세서에 대한 장이 두 개에서 하나로 합쳐졌고 좀 더 중요한 것만 남게 되었다. 3판에서 독립된 장으로 있던 성능에 대한 내용은 첫 장 속으로 녹아 들게 되었다.
세 번째 목표는 이 책의 교수법을 향상시키는 것이었다.
1장은 이제 좀 더 내용이 풍부해져서 성능, 집적회로, 전력 부분을 포함하고 있으며 이 책의 나머지 부분을 위한 준비단계로 설정되었다.
2장과 3장은 처음에는 혁신적인 스타일로 작성되어서 “단일 셀” 구조로 시작하여 3장의 끝에서는 전체MIPS 구조로 끝맺음을 하였다. 이같이 여유 있게 편집하는 것은 현대 독자들에게는 잘 맞지 않는다. 이4판에서는 정수형의 모든 명령어 집합 자료를 2장으로 합침으로써 3장은 독자가 필요에 따라 읽지 않아도 되게 만들었다. 또한 각 절은 그 절에만 기초하도록 하여 다른 절을 읽지 않고도 읽을 수 있게 만들었다. 따라서 2장은 이제 그 전 판본에서보다 좀 더 참고할 장이 되었다.
4장은 프로세서에 대한 서술이 하나의 장으로 묶였기에 좀 더 이해하기 쉽게 되었고 다중사이클 구현은 요즘은 시대에 뒤떨어진 것이 되었다.
5장에서는 캐쉬 제어기 만들기에 한 절을 할당하였고 그 캐쉬를 위한 Verilog 코드를 갖고 있는 CD판에 새로운 절을 할애하였다.
출처 : http://bjpublic.tistory.com/65
1장-컴퓨터 추상화 및 관련 기술
1.1 서 론
1.2 프로그램 밑의 세계
1.3 케이스를 열고
1.4 성능
1.5 전력 장벽
1.6 현저한 변화: 단일 프로세서에서 멀티프로세서로의 변화
1.7 실례: AMD OPTERON X4 의 제작과 벤치마킹
1.8 오류 및 함정
1.9 결론
1.10 역사적 고찰 및 참고 문헌
1.11 연습문제
2장-명령어
2.1 서 론
2.2 하드웨어 연산
2.3 피연산자
2.4 부호있는 수와 부호없는 수
2.5 명령어의 컴퓨터 내부 표현
2.6 논리연산 명령어
2.7 판단을 위한 명령어
2.8 하드웨어의 프로시져 지원
2.9 문자와 문자열
2.10ARM의 32 비트 수치를 위한 주소지정 및 복잡한 주소지정방식
2.11병렬성과 명령어: 동기화
2.12프로그램 번역과 실행
2.13종합: C 정렬 프로그램
2.14배열과 포인터
2.15고급자료: C 컴파일 및 JAVA 인터프리트
2.16실례: MIPS 명령어
2.17실례: X86 명령어
2.18오류 및 함정
2.19결 론
2.20역사적 고찰 및 참고 문헌
2.21 연습문제
3장-컴퓨터 연산
3.1 개 요
3.2 덧셈과 뺄셈
3.3 곱셈
3.4 나눗셈
3.5 부동소수점
3..6 병렬처리와 산술연산 : 결합법칙
3.7 실례: X86 에서의 부동소수점 연산
3.8 오류 및 함정
3.9 결론
3.10역사적 고찰 및 참고문헌
3.11연습문제
4장-프로세서
4.1 서론
4.2 논리 설계 관례
4.3 데이터패스 만들기
4.4 단순한 구현
4.5 파이프라이닝에 대한 개관
4.6 파이프라인 데이터패스 및 제어
4.7 데이터 해저드: 전방전달 대 지연
4.8 제어 해저드
4.9 예외
4.10 병렬성 및 고급 명령어 수준 병렬성
4.11 실례: AMD OPTERON X4(BARCELONA) 파이프라인
4.12 고급 주제: 파이프라인을 서술하고 모델링하기 위해 하드웨어 설계 언어를 사용하여 논리회로 설계하기에 대한 소개 및 좀 더 다양한 파이프라인 그림들
4.13 오류 및 함정
4.14 결론
4.15 역사적 고찰 및 참고문헌
4.16 연습문제
5장-메모리 계층구조
5.1 서 론
5.2 캐쉬의 기본
5.3 캐쉬 성능의 측정 및 향상
5.4 가상 메모리
5.5 메모리 계층을 위한 공통 구조
5.6 가상 머신
5.7 간단한 캐쉬를 제어하기 위한 유한상태기
5.8 병렬성과 메모리 계층구조. 캐쉬 일관성
5.9 고급 자료: 캐쉬 제어기 구현
5.10 실례: AMD OPTERON X4(BARCELONA)와 INTEL NEHALEM의 메모리 계층 구조
5.11 오류 및 함정
5.12 결론
5.13 역사적 고찰 및 참고문헌
5.14 연습문제
6장-저장장치와 다른 주변장치
6.1 서론
6.2 신용성, 신뢰성과 가용성
6.3 디스크 저장장치
6.4 플래시 저장장치
6.5 프로세서, 메모리와 입출력 장치 연결
6.6 입출력 장치와 메모리, 프로세서, 운영체제와의 인터페이스
6.7 입출력 성능 측도: 디스크와 파일 시스템의 예
6.8 입출력 시스템의 설계
6.9 병렬 처리와 입출력: RAID
6.10 실례: SUN FIRE X4150 서버
6.11 네트워크
6.12 오류 및 함정
6.13 결론
6.14 역사적 고찰 및 참고문헌
6.15 연습문제
7장-멀티코어, 멀티프로세서 및 클러스터
7.1 서 론
7.2 병렬처리 프로그램 개발의 어려움
7.3 공유 메모리 멀티프로세서
7.4 클러스터와 메시지 전달 멀티프로세서
7.5 하드웨어 멀티스레딩
7.6 SISD, MIMD, SIMD, SPMD와 벡터
7.7 그래픽 처리 유닛의 기초
7.8 멀티프로세서 네트워크 위상의 기초
7.9 멀티프로세서 벤치마크
7.10 루프라인(ROOFLINE): 간단한 성능 모델
7.11 실례: 루프라인 모델을 이용한 4 종류 멀티코어 벤치마킹
7.12 오류 및 함정
7.13 결론
7.14 역사적 고찰 및 참고 문헌
7.15 연습문제
CD CONTENTS
HISTORICAL PERSPECTIVES AND FURTHER READING
ADVANCED CONTENT AND APPENDIXES
GLOSARY
INDEX
FURTHER READING
TUTORIALS
SOFTWARE
전체 연습문제
'공부' 카테고리의 다른 글
자바 안드로이드 이미지 버튼 만들기 (0) | 2014.11.11 |
---|---|
어도비 프리미어 cs6 (0) | 2014.04.09 |
프리미어 프로 cs6 무작정 따라하기 (0) | 2014.03.17 |
데이터 통신 #1 (0) | 2014.03.06 |
프리미어 cs4 배우기 (0) | 2014.02.20 |