이미 소장하고 있다면 판매해 보세요.
|
1장 프로세서와 컴퓨터 시스템 기초
1.1 컴퓨터의 구조 컴퓨터의 구성요소 ─ 프로세서, 메모리, 입출력장치 컴퓨터는 2진법으로 계산한다 프로세서 ─ 프로그램을 해석하는 컴퓨터의 두뇌 메모리 ─ 컴퓨터의 ‘명령’과 ‘데이터’를 기억한다 입출력장치 ─ 컴퓨터의 눈, 귀, 입 노스브리지와 사우스브리지 ─ 희미해져 가는 호칭 1.2 컴퓨터의 고속화를 지탱하는 반도체 기술 무어의 법칙 ─ 보다 많은 트랜지스터. 병렬도를 높이는 방향으로 방대한 개발투자가 뒷받침하는 반도체의 미세화 ─ 미세화 추세는 앞으로 당분간은 계속 Dennard Scaling ─ 트랜지스터의 성능 향상 성능 향상의 세 축 ─ 클럭 향상, 병렬 처리, 기능 확장 1.3 컴퓨터와 데이터의 표현 바이트, 하프워드, 워드… ─ 비트의 그룹과 용도 문자 코드 부호 없는 정수와 부호 있는 정수, 1의 보수표현과 2의 보수표현 부동소수점 수 ─ IEEE 754 규격 빅 엔디언과 리틀 엔디언 1.4 프로세서와 명령 명령 집합 아키텍처 입문 기계어 명령 ─ 프로세서로의 명령 어드레스 공간 1.5 기계어 명령 프로그램 작성법 어셈블러에 의한 프로그래밍 컴파일러를 사용하는 고급언어에 의한 프로그래밍 인터프리터에 의한 프로그래밍 1.6 정리 2장 프로세서의 변천 2.1 컴퓨터 이전의 계산장치 주판 ─ 계산을 하기 위한 최초의 도구 네이피어의 뼈 ─ 곱셈 보조도구 기계식 계산기 ─ 시카드의 계산기, Pascaline 배비지의 차분기관 ─ 톱니바퀴를 사용한 슈퍼컴퓨터 2.2 초기 전자식 컴퓨터 초기 전자식 컴퓨터 ─ ABC와 ENIAC FUJIC ─ 일본 최초의 전자식 컴퓨터 2.3 프로세서를 구성하는 소자의 변천 주요 부품을 기반으로 한 컴퓨터의 세대 분류 제1세대: 진공관 제2세대: 트랜지스터 제3세대: 집적회로(IC, LSI) 제4세대: 대규모 집적회로(VLSI) VLSI 프로세서의 소자 개수, 클럭 주파수의 트렌드 2.4 명령 집합 아키텍처의 변천 명령 집합 아키텍처 발전의 길 컴퓨터의 구성요소 ─ 프로세서, 메모리, 입출력장치 가상 메모리 ─ 보다 윤택하게. 메모리를 많이 사용하고 싶다 TSS와 메모리 관리 기구의 등장 메모리 관리기구, 특권상태 ─ 멀티유저에서는 보안문제를 해결할 필요가 있다 ISA 확장 ─ 명령 집합 아키텍처의 확립과 명령 상호성의 실현 2.5 마이크로아키텍처의 발전 마이크로아키텍처 발전의 길 파이프라인 처리 ─ 파이프라인 레지스터를 사용해서 하드웨어를 유효하게 이용한다 연산기의 고속화 ─ 정수 연산기, 부동소수점 연산기 캐시 ─ ‘메모리 액세스’ 문제에 대처하는 비밀의 상자 RISC의 출현 ─ RISC와 CISC 슈퍼스칼라 실행 ─ 복수 명령을 1사이클에 실행한다 비순차 실행 ─ 명령의 순서를 변경해서 성능을 높인다 분기예측과 투기실행 ─ ‘조건분기명령’ 대책 멀티코어 ─ 소비전력의 제약이 멀티코어화를 이끌다 2.6 용도가 확대되는 프로세서 다양한 무대에서 활약하는 프로세서 저전력, 높은 신뢰기술, 실시간성 ─ 다양한 요건 2.7 정리 3장 프로그래머를 위한 프로세서 아키텍처 3.1 마이크로아키텍처를 지탱하는 기술 파이프라인 실행의 원리 ─ ‘병렬’로 명령을 처리한다 캐시의 원리 ─ 메모리 액세스를 가속한다 RISC와 CISC ─ 고정길이 명령과 가변길이 명령 연산기의 고속화 ─ 프로세서 내에서 처리가 복잡해서 시간이 걸리는 부분 중 하나 슈퍼스칼라 실행의 원리 ─ 1사이클에 복수 명령을 병렬실행 비순차 실행의 원리 ─ 데이터 해저드의 영향을 줄인다 분기예측의 원리 ─ 제어 해저드에 의한 손실을 줄인다 현대의 프로세서는 각종 해저드를 해소, 경감해서 성능을 높이고 있다 메모리, I/O와 입출력 인터페이스 성능 카운터 ─ 프로파일러, 프로세서 내부의 실행상황에 대한 정보 3.2 프로세서의 이용범위를 넓히는 아키텍처 확장 멀티프로그래밍과 메모리 관리 구조 인터럽트 처리 구조 가상화 지원 ─ 메모리 액세스와 메모리 관리 구조 멀티미디어, 암호 등에 대한 지원 ─ 대량 데이터를 다루는 계산 처리 3.3 x86 네할렘 아키텍처 프로세서 x86의 명령체계, 인텔 64 아키텍처에 대해 Core i7 프로세서의 구성 메모리 관리는 4계층 테이블을 사용 새로운 프로세서 인터페이스 QPI 3.4 정리 4장 가상화 지원 4.1 가상화의 목적, 장/단점 가상화의 기초지식(복습) 유저 간 분리를 견고하게 실현 ─ 가상화의 장점 1 가상화의 목적 VMM의 실행 오버헤드 ─ 가상화의 단점, 주의점 여러 서버를 모아서 가동률을 개선 ─ 가상화의 장점 2 4.2 가상화를 잽현하기 위해 OS에 독립된 (가상) 하드웨어를 제공하는 VMM 4.3 가상화를 지원하는 하드웨어 구조 하드웨어 조작명령 검출 하드웨어 상태의 회피, 복원 ─ 가상머신의 전환 이중 어드레스 변환, TLB I/O 가상화 라이브 마이그레이션 4.4 정리 5장 멀티프로세서의 출현과 보급 5.1 멀티스레드 프로세서 스레드, 멀티스레드의 범람(!?) ─ 우선 용어 복습부터 멀티스레드의 두 가지 방식 VMT의 원리 ─ 단시간에 스레드를 전환한다 SMT의 원리 ─ 복수의 스레드의 명령을 섞는다 SMT에 필요한 메커니즘 멀티스레드의 효과는 얼마나? ─ 윈도 작업관리자에서 보는 예 5.2 멀티프로세서 시스템 멀티프로세서, 멀티코어란 무엇인가? 멀티코어 프로세서의 구조 캐시 정합성 제어 ─ 멀티프로세서의 캐시간 정합성 멀티소켓 시스템 멀티프로세서 시스템의 성능 향상 ─ 문제와 대책 공유메모리 시스템과 분산메모리 시스템 5.3 정리 6장 프로세서 주변기술 6.1 메인 메모리 기술 메인 메모리의 역사 복습 DRAM의 동작원리 ─ 전하로 정보를 기억한다 DRAM 칩과 메모리 DIMM DRAM 칩의 내부구조 ─ 셀 어레이, 행/열 디코더, 센스 앰프, 뱅크 프로세서와 DIMM의 연결 메모리 시스템의 에러 대책 6.2 입출력장치 연결 프로세서의 I/O 연결 PCI 버스 인텔 Core i 시리즈 프로세서의 I/O 구조 인텔 PCH의 I/O 제어구조 6.3 정리 7장 GPGPU와 초병렬처리 7.1 GPGPU의 구조 3D 그래픽스와 GPU ─ 대량의 계산이 필요 GPU에서 GPGPU로 GPU 시스템 ‘초병렬 SIMD 프로세서’로서의 GPGPU ‘초멀티스레드 프로세서’로서의 GPGPU GPGPU의 메모리 계층 GPGPU의 멀티스레드는 범용 레지스터를 분할 사용한다 CPU와 GPGPU의 주요 차이점 7.2 GPGPU 프로그래밍 GPGPU 프로그래밍의 현재 CUDA의 실행 모델 ─ 스레드 블록, 그리드 CUDA에서의 함수 선언, 변수 선언 OpenCL 프로그래밍 GPGPU의 성능을 끌어내려면 7.3 정리 8장 프로세서는 앞으로 어떻게 변해갈 것인가? 8.1 소비전력이 모든 것을 지배한다 프로세서는 왜 전력을 소비하는가? 저전력기술의 발전 8.2 고성능, 다기능화 반도체의 미세화 기술 증가하는 트랜지스터를 잘 사용하려면? 일부 트랜지스터를 비용절감을 위해 사용한다 일부 블록이 불량인 칩을 유효하게 이용한다 8.3 더 신뢰할 수 있고 안전한 프로세서 설계 프로세서는 왜 오작동하는가? ─ 고장, 노이즈 오작동을 막아서 안전하게 작동하도록 한다 8.4 프로세서의 앞으로의 방향성은? 다양한 시스템에서 사용되는 프로세서 가전용 프로세서 자동차용 프로세서 PC용 프로세서 스마트폰용 프로세서 서버용 프로세서 8.5 정리 찾아보기 |
|
200만 배의 성능 향상은 어떻게 실현되었나?
프로세서 개발경력 40년 저자 직필! 시스템 성능을 최대로 이끌어내는 비법! 아마존 재팬 베스트셀러 ★★★★★ 이 책은 프로그램을 직접 작성하고 컴퓨터 시스템을 보다 효율적으로 사용하고 싶어하는 독자를 대상으로 한 프로세서에 관한 해설서다. 프로세서에 탑재되어 있는 고성능화 기술 및 내부구조, 기능을 중심으로 설명하고, 프로그램은 어떻게 작성해야 프로세서의 성능을 끌어낼 수 있을지에 대해서도 설명하고 있다. 또한 프로세서의 설계라고 하면 AND, OR 등의 논리회로를 이용한 논리회로 레벨의 하드웨어 설계를 연상할지 모르지만, 이 책에서는 논리회로보다는 상위레벨인, 프로그래머와의 인터페이스가 되는 「마이크로아키텍처」와 「명령 아키텍처」에 초점을 맞추고 있다. 바야흐로 휴대기기부터 사회기반 시스템에 이르기까지 다양한 컴퓨터의 핵심부에 위치해서 중요한 역할을 다하고 있는 프로세서. 독자 여러분이 다이나믹한 진화를 계속하는 프로세서를 이해하고 한층 더 제대로 사용하는 데 일조할 수 있기를 바라며, 그런 생각을 담아서 집필한 것이 바로 이 책이다. 제1장 프로세서와 컴퓨터 시스템 기초 제2장 프로세서의 변천 제3장 프로그래머를 위한 프로세서 아키텍처 제4장 가상화 지원 제5장 멀티프로세서의 출현과 보급 제6장 프로세서 주변기술 제7장 GPGPU와 초병렬처리 제8장 프로세서는 앞으로 어떻게 변해갈 것인가? 이 책의 대상 독자 이 책은 프로그램을 직접 작성하고 컴퓨터 시스템을 보다 효율적으로 사용하고 싶어하는 독자를 대상으로 한 프로세서에 관한 해설서다. 프로세서에 탑재되어 있는 고성능화 기술 및 내부구조, 기능을 중심으로 설명하고, 프로그램을 어떻게 작성해야 프로세서의 성능을 끌어낼 수 있을지에 대해서도 설명하고 있다. 또한 프로세서의 설계라고 하면 AND, OR 등의 논리회로를 이용한 논리회로 레벨의 하드웨어 설계를 연상할지 모르지만, 이 책에서는 논리회로보다는 상위레벨인, 프로그래머와의 인터페이스가 되는 ‘마이크로아키텍처’와 ‘명령 아키텍처’에 초점을 맞추고 있다. 바야흐로 휴대기기부터 사회기반 시스템에 이르기까지 다양한 컴퓨터의 핵심부에 위치해서 중요한 역할을 다하고 있는 프로세서. 독자 여러분이 다이나믹한 진화를 계속하는 프로세서를 이해하고 한층 더 제대로 사용하는 데 일조를 할 수 있기를 바라며, 그런 생각을 담아서 집필한 것이 바로 이 책이다. 이책의 구성 이 책에서는 프로그램을 작성하는 독자들을 주요 대상으로 해서 프로세서의 구조와 능숙한 사용법을 알기 쉽게 설명하고 있다. 각 장은 아래와 같은 내용이다. 제1장 프로세서와 컴퓨터 시스템 기초 제1장은 소개에 해당하는 장으로, 프로세서나 이를 사용하는 컴퓨터의 개요 및 용어를 소개하여 프로세서나 컴퓨터 하드웨어 초심자에게도 이후의 내용을 이해할 수 있도록 알기 쉽게 설명하고 있다. 제2장 프로세서의 변천 제2장에서는 계산기가 어떻게 발전해왔는지 그리고 프로세서의 고성능화나 사용 편의성 개선을 위해 어떤 기술이 개발되어 왔는지에 대해 설명한다. 현재 프로세서가 출현하기까지의 과정과 사용되고 있는 기술에 대한 개요를 이해할 수 있도록 하는 것이 목적이다. 제3장 프로그래머를 위한 프로세서 아키텍처 제4장 가상화 지원 제5장 멀티프로세서의 출현과 보급 제3장에서 제5장은 이 책의 중심이 되는 장들이다. 제3장에서는 파이프라인 처리나 캐시, 비순차(Out-of-Order) 처리와 같은 프로세서 고속화 기술이나 메모리 관리, 가상화, 멀티미디어 처리 등의 프로세서의 적용범위를 넓히는 기술에 대해 구체적으로 설명한다. 아울러 프로그램 등의 예를 들어 프로그래머로서 어떻게 사용해야 효율이 높아질 수 있는지에 대해서도 알기 쉽게 설명한다. 또한 제3장에서는 PC나 서버에 널리 사용되고 있는 인텔 프로세서의 구조도 설명하고 있다. 제4장에서는 최근에 클라우드 시스템 등에서 필수 요소인 가상화에 대해 이를 실현하는 메커니즘이나 가상화 시스템을 효율적으로 운용하기 위해 주의할 점에 대해 설명한다. 제5장에서는 역시 최신 트렌드인 멀티스레드와 멀티코어 프로세서에 대해 그 출현배경부터 사용되고 있는 기술을 설명하고 멀티코어 프로세서를 잘 활용하기 위한 주의점을 설명한다. 제6장 프로세서 주변기술 제6장은 프로세서와 함께 컴퓨터 시스템의 중요한 구성요소인 주변기술을 다루고 기억을 담당하는 메모리와 프로세서에서 입출력장치로 연결되는 구조와 동작에 대해 설명한다. 제7장 GPGPU와 초병렬처리 제7장에서는 최근 뛰어난 계산처리 능력으로 주목 받고 있는 GPU(Graphic Processing Unit), GPGPU(General Purpose GPU)에 주목해서 그 구조나 연산 엔진으로서의 사용상 주의점을 설명한다. 제8장 프로세서는 앞으로 어떻게 변해갈 것인가? 마지막 제8장에서는 프로세서가 앞으로 어떻게 발전해나갈 것인지에 초점을 맞춰 기술적인 발전 방향성과 프로세서의 용도별 발전 방향성에 대해 생각해본다. |