명령어 집합 | |
CISC | AMD64 ● x86 ● · M68K · 68xx · Z80 · 8080 · MOS 65xx · VAX |
RISC |
AArch64
ARM ·
RISC-V
● ·
MIPS
● ·
DEC Alpha ·
POWER
PowerPC ·
CELL-BE LoongArch · OpenRISC · PA-RISC · SPARC · Blackfin · SuperH · AVR32 AVR |
VLIW EPIC |
E2K · IA-64 · Crusoe |
PlayStation 3에 탑재된 CELL-Broadband Engine |
CELL-Broadband Engine |
[clearfix]
1. 개요
소니와 IBM, 도시바의 합작으로 개발된 프로세서. 2001년 3월, 텍사스에 STI[1] 디자인 센터가 만들어졌고, IBM의 오스틴 캠퍼스를 중심으로 다양한 거점 시설에서 5년 넘게 개발되었으며, 인원이 최대에 달했을 때는 400명 가량이 모였다고 한다. 소니에서는 약 4억 달러를 투자한 것으로 알려졌다.
수 많은 회의 끝에 결정된 차세대 프로세서의 기본 사상은 다음과 같았다.
- 단순히 게임기를 위한 프로세서가 아닐 것.
- 하나의 설계에서 파생된 다양한 제품군을 여러 기기에 탑재할 수 있을 것.
- 게임 및 네트워크 연산을 실시간으로 처리할 수 있을 것.
- 충분한 이점이 있다면 새로운 아키텍처도 수용할 것.
당초 IBM은 POWER4 아키텍처 여러 개를 집적한 단순하고 개발하기 쉬운 구조를 제안했으나, 쿠타라기는 단순히 우수한 정도의 성능 아닌 압도적인 성능을 원했기에 이를 거절하고 다른 제안의 검토를 요청한다. 그리하여 연산 특화 코어와 범용 코어를 뒤섞은 ' 헤테로지니어스 코어'로 만들게 된다.
PlayStation은 게임기였지만 쿠타라기는 PS3를 단순히 게임기만의 역할을 넘어서 '가정용 슈퍼 컴퓨터'로 만들고 싶어했다. 그 중추가 될 CELL은 완전히 새로운 프로세서여야 하며, 여러 기기에 탑재되어 장차 그리드 컴퓨팅을 가능케 할 'CELL WORLD'를 구상하고 있었다.
2. 상세
PowerPC G5 기반으로 한 1개의 PPE(PowerPC Processor Elements)를, 연산 및 벡터 프로세싱을 담당하는 8개의 SPE(Synergistic Processor Elements)를 내장한 비대칭형 프로세서로서 미디어 처리에 중점을 두었다.PPE는 코어당 2-way SMT가 가능하여 PPE만으로 최대 2개의 스레드를 동시에 동작할 수 있다. 반면, SPE는 2-way SMT를 지원하지 않는 대신 구조를 복잡하게 만드는 요소를 전부 걷어낸 작고 단순한 프로세서로 메모리와 버스 등 입출력을 담당하는 MFC(Memory Flow Controller)와 연산을 담당하는 독자적인 명령어를 사용하는 128비트 폭의 SIMD 구성의 SPU(Synergistic Processing Unit), 그리고 256KiB의 eSRAM 스크래치패드 메모리로 구성되어 있는데, SPE의 SPU는 시스템 메모리에 직접 접근하지 못하고 SPE의 MFC를 거쳐 DMA 작업으로 시스템 주소 영역으로 전달했다. 각각의 SPE들은 분기 예측, 비순차적 실행 등으로 성능을 증폭시킬 필요가 있었다. 계획 당시에는 같은 클럭의 기성 CPU와 비슷한 수준의 성능을 예상하고 만들었는데 실측해보니 그 수 배에 달하는 효과가 발생하여 예상을 뛰어넘었다고 광고했으나 현실은 그렇지 못했다.
이론상의 최대 성능은 3.2 GHz 클럭에서 SPE 각 유닛 1개당 25.6 GFLOPS의 단정밀도 부동 소수점(FP32) 연산을 할 수 있다. 230.4 GFLOPS도 가능하다고 IBM이 주장했지만[2], PS3에 실제로 사용된 CELL이 달성해낸 최대 성능은 약 150 GFLOPS였다.
3. 기기
대표적인 기기는 PlayStation 3이다. 수율을 감안해 SPE를 하나를 쓰지 못하게 만들고(disabled), 나머지 7개의 SPE 중 1개는 보안을 위한 운영 체제 관리, 1개는 오디오용으로 썼으므로 그래픽용으로는 5개의 SPE를 쓸 수 있었다.
아케이드 게임기인 SYSTEM 357의 기판으로도 사용되었다.
이 CPU는 구조는 복잡하지만 출시 당시 기준으로 상당한 성능을 냈기에, PC나 슈퍼컴퓨터 클러스터에 PCIe로 연결되는 보조프로세서를 슈퍼 컴퓨터 용으로 사용되기도 하였다. 1페타플롭스의 성능을 가장 처음으로 돌파한 슈퍼 컴퓨터 로드러너(Road runner)에 CELL과 옵테론을 조합해서 사용했다. 다만 이후 GPGPU에 사용되는 GPU의 성능이 빠르게 상승하며 사용률이 줄어들었다.
이 칩을 B2B로 구매한 영상 업계에서는 외장형 가속기에 장착해 잘 써먹었다. 실제로 PS3를 이용한 HD소스 리핑이나 DVD의 업스캔 컨버팅은 매우 간단한 데다가 빠르기로 유명했다. 병렬로 연결해 게임 서버로 사용하거나, 개발의 한 축을 담당한 도시바에서는 멀티미디어 플레이어나 TV에 넣어서 영상 처리를 맡기도 했고, 자사의 모바일 워크스테이션에 CELL 기반의 영상처리용 보조 연산카드를 넣어 판매하기도 하였다. 이 방법이 제법 효율적이었는지 미합중국 공군에서 PS3을 1500대 넘게 사서 병렬로 연결하여 연구용 슈퍼 컴퓨터로 사용했었다. [3]
4. 단점과 몰락
CELL의 최대 단점은 게임기에 탑재된 프로세서이면서 정작 게임에 필요한 성능이 그다지 좋지 못했다는 것이다.메인 CPU 코어인 PPE부터가 문제가 큰데, (SPE 연산 능력을 높이기 위한) 3.2Ghz라는 높은 클럭을 달성하기 위해 실제 베이스인 PowerPC G5 대비 IPC를 엄청나게 낮췄는데 대표적으로 연산 유닛 수가 줄어들고, 비순차적 실행을 제거하였다. Geekbench 개발자가 PS3에 리눅스를 설치하고 벤치마크를 구동해 본 결과 SPE를 아예 사용하지 않을 경우 성능이 절반 클럭인 PowerPC G5 1.6Ghz보다 소폭 아래로 나왔을 정도. 같은 구조라 똑같은 문제점을 가지고 있는[4] Xbox 360의 CPU는 그나마 코어가 3개라도 되지만, 이쪽은 SPE를 사용하지 않으면 그저 그런 싱글 코어 CPU밖에 남지 않는다. 결국 성능을 최대로 발휘하려면 SPE에 작업을 분배해야 하는데 분배하는 것도 어려울 뿐더러 어떻게 하더라도 GPU에 미치진 못했다.
CELL로 그래픽마저 처리하겠다는 당초 목표를 변경하고 NVIDIA의 RSX를 탑재한 것도 바로 이런 이유였다. [5][6]
독특한 구조로 인해서 실제로 다루어야 하는 개발자들 입장에서는 복잡하고 그만큼 실효 성능도 떨어졌다. PPE의 작업을 효율적으로 SPE에 배분하지 못하면 한 세대 전의 CPU와 다름없는 성능이 되어버렸다. 이 탓에 처음에는 제대로 활용하기 어려운 데다가 개발 도구도 불친절한 관계로, 일반 개발자들은 Windows 환경에서도 결과를 확인할 수 있는 Xbox 360을 선호했다. 심지어 존 카맥조차 '개발이 너무 난해하다'고 비판했고, 밸브의 게이브 뉴웰도 PS3를 시간 낭비라고 발언했다. [7] 그나마 GDC 2007을 기점으로 SCEA에서 PS Edge 엔진, GDC 2008 때엔 SCEE에서 PhyreEngine이 공개, GDC 2009 때엔 PhyreEngine에서 Deferred rendering 지원이 추가되고, SCE 월드와이드 스튜디오의 개발 노하우들이 공유되면서 퍼스트 파티 개발사들의 입장은 나아졌다.
약간의 버그 수정과 공정 미세화 개량만 빼면 사실상 1세대로 단종된 실패작이였다. 우수한 설계였는데 게임기라는 맞지 않은 기기에 탑재해서 실패했다고 옹호하는 의견도 있지만, 파생 제품들의 인기도 출시 당시에만 잠시 반짝한 것으로 연산가속은 GPGPU에 CPU 기능도 일반 CPU에 밀리면서 후속 제품을 남기지 못하고 모두 단종되었다. 이는 과감한 시도라고 볼 수는 있어도 "제품 자체가 그리 훌륭하지 못했다"라는 반증이기도 하다. 바로 후속기인 PlayStation 4에 CELL이 탑재되지 않은 것만 보아도 이견의 여지가 없다.
잘 되었다면 프로세서로 천하를 차지하겠다는 쿠타라기 켄의 꿈이 이루어 질 수도 있었겠지만 이미 범용 프로세서들의 성능이 충분하다는 것이 그리고 이미 대세가 된 GPGPU의 성능이 뛰어나다는게 증명되고 있었기 때문에 허사였다.[8]
5. 실패의 여파
PlayStation 3의 적자와 CELL의 민간 부문 판매 부진 때문에 2006년 11월 30일에 쿠타라기 켄 SCE 사장은 회장으로 승진했으나, 업계는 문책성 좌천 인사 이동으로 판단하고 있다. 2007년 4월 26일에 쿠타라기 켄이 사표를 제출했고, 그 해 6월 28일에 소니를 떠나게 됐다.2007년 10월 18일, CELL의 제조 설비를 도시바에 900억엔에 매각할 계획이라고 밝혔으며, 도시바에서 60%를 출자하고 소니에서 40%를 출자한 새로운 조인트 벤처 기업, NSM(Nagasaki Semiconductor Manufacturing Corporation)을 설립해 CELL을 생산하기로 합의했다. 또한 2007년 11월 7일, 소니에서는 IBM, 도시바와의 CELL의 32nm 반도체 공정 개발에서 포기하기로 결정했다고 밝혔다. 하지만 2010년 12월 24일, 소니에서는 도시바로부터 조인트 벤처 기업, NSM의 도시바 지분 60%를 500억엔에 다시 사들이는 것이 밝혀졌다. 한편 IBM에서는 꾸준히 CELL을 개량해 90 nm, 65 nm에 이어 45 nm까지 공정 개선을 완료하였다. 그리고 2016년 PlayStation 3의 생산이 종료됐고, IBM은 개인용/휴대용 CPU 시장을 포기했다. POWER9 마이크로아키텍처의 CPU로 만든 서버 개발에 몰두하고 PowerPC조차 명맥이 끊긴 현재는 한 시대를 스쳐간 설계로 기억되고 있다.
6. 외부 링크
Cell Broadband Engine Architecture and its first implementation (IBM, 아카이브)
[1]
Sony, Toshiba, IBM
[2]
3.2(GHz)×8(byte/cycle)×9(VMX with PPE, 8 SPE)=203.4 GFLOPS
[3]
소니에서 해킹과 복사를 막기 위해 3.21 패치를 감행하면서 OS 설치기능을 삭제했기 때문에 리눅스를 설치해 이용하던 미 공군과 일반 사용자들은 낭패를 보기도 했다. 이러한 이슈로 소송이 걸리자 소니에서 돈을 일부 배상하기도 했다. 미 공군측에서는 PSN 업데이트를 아예 하지 않는 방법으로 사용했지만 A/S를 보내면 최신 업데이트를 해서 돌려줘서 곤란했다고 한다. 해당 슈퍼 컴퓨터는 퇴역했고 이를 구성했던 콘솔이 시중에 중고로 거래되기도 했다.
[4]
고클럭을 달성하기 위해 파이프라인을 깊게 만들었는데 비순차적 실행도 안되기 때문에 분기 예측 실패에 매우 취약하다.
Reddit의 어떤 개발자는 이 세대의 게임 프로그래머들에게 가장 골치아팠던 주제가 '어떻게 하면
분기를 최대한 덜 쓰면서 게임을 개발할 수 있을까' 였다고 말했을 정도.
[5]
소니에서
IBM에 크게 낚였다고 할만하다. 2003년 2월에
Xbox 360용 CPU를
마이크로소프트에서 의뢰받은 IBM이, CELL의 개발 노하우를 참고하여 CPU를
마이크로소프트에 만들어 줬다는 비화를 봤을 때에도
소니에서는 IBM에 제대로
낚인 셈이다. 다만 IBM에서 CELL로 얻어진 교훈을 다른 제품에 적용할 가능성을 사전에 차단하지 못한
소니의 책임도 있다.
[6]
다만 NVIDIA의 RSX도 Xbox 360에 탑재된
ATI의 GPU Xenos에 비해 한 세대 뒤쳐진 하드웨어였기 때문에 어떻게 해서든 GPU의 일을 CELL SPE에 분담해야 했다. 보통 대부분의 AAA 게임에서는 SPE는 주로 버텍스 프로세싱이나 포스트 프로세싱 등에 배분된다.
[7]
난해한 개발 환경을 초래한 PS3의 하드웨어 구조를 생각하면 사실상 하드웨어에 대한 비판이나 다름없다. 어쨌든 밸브의 역작인
포탈 2와 오렌지박스는 PS3로 출시됐고, 스팀과의 기기 연동도 잠깐이나마 지원됐다.
[8]
멀티코어 프로세서라는 트렌드에 영향을 주지 않았을까 생각할 수 있지만, CELL의 '헤테로지니어스 코어' 는 GPU에 가까운 설계였다. 오히려 SPE 대신 PPE를 다수 탑재해 3코어 6스레드로 작동했던
Xbox 360 CPU Xenon의 토대가 된 '호모지니어스 코어' 방식이 그에 더 가깝다.