인사이드 머신
도서명:인사이드 머신
저자/출판사:존,스토크스/에이콘출판
쪽수:294쪽
출판일:2007-03-30
ISBN:9788960770126
목차
1장 컴퓨터 동작의 기본 개념 1
계산기 모델 2
문서관리원 모델 3
스토어 프로그램 컴퓨터 4
문서관리원 모델 다시 보기 6
레지스터 파일 7
RAM: 레지스터만으로는 부족할 때 8
문서관리원 모델의 확장 9
예: 두 수 더하기 10
코드 스트림 살펴 보기:프로그램 10
명령어의 종류 11
DLW-1 기본 아키텍처 및 산술 명령어 포맷 12
메모리 접근 자세히 보기: 레지스터와 직접값 비교 14
직접값 14
상대 레지스터 주소 지정 16
2장 프로그램 실행의 원리 19
연산코드와 기계어 19
DLW-1의 기계어 19
산술 명령어의 바이너리 인코딩 21
메모리 접근 명령어의 바이너리 인코딩 23
예제 프로그램을 기계어로 바꾸기 25
프로그래밍 모델과 ISA 26
프로그래밍 모델 26
명령어 레지스터와 프로그램 카운터 26
명령어 페치: 명령어 레지스터 채우기 28
간단한 프로그램 실행 예제: 페치-실행 루프 28
클럭 29
분기 명령어 30
무조건 분기 30
조건 분기 30
부록: 부팅 34
3장 파이프라인 35
명령어의 생명 주기 36
명령어의 기본 흐름 38
파이프라인 40
프로세서에의 적용 43
단일 사이클 프로세서 43
파이프라인 프로세서 45
파이프라인으로 인한 속도 향상 48
프로그램 수행시간과 완료율 51
프로그램 수행시간과 완료율의 관계 52
명령어 산출량과 파이프라인 멈춤 53
명령어 지연시간과 파이프라인 멈춤 57
파이프라인의 한계 58
4장 슈퍼스칼라 수행 61
수퍼스칼라 수행과 IPC 64
수퍼스칼라의 수행 유닛 65
기본적인 숫자 포맷과 산술 연산 66
산술 논리 유닛 67
메모리 접근 유닛 69
마이크로아키텍처와 ISA 69
ISA의 역사 71
복잡한 하드웨어에서 복잡한 소프트웨어로 73
파이프라인 및 수퍼스칼라 설계에 따른 변화 74
데이터 해저드 74
구조 해저드 76
레지스터 파일 77
제어 해저드 78
5장 펜티엄 79
오리지널 펜티엄 80
캐쉬 81
펜티엄 프로세서의 파이프라인 82
분기 유닛과 분기 예측 85
펜티엄 프로세서의 백엔드 87
펜티엄의 x86 지원 91
정리: 역사적 관점에서 본 펜티엄 프로세서 92
인텔 P6 마이크로아키텍처: 펜티엄 프로 93
프론트엔드와 백엔드의 분리 94
P6 파이프라인 100
P6에서의 분기 예측 102
P6 백엔드 102
CISC, RISC 및 명령어 변환 103
P6 마이크로아키텍처의 명령어 디코드 유닛 106
P6의 x86 지원 107
정리: 역사적 관점에서 본 P6 마이크로아키텍처 107
결론 110
6장 파워PC 프로세서: 600계열, 700계열, 1400계열 111
파워PC의 역사 111
파워PC 601 112
601의 파이프라인과 프론트엔드 112
601의 백엔드 115
지연시간과 산출량 다시 보기 117
정리: 역사적 관점에서 본 601 118
파워PC 603과 603e 119
603의 백엔드 119
603e의 프론트엔드, 명령어 창, 분기 예측 122
정리: 역사적 관점에서 본 603과 603e 122
파워PC 604 123
604의 파이프라인과 백엔드 123
604의 프론트엔드와 명령어 창 126
정리: 역사적 관점에서 본 604 129
파워PC 604e 129
파워PC 750 (G3) 130
750의 프론트엔드, 명령어창, 분기 명령어 130
정리: 역사적 관점에서 본 750 132
파워PC 7400 (G4) 133
G4의 벡터 유닛 135
정리: 역사적 관점에서 본 G4 135
결론 135
7장 인텔 펜티엄 4와 모토로라 G4e 137
속도 중독 - 펜티엄 4 138
펜티엄 4와 G4e의 문제 접근 방법과 설계 철학 140
G4e 아키텍처 및 파이프라인 144
스테이지 1, 2: 명령어 페치 145
스테이지 3: 디코드/디스패치 145
스테이지 4: 이슈 146
스테이지 5: 수행 146
스테이지 6, 7: 완료 및 쓰기 147
G4e와 펜티엄 4에서의 분기 예측 147
펜티엄 4 아키텍처 148
명령어 창의 확장 149
트레이스 캐쉬 149
펜티엄 4의 파이프라인 155
스테이지 1, 2: 트레이스 캐쉬 - 포인터 155
스테이지 3, 4: 트레이스 캐쉬 - 페치 155
스테이지 5: 드라이브 155
스테이지 6~8: 할당 및 리네임(ROB) 155
스테이지 9: 큐 156
스테이지 10~12: 스케줄링 156
스테이지 13~14: 이슈 157
스테이지 15~16: 레지스터 파일 158
스테이지 17: 수행 158
스테이지 18: 플래그 158
스테이지 19: 분기 점검 158
스테이지 20: 드라이브 158
스테이지 21 이후: 완료 및 커밋 159
펜티엄 4의 명령어 창 159
8장 인텔 펜티엄 4와 모토로라 G4e: 백엔드 161
피연산자 포맷 161
정수 수행 유닛 163
G4e의 IU: 자주 발생하는 경우를 빠르게 163
펜티엄 4의 IU: 자주 발생하는 경우를 2배 빠르게 164
부동소수점 유닛 165
G4e의 FPU 166
펜티엄 4의 FPU 167
G4e와 펜티엄 4의 FPU에 대한 맺음말 168
벡터 수행 유닛 168
벡터 연산이란 168
벡터 다시 보기: 알티벡 명령어 169
알티벡 벡터 연산 170
G4e의 VU: 제대로 구현된 SIMD 173
인텔 MMX 174
SSE와 SSE2 175
펜티엄 4의 벡터 유닛 176
SSE2를 사용한 부동소수점 성능 향상 177
결론 177
9장 64비트 컴퓨터와 x86-64 179
인텔 IA-64와 AMD x86-64 179
왜 64비트인가? 181
64비트 컴퓨터란? 181
64비트의 활용 영역 183
표현 영역 183
표현 범위 증가로 인한 이득 184
가상 주소 공간과 물리 주소 공간 185
64비트 주소의 이점 186
64비트로 된 대안: x86-64 187
레지스터의 확장 187
레지스터 수의 증가 187
모드 변환 189
오래된 기능의 퇴출 192
결론 192
10장 G5: IBM 파워PC 970 193
설계 철학 194
캐쉬와 프론트엔드 194
분기 예측 195
트레이드오프: 디코드, 크랙, 그룹 196
970의 디스패치 규칙 198
프리디코드와 그룹 디스패치 199
970의 그룹 디스패치 기법에 대한 결론 199
파워PC 970의 백엔드 200
정수 유닛, 조건 레지스터 유닛, 분기 유닛 200
동일하지 않은 정수 유닛 201
정수 유닛 지연시간 및 산출량 202
CRU 202
970의 정수 성능에 대한 결론 203
로드 스토어 유닛 203
프론트 사이드 버스 204
부동소수점 유닛 205
파워PC 970에서의 벡터 처리 206
부동소수점 이슈 큐 209
정수 및 로드 스토어 이슈 큐 210
BU 및 CRU 이슈 큐 210
벡터 이슈 큐 211
970 그룹 디스패치 기법의 성능 211
결론 213
11장 캐쉬와 시스템 성능 215
캐쉬의 기초 215
1차 캐쉬 217
2차 캐쉬 218
예: 메모리 계층 내에서의 데이터 이동 219
캐쉬 미스 220
데이터/코드의 집약성 220
데이터의 공간 집약성 221
코드의 공간 집약성 221
코드와 데이터의 시간 집약성 223
집약성: 결론 224
캐쉬의 구조: 블록과 블록 프레임 225
태그 RAM 226
완전 연관 매핑 226
집적 매핑 227
N웨이 집합 연관 매핑 229
4웨이 집합 연관 매핑 229
2웨이 집합 연관 매핑 231
2웨이 집합 연관 매핑과 직접 매핑 231
2웨이 집합 연관 매핑과 4웨이 집합 연관 매핑 232
캐쉬의 집합 연관성: 결론 232
시간/공간/집약성과 캐쉬의 교체 정책 및 블록 크기와의 관계 233
고체/방출 정책의 종류 233
블록의 크기 234
쓰기 정책 라이트 스루와 라이트백 235
결론 236
12장 인텔 펜티엄 M, 코어 듀오, 코어 2 듀오 232
코드명과 브랜드명 235
전력 효율성을 중시한 컴퓨터의 등장 238
전력 밀도 239
동적 전력 밀도 239
정적 전력 밀도 240
펜티엄 M 241
페치 단계 241
디코드 단계: 마이크로옵 퓨전 242
분기 예측 246
스택 수행 유닛 248
파이프라인과 백엔드 248
정리: 역사적 관점에서 본 펜티엄 M 프로세서 248
코어 듀오/솔로 249
인텔이 설계한 멀티코어 프로세서 249
코어 듀오의 기능 향상 253
정리:역사적 관점에서 본 코어 듀오 256
코어 2 듀오 256
페치 단계 258
디코드 단계 259
코어의 파이프라인 260
코어의 백엔드 260
향상된 벡터 처리 264
메모리 명확화: 예측 수행의 결과 스트림 버전 266
요약: 역사적 관점에서 본 코어 2듀오 272
참고 문헌 271