프로그래머가 몰랐던
멀티코어 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




            -끝-

[아꿈사/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) 우리가 흔하게 말하는 ‘기계어’의 개념에 가까움.
  • 8.
  • 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 InstructionSet Computer  복잡한(풍부한) 명령어 집합을 갖는 CPU  소프트웨어 연산이 느리고 메모리가 귀한 시절에 설계되었다.  짧은 길이 명령어에 많은 뜻을 함축하는 경향  명령어 길이가 가변적이다
  • 13.
    RISC; Reduced InstructionSet 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 -끝-