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

17
프로그래머가 몰랐던 멀티코어 CPU 이야기 아꿈사 http://cafe.naver.com/architect1 최 성 기 [email protected] 시작발표 : 본문 1, 2장

Upload: sung-ki-choi

Post on 23-Jun-2015

4.126 views

Category:

Technology


2 download

TRANSCRIPT

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

프로그래머가 몰랐던

멀티코어 CPU 이야기

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

최 성 기 [email protected]

시작발표 : 본문 1, 2장

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

story 01. 프로그래머가 프로세서도 알아야 해요?

story 02. 프로세서의 언어 : 명령어 집합 구조

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

story 01. 프로그래머가 프로세서도 알아야 해요?

story 02. 프로세서의 언어 : 명령어 집합 구조

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

멀티코어 CPU는 왜 공부하나?

1. 프로세서 / 소프트웨어 적용 대상은 달라도

대상을 더 빠르고 더 효율적으로 처리하기 위한

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

2. 멀티코어의 발전과 GP-GPU의 활용.

거의 모든 컴퓨터 붂야에서 병렬성의 활용이 화두.

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

가장 주된 이유는…

3. 하드웨어의 풍부한 병렬성을

잘 쓰기 위한 프로그래밍 방법론은

10년 전과 별로 다를 게 없다.

그러니 토 달지 말고 공부하도록 하자.

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

story 01. 프로그래머가 프로세서도 알아야 해요?

story 02. 프로세서의 언어 : 명령어 집합 구조

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

명령어 집합 구조 (ISA;Instruction Set Architecture)

우리가 흔하게 말하는

‘기계어’의 개념에 가까움.

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

인텔 CPU칩들이 지원하는 ISA

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

PC/노트북 플랫폼에서 많이 쓰는 x86 / x64는 이름이 다양하다.

x86 IA-32

x64 AMD64, Intel64, x86-64, EM64T, IA-32e

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

같은 windows 64bit여도 Itanium은 별도 빌드.

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

http://bit.ly/eGdgjY

이제 우리는 이 기사를 이해할 수 있게 되었다.

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

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

복잡한(풍부한) 명령어 집합을 갖는 CPU

소프트웨어 연산이 느리고

메모리가 귀한 시절에 설계되었다.

짧은 길이 명령어에 많은 뜻을 함축하는 경향

명령어 길이가 가변적이다

CISC; Complex Instruction Set Computer

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

CPU 명령어를 줄이고 구조를 단순화한 방식

흔히 쓰이는 CISC명령어가

그렇게 많지 않음을 발견하고 정리 들어감

회로가 단순해져 HW 제조비용 절감

명령어 길이가 고정적. 4바이트 제한.

RISC; Reduced Instruction Set Computer

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

CISC RISC 명령어 길이 가변적 고정적

특징 명령어 하나가 많은 뜻을 함축하도록 설계. (기계어 코딩도 감안)

간단한 명령어로 구조의 단순화, 성능 고속화 실현.

종류 x86, VAX ARM, PowerPC, MIPS, MIX

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

A += 7;

add dword ptr [A], 0x07

load r1, dword ptr [A] add r1, r1, 0x07 store dword ptr [A], r1

RISC

CISC(x86)

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

CISC vs. RISC?

과거에는 RISC가 고성능 컴퓨팅에 더 적합한 명령어 셋으로 평가되었다.

펜티엄 시리즈는 CISC 명령을 RISC형태의 내부 마이크로 명령어로 나누어 처리한다.

1970년대 ISA 설계시점에 비해 집적도가 기하급수적으로 증가한 지금 CISC/RISC의 비교는 큰 의미가 없어졌다.

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

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

- 끝 -