[App 개발] Cell 아키텍쳐 (2)
본문
스트림 프로세싱
셀이 일반 프로세서와 다른 점은 APU 를 하나로 연결하여 스트림 프로세서로 동작시키는 기능이 있다는 점입니다. 스트림 프로세서는 데이터를 수령하여 처리하는 것을 순차적으로 처리합니다. 이러한 순서는 한 개 혹은 여러 개의 APU 에 의해서 처리됩니다.
셀 프로세서는 각 순서별로 한 개 혹은 여러 개의 APU 로 스트리밍 명령을 수행하게 됩니다. 이를 구현하기 위해서 첫 번째 APU 가 입력 장치로부터 로컬 메모리로 데이터를 읽은 다음 데이터 처리를 수행하여 RAM 의 예약된 지점에 내용을 저장하고, 두 번째 APU 는 바로 그 데이터를 받아서 처리한 다음 두 번째 RAM 의 예약된 지점에 내용을 저장합니다. 프로그램에 따라서 첫 각 단계별로 여러 개의 APU 를 이용하여 여러 군데의 RAM 영역에 데이터를 입출력할 수도 있습니다. 만약 계산 능력이 부족할 경우 다른 셀의 APU 를 좀 더 긴 체인 형태로 동원할 수도 있습니다.
스트림 프로세싱은 메모리의 대역폭을 많이 필요로 하지는 않지만 셀에는 그런 능력이 있습니다. 특허 출원서에 따르면 각 셀은 64MB 데이터를 8 개의 뱅크 컨트롤러 (이것은 이상적인 경우이고 최대 갯수는 더 늘어납니다) 를 통해서 억세스할 수 있습니다. 만약 다른 뱅크에 있는 RAM 블럭을 사용하도록 스트림 프로세싱이 설정된다면, 스트림을 처리하는 다른 APU 에서는 다른 블럭의 메모리를 동시에 입출력할 수 있게 됩니다.
여러분의 피씨가 빠르다고 생각하십니까…
셀이 가장 열심히 일하는 경우는 APU 들이 복잡한 스트리밍 프로그램을 돌리면서 복수개의 메모리 뱅크를 사용하는 경우입니다. 이런 프로그램이 셀에서 동작할 때 셀의 이론상 최대 성능에 근접하게 되고 현재 사용되는 어떠한 데스크탑 프로세서보다도 몇 배나 만많은 초당 계산 능력을 나타낼 것입니다.
적절히 오버클럭이 되어 있고 (3.0GHz 이상) 아주 잘 최적화된 (SSE 어셈블리) 하이퍼트랜스포트로 연결된 다섯 개의 듀얼 코어 옵테론 컴퓨터 정도라면 셀 프로세서 한 개가 스트림 프로세싱으로 처리하는 정도의 계산량에 근접할 수 있을 것입니다. 이것은 순전히 이론상 데이터이며 셀의 성능과 “완벽한” 프로그램의 수행 여하에 따라 달라질 것이지만, 적어도 셀이 가지고 있는 잠재적인 프로세싱 능력의 한 가지를 보여주는 예입니다.
일반 데스크탑 CPU 들은 고성능 벡터 프로세싱에 적합하게 설계되지 않았습니다. 그 제품들도 SSE 나 AltiVec 의 형태로 벡터 유닛을 보유하고 있지만 보드 내에서 동일한 CPU 리소스를 공유하도록 되어 있습니다. 전용 로컬 메모리를 보유한 APU 는 고속 벡터 프로세싱에 특화되어 있고 메모리 외에 다른 것은 공유하지 않습니다. 게다가 이런 것이 여덟 개가 장착되어 있으니 셀의 계산 능력이 얼마나 대단한지 알 수 있습니다.
이런 엄청난 성능 차이는 어쩌면 허풍으로 들릴지 모르지만 이 정도 성능은 이미 선례가 있습니다. 여러분이 현재 컴퓨터에 장착한 최신 그래픽 카드에도 여러분의 생각보다 훨씬 더 풍부한 능력이 있습니다.
“예를 들어 최근 발표된 nVidia GeFrce 6800 Ultra 의 경우 조각 프로세싱 성능이 40 GFlops 에 근접합니다. SSE 를 이용한 3GHz 팬티엄4 의 성능을 비교하면 고작 6 GFlops 입니다.”
3D 그래픽 카드는 범용 CPU 보다 훨씬 고성능을 오래전부터 가지고 있었습니다. 이전에는 3D 그래픽 프로세싱에 국한되어 있었지만 최근 Shaders 가 부가되면서 이제는 일반적인 작업에 그 기능을 이용하고 있고, 지금까지도 별 어려움이 없었지만 앞으로 Shader 4.0 는 지금보다도 훨씬 범용으로 사용될 수 있을 것입니다.
현용 GPU 들은 잘만 프로그램되면 엄청난 계산 능력을 가질 수 있지만, 셀 프로세서는 더 저렴하면서 몇 배나 빠른 속도를 갖고 있습니다.
“하드” 리얼 타임 프로세싱
어떤 스트림 프로세싱은 정확한 타이밍으로 작동해야 하며 이것은 “하드” 리얼 타임 데이터 프로세싱이라는 형태로 이미 고려되어 있습니다. 어떤 처리 명령이 지정된 시간 한도 내에서 처리될 수 있도록 “절대 타이머” 가 이용됩니다. 타이머는 프로세싱 자체와 독립되어 있으므로 차세대 셀 칩과의 호환성 면에서도 유리합니다.
하드 리얼 타임 프로세싱은 특별하게 제작된 QNX 같은 특수 운영 체제에 의해 조정됩니다. 이러한 기능은 어떠한 OS 에서도 어느 정도 지원될 수 있는 것입니다. 이것은 APU 를 이용한 작업에만 사용되는 것이므로 QNX 가 조만간 없어질 것 같지는 않습니다.
DMA 컨트롤러
DMAC 는 셀에서 통신 허브의 역할을 수행하는 아주 중요한 부분입니다. PU 는 APU 에 직접 명령을 하달하지 않고 DMAC 를 통해서 하달하여 어떤 작업을 수행하도록 하며, 작업에는 언제나 데이터의 읽기/쓰기가 수반되므로 이것은 일리 있는 방법입니다. 이렇게 함으로써 PU 와 APU 간의 직접 통신이 필요없게 됩니다.
DMAC 가 셀의 모든 데이터의 입출력을 처리하게 되므로 초광대역 버스 시스템을 통한 통신이 필요하게 됩니다. 특허 출원서에서는 이것에 대해서 일반 버스 혹은 패킷 스위치 네트웍 같은 것이라고만 할 뿐 자세한 사항을 기술하고 있지 않습니다. 패킷 스위치 네트웍 구현에는 더 많은 회로가 요구되지만 더 넓은 대역폭을 가질 수 있습니다만, 제 생각에 셀은 초당 수십 기가바이트를 전송해야 하므로 그 이상의 방식을 연구하고 있을 것입니다. 특허 출원서를 통해서 알 수 있는것은 이 버스가 무척 광대역이며 적어도 1024 비트의 놀라운 대역폭을 기술하고 있습니다.
특허 출원서가 씌어질 당시까지만 해도 DMAC 의 아키텍쳐는 확립되지 않은 상태였고 따라서 두 개의 상이한 DMAC 버스 구조가 후보로 거론되었습니다. DMAC 의 분산형/중앙집중형 구조도 언급되어 있습니다.
DMAC 가 셀 설계의 가장 중요한 부분의 하나임은 분명합니다. DMAC 가 직접 계산을 수행하는 것은 아니지만 수십 기가바이트의 메모리를 여러 방향으로 흘려 주어야 합니다. 플스3가 약 100GB/s 의 메모리 인터페이스를 가지고 있다고 알려져있으며, 이것이 네 개의 셀 칩으로 분산된다고 하면 DMAC 는 각각 약 25GB/s 의 데이터를 처리해 주어야 합니다. 뿐만 아니라 메모리 보호와 PU 와 APU 의 명령 전달 통신도 처리해야 하므로, 단순히 빠른 버스속도 뿐만 아니라 대단히 복잡한 구조를 가져야 합니다.
메모리
셀 아키텍쳐를 넘어가서 메모리 시스템은 짧은 대기시간과 광대역폭의 빠른 속도를 위해 설계되어 있습니다. 앞에서도 기술했다시피 메모리는 1024비트 블럭으로 억세스됩니다. 그 이유는 특허 출원서에 나와있지 않지만 제 생각에 이렇습니다.
이것은 복잡성을 줄이는 효과 외에도 최신 컴퓨터의 성능을 저하시키는 큰 요인 중 하나인 메모리 억세스 응답 속도를 줄일 수 있습니다. 보다 세밀한 어드레싱을 위해서는 더 복잡한 로직이 더 많은 시간을 들여야 하기 때문입니다. 메모리 어드레스 참조 작업은 메모리 칩에서는 그리 두드러지지 않을지 모르나 각각의 참조 작업은 어드레스를 뱅크 컨트롤러에서 메모리 장비로 전송하는 느린 참조 작업이 수반됩니다. 이것을 메모리 한 번 억세스할 때마다 수행하는 것 자체도 그렇고 참조 작업에 필요한 어드레스 폭이 두 배로 늘어야 한다는 점입니다.
피씨에 램이 512메가가 있을 때 어드레스는 29비트*가 필요하지만, 시스템은 최소 64비트를 읽어들이므로 실제로는 26비트면 충분합니다. 피씨는 이보다 훨씬 더 많이 읽어들이므로 대략 23비트면 충분합니다.
* I/O 나 그래픽 어드레스는 가외로 1~2비트가 더 필요합니다
셀 구조에서는 8메가바이트의 뱅크가 8개 있으며 각각 1024비트씩 읽혀지므로 약 13비트가 필요하게 됩니다. 뱅크를 선택하는 데 필요한 3비트가 추가되지만 칩 내에서 처리되므로 크게 영향은 없습니다. 각 비트는 메모리 참조 영역을 두 배로 증가시키므로 피씨는 셀에 비해서 수천 배의 메모리 참조를 수행해야 합니다. 셀의 메모리 버스는 데이터 전송에 더 많은 시간을 할당할 수 있고 따라서 최대 이론상 전송 속도에 근접하게 됩니다. 제 생각이 틀릴 수도 있지만 실제 CPU 캐시에서도 비슷한 방법을 쓰고 있습니다.
셀은 실제로 초고속 메모리 전송을 수행합니다. 소니와 도시바는 2003년 램버스로부터 3.2GHz 메모리 기술을 라이센스했습니다. 만약 각 셀이 25.6 GB/s 를 가진다면 각각의 뱅크 전송율은 3.2 GB/s 가 됩니다. 버스의 비트 수는 그리 넓지 않게 하여서 (8개 모두에 64 데이터 핀) 칩 제조 가격을 하락시키는 효과를 갖게 합니다.
100GB/s 는 무척 넓직한 것 같지만 최근 사용되는 최신 그래픽 카드는 이미 50GB/s 대에 도달해 있으므로, 대략 수 년 사이에 두 배씩 증가했습니다. 그러나 이것은 이론적인 수치로서 아직 도달하지 못했으며, 위에서 설명한 셀의 대역폭은 경쟁 시스템보다 이론적인 수치에 훨씬 근접해 있으므로 셀이 훨씬 더 빠르게 동작할 것입니다.
특히 긴 스트림이 설정되었을 때 APU 는 다른 셀의 메모리를 억세스해야 할 필요가 있고, 따라서 셀들은 고속 인터커넥션으로 연결됩니다. 이것은 대략 선폭당 6.4 Gb/s 의 속도를 가진다는 것 외에 자세한 내용은 밝혀지지 않았습니다. 각각의 셀이 고속으로 데이터를 주고받을 수 있는 버스가 있을 것입니다. 이 기술은 하이퍼트랜스포트와 그리 달라 보이지는 않지만 구현 방식은 상당히 다를 것으로 보입니다.
그 외에도 스위칭 시스템이 고안되어 있어서 네 개 이상의 셀들이 모두 고속으로 메모리를 억세스할 수 있습니다. 이것은 셀 기반 웍스테이션에서 활용될 수 있을 것입니다. 8개 이상의 셀이 통신하는 것에 대해서는 확실하지는 않지만 시스템이 그 이상을 처리하는 것도 가능할 것으로 생각됩니다. IBM 은 이미 16테라플롭스의 성능을 가진 랙 모양의 웍스테이션을 발표했고, 여기에는 모두 64 개의 셀이 필요하므로 어떤 식으로든 그 방법을 확실히 고안했을 것입니다.
메모리 보호
메모리 시스템에는 DMAC 에 구현되어 있는 메모리 보호 기능이 있습니다. 메모리는 “놀이상자” 로 구별되어 어떤 APU 들이 억세스할 수 있는지를 구분하는 마스크가 사용됩니다. 이 마스크는 메모리 억세스가 실행되기 이전 DMAC 에서 수행되며, 어떤 특정 APU 가 잘못된 놀이상자를 억세스하려 할 때 메모리 억세스를 금지시킵니다.
일반 CPU 에도 하드웨어 메모리 보호 장치가 있지만 이것보다 훨씬 복잡한 구조입니다. RAM 블록의 사용 여부를 기록하는 페이지 테이블과 데이터가 메모리에 있는지 하드디스크에 있는지 여부를 기록합니다. 이 테이블은 계속 증가하게 되어 전체 내용을 CPU 가 한 번에 읽을 수 없게 되어, CPU 가 어떤 특정한 메모리 영역을 읽으려면 먼저 메모리의 페이지 테이블을 읽은 다음 디스크에서 데이터를 읽어들여야 하며 이 모든 작업이 실제 메모리 내용을 읽기 전에 수행되어야 합니다.
셀 프로세서는 APU 의 메모리 억세스의 수행 여부에 관계없이 테이블 내용은 DMAC 의 특수한 SRAM 에 기록되어 결코 정보를 잃지 않게 됩니다. 이러한 구조는 시스템의 유연성을 떨어뜨릴 수 있으나 구조가 단순하며 항상 빠른 데이터 억세스를 가능하게 합니다.
이러한 단순 구조는 APU 에만 해당되는 것이며 PU 에는 범용 메모리 보호 장치가 마련되어 있을 것입니다.
소프트웨어 셀
소프트웨어 셀은 apulet 이라고 불리우는 프로그램과 데이터의 조합의 저장, 그리고 apulet 을 수행하는데 필요한 명령과 다른 데이터들 (필요한 메모리, 동원되는 APU 갯수 등) 을 포함합니다. 셀에는 소스, 데스티네이션, 그리고 반송 어드레스 필드가 들어 있습니다. 내용은 전체 구조에 따라 변경될 수 있고 따라서 소프트웨어 셀은 다른 하드웨어 셀로 보내어질 수 있습니다. 그리고 특정한 셀을 정확히 지정할 수 있는 네트웍 독립 어드레스가 있습니다. 따라서 어떤 소프트웨어 셀을 어떤 네트웍의 특정한 컴퓨터에 있는 하드웨어 셀로 전송할 수도 있습니다.
APU 는 가상 메모리를 사용하지만 DMA 명령이 하달되는 즉시 실제 메모리에 매핑됩니다. 소프트웨어 셀에는 메모리에서 불러들이는 DMA 명령이 담겨 있어서, 만약 APU 가 스트림을 처리할 때 어디에서 데이터를 읽어서 결과를 어느 메모리에 저장해야 할지를 기억합니다. 그러한 준비가 모두 끝나면 APU 는 명령을 실행합니다.
이 시스템이 실제 어떻게 동작할지는 확실하지 않습니다만 아마도 약간의 적응성이 첨가되어 셀들이 네트웍에 보여지거나 사라지게 할 수도 있을 것입니다.
이러한 시스템은 기본 오퍼레이팅 시스템에 반영되어야 하지만 기존 OS 에 특정 계층으로 구현될 수도 있을 것입니다. 셀 프로세서가 어떤 특정한 OS 에서만 동작한다는 한계를 둘 필요는 없습니다.
멀티 셀 조합
셀 아키텍쳐의 특징 중 한 가지가 병렬 프로세싱입니다. 소프트웨어 셀은 어디든지 전송될 수 있고 어떤 특정한 전송 수단에 국한되지 않습니다. 소프트웨어 셀이 실시간으로 지정된 하드웨어 셀에서 동작하게 하는 것이 셀 아키텍쳐의 핵심입니다. 따라서 좀 더 계산능력이 필요하다면 셀 칩을 더 꽂으면 해결되도록 말입니다.
만약 여러 개의 셀들이 각각 WiFi 로 연결되어 있는 시스템이라면 시스템은 분산 소프트웨어 셀로 활용할 수 있습니다. 이 시스템은 어떤 커다란 몸체에 모두 담겨야 할 필요가 없습니다. 시스템은 단일 공유 메모리나 클로스 커플드 메모리로 묶여있지 않습니다. 전체 메모리 영역을 참조할 수 있지만 각 셀은 독립된 메모리 영역이 있고 자신의 메모리 내, 혹은 메모리를 고속 인터링크로 공유한 셀 칩들에서 가장 효율적으로 동작하게 됩니다.
셀 갯수를 넘어서는 프로세스의 처리에 대해서 자세히 기술되어 있지는 않지만 어떠한 네트워킹 기술에서도 동작하는 소프트웨어 셀 환경이란 이종의 네트웍 방식에서도 프로그램을 재작성할 필요 없는 첨단 셀 배열 방식이 활용될 것입니다.
병렬 처리 시스템은 기본적으로 하드웨어에서 처리해야 할 것들을 소프트웨어서 해 주어야 하므로 복잡도가 증가합니다. 시스템 속도는 줄어들지만 유연성은 증가하게 됩니다. 시스템은 처리해야 할 소프트웨어 셀을 어떻게 분산할 것인지를 결정하게 됩니다. 시스템이 변경되는 경우 (셀의 추가, 감소) 프로그래머가 따로 구현할 필요가 없도록 이 문제를 처리해야 합니다.
병렬 처리 소프트웨어를 짜는 것은 매우 어려운 일이며 따라서 이러한 구조가 문제를 해결하는 데 도움이 됩니다. 프로그래머는 소프트웨어를 셀이 처리할 수 있도록 병렬화해야 하지만 일단 프로그램이 작성되면 셀이 한 개 짜리이건 열 개 짜리이건 걱정할 필요가 없습니다.
나중에는 여러 개의 독립된 컴퓨터 대신 여러 컴퓨터가 하나의 시스템으로 동작하게 될 것입니다. 업그레이드는 옛날 시스템을 갈아치우는 것이 아니라 힘을 증가시키는 것이 됩니다. 더 나아가서 실제 컴퓨터라는 것은 PDA, TV, 캠코더 등이 하나의 시스템으로 활용되는 것입니다.
구체적 프로세싱
셀 아키텍쳐는 여러 가지 분야에 파급되지만 한 가지는 다른 기술 산업과는 전혀 반대 방향으로 발전했습니다. 운영체제는 개발자가 매번 필요한 드라이버를 작성할 필요 없이 하드웨어를 사용할 수 있는 기초적인 방법을 제시하는 것으로 시작했습니다. 시간이 지나면서 운영체제는 진화하여 여러 가지 복잡 다양한 작업을 수행하게 되었고 점점 더 하드웨어로부터 멀어지는 추상적인 방식으로 발전되었습니다.
객체 지향 프로그래밍은 개별 프로그램 코드를 추상화하는 데까지 이르렀습니다. 이런 방식은 개별 운영 체제로부터 응용프로그램을 추상화하여 독립적인 환경을 제공하는 자바와 같은 기술까지 진화했습니다. 웹 기술도 같은 방식으로, 출력되는 페이지는 그 내용을 보여주는 플랫폼과는 전혀 관련이 없이 동작합니다. 웹을 작성할 때 윈도우나 맥 전용 HTML 은 없으며, 특정 하드웨어, OS, 웹 브라우저는 완전히 추상화됩니다.
이제 하드웨어 제조업체들도 추상화를 시도합니다. 트랜스메타의 CPU 는 x86 계열로 판매되지만 실제 내부는 그렇지 않습니다. 소프트웨어 측면에서 CPU 내부의 자세한 내용에 대한 추상화가 적용되어 x86 뿐만 아니라 전혀 다른 아키텍쳐로도 동작할 수 있습니다. 이것은 트랜스메타 혹은 x86 에만 국한된 것이 아니라, 대부분의 최신 CPU 들의 내부 구조는 프로그래밍 모델과 전혀 다릅니다.
추상화는 컴퓨팅의 불문율로서 오늘날 컴퓨팅 기술의 핵심 요소입니다. 이것이 없으면 우리가 하는 대부분의 작업을 이룰 수 없습니다. 그러나 셀은 이것에 반대됩니다. 셀의 프로그래밍 모델은 구체적입니다. 여러분이 작성하는 APU 프로그램은 어떤 추상화가 아니라 APU 자체가 움직이는 방식 그대로의 프로그래밍입니다. 다시 말하면 “하드웨어를 직접 건드리는” 것입니다.
일반적으로 좋지 않은 방법으로서 불경스럽게까지 들리는 이 방식을 사용하려는 이유는 단 한가지, 효율 때문입니다. 추상화 계층이 늘어나면 그만큼 계산량이 현저히 늘어나며, 이러한 추상화는 실제 효율을 10배 정도 감소시킵니다. 요즘 출시되는 여러 추상화 계층이 깔려있는 시스템을 보시면 어째서 옛날 50 MHz 486 에서는 잘 돌았는데 지금은 속도가 개같이 되었는지 보시게 될 것입니다. 최신 프로세서는 현저히 늘어난 추상화 방식을 지원해야 할 필요성이 증가하게 됩니다.
추상화를 없앴을 때의 단점은 소프트웨어 개발자들의 복잡도를 현저히 증가시키며 하드웨어 제작자들의 시스템 변경 기회를 제한한다는 점입니다. 그 중에서 후자가 가장 중요한 핵심 이유입니다. 하지만 최신 프로세서들이 최근 몇 년간 구조가 많이 변경되지 않았음을 알 수 있습니다. 셀 디자이너들은 아키텍쳐의 급격한 변동이 없을 것으로 확신하고 처음부터 내용을 돌에 새겨넣듯 하였습니다. 그러나 특허 출원서에는 시스템에 약간의 유연성이 있다고 하였으니 부분적인 변화는 가능할 것으로 보입니다.
하지만 셀 구조에서도 추상화의 잇점을 살리고 있습니다. 자바는 OS 와 하드웨어를 추상화함으로써 플랫폼 독립을 이루었습니다. 자바는 모든 플랫폼에서 통용되는 “가상 머신” 기법을 사용하여, 어떤 하드웨어와 OS 가 변화하더라도 가상 머신은 변동이 없도록 하였습니다.
셀에서도 자바와 비슷한 방식을 지원하지만 전혀 다른 방향으로 구현됩니다. 자바는 모든 플랫폼에 동일한 “가상 머신”이라는 소프트웨어를 제공하지만, 셀에서는 셀 물리 하드웨어라는 자바 가상 머신과 동격의 개념을 하드웨어에서 제공합니다. 만약 OS X 에서 셀 코드를 작성하면 동일한 셀 코드는 윈도우, 리눅스 등에서 동작하게 되는데 왜냐하면 명령을 수행하는 것은 모두 셀 하드웨어이기 때문입니다.
이것은 반드시 셀 어셈블리로만 프로그램을 짜야 한다는 뜻이 아닙니다. 셀에서도 다른 것들과 마찬가지로 컴파일러를 제공합니다. 자바가 가상 머신을 제공하지만 직접 프로그래밍을 하지 않는것과 마찬가지입니다.
하드웨어 DRM
셀 하드웨어에 DRM 이 구현되어 있다는 점만으로도 등을 돌리는 사람이 있을 것입니다. 소니는 미디어 회사이며 그 범주에 들어가는 모든 회사들은 DRM 솔루션을 밀고 있습니다. 셀은 HDTV, 블루레이, HD-DVD 시스템을 목표로 하고 있으며, 어떠한 고화질 컨텐트건 DRM 에 의해 구동되므로 소니가 이 기능을 내장하지 않으면 자신의 주요 시장에서의 입지를 좁히는 결과가 됩니다. 하드웨어 DRM 은 마술 탄환은 아닙니다. 하드웨어 시스템은 셋톱 박스나 IBM 의 메인프레임을 위한 크립토 하드웨어 등에서 이미 구현되었습니다.
그 외의 기능과 미래
셀 아키텍쳐의 미래 기술 계획에는 광통신 기능이 예정되어 있습니다. 이것이 플스 3에 적용될지는 미지수이지만 개발자들은 현재 사용되는 구리선이 한계(대략 10GHz 로 봄)에 부딪힐 경우를 대비하고 있습니다. 실리콘 이외의 다른 신물질을 이용한 제조 공정도 계획되고 있지만 이것은 아주 요원한 미래의 일이 될 것입니다.
셀 디자인은 완전히 고정된 것이 아닙니다. APU 갯수는 유동적이며 각 APU 내에도 부동소숫점 계산기나 정수 계산기를 추가할 수 있습니다. 어떤 경우 APU 를 제거하고 I/O 유닛이나 그래픽 프로세서를 그 자리에 넣을 수도 있습니다. nVidia 는 플스 3 용 그래픽 하드웨어를 제공하게 되며, 차후에 셀의 변형 제품으로 이것을 구현하게 될 수도 있습니다.
무어의 법칙이 계속되며 칩에 더 많은 트랜지스터를 집적할 수 있는 한 개발자들은 이 장점을 적극 활용할 것입니다. 칩당 네 개의 셀을 집적하는 방식을 특허 출원서에서 기록하고 있고 그 외에도 다른 셀 응용 제품에서 다른 방식을 적용할 수 있습니다.
복수 APU 가 스트리밍 데이터를 처리할 때 RAM 에 읽고쓰기를 계속 반복하게 되는데, APU 간 데이터 기록이 가능한 버퍼를 추가하는 것도 아주 적합한 방법입니다. 직접 전송 방식도 특허 서류에서 언급하고 있지만 자세한 내용은 기록하지 않고 있습니다.
결론
셀 아키텍쳐는 기본적으로 범용 PowerPC CPU 에 8 개의 초고속 벡터 프로세서와 고속 메모리 와 I/O 시스템을 부가한 것으로서, 첨단 클러스터링 기능을 갖춘 작업 분산 장치와 연동하여 사용할 수 있습니다.
한 가지 분명하지 않은 것은 공격적인 디자인입니다. 캐시 메모리와 실시간 가상 메모리 시스템의 부재는 지난 20년간 범용 CPU 에서 채택하지 않은 매우 이례적인 것입니다. 이것과 비교할 수 있는 제품이라면 세이모어 크레이의 제품 디자인 종류일 것입니다. 셀의 빠른 속도뿐만 아니라 무척 공격적인 디자인으로 다른 회사들이 이를 따라잡는 데 많은 시간이 걸릴 것입니다*.
* 이것에 대해서는 4장에서 자세히 설명하겠습니다.
최신글이 없습니다.
최신글이 없습니다.
댓글목록 0