[강좌] 전통과 혁신 'IBM 파워 아키텍처'
현재 컴퓨터의 연산 처리에 사용하는 ‘중앙 처리장치’를 구분하는 기준 중 하나로, 프로세서 내부 명령어의 형태에 따라 CISC, RISC로 나누는 때가 있다. 수십 년 전(?) 비교적 분명한 개성을 가진 프로세서들이 한창 빠른 발전 속도를 보일 때만 해도 이 두 진영 사이의 경쟁이 치열했지만 지금에 와서 이 두 진영을 대표하던 프로세서들의 후세들은 서로 비슷한 모습을 가지게 되었다.
이 때, CISC 진영을 대표하던 프로세서는 인텔의 x86 계열 프로세서였다. 이 프로세서는 초기 86개의, 비교적 복잡한 가변 길이 명령어 셋을 가지고 있었으며, 이 명령어에 대한 호환성은 아직도 유효하게 적용되고 있다. 물론 인텔 또한 6세대 프로세서 이후 이 명령어를 그대로 쓰지 않고 더 작은 형태로 바꾸어 사용하기 때문에, 더 이상 x86 프로세서는 CISC라 하기에 무리가 있다.
RISC 진영에는 전통적으로 쟁쟁한 플레이어들이 많이 있어 왔다. 대표적인 플레이어로는 썬(SUN)의 스팍(SPARC), 인텔(Intel)의 아이테니엄(Itanium), 그리고 IBM의 파워(POWER) 계열 프로세서가 있다. 특히 IBM의 파워 프로세서는 오랜 역사와 영광의 시기를 거쳐 아직도 그 명맥이 이어지고 있는, RISC 프로세서의 직계 혈통 격인 프로세서다. 현재에도 파워 프로세서는 꾸준히 개발이 이어지고 있으며, IBM의 고성능 서버의 기반이 되고 있다.
IBM 내부에서도, 전체 서버 시장에서도 IBM의 파워 계열 시스템들이 가지는 의미는 특별하다. 단순히 현재 IBM 서버 라인업에서 최고의 성능과 신뢰성이 보장되는 ‘하이엔드 라인업’ 이라는 것 이상으로, 메인프레임이 대세를 이루던 시절부터 그 명맥이 이어져 오는 IBM의 유닉스 기반 서버와 메인프레임이 주는 ‘검증된 성능과 신뢰성’ 이란 측면은 다른 브랜드가 범접하기 힘든 부분이 분명히 있다.
■ 꾸준히 진화한 ‘파워 아키텍처’
파워 아키텍처의 역사는 지난 1974년 IBM이 시작했던 801 프로젝트까지 거슬러 올라가게 된다. 이 때 확립된 RISC 라는 개념은 아직까지도 마이크로프로세서의 설계에 큰 영향을 주고 있다. 1990년 처음 ‘파워 아키텍처’ 의 명칭을 사용한 프로세서가 등장하였으며, 이후 파워 아키텍처의 파생 버전 제품들은 여러 방면에서 다양한 활용이 이루졌다.
이 파워 아키텍처의 활용에 있어 IBM 브랜드의 서버와 워크스테이션 이외에 가장 큰 자취를 남긴 것은 모토로라(Motorola), 애플(Apple)과의 연합을 통해 만들어 낸 PowerPC 다. 1990년대 이후 2000년대 중반까지 애플의 시스템들은 IBM 계열의 PowerPC 아키텍처 기반 프로세서를 사용해 왔던 바 있다. 물론 현재 애플은 이 프로세서를 사용한 시스템을 생산하지 않고 있다.
또한 파워 아키텍처를 특정 용도에 특화해 만들어진 것이 셀(Cell: Cell Broadband Engine Architecture) 이다. 각종 영상 편집용 장비나 IBM System z 메인프레임의 애드온 옵션 등으로 다양하게 활용할 수 있는 이 Cell은, 일반 사용자들에는 소니(Sony)의 차세대 게임 콘솔 플레이스테이션 3(Playstation 3)의 중앙 처리 장치로도 잘 알려져 있다.
▲ 파워 프로세서도 이제 7세대에 다다랐다.
최근 파워 프로세서의 세대 교체 주기는 약 3년 단위로 계속 이어지고 있다. 물론 이 이전에는 파워PC 등 관련 아키텍처와의 조율 부분이 있었기 때문에 이를 감안해 아키텍처의 계보가 상당히 복잡해지는 면이 있었지만, 이런 면이 정리되고 파워 프로세서의 포지셔닝도 비교적 명확해지면서 발전상 또한 분명하게 확인할 수 있게 되고 있다.
파워 프로세서의 긴 역사 중에서, 일단 2000년 이후의 파워 프로세서를 짚어 보면 2001년 소개된 POWER4 프로세서부터 시작할 수 있다. 이 프로세서는 180nm 공정으로 제조되었으며, 하나의 칩에 두 개의 코어를 멀티 칩 패키징 형태로 담고, 서버 당 최대 16개의 프로세서를 장착할 수 있어 서버당 제공 가능한 처리 쓰레드 수는 32개였다.
POWER5 프로세서는 2004년 정식으로 소개되었다. 130nm 공정을 사용해 등장했으며 기본적으로패키지적인 면에서는 듀얼 코어 프로세서지만 SMT(Simultaneous Multithreading) 기술을 사용해 처리 가능한 쓰레드 수가 두 배로 늘었다. 덕분에 코어당 두 개의 쓰레드, 칩당 2개의 코어에 서버당 최대 32개 소켓을 제공할 수 있어 박스당 제공한 최대 쓰레드는 128개에 이른다.
2007년 발표된 POWER6 프로세서는 상당히 재미있는 프로세서다. 65nm 공정을 사용해 등장한 이 프로세서는 출시된 프로세서의 정규 클럭이라는 측면에서 세계 최고 수준을 자랑한다. 이 프로세서를 사용한 IBM POWER595 서버는 이 프로세서를 5GHz로 동작시키는 나름대로의 ‘기록’을 세운 바 있다. 듀얼 코어 프로세서에 SMT 기술을 사용하고, 서버당 최대 32소켓을 제공해 64코어 128쓰레드 환경을 제공한다.
또한 재미있는 점은, 이 프로세서의 기본 명령어 처리 방법은 ‘순차 처리 방식’ 이라는 것이다. 일반적으로 순차적 명령어 실행 방식을 사용할 경우 프로세서 구조를 단순화하고 동작 속도를 끌어올리는 데 유리하지만, 소프트웨어의 최적화 여부에 따른 성능 편차가 크다는 단점이 있다. IBM은 POWER6에서 순차 처리 방식이 가지는 약점을 높은 클럭으로 보완해 고객에게 제공했다.
▲ POWER7과 경쟁 관계에 있는 프로세서들과의 비교
POWER7은 현재 파워 아키텍처를 사용한 프로세서의 가장 최신 제품이며, 최근 프로세서들의 추세인 멀티 코어, 멀티 쓰레드를 위한 디자인을 가지고 있다. 이 프로세서는 45nm 공정을 통해 만들어지며, 진화된 SMT 기술을 사용해 프로세서당 최대 32쓰레드, 단일 시스템에서 최대 1024 쓰레드를 지원할 수 있게 설계되었다.
현재 시장에서 POWER7의 경쟁관계에 있는 프로세서 제품군은 인텔의 아이테니엄(Itanium) 제품군과, 자사의 전 세대 제품인 POWER6를 꼽을 수 있으며, POWER7은 이들과 비교할 때 차별화되는 기술적 특징들을 가지고 있다. 특히, 전 세대인 POWER6와 비교해서는 코어와 쓰레드 수, L3 캐시의 위치에서 차이를 볼 수 있으며, 아이테니엄과 비교할 때는 높은 클럭이 특징이다.
또한 재미있는 점으로, 프로세서에 집적된 트랜지스터의 수가 있다. POWER6와 7을 비교할 때, 코어 수가 4배 늘어나고, 명령어 처리 체계가 비순차적 방식으로 바뀌었으며, 32MB의 L3 캐시가 내장되었음에도 불구하고 트랜지스터 수의 증가는 약 1.5배 가량 증가하는 수준에 그친 것을 확인할 수 있다. 이는 POWER7을 구성하는 각 유닛들이 효율적으로 설계되어 있음을 보여 주는 단편적인 예가 된다.
아이테니엄 9300과 비교하면, 아이테니엄 쪽이 더 높은 트랜지스터 집적 수를 가지고 있으며, 공정과 클럭의 차이 또한 분명함을 확인할 수 있다. 또한 코어 수와 L3 캐시 측면에서는 트랜지스터 집적 수가 적은 POWER7쪽이 오히려 더 많은 코어와 캐시 용량을 제공한다. 물론 이 두 프로세서는 완전히 다른 프로세서와 시스템 아키텍처를 가지고 있기 때문에 직접적으로 비교하기는 무리가 있다는 점을 고려할 필요가 있다.
■ 고성능, 고신뢰성 구현을 위한 기술들
POWER7 프로세서는 전 세대와 비교해 기본 구조를 포함해 많은 부분이 바뀌었다. 예전 세대들에 사용되던 기술들은 더 강화되었으며, 본격적인 멀티 코어 프로세서의 구조를 갖추어 병렬 연산 환경에서의 시스템 전체 성능도 크게 끌어올렸다. 또한 전 세대의 프로세서가 ‘성능 집중’ 의 인상이었던 데 반해 이번 세대는 성능 뿐 아니라 ‘효율’이라는 측면까지도 크게 고려하고 있다.
IBM은 POWER7 프로세서와 시스템을 ‘스마터 시스템(Smarter System)’ 이라 정의하고 있다. 이는 다양한 환경에서 최적의 성능과 효율을 내기 위한 기능들이 중심이 되며, 이를 통해 워크로드에 맞춘 유연한 구성과 최적화된 성능, 최소화된 다운타임과 함께 에너지 절감과 자동화된 관리까지 제공한다는 것이다.
또한 파워 프로세서에 채택된 기술들은 이 프로세서를 사용한 서버 아키텍처와도 밀접한 관계가 있다. 이는 프로세서의 설계 단계에서부터 이 프로세서를 사용한 서버 제품군의 아키텍처를 모두 고려하고 있기 때문이다. 일반적으로 파워 프로세서와 이를 사용한 서버 제품군은 동시에 선보이며, 서버 제품군의 디자인은 프로세서의 성능 뿐 아니라 잠재적인 가능성까지 모두 끌어낼 수 있도록 설계된다.
▲ POWER7의 가장 두드러지는 점은 ‘스케일’
POWER7 프로세서에서 돋보이는 점 중 하나는 쓰레드 수다. 기존의 POWER6가 최대 듀얼 코어 수준의 디자인이었던 데 반해, POWER7은 프로세서 당 8코어까지 탑재 가능한, 본격적인 멀티 코어 디자인을 사용하고 있기 때문이다. 여기에 SMT 기술도 한 단계 진화해서 코어 당 4쓰레드의 처리가 가능해져, 시스템 수준에서의 총 처리량은 전 세대에 비해 크게 증가했다.
전 세대 프로세서와 비교했을 때 또 다른 차이로는 ‘클럭’ 이 있다. POWER6가 이미 동작 속도 면에서 정점을 찍은 데에 비교하면 POWER7의 클럭은 다소 내려와 있다. 예전 POWER6가 최대 5GHz 클럭을 가지고 있었던 데 반해 POWER7은 4코어에서 4.1GHz, 8코어에서는 3.8GHz의 클럭을 보여 주고 있는 것이다.
이는 프로세서가 멀티 코어화 되면서 생기는 발열과 전력 소비 문제도 있지만, 최근 중시되는 에너지 효율을 만족시키기 위한 문제, 내부적으로는 연산 처리 방식이 다시 비순차적 실행 방식으로 바뀐 것까지도 관계가 있다. 덕분에 POWER7은 클럭 차이를 상쇄할 정도의 클럭당 성능 효율 향상과 함께 멀티 쓰레드 환경을 활용해 코어 성능은 전 세대 대비 20% 이상, 전체 성능은 전 세대 대비 수 배의 향상이 가능해졌다.
▲ 새로운 SMT 기술은 코어의 효율을 최대한 끌어낸다.
POWER7에서 채택된 새로운 SMT 기술은 지금까지 코어당 2쓰레드 처리를 넘어선, 코어당 4쓰레드까지의 동시 처리를 구현하고 있다. 이를 통해 POWER7 프로세서는 프로세서 당 최대 32쓰레드의 동시 처리가 가능하며, 시스템 수준에서는 최대 1024 쓰레드까지의 처리를 지원해 프로세서가 가진 처리 역량을 최대한 끌어내고 있다.
이번 POWER7에 채택되는 SMT 기술은 IBM에서 3세대에 해당하는 기술이다. 이 기술의 기본 개념은 슈퍼스칼라 아키텍처를 기반으로 하는 프로세서에서 연산 처리 도중 사용되지 않는 유닛을 최소화하는 것이며, 이 기술을 통해 트랜지스터 집적수의 증가를 최소화하면서 프로세서가 가진 연산 유닛의 효율을 끌어올릴 수 있어 실질적인 성능 향상을 기대할 수 있게 된다.
이런 개념은 위의 슬라이드에서도 잘 확인할 수 있다. 사용되지 않는 블록이 적을수록 프로세서의 사용 효율은 높다고 볼 수 있으며, 하드웨어 기반 멀티쓰레드 기술에 비해서도 SMT 기술은 프로세서를 하드웨어적으로 나누지 않고 전체적으로 사용할 수 있어 활용도가 높다는 것을 볼 수 있다. 3세대 SMT 기술은 4개의 쓰레드를 분산 배치해 유닛 활용도를 극대화하고, 최종 연산 성능을 높일 수 있을 것으로 기대된다.
▲ L3 캐시에는 eDRAM 기술을 적용해 성능과 효율의 균형을 잡았다.
POWER7은 프로세서 안에 32MB의 L3 캐시를 내장하고 있다. 용량 자체는 전 세대와 비교해서 별반 다를 점이 없지만, 캐시가 프로세서 외부에서 내부로 들어갔다는 점과 함께 독특한 구현 방법을 택하고 있다는 점이 눈길을 끈다. IBM은 POWER7 프로세서의 L3 캐시에 일반적으로 사용하는 SRAM이 아니라 eDRAM 기술을 사용해 성능과 공간 효율 및 에너지 효율성을 함께 얻을 수 있었다.
eDRAM의 가장 큰 특징은 구현에 있어서의 ‘공간 효율’ 이다. 32MB의 고용량 L3 캐시를 프로세서 내부에 구현하는 데 있어서 가장 큰 걸림돌은 필요한 ‘공간’ 인데, eDRAM은 일반적인 6T SRAM으로 메모리 셀을 구성하는데 비해 1/3 정도의 공간만 차지하기 때문이다. 이 덕분에 같은 용량의 캐시를 탑재해도 eDRAM으로 구현할 경우 전체 실리콘 크기를 줄일 수 있으며, 같은 공간을 차지할 경우 더 큰 캐시를 탑재할 수 있다는 장점을 가진다.
L3 캐시가 프로세서에 통합됨으로 인해 얻을 수 있는 성능 향상도 만만치 않다. 먼저 외부 L3 캐시 대비 L3 캐시로의 접근에 있어 지연 시간이 1/6 수준으로 감소했으며, 칩 간 L3 대역폭 또한 두 배 확대되었다. 그리고 예전에는 칩 외부의 캐시에 접근하기 위해 필요했던 별도의 연결 수단을 사용하지 않아 높은 효율을 얻을 수 있다는 장점도 가지고 있다.
또한 eDRAM의 특징이라면 적은 공간과 트랜지스터를 사용해 구현되는 덕분에 얻을 수 있는 ‘에너지 효율성’ 이 있다. POWER7에 사용된 eDRAM은 SRAM 대비 대기 전원 소비가 1/5 수준이다. 또한 SRAM 대비 소프트 에러 비율이 1/250 수준까지 대폭 감소해, 프로세서 차원에서 생길 수 있는 에러의 가능성을 최소화해 가용성 수준을 끌어올린다.
■ 믿을 수 있는 더 뛰어난 성능 구현
▲ 워크로드 상황에 따라 구성을 바꾸는 ‘터보 코어 모드’
이 프로세서가 가지는 재미있는 특징으로는 ‘터보코어(TurboCore)’ 모드가 있다. 현재 이 기술은 POWER780 시스템에서 사용할 수 있으며, 기본적으로 8코어 프로세서인 POWER7 프로세서를 워크로드의 종류에 따라 ‘맥스코어(MaxCore)’ 모드와 선택해서 사용할 수 있게 해 준다. 이 기술은 POWER7 시스템이 지향하는 ‘스마터 시스템’ 에서 중요한 위치에 있다.
터보코어 기술의 목적은 ‘개별 코어 성능의 극대화’ 다. 그리고 이를 위해 프로세서에 있는 8개의 코어 중 4개의 코어에 프로세서가 가진 모든 자원을 집중하는 형태로 동작하게 된다. 이 때 프로세서의 동작 클럭 향상과 함께 코어 당 할당 가능한 L3 캐시 메모리의 증가, 메모리 인터페이스에서의 여유분 증가 등이 이루어져 실제 성능 향상은 최대 22% 수준까지 가능하며, 이 때 전 세대 POWER6에 비해서는 코어당 약 1.5배 가량 성능 개선을 기대할 수 있다.
이 기술은 주로 멀티 코어와 멀티 쓰레드 환경에 제대로 대응하지 않거나 효율이 낮은 워크로드를 구동할 때 실질적인 성능 향상을 기대할 수 있다. 다른 활용법으로는 코어 당 비용을 지불하는 솔루션을 구동할 경우, 이 기능을 활용해 비용 부담과 성능의 절충을 기대할 수 있다. 또한 이 기능은 시스템 설정만으로 선택이 가능해, 다양한 환경에서 시스템의 성능을 적극적으로 최적화할 수 있도록 해 준다. 고성능, 고신뢰성 측면에서 가치를 더해준다고 할 수 있다.
이 기술은 인텔의 최신 프로세서들이 사용하는 ‘터보 부스트’ 와 비슷하게 보일 수도 있지만, 완전히 다른 성격을 가진 기술이다. 두 기술 모두 제한적으로 정규 클럭 이상의 동작 속도로 프로세서를 구동하는 형태지만, 리소스 집중의 ‘범위’ 가 다르다. ‘터보 코어’ 는 클럭과 함께 코어 수가 바뀌고, 각종 캐시와 메모리 인터페이스 등을 모두 적은 수의 코어에 집중시켜, 아예 프로세서의 구성과 성격을 바꾸어버리는 수준이다.
반면 ‘터보 부스트’ 는 ‘터보 코어’ 와 달리 시스템의 상황에 따라 제한적으로 클럭만을 변화시키는 기술이다. 이와 유사한 기술로는 파워 아키텍처에서 사용하고 있는 또 다른 기술인 ‘오버클록킹(Overclocking)’이 있는데, 이 기술은 시스템의 안정성을 보장할 수 있는 범위 안에서 제한적으로 동작 속도를 더 끌어 올려 성능 향상을 기대할 수 있게 해 준다.
▲ 전력 관리 기술은 더욱 더 적극적으로 변해 간다.
일반적인 서버 시스템에서 가장 에너지를 집중적으로 사용하는 부분이 프로세서고, 프로세서에서의 에너지 효율 최적화는 시스템 전체의 에너지 최적화와 아주 밀접한 관계를 가지고 있다. 덕분에 최근의 프로세서들은 프로세서의 워크로드에 따라 자동적으로 프로세서의 속도 조절은 물론, 사용되지 않는 요소들에는 전원 공급을 중단하는 등 적극적인 에너지 효율화에 나서고 있다.
POWER7에서도 프로세서에 장착된 TPMD(Thermal Power Management Device) 를 통해 실시간으로 전력 사용량과 온도를 모니터링하고, 이에 따라 시스템의 성능과 전력 소비량의 조절을 통해 시스템의 성능과 신뢰성, 에너지 효율의 균형을 맞춘다. 또한 이 TPMD는 프로세서 뿐만 아니라 메모리에까지 적용 가능해, 전반적인 플랫폼을 관리할 수 있는 기능을 제공한다.
TPMD는 기존의 전력 관리 기술에 비해 더 적극적인 부분을 가지고 있으며, 시스템의 동작 속도를 고정시키는 것이 아니라 상황에 따른 최적의 환경을 맞추어 준다. 시스템의 활용도가 낮을 경우나 시스템과 프로세서의 온도가 설정된 임계점을 초과하려 할 때 TPMD는 프로세서의 전압과 주파수, 메모리 부분의 동작을 조절해 온도를 낮추는 등으로 시스템의 환경을 조절한다.
또한 이 기술의 좀 더 적극적인 부분이라면 바로 제한적인 ‘오버클록킹(OverClocking)’ 을 허용한다는 것이다. POWER7의 TPMD는 시스템의 온도가 운영 가능한 최저치보다 낮아지는 등 열 관리 부분에서 여유가 있을 경우에는 프로세서에 제한적인 오버클록킹을 허용해, 더 높은 성능을 구현할 수 있게 해 준다.
'PC정보' 카테고리의 다른 글
AMD 8코어 불도저 데모시연 (0) | 2010.11.23 |
---|---|
css 최적화 기법 (0) | 2010.11.22 |
CISC와 RISC 비교 (0) | 2010.11.19 |