5.7.5 – Pentium III
Transcrição
5.7.5 – Pentium III
Arquitetura de Computadores Marcelo Adriano Perecim 5.7.5 – Pentium III O Pentium III é um processador de 6ª geração. Tem as mesmas características do Pentium II, apresentando algumas novidades. Os primeiros modelos de Pentium III têm núcleo com tecnologia de 0,25 µm, chamado Katmai, e operam externamente a 100 MHz. Uma segunda versão do Pentium III utiliza núcleo com tecnologia de 0,18 µm (chamado Coppermine) e opera externamente a 133 MHz. As principais diferenças entre Pentium II e o Pentium III são: • Tecnologia SSE (Streaming SIMD Extensions): são 70 novas instruções com o conceito SIMD. A idéia é parecida com a tecnologia 3Dnow! da AMD, introduzida com o processador K6-2. É a segunda geração da tecnologia MMX. • Co-processador superescalar: permite o uso simultâneo de instruções MMX e SSE e do coprocessador matemático. • Número de série: todos os processadores a partir do Pentium III têm um número de série único que permite identificar o processador através de redes, especialmente da Internet. Isso permite a identificação imediata do usuário quando este se conectar a um site em que esteja cadastrado, por exemplo. • Acesso a até 4 GB de memória usando o cache. Existem dois modelos de Pentium III: SECC-2 (Single Edge Contact Cartridge 2) e FC-PGA (Flip Chip Pin Grid Array). O primeiro é conectado à placamãe através do slot 1, dessa forma utiliza as mesmas placas-mãe desenvolvidas para o Pentium II, enquanto o Pentium III FC-PGA utiliza o padrão de pinagem soquete 370, que é o mesmo padrão de pinagem do processador Celeron. 129 Arquitetura de Computadores Marcelo Adriano Perecim Os processadores Pentium III podem ser encontrados em duas versões de barramento externo, 100 MHz e 133 MHz, e em duas versões de cache de memória: 512 KB operando na metade da freqüência do processador ou 256 KB operando na mesma freqüência do processador. No entanto, o Pentium III nomecódigo Tualatin tem 512 KB de cache L2 sendo acessado na freqüência interna do processador. Todos os modelos FC-PGA têm cache de 256 KB (ou 512 KB, no caso do Tualatin) integrado dentro do próprio processador, operando na mesma freqüência de operação interna. Já os modelos SECC-2 podem ter tanto o cache de memória L2 de 512 KB operando na metade da freqüência de operação, quanto cache de memória L2 de 256 KB operando na mesma freqüência de operação interna do processador. Neste último caso, os processadores são marcados com a Letra E após a sua freqüência de operação. Por exemplo, Pentium III-600E. Quando não há a letra E após a freqüência do processador Pentium III em forma de cartucho, significa que seu cache é de 512 KB, operando na metade da freqüência de operação interna do processador. Um sistema de letras similar é usado para identificar a freqüência de operação externa dos processadores. Processadores com a letra B após a freqüência de operação trabalham externamente a 133 MHz (como em Pentium III-600B), e os processadores que não têm a letra B trabalham externamente a 100 MHz. Os processadores que têm 256 KB de memória cache trabalhando na mesma freqüência de operação interna do processador e barramento externo de 133 MHz são marcados com as duas letras ao mesmo tempo (Pentium III-600EB, por exemplo). 130 Arquitetura de Computadores Marcelo Adriano Perecim PENTIUM III KATMAI Barramento: 100 MHz Tecnologia: 0,25 µm Cache L1: 64 KB Cache L2: 512 KB Freqüência do cache L2: metade do processador. Processador Pentium III Katmai Lançamento Transistores Tecnologia Barramento de dados Barramento de endereços Capacidade de endereçamento Clock interno Clock externo Consumo Cache L1 Cache L2 Modelo Clock Clock Interno Pentium III/450 450 MHz Pentium III/500 500 MHz Pentium III/533B 533 MHz Pentium III/550 550 MHz Pentium III/600 600 MHz Pentium III/600B 600 MHz 1999 9.500.000 0,25 µ 64 bits 36 bits 64 GB 450 – 600 MHz 100 ou 133 MHz 26 a 36 W 32 Kb 512KB, (‘half speed’) Clock Externo 100 MHz 100 MHz 133 MHz 100 MHz 100 MHz 133 MHz Multiplicador 4,5 x 5x 4x 5,5 x 6x 4,5 x Potência 26,6 W 29,3 W 31,1 W 32,2 W 36,1 W 36,1 W PENTIUM III COPPERMINE Barramento: 133 MHz Tecnologia: 0,25 µm Cache L1: 64 KB Cache L2: 256 KB Freqüência do cache L2: igual do processador. 131 Arquitetura de Computadores Marcelo Adriano Perecim PENTIUM III SOCKET 370 Barramento: 133 MHz Tecnologia: 0,18 µm Cache L1: 64 KB Cache L2: 256 KB Freqüência do cache L2: igual do processador. Processador Pentium III Coppermine Lançamento Transistores Tecnologia Barramento de dados Barramento de endereços Capacidade de endereçamento Clock interno Clock externo Consumo Cache L1 Cache L2 1999 28.000.000 0,18 µ 64 bits 36 bits 64 GB 500 – 1.133 MHz 100 ou 133 MHz 16 a 36 W 32 Kb 256KB, (‘full speed’) PENTIUM III TUALATIN Barramento: 133 MHz Tecnologia: 0,13 µm Cache L1: 64 KB Cache L2: 512 KB Freqüência do cache L2: igual do processador. Processador Pentium III/1.13 Pentium III/1.26 Clock Interno 1.13 GHz 1.26 GHz Clock Externo 133 MHz 133 MHz Cache L2 512 KB 512 KB CPUID 06Bxh 06Bxh 132 Arquitetura de Computadores Marcelo Adriano Perecim Processador Pentium III Tualatin Lançamento Transistores Tecnologia Barramento de dados Barramento de endereços Capacidade de endereçamento Clock interno Clock externo Consumo Cache L1 Cache L2 2001 28.000.000 0,13 µ 64 bits 36 bits 64 GB 1.133 MHz e superiores 133 MHz A partir de 29W 32 Kb 256KB ou 512 KB A Intel passou a utilizar a nova tecnologia de 0,13 µm em seus novos processadores Pentium III para resolver problemas encontrados no Pentium III Coppermine. Este processador ao operar com clocks superiores a 1GHz, mas especificamente 1.13 GHz, apresentou problemas de travamento que resultaram em um recall (unidades já vendidas, foram recolhidas). Assim, corrigiu este problema, criando um novo núcleo, para o processador Pentium III chamado Tualatin. O modelo Tualatin passa a trabalhar com tensão externa de 2,5 volts e o núcleo Coppermine trabalha com 3,3 volts. Assim para fazer um upgrade do processador Pentium III Coppermine para o Tualatin deve-se verificar se a placamãe aceita a voltagem correta. • Desempenho Existem modelos diferentes de Pentium III com a mesma freqüência de operação sendo vendidos no mercado. Um exemplo marcante é o do Pentium III de 600 MHz, que é encontrado em quatro versões diferentes: Pentium III-600, Pentium III-600B, Pentium III-600E e Pentium III-600EB. Os modelos que operam externamente a 133 MHz oferecem um desempenho superior aos modelos que operam a 100 MHz, já que a taxa de transferência de acesso à memória passará de 800 MB/s (100 MHz) para 1.064 MB/s (133 MHz). Assim, os processadores Pentium III-600B e Pentium III-600EB têm desempenho maior do que os processadores Pentium III-600 e Pentium III600E, mesmo operando internamente à mesma freqüência de operação. Segundo (TORRES, 2001), o cache L2, apesar de ter sido diminuído de tamanho nos modelos E, passando de 512 KB para 256 KB, a sua freqüência de operação aumentou. Foi verificado em testes que o desempenho dos modelos com 256 KB de cache é similar aos dos modelos com 512 KB de cache por esse motivo. 133 Arquitetura de Computadores Marcelo Adriano Perecim • SSE (Streaming SIMD Extensions) A tecnologia SSE acrescenta oito novos registradores de 128 bits ao processador e funciona de modo similar à tecnologia MMX. Enquanto a tecnologia MMX tem instruções que basicamente operam com números inteiros (isto é, são instruções simples, como soma, subtração e comparação de bits), a tecnologia SSE apresenta instruções que trabalham com o mesmo conceito da tecnologia MMX (SIMD), porém com instruções que utilizam bastante o co-processador matemático – o que certamente agilizará o processamento de programas 3D e de reconhecimento de voz escritos utilizando essas novas instruções. Da mesma forma que a tecnologia MMX, o programa deverá ser escrito para a tecnologia SSE de modo a aproveitar os benefícios desse conjunto de instruções. É importante notar que a Intel, nos anúncios do processador Pentium III, vende a idéia de que com essas instruções o processador fica mais rápido para navegar na Internet. Isso é pura jogada de marketing. A velocidade de navegação na Internet não depende do processador da máquina, mas sim do modem ou da placa de rede que está conectada ao micro. Esse aumento de velocidade, segundo a Intel, seria conseguido porque as instruções SSE foram criadas especificamente para aumentar a velocidade de navegação na Internet. Isso só seria verdadeiro se os browsers para a navegação na Internet fossem escritos usando essas instruções, o que não ocorre. • Número de Série A idéia principal de colocar um número de série dentro de um processador e poder executar uma identificação remota através da Internet, para que um determinado site quem é o usuário. As aplicações práticas são enormes, a começar por não precisar fazer uma identificação manual do usuário em servidores seguros em sites de acesso restrito. A Intel promove a idéia de que o Pentium III é o melhor processador para navegar na Internet: quanto mais máquinas equipadas com processadores Pentium III e posteriores existirem conectadas à Internet, melhor para Intel, pois facilita o trabalho de vender uma solução de servidor de comércio eletrônico usando tecnologia para empresas de comércio eletrônico. Esse número é gravado dentro da pastilha de silício do processador e não existem dois processadores com números de série iguais, o que parece ser uma solução bastante inteligente. Entretanto, essa solução apresenta uma polêmica em torno da privacidade, pois alguns sites da Internet poderiam buscar informações sobre o usuário sem a permissão do mesmo, pois para ler o número de série do processador é necessário executar uma rotina no micro do usuário. Quando a solicitação de leitura do número de série do processador for efetuada por um site, o browser perguntará se o usuário permite essa leitura. O número de série pode ser desabilitado, através do setup da placa-mãe. 134 Arquitetura de Computadores Marcelo Adriano Perecim • Identificando Processadores Pentium III Algumas placas-mãe mais antigas podem identificar o Pentium III instalados como se fosse um Pentium II. Se isso ocorrer, basta executar um upgrade de BIOS na placa-mãe. Através da instrução CPUID, o Pentium III retornará os mesmos valores do Pentium II, com exceção do campo Modelo, que terá o valor 7. O Pentium III Xeon retorna os mesmos valores do Pentium III. Para diferencia-los, basta observar a linha indicando o tamanho e tipo do cache de memória L2. Se houver 1 MB ou 2 MB de cache L2, trata-se de um processador Pentium III Xeon. Se o programa indicar 512 KB de cache, o processador pode ser um Pentium III ou Pentium III Xeon com 512 KB de cache. A diferenciação desse dois modelos pode ser feita pela velocidade de acesso ao cache. 135 Arquitetura de Computadores Marcelo Adriano Perecim • Desempenho • Placa-mãe A placa-mãe utilizada pelo processador Pentium III depende de seu modelo. A princípio, processadores Pentium III SECC-2 utilizam placas-mãe slot 1 –que é o mesmo tipo de placa-mãe desenvolvida para o processador Pentium II, e processadores Pentium III FC-PGA utilizam placas-mãe soquete 370, que é o mesmo tipo de placa-mãe desenvolvida para o processador Celeron. Além de ter o mesmo tipo de conector usado pelo processador, a placamãe precisa ser capaz de fornecer a freqüência de operação externa requerida pelo processador: 100 MHz ou 133 MHz, dependendo do modelo. Assim, nem todas as placas-mãe slot 1 servem para os processadores Pentium III SECC-2, bem como nem todas as placas-mãe soquete 370 servem para os processadores Pentium III FC-PGA. Os modelos de Pentium III de 100 MHz necessitam obrigatoriamente de memórias do tipo PC-100, enquanto os modelos de 133 MHz devem utilizar memórias PC-133. 136 Arquitetura de Computadores Marcelo Adriano Perecim 5.7.6 – Pentium III Xeon O Pentium III Xeon é um processador Pentium II Xeon com as características do Pentium III adicionadas, como a tecnologia SSE e número de série. Existem dois núcleos de Pentium III Xeon: Tanner, que utiliza tecnologia de 0,25 µm e trabalha externamente a 100 MHz, e Cascades, que utiliza tecnologia de 0,18 µm e trabalha externamente a 133 MHz. Assim como o Pentium II Xeon esse processador utiliza slot 2. O funcionamento do Pentium III Xeon é exatamente igual ao do Pentium II Xeon. Clocks (MHz) 500, 550 600 a 866 700 933, 1000 900 Modelo 500 / 512KB 500 / 1MB 500 / 2MB 550 / 512KB 550 / 1MB 550 / 2MB 600 / 256KB 667 / 256KB 733 / 256KB 800 / 256KB 866 / 256KB 933 / 256KB 1000 / 256KB 700 / 1MB 700 / 2MB 900 / 2MB Tecnologia 0,25 µm 0,18 µm 0,18 µm 0,18 µm 0,18 µm Clock Interno 500 MHz 500 MHz 500 MHz 550 MHz 550 MHz 550 MHz 600 MHz 667 MHz 733 MHz 800 MHz 866 MHz 933 MHz 1000 MHz 700 MHz 700 MHz 900 MHz Cache L2 512KB, 1MB, 2 MB (não integrada) 256 KB (integrada) 1 MB, 2 MB (integrada) 256 KB (integrada) 2MB (integrada) Clock Externo 100 MHz 100 MHz 100 MHz 100 MHz 100 MHz 100 MHz 100 MHz 133 MHz 133 MHz 133 MHz 133 MHz 133 MHz 133 MHz 100 MHz 100 MHz 100 MHz Multiplicador 5x 5x 5x 5,5 x 5,5 x 5,5 x 4,5 x 5x 5,5 x 6x 6,5 x 7x 7,5 x 7x 7x 9x Potência 40 W 47 W 39,6 W 37,8 W 37,8 W 43,2 W 21,6 W 23,9 W 26,2 W 28,5 W 30,8 W 33,2 W 34,6 W 33,2 W 33,2 W 40,8 W 137 Arquitetura de Computadores Marcelo Adriano Perecim 5.8.1 – Processadores de 7ª Geração O primeiro processador Intel de 7ª geração lançado no mercado chama-se Pentium 4. Apesar de sua unidade de execução trabalhar de maneira similar à unidade de execução dos processadores de 6ª geração (com recursos de execução fora de ordem, por exemplo, sua arquitetura interna apresenta algumas grandes diferenças em relação a arquitetura interna dos processadores de 6ª geração. Comercialmente, a Intel está chamando a arquitetura interna dos processadores de 7ª geração de Netburst. As principais características são: • Barramento externo: O cache externo dos processadores de 7ª geração transfere quatro dados por pulso de clock, e não somente um, como é o usual para os demais processadores da Intel. Com isso, o desempenho do barramento externo é quatro vezes maior do que um barramento externo convencional que opere com o mesmo clock. Os primeiros modelos de Pentium 4 operam externamente com um clock de 100 MHz, atingindo uma taxa de transferência máxima de 3,2 GB/s, em vez de 800 MB/s, que é a taxa nominal de um barramento de 100 MHz convencional. Em muitos lugares, estará escrito que o barramento externo do Pentium 4 opera a 400 MHz. Isso não é verdade. Fisicamente falando, o barramento externo desse processador opera a 100 MHz, mas tem um desempenho como se estivesse operando a 400 MHz. O grande problema dessa alta taxa de transferência é que o micro necessariamente deverá usar uma memória RAM capaz de operar tão rapidamente, ou então não haverá ganho algum de desempenho. • Cache L1: O cache L1 tem uma arquitetura totalmente diferente de todos os demais processadores. Também é dividido em dois, um cache de dados (que no Pentium 4 é de apenas 8 KB, porém usando um caminho de 256 bits entre si e o cache L2) e um cache de instruções. Só que o cache de instruções foi posicionado de maneira diferente. Em vez de estar antes da unidade de busca e a unidade de busca pegar dados desse cache, agora está localizado entre o decodificador de instruções (o decodificador CISC/RISC) e a unidade de execução, passando a ser chamado de cache de microinstruções. • Renomeamento de registradores: Na arquitetura P6, o processador tinha 40 registradores de uso interno para renomear os oito registradores tradicionais da arquitetura x86. Nos processadores de 7ª geração, há 128 registradores internos. • Instruções SSE2: Foi criada a terceira geração da tecnologia MMX, chamada SSE2 (Streaming SIMD Extensions 2). São 144 novas instruções usando o mesmo conceito SIMD introduzido pela tecnologia MMX, porém manipulando registradores de 128 bits (assim como as instruções SSE e diferente das instruções MMX, que só manipulavam 64 bits) e tendo muitas instruções de ponto flutuante. 138 Arquitetura de Computadores Marcelo Adriano Perecim • Hiperpipeline O pipeline dos processadores de 7ª geração é muito maior, isto é, tem muito mais estágios que o pipeline dos processadores de 6ª geração. Enquanto a execução de uma instrução em processadores de 6ª geração é dividida em 11 etapas, nos processadores de 7ª geração a execução de uma instrução é dividida em 20 etapas (no 486 e no Pentium as instruções eram executadas em apenas cinco etapas). Por ter um número tão alto de estágios, a princípio uma instrução em um processador Pentium 4 demora mais tempo para ser executada do que seria em um processador Pentium III! Basta lembrar que cada etapa demora pelo menos 1 pulso de clock. Dessa forma, uma instrução demora no Pentium 4 no mínimo 20 pulsos de clock para ser executada, enquanto que no Pentium III uma instrução demora no mínimo 11 pulsos de clock. É claro que esta comparação é teórica, pois não leva em conta os demais recursos presentes na arquitetura do processador criados para o aumento de desempenho, justamente para compensar esse aumento no tamanho do pipeline. Um pipeline tão grande quanto esse é classificado como hiperpipeline. Se por um lado um pipeline com muitos estágios traz a desvantagem de fazer com que uma instrução demore muito tempo para ser totalmente processada, por outro permite que o processador tenha um clock interno maior. Esse é o motivo técnico pelo qual os projetistas dessa arquitetura optaram por um hiperpipeline. A grande diferença entre os dois pipelines é a ausência, nos processadores de 7ª geração, das etapas de decodificação. Isso ocorre porque os processadores de 7ª geração, em vez de um cache L1 de instruções, têm um cache de microinstruções, que armazena as microinstruções já decodificadas. Assim, quando há um “erro” na previsão de desvio, o processador não precisa decodificar novamente as instruções, as mesmas já estão decodificadas no cache de microinstruções. 139 Arquitetura de Computadores Marcelo Adriano Perecim Ponteiro da próxima microinstrução (estágio 1) Ponteiro da próxima microinstrução (estágio 2) Busca próxima microinstrução (estágio 1) Busca próxima microinstrução (estágio 2) Drive Alocação de recursos Renomeamento de registradores (estágio 1) Renomeamento de registradores (estágio 2) Fila Agendamento (estágio 1) Agendamento (estágio 2) Agendamento (estágio 3) Envio (estágio 1) Envio (estágio 2) Leitura dos registradores internos (estágio 1) Leitura dos registradores internos (estágio 2) Execução Flags Verificação dos desvios Drive Os passos para a execução de uma instrução: 1. Ponteiro da próxima microinstrução: Verifica, no buffer de destino de desvio, qual é a próxima microinstrução a ser executada. Esta etapa demora 2 estágios. 140 Arquitetura de Computadores Marcelo Adriano Perecim 2. Busca próxima microinstrução: Carrega, do cache de microinstruções, essa microinstrução. Esta etapa demora 2 estágios. 3. Drive: Envia a microinstrução a ser executada ao circuito de alocação de recursos e de renomeamento de registradores. 4. Alocação de recursos: Verifica quais recursos serão alocados pela microinstrução, como, por exemplo, o buffer de carga (load) ou o buffer de armazenamento (store) 5. Renomeação de registradores: Renomeia os registradores x86 (oito registradores) em registradores internos do processador (128 registradores), em processo similar ao que ocorre com os processadores de 6ª geração. Esta etapa demora 2 estágios. 6. Fila: As microinstruções são armazenadas em filas de acordo com o seu tipo (por exemplo, inteiro ou ponto flutuante) até haver espaço no agendador de execução corresponde ao tipo de instrução a ser executada. 7. Agendamento: As microinstruções são agendadas de acordo com o seu tipo. Antes de chegar nesta etapa, as microinstruções são entregues em ordem. Nesta etapa, o agendador reordena as instruções de forma que estas sejam executadas da melhor forma possível, isto é, que não fique nenhuma unidade de execução vazia. Os agendadores são o coração da execução fora de ordem dos processadores de 7ª geração. Esta etapa demora 3 estágios. 8. Envio: As microinstruções são enviadas às unidades de execução adequadas. Esta etapa é dividida em dois estágios. 9. Leitura dos registradores internos: Os registradores internos (armazenados no pool de instruções) são lidos. Esta etapa é dividida em dois estágios. 10. Execução: As microinstruções são executadas nas unidades de execução. Assim como ocorre nos processadores de 6ª geração, as instruções mais usuais (que são convertidas em apenas uma microinstrução) conseguem ser executadas em apenas um pulso de clock. Os processadores de 7ª geração têm apenas quatro unidades de execução (os de 6ª geração têm cinco). A princípio, portanto, isso só permitia a execução de quatro instruções simultaneamente. Acontece que em duas dessas unidades são enviadas duas instruções por pulso de clock. Dessa forma, o desempenho máximo das unidades de execução dos processadores de 7ª geração é de seis instruções por pulso de clock. 11. Flags: Atualiza os flags do processador. 141 Arquitetura de Computadores Marcelo Adriano Perecim 12. Verificação de desvios: Verifica se o desvio tomado pelo programa é o mesmo que o previsto pelo circuito de previsão de desvio. 13. Drive: Envia o resultado dessa verificação para o buffer de destino de desvio localizado na entrada do processador. O circuito de previsão de desvios dos processadores de 7ª geração foi totalmente redesenhado. Isso faz com que o nível de erro desse circuito seja três vezes menor do que o nível de erro do circuito de previsão de desvio dos processadores de 6ª geração • Cache L1 A arquitetura usada pelo cache de memória L1 é completamente diferente. O cache de dados é conectado ao cache L2 através de um caminho de 256 bits, permitindo que o desempenho nessa comunicação seja quatro vezes maior do que o desempenho dos processadores anteriores, que usam um caminho de 64 bits. Em um processador Pentium 4 de 1,5 GHz, a taxa de transferência entre o cache L2 e o cache L1 de dados é de 48 GB/s, enquanto em um hipotético processador Pentium III de 1,5 GHz essa taxa seria de 12 GB/s. Já o cache de instruções foi alterado de local. Em todos os processadores anteriores, o cache L1 de instruções era colocado na entrada da unidade de busca de informações. Assim, essa unidade buscava instruções desse cache. Caso a instrução necessária não estivesse no cache, a instrução teria de ser buscada do cache L2 e, caso também não estivesse no cache L2, então a instrução teria de ser lida diretamente da memória RAM. Nos processadores de 7ª geração, o cache L1 de instruções passou a estar entre o decodificador de instruções (o decodificador CISC/RISC) e as unidades de execução, passando a ser chamado de cache de microinstruções (execution trace cache). Em vez de armazenar instruções a serem codificadas, o cache de instruções passa agora a armazenar instruções já decodificadas. Esse cache é capaz de armazenar 12.288 microinstruções RISC. Como cada microinstrução RISC dos processadores Intel de 7ª geração é de 100 bits, então o cache de microinstruções é de 150 KB. Essa mudança na arquitetura do cache o torna muito mais rápido, especialmente quando há um loop (while, for e repeat) no programa, o que é uma situação muito comum. Nos processadores anteriores, quando havia um loop no programa, as instruções pertencentes a um loop teriam de ser decodificadas uma a uma novamente. Na arquitetura de 7ª geração, um loop faz com que as instruções sejam buscadas diretamente no cache de microinstruções, sem necessitar uma nova decodificação, já que as mesmas foram recentemente decodificadas e, com isso, ainda estão armazenadas nesse cache. 142 Arquitetura de Computadores Marcelo Adriano Perecim • Decodificador CISC/RISC Ao contrário dos processadores de 6ª geração, o decodificador CISC/RISC dos processadores de 7ª geração tem apenas uma única unidade de decodificação. O decodificador dos processadores de 6ª geração tinha três unidades de decodificação, o que permitia a decodificação simultânea de até três instruções x86 em microinstruções RISC. A princípio, o fato de os processadores de 7ª geração só terem um único decodificador pode parecer uma desvantagem em comparação aos processadores de 6ª geração, porém nos processadores de 7ª geração as instruções x86 são decodificadas menos vezes do que nos processadores de 6ª geração, por conta da existência do cache de microinstruções. 5.8.2 – Pentium 4 O processador Pentium 4 é o primeiro processador Intel de 7ª geração lançado. Suas características são: • Cache L1: Cache L1 de dados de 8 KB. Não tem cache de instruções. Em vez disso, tem um cache de microinstruções que é capaz de armazenar 12.288 microinstruções. Cada microinstrução da arquitetura de 7ª geração tem 100 bits, significando que o cache de microinstrução possui 150 KB. • Cache L2: Cache L2 de 256 KB operando na mesma freqüência de operação interna do processador. Comunica-se com o cache L1 de dados através de um barramento dedicado de 256 bits, fazendo com que essa comunicação seja quatro vezes mais rápida do que era nos processadores da geração passada. • Arquitetura superescalar: Unidade de execução superescalar, com sete unidades de execução. As unidades de execução simples operam internamente com o dobro do clock interno do processador. • Barramento externo: O barramento externo do Pentium 4 opera transferindo quatro dados por pulso de clock, em vez de apenas um, como era nos processadores anteriores. Fisicamente falando, utiliza um barramento externo de 100 MHz e tem o desempenho de como se estivesse operando a 400 MHz, mas fisicamente continua operando a 100 MHz, obtendo uma transferência de 3,2 GB/s. A memória RAM deve ser capaz de transferir dados a esta velocidade. • Soquete 423: Os processadores Pentium 4 atualmente disponíveis no mercado têm um padrão de pinagem chamado soquete 423, necessitando de um novo tipo de placa-mãe. Os modelos mais recentes do Pentium 4 utiliza um padrão chamado soquete 478. 143 Arquitetura de Computadores Marcelo Adriano Perecim • Identificando Processadores Pentium 4 Os processadores Pentium 4 podem ser facilmente identificados através da instrução CPUID, implementada por diversos programas de hardware, tais como o Wcpuid, Hwinfo, etc. O processador retornará as seguintes informações: • String: Esta é a string que a instrução CPUID coloca em determinados registradores do processador. Todos os processadores da Intel retornam a string Genuine Intel. • Tipo(type): Se o processador está operando em modo mono ou multiprocessado. Como na maioria das vezes trabalhasse com apenas um processador instalado na placa-mãe, o programa apontará que o micro tem apenas um processador (Single). • Família (family): A família do processador. Se for um processador que utiliza arquitetura Netburst, esse valor será 7. • Modelo (model): Informa qual é o modelo do processador dentro da família. Para processadors Pentium 4, a instrução retorna o valor zero. • Stepping: Número da revisão do processador. 144 Arquitetura de Computadores Marcelo Adriano Perecim • Placa-mãe A figura abaixo mostra uma placa-mãe com soquete 423. • Tecnologia HyperThreading A tecnologia HyperThreading, desenvolvida pela Intel, é mais uma técnica criada para oferecer maior eficiência na utilização dos recursos de execução do processador. Segundo a Intel, a HyperThreading oferece um aumento de desempenho de até 30% dependendo da configuração do sistema. A tecnologia HyperThreading simula em um único processador físico dois processadores lógicos. Cada processador lógico recebe seu próprio controlador de interrupção programável (APIC) e conjunto de registradores. Os outros recursos do processador físico, tais como, cache de memória, unidade de execução, unidade lógica e aritmética, unidade de ponto flutuante e barramentos, são compartilhados entre os processadores lógicos. Em termos de software, significa que o sistema operacional pode enviar tarefas para os processadores lógicos como se estivesse enviando para processadores físicos em um sistema de multiprocessamento. 145 Arquitetura de Computadores Marcelo Adriano Perecim No diagrama, os registradores e controlador de interrupção foram chamados de “AS“. Na área denominada de “recursos de execução” estão todos os recursos que o processador necessita para executar as instruções. O processador da esquerda não suporta a tecnologia Hyper-Threading. O processador da direita suporta, duplicando seus registradores e controladores e compartilhado os recursos de execução entre os processadores lógicos, parecendo assim um sistema com dois processadores. Os modernos sistemas operacionais são SMP (Multiprocessamento Simétrico), ou seja, podem trabalhar com mais de um processador instalado no sistema, dividindo às tarefas entre os mesmos. A tecnologia HyperThreading estende essa idéia de forma que os sistema operacionais e software aplicativos dividam as tarefas entre os processadores lógicos. Sistema Multiprocessado sem tecnologia HyperThreading. 146 Arquitetura de Computadores Marcelo Adriano Perecim Processador com tecnologia Hyper-Threading. As instruções CPUID são utilizadas pelo sistema operacional e aplicativos para identificar a presença da tecnologia HyperThreading nos processadores. Para quem não sabe, as instruções CPUID servem para informar ao software as características do processador instalado. Obviamente, os sistemas operacionais e software aplicativos têm que suportar a tecnologia HyperThreading para usufruir dos processamentos simultâneos. A Intel lançou a versão de 3 e 3.06 GHz do Pentium 4 com a tecnologia HyperThreading. Modelo Pentium 4 1.3 Pentium 4 1.4 Pentium 4 1.5 Pentium 4 1.6 Pentium 4 1.7 Pentium 4 1.8 Pentium 4 2.0 Pentium 4 2.2 Pentium 4 2.26 Pentium 4 2.4 Pentium 4 2.4 Pentium 4 2.5 Pentium 4 2.53 Pentium 4 2.6 Pentium 4 2.66 Pentium 4 2.8 Pentium 4 3.0 Pentium 4 3.06 Clock Interno 1300 MHz 1400 MHz 1500 MHz 1600 MHz 1700 MHz 1800 MHz 2000 MHz 2200 MHz 2260 MHz 2400 MHz 2400 MHz 2500 MHz 2530 MHz 2600 MHz 2660 MHz 2800 MHz 3000 MHz 3060 MHz Clock Externo 400 MHz 400 MHz 400 MHz 400 MHz 400 MHz 400 MHz 400 MHz 400 MHz 533 MHz 400 MHz 533 MHz 400 MHz 533 MHz 400 MHz 533 MHz 533 MHz 800 MHz 533 MHz Voltagem 1.75 V 1.75 V 1.75 V 1.75 V 1.75 V 1.75 V Multiplicador 13 x 14 x 15 x 16 x 17 x 18 x 20 x 22 x 17 x 24 x 18 x 25 x 19 x 26 x 20 x 21 x 15 x 23 x Potência 51,6 W 54,7 W 57,8 W 61,0 W 64,0 W 66,7 W 147 Arquitetura de Computadores Marcelo Adriano Perecim 148 Arquitetura de Computadores Marcelo Adriano Perecim 149 Arquitetura de Computadores Marcelo Adriano Perecim Processador Pentium 4 Lançamento Transistores Tecnologia Barramento de dados Barramento de endereços Capacidade de endereçamento Clock interno Clock externo Consumo Cache L1 Cache L2 2000 42.000.000 0,18 µ e 0,13 µ 64 bits 36 bits 64 GB 1.300 MHz e superiores 400 MHz A partir de 51W 8 KB + 12 KB (microoperações) 256KB 150 Arquitetura de Computadores Marcelo Adriano Perecim 5.8.3 – Pentium 4 Prescott A Intel lança o Pentium 4 com núcleo Prescott, o primeiro processador para PCs usando a tecnologia de 90 nanômetros (0,09 mícron). Com este novo núcleo, a Intel conseguirá colocar o seu Pentium 4 rodando a clocks ainda mais elevados. O núcleo Prescott será usado em uma série de processadores Pentium 4, e hoje foram lançados processadores Pentium 4 "Prescott" com clocks de 2,8 GHz, 3 GHz, 3,2 GHz e 3,4 GHz, todos rodando externamente a 800 MHz (200 MHz transferindo quatro dados por pulso de clock). Para diferenciar os processadores Pentium 4 "comuns" (núcleo Northwood) dos Pentium 4 com núcleo Prescott, a Intel está utilizando a letra "E" como indicador para o novo núcleo. Desta forma, para as freqüências de operação listadas acima, há dois modelos de núcleo: Northwood e Prescott, este quando houver a letra "E" após a indicação de freqüência do processador (ex: Pentium 4 3,2 GHz E). A Intel lançou ainda uma segunda versão do modelo de 2,8 GHz, chamada "A". Esta versão roda externamente a 533 MHz (133 MHz QDR) e não tem a tecnologia HyperThreading, e é voltada para usuários que queiram fazer upgrade para um Pentium 4 com núcleo Prescott mas sua placa-mãe não aceita processadores Pentium 4 de 800 MHz. Compatibilidade Os processadores Pentium 4 com núcleo Prescott continuam usando o tradicional soquete 478 do Pentium 4, significando que esta nova safra de processadores pode ser instalada nas placas-mãe já existentes – desde que ela seja compatível com o barramento externo de 800 MHz e consiga fornecer a tensão e corrente requeridas pelo novo processador. Desempenho Os modelos com núcleo Prescott são mais rápidos do que os modelos com núcleo Northwood quando rodando sob um mesmo clock (isto é, o Pentium 4 3,2 GHz "E" é mais rápido do que o Pentium 4 3,2 GHz), pois há diferenças internas significativas que aumentaram o desempenho do Pentium 4 Prescott (Pentium 4 "E"). 151 Arquitetura de Computadores Marcelo Adriano Perecim A primeira grande diferença está no cache de memória L1 de dados, que aumentou de 8 KB para 16 KB, fazendo com que o cache L1 aumentasse de 158 KB para 166 KB. Já o cache L2 foi aumentado de 512 KB para 1 MB. Além destas duas modificações – que por si só aumentam o desempenho do processador – foram feitas melhorias nos circuitos de HyperThreading e previsão de desvio deste novo núcleo de Pentium 4. Segundo a Intel, o desempenho de processamento do Pentium 4 Prescott de 3,4 GHz é 5,18% maior que o do Pentium 4 Northwood de 3,4 GHz, de acordo com o programa SPEC CPU2000, e o desempenho de processamento matemático do Pentium 4 Prescott de 3,4 GHz é 6,03% maior que o do Pentium 4 Northwood de 3,4 GHz, de acordo com o mesmo programa. Instruções SSE3 Outra novidade do novo núcleo Prescott são as novas instruções SSE3. São 13 novas instruções do tipo MMX que agiliza funções de software tais como codificação de vídeo, conversão de números de ponto flutuante em inteiros e sincronização de threads. A existência destas novas instruções, por si só, não aumenta o desempenho do processador. O motivo é simples: para usá-las, os programas terão de ser compilados tendo elas em mente. Assim, somente a próxima geração de programas (tais como aplicativos gráficos, aplicativos de codificação de áudio e vídeo e jogos) possivelmente utilizará estas instruções, sendo que eventualmente a Microsoft pode adotar de alguma forma o suporte a estas instruções em algum driver adicional para o sistema operacional (através de um service pack ou se uma atualização disponível no Windows Update), nas novas versões de codec de vídeo e/ou na próxima versão do DirectX. Desta forma, quando futuras versões de programas suportando as instruções SSE3 forem lançadas, o micro ficará mais rápido, caso seja equipado com um processador que tenha tais instruções. O motivo é simples. Instruções do tipo MMX/SSE substituem tarefas que antes necessitariam de várias instruções para serem efetuadas. Uma única instrução deste tipo pode substituir uma rotina que, caso o processador não tivesse este conjunto de instruções, teria de executar dez instruções, por exemplo. Gerenciamento Térmico O Pentium 4 (todos os modelos) diminuem automaticamente o clock do processador caso detectem superaquecimento do processador. Diminuindo o clock, a potência dissipada é menor e, com isto, a temperatura do processador cai. Mas até agora, esta diminuição de clock estava exclusivamente conjugada à temperatura do processador. 152 Arquitetura de Computadores Marcelo Adriano Perecim Os novos processadores Pentium 4 "E" possuem um pino que não era usado nas versões anteriores do Pentium 4. Chamado PROCHOT#, este pino permite que aplicações externas ao processador diminuam o seu clock caso encontrem algum problema com a temperatura do sistema. Por exemplo, o circuito regulador de voltagem pode, em teoria, diminuir o clock do processador caso ele detecte um superaquecimento em seus transistores e bobinas, evitando, assim, a queima de algum componente da placa-mãe. Por falar em gerenciamento térmico, as necessidades de dissipação térmica do novo núcleo Prescott são maiores, o que inevitavelmente faz com que os novos processadores Pentium 4 baseados neste núcleo necessitem de um cooler mais potente. Processador Pentium 4 Northwood até 2,8 GHz Potência 64 W Pentium 4 Northwood a partir de 3 GHz 82 W Pentium 4 Prescott até 3 GHz 89 W Pentium 4 Prescott a partir de 3,2 GHz 103 W Repare que os processadores Pentium 4 Prescott de até 3 GHz necessitam de um cooler capaz de dissipar 89 W de potência, potência maior que o Pentium 4 de 3,4 GHz! Os processadores Prescott a partir de 3,2 GHz necessitam dissipar 103 W, um valor bem maior que os 82 W que os processadores Pentium 4 "normais" dissipam. Se você comprar um Pentium 4 "Prescott" in-a-box, você não terá problemas, pois os modelos "box" já vêm com o cooler adequado. Entretanto, se você trabalha montando micros e comprar o modelo OEM, muita atenção para a escolha do cooler correto, ou você encontrará problemas de superaquecimento. 153 Arquitetura de Computadores Marcelo Adriano Perecim 5.8.4 – Pentium 4 de 64 bits A Intel lançou o Pentium 4 de 64 bits para concorrer de igual para igual com o Athlon 64 da AMD. Foram lançados os seguintes modelos: 630 (3 GHz), 640 (3,2 GHz), 650 (3,4 GHz), 660 (3,6 GHz) e 670 (3,8 GHz). As principais características desses processadores são: Extensões de 64 bits (EM64T) Soquete 775 Barramento externo de 800 MHz (200 MHz x 4) Tecnologia HyperThreading Tecnologia SpeedStep Tecnologia XD (eXecute Disable) Cache de memória L1 de 16 KB para dado e de 150 KB para instruções Cache de memória L2 de 2 MB Além desses processadores, a Intel lançou ainda o Pentium 4 Extreme Edition de 3,73 GHz com o novo barramento externo de 1.066 MHz e 2 MB de memória cache L2, que promete ser o mais rápido da Intel. Potência Os processadores Pentium 4 630, 640 e 650 dissipam uma potência máxima de 84 W, enquanto os modelos 660 e 670 esse número pula para impressionantes 115 W. Nomenclatura Os processadores Pentium 4 com tecnologia de 64 bits possuem sua numeração começando por "6", enquanto os processadores sem esta característica começam por "5". Assim, fica fácil saber se o Pentium 4 tem ou não 154 Arquitetura de Computadores Marcelo Adriano Perecim esta característica. Por exemplo, tanto o Pentium 4 540 quanto o 640 rodam a 3,2 GHz, mas o 640 tem a tecnologia de 64 bits e as demais características não presentes em outros Pentium 4 – em especial a tecnologia SpeedStep e a memória cache L2 de 2 MB. A Tecnologia de 64 bits da Intel (EM64T) Para usar a tecnologia de 64 bits é necessário ter um sistema de 64 bits compatível com esta tecnologia instalado na máquina. Por enquanto, temos somente algumas versões de Linux capazes de reconhecer esta tecnologia (SuSE SL9.1 e SLES9; a versão Red Hat Enterprise Linux 3 update 2 trará suporte a esta tecnologia mas será lançado somente em maio). Os usuários Windows terão de esperar até o Windows 64 ser lançado. Você pode ler mais sobre esta tecnologia em http://www.intel.com/technology/64bitextensions. Importante notar que esta tecnologia não tem nada a ver com a tecnologia de 64 bits usada pelos processadores Itanium (IA-64), e que programas de 32 bits rodam sem problema neste processador. A principal vantagem desta tecnologia é fazer com que o processador consiga acessar mais memória RAM. Os processadores sem esta tecnologia acessam a até 4 GB de memória RAM. Já os processadores Pentium 4 série 6 são capazes de acessar até 32 TB de memória RAM. É claro que a quantidade máxima de memória que se pode ter no micro é limitada pelo chipset usado pela placa-mãe (já que é no chipset que está o circuito controlador de memória) e também pela quantidade de soquetes que a placa-mãe possui. Tecnologia SpeedStep Outra novidade dos processadores Pentium 4 da série 6 é a tecnologia SpeedStep, presente nos processadores Intel voltados para notebooks. Esta tecnologia permite diminuir o clock do processador – e com isso o consumo do micro e o calor gerado – e a velocidade da ventoinha (significando menos barulho) em momentos em que o usuário não esteja usando o seu micro no máximo de sua capacidade. Tecnologia XD (eXecute Disable) Esta tecnologia impede que determinados tipos de vírus ataquem o micro, desde que seu sistema operacional também tenha suporte à esta tecnologia. No 155 Arquitetura de Computadores Marcelo Adriano Perecim universo Windows, é necessário usar o Windows XP com o Service Pack 2 instalado para que esta tecnologia funcione. Ela funciona usando um bit que indica se a área de memória é usada por dados ou por programas (daí vem outro sinônimo desta tecnologia – bit XD). Se um código que está instalado em uma área de memória destinada a dados é executado, o sistema operacional bloqueia sua execução, já que este não é um comportamento normal (dados não podem ser "executados" – vírus normalmente se fazer passar por dados para serem executados). Mais Memória Cache O processadores Pentium 4 da série 6 possuem uma maior quantidade de memória cache L2, que passou a ser de 2 MB, o dobro da do Pentium 4 "comum" da série 5. Em teoria, quanto mais memória desse tipo o processador tiver, mais rápido ele será. Ou seja, se compararmos um Pentium 4 da série 5 com um Pentium 4 da série 6 de mesmo clock, estes serão mais rápidos, não porque possui a tecnologia EM64T, mas por ter mais memória cache. O ganho de desempenho depende muito da aplicação. De acordo com a Intel, este ganho varia de 2% a 7% dependendo do programa de teste de desempenho usado, sendo que, na prática, este ganho pode ser maior, dependendo da aplicação (se beneficiarão do cache maior aplicações que fazem muito acesso à memória RAM). Modelo 630 640 650 660 670 Clock 3.0 GHz 3.2 GHz 3.4 GHz 3.6 GHz 3.8 GHz Cache L2 2 MB 2 MB 2 MB 2 MB 2 MB 156 Arquitetura de Computadores Marcelo Adriano Perecim 5.9 – Processadores Intel IA-64 (Itanium) Todos os processadores das gerações anteriores utilizam basicamente o mesmo conjunto de instruções introduzido pelo processador 80386. Esses processadores são classificados como IA-32 ou simplesmente x86. São processadores de 32 bits, já que suas instruções têm esse tamanho. Os processadores anteriores nasceram usando a tecnologia CISC e que a longo prazo a tecnologia CISC tende a não mais existir, tanto que a partir dos processadores Intel de 6ª geração (bem como na maioria dos processadores nãoIntel) o núcleo de processamento do processador é RISC, e através de um decodificador CISC/RISC presente à sua entrada, converte as instruções x86 em microinstruções RISC que são compreendidas pelo núcleo de processamento do processador. O grande problema com instruções é que estas limitam o aumento do desempenho do processador, especialmente pelo fato de não serem padronizadas: cada instrução tem um tamanho diferente e demora tempos diferentes para serem executadas. Com isso, o decodificador de instruções perde muito tempo para separar as instruções de um programa e enviá-las à unidade de execução do processador. O carregamento de instruções do cache L1 de instruções seria feito muito mais rapidamente se todas as instruções tivessem o mesmo tamanho. O conjunto de instruções x86 vem de uma época onde os processadores não tinham uma arquitetura superescalar, isto é, mais de uma unidade de execução trabalhando em paralelo. Assim, os programas não são compilados tendo em vista as múltiplas unidades de execução que o processador possa ter. Como resultado, os processadores é que passaram a reorganizar internamente o programa, para poderem executar várias instruções em paralelo. Nos novos processadores, outros recursos vieram a completar essa deficiência inerente à arquitetura CISC, como o renomeamento de registradores, que torna possível a execução fora de ordem, ampliando o número de registradores do processador, já que na arquitetura x86 só existem oito registradores de uso geral. A tendência é que os fabricantes fiquem criando cada vez mais novos recursos de hardware no interior do processador de forma a tentar ”corrigir” as deficiências da arquitetura x86. Só que obviamente isso não pode continuar para sempre! A idéia da arquitetura IA-64 é oferecer processadores RISC para PCs. Isso significa processadores puramente RISC, que aceitam instruções RISC – ao contrário dos processadores anteriores que apesar de serem internamente RISC, aceitam somente instruções CISC x86. Isso significa que os processadores IA-64 têm um conjunto de instruções próprio. Com isso, a princípio esses processadores são incompatíveis com os processadores IA-32. Para resolver essa situação, os processadores IA-64 (pelo menos os primeiros modelos) contêm um tradutor de instruções interno, para converter as instruções IA-32 em instruções IA-64. O problema é que a existência 157 Arquitetura de Computadores Marcelo Adriano Perecim dessa tradução pode fazer com que os programas IA-32 executem mais lento em processadores IA-64 do que em processadores IA-32 de mesmo clock. Barramento externo Instruções IA-64 Instruções IA-32 Tradutor IA-32/IA-64 Núcleo IA-64 Para o uso dos processadores IA-64, é necessário escrever novos programas e, principalmente, novos sistemas operacionais para essa arquitetura. 158 Arquitetura de Computadores Marcelo Adriano Perecim 5.10 - Processadores Para o Próximo Milênio Por Ricardo Zelenovsky e Alexandre Mendonça* 5.10.1 - Postulados de von Neumann Von Neumann[1], que trabalhou no desenvolvimento do ENIAC e posteriormente empregou sua experiência no projeto do IAS (1952), elaborou as idéias e os conceitos que nortearam a arquitetura dos computadores até os dias de hoje. Seu entendimento é essencial para apreciarmos a atual evolução dos computadores. Iniciemos constatando, de forma óbvia, que as máquinas que usamos nas nossas casas possuem quatro elementos básicos: a CPU, a memória, os dados e as instruções (ou programas). A partir daí, apresentamos os três postulados básicos de von Neumann, que no momento podem parecer triviais, mas que não o eram na década de 50: 1. Um único controle centralizado (uma só CPU); 2. Uma única memória para dados e instruções; e 3. As instruções devem fazer operações elementares sobre os dados. Cerca de 90% dos computadores atuais usam esses postulados e por isso são chamados de “Arquitetura de von Neumann”, ou “Arquitetura Serial”, pois empregam um único processador. Essa arquitetura, aliada aos avanços da microeletrônica, ofertou-nos o atual mercado de computadores, rápidos e baratos. Porém, tal arquitetura enfrenta um limite de velocidade que é ditado pelas leis da física. O tempo que um sinal elétrico gasta para trafegar entre dois pontos de um circuito eletrônico é muito pequeno, porém não é igual a zero. Em outras palavras, isto corresponde a dizer que existe um limite para a velocidade de relógio das CPUs e, infelizmente, ele não está muito distante. Como então continuar com a evolução dos computadores? Essa é a pergunta que tem ocupado a cabeça de muitos pesquisadores e desde a segunda metade desta década, várias soluções foram propostas. A principal resposta vem da comparação entre nosso cérebro e um processador. É sabido que o sinal elétrico trafegando por dentro de um CI é muito mais veloz que o trânsito de impulsos nervosos entre nossos neurônios. É claro que, para fazer operações numéricas, comparar e classificar, o computador é mais rápido. Mas, por outro lado, ele é inferior, pois não pensa, não inova e não aprende, apenas segue passos programados. Por exemplo, com um único olhar em uma sala identificamos imediatamente centenas de objetos. Já um computador, mesmo o mais sofisticado, apenas consegue identificar os objetos mais simples. Somos capazes de dirigir um carro e enquanto andamos por nossas (terríveis) estradas, temos habilidade para escolher o melhor caminho. Será que 159 Arquitetura de Computadores Marcelo Adriano Perecim um computador pode dirigir um carro? Uma das experiências no MIT com um piloto computadorizado, que identificava a rua através das linhas paralelas do meio fio, revelou um grande escalador de árvores, pois ele confundia o contorno do meio fio com o contorno do caule das árvores. Como será que o cérebro consegue ser superior aos processadores, se o nosso neurônio é muito mais lento que um circuito eletrônico? A resposta é óbvia: porque temos vários bilhões de neurônios operando em paralelo. Ora, por que, ao invés de construirmos CPUs velozes e gigantescas, não usamos várias CPUs, simples e confiáveis, operando em paralelo? Chegamos assim à idéia básica do processamento paralelo, que é a esperança para o próximo milênio. 5.10.2 - Processamento Paralelo Sabemos então que devemos usar uma grande quantidade de processadores, mas como controlá-los de forma a que façam alguma coisa de útil? Existem grandes problemas! Para iniciar, vamos trabalhar o conceito de processamento paralelo através de um exemplo bem simples. Se um pedreiro constrói uma casa em um ano, então dois pedreiros constroem a mesma casa em meio ano. Este é conceito básico do processamento paralelo: a divisão das tarefas. Podemos seguir adiante e concluir que cem pedreiros gastam apenas 3,6 dias. Será isto um absurdo? É claro que há um limite, pois o trabalho dos pedreiros só será eficiente se estiverem perfeitamente sincronizados e equilibrados. Este ponto é importante: todos os pedreiros devem ter a mesma carga de trabalho. Em termos técnicos, usa-se a expressão “Balanceamento da Carga de Trabalho”. Esse balanceamento pode ser feito de dois modos. No primeiro modo, o trabalho de cada pedreiro é idêntico, ou seja, cada um faz 1/100 da casa. No outro modo é usado a especialização, ou seja, alguns pedreiros “viram” cimento enquanto outros assentam tijolos e outros tratam do encanamento, e assim por diante. Ao imaginarmos todas as tarefas que devam ser executadas para a construção da casa, fica claro que algumas delas não poderão ser paralelizadas. Imagine 100 pedreiros para assentar uma porta, ou 100 pedreiros em cima da casa tentando montar o telhado. A casa acabaria por cair! Além disso, deve haver um limite para a quantidade de pedreiros que podem trabalhar em paralelo. A partir deste limite, quanto mais pedreiros colocamos, pioramos o desempenho e em conseqüência, aumentamos o tempo de construção. Temos então dois grandes problemas: até quanto podemos paralelizar uma tarefa e até quantos processadores devem ser alocados? A partir daí, surgem outras questões: como sincronizar esses processadores de forma a que um não repita o trabalho do outro e como garantir o balanceamento da carga de trabalho? Agora temos condições de entender porque se diz que as dificuldades 160 Arquitetura de Computadores Marcelo Adriano Perecim presentes no projeto do hardware de máquinas paralelas não são tão complexas quando comparados com os problemas de sua programação. Diz-se que os computadores estão sempre uma geração atrasada em relação às nossas necessidades e os programas, duas gerações atrasadas. Em suma, um desafio maior que o projeto de supercomputadores é a sua programação. 5.10.3 - Lei de Amdhal Apesar do quanto promissor a computação paralela possa parecer, ela não é uma solução para todo o problema de processamento. Existem tarefas que são eminentemente seqüenciais e que não tiram proveito de um computador paralelo. Voltando ao nosso exemplo da construção de uma casa, apesar dela ser executada em paralelo, existe por detrás uma seqüência que deve ser obedecida. Nessa construção, não podemos fazer o telhado antes de termos as paredes prontas e também não podemos construir as paredes antes do alicerce. Assim, é comum que as tarefas a serem executadas possuam porções paralelizáveis e porções que precisam ser executadas de forma seqüencial. Note que um computador paralelo operando de forma seqüencial é um grande desperdício, pois enquanto um processador trabalha no trecho serial, todos os demais ficam ociosos. 5.10.4 - Deep Blue, o enxadrista A máquina chamada “Deep Blue”[1] ainda é o mais poderoso computador voltado para o jogo de xadrez. Mas, o que será que tem de interessante uma máquina que joga xadrez? Muita coisa quando esta máquina possui uma arquitetura paralela capaz de realizar 1.000.000.000.000 operações de pontoflutuante por segundo (1Teraflops). A arquitetura é bem simples: o “Deep Blue” está montado sobre estações de trabalho IBM RS/6000SP (P2SC). Cada estação é um nó e cada nó usa um placa microcanal contendo 8 processadores VLSI. Como são empregados 32 nós, chega-se a um total de 256 processadores trabalhando em paralelo, como mostrado na Figura 1, onde uma letra “P” é usada para representar cada processador. 161 Arquitetura de Computadores Marcelo Adriano Perecim Figura 1: Arquitetura do Computador “Deep Blue” com seus 256 processadores. Tal arquitetura, capaz de analisar 200 milhões de posições de xadrez por segundo, duelou com o mestre Garry Kasparov, cuja capacidade de análise é de aproximadamente 3 posições por segundo. Realmente, foi uma batalha desigual. No dia 11 de maio, foi iniciada a disputa de 6 partidas, que terminou em 3,5 x 2,5 a favor do “Deep Blue”. Deve-se notar que Kasparov ainda foi capaz de ganhar a primeira e empatar três, perdendo apenas duas partidas. Kasparov, pelo segundo lugar ganhou US$ 400.000,00, enquanto que o “Deep Blue”, o vencedor, levou US$ 700.000,00 (mas infelizmente ele não teve onde gastar). Figura 2: Kasparov versus “Deep Blue”. A habilidade do “Deep Blue” em jogar xadrez vem da chamada “função de avaliação”. Esta função é um algoritmo que mede a qualidade de uma dada posição de xadrez. Posições com valores positivos são boas para as brancas, enquanto que aquelas com valores negativos são boas para as pretas. Se o cômputo total é positivo, as brancas estão em vantagem. A função de avaliação leva em conta 4 valores que são básicos para o xadrez: material, posição, segurança do Rei e tempo. O material é calculado segundo o valor das peças, o peão vale 1 e assim por diante até a Rainha que vale 9. O Rei, é claro, está além desses valores pois sua perda implica em derrota. A posição é calculada ao olhar suas peças e contar o número de posições seguras que eles podem atacar. A segurança do Rei é medida em função de sua capacidade defensiva. O tempo está relacionado com o desenvolvimento do jogo sobre o tabuleiro. Além disso tudo, o “Deep Blue” não usa força bruta ao avaliar as posições, mas sim seleciona alguns caminhos com bom potencial e elimina as buscas irrelevantes. 162 Arquitetura de Computadores Marcelo Adriano Perecim Aproveitamos ainda para elucidar alguns pontos sobre este embate. O “Deep Blue” não usa inteligência artificial (IA) e tampouco aprende enquanto joga com seu oponente. Ao invés disso, ele trabalha como um sistema especialista que analisa seu vasto sistema de informações. Por exemplo, ele consulta sua base de dados com todas as aberturas dos últimos 100 anos e então calcula qual a melhor resposta ao movimento do oponente. Ele não pensa, mas sim, apenas reage e foi aí onde Kasparov tinha sua vantagem. Mas é claro que, com todos esses recursos, o “Deep Blue” é de certa forma “força bruta” contra a inteligência de Kasparov, que teve que jogar contra os fantasmas de todos os grandes mestres do passado. Além disso, a máquina nunca esquece ou se distrai. Para terminar este tópico, perguntamo-nos por que tanto dinheiro para jogar xadrez? O principal objetivo não está no jogo, mas sim na busca de uma arquitetura rápida o suficiente para apresentar resultados práticos. Para isso, o xadrez é um excelente desafio, pois, com suas 64 células, oferece um problema matemático extremamente complexo. Ao provar sua eficiência nessa área, a IBM demonstrou ser capaz de oferecer computadores para os problemas que ainda desafiam as atuais máquinas. E, no dia seguinte à vitória, suas ações subiram. 5.10.5 - ASCI Blue Pacific, o mais rápido O mais rápido computador da atualidade chama-se “Blue Pacific” e foi entregue em 28 de outubro de 1998. O termo ASCI vem de “Accelerate Strategic Computing Iniciative”, traduzido como “Iniciativa para Aceleração da Computação Estratégica”, que é o nome do programa do Departamento de Energia NorteAmericano para acelerar os avanços nas tecnologias necessárias para simular numericamente dispositivos nucleares, eliminando assim a necessidade do teste físico. Ele emprega 5.856 processadores que, operando cada um a cerca de 333 MHz, entregam uma potência de aproximadamente 4 Teraflops, ou, em outros termos, é 15.000 vezes mais rápido que um PC convencional, consumindo o equivalente a 324 secadores de cabelo. Uma pessoa com uma calculadora de mão levaria 63 mil anos para realizar as operações que esse computador faz em 1 segundo. A tabela a seguir resume suas principais características. Processadores 5.856 Nós 1.464 Memória 2,6 Terabytes Armazenagem 75 Terabytes Desempenho 3,88 Teraflops Potência 486 kW Preço US$ 94 milhões 5.10.6 - Blue Gene, o maior projeto 163 Arquitetura de Computadores Marcelo Adriano Perecim Em 6 de dezembro de 1999, a IBM anunciou uma pesquisa de US$ 100 milhões com o objetivo de construir um computador que será 500 vezes mais poderoso que o mais rápido computador da atualidade. Esse novo computador, apelidado de “Blue Gene” será capaz de ultrapassar a marca de 1 quadrilhão de operações por segundo, ou seja, 1 Petaflops (10^15 flops). Essa marca o torna 1.000 vezes mais poderoso que o “Deep Blue” e cerca de 2 milhões de vezes mais rápido que um PC topo de linha. Essa maciça capacidade de processamento será usada inicialmente para modelar o “dobramento” das proteínas humanas. As proteínas controlam todos os processos celulares do corpo humano. Formadas por cadeias de aminoácidos, são unidas como anéis em uma corrente e dobram-se de formas altamente complexas. Sua forma tridimensional determina sua função. Qualquer mudança na forma altera dramaticamente a função da proteína. Mesmo uma pequena alteração no processo de dobragem pode transformar uma proteína desejável em uma doença. Assim, aprender mais sobre como as proteínas são dobradas deverá possibilitar aos pesquisadores médicos uma melhor compreensão das doenças e, em conseqüência, de suas curas. A comunidade científica considera o problema de dobragem das proteínas como um dos grandes desafios científicos da atualidade e sua solução somente pode ser alcançada com a tecnologia de computação de alto desempenho que, com certeza, terá grande impacto científico e econômico. A expectativa da IBM é atingir os Petaflops em 5 anos, um terço do que seria esperado segundo a Lei de Moore. A IBM denomina sua abordagem para este computador de SMASH, “Simple, Many and Self-Hearing”, que seria traduzido como “Simples, Muitos e Auto-Curativo”. Três tópicos distinguem essa arquitetura SMASH: Redução dramática do número de instruções, permitindo que os processadores sejam rápidos, de baixo consumo e ocupem pouca área do CI; Facilidade no processamento maciçamente paralelo, permitindo mais de 8 milhões de “threads”; Garantia de um computador auto-estável e auto-curativo, sobrepujando falhas de processadores e de “threads”. O “Blue Gene” consistirá de mais de 1 milhão de processadores, cada um capaz de oferecer 1 bilhão de operações por segundo, ou seja, 1 Gigaflops, como está mostrado na Figura 3. Trinta e dois desses processadores serão integrados em um único CI, resultando em 32 Gigaflops. Uma placa de 2 pés por 2 pés receberá 64 CIs, levando a 2 Teraflops. Somente essa placa já é capaz de igualar o desempenho do “Blue Pacific”, que tem 8.000 pés quadrados. Oito dessas placas (16 Teraflops) serão colocadas em “racks” de 6 pés. Finalmente 64 “racks” 164 Arquitetura de Computadores Marcelo Adriano Perecim constituirão o estado final do computador, ocupando uma área menor que 2.000 pés quadrados. Figura 3: Arquitetura do “Blue Gene”, com seu 1 milhão de processadores. 5.10.7 - Computador Quântico Agora teremos a sensação de que entramos no campo da ficção científica. Os computadores tradicionais trabalham com elementos básicos que podem assumir dois estados (ou dois bits): 0 ou 1. Normalmente, usam-se transistores ou “flip-flops” para representá-los. Olhando para o lado da física atômica, uma partícula quântica, como o elétron ou núcleos atômicos, pode existir em dois estados: com o “spin” para cima ou para baixo. Ora, isto constitui um bit quântico ou “qubit”. Quando o spin está para cima, o átomo pode ser lido como 1 e, quando o spin está para baixo, é lido como 0. 165 Arquitetura de Computadores Marcelo Adriano Perecim Os qubits diferem dos bits tradicionais porque um núcleo atômico pode estar num estado de superposição, representando simultaneamente 0 e 1 e tudo o mais que existe entre esses valores. Mais ainda, sem a interferência do ambiente externo, os spins podem se “relacionar” de tal forma que efetivamente conectam os qubits de um computador quântico. Dois átomos “relacionados” atuam em conjunto: quando um está na posição para cima e o outro é garantido estar na posição para baixo. A combinação de superposição e “relacionamento” é o que permite a um computador quântico ter um enorme poder de processamento, possibilitando-o a realizar cálculos de forma maciçamente paralela e de forma não linear. Para certos tipos de cálculos, como por exemplo os complexos algoritmos para criptografia, um computador quântico pode realizar bilhões de cálculos em um único passo. Ao invés de resolver o problema pela adição ordenada de todos os números, um computador quântico poderia adicionar todos os números ao mesmo tempo. Assim, pela interação de um com o outro, quando isoladas do ambiente externo, os qubits podem realizar certos cálculos de forma exponencialmente mais rápida que os computadores convencionais. Diz-se que o computador quântico começa onde a Lei de Moore termina. Em 15 de agosto de 2000, um time da IBM demonstrou um novo computador quântico com 5 qubits, composto portanto por 5 átomos (de flúor) fixados em uma molécula especialmente projetada de forma a permitir que os qubits (spin dos núcleos) “relacionem” entre si. Esses qubits são programados por pulsos de rádio-freqüência e detectados por meio de ressonância nuclear magnética, semelhante ao usado em hospitais. Esse computador de 5 qubits foi capaz de resolver um problema de determinação de ordem de um sistema, ou seja, a determinação do período de uma função. Os computadores convencionais calculam a solução usando iterações passo-a-passo com os valores da função até que eles comecem a repetir. O computador quântico faz isso com um novo enfoque. Por natureza, eles representam simultaneamente todos os possíveis valores da variável de entrada e, portanto, com um único passo pode analisar todos os possíveis valores da função. Apesar do potencial dos computadores quânticos ser gigantesco e encorajador, os desafios ainda são enormes. O atual computador de 5 bits é um mero instrumento de pesquisa. Ainda faltam muitos anos de trabalho para que os computadores quânticos se tornem comerciais. Os prognósticos indicam que eles deverão ter pelo menos 12 bits para poderem resolver problemas do mundo real. Espera-se que, no futuro, tais computadores venham a trabalhar como processador auxiliar para problemas matemáticos de difícil solução. Com certeza processamento de texto e Internet não são aplicações talhadas para um computador quântico. A idéia do computador quântico não é recente, ela foi proposta na década de 1970. 166 Arquitetura de Computadores Marcelo Adriano Perecim Conclusão Parcial Observa-se claramente que os grandes computadores caminham para o processamento paralelo. Basicamente, o poder está vindo, não dos megahertz do processador, mas da quantidade de processadores que em conjunto resolvem um determinado problema. Isto significa que o tamanho do grão de processamento será cada vez menor e os processos cada vez mais acoplados. Como substituição para o atual modelo de processamento e esperança para os novos computadores, surge o processador quântico. No próximo número veremos alguns computadores Cray e estudaremos dois processadores simples, porém inovadores. Tabela de Multiplicadores Multiplicador Abreviatura Valor Kilo K 10^3 Mega M 10^6 Giga G 10^9 Tera T 10^12 Peta P 10^15 5.10.8 - Computadores Cray É impossível falar de supercomputadores sem citar o pionerismo das máquinas fabricadas por Seymour Cray, que já usavam o conceito de processamento vetorial. Seu primeiro supercomputador foi o CRAY-1, fabricado em 1976. Era capaz de atingir o pico de 133 Megaflops. Em 1985, lançou o Cray2, com o desempenho de 1,9 Gigaflops. Na época, esse computador tinha a maior memória do mundo: 2 Gigabytes. Quantidade gigantesca, mesmo para os parâmetros atuais. Após esses marcos, citamos as principais máquinas que a empresa Cray comercializa nos dias de hoje. Começamos com o Cray T-90, que usa até 32 processadores vetoriais em paralelo e chega a 60 Gigaflops. Em seguida, está o Cray T3E, que oferece até 2048 processadores, permitindo alcançar 2,5 Teraflops e que, em breve, será substituído pelo Cray SV2, ainda em fase de projeto. Finalmente, temos o Cray MTA, (“MultiThread Architecture”), que pretende diminuir o trabalho de programação paralela ao oferecer vetorização e paralelização automáticas. O atual topo de linha é o Cray SV1, que traz solução para os conflitantes problemas de desempenho, preço e escalabilidade. Os supercomputadores, como é de se esperar, são máquinas caras mas que oferecem um grande desempenho. 167 Arquitetura de Computadores Marcelo Adriano Perecim Essa característica os torna quase inacessíveis para as empresas menores. Fica então o dilema: ou gasta-se muito dinheiro e compra-se um computador de alto desempenho, ou então economiza-se dinheiro e tenta-se satisfazer-se com máquinas de desempenho inferior. Pensando nisso, a Cray projetou uma máquina escalável, cujo desempenho, de acordo com as necessidades e orçamento do cliente pode ir desde 1,2 Gigaflops até 1 Teraflops (1.000 vezes o desempenho inicial). Esse computador pode usar desde um processador (4,8 Gigaflops) até centenas de processadores, quando então atinge a marca de 1 Teraflops. São empregados dois tipos de processadores: um processador de alto desempenho (4,8 Gigaflops), chamado de MSP, e um processador convencional (1,2 Gigaflops). Até 6 MSP e até 8 processadores convencionais formam um nó. O sistema pode chegar até 32 nós, resultando em 1 Teraflops. A Figura 1 ilustra a escalabilidade desse computador. Figura 1: Escalabilidade do CRAY SV1. Em 22 de setembro de 1999, a Cray assinou um contrato com diversas agências americanas, entre elas a conhecida NSA (“National Security Agency”), aquela que trata, dentre outros temas, das limitações na exportação de programas de criptografia, para construir o SV2, que substituirá o Cray T3E. Este novo computador contará com novos processadores vetoriais e pretende atingir algumas dezenas de Teraflops. A tabela a seguir apresenta uma comparação de velocidade entre os principais computadores Cray. Figura 2: Desempenho (em Gigaflops). 168
Documentos relacionados
Motherboard - Paginas ISPGaya - Instituto Superior Politécnico Gaya
o surgimento de jogos bem mais elaborados.Com tudo isso, um 486 é quase duas vezes mais rápido do que um 386 da mesma frequência. Em alguns aplicativos, que dependem do coprocessador aritmético, um...
Leia mais