CELL-Broadband Engine

 


[image]
플레이스테이션 3에 탑재된 CELL-Broadband Engine
1. 개요
2. 상세
3. RSX
4. 문제점
5. 현재
6. 외부 링크


1. 개요



소니IBM, 도시바의 합작으로 만들어진 CPU. 소니IBM, 도시바에서 새로운 프로세서 개발을 위해 제휴하기로 결정하면서 개발이 시작됐다. 2001년 3월, 텍사스에 STI[1] 디자인 센터가 만들어졌고, IBM의 오스틴 캠퍼스가 거점이지만 피크시에는 400명 정도가 모이는 프로젝트였기 때문에 여러 거점에서 그 뒤 약 5년 넘게 개발됐다고 한다. 이 동안 소니에서는 약 4억 달러 정도 투자한 것이 알려졌다.
수많은 회의 끝에 결정된 차세대 프로세서의 기본 사상으로는
  • 단순한 게임기용 엔진이 아님
  • 여러 기기에 장착하여 사용되려면 스케일러블 하지 않으면 안됨
  • 게임이나 네트워크에서는 지금까지의 프로세서처럼 베스트 에포트가 아닌 리얼타임 처리가 기본이 됨
  • 메리트가 있다면 신규 아키텍처도 허용된다
당초 IBM은 POWER4 아키텍처를 여러개 집적한 단순하고 개발하기 쉬운 형태의 구조를 제안했으나 쿠타라기는 우수한 성능이 아닌 압도적인 성능을 원했기에 이를 거절하고 다른 제안의 검토를 요청한다. 그리하여 계산에 특화된 코어와 범용 처리용 코어를 뒤섞은 '헤테로지니어스 멀티코어 아키텍처'를 만들게 된다.
이전 플레이스테이션들이 오로지 게임에만 특화된 컴퓨터를 만들어내는데 집중했지만 쿠타라기는 PS3를 단순히 새로운 게임기나 PC기종이 아닌 '완전히 새로운 종류의 컴퓨터'로 만들고 싶어했다. 그렇게 만든 CELL은 게임 뿐만이 아닌 셀을 늘려서 슈퍼컴퓨터에 사용하거나 SPE하나 정도만 떼어서 작은 기기에 쓴다는 'CELL WORLD' 구상에 있어서 그 자체로는 훌륭할지는 몰라도 게임기에는 어울리지 않는 치명적인 문제점을 가지고 있었다. 잘 되었다면 프로세서로 천하를 차지하겠다는 쿠타라기 켄의 꿈이 이루어 질 수도 있었겠지만 이미 XBOX로부터 범용 프로세서들의 파워가 충분하다는 것이 증명되어 버렸기 때문에 허사였다.
CELL연합체는 CELL이 인텔이나 AMD에 충격을 주었고 CPU업계에 새로운 트렌드를 제시하여 이후 타사가 클럭주파수 경쟁이 아닌 멀티코어와 전성비로 노선을 바꾸는데 영향을 주었다고 자평했다.

2. 상세


IBM POWER의 범용 컨셉인 PowerPC 를 기반과 컨트롤러로서 1개의 PPE(Power Processor Elements)를, 데이터 연산처리용으로 보조 연산 및 벡터 프로세싱을 담당하는 8개의 SPE(Synergistic Processor Elements)를 내장한 비대칭형 프로세서로 미디어 처리에 중점을 두었다. PowerPC 기반이라 POWER(마이크로프로세서)ISA를 따른다고 한다. SPE는 데이터 처리에 특화되어 계획 당시에는 같은 주파수의 기존 CPU와 비슷한 수준의 성능을 예상하고 만들었는데 실측해보니 그 수 배에 달하는 효과가 발생하여 예상을 뛰어넘었다고 한다.
PPE는 코어당 2-way SMT가 가능하여 PPE만으로 최대 2개의 스레드를 동시에 동작할 수 있다. 반면, SPE는 코어당 2-way SMT를 지원하지 않지만 각각의 SPE들은 분기예측, 비순차실행 등 복잡하게 만드는 요소를 전부 걷어낸 작고 단순한 프로세서로 메모리와 버스 등 입출력을 담당하는 MFC(Memory Flow Controller)와 연산을 담당하는 독자적인 명령어를 사용하는 128비트 폭의 SIMD 구성의 SPU(Synergistic Processing Unit), 그리고 256KiB의 eSRAM 스크래치패드 메모리로 구성되어 있는데, SPE의 SPU는 시스템 메모리에 직접 접근하지 못하고 SPE의 MFC를 거쳐 DMA 작업으로 시스템 주소 영역으로 전달되어야 한다. 플레이스테이션 3의 CPU는 수율 문제로 SPE 1개가 차단되어 있다. 이론 상의 최대 성능은 3.2 GHz 클럭에서 SPE 각 유닛 1개당 25.6 GFLOPS의 단정밀도 부동 소수점(FP32) 연산을 할 수 있다. 다만 실제로 셀이 달성해낸 최대 성능은 약 150 GFLOPS.[2] 소니플레이스테이션 3의 CPU로도 사용되었다.[3]

3. RSX


그래픽 칩은 Reality Synthesizer, RSX라는 프로젝트로 기존 방식대로 소니-도시바의 공동 개발이 예정되어 있었다. 그래픽 신디사이저에 메모리를 8배 늘린 GS 1/32 라는 칩을 16개 탑재한 워크스테이션으로 영화 파이널 판타지의 한 장면을 리얼타임 렌더링 하는 수준까지 개발했으나 쿠타라기는 자체개발 프로젝트를 빠르게 파기하고 NVIDIA와 공동개발을 시작한다. 한때는 CELL 자체의 강력한 성능에 프로그래머블 쉐이더같은 일부 그래픽 처리를 맡긴다는 구상도 있었지만 CELL의 개발지연 등으로 인해 결국 완전히 별개의 칩으로 개발된다. 외부업체와 엔비디아를 선정한 이유는 이미 PC 그래픽 시장이 90년대 말부터 엄청난 발전을 하고 있었고 해외 학회 등을 오가며 관찰한 엔비디아의 문화가 SCE의 그것과 닮았다는 쿠타라기 개인적인 이유 때문이기도 했다. 사내에서는 RSX 채용을 두고 타협의 산물이라고 지적하는 목소리도 나왔다고 한다.

4. 문제점


크고 복잡한 소수의 프로세서 코어 대신에 병렬연산에 특화된 다수의 작고 단순한 프로세서로 이론상의 성능을 끌어올린 것 까지는 좋았지만, 문제는 이런 독특한 구조로 인해서 이론상 성능에 비해서 실제 사용환경에서는 사용하기에 복잡하고 실효 성능이 떨어지는 물건이 되었다는 것. 통상적인 방식으로 활용할 수 있는 코어는 PPE 뿐으로 SPE 들은 통상적인 CPU들이 갖추고 있는 요소들을 적게 갖추고 있거나 아예 갖추고 있지 않고 있으며 이는 개발자가 CPU가 갖는 특성들을 감안해서 거기에 맞춰서 활용해줘야 할 뿐더러 이러한 구조에 적합한 유리한 상황(행렬, 벡터 연산과 같이 병렬도가 큰 연산)들이 아닌 통상적인 코드를 실행하는 상황에선 이론상 성능에 훨씬 못미치게 떨어진다는 것. 이 탓에 처음에는 제대로 활용하기 어려운 데다가 개발툴도 불친절한 관계로, 일반적인 개발자 입장에선 윈도우에서도 결과 확인이 되는 엑스박스 360을 선호했다. 심지어 존 카맥조차 '플레이스테이션 3로 개발하는 것은 너무 난해하니 난 안할거다'라고 돌려 깠고, 밸브게이브 뉴웰플레이스테이션 3를 재앙이라고 발언했다. 레포데 시리즈가 엑박 독점 콘솔이식이 이유가 이것. 그러나 GDC 2007 때 SCEA에서 PS Edge 엔진이, GDC 2008 때엔 SCEE에서 PhyreEngine이 공개, GDC 2009 때엔 PhyreEngine에서 Deferred rendering 지원이 추가되고, SCE 월드와이드 스튜디오의 개발 노하우들이 공유되면서 많이 나아진 편이다.
태생이 태생이라 멀티미디어나 병렬 연산 성능이 매우 좋은 축이라서, 모 게임의 서버로 이 녀석을 여러 대 병렬로 연결해 서버로 굴리거나, 각종 영상 처리용 워크스테이션 등으로 만들기도 한다. 도시바에서는 멀티미디어 플레이어나 TV에 넣어서 영상 처리를 맡은 제품도 나왔다. 이 방법이 얼마나 효율적인가 하면 미국 공군(!)에서 플레이스테이션 3을 2천개(!!) 넘게 사서 병렬 연결하여 연구용 슈퍼 컴퓨터로 사용하고 있다.[4] 물론, 플레이스테이션 3 말고도 이 칩은 B2B로 구입이 가능하기에 동영상 업계에서 뭘 처박았길래 이렇게 빠른지 의아한 수많은 외장형 가속기에 들어가 잘 쓰이고 있다. 실제로 플레이스테이션 3를 이용한 HD 소스 리핑이나 DVD의 업스캔 컨버팅은 매우 간단한 데다가 빠르기로 유명.
하지만 정작 게임에서 중요한 정수 연산 능력은 엑스박스 360의 CPU나 다른 CPU에 비해 떨어지며 부동 소수점 연산도 GPU에는 미치지 못한다. 당초 목표를 변경하고 플레이스테이션 3에 엔비디아의 그래픽 칩셋을 단 이유도 이 때문. 소니에서 IBM에 크게 낚였다고 할만하다. 2003년 2월에 엑스박스 360용 CPU를 마이크로소프트에서 의뢰받은 IBM이, 셀의 개발 중 노하우를 참고하여 CPU를 마이크로소프트에 만들어 줬다는 비화를 봤을 때에도 소니에서는 IBM에 제대로 낚인 셈이다.[5][6]

5. 현재


현 시점에서 CELL은 배정밀도 부동 소수점(FP64) 연산시 연산 작업이 중지되는 버그로 인해 제 성능이 나오지 않으나, 어차피 배정밀도 부동 소수점 연산 기능은 게임이 아닌 다른 목적으로 주로 쓰이는 기능이다. 언젠간 게임에 쓰일 수도 있으나 그것은 아주 먼 미래로 2014년 현재도 게임에서 배정밀도 연산은 거의 쓰이지 않는 상태.
연산 작업 중지 버그를 해결한 PowerXCell 8i까지 출시된 상태이며 그 이후로 예정 되어 있던 신규 모델들은 취소된 상태로 아직까지 추가적인 개선이나 차세대에 대한 계획은 불투명하다.
이 CPU는 구조는 복잡하지만, 출시 당시 기준으로 상당한 성능을 냈기에, 슈퍼 컴퓨터 용으로 사용되기도 하였다. 1페타플롭스의 성능을 가장 처음으로 돌파한 슈퍼 컴퓨터 '''로드러너(Road runner)'''에 CELL과 옵테론을 조합해서 사용했다.
플레이스테이션 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년 플레이스테이션 3의 생산이 종료됐고, IBM은 개인용/휴대용 CPU 시장을 포기한다. 그래서 POWER9 마이크로 아키텍처의 CPU로 만든 슈퍼 컴퓨터 개발에 몰두하고 PowerPC 조차 2013년 이후 신제품 출시를 중단한 상태라 사실상 명맥이 끊겼다.

6. 외부 링크


Cell Broadband Engine Architecture and its first implementation (IBM)

[1] '''S'''ony, '''T'''oshiba, '''I'''BM[2] 플레이스테이션 3의 경우 사용 가능한 7개의 SPE 중 1개는 코드 보안용으로 OS 전용으로 쓰이므로 게임용으로는 6개의 SPE만 쓸 수 있다. 그러면 얼추 계산이 맞는다. 그 중 1개는 오디오 처리용으로 썼으므로 그래픽 처리용으로는 보통 5개의 SPE를 썼다.[3] 참고로 엑스박스 360 후속 기기의 칩 이름은 'Oban'이라고 한다.. 그러나 Oban은 엑스박스 360 후속기기인 엑스박스 원이 아닌 엑스박스 원과 동시에 출시한 XBOX 360 E의 주 프로세서 XCGPU(Xenon CPU+Xenos GPU)의 IBM 32 nm SOI 공정 개선 프로세서임이 뒷날에 밝혀졌다.[4] 소니에서 해킹과 복사를 막기 위해 3.21 패치를 감행하면서 '''OS 설치기능을 삭제했기 때문에''' 미 공군은 제대로 엿먹을 뻔 했다. 현재는 PSN 업데이트를 아예 하지 않는 방법으로 사용 중이라고 한다. 하지만 고장시 A/S를 보내면 최신 업데이트를 해서 돌려줘서 곤란하다고.[5] 다만 IBM에서 CELL을 다른 고객에게도 팔 수 있도록 소니도시바에서 합의했을 때 경쟁기업 마이크로소프트도 IBM CPU를 쓸 가능성을 파악하지 못한 소니의 책임도 있다.[6] 엑스박스 360의 CPU, Xenon은 SPE 대신 IBM의 VMX128 유닛을 코어당 두개씩 사용한 PPE 코어를 3개 탑재했다. IBM은 셀이 일반적인 논리 처리 성능이 부족한 것을 파악하고, 논리 성능을 높이고 연산 성능을 약간 줄였다.