IT

ARM 프로세서 분석 및 발전 방향

by 너울 posted Oct 16, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

http://www.cyworld.com/nwse1988/7291946

 

요즘 스마트폰이 대세가 되면서 ARM프로세서가 다시 주목받고 있다. ARM프로세서에 대해서 좀 더 알아보자는 취지에 이 글을 쓴다.

□ ARM이란?

 

ARM프로세서는 영국의 ARM이라는 회사가 제작한 RISC프로세서를 지칭합니다.

ARM이라는 회사는 옛날 영국의 아콘 컴퓨터라는 회사의 한 부서였다가 아콘컴퓨터가 망하게 되면서 따로 빠져나와서 회사를 세운 것이 바로

ARM이라는 회사입니다.

이 회사는 초기에는 임베디드프로세서를 목표로 개발하였으며, 현재는 저전력과 작은 크기 그리고 전통적인 SoC칩으로서의 장점을 살려 모바일을

장악하여 현재는 일반 범용프로세서도 넘보는 위치까지 오게 되었습니다.

지금은, 대표적인 팹리스 설계회사로서 ARM프로세서의 설계와 라이센싱부분을 통해서 수익을 얻고 있는 회사입니다.

즉, 이 회사는 직접적으로 CPU를 생산하지 않고 ARM프로세서를 설계해서 그 설계도를 다른 회사에게 넘겨 라이센스를 받는 방식으로 돈을 버는

회사입니다.

□ ARM의 다양한 제품들의 분석 및 소개

초기 ARM이야기, ARM프로세서의 역사는 정말 오래 되었습니다. 과거 8bit프로세서 시절 때부터 시작되었습니다. 그 때는 아콘 컴퓨터도 살아있었을

때였고 꽤나 역사가 깊은 프로세서 입니다.

그 당시의 프로세서는 특정 이름은 없었고 아키텍쳐의 이름만 존재했습니다.

바로 ARMv1 ~ ARMv2 시절입니다. 이 때까지만 하더라도 ARM은 사실 x86과 견줄만한 아콘컴퓨터의 PC용으로 개발되었습니다.

바로 RISC vs CISC 의 대결이라고 해도 과언은 아니었지만 x86을 탑재한 IBM 호환 PC와 MS의 Windows 운영체제로 인해서 ARM은 개인용 PC시장에서

발을 붙일 곳이 없어졌습니다.

이 이유로 아콘컴퓨터는 망하게 됩니다.

하지만, ARM프로세서를 개발하던 부서는 독립하여 ARM이라는 회사를 세우고 범용 프로세서에서는 이미 x86이 자리를 차지하는 만큼 살아남기

위해서 ARM프로세서의 장점인 작은 크기의 다이와 저전력의 장점을 무기로 임베디드시장에 염두하고 개발하기 시작합니다.

그렇게 개발한 제품이 32bit ARMv3 제품입니다.

그리하여 ARM은 임베디드 시장에서 어느 정도의 점유율을 차지하게 됩니다.

물론, 이 시장에서는 MIPS나 SH3같은 경쟁자들도 있었습니다.

□ ARM7의 등장

이와 대결하기 위해서 ARM은 새로운 프로세서를 개발하게 이르는데 바로 ARM v4아키텍쳐입니다.

이 제품의 특징은 아래와 같습니다.

1. 향상된 프로트앤드와 분기예측기

2. 16bit 지원(전에는 32bit외에는 처리가 불가능)

3. 3개로 향상된 파이프라인과 3스테이지의 파이프라인, 추가된 명령어 등..

이 제품은 ARM에서 ARM7이라고 명명하고 제품을 출시하기 시작했습니다.

ARM은 고효율적인 프로세서인 만큼 모듈로 구성되어있었고 해당 요구에 따라서 다양한 모듈을 제거 및 추가가 가능하다는 장점이 있습니다.

하지만, 단점도 존재했었는데 바로 부동소수점 연산이 안 된다는 단점이 존재합니다.

이러한 단점을 보완하기 위해서 ARM프로세서는 DSP를 내장하거나 혹은 에뮬레이션으로 부동소수점을 연산하는 방식으로 부동소수점연산을

처리하게 됩니다.

덕분에 모바일 프로세서 시장은 춘추전국시대로 접어들게 되고, 이 때 MIPS계열과 ARM계열이 거의 양분하고 있었고 SH3는 시들시들해가던 시기

입니다.

□ 최고의 전성기 ARM9의 탄생

  

ARM은 MIPS에 비교해서 떨어지는 성능과 부동소수점 성능을 올리기 위해서 새로운 아키텍쳐를 개발하게 됩니다.

그 아키텍쳐의 이름은 ARMv5아키텍쳐, 이 제품은 ARM9로 명명받게 되며 다양한 파생 제품을 낳는 ARM사의 베스트셀러 제품이 되게 됩니다.

기존 ARM7에 비교해서 분기예측기가 향상되고, 메모리 컨트롤러의 성능이 향상되었으며 파이프라인 또한 3스테이지에서 5스테이지로 길어지게

되었습니다. 그리고 새로운 명령어가 추가되었으며 가장 큰 특징은 바로 부동소수점연산을 해주는 모듈이 생겼다는 점입니다.

그리고 32bit AMBA 버스가 처음으로 사용되어 대용량 데이터교환을 가능하게하기도 했습니다.

덕분에 ARM7 제품에 비교해서 약 30%의 성능향상을 가져오게 됩니다. 이 때는 모바일 시장이 MIPS와 ARM의 대결로 줄어들게 됩니다.

시장은 ARM과 MIPS로 양분화가 된 셈입니다. SH3는 거의 주류에서 밀렸으며 모바일 x86을 이끌던 지오드와 쿠루소는 비주류로 밀린지 오래입니다.

이 당시 ARM9는 다양한 방면으로 사용되었으며 이를 위해서 4가지의 다양한 제품라인업을 형성하게 됩니다.

그리고 PDA시장이 활성화가 되면서 ARM9는 다양한 파생제품을 내놓게 되는데 대표적으로 스트롱 암사의 ARMv5호환 아키텍쳐와 현 마벨(구 인텔)의

익스스케일 ARMv5호환 아키텍쳐 등등의 파생 제품을 내놓기도 합니다.

그리고 ARM사는 이러한 ARM9에서 1개의 파이프라인 스테이지를 늘린 ARM10을 발표하여 내놓기도 했는데 기본적으로 ARMv5호환에다가

바뀐점도 별로 없었으며 스테이지를 늘린 것에 비교해서 성능은 별로 오르지 않아 그다지 큰 호응도 받지 못한 제품이기도 했습니다.

□ ARM최초의 멀티코어 ARM11의 탄생

 

ARM9 프로세서는 여전히 베스트셀러이지만 여전히 MIPS를 압도하기에는 여전히 모자랐습니다. 그리고 MIPS는 64bit프로세서인 MIPS64를 개발하기에

이릅니다. 이에 ARM사는 새로운 아키텍처를 개발하기로 결심합니다.

그리하여 개발되어 나온 제품이 바로 ARMv6 아키텍쳐인 ARM11을 개발합니다.

특징은 64bit를 지원하며 처음으로 멀티코어를 가능하도록 설계하였으며 새로운 명령어와 개선된 분기예측기, 개선된 메모리컨트롤러, 개선된 프론트앤드,

8스테이지로 길어진 파이프라인 AMBA2 64bit 버스를 채택하여 향상된 대역폭을 보여주게 되며 IRQ가 추가되어 좀 더 효율적으로 CPU의 파이프라인을

사용가능하게 되었습니다.

덕분에 ARM11은 전세대 제품대비 30%의 성능향상을 이루게 되며 향상된 공정으로 소비전력이 더 낮아지게 되었습니다. 하지만, PDA시장은 작아져서

일반인들에게는 사용되는 AP용으로는 그다지 많이 출시되지 않았지만 임베디드시장에서는 여전히 베스트셀러로 많이 팔리게 됩니다.

이 때, MIPS계열은 점유율이 낮아져 갔으며 날이 갈수록 ARM의 점유율은 높아졌습니다.

□ 고성능 ARM프로세서의 탄생 Cortex A8

비록 PDA시장은 사라졌지만 스마트폰 시장과 네비게이션 등등 고성능AP가 사용될 곳은 가면 갈수록 늘어나게 됨에 따라 ARM사는 특유의 약한

부동소수점연산능력과 다른 회사대비 여전히 약한 정수연산능력을 보강하기 위해서 새로운 프로세서를 개발하기에 이릅니다.

그로 인해서 새롭게 개발된 아키텍쳐는 바로 ARMv7 아키텍쳐이며 이 때 부터, ARN은 기존 네이밍과 다른 새로운 네이밍으로 제품을 간단하게 알 수

있으면서 동시에 깔끔하게 라인업을 정리하기 위해서 Cortex 브랜드를 사용하여 Cortex A8프로세서 라고 명명하게 됩니다.

이 제품의 특징은,

향상된 분기예측기, 향상된 패치성능, 향상된 로드스토어 성능, 13스테이지로 늘어난 파이프라인, AMBA3 64bit 시스템 버스사용, NEON SIMD Engine

탑재가 가장 큰 특징입니다.

Cortex A8은 범용프로세서로서 보다 뛰어난 멀티미디어 성능과 부동소수점 연산을 위해서 128bit 벡터데이터를 1사이클에 처리할 수 있는

NEON SIMD Engine이 추가되어 보다 뛰어난 부동소수점 처리 능력을 보여주었으며(기존에는 부동소수점 연산에서는 평균적으로 15-20사이클이

걸였으나 Neon SIMD Engine을 사용하면 1사이클에 처리 가능)

기존 대비 길어진 파이프라인은 높은 클럭 달성과 높은 성능에 도움을 주며 개선된 L2캐쉬의 구조 또한 레이턴시를 줄여 전 세대 대비 30%이상의 성능

향상을 보여주게 됩니다. 멀티미디어 성능의 향상에 주로 집중된 개선을 통해서 ARM프로세서는 보다 독립적으로 작동할 수 있는 범위가 늘어나게

되었으며 이는 스마트폰의 고성능의 요구사항에 제대로 맞아 들어갔습니다.

다양한 스마트폰과 멀티미디어 기기에 사용되었으며 이로 인해서 스마트 모바일 시장은 ARM이 거의 독차지하게 됩니다.

그리고 이렇게 향상된 성능은 엔비디아와 같이 CPU가 필요한 다양한 회사에게 희망이 되기도 했습니다. ARM프로세서는 일반적인 범용컴퓨팅시장과

서버시장을 바라보게 됩니다.

□ ARN최초의 Out Of Order Cortex A9의 탄생

ARM은 그렇게 하여 범용컴퓨팅과 서버컴퓨팅 시장을 손에 넣기 위해서 순차적으로 아키텍쳐를 하나하나 개선해 나가기 시작합니다.

지금까지는 아티텍쳐를 수정하면서 새로운 명령어를 추가했던 것과 달리 이번의 작업은 하드웨어 부분의 수정만 가했다는 점입니다.

여전히 ARMv7 아키텍쳐 기반이었지만, 새로운 시도가 있었습니다. 바로 ARM프로세서 최초로 Out Of Order 방식으로 전환시키고 있었다는 점입니다.

기존의 ARM프로세서들은 순차적으로 명령어와 데이터를 처리하는 In Order방식의 프로세서였습니다.

그로 인해서 때에 따라서 비효율적으로 작동하였지만 PC컴퓨팅과 서버컴퓨팅에서는 시간당 성능의 효율성이 중요해지기 때문에 In Order만으로는

무리가 있었기 때문입니다.

이 때문에 13스테이지였던 파이프라인을 9-12스테이지로 줄이고 대신에 프론트앤드와 스케쥴러부분을 Out Of Order 방식으로 바꾸어 설계하였습니다.

비록 연산부분인 백엔드는 여전히 In Order였지만 프론트앤드에서 효율적으로 배열하여 보내어주면 백앤드는 그냥 보내주는 족족 연산하여 처리하면

되었기 때문입니다.

그 외에도 A8아키텍쳐에 비교해서 L2캐쉬의 캐싱구조를 개선하고 분기예측기 또한 개선하였으며 데이터 패치 또한 개선하였으며 NEON SIMD Engine

을 개선하여 기존 NEON SIMD Engine이 처리하지 못했던 벡터데이터들을 처리할 수 있도록 개선하였으며 범용 데이터 처리를 위해서 4개의 범용

레지스터가 추가가 됩니다.

이렇게 바뀐 아키텍쳐는 Cortex A9 라는 제품으로 출시하게 됩니다.

이 제품은 전세대 Cortex A8 대비 20~30%라는 높은 성능을 향상시키고 오히려 같은 공정에서는 소비전력을 줄였는데 이는 파이프라인의 스테이지를

줄이면서 그만큼 이득을 본 것으로 해석됩니다.

그리고 Cortex A8과 달리 Cortex A9는 멀티프로세서를 염두하고 설계를 하고 있어서 1-4코어까지 직접이 가능하도록 설계를 하고 있습니다.

하지만, 여전히 엔비디아나 서버업체 등등 다양한 회사에서는 여전히 ARM의 Cortex A9 프로세서는 서버 혹은 범용컴퓨팅용으로는 아직까지 성능이

부족한 편이라고 판단하는 등 ARM의 기대와 다르게 컴퓨팅 업계의 반응은 냉정했습니다.

물론, 모바일 프로세서로써는 충분히 훌륭하게 성능이 괜찮고 전력소모 당 성능 또한 뛰어나기 때문에 전력당 성능 효율로만 따지면 A8에 비교해서

월등히 좋아졌습니다. 그래서 모바일 업계에서는 상당히 환영을 하는 입장이었지만 컴퓨팅 업계가 바라는 것은 전력 효율이 아닌 쓰레드 효율을 바라고

있었다는 점입니다.

□ ARM 최초의 고성능 범용 프로세서 CortexA15의 탄생

 

그리하여 ARM은 새로운 아키텍쳐의 개발에 힘을 쏟게 됩니다.

이번에는 기존 ARM아키텍쳐의 전력 효율이 아닌 쓰레드 효율에 초점을 맞춰 개발하게 됩니다.

여전히 기반은 ARMv7명령어세트를 기반으로 하며 하드웨어만 새롭게 변화하게 되는데 이번에는 아예 연산 파이프라인을 한 개 더 추가를 하여

기존 2개의 연산파이프라인을 3개로 만들어 버렸습니다. 그리고 디코드도 2개에서 3개로 추가하였고, 그 뿐만 아니라 연산 파이프라인의 길이 또한

15스테이지 이상으로 증가시켜 버렸습니다.

AMBA4 128bit 시스템 버스를 채택하고 L1캐쉬에 에러교정기술을 추가 이외에도 프론트 엔드와 백엔드사이에 컨트롤장치를 추가하여 효율적으로 코어를

사용하도록 하였습니다. 코어에 가상화 장치도 추가하였으며 L2캐쉬에도 에러교정기술을 추가하여 범용 레지스터의 양을 늘리고 구조를 개선하였으며

전세대인 Cortex A9프로세서처럼 반쪽짜리 Out Of Order가 아닌 ARM프로세서로써는 최초로 완벽한 Out Of Order만 사용하였지만 이번 제품에서는 모든

부분을 Out Of Order로 만든 것입니다.

그리고 공정 또한 28nm HP공정으로 전환하여 최대 2.5GHz까지 작동하도록 설계하였고 이렇게 하여 A9아키텍쳐 대비 40%의 성능 향상을 이루게 됩니다.

이 제품을 Cortex A15 라고 부르게 되었으며 코드네임은 이글이라고 부릅니다.

이 프로세서는 일반 범용 프로세서와 상당히 유사한 구조를 가지고 있으며 심지어 일반 X86범용 프로세서에 근접하는 성능을 가지고 있습니다.

최대 32개의 코어를 집적할 수 있도록 설계가 되었으며 비록 다른 ARM프로세서에 비교해서 전력효율은 높은 편은 아니었지만 쓰레드 효율을 급격하게

높여 범용컴퓨팅이나 벙렬컴퓨팅, 서버에 적합하게 설계가 되어있습니다.

이 덕분에 엔비디아에서는 헤테로지니어스연산을 위해서 ARM Cortex A15아키텍쳐를 개량하여 맥스웰GPU부터 사용하기로 결정했으며 많은 회사들이

앞으로 Cortex A15아키텍처를 사용한 Windows7 기반 제품 혹은 Cortex A15아키텍처를 사용한 서버 제품들을 많이 출시할 것으로 기대되고 있습니다.

지금까지 과거의 ARM프로세서의 발전 방향과 기존 아키텍쳐의 분석 그리고 앞으로의 발전방향까지 바라보았습니다.

현재 ARM프로세서의 발전 방향을 보면 확실히 과거처럼 다시 한번 더 x86기반 범용 프로세서와의 2차전이 이루어질 것이라고 보여 지며 심지어 최근에

MS가 Window7은 x86과 ARM 둘 다 호환되도록 제작된 만큼 2차전은 피할 수 없을 것으로 보여집니다.

범용 프로세서 2차전에서는 ARM이 승리를 거머쥐어 PC가 ARM프로세서로 대체가 될 지 아니면 여전히 x86 범용프로세서가 유지될지는 앞으로 몇 년

혹은 몇 십년 동안 두고 봐야 될 것입니다.


Articles

8 9 10 11 12 13 14 15 16 17