Aula 05 – 20/08/2007 Universidade do Contestado – UnC/Mafra Sistemas de Informação Arquitetura de Computadores Prof. Carlos Guerber PROCESSADOR INTRODUÇÃO O processador é um dos componentes que mais determina a performance de um sistema, o primeiro processador usado em um PC (Personal Computer) foi o 8086 que tem 16 Bits e foi fabricado pela Intel no final dos anos 70. Os computadores baseado neste processador eram chamados de PC-XT, antes dos 8086 era possível encontrar os seguintes processadores de 8 bits, tais como: 8080, 8085, Z80, TK90X, 6502, 6800. • Contador de Programa (PC, do inglês “Program Counter”): contém o endereço da memória cujo conteúdo deve ser interpretado como a próxima instrução. • Registrador de Instrução (IR, do inglês “Instruction Register”): contém a próxima instrução a ser executada. • Registrador de Endereço da Memória (MAR, do inglês “Memory Address Register”): contém o endereço da posição da memória a ser lida ou escrita. • Registrador de Dados da Memória (MDR, do inglês “Memory Data Register”): contém o dado a ser lido ou escrito na memória. • Registradores de Propósito Geral (Ri) : são utilizados para armazenar resultados intermediários. VELOCIDADE DO PROCESSADOR. O QUE É UM MICROPROCESSADOR? Um microprocessador é um circuito integrado construído numa fina peça de silício. Contém milhares, ou mesmo milhões, de transistores, que estão interligados por superfinos traços de alumínio. Os transistores trabalham em conjunto armazenando e manipulando dados de forma a que o microprocessador possa executar uma vasta variedade de funções úteis. A evolução tem sido um fator constante no mundo dos microprocessadores. Poderemos constatar este fato, verificando que o primeiro microprocessador da Intel, o 4004, introduzido em 1971 continha 2300 transistores. Um dos mais recente processadores da Intel, o Pentium ® II contém 7.5 milhões de transistores. Uma das aplicações mais comuns dos microprocessadores é em computadores pessoais. Mas a aplicação dos microprocessadores não está restrita aos PCs. Eles também são utilizados para dar "inteligência" a aparelhos que usamos no nosso dia a dia. Utilizando microprocessadores é possível adicionar funcionalidades aos nossos aparelhos domésticos, como por exemplo, realizar uma rediscagem automática em nosso telefone, desligar automaticamente um termostato de aquecimento, aumentar a segurança dos automóveis. É um dos componentes mais importantes do computador. O processador é o responsável por executar as instruções que formam os programas. Quanto mais rápido o processador executar essas instruções, mais rápida será a execução dos programas. Além disso, se um processador não for suficientemente rápido, nem mesmo será capaz de executar certos programas modernos. Alguns exemplos de processadores, Pentium II MMX, Pentium III, Pentium 4, K6-2, Celeron, Semprom, Athlon, Duron, Cyrix, Motorola. ENTENDENDO OS PROCESSADORES. Neste componente, formado basicamente por um conjunto de registradores, são armazenados os dados e a instrução correntes. Originalmente, os registradores eram seqüências de relés ou válvulas capazes de armazenar um certo número de bits. Analogamente à unidade aritmética e lógica, os registradores são hoje implementados com a tecnologia de semi-condutores. Os registradores são utilizados como locais de armazenamento temporário de dados provenientes da memória destinados à UAL, ou vice-versa. Existem ainda registradores cuja função é armazenar informações relevantes ao controle do processamento. Os principais registradores utilizados na arquitetura de Von Neumann e suas respectivas funções são os seguintes. Sem dúvidas a escolha do processador é um dos mais importantes itens para quem quer especificar um PC. A principal diferença está na velocidade, e como se sabe, quanto mais veloz for o processador, maior é o seu preço. Dentre os principais fabricantes de processadores dois se destacam, a INTEL fabricante dos famosos processadores Pentium e a AMD fabricante dos conhecidos K6-2, Athlon e Semprom. Cada um destes fabricantes produz modelos adequados a cada aplicação. A decisão por qual processador comprar não faz muita diferença, exceto pela diferença de preço, onde os processadores AMD são mais baratos que os processadores INTEL, porém ambas as empresas possuem padrões equivalentes de qualidade e tecnologia. Outra decisão a ser tomada diz respeito à aplicação do computador. É preciso definir se o PC terá uma configuração simples, (escritórios, lojas, entre outros) ou que exija mais qualidade e agilidade de processamento (editoração eletrônica, jogos, programação gráfica). A velocidade de um processador é medida em MHz, Megahertz ou GHz, Gigahertz. Essas duas grandezas têm o seguinte significado: • • 1 MHz = 1 milhão de ciclos por segundo. 1 GHz = 1 bilhão de ciclos por segundo. Portanto 1 GHz equivale a 1000 MHz. De nada adianta saber isso se você não souber o que é um ciclo. O ciclo é a unidade mínima de tempo usada nas operações internas do processador. Assim como um relógio mecânico faz todos os seus movimentos baseados no segundo (unidade de medida de tempo), o processador faz seu trabalho baseado em ciclos. Os processadores modernos são capazes de realizar duas operações ao mesmo tempo, dizse que cada ciclo corresponde a uma operação, mas isso nem sempre pode ser levado em consideração, pois um ciclo pode corresponder a duas ou mais operações ou até menos de uma operação, dependendo do que o processador estiver fazendo. É coreto dizer que quanto maior é o número de MHz, maior é o numero de operações realizadas por segundo, ou seja, mais veloz será o processador. A velocidade do processador, medida em MHz ou GHz, é chamada de clock. Por exemplo: • • • • • Processador K6-2/500: Processador fabricado pela AMD com clock de 500 MHz. Pentium III/650: Processador fabricado pela INTEL com clock de 650 MHz. Athlon XP/1.8: Processador fabricado pela AMD com clock de 1800 MHz ou 1.8 GHz. Pentium 4/2.8: Processador fabricado pela INTEL com 2800 MHz ou 2.8 GHz. Entre outros. Os fabricantes sempre produzem cada modelo com diferentes velocidades de clock. Como exemplo o Pentium 4 que foi produzido com clock de: 1.8, 1.6, 2.2, 2.4, 2.8, 3.0 GHz. CACHE L1 E L2. A memória cachê é uma memória rápida utilizada para armazenar os dados mais utilizados, tornando o micro mais rápido. A memória cachê começou a aparecer nos micros 386, instalada na placa-mãe. A partir do processador 486, todos os processadores passaram a ter uma pequena quantidade desta memória dentro do próprio processador chamada memória cachê nível 1 (L1) ou simplesmente memória cachê interna, pois está dentro do processador. Quando citamos memória cachê, normalmente estamos nos referindo à memória cachê presente na placa-mãe do micro chamada memória cachê nível 2 (L2) ou simplesmente memória cachê externa. A idéia por trás do cache é muito simples: colocar na memória cache os dados e instruções que são mais comumente utilizados pelo processador. É a regra 80/20, ou seja, 20% dos dados/instruções/etc. são usados 80% das vezes no micro. Assim se estes dados/instruções estiverem no cache, que é muito mais rápida que as memórias RAM, o desempenho do micro será muito melhor. O usuário não precisa se preocupar em colocar os dados mais utilizados na memória cache. Existe um circuito especifico que faz isso automaticamente chamado Controlador de cache. Este circuito tenta, inclusive, “adivinhar” quais serão os dados solicitados pelo processador. Se o processador precisa de uma informação e ela está no cache, ótimo, a informação é acessada e o desempenho é alto. Quando isso acontece, chamamos de cache “hit” ("acerto"). Porém se a informação não estiver no cache, ela vai ter que ser lida da memória RAM “normal”, o que é um processo mais lento. Este caso é chamado de cache “miss” ("erro"). A idéia é fazer com que o número de cache hits seja muito maior que o número de cache misses. Todos os processadores modernos possuem cachês L1 e L2, exceto o K6-2 que vinha somente com cachê L1, por isso utiliza uma cache L2 externa instalada na placa mãe. O usuário não escolhe a quantidade de cachê que quer no seu computador, ela é embutida no processador e não há como alterá-la. A cache é uma pequena quantidade de memória “super” rápida e cara, que serve para acelerar o desempenho da memória RAM. Ela é necessária porque as memórias comuns não são suficientemente rápidas para os processadores modernos, pois operam a 100, 133 ou 333 MHz e os processadores operam com 400 MHz de clock externo. O processador possui em seu corpo uma inscrição em baixo relevo indicando o seu clock interno, a quantidade de cache L2, seu clock externo e a sua tensão de alimentação. Por exemplo, um Pentium 4 de 1.6 GHz possui a seguinte marcação: "1.6GHz/256/400/1.75V". Fica claro que esse processador tem cachê L2 de 256 KB. A memória cachê é medida em KB, Kilobytes, por exemplo, 32, 64. 128, 256, 512, 1000, 2000 KB. A memória cachê L2 acelera diretamente o desempenho da memória RAM. A cache L1 por sua vez, é ainda mais rápida e acelera o desempenho da cache L2. barramento (conhecido como barramento externo de comunicação com a placa-mãe. Por exemplo, o processador Pentium Extreme Edition 840 trabalha com clock externo de 800 MHz; O clock interno é sempre maior que o clock externo e varia bastante de um processador para outro. Outros parâmetros também precisam ser considerados na escolha de um processador e não somente a velocidade de seu clock interno: arquitetura, cache, clock externo e outras tecnologias. Na verdade, usuários mais experientes geralmente checam esses aspectos no momento da compra, mas para muitos, o fato de saber que está comprando "um Pentium 4 com velocidade de 3.2 GHz" é o único quesito considerado. Vamos analisar dois exemplos: 1. A seqüência 6xx é usada nos processadores Pentium 4 com a tecnologia Hyper-Threading. Assim, abaixo, são mostrados três modelos dessa família. Veja suas diferenças: 2. A seqüência 7xx é usada nos processadores Pentium M (linha voltada a notebooks). Abaixo são mostrados cinco modelos dessa linha: CLOCK EXTERNO. Este aspecto de um processador é bastante importante e ganha pouca atenção. Todos os processadores operam com dois clocks diferentes: • • CLOCK INTERNO: está relacionado com o numero de operações que o processador realiza por segundo. Indica a freqüência na qual o processador trabalha. Portanto, se ele trabalha a 800 MHz, sua capacidade é de 800 milhões de operações de ciclo por segundo. CLOCK EXTERNO: está relacionado com o número de acessos externos, principalmente a memória, que o processador realiza por segundo. também conhecido como FSB (Front Side Bus), o clock externo, por sua vez, é o que indica a freqüência de trabalho do Repare que no exemplo 1, a única diferença entre os modelos citados é a velocidade do clock interno. No exemplo 2, é possível notar que os modelos 735 e 730 têm desempenho semelhante. Note que se somente o clock interno fosse usado para indicação de desempenho, haveria uma noção vaga, porque embora o modelo 735 opere em 1.7 GHz, seu clock externo funciona a 400 MHz, enquanto que o modelo 730, que trabalha em 1.6 GHz no clock interno, possui clock externo de 533 MHz. Usar apenas o clock interno como indicativo de desempenho é, de fato, dar uma idéia muito vaga do processador. Pode-se ter modelos da mesma família com o mesmo clock, só que com cache ou outros recursos diferentes. Assim, é necessário ter algum meio de identificar essas diferenças. UNIDADE DE PONTO FLUTUANTE. Todos os processadores utilizados nos PCs modernos possuem no seu interior uma unidade de ponto flutuante, FPU, Floating Point Unit. Não se trata de uma peça destacável, é a parte integrante dos circuitos internos do processador. Sua finalidade á a execução de operações matemáticas complexas, como por exemplo, as funções trigonométricas e algébricas, raízes quadradas, potenciação, logaritmos, entre outros. Também realiza adições, subtrações, multiplicações e divisão de números reais em alta precisão. Todas essas operações matemáticas são necessárias em processamento científico e de engenharia, na geração de imagens tridimensionais e em jogos. ULA. A Unidade Lógica e Aritmética, ULA é responsável pelas operações elementares (soma, subtração, multiplicação e divisão) e pelas decisões lógicas (isto é, comparações entre informações. Por exemplo, decidir se 5 <= 3 ou se 5 > 3, entre outros). UC. A unidade de controle controla o funcionamento da unidade lógica e aritmética e da memória. Além disso, ela distribui e organiza tarefas, transfere informações da entrada para a memória e da memória para a saída.