Programação Paralela em Arquiteturas Multi-Core/Arquitetura Cell Broadband Engine: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
remoção (conteúdo copiado)
Linha 30:
 
O PPE é uma unidade baseada na arquitetura POWER, que é a base das linhas POWER e PowerPc. O papel do PPE é servir como um controlador das várias SPEs, que serão responsáveis pela execução da maior parte da carga de trabalho. Como o PPE é muito similar a outros processadores PowerPc de 64 bits, será possível utilizá-lo com sistemas operacionais convencionais, já disponíveis para esta arquitetura.
 
O PPE é um processador superescalar de 64 bits que não permite execução de instruções out-of-order, e é capaz de despachar até duas instruções por ciclo. É composto também por uma cache L2 de 512KB, bem como um cache L1 ''two-way'' de 32KB de instruções e um cache ''four-way set-associative'' de dados.
 
=== SPE ===
 
Os SPEs são as unidades responsáveis pela execução das tarefas que exigem maior processamento [1]. Em um ambiente padrão, o sistema operacional seria executado no PPE, que designaria a cada uma das SPEs uma tarefa específica e isolada.
 
Cada SPE é um processador RISC SIMD (''single instruction, multiple data''), que contém 128 registradores de 128 bits, quatro unidades de ponto flutuante capazes de realizar um total de 32 bilhões de operações por segundo, e mais quatro unidades de operações sobre inteiros, capazes também de 32 bilhões de operações por segundo, trabalhando com um clock de 4GHz de freqüência. É importante observar que este cálculo refere-se à utilização de instruções do tipo ''multiply-add'', que recebe três operandos de entrada, e é contabilizada como duas operações (em apenas uma instrução). As instruções de um SPE podem receber até três operandos fonte, e um operando destino.
 
Um dos resultados mais vistosos da implementação desta arquitetura é o rompimento da barreira de 4GHz para o clock de um processador. É publico que a Intel tem vários problemas tentando alcançar 4.0GHz de clock para o Pentium 4. Entretanto, o processador Cell é capaz de operar em até 4.6 GHz de freqüência, embora este valor deva ser ligeiramente reduzido em produtos onde a energia elétrica consumida seja um
fator a ser levado em consideração.
 
Os SPEs diferem-se dos processadores convencionais também pela falta de uma memória cache. Ao invés de uma cache, cada SPE dispõe de uma região de memória chamada de Local Store (LS). Cada Local Store é uma memória SRAM de 256KB, e cada SPE possui a sua LS privada. O endereçamento na LS é mapeado diretamente na memória principal, e nenhum protocolo de coerência de cache é utilizado.
 
É responsabilidade do software gerenciar o movimento de dados entre a memória principal e a LS. Esta abordagem foi escolhida devido à natureza dos programas que se espera executar no processador, e à economia de hardware necessário para a implementação de um protocolo de coerência.
 
=== EIB ===
 
A transferência de dados entre o PPE, os SPEs, e as interfaces de entrada e saída do processador é responsabilidade de uma estrutura chamada ''Element Interconnect Bus'' (EIB).
 
O EIB é implementado como quatro "anéis" que circulam em sentidos contrários em pares. Ele trabalha em metade do ciclo de clock do processador, e é capaz de transmitir 16 bytes a cada dois clocks do sistema. Devido a esta característica, o EIB é comumente definido como um barramento de oito bytes por ciclo.
 
=== FlexIO ===