PA-8000 - PA-8000

HP PA-8000

O PA-8000 (PCX-U), codinome Onyx , é um microprocessador desenvolvido e fabricado pela Hewlett-Packard (HP) que implementou a arquitetura de conjunto de instruções PA-RISC 2.0 (ISA). Era um design completamente novo, sem nenhum circuito derivado de microprocessadores PA-RISC anteriores. O PA-8000 foi introduzido em 2 de novembro de 1995, quando as remessas começaram a membros da Organização RISC de Precisão (PRO). Era usado exclusivamente por membros do PRO e não era vendido no mercado comercial. Todos os processadores PA-8x00 subsequentes (PA-8200 a PA-8900, descritos mais abaixo) são baseados no núcleo do processador PA-8000 básico.

O PA-8000 foi usado por:

  • HP em suas estações de trabalho e servidores HP 9000
  • NEC em seu servidor TX7 / P590
  • Stratus Computer em seus servidores Continuum tolerantes a falhas

Descrição

O PA-8000 é um microprocessador superescalar de quatro vias que executa instruções fora de ordem e especulativamente . Esses recursos não foram encontrados em implementações PA-RISC anteriores, tornando o PA-8000 a primeira CPU PA-RISC a quebrar a tradição de usar microarquitetura simples e implementação de alta taxa de clock para obter desempenho.

Unidade de busca de instrução

O PA-8000 possui um front-end de quatro estágios. Durante os dois primeiros estágios, quatro instruções são buscadas no cache de instruções pela unidade de busca de instruções (IFU). O IFU contém o contador de programa , a tabela de histórico de ramificação (BHT), o cache de endereço de destino de ramificação (BTAC) e um buffer lookaside de tradução de quatro entradas (TLB). O TLB é usado para traduzir o endereço virtual em endereços físicos para acessar o cache de instruções. Em caso de falha do TLB, a tradução é solicitada ao TLB principal.

Previsão de filial

O PA-8000 realiza a previsão de ramos usando métodos estáticos ou dinâmicos. O método usado pelo PA-8000 foi selecionado por um bit em cada entrada TLB. A previsão estática considera a maioria dos ramos anteriores como recebidos e os ramos anteriores como não utilizados. A previsão estática também previu o resultado das ramificações examinando as dicas codificadas nas próprias instruções pelo compilador.

A predição dinâmica usa o histórico registrado de uma ramificação para decidir se ela é obtida ou não. Um BHT de 256 entradas é onde essas informações são armazenadas. Cada entrada BHT é um registrador de deslocamento de três bits . O PA-8000 usava um algoritmo de votação por maioria, um desvio é obtido se a maioria dos três bits for definida, e não obtido se eles estiverem limpos. Um ramo mal previsto causa uma penalidade de cinco ciclos. O BHT é atualizado quando o resultado da ramificação é conhecido. Embora o PA-8000 possa executar duas instruções de desvio por ciclo, apenas um dos resultados é registrado, pois o BHT não tem duas portas para simplificar sua implementação.

O PA-8000 possui uma bolha de dois ciclos para ramificações preditas corretamente, pois o endereço de destino da ramificação deve ser calculado antes de ser enviado ao cache de instruções. Para reduzir a ocorrência dessa bolha, o PA-8000 usa um BTAC totalmente associativo de 32 entradas. O BTAC armazena em cache o endereço de destino de uma filial. Quando o mesmo branch é encontrado e previsto como obtido, o endereço é enviado ao cache de instruções imediatamente, permitindo que a busca comece sem demora.

Para maximizar a eficácia do BTAC, apenas o destino do ramo dos ramos capturados previstos são armazenados em cache. Se uma ramificação for prevista como não utilizada, mas seu endereço de destino for armazenado em cache no BTAC, sua entrada será excluída. No caso de o BTAC estar cheio e uma nova entrada precisar ser gravada, a entrada que é substituída é selecionada usando uma política de substituição round robin.

Cache de instrução

O cache de instruções é externo e suporta uma capacidade de 256 KB a 4 MB. As instruções são pré-decodificadas antes de entrarem no cache, adicionando cinco bits a cada instrução. Esses bits reduzem a quantidade de tempo necessária para decodificar a instrução posteriormente no pipeline. O cache de instrução é mapeado diretamente para evitar a complexidade de conjuntos de caches associativos e é acessado por meio de um barramento de 148 bits. As tags para o cache também são externas. É construído a partir de SRAMs síncronos (SSRAMs).

Decodifique, e o buffer de reordenação da instrução

Durante o terceiro estágio, as instruções são decodificadas. No quarto estágio, eles são colocados no buffer de reordenação de instruções (IRB). O objetivo do IRB é implementar a renomeação de registros , execução fora de ordem, execução especulativa e fornecer um local temporário para os resultados serem armazenados até que as instruções sejam retiradas. O IRB determina quais instruções são emitidas durante o estágio cinco.

O IRB consiste em dois buffers, um para instruções inteiras e de ponto flutuante, e outro para instruções de carregamento e armazenamento. Algumas instruções são colocadas em ambos os buffers. Estas instruções são instruções de ramificação e certas instruções do sistema. Cada buffer possui 28 entradas. Cada buffer pode aceitar até quatro instruções por ciclo e pode emitir até duas por ciclo para suas unidades funcionais.

Execução

Todas as instruções começam a execução durante o estágio seis nas dez unidades funcionais. Instruções inteiras, exceto para multiplicação, são executadas em duas unidades lógicas aritméticas (ALUs) e duas unidades de deslocamento / mesclagem. Todas as instruções executadas nessas unidades têm uma latência de ciclo único e seus resultados são gravados no registrador de destino no estágio sete.

As instruções de ponto flutuante e as instruções de multiplicação de inteiros são executadas em duas unidades fundidas de multiplicação-acumulação (FMAC) e duas unidades de divisão / raiz quadrada. As unidades FMAC são canalizadas e têm uma latência de três ciclos. A multiplicação é realizada durante o estágio seis, adição no estágio sete, arredondamento no estágio oito e write-back no estágio nove. Não há arredondamento entre os estágios de multiplicação e acumulação. As unidades FMAC também executam instruções individuais de multiplicação e adição, que também têm uma latência de três ciclos para variantes de precisão simples e dupla . As unidades de divisão / raiz quadrada não são canalizadas e têm uma latência de 17 ciclos. Uma instrução pode ser emitida para eles por ciclo de clock devido às limitações da porta de registro, mas eles podem operar em paralelo entre si e com as unidades FMAC.

Tanto as instruções de carregamento e armazenamento de inteiros quanto de ponto flutuante são executadas por dois somadores de endereços dedicados.

Tampão lookaside de tradução

O buffer lookaside de tradução (TLB) contém 96 entradas e tem duas portas e é totalmente associativo. Ele pode traduzir dois endereços virtuais por ciclo. Este TLB traduz endereços para instruções e dados. Quando o TLB do IFU falha, este TLB fornece a tradução para ele. A tradução para cargas e armazenamentos tem uma prioridade mais alta do que para instruções. Cada entrada TLB pode ser mapeada para uma página com um tamanho entre 4 KB a 16 MB, em incrementos que são potências de quatro.

Cache de dados

O PA-8000 possui um cache de dados com capacidade de até 4 MB. O cache de dados tem duas portas, portanto, duas leituras ou gravações podem ser realizadas durante cada ciclo. Ele tem duas portas implementando dois bancos de cache, portanto, não é realmente duas portas porque se duas leituras ou gravações fizerem referência ao mesmo banco, surge um conflito e apenas uma operação pode ser executada. Ele é acessado por dois barramentos de 64 bits, um para cada banco. As tags de cache são externas. Existem duas cópias das tags de cache para permitir acessos independentes em cada banco. O cache de dados é mapeado diretamente pelos mesmos motivos que o cache de instruções. É construído a partir de SSRAMs.

Ônibus de pista

A interface externa é o barramento de pista , um endereço de 64 bits e barramento multiplexado de dados. O PA-8000 usa um endereço físico de 40 bits , portanto, é capaz de endereçar 1 TB de memória física .

Fisica

O PA-8000 tem 3,8 milhões de transistores e mede 17,68 mm por 19,10 mm, para uma área de 337,69 mm 2 . Foi fabricado pela HP em seu processo CMOS-14C, um encolhimento de porta de 10% do processo CMOS-14. O processo CMOS-14C foi um processo de 0,5 μm, interconexão de alumínio de cinco níveis , semicondutor de óxido metálico complementar (CMOS). O dado tem 704 saliências de solda para sinais e 1.200 para energia ou terra. É empacotado em um conjunto de grade terrestre de cerâmica (LGA) de alumínio flip chip de 1.085 pad . O PA-8000 usa uma fonte de alimentação de 3,3 V.

PA-8200

O PA-8200 (PCX-U +), codinome Vulcan , foi um desenvolvimento posterior do PA-8000. Os primeiros sistemas a usar o PA-8200 foram disponibilizados em junho de 1997. O PA-8200 operava de 200 a 240 MHz e competia principalmente com o Alpha 21164 . Melhorias foram feitas para a previsão de ramificação e o TLB. A previsão de ramificação foi melhorada quadruplicando o número de entradas BHT para 1.024, o que exigiu o uso de um algoritmo de dois bits para caber sem reprojetar os circuitos circundantes; e implementando uma fila de gravação que permitiu que dois resultados de ramificação fossem registrados pelo BHT em vez de um. O número de entradas de TLB foi aumentado de 96 para 120 entradas, o que reduziu as perdas de TLB. A frequência do clock também foi melhorada por meio de um pequeno redesenho do circuito. A matriz do PA-8200 era idêntica em tamanho ao PA-8000, pois as melhorias utilizavam áreas vazias da matriz. Foi fabricado no processo CMOS-14C.

PA-8500

HP PA-8500

O PA-8500 (PCX-W), codinome Barracuda , é um desenvolvimento posterior do PA-8200. Ele foi removido no início de 1998 e foi introduzido no final de 1998 nos sistemas. As versões de produção operavam em frequências de 300 a 440 MHz, mas foi projetada para operar em até 500 MHz. As melhorias mais notáveis ​​são as frequências operacionais mais altas e a integração na matriz dos caches primários. As frequências de operação mais altas e a integração dos caches primários na mesma matriz que o núcleo foram possibilitadas pela migração para um processo de 0,25 μm. O núcleo do PA-8500 mediu 10,8 mm por 11,4 mm (123,12 mm 2 ) no novo processo, menos da metade da área do 0,5 μm PA-8200. Isso disponibilizou uma área que poderia ser usada para integração dos caches.

O PA-8500 possui um cache de instrução de 512 KB e um cache de dados de 1 MB. Outras melhorias na microarquitetura incluem um BHT maior contendo 2.048 entradas, duas vezes a capacidade do PA-8200 e um TLB maior contendo 160 entradas. O PA-8500 usa uma nova versão do barramento Runway . A nova versão opera a 125 MHz e transfere dados nas bordas crescentes e decrescentes do sinal de clock (taxa de dados dupla ou DDR) e produz 240 MT / s ou 2 GB / s de largura de banda. Como o barramento da pista é usado para transferir endereços e dados, a largura de banda utilizável é de 80% de 2 GB / s, ou cerca de 1,6 GB / s.

O PA-8500 contém 140 milhões de transistores e mede 21,3 mm por 22,0 mm (468,6 mm 2 ). Foi fabricado pela Intel Corporation em um processo CMOS de 0,25 μm com cinco níveis de interconexão de alumínio. Ele usa uma fonte de alimentação de 2,0 V. A HP não fabricou o PA-8500 por conta própria, pois parou de atualizar suas fábricas para implementar um processo mais recente do que o CMOS-14C, que era usado para fabricar os microprocessadores PA-RISC anteriores.

O PA-8500 foi embalado em um menor 544-pad land grid array (LGA) como a integração dos caches primários no die resultou na remoção dos dois barramentos de 128 bits que se comunicaram com os caches externos e seus I / O associados almofadas.

PA-8600

HP PA-8600

O PA-8600 (PCX-W +), codinome Landshark , é um desenvolvimento adicional do PA-8500 lançado em janeiro de 2000. O PA-8600 foi projetado para ser lançado em meados de 2000. Era uma versão ajustada do PA-8500 para permitir que ele alcançasse frequências de clock mais altas de 480 a 550 MHz. Ele melhorou a microarquitetura usando uma política de despejo quase menos usada recentemente (LRU) para o cache de instruções. Foi fabricado pela Intel.

PA-8700

Um microprocessador HP PA-8700

O PA-8700 (PCX-W2), codinome Piranha , é um desenvolvimento posterior do PA-8600. Introduzido em agosto de 2001, operava de 625 a 750 MHz. As melhorias foram a implementação de pré-busca de dados, uma política de substituição quase LRU para o cache de dados e um espaço de endereço físico maior de 44 bits para endereçar 16 TB de memória física. O PA-8700 também tem caches de instrução e dados maiores, com capacidade aumentada em 50% para 0,75 MB e 1,5 MB, respectivamente. O PA-8700 foi fabricado pela IBM Microelectronics em um processo CMOS de 0,18 μm de silício em isolador (SOI) com sete níveis de interconexão de cobre e dielétrico de baixo κ .

PA-8700 +

O PA-8700 + foi um desenvolvimento adicional do PA-8700 introduzido nos sistemas em meados de 2002. Ele operou a 875 MHz.

PA-8800

O PA-8800, de codinome Mako , é um desenvolvimento posterior do PA-8700. Ele foi lançado em 2004 e foi usado pela HP em sua estação de trabalho C8000 e servidores HP 9000 Superdome . Estava disponível em 0,8, 0,9 e 1,0 GHz. O PA-8800 era um projeto dual-core consistindo em dois microprocessadores PA-8700 + modificados em um único molde. Cada núcleo tem um cache de instrução de 768 KB e um cache de dados de 768 KB. Os caches primários são menores do que os do PA-8700 para permitir que ambos os núcleos caibam no mesmo molde.

As melhorias em relação ao PA-8700 são a previsão de ramificação aprimorada e a inclusão de um cache secundário externo unificado de 32 MB. O cache secundário tem largura de banda de 10 GB / se latência de 40 ciclos. É um conjunto associativo de 4 vias, indexado fisicamente e etiquetado fisicamente com um tamanho de linha de 128 bytes. O conjunto de associatividade foi escolhido para reduzir o número de pinos de E / S. O cache L2 é implementado com o uso de quatro chips de 72 Mbit (9 MB) Enhanced Memory Systems Enhanced SRAM (ESRAM), que apesar do nome, é uma implementação de 1T-SRAM - memória dinâmica de acesso aleatório (DRAM) com uma interface semelhante a SRAM . O acesso a esse cache por cada núcleo é arbitrado pelo controlador no chip e o 1 MB de tags de cache secundário também reside no chip como SRAM e é protegido por ECC. O PA-8800 usava o mesmo barramento frontal do microprocessador McKinley Itanium , que rende 6,4 GB / s de largura de banda e é compatível com os chipsets Itanium da HP, como o zx1 .

Consistia em 300 milhões de transistores, dos quais 25 milhões eram lógicos, em um molde de 23,6 mm por 15,5 mm (365,8 mm 2 ). Foi fabricado pela IBM em um processo SOI de 0,13 μm com interconexões de cobre e dielétrico de baixo κ . O PA-8800 é empacotado em uma grade de esfera de cerâmica montada em uma placa de circuito impresso (PCB) com os quatro ESRAMs, formando um módulo semelhante aos usados ​​pelos primeiros microprocessadores Itanium.

PA-8900

O PA-8900, de codinome Shortfin , era um derivado do PA-8800. Foi o último microprocessador PA-RISC a ser desenvolvido e foi introduzido em 31 de maio de 2005, quando os sistemas que usam o microprocessador se tornaram disponíveis. Ele foi usado nos servidores HP 9000 e na estação de trabalho C8000 . Ele operou a 0,8, 0,9, 1,0 e 1,1 GHz. Não é um encolhimento de dados do PA-8800, como havia rumores anteriores. O cache L2 foi duplicado em capacidade para 64 MB, tem menor latência e melhor detecção e correção de erros em caches. Ele usa o barramento de sistema McKinley e era compatível com os chipsets Itanium 2, como o HP zx1. Não houve mudanças na microarquitetura, mas a unidade de ponto flutuante e o circuito de cache no chip foram reprojetados para reduzir o consumo de energia, e cada núcleo dissipou subsequentemente aproximadamente 35 W a 1,0 GHz.

Notas

Referências

  • Barnes, Phillip (26 de fevereiro de 1999). "Uma CPU RISC de 500 MHz de 64 bits com cache de 1,5 MB no chip". Anais da Conferência Internacional de Circuitos de Estado Sólido .
  • ComputerWire (28 de junho de 2002). "HP preparando PA-8800 dual-core" . The Register .
  • Gaddis, N .; Lotz, J. (novembro de 1996). "Um microprocessador CMOS RISC de 64 b quad-issue". IEEE Journal of Solid-State Circuits 31 (11): pp. 1697–1702.
  • Gwennap, Linley (14 de novembro de 1994). "PA-8000 combina complexidade e velocidade". Relatório do microprocessador , Volume 8, Número 15.
  • Gwennap, Linley (28 de outubro de 1996). "Família HP Pumps Up PA-8x00". Relatório do microprocessador , Volume 10, Número 14.
  • Gwennap, Linley (17 de novembro de 1997). "Desempenho de auxiliares de cache de 1,5 M do PA-8500". Relatório do microprocessador .
  • Hewlett-Packard Company (2 de novembro de 1995). HP anuncia lançamento do PA-8000 para parceiros PRO . ( Comunicado de Imprensa )
  • Hill, J. Michael e Lachman, Jonathan (2000). "Um cache de 2,25 MByte de 900 MHz com CPU On Chip - Agora em SOI / Cu" . 2000 Conferência Internacional de Circuitos de Estado Sólido .
  • Hunt, D. (1995). "Recursos de desempenho avançado do PA-8000 de 64 bits". Proceedings of CompCon . pp. 123-128.
  • Johnson, David JC (16 de outubro de 2001). "Processador Mako da HP". Fórum de microprocessadores de 2001 .
  • Krewell, Kevin (22 de maio de 2000). "HP estende PA-RISC com 8700". Relatório do microprocessador .
  • Kumar, Ashok (19 de agosto de 1996). "A CPU RISC HP PA-8000" . Proceedings of Hot Chips VIII .
  • Lesartre, Greg; Hunt, Doug (1997). "PA-8500: A evolução contínua da família PA-8000". Proceedings of CompCon .
  • Pountain, Dick (julho de 1995). "HP's Speedy RISC". Byte .
  • Scott, Anne P. et al. (Agosto de 1997). "Processadores PA-RISC Superscalar Four-Way". Hewlett-Packard Journal .
  • Tsai, Li C. (16 de fevereiro de 2001). "Um processador PA-RISC de 1 GHz". Conferência Internacional de Circuitos de Estado Sólido .
  • Wermer, Sandra (8 de março de 1999). "Processador HP PA-8600 mais cedo do que o esperado". HOISe .

Leitura adicional

  • Burch, C. (1997). "PA-8000: um estudo de caso em previsão de ramais estáticos e dinâmicos". Proceedings of International Conference on Computer Design . pp. 97–105.
  • Gaddis, NB et al. (1996). "Um buffer de reordenação de instrução de 56 entradas". ISSCC Digest of Technical Papers . pp. 212–213, 447.
  • Heikes, C .; Colon-Bonet, G. (1996). "Um coprocessador de ponto flutuante duplo com uma arquitetura FMAC". ISSCC Digest of Technical Papers . pp. 354-355, 472.
  • Kumar, A. (março de 1997). "A CPU RISC HP PA-8000". IEEE Micro . pp. 27–32.
  • Lotz, J. et al. (1996). "Uma CPU RISC fora de ordem quádrupla". ISSCC Digest of Technical Papers . pp. 210-211, 446.
  • Naffzinger, S. (1996). "Projeto de somador de sub-nanossegundos de 0,5 μm 64 b". ISSCC Digest of Technical Papers . pp. 362–363.
  • PA-8000 PA-RISC Processor OpenPA.net
  • PA-8200 PA-RISC Processor OpenPA.net
  • PA-8500 PA-RISC Processor OpenPA.net
  • PA-8600 PA-RISC Processor OpenPA.net
  • PA-8700 PA-RISC Processor OpenPA.net
  • PA-8800 PA-RISC Processor OpenPA.net
  • PA-8900 PA-RISC Processor OpenPA.net