책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 모바일/무선/임베디드 프로그래밍
· ISBN : 9788960770126
· 쪽수 : 320쪽
책 소개
목차
1장 컴퓨터 동작의 기본 개념
계산기 모델
문서관리원 모델
스토어 프로그램 컴퓨터
문서관리원 모델 다시 보기
레지스터 파일
RAM: 레지스터만으로는 부족할 때
문서관리원 모델의 확장
예: 두 수 더하기
코드 스트림 살펴 보기:프로그램
명령어의 종류
DLW-1 기본 아키텍처 및 산술 명령어 포맷
메모리 접근 자세히 보기: 레지스터와 직접값 비교
직접값
상대 레지스터 주소 지정
2장 프로그램 실행의 원리
연산코드와 기계어
DLW-1의 기계어
산술 명령어의 바이너리 인코딩
메모리 접근 명령어의 바이너리 인코딩
예제 프로그램을 기계어로 바꾸기
프로그래밍 모델과 ISA
프로그래밍 모델
명령어 레지스터와 프로그램 카운터
명령어 페치: 명령어 레지스터 채우기
간단한 프로그램 실행 예제: 페치-실행 루프
클럭
분기 명령어
무조건 분기
조건 분기
부록: 부팅
3장 파이프라인
명령어의 생명 주기
명령어의 기본 흐름
파이프라인
프로세서에의 적용
단일 사이클 프로세서
파이프라인 프로세서
파이프라인으로 인한 속도 향상
프로그램 수행시간과 완료율
프로그램 수행시간과 완료율의 관계
명령어 산출량과 파이프라인 멈춤
명령어 지연시간과 파이프라인 멈춤
파이프라인의 한계
4장 슈퍼스칼라 수행
수퍼스칼라 수행과 IPC
수퍼스칼라의 수행 유닛
기본적인 숫자 포맷과 산술 연산
산술 논리 유닛
메모리 접근 유닛
마이크로아키텍처와 ISA
ISA의 역사
복잡한 하드웨어에서 복잡한 소프트웨어로
파이프라인 및 수퍼스칼라 설계에 따른 변화
데이터 해저드
구조 해저드
레지스터 파일
제어 해저드
5장 펜티엄
오리지널 펜티엄
캐쉬
펜티엄 프로세서의 파이프라인
분기 유닛과 분기 예측
펜티엄 프로세서의 백엔드
펜티엄의 x86 지원
정리: 역사적 관점에서 본 펜티엄 프로세서
인텔 P6 마이크로아키텍처: 펜티엄 프로
프론트엔드와 백엔드의 분리
P6 파이프라인
P6에서의 분기 예측
P6 백엔드
CISC, RISC 및 명령어 변환
P6 마이크로아키텍처의 명령어 디코드 유닛
P6의 x86 지원
정리: 역사적 관점에서 본 P6 마이크로아키텍처
결론
6장 파워PC 프로세서: 600계열, 700계열, 1400계열
파워PC의 역사
파워PC 601
601의 파이프라인과 프론트엔드
601의 백엔드
지연시간과 산출량 다시 보기
정리: 역사적 관점에서 본
파워PC 603과 603e
603의 백엔드
603e의 프론트엔드, 명령어 창, 분기 예측
정리: 역사적 관점에서 본 603과 603e
파워PC 604
604의 파이프라인과 백엔드
604의 프론트엔드와 명령어 창
정리: 역사적 관점에서 본 604
파워PC 604e
파워PC 750 (G3)
750의 프론트엔드, 명령어창, 분기 명령어
정리: 역사적 관점에서 본 750
파워PC 7400 (G4)
G4의 벡터 유닛
정리: 역사적 관점에서 본 G4
결론
7장 인텔 펜티엄 4와 모토로라 G4e
속도 중독 - 펜티엄 4
펜티엄 4와 G4e의 문제 접근 방법과 설계 철학
G4e 아키텍처 및 파이프라인
스테이지 1, 2: 명령어 페치
스테이지 3: 디코드/디스패치
스테이지 4: 이슈
스테이지 5: 수행
스테이지 6, 7: 완료 및 쓰기
G4e와 펜티엄 4에서의 분기 예측
펜티엄 4 아키텍처
명령어 창의 확장
트레이스 캐쉬
펜티엄 4의 파이프라인
스테이지 1, 2: 트레이스 캐쉬 - 포인터
스테이지 3, 4: 트레이스 캐쉬 - 페치
스테이지 5: 드라이브
스테이지 6~8: 할당 및 리네임(ROB)
스테이지 9: 큐
스테이지 10~12: 스케줄링
스테이지 13~14: 이슈
스테이지 15~16: 레지스터 파일
스테이지 17: 수행
스테이지 18: 플래그
스테이지 19: 분기 점검
스테이지 20: 드라이브
스테이지 21 이후: 완료 및 커밋
펜티엄 4의 명령어 창
8장 인텔 펜티엄 4와 모토로라 G4e: 백엔드
피연산자 포맷
정수 수행 유닛
G4e의 IU: 자주 발생하는 경우를 빠르게
펜티엄 4의 IU: 자주 발생하는 경우를 2배 빠르게
부동소수점 유닛
G4e의 FPU
펜티엄 4의 FPU
G4e와 펜티엄 4의 FPU에 대한 맺음말
벡터 수행 유닛
벡터 연산이란
벡터 다시 보기: 알티벡 명령어
알티벡 벡터 연산
G4e의 VU: 제대로 구현된 SIMD
인텔 MMX
SSE와 SSE2
펜티엄 4의 벡터 유닛
SSE2를 사용한 부동소수점 성능 향상
결론
9장 64비트 컴퓨터와 x86-64
인텔 IA-64와 AMD x86-64
왜 64비트인가?
64비트 컴퓨터란?
64비트의 활용 영역
표현 영역
표현 범위 증가로 인한 이득
가상 주소 공간과 물리 주소 공간
64비트 주소의 이점
64비트로 된 대안: x86-64
레지스터의 확장
레지스터 수의 증가
모드 변환
오래된 기능의 퇴출
결론
10장 G5: IBM 파워PC 970
설계 철학
캐쉬와 프론트엔드
분기 예측
트레이드오프: 디코드, 크랙, 그룹
970의 디스패치 규칙
프리디코드와 그룹 디스패치
970의 그룹 디스패치 기법에 대한 결론
파워PC 970의 백엔드
정수 유닛, 조건 레지스터 유닛, 분기 유닛
동일하지 않은 정수 유닛
정수 유닛 지연시간 및 산출량
CRU
970의 정수 성능에 대한 결론
로드 스토어 유닛
프론트 사이드 버스
부동소수점 유닛
파워PC 970에서의 벡터 처리
부동소수점 이슈 큐
정수 및 로드 스토어 이슈 큐
BU 및 CRU 이슈 큐
벡터 이슈 큐
970 그룹 디스패치 기법의 성능
결론
11장 캐쉬와 시스템 성능
캐쉬의 기초
1차 캐쉬
2차 캐쉬
예: 메모리 계층 내에서의 데이터 이동
캐쉬 미스
데이터/코드의 집약성
데이터의 공간 집약성
코드의 공간 집약성
코드와 데이터의 시간 집약성
집약성: 결론
캐쉬의 구조: 블록과 블록 프레임
태그 RAM
완전 연관 매핑
집적 매핑
N웨이 집합 연관 매핑
4웨이 집합 연관 매핑
2웨이 집합 연관 매핑
2웨이 집합 연관 매핑과 직접 매핑
2웨이 집합 연관 매핑과 4웨이 집합 연관 매핑
캐쉬의 집합 연관성: 결론
시간/공간/집약성과 캐쉬의 교체 정책 및 블록 크기와의 관계
고체/방출 정책의 종류
블록의 크기
쓰기 정책 라이트 스루와 라이트백
결론
12장 인텔 펜티엄 M, 코어 듀오, 코어 2 듀오
코드명과 브랜드명
전력 효율성을 중시한 컴퓨터의 등장
전력 밀도
동적 전력 밀도
정적 전력 밀도
펜티엄 M
페치 단계
디코드 단계: 마이크로옵 퓨전
분기 예측
스택 수행 유닛
파이프라인과 백엔드
정리: 역사적 관점에서 본 펜티엄 M 프로세서
코어 듀오/솔로
인텔이 설계한 멀티코어 프로세서
코어 듀오의 기능 향상
정리:역사적 관점에서 본 코어 듀오
코어 2 듀오
페치 단계
디코드 단계
코어의 파이프라인
코어의 백엔드
향상된 벡터 처리
메모리 명확화: 예측 수행의 결과 스트림 버전
요약: 역사적 관점에서 본 코어 2듀오
참고 문헌