메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

Blog2Book, 프로그래머가 몰랐던 멀티코어 CPU 이야기

한빛미디어

집필서

절판

  • 저자 : 김민장
  • 출간 : 2010-05-20
  • 페이지 : 396 쪽
  • ISBN : 9788979147407
  • 물류코드 :1740
  • 초급 초중급 중급 중고급 고급
5점 (3명)
좋아요 : 26
딱딱한 하드웨어를 말랑말랑하게 풀어낸 멀티코어 CPU 이야기

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

김민장

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

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. 어려운 병렬 프로그래밍, 그리고 그 미래는?
    들어가며 
    비효율적인 병렬 프로그래밍 : 가짜 공유 문제 
    미래의 병렬 프로그래밍 방법론 
    결론 
    참고문헌 
 
찾아보기

컴퓨터 전공자이긴했지만 워낙 예전에 공부했던 내용이어서인지
처음 읽을때는 너무 어려운 내용만 같았고 이해도 가지않았다.
용어에 대한 지식이 부족해서인지 책을 찾아보고 인터넷을 찾아가면 책에 내용을 이해해야만 했다.
학부 시절에 공부했던 내용을 다시 정리하면서 읽기에는 좋다.
일반적인 하드웨어 책보다는 쉽게 설명하고 있어 부담없이 읽기에는 좋다.
하지만 책이 그냥 번역을 해놓은것만 같았고 문장이 매끄럽게 연결되지 않는 느낌이었다.

책을 처음 접했을때 제목만 보고 최신 노하우로 가득 찬 프로그래밍 서적으로 생각하여, 멀티태스킹을 위한 저자(김민장 님)만의 노하우를 공개해 놓은 책이라 생각했던 마음이, 한장 두장 읽어가다 보면 하드웨어 내용들로 가득 채워져 있어서 계속해서 읽어야 하나... 고민 했던 기억이 납니다.

딱딱하게만 느껴지던 하드웨어와 마이크로 칩들이 고밀도 집적만을 목표로 더 자그맣게 더 빠르게 만을 목표로 삼고 만들어 지고 있다고 생각했던 저의 생각이 .... 이젠 싸그리 사라져 버렸네요. 오늘 새로 조립한 컴퓨터(인텔의 i5 CPU)가 대단해 보여지기도 하네요.

조그마한 칩안에 수많은 사람들의 노력과 열정으로 무수한 알고리즘이 최상의 속도를 내기위해 오늘도 돌아가고 있고, 내일은 아니 몇년 뒤에는 어떤 괴물(컴퓨터)이 우리 앞에 나탈날지 기다려 집니다.

최근들어 저사양이나 고사양의 컴퓨터 모두 거의 기본적으로 멀티코어(최소 듀얼코어)를 사용하고 있다.

이것이 최근의 트렌드인 만큼 이 저자는 멀티코어의 기본적인 동작 구조와 병렬 프로그래밍의 필요성과 그 방법을 전혀 딱딱하지 않게 몇 번이든 부담감없이 책을 꺼내 볼 수 있도록 설명해놓았다.

Blog2Book 시리즈의 컨셉에 맞게 전문적인 분야의 지식을 모든 대중들이 보는 Blog에 올리는 것처럼 풀어썼기에 전문서적을 볼 때처럼 책 하나와 씨름 하지 않아도 될것이다.

저자가 책의 서문에 써놓았듯이 멀티코어 CPU에 대한 책이지만 하드웨어에 대한 책이 아닌 프로그래밍과 알고리즘에 대한 책이며 이 말은 하드웨어와 소프트웨어를 따로 보지 않고 서로에게 최적화를 하는것이 답이며 그것을 독자가 알았을때 많은 도움을 줄 것이라고 저자는 말하고 있다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
Blog2Book, 프로그래머가 몰랐던 멀티코어 CPU 이야기
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
Blog2Book, 프로그래머가 몰랐던 멀티코어 CPU 이야기
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Blog2Book, 프로그래머가 몰랐던 멀티코어 CPU 이야기
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0