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

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