Cap. 5 - Microprocessadores Arquitectura de Computadores 2010/2011 Licenciatura em Informática de Gestão Dora Melo (Responsável) Originais cedidos gentilmente por António Trigo (2009/2010) Instituto Superior de Contabilidade e Administração de Coimbra Dora Melo (2010/2011) 1 / 29
1 Introdução 2 Processo de fabrico 3 Gerações de processdores Primeiros processadores Geração 16 bits Geração 32 bits Geração 64 bits 4 RISC vs CISC 5 Ciclo de execução de instruções 6 Pipeline Dora Melo (2010/2011) 2 / 29
Introdução O processador, ou microprocessador (µp), é o circuito integrado responsável por executar as instruções de todos os programas armazenados em memória; Existe pelo menos um em todos os PCs, sejam eles, computadores de secretária, estações de trabalho e servidores e computadores portáteis; Tal como os restantes demais componentes é encaixado da placa-mãe. Dora Melo (2010/2011) 3 / 29
Fotografia de um processador Pentium Dora Melo (2010/2011) 4 / 29
Gráfico de evolução do número de transístores num die Dora Melo (2010/2011) 5 / 29
Como são fabricados Silício O primeiro passo na fabricação de processadores consiste na obtenção da matéria-prima, o silício. O silício é um elemento químico extremamente abundante, tanto que é considerado o segundo mais comum na Terra. É possível extraí-lo de areia, granito, argila, entre outros. Assim, a partir destes materiais, são obtidos cilindros de silício puro (99,9999%), como se pode ver na figura abaixo. Dora Melo (2010/2011) 6 / 29
Como são fabricados Processo de fabrico Após a obtenção do rolos de silício estes são fatiados, para obtenção das wafers ou bolachas de silício; De seguida as wafers recebem uma camada fotosensível, ou seja, que reage à luz; Aplica-se então a luz ultravioleta em certos pontos e em determinadas intensidades, desenhando desta forma os transístores que compõem o processador; Cada wafer dá origem a centenas de processadores, que são recortados da wafer; Dora Melo (2010/2011) 7 / 29
Como são fabricados Processo de fabrico O último passo é o teste de qualidade a cada um dos processadores, do qual resulta a eliminação/classificação dos processadores. Um Core Duo 6600 não é diferente de um Core Duo 6800, por exemplo. Ambos partilham a mesma arquitectura e passaram pela mesma linha de produção (quem sabe, até partilharam a mesma wafer). A única diferença é que o 6800 teve a sorte de sair mais perfeito e, graças a isso, ser capaz de operar a frequências mais altas. Poderá visualizar em mais pormenor o processo de fabrico de processadores em http://www.gdhpress.com.br/ hardware/leia/index.php?p=cap1-5. Dora Melo (2010/2011) 8 / 29
Primeiros processadores Primeiros processadores Em 1971, a Intel inventou o processador 4004, que se destinava a uma máquina de calcular de bolso; Em 1972 foi criado o 8008, o primeiro processador a 8 bits; Em 1974 surgiu o 8080, considerado o precursor dos processadores modernos; Mais tarde, antigos técnicos da Intel criaram a empresa Zilog, a primeira concorrente à Intel, e o processador Z80, compatível com o 8080. Dora Melo (2010/2011) 9 / 29
Primeiros processadores Principais características dos primeiros processadores CPU Transístores Velocidade Barramentos Encapsulamentos 4004 2300 108 KHz dados: 4 bits, endereços: DIP 12 bits 8008 3500 200 KHz dados: 8 bits, endereços: DIP 14 bits 8080 4500 2 MHz dados: 8 bits, endereços: CDIP 16 bits Z80 10 MHz Dora Melo (2010/2011) 10 / 29
Geração 16 bits Em 1976, a Intel adoptou a arquitectura de 16 bits, isto é, o processador passou a utilizar operandos de 2 bytes; Surgiram então o 8086 e o 8088, sendo que ainda hoje os processadores são designados como x86, ou seja, pertence à família 8086 (iniciada com o 8086); Estes processadores tiveram imenso sucesso, pelo facto de terem sido escolhidos pela IBM para equiparem o primeiro computador pessoal: o IBM PC/XT; O 8088 era uma alternativa de baixo custo ao 8086, que possuía um barramento de dados de 8 bits, contra os 16 bits do 8086; Mais tarde surgiu o 80286 (ou 286), com barramento de endereços de 20 bits, que veio equipar o IBM PC/AT. Dora Melo (2010/2011) 11 / 29
Geração 32 bits 386 O primeiro processador a 32 bits foi o processador 386 da Intel, que surgiu em 1985. Define e resume as características mais importantes da família x86; A principal inovação deste processador, para além da largura de dados de 32 bits, á a utilização de um barramento de endereços de 32 bits que permite utilizar 2 32 bytes de memória; Outra novidade do 386 é a utilização do mode de operação Virtual que permite simular vários 8086 independentes; Em 1990 surge o 386SL, com um sistema de gestão de consumo, que foi um dos primeiros processadores utilizados em larga escala, na produção de portáteis. Dora Melo (2010/2011) 12 / 29
Geração 32 bits 486 O sucessor do 386, surgiu em 1989, e apresenta como principais inovações: Maior número de unidades funcionais, integrando na die do processador componentes que até então eram externos ao mesmo, nomeadamente a cache L1 e o coprocessador aritmético. Diminuição do número de ciclos por instrução devido ao maior número de transístores; Utilização de um multiplicador para a obtenção do clock interno em função do clock externo (placa mãe) e que permite ao processador funcionar a velocidades superiores às do barramento principal. Dora Melo (2010/2011) 13 / 29
Geração 32 bits Pentium Contém duas unidades de cálculo de inteiros; Arquitectura superescalar, isto é, pode executar mais do que uma instrução por ciclo (introdução da ideia do pipeline); Versão Pentium MMX (Multimedia Extensions), que possuía instruções específicas para aplicações multimédia; Versão Pentium Pro, cuja principal característica era a de possuir um núcleo RISC e um descodificador interno CISC, para transformar as complexas instruções x86 em instruções RISC internas; Na versão Pentium Pro foi também introduzida a arquitectura DIB (Dual Independent Bus) - criação do BSB (Back Side Bus). Dora Melo (2010/2011) 14 / 29
Geração 32 bits Pentium Pentium II e II Xeon, integração da cache L2 no processador; Pentium III e III Xeon, encaixava na vertical; Pentium 4, devido às altas frequências de operação, necessitava de sistemas de ventilação mais poderosos; Intel Xeon, versão para servidores baseada no Pentium 4 Família Celeron, é constituída por um conjunto de processadores com tecnologia semelhante à família Pentium, com algumas diferenças, que fazem com que os processadores desta família operem a frequências inferiores e sejam mais baratos. Dora Melo (2010/2011) 15 / 29
Geração 64 bits Servidores O Itanium foi o primeiro processador de 64 bits lançado pela Intel; Este processador incorpora um novo conjunto de instruções designado por IA-64, incompatíveis com as instruções das famílias de 32bits; Este processador está orientado para o mercado de servidores pelo que foi optimizado para a realização de muitas instruções por ciclo em detrimento de um relógio mais rápido como acontecia com o Pentium 4 (1.8GHz); Itanium 2 e AMD Opetron, também orientados para servidores; Dora Melo (2010/2011) 16 / 29
Geração 64 bits Processadores recentes de 64bits para secretária Intel Core Intel Core 2 Duo Intel Core 2 Quad Intel Core i5 e i7, com tecnologia de 45nm; AMD AMD Athlon; AMD Athlon X2; AMD Athlon II X2; AMD Phenom; AMD Phenom II. Dora Melo (2010/2011) 17 / 29
Geração 64 bits Processadores recentes de 64bits para portáteis Intel Core Centrino Intel Core 2 Duo Intel Core 2 Quad Intel Core i7, com tecnologia de 45nm; Intel Core Celeron AMD AMD Sempron (32 bits); AMD Athlon X2; AMD Athlon Neo; AMD Turion X2. Dora Melo (2010/2011) 18 / 29
Arquitectura RISC e CISC Complex Instruction Set (CISC) É uma linha de arquitectura de processadores capaz de executar centenas de instruções complexas diferentes sendo, assim, extremamente versátil. Exemplos de processadores CISC são os 386 e os 486 da Intel. Reduce Instruction Set (RISC) É uma linha de arquitectura de computadores que favorece um conjunto simples e pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas. A maioria dos microprocessadores modernos são RISC. Dora Melo (2010/2011) 19 / 29
Arquitectura RISC vs CISC RISC vs CISC A vantagem da arquitectura CISC é de já existirem muitas das instruções no próprio processador, o que facilita o trabalho dos programadores. No caso de um chip estritamente RISC, o programador já terá mais de trabalho, pois dispõe somente de instruções simples, o que o obriga a combinar várias instruções para executar uma tarefa mais complexa. Os chips actuais, são uma mistura das duas arquitecturas. Internamente, o processador processa apenas instruções simples (RISC), existindo um circuito descodificador, que converte as instruções complexas utilizadas pelos programas em várias instruções simples que podem ser entendidas pelo processador. Dora Melo (2010/2011) 20 / 29
Tabela comparativa entre RISC e CISC RISC CISC Número de instruções Reduzido Elevado Tamanho das instruções Fixo Variável Formatos das instruções Poucos Muitos Modos de enderaçamento Poucos Muitos Registos de uso genérico Muitos Poucos, alguns com utilizações pré-definidas Dora Melo (2010/2011) 21 / 29
Estrutura de um processador moderno Dora Melo (2010/2011) 22 / 29
Registos importantes Unidade Aritmética e Lógica MBR - Memory Buffer Register, contém uma palavra de dados (a lida mais recentemente da memória ou a que vai ser escrita em memória). Unidade Controlo MAR - Memory Address Register, contém um endereço de uma posição na memória; PC/IP - Program Counter/Instruction Pointer, que indica a posição em que o processador se encontra na sequência de instruções a executar. Dependendo da arquitectura contém o endereço de memória da instrução que está a executar ou o endereço a instrução seguinte a executar; IR - Instruction Register, que contém a instrução adquirida mais recentemente. Dora Melo (2010/2011) 23 / 29
Ciclo Fetch and Execute Uma das funções básicas de um processador é a de executar um programa, que consiste num conjunto de instruções armazenadas em memória; Na sua forma mais simples a execução de instruções pode ser divida em duas etapas: primeiro processador lê (fetch) uma instrução da memória e executa-a (execute); A execução de um programa consiste em repetir este processo, até chegar à última instrução. Dora Melo (2010/2011) 24 / 29
Ciclo Fetch and Execute Assim, o processador executa cada instrução numa sequência de passos elementares, agrupados da seguinte forma: Fetch Lê uma instrução da localização em memória especificada pelo registo PC/IP; Incrementa o PC/IP de modo a ficar a apontar para a próxima instrução; Carrega a instrução que vem da memória no seu IR; Execute Analisa (descodifica) a instrução para determinar o tipo de operação e operandos; Se a instrução necessita de operandos, calcula a sua localização e se necessário, vai buscar o(s) operando(s); Executa a operação especificada na instrução; Guarda o resultado da operação efectuada; Volta ao passo inicial para ir buscar nova instrução. Dora Melo (2010/2011) 25 / 29
Ciclo Fetch and Execute Dora Melo (2010/2011) 26 / 29
Processamento pipeline A estratégia usada é semelhante a uma linha de produção em série de uma fábrica; Se reconhecermos que as instruções são executadas por fases (por exemplo duas: aquisição e execução) podemos explicar o conceito pipeline em duas fases independentes; A primeira fase consiste em adquirir uma instrução, utilizando para tal os ciclos de memória deixados livres pela segunda fase, e colocá-la num buffer; A segunda fase, consiste em executar a instrução adquirida na primeira fase disponível no buffer. Dora Melo (2010/2011) 27 / 29
Processamento pipeline Por forma a aumentar a performance do sistema, o pipeline tem de ter mais estágios e de duração igual. Assim as instruções podem ser decompostas em: Aquisição da instrução (F.I. Fetch Instruction) Descodificação da instrução (D.I. Decode Instruction) Cálculo dos operandos (C.O. Calculation Operand) Aquisição dos operandos (F.O. Fetch Operand) Execução das instruções (E.I. Execute Instruction) Escrita dos Operandos (W.O. Write Operand) Dora Melo (2010/2011) 28 / 29
Processamento pipeline Dora Melo (2010/2011) 29 / 29