Universidade de S˜ao Paulo
Instituto de Matem´atica e Estat´ıstica
Arquitetura Cell Broadband Engine
Mikail Campos Freitas
S˜
ao Paulo
Sum´
ario
1 Introdu¸c˜ao 2
2 Hist´oria do Cell 3
3 Principais Aplica¸c˜oes 3
4 Arquitetura Cell 3
4.1 Power Processing Element . . . 4
4.2 Synergistic Processing Element . . . 5
4.3 Element Interconnect Bus . . . 6
4.4 Interface Controllers . . . 7
5 Conclus˜oes 8
1
Introdu¸
c˜
ao
O objetivo deste trabalho ´e apresentar, analisar e discutir sobre um tipo de arquitetura de processador denominada Cell Broadband Engine Architecture (CBEA).
Alguns pontos cobertos neste documento s˜ao: objetivos que direcionaram o seu design, detalhes t´ecnicos de sua arquitetura e da arquitetura de seus componentes, aplica¸c˜oes de processadores Cell, vantagens e desvantagens sobre arquiteturas cl´assicas e barreiras no de-senvolvimento para Cell.
2
Hist´
oria do Cell
No ano de 2000 as empresas Sony Computer Entertainment, Toshiba Corporation e IBM formaram uma alian¸ca que ficou conhecida como STI. Seu objetivo era desenvolver e produzir o processador Cell. O seu desenvolvimento de fato foi iniciado no ano de 2001 com a forma¸c˜ao do STI Design Center. O desenvolvimento da primeira vers˜ao da arquitetura Cell levou 4 anos.
Os objetivos visados com o desenvolvimento dessa nova arquitetura eram de criar um processador de alto desempenho que fosse utiliz´avel para uma grande variedade de aplica¸c˜oes, incluindo-se consoles de jogos (video-games; principal interesse da Sony na alian¸ca). Isso ´e, um processador que fosse intermedi´ario entre processadores convencionais de desktops e processadores especializados de alto desempenho (como, por exemplo, GPUs). Mas que al´em disso, e principalmente, apresentasse um baixo consumo de energia e de recursos em geral (tanto em produ¸c˜ao quanto em utiliza¸c˜ao).
3
Principais Aplica¸
c˜
oes
As principais aplica¸c˜oes de processadores Cell atualmente s˜ao para opera¸c˜oes de ponto flutuante, que s˜ao muito utilizados em: criptografia, transforma¸c˜oes e ilumina¸c˜ao gr´afica, simula¸c˜oes f´ısicas, transformada r´apida de Fourier (FFT, em inglˆes), opera¸c˜oes em matrizes e workloads (processamento destinado `a nuvem/grade computacional).
Tabela 3.1: tabela comparativa de velocidade em GFLOPS de processadores convencionais com o Cell; dados extraidos de [2] e [3]
4
Arquitetura Cell
Para obter-se um alto desempenho consumindo poucos recursos (´area no chip, energia e custo em geral) an´alises mostraram que uma boa abordagem para a arquitetura seria tentar o paralelismo com v´arios n´ucleos em um mesmo multiprocessador. Para redu¸c˜ao ainda maior no consumo de energia foi optado por usar uma arquitetura de multiprocessador heterogˆeneo que prioriza processamento de dados ao inv´es de sistema de controle.
A arquitetura resultante foi de um multiprocessador heterogˆeneo formado por um n´ucleo principal baseado na arquitetura IBM 64-bit Power ArchitectureTM[1] e oito coprocessadores
baseados na arquitetura single-instruction multiple-data (SIMD) chamada Synergistic Pro-cessing Unit (SPU). Desse modo foi poss´ıvel combinar a flexibilidade da arquitetura do n´ucleo principal com funcionalidade otimizada das SPUs SIMD.
Ambos os processadores (principal e coprocessadores) s˜ao do tipo reduced instruction set computing (RISC) que s˜ao processadores que procuram atingir um desempenho elevado por possu´ırem instru¸c˜oes mais simples mas que podem ser executadas mais rapidamente.
Para a comunica¸c˜ao dos elementos do chip foi escolhido um barramento circular de alto desempenho de quatro canais que tamb´em ´e ligado aos controles de interface de mem´oria e
entrada e sa´ıda do chip. Est´a presente tamb´em em todos os processadores do chip um direct memory access engine (DMA engine) com coerˆencia de cache que permite que qualquer pro-cessador possa acessar a mem´oria principal e mem´orias mais distantes sem a necessidade da passagem da informa¸c˜ao pelo processador principal.
Os elementos b´asicos da arquitetura Cell que ser˜ao analisados e discutidos nas pr´oximas subse¸c˜oes s˜ao os seguintes:
• Power Processing Element (PPE, processador principal do chip, respons´avel principal-mente pelo controle)
• Synergist Processing Element (SPE, coprocessador especializado, realiza o real proces-samento de dados)
• Element Interconnect Bus (EIB, barramento do chip)
• Interface Controllers (IC, controles de interface com a mem´oria e entrada e sa´ıda do chip)
Figura 4.1: estrutura de um chip de arquitetura Cell
4.1
Power Processing Element
O PPE ´e o processador principal na arquitetura Cell. Devido `a sua semelhan¸ca com processadores do tipo 64-bit PowerPC ele suporta a execu¸c˜ao de sistemas operacionais convencionais.
Tem total controle sobre os SPEs: start, stop, interrupt e schedule de seus processos; suas instru¸c˜oes load e store tˆem acesso direto ao local storage dos SPEs assim como acesso `
a mem´oria principal tamb´em. ´
E um processador two-way multithreaded, isso ´e, instru¸c˜oes de at´e dois threads dife-rentes podem estar no pipeline em um dado momento.
Alguns dados de sua arquitetura: • instru¸c˜oes de 32 bits
• registradores de 64 e 128 bits (registradores de 128 bits s˜ao reservados para a unidade AltiVec)
• L1 de 32 kB para instru¸c˜oes e 32 kB para dados e L2 de 512 kB
• possui uma unidade AltiVec (unidade especializada que usa pipeline para opera¸c˜oes de ponto flutuante de precis˜ao simples)
4.2
Synergistic Processing Element
Os SPEs s˜ao os coprocessadores especializados da arquitetura Cell. Apesar de possu´ırem arquitetura turing-completa [4], n˜ao s˜ao totalmente autˆonomos e dependem do controle do PPE para um funcionamento ´util. Seu acesso `a mem´oria atrav´es das instru¸c˜oes load e store ´e limitado `a mem´oria local, qualquer outro tipo de acesso deve ser feito atrav´es de uma opera¸c˜ao de DMA.
Basicamente s˜ao processadores RISC SIMD especializados em opera¸c˜oes de ponto flutuante de precis˜ao simples e dupla. S˜ao eles que representam o real poder de proces-samento de um processador Cell, devido `a sua especializa¸c˜ao e por realizarem tarefas em paralelo (oito SPEs por processador Cell).
Cada SPE ´e constitu´ıdo de uma synergistic processing unit (SPU, unidade de proces-samento em si) e um memory flow controller (MFC, respons´avel pelo acesso `a mem´oria local e por realizar as opera¸c˜oes de DMA necess´arias).
A principal diferen¸ca e inova¸c˜ao da arquitetura Cell em rela¸c˜ao `a outras arquiteturas s˜ao os SPEs e mais especificamente a SPU presente em cada um deles.
A arquitetura da SPU tem como objetivos: • fornecer um conjunto de registradores robustos
• redu¸c˜ao no tamanho e no consumo de energia por unifica¸c˜ao de recursos • simplificar decode and dispatch (leitura e execu¸c˜ao de instru¸c˜oes)
Tais objetivos foram alcan¸cados com uma arquitetura nova baseada em SIMD com instru¸c˜oes de tamanho fixo de 32 bits com um formato de 3 operandos. Com o design de uma nova instruction set architecture (ISA) foi poss´ıvel simplificar a unidade no aspecto de instru¸c˜oes e fornecer operandos de 7 bits que endere¸cam diretamente, de qualquer instru¸c˜ao, 128 registradores atrav´es de uma ´unica abordagem SIMD de computa¸c˜ao es-palhada (SIMD pervasive computing), tanto para dados escalares quanto vetoriais. Nessa abordagem um conjunto SIMD de 128 registradores de 128 bits fornece operandos es-calares, condicionais e de endere¸camento como para opera¸c˜oes condicionais, branches e acessos `a mem´oria.
Para diminuir a ´area ocupada e o consumo de energia a aritm´etica de pontos flutuantes foi reduzida para apenas as opera¸c˜oes mais comuns. Com isso n´umeros desnormalizados [5] s˜ao automaticamente arredondados para zero quando recebidos como entrada ou pro-duzidos como sa´ıda. Tamb´em apenas um modo de arredondamento ´e suportado.
A SPU possui arquitetura in-order dual-issue estaticamente escalon´avel, isso ´e, duas instru¸c˜oes SIMD podem ser processadas por ciclo (uma instru¸c˜ao de processamento e
uma opera¸c˜ao de mem´oria). Sua arquitetura de branching n˜ao inclui branch prediction dinˆamico mas ao inv´es disso se baseia em branch prediction gerado pelo compilador, com instru¸c˜oes do tipo “prepare-to-branch” para redirecionar o prefetch da instru¸c˜ao para os alvos do branch.
O MFC integra as SPUs usando modelos de prote¸c˜ao e tradu¸c˜ao de endere¸cos da arquitetura Power [1]. Ele provˆe transferˆencia e sincroniza¸c˜ao de dados e implementa a interface da SPU no barramento de alto desempenho do Cell (EIB).
Implementa tamb´em a comunica¸c˜ao entre os SPEs e o PPE e serve como um engine de transferˆencia de dados de alto desempenho entre o local storage dos SPEs e a mem´oria principal.
Sua presen¸ca na arquitetura dos SPEs ´e essencial pois passar a responsabilidade da computa¸c˜ao de transferˆencia de dados para uma unidade dedicada possibilita que o proces-samento e transferˆencia de dados ocorram em paralelo assim como tamb´em torna poss´ıvel a implementa¸c˜ao de m´etodos avan¸cados de programa¸c˜ao como software pipelining e doble buffering.
Alguns dados da arquitetura do SPE: • instru¸c˜oes de 32 bits
• registradores de 128 bits
• local storage (SRAM embutida) para dados e instru¸c˜oes de 256 kB
4.3
Element Interconnect Bus
O EIB ´e um barramento de alto desempenho que liga todos os componentes da arqui-tetura Cell (um PPE, oito SPEs, controlador de interface com a mem´oria e dois chips de controle de interface com entrada e sa´ıda). Ele inclui uma unidade de arbitragem para controle do fluxo de dados.
´
E implementado como um anel circular formado por quatro canais unidirecionais de sentidos contr´arios aos pares de 16 bytes de largura cada. Quando a unidade de arbitra-gem permite, cada canal consegue suportar at´e trˆes transferˆencias concorrentes. Como h´a muitos elementos ligados ao EIB sua implementa¸c˜ao circular bidirecional foi uma solu¸c˜ao simples e barata para o problema de distˆancia entre dois elementos: agora a distˆancia m´axima ´e de seis passos pois, se um caminho com mais de seis passos ´e gerado, o cami-nho de fato realizado pelos dados ´e o do sentido contr´ario (mais curto). Isso contribui essencialmente para que sempre os maiores trechos poss´ıveis do EIB estejam livres para outros elementos, assim como diminui diretamente o tempo de espera.
A liga¸c˜ao do EIB com cada elemento externo ´e feita atrav´es de uma porta de 16 bytes para escrita e uma porta de 16 bytes para leitura. O limite de leitura e escrita para cada elemento ´e de 16 bytes por ciclo do EIB (8 bytes por ciclo do sistema). Como at´e trˆes transferˆencias de 16 bytes cada podem estar em cada canal do EIB, mas como sua freq¨uˆencia ´e metade da do sistema, ent˜ao temos que sua largura de banda de pico ´e de 96 bytes por ciclo do sistema.
Figura 5.1: estrutura do EIB
4.4
Interface Controllers
Est´a presente no Cell uma c´elula Rambus XIO de dois canais que realiza interface com mem´orias do tipo Rambus XDR (DRAM de alto desempenho). O controle de interface com a mem´oria (MIC) ´e separado da c´elula e foi desenvolvido pela IBM. A conex˜ao XIO-XDR apresenta uma velocidade de 3.2 Gbps/pino.
A c´elula Rambus XIO ´e composta 1 por um ou dois blocos de requisi¸c˜ao de
barra-mento (RQ) de 12 bits cada, um bloco de controle (CTL) e um n´umero vari´avel de blocos de dados (DQ) de 8 ou 9 bits. O bloco RQ fornece endere¸cos de controle e informa¸c˜ao para o subsistema da mem´oria. O bloco CTL realiza inicializa¸c˜ao, manuten¸c˜ao e acesso a registradores e fun¸c˜oes de testabilidade. Cada bloco DQ ´e capaz de transmitir e receber dados a uma velocidade de at´e 7.2 Gbps.
A interface com entrada e sa´ıda ´e feita atrav´es de uma c´elula Rambus FlexIO. ´E formada por doze camadas point-to-point de 8 bits de largura cada, onde cinco dessas camadas s˜ao internas ao Cell e quatro camadas tanto internas quanto externas suportam coerˆencia de mem´oria. Fornece uma largura m´axima de banda te´orica de 62.4 GB/s (26 GB/s em camadas internas e 36.4 GB/s em camadas externas) a uma freq¨uˆencia de 2.6 GHz e pode ter uma freq¨uˆencia diferente da do sistema (geralmente 3.2 GHz).
5
Conclus˜
oes
A arquitetura Cell procura alcan¸car alto desempenho com baixos custos e consumo de energia incorporando o que muitos acreditam ser o futuro da computa¸c˜ao: computa¸c˜ao pa-ralela.
Enquanto outras arquiteturas apenas encaram aplica¸c˜oes paralelas como funcionalidades extras, a arquitetura Cell ´e inteiramente desenvolvida com foco no paralelismo. Com seus m´ultiplos SPEs especializados capazes de realizar acessos `a mem´oria e processamento de da-dos simultaneamente percebemos, a partir da tabela 3.1, que mesmo tendo sido lan¸cado anos atr´as, processadores Cell apresentam um desempenho excepcional em compara¸c˜ao inclusive com processadores atuais.
A decis˜ao de usar processadores RISC tamb´em ´e um ponto positivo para a utiliza¸c˜ao de otimiza¸c˜oes geradas pelo pr´oprio compilador, deixando assim o desenvolvedor Cell com menos responsabilidades em certos aspectos.
Apesar dessas vantagens desenvolvedores Cell ainda encontram barreiras fundamentais como: processadores do tipo RISC apresentam pico computacional na execu¸c˜ao de c´odigo simples, que ´e dif´ıcil de ser gerado; programa¸c˜ao paralela ainda n˜ao ´e bem desenvolvida.
Quando tais barreiras forem transpostas no futuro, a arquitetura Cell se beneficiar´a imen-samente e talvez inclusive torne-se base para o pr´oximo padr˜ao de arquiteturas de processa-dor.
6
Referˆ
encias e Bibliografia
[1] http://www.ibm.com/developerworks/library/pa-microdesign/ [2] http://www.maxxpi.net/ [3] http://domino.research.ibm.com/comm/research.nsf/pages/r.arch.innovation.html [4] http://en.wikipedia.org/wiki/Turing complete [5] http://en.wikipedia.org/wiki/Denormal number http://en.wikipedia.org/wiki/Cell Broadband Enginehttp://domino.research.ibm.com/comm/research.nsf/pages/r.arch.innovation.html http://www.research.ibm.com/cell/
http://www.rambus.com/in/technology/solutions/xdr/xdr controller.html Michael Gschwind. Chip Multiprocessing and the Cell Broadband Engine, 2006