SlideShare a Scribd company logo
프로그래머가 몰랐던
멀티코어 CPU
이야기
      시작발표 : 본문 1, 2장



                                    아꿈사
             http://cafe.naver.com/architect1


                                  최성기
                      florist.sk@gmail.com
story   01.
프로그래머가 프로세서도 알아야 해요?


story   02.
프로세서의 언어 : 명령어 집합 구조
story   01.
프로그래머가 프로세서도 알아야 해요?


story   02.
프로세서의 언어 : 명령어 집합 구조
멀티코어 CPU는 왜 공부하나?

1. 프로세서 / 소프트웨어 적용 대상은 달라도
 대상을 더 빠르고 더 효율적으로 처리하기 위한

 알고리즘을 구하려는 본질은    통(通)한다.

2. 멀티코어의 발전과 GP-GPU의 활용.
 거의 모든 컴퓨터 붂야에서 병렬성의 활용이 화두.
가장 주된 이유는…


3. 하드웨어의 풍부한 병렬성을
  잘 쓰기 위한 프로그래밍 방법론은
  10년 전과 별로 다를 게 없다.


     그러니 토 달지 말고
      공부하도록 하자.
story   01.
프로그래머가 프로세서도 알아야 해요?


story   02.
프로세서의 언어 : 명령어 집합 구조
명령어 집합 구조 (ISA;Instruction Set Architecture)




                      우리가 흔하게 말하는
                      ‘기계어’의 개념에
                         가까움.
인텔 CPU칩들이 지원하는 ISA
PC/노트북 플랫폼에서 많이 쓰는 x86 / x64는
이름이 다양하다.


x86   IA-32
x64   AMD64, Intel64, x86-64,
      EM64T, IA-32e
같은 windows 64bit여도 Itanium은 별도 빌드.
이제 우리는 이 기사를 이해할 수 있게 되었다.


‘윈도우8은 ARM칩에서도 돌아갈 것이다.
하지만 프로그램들은 새로 만들어져야 한다.’
- CES 2011




http://bit.ly/eGdgjY
CISC;
 Complex Instruction Set Computer


 복잡한(풍부한) 명령어 집합을 갖는 CPU
 소프트웨어 연산이 느리고
 메모리가 귀한 시절에 설계되었다.
 짧은 길이 명령어에 많은 뜻을 함축하는 경향
 명령어 길이가 가변적이다
RISC;
 Reduced Instruction Set Computer


 CPU 명령어를 줄이고 구조를 단순화한 방식
 흔히 쓰이는 CISC명령어가
 그렇게 많지 않음을 발견하고 정리 들어감
 회로가 단순해져 HW 제조비용 절감
 명령어 길이가 고정적. 4바이트 제한.
CISC        RISC
명령어 길이   가변적         고정적
특징       명령어 하나가 많은   간단한 명령어로
         뜻을 함축하도록 설계. 구조의 단순화,
         (기계어 코딩도 감안) 성능 고속화 실현.

종류       x86, VAX    ARM, PowerPC,
                     MIPS, MIX
CISC(x86)
      add dword ptr [A], 0x07

A += 7;
      RISC
      load    r1, dword ptr [A]
      add     r1, r1, 0x07
      store   dword ptr [A], r1
CISC vs. RISC?
 과거에는 RISC가 고성능 컴퓨팅에 더 적합
  한 명령어 셋으로 평가되었다.
 펜티엄 시리즈는 CISC 명령을 RISC형태의
  내부 마이크로 명령어로 나누어 처리한다.
 1970년대 ISA 설계시점에 비해 집적도가
  기하급수적으로 증가한 지금 CISC/RISC
  의 비교는 큰 의미가 없어졌다.
Reference
•   ISA : http://bit.ly/mvUSu5
•   x86 : http://ko.wikipedia.org/wiki/X86
•   x64 : http://ko.wikipedia.org/wiki/X64
•   Itanium : http://bit.ly/fhTkBz
•   Windows 8 : http://bit.ly/eGdgjY
•   CISC : http://ko.wikipedia.org/wiki/CISC
•   RISC : http://ko.wikipedia.org/wiki/RISC




            -끝-

More Related Content

Viewers also liked

[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장sung ki choi
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장SukYun Yoon
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
JangHyuk You
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
내훈 정
 
Source Code Scanners
Source Code ScannersSource Code Scanners
Source Code Scanners
Pawel Krawczyk
 
병렬프로그래밍과 Cuda
병렬프로그래밍과 Cuda병렬프로그래밍과 Cuda
병렬프로그래밍과 Cuda
Seok-joon Yun
 
컴퓨터 하드웨어 구조
컴퓨터 하드웨어 구조컴퓨터 하드웨어 구조
컴퓨터 하드웨어 구조dddddanbi
 
Pitfalls of Object Oriented Programming by SONY
Pitfalls of Object Oriented Programming by SONYPitfalls of Object Oriented Programming by SONY
Pitfalls of Object Oriented Programming by SONY
Anaya Medias Swiss
 
소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해
중선 곽
 

Viewers also liked (10)

[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
Source Code Scanners
Source Code ScannersSource Code Scanners
Source Code Scanners
 
TBB 소개
TBB 소개TBB 소개
TBB 소개
 
병렬프로그래밍과 Cuda
병렬프로그래밍과 Cuda병렬프로그래밍과 Cuda
병렬프로그래밍과 Cuda
 
컴퓨터 하드웨어 구조
컴퓨터 하드웨어 구조컴퓨터 하드웨어 구조
컴퓨터 하드웨어 구조
 
Pitfalls of Object Oriented Programming by SONY
Pitfalls of Object Oriented Programming by SONYPitfalls of Object Oriented Programming by SONY
Pitfalls of Object Oriented Programming by SONY
 
소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해
 

Similar to [아꿈사/110514] 멀티코어cpu이야기 시작발표

Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
Jinkyoung Kim
 
TestBCD2015-2(Answer)
TestBCD2015-2(Answer)TestBCD2015-2(Answer)
TestBCD2015-2(Answer)
Yong Heui Cho
 
TestBCD2017-2(answer)
TestBCD2017-2(answer)TestBCD2017-2(answer)
TestBCD2017-2(answer)
Yong Heui Cho
 
강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계
chcbaram
 
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
Ubuntu Korea Community
 
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
Seunghwa Song
 
Processor
ProcessorProcessor
Processor
박 경민
 
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
GangSeok Lee
 
마이크로 서버 기술 동향
마이크로 서버 기술 동향마이크로 서버 기술 동향
마이크로 서버 기술 동향atelier t*h
 
TestBCD2017-1(answer)
TestBCD2017-1(answer)TestBCD2017-1(answer)
TestBCD2017-1(answer)
Yong Heui Cho
 
Hardware Virtualization
Hardware VirtualizationHardware Virtualization
Hardware Virtualization
JeSam Kim
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
 
System+os study 1
System+os study 1System+os study 1
System+os study 1
Jinkyoung Kim
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
Joongi Kim
 
Upgrade VCL! 오래된 프로그램, 최신 버전으로 탈바꿈하기
Upgrade VCL! 오래된 프로그램, 최신 버전으로 탈바꿈하기Upgrade VCL! 오래된 프로그램, 최신 버전으로 탈바꿈하기
Upgrade VCL! 오래된 프로그램, 최신 버전으로 탈바꿈하기
Devgear
 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10mimul
 
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
Devgear
 
OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316기한 김
 
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdfOS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
Ho Jeong Im
 
TestBCD2015-1(Answer)
TestBCD2015-1(Answer)TestBCD2015-1(Answer)
TestBCD2015-1(Answer)
Yong Heui Cho
 

Similar to [아꿈사/110514] 멀티코어cpu이야기 시작발표 (20)

Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
TestBCD2015-2(Answer)
TestBCD2015-2(Answer)TestBCD2015-2(Answer)
TestBCD2015-2(Answer)
 
TestBCD2017-2(answer)
TestBCD2017-2(answer)TestBCD2017-2(answer)
TestBCD2017-2(answer)
 
강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계
 
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
 
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
 
Processor
ProcessorProcessor
Processor
 
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
 
마이크로 서버 기술 동향
마이크로 서버 기술 동향마이크로 서버 기술 동향
마이크로 서버 기술 동향
 
TestBCD2017-1(answer)
TestBCD2017-1(answer)TestBCD2017-1(answer)
TestBCD2017-1(answer)
 
Hardware Virtualization
Hardware VirtualizationHardware Virtualization
Hardware Virtualization
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
System+os study 1
System+os study 1System+os study 1
System+os study 1
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
Upgrade VCL! 오래된 프로그램, 최신 버전으로 탈바꿈하기
Upgrade VCL! 오래된 프로그램, 최신 버전으로 탈바꿈하기Upgrade VCL! 오래된 프로그램, 최신 버전으로 탈바꿈하기
Upgrade VCL! 오래된 프로그램, 최신 버전으로 탈바꿈하기
 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10
 
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
 
OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316
 
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdfOS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
 
TestBCD2015-1(Answer)
TestBCD2015-1(Answer)TestBCD2015-1(Answer)
TestBCD2015-1(Answer)
 

More from sung ki choi

[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장
sung ki choi
 
[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장
sung ki choi
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
sung ki choi
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
sung ki choi
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기sung ki choi
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
sung ki choi
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장sung ki choi
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'sung ki choi
 
[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자
sung ki choi
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7
sung ki choi
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
sung ki choi
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms
sung ki choi
 
100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용
sung ki choi
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기
sung ki choi
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32sung ki choi
 

More from sung ki choi (15)

[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장
 
[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
 
[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms
 
100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32
 

[아꿈사/110514] 멀티코어cpu이야기 시작발표

  • 1. 프로그래머가 몰랐던 멀티코어 CPU 이야기 시작발표 : 본문 1, 2장 아꿈사 http://cafe.naver.com/architect1 최성기 florist.sk@gmail.com
  • 2. story 01. 프로그래머가 프로세서도 알아야 해요? story 02. 프로세서의 언어 : 명령어 집합 구조
  • 3. story 01. 프로그래머가 프로세서도 알아야 해요? story 02. 프로세서의 언어 : 명령어 집합 구조
  • 4. 멀티코어 CPU는 왜 공부하나? 1. 프로세서 / 소프트웨어 적용 대상은 달라도 대상을 더 빠르고 더 효율적으로 처리하기 위한 알고리즘을 구하려는 본질은 통(通)한다. 2. 멀티코어의 발전과 GP-GPU의 활용. 거의 모든 컴퓨터 붂야에서 병렬성의 활용이 화두.
  • 5. 가장 주된 이유는… 3. 하드웨어의 풍부한 병렬성을 잘 쓰기 위한 프로그래밍 방법론은 10년 전과 별로 다를 게 없다. 그러니 토 달지 말고 공부하도록 하자.
  • 6. story 01. 프로그래머가 프로세서도 알아야 해요? story 02. 프로세서의 언어 : 명령어 집합 구조
  • 7. 명령어 집합 구조 (ISA;Instruction Set Architecture) 우리가 흔하게 말하는 ‘기계어’의 개념에 가까움.
  • 9. PC/노트북 플랫폼에서 많이 쓰는 x86 / x64는 이름이 다양하다. x86 IA-32 x64 AMD64, Intel64, x86-64, EM64T, IA-32e
  • 10. 같은 windows 64bit여도 Itanium은 별도 빌드.
  • 11. 이제 우리는 이 기사를 이해할 수 있게 되었다. ‘윈도우8은 ARM칩에서도 돌아갈 것이다. 하지만 프로그램들은 새로 만들어져야 한다.’ - CES 2011 http://bit.ly/eGdgjY
  • 12. CISC; Complex Instruction Set Computer  복잡한(풍부한) 명령어 집합을 갖는 CPU  소프트웨어 연산이 느리고 메모리가 귀한 시절에 설계되었다.  짧은 길이 명령어에 많은 뜻을 함축하는 경향  명령어 길이가 가변적이다
  • 13. RISC; Reduced Instruction Set Computer  CPU 명령어를 줄이고 구조를 단순화한 방식  흔히 쓰이는 CISC명령어가 그렇게 많지 않음을 발견하고 정리 들어감  회로가 단순해져 HW 제조비용 절감  명령어 길이가 고정적. 4바이트 제한.
  • 14. CISC RISC 명령어 길이 가변적 고정적 특징 명령어 하나가 많은 간단한 명령어로 뜻을 함축하도록 설계. 구조의 단순화, (기계어 코딩도 감안) 성능 고속화 실현. 종류 x86, VAX ARM, PowerPC, MIPS, MIX
  • 15. CISC(x86) add dword ptr [A], 0x07 A += 7; RISC load r1, dword ptr [A] add r1, r1, 0x07 store dword ptr [A], r1
  • 16. CISC vs. RISC?  과거에는 RISC가 고성능 컴퓨팅에 더 적합 한 명령어 셋으로 평가되었다.  펜티엄 시리즈는 CISC 명령을 RISC형태의 내부 마이크로 명령어로 나누어 처리한다.  1970년대 ISA 설계시점에 비해 집적도가 기하급수적으로 증가한 지금 CISC/RISC 의 비교는 큰 의미가 없어졌다.
  • 17. Reference • ISA : http://bit.ly/mvUSu5 • x86 : http://ko.wikipedia.org/wiki/X86 • x64 : http://ko.wikipedia.org/wiki/X64 • Itanium : http://bit.ly/fhTkBz • Windows 8 : http://bit.ly/eGdgjY • CISC : http://ko.wikipedia.org/wiki/CISC • RISC : http://ko.wikipedia.org/wiki/RISC -끝-