quarta-feira, 29 de setembro de 2010

RESUMO

As grandes mudanças e revoluções no pensamento cíentifico e nos aparelhos que os rodeiam é algo constante. A tecnologia atual, com computadores cada vez menores, televisão digital a palma da mão, reprodutores de mp3 não surgiram do nada. As invenções tecnológicas são o resultado dos anseios e vontades dos homens na busca do bem estar e suprimento de uma necessidade. Na antiguidade surgiu a idéia do cálculo e a partir das pedras, começou a evolução de dispositivos capazes de efetuarem cálculos, como o ábaco até o aparecimento dos computadores digitais por volta da década de 40 do século passado.
Computadores esses tão comuns nos diversos lugares, formados por vários componentes dentre os quais merece destaque o processador, pois o mesmo é tido como cérebro do computador, sendo responsável por realizar operações com informações como: cópia de dados, acesso  a memórias  e  operações lógicas e matemáticas. Ele tem características específicas, arquitetura interna diferenciada e uma variedade de modelos que o diferenciam em capacidade de processamento de dados. Tendo um enfoque na Lei de Gordon Moore, um dos fundadores da Intel, poderemos acompanhar um breve histórico da evolução dos processadores, tendo um enfoque no AMD Atlhon K7.

INTRODUÇÃO

                Atualmente em plena era da informação e tecnologia, cada individuo é estimulado a buscar sempre novos dispositivos tecnológicos, que mudam em um instante e deixam o seu antecessor limitado, ou mesmo obsoleto. São inovações que muitas vezes, quem compra nem sabe seu real uso, ou qual diferencial aquele componente que ele comprou traz. Como prova disso temos o processador, que é parte fundamental dos computadores, visto que ele processa ou executa todas as ações que um usuário faz em seu computador e por isso, ele é considerado o cérebro do computador. A Intel por exemplo, intensificou o marketing referente aos seus novos processadores multi core, deixando os aficcionados por tecnologia com anseio por ter um modelo dos disponibilizados pela empresa. E muitas vezes os usuários compram máquinas robustas de configurações avançadas, com preço acima do usual de equipamentos mais comuns, para aplicações como acesso a internet, planilhas eletrônicas e jogos simples.
Por isso se faz necessário que se entenda o processador, sua real função dentro do computador, sua arquitetura definida por Von Neumann, e sua evolução ao longo dos anos, visto que ele foi e é o componente que mais se desenvolveu no computador, com base na teoria de Gordon Moore. O que se sabe é que o primeiro processador com transistores integrados, o famoso 4004 da Intel possuia cerca de 2.300 transistores enquanto que os modernos multi core, como o core I7, possuem mais de 731 milhões de transistores. E essa evolução é constante.

ARQUITETURA DE VON NEUMANN

           John von Neumann era então um matemático de reputação mundial, com publicações em diversas áreas da Matemática e da Física Matemática, professor visitante da Universidade de Princeton (1930-1933) e fazendo parte, desde 1933, do corpo de pesquisadores do prestigioso Instituto de Estudo Avançado (IAS) de Princeton. Entre os muitos interesses de von Neumann estava a resolução numérica de problemas para os quais não se conheciam soluções analíticas. Ele foi cativado pela possibilidade de automatizar oscálculos e entrou em contato com alguns dos construtores mencionados noresumo histórico. Até então todas as máquinas construídas até o início do projeto do EDVAC eram programadas através de meios externos como cartões perfurados,fitas perfuradas, painéis, cabos de conexão etc, e dispunham de muito pouca memória para armazenar os dados e os resultados intermediários dos cálculos. Mesmo assim, a construção do ENIAC, cuja capacidade de armazenamento era de 20 números decimais de 10 dígitos (cerca de 700 bits), consumiu mais de 17 mil válvulas eletrônicas.  Em 30 de junho de 1945 John von Neumann publicou o First Draft of a Report on the EDIVAC, que estabeleceu o paradigma de projetos de computadores para várias gerações seguintes de máquinas.  Esta arquitetura ficou conhecida com o nome de "arquitetura de von Neumann", e
entre outras coisas incluía o conceito de programa armazenado.  John von Neumann foi o responsável pela criação do código a ser usado (base para os futuros código a serem desenvolvidos) no ENIAC e começou a operar em 1943, tendo sido terminado totalmente em 1946, encerrando suas operações em 1955.

Ou seja, é a arquitetura de computador que se  caracteriza  pela  possibilidade  de uma máquina digital armazenar  seus programas  no  mesmo  espaço  de memória  que  os  dados  podendo assim, manipular tais programas.

A  máquina  proposta  por  Von  Neumann reúne os seguintes componentes:

– uma memória;
– uma Unidade Lógica e Aritmética (ULA);
– uma  Unidade  Central  de  Processamento (UCP), composta por diversos registradores,
– uma Unidade de Controle (UC), cuja função é buscar  um  programa  na memória,  instrução
por instrução, e executá-lo sobre os dados de entrada.







CLOCK E HERTZ

     Em um computador, todas as atividades necessitam de sincronização. O clock serve justamente para isso, ou seja, basicamente, atua como de sinal de sincronização. Quando os dispositivos do computador recebem o sinal de executar suas atividades, dá-se a esse acontecimento o nome de "pulso de clock". Em cada pulso, os dispositivos executam suas tarefas, param e vão para o próximo ciclo de clock. 

       A medição do clock é feita em hertz (Hz), a unidade padrão de medidas de freqüência, que indica o número de oscilações ou ciclos que ocorre dentro de uma determinada medida de tempo, no caso, segundos. Assim, se um processador trabalha à 800 Hz, por exemplo, significa que é capaz de lidar com 800 operações de ciclos de clock por segundo. Repare que, para fins práticos, a palavra kilohertz (KHz) é utilizada para indicar 1000 Hz, assim como o termo megahertz (MHz) é usado para indicar 1000 KHz (ou 1 milhão de hertz). De igual forma, gigahertz (GHz) é a denominação usada quando se tem 1000 MHz, e assim por diante. Com isso, se um processador tem, por exemplo, uma freqüência de 800 MHz, significa que pode trabalhar com 800 milhões de ciclos por segundo. 

      As freqüências com as quais os processadores trabalham são chamadas também de clock interno. Neste ponto, você certamente já deve ter entendido que é daí que vem expressões como Pentium 4 de 3,2 GHz, por exemplo. Mas, os processadores também contam com o que chamamos de clock externo ou Front Side Bus (FSB) ou, ainda, barramento frontal.

ARQUITETURA EXTERNA DE UM PROCESSADOR - OS BARRAMENTOS




O Barramento de Dados (Data Bus) transmite dados entre as unidades. Portanto, um microprocessador de 8 bits requer um barramento de dados de 8 linhas para transmitir dados de 8 bits em paralelo. Semelhantemente, um microprocessador de 64 bits necessita de um barramento de dados de 64 linhas para transmitir dados de 64 bits em paralelo. Se o barramento de dados para um microprocessador de 64 bits fosse formado por 8 linhas, seriam necessárias oito transmissões sucessivas, tornando mais lento o sistema. O Barramento de Dados é bi-direcional, isto é, pode transmitir em ambas as direções.

O Barramento de Endereço (Address Bus) é usado para selecionar a origem ou destino de sinais transmitidos num dos outros barramentos ou numa de suas linhas. Ele conduz endereços. Uma função típica do Barramento de Endereço é selecionar um registrador num dos dispositivos do sistema que é usado como a fonte ou o destino do dado. O Barramento de Endereço do nosso computador padrão tem 16 linhas e pode endereçar 216 (64 K) dispositivos (1K= 1024, ou 210 , no jargão de computação).

O Barramento de Controle (Control Bus) sincroniza as atividades do sistema. Ele conduz o status e a informação de controle de/para o Microprocessador. Para um Barramento de Controle ser formado, ao menos 10 (geralmente são mais) linhas de controle são necessárias.
O desempenho dos barramentos é medido através da largura de banda (quantidade de bits que podem ser transmitidos por vez), ou seja, a sua capacidade de transferência.

ESTRUTURA INTERNA DO PROCESSADOR

                  A  estrutura interna do processador é formada por vários componentes; dentre eles estão registradores, memória cache, ULA e UC.

 MEMÓRIA CACHE

            A memória cache é uma memória intermediária entre a memória principal e os registradores do processador. Ela é dividida em níveis LX ( level X), onde X é um número natural. É bastante comum haver CPUs com 2 níveis de cache:  cache L1 e cache L2, mas há CPUs com 3 níveis: L1, L2 e L3. Geralmente as caches L1 e L2 estão embutidas ( on-chip ou on-die) no chip do processador. Nos computadores antigos, era possível encontrar a cache L2 fora do chip da CPU, pois isso reduzia o custo de fabricação do processador.
A cache L2 estava em um chip da placa-mãe e existia um barramento conectando esse chip à CPU. Atualmente, a cache L2 é incorporada ao chip da CPU, dessa forma, a transferência de dados é mais rápida entre a cache L2 e a L1, fazendo com que a CPU fique mais rápida.
Registradores – Pequenos espaços de memória que o processador trabalha executando asinstruções. Geralmente possuem o mesmo tamanho e tem velocidade muito alta. Destacam-se:
 o PC – Contador de Programa, cujo nome não reflete sua função, que é indicar a próxima instrução a ser executada na memória.
·         o IR – Registrador de instruções, que indica a próxima instrução a ser executada.

ULA

            A Unidade Lógica e Aritmética (ULA) é um dos núcleos de processamento do processador. A ULA processa os dados dos registradores para gerar outros dados que são resultados de uma operação. A ULA realiza operações aritméticas (soma, subtração, multiplicação, divisão) e operações lógicas (AND, OR, XOR, NOT, SHIFTS, ROTATES).

UC

            A Unidade de Controle (UC) é um componente do processador responsável por gerar sinais elétricos que controlam outros componentes, como a ULA e os registradores. Os sinais são gerados com base na instrução que está sendo processada. A ULA recebe esses sinais para saber qual operação executar (soma, divisão, AND, OR...), quais registradores fornecerão dados de entrada para ULA e qual será o registrador que armazenará o resultado da operação. Seja a instrução de soma add al, cl de um processador hipotético; para executar esta instrução, a UC envia um sinal para a ULA indicando que ela deve realizar uma operação de soma. A UC também envia um sinal para os registradores al e cl, indicando que eles devem fornecer seus dados para a ULA somá-los. A UC gera outro sinal para indicar que o registrador al deve armazenar o resultado da soma gerado pela ULA.

LEI DE MOORE

Os processadores são sem dúvida os dispositivos  que  mais  evoluíram  ao longo  da  evolução  dos computadores,  eta  evolução,  segue  uma lei que diz que a cada 18 meses  o  número  de  transistores  dos processadores dobra. Essa  lei  foi  enunciada  em  1965  por  Gordon Moore, co-fundador e presidente  da  Intel  na  época. A  lei  ficou  conhecida como lei de Moore. Desde que essa lei veio a publico,todos os fabricantes de microprocessadores começaram a disputar uma corrida pelo desempenho, querendo apresentar a cada 18 meses um novo modelo mais avançado. A LeideMoore foi considerada por isso a granderesponsável pelo surpreendente crescimento da capacidade de processamento dos processadores. E a competição que se acirrou ao longo dos anos entre a Intel, marca mais famosa pela parceria com a Microsoft e pelo grande incentivo em marketing e a AMD, pela liderança do mercado também contribuiu significativamente para essa evolução veloz dos processadores.
Os cientistas da computação estimam que quando atingirem os níveis críticos ou seja, os transistores dos microprocessadores não puderem ser diminuidos, e enquanto não encontrarem uma alternativa para essa questão, as inovações serão pausadas, contrariando assim a Lei de Moore.      

FUNDAMENTOS E HISTÓRIA DA ARQUITETURA K7


Se houve algum momento do mercado de processadores onde a AMD realmente prosperou, foi na arquitetura K7. Isso se deu por que somente na arquitetura K7 que a AMD conseguiu disputar de igual para igual todas as gamas do mercado com a gigante Intel, conquistando uma legião de fãs pelos seus processadores de alto desempenho, consumo elétrico aceitável, overclockabilidade e principalmente, acessibilidade.

A arquitetura K7 consiste em um aperfeiçoamento à arquitetura P6 da Intel, trazendo alguns traços de seus antecessores K6. Os pilares da arquitetura K7 são:
Barramento EV6
Ao invés de utilizar o AGTL+, barramento presente nos processadores Intel, a AMD optou por usar o barramento dos processadores Alpha, na época da DEC, o famoso EV6.

O EV6 consiste em um barramento que realiza duas transferências por pulso de clock, o que faz duplicar sua eficácia em relação aos processadores que realizam apenas uma transferência por pulso de clock (como o Pentium III). Logo, se o barramento for configurado para operar como 100MHz, efetivamente vai ser como se estivesse operando a 200MHz (a banda de memória expande-se como se estivesse operando no dobro da freqüência do barramento), o dobro. Esse tipo de transferência dupla chama-se DDR.

Além disso, o EV6 é um barramento ponto-a-ponto. Isso significa que, se dois processadores estiverem em paralelo em uma placa-mãe com dois soquetes, cada um vai ter seu barramento independente, sem disputas um com outro, o que torna muito mais rara a formação de um gargalo por falta de banda de memória do que em processadores que utilizam o FSB AGTL+, por exemplo.

Mesmo que o AGTL+ estivesse operando a mesma freqüência efetiva do EV6, ainda seria mais lento, visto que o EV6 consegue sustentar de forma mais eficiente as taxas de transferência.
 
Cache L1 aprimorado
Todos os processadores derivados da arquitetura K7 possuem Cache L1 de 128KB, sendo 64KB de dados e 64KB de instruções (assembler, tradicional) com dupla associatividade. Até os dias atuais, é o maior Cache L1 que uma CPU x86 possui.

Além disso, o Cache L1 é do tipo MOESI. Isso quer dizer que ele não replica seus dados para o Cache L2 (tal como ocorre com os processadores Intel que usam Cache L1 MESI), logo o Cache L1 possui dados diferentes do Cache L2. Isso possibilita que o processador dependa menos da Memória RAM para requisitar seus dados e mesmo tendo pouco Cache L2, ainda conta com um grande e rápido Cache L1.

FPU aprimorada
Grande parte da FPU dos processadores K7 é herdada no P6, projeto base do Pentium II, III, Pro, II e III Xeon e algumas versões do Celeron, um projeto muitíssimo superior à FPU precária dos processadores K6.

A AMD ainda aprimorou a FPU (unidade de ponto flutuante), acrescentando uma unidade de multiplicação, sendo assim, formando uma FPU com três unidades, contra três dos processadores Intel e uma dos K6. Isso quer dizer que um Athlon, por exemplo, pode efetuar uma operação de multiplicação em um ciclo só, enquanto que um Pentium III demoraria dois ciclos.

Isso faz dos processadores K7 excelente em aplicações como jogos, aplicações 3D e de compressão / descompressão de arquivos.
 Athlon de núcleo Thunderbird com Cache L2 on-die. Baseou o Duron Spitfire, esse com 192KB a menos de Cache L2.

Encapsulamento e dissipação de calor
Os processadores K7 ostentam uma quantia considerável de transistores, além de esquentar consideravelmente. A solução para tentar conter isso foi deixar o núcleo exposto, em contato direto com o dissipador. Logo, nada mais de chapinhas metálicas como no K6.
Nos processadores de soquete, o núcleo exposto era um grande engôdo para os instaladores, já que a chance de danificar o núcleo (que é sensível) era muito grande. A AMD, por isso, colocou uma borrachinha redonda (chamam-se PADs) em cada um dos quatro cantos do processador para amortecer o impacto do cooler sobre o núcleo do processaodr. Não resolve completamente, mas é melhor que nada.


Revisões de núcleo
Os processadores K7 passaram por consideráveis mudanças desde seu lançamento, além das ramificações da arquitetura, para que atendesse a todos os nichos do mercado. Abaixo, uma relação de todos os processadores para servidores e desktops lançados da arquitetura K7:
AMD Athlon
Argon
- Processo de litografia: 0,25um
- Cache L2: 512KB (Half-Speed)
- FSB: 200MHz
- Encaixe: Slot A (SC-242)
- Variação de modelos: 500MHz ~ 700MHz
- Instruções: MMX, 3DNow!
 
Pluto
- Processo de litografia: 0,18um
- Cache L2: 512KB (Half-Speed)
- FSB: 200MHz
- Encaixe: Slot A (SC-242)
- Voltagem: 1,6v ~ 1,8v
- Variação de modelos: 550MHz ~ 800MHz
- Instruções: MMX, 3DNow!
Orion
- Processo de litografia: 0,18um
- Cache L2: 512KB (Half-Speed)
- FSB: 200MHz
- Encaixe: Slot A (SC-242)
- Voltagem: 1,6v ~ 1,8v
- Variação de modelos: 750MHz ~ 1GHz
- Instruções: MMX, 3DNow!
Thunderbird
- Processo de litografia: 0,18um
- Cache L2: 256KB (Full-Speed)
- FSB: 200MHz / 266MHz
- Encaixe: Slot A (SC-242) / Socket A (PGA462)
- Voltagem: 1,7v ~ 1,75v
- Variação de modelos: 600MHz ~ 1,4GHz
- Instruções: MMX, 3DNow!
AMD Duron

Spitfire

- Processo de litografia: 0,18um
- Cache L2: 64KB (Full-Speed)
- FSB: 200MHz
- Encaixe: Socket A (PGA462)
- Voltagem: 1,5v ~ 1,6v
- Variação de modelos: 600MHz ~ 950MHz
- Instruções: MMX, 3DNow!
Morgan
- Processo de litografia: 0,18um
- Cache L2: 64KB (Full-Speed)
- FSB: 200MHz

- Encaixe: Socket A (PGA462)
- Voltagem: 1,75v
- Variação de modelos: 900MHz ~ 1,3GHz
- Instruções: MMX, 3DNow!, 3DNow!-E (SSE)
Applebred
- Processo de litografia: 0,13um
- Cache L2: 64KB (Full-Speed)
- FSB: 266MHz
- Encaixe: Socket A (PGA462)
- Voltagem: 1,5v
- Variação de modelos: 1,4GHz ~ 1,8GHz
- Instruções: MMX, 3DNow!, 3DNow!-E (SSE)
AMD Athlon XP

Palomino

- Processo de litografia: 0,18um
- Cache L2: 256KB (Full-Speed)
- FSB: 266MHz
- Encaixe: Socket A (PGA462)
- Voltagem: 1,75v
- Variação de modelos: 1500+ (1,33GHz) ~ 2100+ (1,73GHz)
- Instruções: MMX, 3DNow!, 3DNow!-E (SSE)
Thoroughbred
- Processo de litografia: 0,13um
- Cache L2: 256KB (Full-Speed)
- FSB: 266MHz / 333MHz
- Encaixe: Socket A (PGA462)
- Voltagem: 1,5v ~ 1,65v
- Variação de modelos: 1600+ (1,4GHz) ~ 2800+ (2,26GHz)
- Instruções: MMX, 3DNow!, 3DNow!-E (SSE)
Barton
- Processo de litografia: 0,13um
- Cache L2: 512KB (Full-Speed)
- FSB: 333MHz / 400MHz
- Encaixe: Socket A (PGA462)
- Voltagem: 1,65v
- Variação de modelos: 2500+ (1,83MHz) ~ 3200+ (2,00 / 2,33GHz)
- Instruções: MMX, 3DNow!, 3DNow!-E (SSE)
AMD Athlon MP

Palomino

- Processo de litografia: 0,18um
- Cache L2: 256KB (Full-Speed)
- FSB: 200MHz
- Encaixe: Socket A (PGA462)
- Voltagem: 1,75v
- Variação de modelos: 900MHz ~ 1,3GHz
- Instruções: MMX, 3DNow!, 3DNow!-E (SSE)
AMD Sempron

Thoroughbred

- Processo de litografia: 0,13um
- Cache L2: 256KB (Full-Speed)
- FSB: 333MHz
- Encaixe: Socket A (PGA462)
- Voltagem: 1,6v
- Variação de modelos: 2200+ (1,58GHz) ~ 2800+ (2GHz)
- Instruções: MMX, 3DNow!, 3DNow!-E (SSE)
Barton
- Processo de litografia: 0,13um
- Cache L2: 512KB (Full-Speed)
- FSB: 400MHz
- Encaixe: Socket A (PGA462)
- Voltagem: 1,6v ~ 1,65v
- Variação de modelos: 3000+ (2GHz) ~ 3300+ (2,2GHz)
- Instruções: MMX, 3DNow!, 3DNow!-E (SSE)