special report · 2009-04-29 · special report soc 기술 동향 멀티코어 프로세서 및...

8
Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 [email protected], 한국전자통신연구원 시스템반도체연구부 엄낙웅 부장/공학박사 [email protected], 한국전자통신연구원 시스템반도체연구부 권영수 선임 엄낙웅 부장 제 1 장 개요 수학자 본 뉴먼( John von Newmann, 1903~1957)이 1945 프로그램 저장장치를 가진 컴퓨터인 EDVAC(Electronic Discrete Variable Automatic Computer)에 관한 논문 2) 에서 일 련의 명령어( Instruction)를 수행하면서 프로그래머가 원하는 동작( Operation)을 행하는 컴퓨터의 개념을 제시한 이래 프로 세서( Processor, Microprocessor)는 전자공학 및 전산학 분야에 서 가장 오래 연구된 분야 중 하나이다. 프로세서 기술은 컴퓨터라는 개념의 초석이 되는 근본 기술 로서 시스템 반도체 하드웨어 기술 위에서 체계화된 소프트 웨어 레이어의 결합이 이루어 내는 시스템 반도체의 결정 기 술이라고 할 수 있다. 프로세서 코어 기술은 일반적으로 메인 메모리, 캐시 메모리( Cache memory), 레지스터 파일( Register file), 명령어 및 오퍼랜드( Instruction, Operand) 제어 유닛, 고 정 및 부동소수점( Fixed-point, floating-point) 데이터 연산기 등을 포함하는 시스템 반도체로 설계된 코어( Core)의 설계 및 운용기술을 의미한다. 프로세서 코어 아키텍처는 순차적 명 령어 페치( In-order instruction fetch) 구조에서 슈퍼스케일러 반도체 소자의 급격한 미세화와 더불어 소비전력 절감, 성능 향상 등의 이득은 SoC 설계기술의 진보가 없다면 조만간 한계에 봉착할 전 망이다. 소자의 크기가 작아질수록 게이트 및 채널에서 발생하는 누설 전류가 증가하여, 전체 소비전력과 단위면적당 에너지 밀도가 증가 하게 되므로, SoC가 소모하는 에너지는 냉각이 어려운 수준으로 증가할 것으로 평가된다. 또한, 최근 SoC에는 동영상 코딩, 3D 그래픽, 프로세서·메모리 혼합구조, 통신기술, HMI(Human Machine Interface), 인식기술, OS/컴파일러, 임베디드 소프트웨어, 재구성형 기술 등의 다양한 기술이 통합되고 있다. 이러한 다양한 기술 통합의 중심에는 프로세서 코어 기술 및 소프트웨어 기술이 자리잡고 있다. 본 고에서는 시스템 반도체의 저전력화 및 고성능화를 위하여 데스크탑 및 임베디드 프로세서의 차세대 아키텍처로 각광받고 있는 멀티 코어 프로세서 기술 및 프로세서 소프트웨어 기술 동향에 대하여 알아보고, 그린 컴퓨팅 1) 이 전세계적인 화두가 되고 있는 현실에서 멀티 코어 프로세서 기반 기술의 동향에 대해서 살펴본다. May 2009 9 1) 그린컴퓨팅은 탄소(CO 2 )배출규제 및 환경보호를 위한 RoHS(2002년), REACH(2006년) 등 각국의 환경규제 조약에 대응하기 위한 환경친화적 시스템 반도체 산업을 위한 개념이다. Intel은 전사적으로 Green IT전략의 일환으로 자사 데스크탑 프로세서의 에너지 효율을 강화하기 위한 제품개발전략을 완성하였으며, NXP는 Green Chip, 일본은 Cool Earth, Green IT를 모토로 에너지 관련 시스템 반도체 개발을 위한 장기적인 계획을 추진중에 있다. 2) First Draft of a Report on the EDVAC, Moore School of Engineering, University of Pennsylvania, 1945 www.ssforum.org

Upload: others

Post on 13-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Special Report · 2009-04-29 · Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 yskwon@etri.re.kr, 한국전자통신연구원

Special Report

SoC 기술 동향멀티코어 프로세서 및 소프트웨어 기술 동향

권영수 선임/공학박사

[email protected], 한국전자통신연구원 시스템반도체연구부

엄낙웅 부장/공학박사

[email protected], 한국전자통신연구원 시스템반도체연구부

권영수 선임 엄낙웅 부장

제 1 장 개요

수학자 본 뉴먼(John von Newmann, 1903~1957)이 1945

년 “프로그램 저장장치를 가진 컴퓨터”인 EDVAC(Electronic

Discrete Variable Automatic Computer)에 관한 논문2)에서 일

련의 명령어(Instruction)를 수행하면서 프로그래머가 원하는

동작(Operation)을 행하는 컴퓨터의 개념을 제시한 이래 프로

세서(Processor, Microprocessor)는 전자공학 및 전산학 분야에

서 가장 오래 연구된 분야 중 하나이다.

프로세서 기술은 컴퓨터라는 개념의 초석이 되는 근본 기술

로서 시스템 반도체 하드웨어 기술 위에서 체계화된 소프트

웨어 레이어의 결합이 이루어 내는 시스템 반도체의 결정 기

술이라고 할 수 있다. 프로세서 코어 기술은 일반적으로 메인

메모리, 캐시 메모리(Cache memory), 레지스터 파일(Register

file), 명령어 및 오퍼랜드(Instruction, Operand) 제어 유닛, 고

정 및 부동소수점(Fixed-point, floating-point) 데이터 연산기

등을 포함하는 시스템 반도체로 설계된 코어(Core)의 설계 및

운용기술을 의미한다. 프로세서 코어 아키텍처는 순차적 명

령어 페치(In-order instruction fetch) 구조에서 슈퍼스케일러

반도체 소자의 급격한 미세화와 더불어 소비전력 절감, 성능 향상 등의 이득은 SoC 설계기술의 진보가 없다면 조만간 한계에 봉착할 전

망이다. 소자의 크기가 작아질수록 게이트 및 채널에서 발생하는 누설 전류가 증가하여, 전체 소비전력과 단위면적당 에너지 밀도가 증가

하게 되므로, SoC가 소모하는 에너지는 냉각이 어려운 수준으로 증가할 것으로 평가된다. 또한, 최근 SoC에는 동영상 코딩, 3D 그래픽,

프로세서·메모리 혼합구조, 통신기술, HMI(Human Machine Interface), 인식기술, OS/컴파일러, 임베디드 소프트웨어, 재구성형 기술 등의

다양한 기술이 통합되고 있다. 이러한 다양한 기술 통합의 중심에는 프로세서 코어 기술 및 소프트웨어 기술이 자리잡고 있다.

본 고에서는 시스템 반도체의 저전력화 및 고성능화를 위하여 데스크탑 및 임베디드 프로세서의 차세대 아키텍처로 각광받고 있는 멀티

코어 프로세서 기술 및 프로세서 소프트웨어 기술 동향에 대하여 알아보고, 그린 컴퓨팅1)이 전세계적인 화두가 되고 있는 현실에서 멀티

코어 프로세서 기반 기술의 동향에 대해서 살펴본다.

May 2009 9

1) “그린컴퓨팅”은 탄소(CO2)배출규제 및 환경보호를 위한 RoHS(2002년), REACH(2006년) 등 각국의 환경규제 조약에 대응하기 위한 환경친화적 시스템

반도체 산업을 위한 개념이다. Intel은 전사적으로 “Green IT” 전략의 일환으로 자사 데스크탑 프로세서의 에너지 효율을 강화하기 위한 제품개발전략을 완성하였으며, NXP는 “Green Chip”, 일본은 “Cool Earth, Green IT”를 모토로 에너지 관련 시스템 반도체 개발을 위한 장기적인 계획을 추진중에 있다.

2) “First Draft of a Report on the EDVAC”, Moore School of Engineering, University of Pennsylvania, 1945

www.ssfo

rum.org

Page 2: Special Report · 2009-04-29 · Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 yskwon@etri.re.kr, 한국전자통신연구원

10 IT SoC Magazine May 2009 11

Special ReportSpecial Report

10 IT SoC Magazine May 2009 11

Special ReportSpecial ReportSpecial Report

(Superscalar), 동시 멀티 쓰레딩(Simultaneous Multithreading)

등의 고성능 구조로 발전해왔다. 프로세서 소프트웨어 기술

은 C, C++, Fortran, Ada, Clang 등 다양한 프로그래밍 언어

(Programming Language)를 본 뉴먼이 제시하였던 ‘저장된 명

령어’ 형태로 변환하는 컴파일러(Compiler) 기술을 중심으로,

어셈블러(Assembler), 링커(Linker)기술 등을 포함한다. 이러

한 소프트웨어 개발환경(Software Development Environment)

상에서 디바이스 드라이버(Device Driver) 및 Linux, uC/OS,

Windows, VxWorks 등과 같은 운영체제(Operating System) 및

시스템 서비스를 제어하는 미들웨어(Middleware)가 구현되고,

최상위에 사용자 어플리케이션(User Application)이 구현된다.

이와 같이 프로세서 기술은 최고 수준의 시스템 반도체 기술

을 요하는 프로세서 코어 기술과 다수의 소프트웨어 레이어로

구성되는 복합적인 기술로서 컴퓨터의 발전과 그 맥을 같이

하여 오랜 역사를 가지고 있다.

1980년대 반도체 집적 기술의 발전은 1970~1980년대의 펀

치페이퍼(punch paper) 또는 진공관(vacuum tube)으로 구현되

어 하나의 큰 빌딩을 차지하던 컴퓨터를 프로그래머 또는 사용

자들의 데스크탑에 올려놓을 수 있는 형태로 발전시켰다. Intel

사가 8086(1978년)을 시장에 출시한 이후 x86 명령어 및 아키

텍처는 현재에도 가장 널리 사용되는 데스크탑 프로세서 아키

텍처가 되어 80386, PentiumTM3), Core2TM 등으로 발전을 거듭

하고 있다. 모바일 디바이스의 개념이 본격화된 1990년대에

는 32-bit RISC(Reduced Instruction Set Computer) 프로세서

를 개발하던 Acorn Computers Ltd.에서 분사한 ARM사가 기

존의 단품(Discrete Device) 형태의 프로세서 생산 개념에서 벗

어나 시스템 반도체 내에 집적될 수 있는 IP 형태의 프로세서

라이센싱 사업을 시작하면서 개발한 ARM7TM, ARM9TM 프로

세서 등이 성공을 거두어 StrongARMTM, ARM11TM, XScaleTM,

CortexTM 등으로 제품군을 확장하고 있다.

제 2 장 기술개발동향

I. 멀티 코어 데스크탑 프로세서의 도약기

멀티코어 프로세서(Multi-core Processor)의 개념은 2000년

대 초 이후로 데스크탑 프로세서를 개발하는 Intel사, AMD

사 등의 차세대 프로세서 코어 개발의 근본 개념으로 자리

잡고 있다. 프로세서의 성능 향상을 극대화하기 위하여 다

수의 프로세서를 연결하여 성능을 배가시킨다는 측면에서

“멀티코어(Multi-core)”는 사실 새로운 프로세싱 개념이라

고 볼 수는 없다. 프로세서의 성능을 배가시키기 위해서 다

수의 프로세서를 단일 시스템에 집적하려는 시도는 프로세

서 코어의 속도가 메모리의 속도를 전반적으로 10배 이상 능

가하는 현상이 가시화되면서 다수의 프로세서가 공유메모리

를 접근할 때의 속도를 최적화하기 위한 연구가 진행되며 꾸

준히 존재해 왔다. 공유메모리의 기본 개념인 UMA(Uniform

Memory Access)로부터 프로세서 로컬 메모리의 개념을 포함

하는 NUMA(Non-Uniform Memory Access), ccNUMA(Cache-

Coherent NUMA), Cluster computing, Grid computing에 이르

기까지 멀티코어 프로세싱은 근 20년 이상 연구가 진행되어온

분야라고 할 수 있다.4)

최근의 멀티코어 프로세서는 수백-수천개의 프로세서를 거

대한 PCB상에 연결하고 이를 적층하여 대용량의 슈퍼컴퓨터

를 제작하던 기존의 방법과는 프로세서 구현 측면에서 근본

적인 차이가 있다. 제품으로 출시된 멀티코어 프로세서는 단

일 칩에 다수의 코어를 구현하는 단일 칩 멀티코어 프로세서

(Single-Chip Multi-core Processor) 또는 단일 패키지 상에 프로

세서 및 캐시메모리의 실리콘 다이(Silicon die)를 적층하는 형

태의 CMP(Chip-level Multi-Processor)이다.

Intel사와 AMD사 등이 최근 멀티코어 프로세서를 자사 제

품군의 주요 아키텍처로서 개발에 집중하고 있는 것은 다음

과 같은 이유로 요약해 볼 수 있다. 첫째, 시스템 반도체 제작

기술이 한계에 도달했다. 1990년대 이후로 반도체 공정 기술

(Silicon Fabrication Technology)은 0.35㎛ 또는 0.13㎛ 으로 주

류 반도체를 제작하다가 최근에는 45nm, 30nm 등 초고밀도

3) 본 고에 사용된 Trademark(TM)는 각 프로세서 관련 기업의 고유한 상표로서 본문에서는 기술 개발 동향 설명을 위한 참고용으로 사용되었다.

4) 1980년대 중후반에 등장한 Cray Research사의 슈퍼컴퓨터 Cray-2는 3차원으로 스태킹된 프로세서 코어의 개념을 가지고 있었고, 1990년대 중반에 슈퍼컴퓨터 시장이 사실상 난관에 봉착(Supercomputer market crash)하기까지 수많은 미니컴퓨터 제작사들이 존재했다.

IT SoC M

agazine

Page 3: Special Report · 2009-04-29 · Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 yskwon@etri.re.kr, 한국전자통신연구원

10 IT SoC Magazine May 2009 11

Special ReportSpecial Report

10 IT SoC Magazine May 2009 11

Special ReportSpecial Report Special Report

미세 공정 기술(Deep-submicron Technology)로 발전하였다.

그러나 물리학적으로 공정 기술 스케일링이 수득율(Yield)을

감소시키고, 제작된 칩의 안정성(Reliability)이 저하될뿐만 아

니라, 시설 및 제작 비용(NRE cost)이 천문학적으로 증가되는

등 다양한 문제점을 발생시키면서 미세공정의 개발은 결국 한

계점에 봉착할 것으로 예측되고 있다. 멀티코어 프로세서는

공정기술이 한계에 부닥친 상황에서 프로세서의 성능을 증대

시킬 수 있는 유일한 대안으로 인식되고 있다. 최근에는 수십

~수백개의 프로세서를 단일 SoC에 구현하는 거대병렬프로세

서(Many-core Processor, Massive Multi-core Processor)의 개념

이 제안되었고, 실제로 초기 구현 제품도 등장하고 있다.5) 둘

째, 멀티코어 프로세서가 프로세서의 저전력화에 적합한 대안

이기 때문이다. Intel사의 데스크탑 프로세서가 1GHz~3GHz

이상의 클럭 주파수로 동작하게 되면서 전력소모량이 시스템

안정성에 있어 중요한 문제점으로 부각되었다. “저전력 시스

템 디자인”은 단순히 모바일 디바이스에서 배터리 소모량을

최소화하여 시스템 운용시간을 극대화하기 위한 목적이 아니

라, 80W~150W 이상의 전력을 소모하여 안정성(reliability)을

위해서 대용량의 냉각 팬을 장착해야 하는 데스크탑 프로세서6)에서도 필수적인 디자인 요소로 인식되고 있다. 멀티코어 프

로세서는 동일 작업을 하는데 있어서 비교적 낮은 클럭 주파

수 및 낮은 전압으로 동작시키는 것이 가능하다.

Intel사의 Core2TM는 64-bit7)의 x86-64 명령어를 가지는 코

어를 single, dual, quad 등으로 확장한 제품군이다. 멀티코어

를 구성하는 각각의 코어는 Pentium MTM에 기반한 아키텍처

를 개량한 구조라고 볼 수 있다.8) Pentium MTM의 경우 휴대용

랩탑 컴퓨터(Laptop Computer)에 채용한 프로세서로서 코어

당 전력소모량은 3-25W 정도이다. 즉, Core2TM는 기 개발된

저전력 프로세서 코어를 다수 채용하여 전력효율성을 높이는

동시에 성능을 극대화하기 위한 전략에서 나온 제품이라고 볼

수 있다. Quad-core의 경우 2x2 MCM(Multi-Chip Module)을

채용하기도 하였는데, 두 개의 실리콘 다이(Silicon die)가 단

일 패키지 상에 구성되고, 각각은 Dual-core로 구성된 제품이

다. 고성능 및 저전력의 두 가지 목적을 동시에 달성했다는 점

에서 높이 평가되어 Apple사가 자사의 Macbook 시리즈에 사

용되던 IBM의 PowerPC 프로세서에서 벗어나, 인텔사의 프

로세서를 채용하게 되는 계기를 제공하였다. Intel사는 최근

Core2TM의 후속 제품군인 Core i7TM을 출시하였는데 Core2TM

의 연장선상에 있는 제품으로, Core i7TM이후 출시된 제품은

모두 Quad-core 이상의 프로세서를 집적하고 있다.

x86 아키텍처 기반 데스크탑 프로세서의 대표적인 회사

인 AMD사는 K10 아키텍처에 기반을 둔 64-bit 프로세서

인 OpteronTM의 개발과 함께 2007년에 Quad-core 프로세서

를 출시하였다. 또한, Triple-core 또는 Quad-core로 구성된

PhenomTM 아키텍처 등으로 멀티코어 시장을 공략하고 있다.

Quad-core PhenomTM의 경우 Intel사의 Core2TM Quad가 MCM

으로 구성되었던 것과는 달리 단일 실리콘 상에 Quad-core를

구현하였다. 멀티코어를 단일 실리콘 상에 구현하면 코어간

의 캐시 일관성 유지(Cache coherency) 기술 구현시 성능 향상

의 효과를 볼 수 있다.

멀티코어 프로세서 디자인에는 시스템 반도체 제작 측면에

서 다양한 기술적인 문제가 존재한다. 다수의 코어를 단일 칩

에 집적하는데 있어서 수득율(Yield)이 낮아지는 현상이 여전

히 존재한다. Intel사의 경우 Core2TM Quad를 MCM으로 구

성하여 오동작하는 실리콘 다이는 사용하지 않는 방법이 수득

율 문제를 극복하기 위한 시도라고 볼 수 있다. 또한, Intel사

나 AMD사 공히 코어와 주메모리간의 버스(FSB, Front Side

5) John L. Manferdelli, Naga K. Govindaraju, and Chris Crall, “Challenges and opportunities in many-core computing”, Proceedings of IEEE, Vol, 96, Issue 5, May 2008, 808-815 참조

6) Intel사의 Pentium D 940은 168Watt, AMD Athlon64 FX-62는 168Watt 이상의 전력을 소모하는 것으로 보고되고 있다.

7) Intel의 64-bit 아키텍처 brand name은 ItaniumTM, Itanium 2TM 등이다.

8) Core2TM는 기존에 Pentium 4, D 또는 M으로 분류되어 있던 제품군을 통합하여 데스크탑과 랩탑 컴퓨터에 공통적으로 적용되는 Intel의 브랜드명이다.

그림 1. Intel사의 45nm Dual-Core Penryn/Wolfdale Processor Die. Quad-Core의 경우 MCM으로 두 개의 die를 집적함. 출처: http://www.tomshardware.com

www.ssfo

rum.org

Page 4: Special Report · 2009-04-29 · Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 yskwon@etri.re.kr, 한국전자통신연구원

12 IT SoC Magazine May 2009 13

Special ReportSpecial Report

12 IT SoC Magazine

Special Report

Bus) 클럭 속도를 증대시키기 위한 기술개발을 수년간 해왔

는데, 다중 코어의 집적으로 인해서 공유된 대용량의 메모리

를 동일 시스템 버스상에 연결함으로써 메모리 억세스 용량

(Memory Access Bandwidth)이 감소되는 문제점이 있다. 실제

로 이러한 경우 Dual-Core가 Single-Core에 비해서 30% 또는

70% 정도의 성능만이 향상되는 것으로 알려져 있다. 향후 멀

티코어 아키텍처는 수십~수백개 코어의 단일코어 집적시 배

가되는 성능을 최대한 활용할 수 있는 기술이 주요 연구 목표

로 자리잡을 것이다.

II. 임베디드 프로세서 시장의 재편

랩탑 컴퓨터, 셀폰, PDA, PMP 등 모바일 디바이스 시장

의 급격한 성장과 더불어 배터리 사용시간의 중요성 및 폼팩

터(Form Factor) 등이 중요한 시스템 디자인 이슈로 부각되면

서, 임베디드 프로세서 시장도 동반 성장하였다. 임베디드 프

로세서는 오디오 및 비디오 디코딩, 데이터 통신 등의 태스크

를 수행하는데 소모되는 에너지량 및 성능이 중요한 프로세

서 선택 기준이 된다.

최근까지 PDA, PMP 등에는 ARM사의 프로세서들이 모

바일 프로세서 시장의 상당량을 점유해 왔는데, ARM사는

ARM11이후 새로운 아키텍처로 ARMv7 아키텍처를 선보였

으며, ARMv7 아키텍처는 2008년부터 CortexTM라는 제품군

으로 출시되고 있다. CortexTM 제품군은 기존의 ARM사용자

들에게 성능 및 기능별로 특정 어플리케이션에 차별화된 다양

한 솔루션을 제공하는 것을 특징으로 보이고 있다. 이는 Intel

사가 자사의 모바일 및 데스크탑 제품군을 Core2TM라는 제품

군에 통합시킨 것과 비슷한 맥락으로 보인다. ARM CortexTM

제품군은 세가지 시리즈로 구성되어 있는데 Cortex-A는 고성

능 OS 및 다중 사용자 어플리케이션, Cortex-R은 반응시간을

중요시하는 실시간 임베디드 시스템, Cortex-M은 비용에 민

감한 마이크로콘트롤러(Microcontroller) 및 FPGA에 최적화

된 프로세서이다. Cortex-M은 기존의 Renesas사 등이 점유하

고 있던 마이크로콘트롤러 시장 점유를 목표하고 있는 것으

로 보인다. Cortex-A의 경우 ARM사의 멀티코어 플랫폼으로

서 성능 지향적인 프로세서 제품군이다. ARM사는 MPCore

플랫폼으로 불리는 멀티코어 프로세서 플랫폼을 수년간 개발

해왔는데, Cortex-A는 이를 채용한 플랫폼으로서 미디어 가속

엔진인 NEON Media Processing Engine®, 보안솔루션으로서

TrustZone® 등의 디자인을 제공한다.

PDA의 경우 HP사, Palm사 등이 시장에서 치열한 경쟁을

벌여왔다. 2002년에는 BlackBerry9)가 소형의 키보드를 장착

한 제품으로 상당한 시장을 점유하기 시작했는데, BlackBerry

의 경우, 초기에는 Intel사의 80386프로세서를 사용하다가

BlackBerry 950 또는 957의 경우, ARM7, ARM9 및 PXA90110)

을 채용하였다. CDMA용 BlackBerry의 경우 ARM9 프로세

서에 기반한 Qualcomm사의 MSM6x00 칩셋을 채용하였다.

2008년 12월의 보고에 따르면 BlackBerry사용자는 2100만에

이르는 것으로 알려져 있다. PMP(Portable Media Player)는

PDA의 기능에 멀티미디어 디코딩 기능을 강화한 제품이라

고 할 수 있는데, 특히 국내에서 많은 제품들이 개발되었다.

“Alchemy”로 알려진 프로세서는 1981년 John L. Hennessy가

처음으로 개발했던 MIPS 프로세서가 장착되어 있다. Alchemy

프로세서는 AMD사가 처음 개발하다가 2006년 중반에 RMI

사(Raza Microelectronics Inc.)로 사업부문이 인수되어 현재는

RMI사가 개발하고 있는 프로세서이다. 국내의 PMP 및 네비

게이션 제품들에서 상당수의 Alchemy프로세서가 사용된 것

으로 알려져 있다. Alchemy 프로세서는 2008년까지 UMPC

에도 사용되었다.

그림 2. ARM Cortex-A9TM MPCore 구성도 출처: http://www.linuxdevices.com

9) 캐나다의 RIM(Research In Motion)사가 개발한 모바일 무선 통신 기기이다.

10) Marvell사가 Intel사의 XScale 코어 부문을 인수한 후 출시한 프로세서이다.

IT SoC M

agazine

Page 5: Special Report · 2009-04-29 · Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 yskwon@etri.re.kr, 한국전자통신연구원

12 IT SoC Magazine May 2009 13

Special ReportSpecial Report Special Report

UMPC는 랩탑 컴퓨터의 이동성(Mobility), 소형화, 저전력

화를 더욱 강조한 제품이라고 볼 수 있다. 모바일 디바이스의

대표적인 제품군인 PDA, PMP, 랩탑 컵퓨터(노트북 컴퓨터)

경우, 이 제품군들은 UMPC(Ultra Mobile Personal Computer)

형태로 시장이 통합될 것으로 보인다. 기존의 랩탑 컴퓨터는

가격측면이나, 소형화 측면에서 UMPC로 시장이 이동하고

있고, PDA 및 PMP 등은 Palm OS 또는 PMP들에서 사용되던

제품특화된 운영체제들의 호환성 및 제한적인 어플리케이션

문제를 해결하기 위해서 Windows 또는 Linux로 재편되고 있

는 것으로 보인다. 저전력 랩탑 프로세서 시장에서는 초기에

는 Intel사나 AMD외에도 초기 Transmeta11)사 등의 회사가 경

쟁을 하였다. UMPC시장에서 초기 강세를 보이던 VIA사의

C7 프로세서는 x86 아키텍처를 라이센싱했던 VIA사가 수년

간의 개발 끝에 소수의 디자인 엔지니어들이 개발한 독자적

인 x86 아키텍처를 가진 프로세서이다. VIA사는 코드명 Isaiah

라고 불리는 VIA NanoTM 계열의 프로세서를 2008년에 출시

하여, Intel사의 Atom 프로세서와의 경쟁을 시도하고 있다.

Intel사의 Atom 프로세서는 2008년도에 출시된 x86 또는 x86-

64 계열의 프로세서이다. Atom 프로세서 아키텍처는 두 개의

명령어를 동시 수행할 수 있는 구조로서 800MHz~1.86GHz

의 클럭 주파수로, 3300MIPS 정도의 성능으로 Pentium MTM

의 50%정도의 성능을 보인다. 특히, 기존의 고성능 슈퍼스케

일러 데스크탑 프로세서에서 보이던 Instruction reordering,

speculative execution, register renaming 등의 기능을 없애고,

아키텍처 측면에서 초기 Pentium 또는 80486의 개념을 다

시 채택함으로써 전력 효율성을 강조한 제품이라고 볼 수 있

다. 실리콘 면적 측면이나 전력 측면에서 Atom 프로세서는

ARM 프로세서 또는 TI의 OMAP에 비해서 약점을 보이기는

하지만 x86 구조 지원 측면 및 Intel사의 시장 장악력을 볼 때

UMPC 시장에서 상당한 시장을 점유할 것으로 예상된다. 또

한, UMPC용 프로세서 분야 역시 x86 아키텍처를 중심으로

재편되고 있고, 저전력 및 고성능을 추구한다는 측면에서 볼

때 장기적으로 멀티코어 프로세서로 전환을 시도하리라는 관

측이 우세하다.

III. 슈퍼컴퓨터 프로세서와 데스크탑 슈퍼컴퓨팅

슈퍼컴퓨터는 1980년대 초 Cray사가 Cray-1, Cray-2 등을 제

품 출시한 이래 프로세서 성능을 극대화 할 수 있는 대안으로

서 개발되었고, 현재는 IBM이 개발한 BlueGene, Roadrunner

등이 대표적인 슈퍼컴퓨터로 알려져 있다. IBM Roadrunner

는 2008년 5월경의 보고에 의하면 1.7 Petaflops12)의 성능을 보

이며, PowerXCell 8i라는 3.2GHz의 프로세서를 무려 12,960

개, AMD사의 Opteron을 6,480개, 스위칭 구조(Switch fabric)

는 Infiniband를, 운영체제로는 Linux를 채택하였다. 이 슈퍼

컴퓨터는 현재 미국의 연구기관에서 사용 중인데 차지하는

면적만도 560m2나 된다. PowerXCell 8i 프로세서는 2008년

5월에 발표된 프로세서로서 IBM의 Cell 프로세서의 아키텍

처에 기반한 배정밀도 부동소수점 프로세서(Double-precision

Floating-point Processor)이다.

2006년경 주요 학회지를 통해서 처음으로 발표되었던

CellTM 프로세서는 IBM, Toshiba, Sony가 합작하여 개발한

칩으로 Sony가 개발하여 수 년간 성공적인 시장을 구축한 가

정용 게임기의 최근 작품인 Playstation 3에 채택되었고 2006

년 11월 최초로 발매되었다. 이 게임기의 중추적인 역할을

하는 Cell은 약 3.2GHz의 동작 주파수를 보이는데, 그 내부

는 IBM의 Power architecture에 기반한 multi-threaded 64-bit

POWER 프로세서(PPE)와 Dual-issue, 4-way SIMD 구조를

가진 Synergistic Processor Element(SPE)라는 연산가속 하드

웨어를 8개 포함하고 90nm SOI(Silicon-On-Insulator)로 초기

에 제작되었다. 2007년도 ISSCC에서 발표된 Cell Broadband

EngineTM은 65nm SOI로 제작되어 1.3V에서 6GHz로 동작한

다. SPE에 사용한 Circuit 및 Transistor 수준의 최적화는 Cell

의 성능향상에 주요한 요인으로 작용한다13). SPE는 SPU와

BIU/DMA로 구성되어 있는데, SPU는 SIMD 구조로 32-bit

명령어 2개를 동시에 수행하고, 127-bit 데이터를 가진다. 이

러한 SPE들을 연결하기 위해서 EIB(Element Interconnect Bus)

라고 하는 4개의 128-bit concentric ring bus구조를 채택하였

다. IBM의 Roadrunner에 채용된 PowerXCell 8i 프로세서는

65nm SOI(Silicon-On-Insulator) 공정으로 제작되었으며 다이

11) Transmeta사는 Intel사와의 시장 경쟁 중에 2005년에 프로세서 제작은 중단하고 자사의 저전력 기술을 판매하는 회사로 변모하였으며, Intel사와의 특허소송을 2007년에 마무리지었다.

12) 초당 1015개의 부동 소수점 연산을 수행할 수 있음을 의미한다.

13) J. Warnock et al., "Circuit design techniques for a first-generation cell broadband engine processor", IEEE Journal of Solid-State Circuits, vol. 41, No. 8, 2006, pp. 1692-1706 참조

www.ssfo

rum.org

Page 6: Special Report · 2009-04-29 · Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 yskwon@etri.re.kr, 한국전자통신연구원

14 IT SoC Magazine May 2009 15

Special ReportSpecial Report

14 IT SoC Magazine

Special Report

크기는 212mm2 이며 3.2GHz의 클럭으로 동작한다.

2008년부터 “슈퍼컴퓨팅”은 수만 개의 프로세서를 연결

하는 거대한 슈퍼컴퓨터에서 데스크탑 슈퍼컴퓨팅의 형태

로 개념 전환을 시도하고 있다. 미디어 스트림 처리를 중심

으로 하는 스트림 프로세서(Stream Processor)는 대표적으로

Stanford의 Imagine과 MIT의 RAW를 들 수 있는데 Imagine

은 SPI사(Stream Processors Inc.)로, RAW는 Tilera사로 발전

하였다. SPI사는 VLIW ALU가 배열된 병렬 프로세서를 개발

하여 224GMAC(Giga Multiply-And-Accumulate)의 성능을 보

이는 Storm 시리즈의 제품을 개발하였다. Tilera는 RISC 프로

세서가 타일구조로 연결된 TILETM 프로세서 제품군을 개발

하여, 비디오 처리 및 네트웍 어플리케이션에 활용하고 있다.

각 회사는 각각 독립적인 멀티코어 프로세서 운영 환경을 갖

추어서 제품개발에 활용하고 있다. nVIDIA사는 데스크탑 프

로세서용 그래픽스 칩을 개발하던 회사인데, nVIDIA사가 최

근에 출시한 Tesla GPU는 고성능 계산용 시장을 목표로 하는

멀티코어 프로세서이다. nVIDIA의 그래픽스 프로세서 제품

군이 이미지를 디스플레이하기 위한 기능에 중점을 둔 반면,

TeslaTM는 시뮬레이션, 대용량 계산, 과학분야에서의 이미지

생성 등을 목적으로 개발된 프로세서이다. nVIDIA는 TeslaTM

를 “데스크탑 슈퍼컴퓨터”라는 개념으로 제품을 발표하였으

며 CUDA라는 멀티코어 프로그래밍 환경을 프로그래머들에

게 보급하고 있다.

IV. 멀티코어 컴파일러 및 소프트웨어 플랫폼

멀티코어 프로세서는 다수의 코어를 근접한 거리상에 위치

하도록 하여 컴퓨팅 성능을 극대화하고 에너지 효율을 높일

수 있다는 점에서는 유력한 차세대 프로세서 아키텍처라고

할 수 있다. 멀티코어 프로세서의 본격적인 시장 도입에 가장

큰 걸림돌은 멀티코어 소프트웨어 플랫폼이다. n개의 프로세

서 코어가 최대의 성능을 발휘할 수 있는 경우는 프로세서 코

어에서 동작하는 어플리케이션이 n개 또는 그 이상의 쓰레드

(Thread)로 구성되어 있는 경우이다. 멀티코어 프로세서의 등

장 이전의 대부분의 어플리케이션들, 예를 들어, 데스크탑 프

로세서에 사용되는 오피스와 같은 어플리케이션 뿐만 아니라

현존하는 대부분의 어플리케이션들은 순차적 프로그래밍 언

어(Procedural Programming Language)로 구현되었다. 즉, 프로

그래밍 언어 자체가 순차적인 특성을 가지기 때문에 다수의

코어에서 수행될 수 있는 다중 쓰레드(Multi-thread)로 분할하

는 것이 근본적으로 용이하지가 않다.

물론, 현존하는 WindowsTM 나 Linux와 같은 OS의 시스템

커널이 멀티 코어 및 멀티 쓰레딩을 지원하지만, 실제로 다수

의 코어가 동시 동작을 통해서 최대의 성능을 구현하는 경우

는 ‘독립적인’ 다수 어플리케이션이 ‘동시에’ 각각의 코어에서

수행될 경우이다. 예를 들어, 바이러스 스캐닝과 특정 수학 알

고리즘을 수행할 때와 같은 경우라고 볼 수 있다. 반대로, 단

일 쓰레드로 구성된 어플리케이션은 다중 코어에서 그 성능

을 최대한 활용할 수 없을 것이다. 특정 어플리케이션을 초기

부터 멀티 쓰레딩으로 코딩하는데 있어서도 문제점은 존재한

다. 보고에 의하면 바이러스 스캐닝을 멀티 쓰레딩으로 구현

그림 3. PowerXCell 8i의 구조 출처: http://www.ibm.com

그림 4. Tesla 프로세서의 Microphotograph 출처: http://www.nvidia.com, nVISION ’08

IT SoC M

agazine

Page 7: Special Report · 2009-04-29 · Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 yskwon@etri.re.kr, 한국전자통신연구원

14 IT SoC Magazine May 2009 15

Special ReportSpecial Report Special Report

하는 경우에도 프로그래머들은 첫 번째 쓰레드에 대부분의 작

업용량(Workload)을 할당하고, 나머지 쓰레드에는 가벼운 정

도의 작업만을 할당하게 되는 특징이 있다는 것이다. 즉, 단일

어플리케이션 또는 다수의 태스크로 구성된 단일 작업을 다

수의 코어에서 최대의 성능을 발휘하도록 하는 멀티코어 소

프트웨어 플랫폼의 개발이 멀티코어 프로세서 분야에서의 핵

심적인 이슈이다. 멀티코어의 등장은 필연적으로 소프트웨어

프로그래머의 코딩 패러다임(Coding Paradigm)을 변화할 것

을 요구하고 있다.

멀티코어 프로그래밍을 위한 다수의 병렬 프로그래밍 언어

가 등장하고 있는데, OpenMP, MPI, Cilk++, OpenCL 등이 병

렬 프로그래밍을 지원하기 위한 언어이다.

OpenMP(Open Multi-Processing)는 C, C++, Fortran으

로 코딩된 프로그램 상에 적용되는 일종의 API(Application

Programming Interface)로서 C/C++를 위한 2.0버전은 2002년

에 표준이 확정되었다. OpenMP는 공유메모리 멀티코어 프로

세서(Shared-memory Multi-core Processor)를 지원하는데, 다

수의 컴파일러 디렉티브(Compiler Directive), 라이브러리 루

틴 및 환경변수(environment variable) 등으로 구성되어 있다.

OpenMP를 지원하는 컴파일러는 이러한 디렉티브 등을 내부

적으로 이해하여 효율적으로 어플리케이션 프로그램을 멀티

쓰레드 형태로 분할한다. OpenMP의 3.0버전14)은 GCC 4.3.1,

Intel C++ 11 compiler 등에서 지원하여 가장 널리 알려진 병

렬 프로그래밍 언어(Parallel Programming Language)라고 할

수 있다. MPI(Message Passing Interface)는 병렬 컴퓨터상의

통신 프로토콜(Communication Protocol)로서 프로그래밍 언

어에는 독립적이지만, OpenMP 등과 사용되어 클러스터 컴퓨

팅(Cluster Computing) 등에 적용된다.

Cilk++15)는 C++의 확장 버전이라고 할 수 있는데 프로그래

머들로 하여금 멀티코어 프로세서의 성능을 최대한 활용할 수

있도록하면서 기존의 어플리케이션을 멀티코어에 쉽게 이식

하도록 하기 위한 목적으로 개발된 프로그래밍 언어이다.

OpenCL은 그래픽스 렌더링에서 널리 알려진 OpenGL

과 비슷한 형태의 API로서 Apple사에서 처음 개념이 확립

되어 AMD, Intel, nVIDIA와 같은 회사들이 협력하여 2008

년 Khronos Computing Working Group을 구성하여 개발

하고 있다. OpenCL은 마이크로프로세서, GPU(Graphics

Processing Unit) 및 타 프로세서로 구성된 이종 프로세서 플

랫폼(Heterogeneous Processor Platform)에서 멀티 쓰레딩 어플

리케이션을 코딩하기 위한 API 또는 프로그래밍 언어라고 할

수 있다. 이는 Apple사의 최근 전략과도 그 맥을 같이 하는데,

Apple사가 PowerPC에서 Intel의 Core2TM 등으로 하드웨어 독

립적인 소프트웨어 플랫폼 개발 전략을 택함에 따라서 추진되

고 있는 것으로 보인다. 즉, 멀티코어 프로세서 하드웨어를 추

상화(Abstraction)하여 어플리케이션 소프트웨어 및 미들웨어

등에 집중하되 다양한 멀티코어 하드웨어에 자사의 플랫폼을

쉽게 이식하기 위한 시도로 예상된다. 이종 멀티코어 프로세

서에서의 소프트웨어 플랫폼으로서는 nVIDIA사가 TeslaTM 슈

퍼컴퓨터를 위하여 개발중인 CUDA(Compute Unified Device

Architecture)를 들 수 있다. CUDA는 자사의 병렬 GPU를 운

용하기 위한 플랫폼으로 개발 중인데, C, OpenCL, DirectX

11 등의 다양한 프로그래밍 플랫폼을 통하여 프로그래머들이

GPU에 접근할 수 있도록 개발되었다.

멀티코어 프로그래밍은 2009년 현재 태동기에 있다고 볼

수 있는데, 실제적인 멀티코어 어플리케이션은 게임, 그래픽

스, 통신, 공학 알고리즘 계산, EDA 등 병렬화(Parallelization)

그림 5. OpenCL의 컴퓨팅 모델. Private/Local/Global로 분리된 메모리 아키텍처에서 OpenCL 커널이 동작하도록 구성됨. 출처: http://www.khronos.org

14) OpenMP 3.0은 OpenMP ARB(Architectural Review Board)에 의하여 2008년 6월에 릴리즈 되었다.

15) http://www.cilk.com, Cilk Arts사는 MIT CSAIL에서의 연구결과를 바탕으로 Charles E. Leiserson 교수가 2006년 설립하였다.

www.ssfo

rum.org

Page 8: Special Report · 2009-04-29 · Special Report SoC 기술 동향 멀티코어 프로세서 및 소프트웨어 기술 동향 권영수 선임/공학박사 yskwon@etri.re.kr, 한국전자통신연구원

16 IT SoC Magazine

Special Report

가 용이한 분야에서 개발 시도가 이루어지고 있다. 게임산업

의 경우 Xbox, Xbox360, Playstation 3 등에서 사용된 3D 게임

엔진인 “Source engine16)”의 개발사인 Valve사는 자사의 Source

engine을 멀티코어에 최적화하도록 개발하는 계획을 발표한

바 있다17). Crytek18)사의 CryEngine 2TM도 멀티코어용으로 개

발되고 있으며, Emergent Game Technologies사도 자사의 게임

가속용 미들웨어인 Gamebro에 Floodgate라는 병렬화 기술을

적용하겠다고 밝힌 바 있다. EDA 분야에서도 이와 같은 시도

가 나타나고 있는데, EDA분야의 대표격인 Synopsys사에서는

시뮬레이션 속도 측면에서 특히 문제가 되는 HSPICE circuit

simulator 및 VCS functional simulator 등에 멀티쓰레딩 기술을

적용19)하여 성능향상을 기하고 있음을 공개하였다.

제 3 장 맺음말

고성능 데스크탑 프로세서에서 수 GHz 이상의 동작 주파

수를 필두로 경쟁하던 프로세서 업계는 모바일 디바이스 시대

가 도래하면서 저전력의 임베디드 프로세서로 시장을 재편해

왔다. 최근의 시스템 반도체 업계의 환경-기술적 요인들, 즉,

환경 친화적 컴퓨팅, 공정기술의 한계, 끊임없는 성능 개선의

요구, 과다한 에너지 소모 및 발열로 인한 시스템 안정성 문

제, 모바일 디바이스의 배터리 시간 증대 등의 요구는 멀티코

어 프로세서의 개발을 재촉하고 있다. 멀티코어 프로세서 분

야는 향후 시스템 반도체 업계를 새로운 형태로 재편할 중요

분야로서 확실시 되어 기존의 프로세서 개발 업체 및 소프트

웨어 업체들이 다양한 아키텍처와 프로그래밍 표준으로 각축

을 벌이면서 멀티코어의 춘추전국시대가 도래하고 있다. 멀티

코어 프로세서는 차세대 프로세서 아키텍처의 유일한 대안이

지만 하드웨어 측면에서는 다수 프로세서 집적으로 인한 개발

복잡성의 문제를 해결해야 하며, 보다 효율적인 프로세서 집

적 구조 등이 요구된다. 멀티코어 소프트웨어 측면에서는 기

존 프로그래밍의 한계를 극복하고 효과적인 멀티코어 프로그

래밍을 위한 대안이 요구되고 있다. 시스템 반도체 산업의 경

쟁력 제고를 위해서 국내에도 멀티코어 하드웨어 및 소프트웨

어를 위한 본격적인 연구 개발 투자가 절실한 시점에 와 있다

고 해야 할 것이다.

16) 3D 게임엔진이란 3차원 게임을 제작하는데 있어서 사용되는 일종의 개발API 이다. Valve사가 2004년에 발표한 “Source engine”은 Half-Life2, Team Fortress2 등 다양한 3D 게임의 3D 엔진으로 사용되었다.

17) http://www.bit-tech.net, 2006년 11월 2일자 기사

18) http://www.crytek.com 참조

19) http://www.edadesignline.com, 2008년 3월 10일자 기사

그림 6. 다중코어 미디어 프로세서(한국전자통신연구원, 2008)

(a) 다중코어 프로세서 구조도 (b) Die photograph

IT SoC M

agazine