본문 바로가기

추천 검색어

실시간 인기 검색어

프로그래머가 몰랐던

멀티코어 CPU 이야기

BLOG2BOOK 09
김민장 지음
한빛미디어

2011년 12월 27일 출간

종이책 : 2010년 05월 28일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 pdf (5.52MB)
ISBN 9788968485176
쪽수 396쪽
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 불가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 전자책 화면에 표기된 주석 등을 모두 읽어 줍니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
  • '교보 ebook' 앱을 최신 버전으로 설치해야 이용 가능합니다. (Android v3. 0.26, iOS v3.0.09,PC v1.2 버전 이상)

PDF 필기 Android 가능 (iOS예정)
소득공제
소장
정가 : 13,200원

쿠폰적용가 11,880

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 300원
시리즈 전체 1
멀티코어 CPU 이야기
13,200

작품소개

이 상품이 속한 분야

CPU는 그저 복잡한 하드웨어가 아니다!
블로그에서 바로 읽는 듯한 생생한 개발 노하우「Bolg2Book」시리즈 제 9권 『프로그래머가 몰랐던 멀티코어 CPU 이야기』. 이 책은 기본적인 CPU 구조에 대한 내용부터 최신 멀티코어 CPU에 적용된 여러 알고리즘을 다루었다. CPU에 적용된 비순차 실행, 명령어 레벨 병렬성(ILP) 등의 동작 원리, 멀티코어 프로세서의 동작 원리와 그 속에 숨겨진 소프트웨어 알고리즘을 설명한다. 또한 명령어 집합 구조, 프로그램의 의미를 결정짓는 의존성, 프로세서 기본 동작, 고성능 프로세서가 되려면 필요한 파이프라인, 비순차 실행에서 하이퍼스레딩, 칩 멀티프로세서, 캐시, 가상 함수의 처리 과정, 병렬 프로그래밍과 하이젠버그 등을 자세하게 살펴본다.
이 책은 프로그래머의 눈으로 하드웨어 이야기 없이, 마치 프로그래밍과 알고리즘 책을 보듯이, 최신 멀티코어 CPU 구조를 이해할 수 있도록 도왔다. 고성능 CPU의 비밀은 알고리즘에 있다. CPU에 적용된 파이프라인, 비순차 실행, 하이퍼스레딩, 캐시, 분기문 예측, 프리펫칭은 모두 프로그램에 적용 가능한 알고리즘 그 자체이다. 이 책에서는 왜 CPU가 멀티코어로 진화했는지, 또 왜 이렇게 병렬 프로그래밍이 어려운지 살펴본다.
Story 01. 프로그래머가 프로세서도 알아야 해요?
들어가며
고달픈 프로그래머
누구를 위해 이 책을 썼는가?
참고문헌

Story 02. 프로세서의 언어 : 명령어 집합 구조
들어가며
프로그래머가 보는 프로세서
프로세서의 언어 : 명령어 집합 구조
RISC와 CISC로 알아보는 명령어 집합 구조
간단한 코드로 보는 RISC와 CISC의 차이
아직도 RISC vs. CISC ?
결론
참고문헌

Story 03. 프로세서의 기본 부품과 개념들
들어가며
마이크로아키텍처란?
산술 논리 장치 : 프로세서 속의 계산기
클록, 1사이클이 가지는 의미
메모리 계층
컨트롤 장치
프로세스와 스레드
가상 메모리
결론
참고문헌

Story 04. 암달의 법칙과 프로세서의 성능 지표
들어가며
암달의 법칙
병렬 처리에서의 암달의 법칙
프로그램의 수행 시간
성능 향상을 위해 해야 할 일
결론
참고문헌

Story 05. 프로그램의 의미를 결정 짓는 의존성
들어가며
데이터 의존성
컨트롤 의존성
메모리 의존성
루프에서의 데이터 의존성
결론

Story 06. 프로세서 기본 동작
들어가며
명령어 처리의 기본적인 다섯 단계
명령어 인출
명령어 해독
피연산자 인출
명령어 실행 단계
연산 결과 저장
예외 처리
결론
참고문헌

Story 07. 고성능 프로세서의 시작 : 명령어 파이프라인
들어가며
파이프라인의 기본 개념
파이프라인의 효율적인 설계
파이프라인 프로세서의 구현
파이프라인 해저드
파이프라인 : 소프트웨어 병렬화의 한 가지 방법
결론
참고문헌

Story 08. 또 하나의 혁명 : 비순차 실행
들어가며
비순차 슈퍼스칼라 프로세서가 필요한 이유
비순차 실행의 원리 : 명령어 수준 병렬성
슈퍼스칼라 파이프라인 구조
비순차 실행의 구현 : 토마슐로 알고리즘
비순차 프로세서 파이프라인
결론
참고문헌

Story 09. 하이퍼스레딩 : 병렬성의 극대화
들어가며
하이퍼스레딩이 뭐야?
동시 멀티스레딩의 구현과 성능
결론
참고문헌

Story 10. 멀티코어 혁명 : 칩 멀티프로세서
들어가며
멀티코어 시대
싱글코어의 한계 : 에너지 장벽
싱글코어의 한계 : ILP의 한계
병렬 컴퓨터의 개념
병렬 컴퓨터 구조
멀티코어의 구성 방식
멀티코어의 한계 : 메모리 장벽과 병렬 프로그래밍
여전히 중요한 싱글코어 성능
결론
참고문헌

Story 11. 데이터 병렬성 : SIMD와 GPU
들어가며
데이터 병렬성
GPU : 또 하나의 병렬 프로세서
CUDA 프로그래밍 모델 : 스레드와 메모리 모델
CUDA 프로그래밍의 예 : 행렬 곱셈
nVidia GPU의 자세한 스레드 실행 구조 : 워프(Warp)
결론
참고문헌

Story 12. 고성능 프로세서의 필수 조건 : 똑똑한 캐시
들어가며
왜 캐시가 필요하고 잘 작동할 수 있을까?
일반적인 캐시 구조
CPU 캐시의 기본적인 설계
고성능 캐시를 위한 알고리즘
멀티코어에서의 캐시
결론
참고문헌

Story 13. if 문은 그냥 실행되는 것이 아니다
들어가며
분기문 명령어와 프로그래밍 언어
분기 예측이 필요한 이유
분기 예측에 기반한 투기적 실행
기본적인 분기 예측 방법
더 똑똑한 과거 기반의 미래 예측
히스토리를 이용한 분기 예측
프리디케이션
결론
참고문헌

Story 14. 가상 함수에 담긴 복잡함
들어가며
분기 목적지 예측
간접 분기문의 분기 목적지 예측
결론
참고문헌

Story 15. 효율적인 메모리 명령 실행 알고리즘
들어가며
효율적인 메모리 연산의 실행
컴파일러 최적화의 장애물 : 포인터
결론
참고문헌

Story 16. 메모리 레이턴시 감추기 : 프리펫처
들어가며
필요한 데이터를 미리 잘 가져오자
기본적인 소프트웨어 프리펫칭
포인터 기반 자료구조의 소프트웨어 프리펫칭
하드웨어 프리펫칭 알고리즘
결론
참고문헌

Story 17. VLIW로 살펴보는 두 변수 교환 방법
들어가며
VLIW의 철학
두 변수를 교환하는 방법에 대한 고찰
결론
참고문헌

Story 18. 프로그래머의 새로운 과제 : 병렬 프로그래밍
들어가며
병렬 프로그래밍은 선택이 아니라 필수
기본 개념 : 원자적 실행과 동기화 연산
멘델브로 집합으로 보는 병렬 프로그래밍
결론
참고문헌

Story 19. 골치 아픈 멀티스레드 버그 : 하이젠버그
들어가며
재현이 어려운 골치 아픈 버그
대표적인 병행성 버그 : 원자성 위반과 순서 위반
결론
참고문헌

Story 20. 어려운 병렬 프로그래밍, 그리고 그 미래는?
들어가며
비효율적인 병렬 프로그래밍 : 가짜 공유 문제
미래의 병렬 프로그래밍 방법론
결론
참고문헌

찾아보기

미숙양은 지금 만드는 멀티스레드 코드의 이상한 버그 때문에 골치 아파하고 있다. 버그가 있는 것은 확실한데 그것을 정확하게 재현하기가 너무 어렵다. 버그를 잡겠다고 printf를 넣었는데 그러면 버그가 희한하게 사라져 나타나지 않는다.

미숙양: 도대체 왜 printf 넣었다고 버그가 감쪽같이 사라지죠? 문제가 뭘까요?
김팀장: 전형적인 멀티스레드 버그인 것 같아요.
미숙양: 네, 맞아요. 지금 이 코드는 멀티스레드로 돌아가는데요. 특별히 싱글스레드와 버그 잡는 것이 무엇이 다를까요?
김팀장: 멀티스레드 버그는 하이젠버그(Heisenbug)라고 부르기도 해요. 혹시 들어봤어요?
미숙양: 아니요, 처음 듣는데 무슨 말인가요? 합성어 같기도 한데.
김팀장: 네, 하이젠버그는 양자역학에 큰 기여를 한 물리학자 베르너 하이젠베르크(Werner Heisenberg)와 버그를 합친 말이에요.
미숙양: 왜 갑자기 그 물리학자 이름이 나올까요?
김팀장: 하이젠베르크는 불확정성의 원리라는 것을 만들었는데요. 쉽게 설명하면, 자동차는 속도나 가속도를 쉽게 측정할 수 있어요. 전파를 쏘아 자동차에 부딪혀 반사되는 것을 관찰해서 가능한 것이죠. 그런데 이런 측정이 원자 수준에서는 불가능해요. 원자에 있는 전자의 움직임을 자동차 속도 측정하듯이 할 수 없어요.
미숙양: 아하, 그래서 멀티스레드 버그를 잡겠다고 디버거를 붙이거나 printf를 넣으면 사라지는 것이군요.
- Story 19_골치 아픈 멀티스레드 버그: 하이젠버그 편에서

딱딱한 하드웨어를 말랑말랑하게 풀어낸 멀티코어 CPU 이야기
싱글코어에서 멀티코어 시대가 바뀌면서 프로그래밍의 패러다임이 변화했다. 이러한 변화는 프로그래머들에게 직간접적으로 영향을 미치고 있다. 최신 CPU에 적용된 비순차 실행, 명령어 레벨 병렬성(ILP) 등의 동작 원리를 알기 쉽게 설명한다. 딱딱한 프로그래밍 교과서에서 설명하지 않았던 멀티코어 프로세서의 동작 원리와 그 속에 숨겨진 소프트웨어 알고리즘을 설명한다.
이 책에서는 명령어 집합 구조, 프로그램의 의미를 결정 짓는 의존성, 프로세서 기본 동작, 고성능 프로세서가 되려면 필요한 파이프라인, 비순차 실행에서 하이퍼스레딩, 칩 멀티프로세서, 캐시, 가상 함수의 처리 과정, 병렬 프로그래밍과 하이젠버그 등을 자세하게 설명한다.

【주요내용】
ㆍ 프로세서 기본 구조
ㆍ 명령어 파이프라인과 비순차 실행
ㆍ 데이터 병렬성: SIMD와 GPU
ㆍ 메모리 명령 실행 알고리즘
ㆍ 병렬 프로그래밍과 CPU의 동작 원리

작가정보

저자(글) 김민장

저자 김민장은 C/C++ 언어와 윈도우 프로그래밍의 매력에 빠져 긴 시간 동안 취미로 혹은 직업으로 프로그래밍을 해오고 있다. 서울대학교에서 조선해양공학과 전산학을 전공하고 미국 조지아텍 전산학과에서 어떻게 하면 프로그래머가 병렬 프로그래밍을 더 쉽게 할 수 있을까라는 문제에 골몰하고 있다. 포시에스에서 웹 리포팅툴 소프트웨어를 개발하였으며, 인텔에서 프로그램의 병렬성을 분석하는 기법을 연구하였다.

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다.
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다.
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품/오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    Blog2Book 시리즈 신간 알림이 신청되었습니다.
    신간 알림 안내
    Blog2Book 시리즈 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    프로그래머가 몰랐던 멀티코어 CPU 이야기
    저자 모두보기
    저자(글)
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글북액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글북액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)