microprocessadores - apostila

Upload: henriquehorschutz

Post on 06-Jul-2018

231 views

Category:

Documents


2 download

TRANSCRIPT

  • 8/18/2019 Microprocessadores - Apostila

    1/103

    UNIVERSIDADE FEDERAL DO PARÁCENTRO TECNOLÓGICO

    DEPARTAMENTO DE ENGENHARIA ELÉTRICA 

    CURSO:  

    MICROPROCESSADORESMICROPROCESSADORES

    Prof.: Marcelo Barretto Ano: 2000Mestre em Engenharia Elétrica - PUC/RJProfessor Adjunto IVEspecialista em Redes Locais de Computadores

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    2/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 2

    Sumário

    Capítulo 1: Conceitos Básicos1.1 - Histórico1.2 - CPU, Memórias e Dispositivos de Entrada/Saída1.3 - Sistema de Barramentos1.4 - Arquitetura Padrão de um Microprocessador1.5 - Execução de Instruções em Microprocessadores1.6 - Algumas Instruções Importantes1.7 - Capacidade de Interrupção1.8 - Técnicas de Entrada/Saída

    Capítulo 2: Os Microprocessadores da INTEL

    2.1. O 8086/80882.1.1. Arquitetura2.1.2. Características Gerais2.1.3. Capacidade de Interrupção

    2.2. O 802862.2.1. Arquitetura e Características2.2.2. Diferenças no Conjunto de Instruções2.2.3. Implicações no Desempenho de um Microcomputador

    2.3. Os 803862.3.1 - Diferenças de Arquitetura e Características2.3.2 - Diferenças no Conjunto de Instruções2.3.3 - Versões 80386, 80386SX e 80386SL

    2.3.4 - Implicações no Desempenho de um Microcomputador2.4 - Os i486

    2.4.1 - Diferenças de Arquitetura e Características2.4.2 - Diferenças na Capacidade de Processamento

    2.5 - Os Pentium, Pentium MMX e PRO2.5.1 - Diferenças de Arquitetura e Características2.5.2 - Benchmarks

    2.6 - Os Pentium II2.6.1 - Arquitetura e Características2.6.2 - Benchmarks2.6.3 - Implicações no Desempenho de Desktops e Servidores de Rede

    2.7 – Últimos Microprocessadores da INTEL

    Capítulo 3: Características Gerais dos Sistemas de Barramentos

    3.1 - Os Barramentos Principais ISA, EISA e MCA3.2 - Os Barramentos Locais Secundários VESA e PCI3.3 - Os Barramentos Secundários IDE e Enhanced IDE3.4 - Os Barramentos Secundários SCSI

    Capítulo 4: Suporte ao Desenvolvimento de Software Básico

    4.1 - Estrutura de um Programa na Memória4.2 - Montadores, Carregadores e Depuradores

    4.3 - Uso de um Depurador de Linguagem Assembly

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    3/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 3

    Capítulo 5: Características Gerais dos Microprocessadores da MOTOROLA

    5.1 - O 68.0005.1.1 - Arquitetura5.1.2 - Diferenças no Conjunto de Instruções5.1.3 - Capacidade de Interrupção

    5.2 - O 68.0105.3 - O 68.0205.4 - O 68.0305.5 - O 68.0405.6 – O 68.0605.7 – Os PowerPC (IBM/Apple/Motorola)

    Capítulo 6: Introdução aos Microcontroladores

    6.1 - Arquitetura Interna6.2 - O microcontrolador 8052 da INTEL6.3 – O MPC860 da Motorola 

    Capítulo 7: Introdução às Arquiteturas RISC

    7.1 - Noções da Arquitetura RISC7.2 - Implicações no Desempenho de um Computador

    Capítulo 8: Arquiteturas Não Convencionais

    8.1 - Arquiteturas Paralelas8.2 - Arquiteturas MIMD8.3 - Arquiteturas àPassagem de Mensagens

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    4/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 4

    CAPÍTULO 1: CONCEITOS BÁSICOS

    1.1 - HISTÓRICO

     A história dos microprocessadores é brevemente resumida a seguir com o destaque de algumasdatas importantes:

    Década de 40: è Válvula e Transistor (1948)

    Década de 50: è Comercialização do transistor

    Década de 60: è Circuitos Integrados SSI ("Small Scale Integrated")

    Década de 70: è Circuitos Integrados MSI ("Medium Scale Integrated")

    1971: => Circuitos Integrados LSI ("Large Scale Integrated")=> INTEL 4004 (CPU do primeiro microcomputador de 4 bits)

    1972: => INTEL 8008 (CPU do primeiro microcomputador de 8 bits)

    1974: è INTEL 8080 (10 vezes mais rápido que o 8008)=> MOTOROLA 6800

    1976: => TEXAS 9800 (CPU do primeiro microcomputador de 16 bits)

    1977: è MOSTEK 6502 ==> Apple I, II e II plusè ZILOG Z80 ==> TRS-80

    1978: => Circuitos Integrados VLSI ("Very Large Scale Integrated")=> MOTOROLA 6809 (Melhor CPU de 8 bits do mercado)è INTEL 8088/8086 (29.000 transistores integrados)=> Microprocessadores BIT-SLICE (de 2 a 64 bits)

    Década de 80:

    1980: => MOTOROLA 68.000 (68.000 transistores integrados)1981: => MOTOROLA 68.0101982: => INTEL 80186/80188

    => INTEL 80286 (130.000 transistores integrados)

    1984: => MOTOROLA 68.0201985: => INTEL 80386 (ou 80386DX, ou i386)1986: => MOTOROLA 68.0301988: => INTEL 80386SX1989: => INTEL i486 (1.200.000 transistores)

    Década de 90:

    1991: => INTEL i386SL, i486SXð Microprocessadores com tecnologia RISC

    1992: => INTEL i486DX2/50 e i486DX2/661993: => INTEL Pentium1995: => INTEL Pentium Pro

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    5/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 5

    1997: è INTEL Pentium II

    Tendências:

    ð Máquinas CISC ou Máquinas RISCð Pentium 166 Mhz è Pentium II a 300 Mhzð Máquina de Controle Seqüencialè Máquina de Controle Paraleloð Máquina de Arquitetura SIMD è Máquina de Arquitetura MIMD ("Data-Flow")ð  Arquiteturas orientadas p/ o HWè Arquiteturas orientadas p/ o SWð Máquinas processando texto è Máquinas processando dados multimídia

    1.2 - CPU, MEMÓRIAS E DISPOSITIVOS DE ENTRADA/SAÍDA

    Os próximos parágrafos procuram dar uma idéia da nomenclatura utilizada no restante destedocumento e introduzir os componentes principais da arquitetura de microcomputadores ou decircuitos controlados a microprocessador.

    HARDWARE: consiste de circuitos eletrônicos responsáveis pela execução direta de instruções emlinguagem de máquina: CIs, placa impressa, cabos, fontes de alimentação, etc.

    SOFTWARE: consiste de algoritmos e suas representações no computador (programas).

    FIRMWARE: consiste de um software embutido em circuitos eletrônicos.

    É comum dizer que qualquer operação feita por software pode também ser construída por hardware e

    qualquer instrução executada pelo hardware pode também ser simulada por software.

    Um sistema de microcomputador típico é mostrado na figura 1. Basicamente, são três oscomponentes de qualquer sistema controlado por microprocessador ou mesmo de um sistema decomputação: Unidade Central de Processamento (CPU), Memória e Dispositivos de Entrada/Saída(E/S).

     A CPU  tem finalidade óbvia, a de controlar o sistema como um todo. A memória serve paraarmazenar os dados que serão manipulados e os dispositivos de E/S para a comunicação damáquina com o mundo exterior (usuário).

    Os vários tipos de Memória são definidos a seguir:

    RAM  - "Random Access Memory": memória de leitura/escrita, volátil, para armazenamentotemporário de programas e dados;

    RAM Estática - RAM com menor densidade e mais rápida que a RAM dinâmica. Não necessita decircuitos adicionais em um microcomputador.

    RAM Dinâmica  - RAM com maior densidade e mais lenta que a RAM estática. Necessita decircuitos adicionais de controle em um microcomputador.

    ROM  - "Read Only Memory": memória programada quando a pastilha é fabricada, não podendo sermodificada. É usada para armazenamento permanente de programas e dados;

    PROM  - "Programmable ROM": memória programada por um dispositivo programador de PROM.Programável uma única vez;

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    6/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 6

    EPROM - "Erasable PROM": memória que pode ser apagada e reprogramada várias vezes. Apagávelpela incidência de raios ultra-violeta e programável por um dispositivo programador de EPROM;

    EEPROM  - "Erasable Electrically PROM": memória EPROM eletricamente modificável, semnecessidade de dispositivos externos apagadores ou programadores.

    Os Dispositivos de Entrada/Saída são os componentes que viabilizam a interface com o usuário,tais como: portas seriais, portas paralelas, conversores análogo-digitais, etc

    Estes componentes são ligados através de um sistema de barramentos, o qual será explicado napróxima seção.

    Figura 1 – Sistema de Microcomputador Típico e suas Interfaces

    Micropro-cessador 

    (CPU)

    MemóriaEPROM

    MemóriaRAM

    Interfaces deControle eSensorea-

    mento

    Interfacespara

    MemóriaSecundária

    Interfaces deInteração c/o Usuário

    Barramento de Controle

    Barramento de Dados

    Barramento de Endereços

    Monitor 

    CD-ROM R/W

    Scanner 

    Imp. Matricial

    Modem

    Sensor  Válvula

    HD

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    7/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 7

    1.3 - SISTEMA DE BARRAMENTOS

    Um sistema de barramentos é definido como um conjunto físico de linhas de sinal que possuemfunções específicas dentro do sistema.

    O sistema de barramentos de um microcomputador é composto de 3 barramentos (ver figura 1)independentes em suas funções elétricas: o barramento de endereços, o barramento de dados e obarramento de controle.

    O Barramento de Endereços  é apenas de saída (em relação CPU) e define o caminho decomunicação dentro do sistema.

    O Barramento de Dados é bidirecional, sendo o meio de comunicação entre os componentes dosistema. Na saída de dados da CPU, estes são gerados pelo microprocessador (CPU) e enviados à

    uma unidade que é selecionada pelo barramento de endereços. Na entrada de dados, estes sãogerados por uma unidade particular e enviados ao microprocessador.

    O Barramento de Controle, como o próprio nome indica, envia e recebe os sinais de controlenecessários à transferência de dados no sistema. Este barramento é composto, basicamente, de 4tipos de sinais: leitura de memória ativa, escrita de memória ativa, entrada através de dispositivoexterno ativo e saída através de dispositivo externo ativo.

    1.4 - ARQUITETURA PADRÃO DE UM MICROPROCESSADOR

    Depois de se examinar um sistema de microcomputador de forma global, nesta seção seráapresentada a arquitetura padrão de um microprocessador, exibida na figura 2. Destacam-se osseguintes blocos:

    Registrador de Instrução (RI) - registrador que armazena a instrução sendo executada;

    Contador de programa  ("Program Counter - PC") - registrador que armazena o endereço dememória da próxima instrução a ser executada;

    Acumulador  - registrador que contém o dado a ser processado;

    Apontador de pilha   ("Stack Pointer - SP") - registrador que aponta para o endereço de retorno de

    subrotina, sendo este último armazenado em uma pilha na memória;

    Unidade Lógica e Aritmética  (ULA) - circuito combinacional utilizado para operações lógicas earitméticas envolvendo dois operandos;

    Decodificador de instruções  - circuito combinacional utilizado para determinar qual a próximainstrução a ser executada. Isto é feito a partir do código de operação armazenado previamente noRegistrador de Instrução;

    Unidade de controle  - circuito seqüencial interno ao microprocessador utilizado para gerar ossinais de controle necessários àexecução da instrução previamente decodificada;

    Registradores auxiliares  - conjunto de registradores de rascunho que podem ser usados emconjunto ou separadamente para operações intermediárias, sem que seja necessário o acessosistemático àmemória;

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    8/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 8

    Flags  – conjunto de Flip-Flops destinados a guardar as condições resultantes da execução deinstruções. Tais flags são fundamentais no sentido em que se constituem no único mecanismo que oprogramador Assembly dispõe para desvios de processamento e implementação de algoritmos.

    Figura 2 – Arquitetura Padrão de um Microprocessador

    1.5 - EXECUÇÃO DE INSTRUÇÕES EM MICROPROCESSADORES

    Nesta seção serão dadas as explicações básicas para o entendimento dos microprocessadoresmais comuns do mercado.

     Antes de mostrar o procedimento de execução de instruções é necessário detalhar alguns aspectos:os flags de condição, o formato das instruções e as operações básicas (de leitura e escrita) de ummicroprocessador.

    Flags de Condição:

    Um "flag" é "SETADO", forçando-se o bit de flag para "1" e é "RESETADO", forçando-se o bit de flag

    para "0". Quando uma instrução afeta um flag este é alterado da seguinte maneira:

    ZERO: Se o resultado da instrução tem valor 0,

    Buffer deDados

    Buffer de Endereço

    Barramento deEndereços

    PC

    SP

    Registradores deRascunho

    Acumulador 

    Unidade Lógica eAritmética (ALU)

    Decodifi-cador 

    Unidade deControle

    Código deInstrução

    InformaçãoComple-mentar 

    RI X

    Apontador de Pilha

    Contador dePrograma

    R1

    Rn

    ...

    Barramento deDados

    Sinais de

    Controle

    S

    Z

    CY

    AC

    P

    Flags

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    9/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 9

    Código de Operação

    Código de Operação

    Info. Complementar

    então Z è 1senão Z è 0;

    SINAL: Se o bit mais significativo do resultado da operação tem valor 1,então Sè 1

    senão Sè 0;

    PARIDADE: Se a soma dos bits do resultado da operação é 0,então Pè 1 (paridade PAR)senão Pè 0 (paridade ÍMPAR);

    CARRY: Se o resultado da instrução provoca um "carry" (na adição) ou um "borrow" (na subtração oucomparação),

    então C è 1senão C è 0;

    CARRY AUXILIAR: Se a instrução causou um carry do bit 3 para o bit 4,então AC è 1senão AC è 0.

    Cada microprocessador tem seus próprios bits de flag. Os flags anteriormente mencionados são osmais comuns de serem encontrados na maioria dos microprocessadores.

    Mostra-se a seguir o formato de instrução, por exemplo, de um microprocessador de 8 bits. Apartir deste entendimento, pode-se por analogia, entender o formato de instruções de outrosmicroprocessadores. Assim, o formato de instrução do INTEL 8085 é utilizado como exemplo básico.

    Formato de Instrução e dado no 8085

    1. Instruções de um byte 

    D7 D6 D5 D4 D3 D2 D1 D0

    Obs.: O endereço do primeiro byte das instruções é sempre usado como o endereço de instrução.

    2. Instruções de dois bytes 

    D7 D6 D5 D4 D3 D2 D1 D0

    D7 D6 D5 D4 D3 D2 D1 D0

    3. Instruções de três bytes 

    Ex.: MOV R1,R2 ; R1

  • 8/18/2019 Microprocessadores - Apostila

    10/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 10

    Código de Operação

    Info. Complementar

    Info. Complementar

    D7 D6 D5 D4 D3 D2 D1 D0

    D7 D6 D5 D4 D3 D2 D1 D0

    D7 D6 D5 D4 D3 D2 D1 D0

    Nas seções anteriores foram mostrados os componentes básicos de um circuito controlado amicroprocessador, a arquitetura padrão dos microprocessadores e a CPU do sistema. Isto eraindispensável para a compreensão do capítulo e do curso como um todo.

     Ainda com o intuito de mostrar como instruções são executadas em microprocessadores, tambémse faz necessário explicar as operações básicas de um computador ou circuito controlado amicroprocessador. Estas, são as operações de leitura de memória e escrita na memória.

    Operações Básicas de um Computador:

    Operação de Leitura:

    1. A memória recebe o endereço e a solicitação de leitura;

    2. A memória localiza a célula decodificando o endereço;

    3. Operação de leitura propriamente dita;

    4. Intervalo em que a memória não é acessível por razões técnicas ("Descanso").

    Ciclo de Acesso àMemória: fases 1, 2 e 3

    Ciclo da Memória: fases 1, 2, 3 e 4

    Operação de Escrita:

    1. A memória recebe o endereço, o dado e uma solicitação de escrita;

    2. A memória localiza a célula decodificando o endereço;

    3. Operação de escrita propriamente dita;

    Ex.: LXI Rp, dado 16 ; Rh

  • 8/18/2019 Microprocessadores - Apostila

    11/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 11

    4. ("Descanso").

    Obs.: A operação de leitura é muito mais freqüente que a operação de escrita.

    Ciclo de Instrução

    Uma instrução é executada por um microprocessador durante um intervalo de tempo particular àinstrução, chamado, CICLO DE INSTRUÇÃO. Um ciclo de instrução é composto de vários ciclos demáquina que variam de acordo com a instrução. Cada ciclo de máquina, por sua vez tem a duraçãode vários períodos de relógio. Em seguida, o ciclo de instrução é detalhado.

    O formato da instrução em linguagem de máquina é mostrado a seguir. Com base neste formatopode-se descrever textualmente o ciclo de instrução.

    Linguagem de Máquina ==>

    CICLO DE INSTRUÇÃO:

    1. BUSCA 

    a) Envio de um endereço para a memória e execução de uma leitura;

    b) Incremento do registrador de endereço de instrução;

    2. EXECUÇÃO 

    a) Decodificação do código de operação;

    b) Execução da instrução;

    3. VOLTA PARA FASE 1 

    --> Pode haver desvio:- Incondicional: o valor do registro de endereço de instrução é alterado;

    - Condicional: se a condição é satisfeita, a seqüência linear é interrompida.

    É importante ressaltar que cada ciclo de instrução é composto por vários ciclos de máquina..

     A figura 3 procura ilustrar o procedimento de execução de um pequeno programa, passo-a-passo, jáarmazenado na memória e a figura 4 mostra, sob a forma de diagrama de tempo, a execução dainstrução LDA 0420, com todos os seus ciclos de máquina e períodos de relógio.

    Código de Operação Informação Complementar

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    12/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 12

    Figura 3 – Execução de Instruções por um Microprocessador Passo-a-Passo

    Porta deEntrada 01

    Acumulador 

    Registrador deInstrução

    Porta deSaída 10

    Microprocessador 

    5

    5

    243

    1

    68

    1214

    79

    1315

    Caracter "A" do teclado

    16

    10 11

    16 16

    Caracter "A" para omonitor de Vídeo

    Memória de Dados

    Endereço Conteúdo2000 A200120022003

    Memória de Programa

    Endereço Conteúdo0100 IN0101 010102 STA0103 000104 200105 OUT0106 100107 ...

    5

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    13/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 13

    Figura 4 – Execução da Instrução LDA 0420

    1.6 - ALGUMAS INSTRUÇÕES IMPORTANTES

    Normalmente, pode-se separar as instruções de linguagem Assembly de um microprocessador em

    grupos. Tais grupos podem ser generalizados para a maioria dos microprocessadores com algumaspequenas diferenças. A título de exemplo, os grupos de instruções no 8085 são mostrados abaixo.

    Ciclo

    Busca Exec. Busca Exec.

    Ciclo M1 Ciclo M2

    RI 1002

    RI 1003

    PC

    Oper.

    Fase Busca Exec. Busca Exec.

    Ciclo M3 Ciclo M4

    RI

  • 8/18/2019 Microprocessadores - Apostila

    14/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 14

    Grupo de Transferência de Dados

    Move dados entre registradores ou entre locações de memória e registradores;

    Ex.: "MOVEs", "LOADs", "STOREs" e EXCHANGE;

    Grupo Aritmético

    "ADDs", "SUBTRACTs", "INCREMENTs" ou DECREMENTs" dados nos registradores ou namemória;

    Grupo Lógico

    "ANDs", "ORs", "XORs", "COMPAREs", "ROTATEs" ou "COMPLEMENTs" dados entreregistradores ou entre locações de memória e registradores;

    Grupo de Salto

    "JUMPs", "CALLs" e "RETs" condicionais ou incondicionais;

    Grupo de Instruções de Pilha, E/S e Controle de Máquina

    Inclui instruções de manutenção de pilha, leitura escrita na/da memória, "seta" ou lê máscaras deinterrupção, seta ou limpa "FLAGs"

    1.7 – CAPACIDADE DE INTERRUPÇÃO

    Uma das técnicas de Entrada/Saída de dados mais utilizadas na atualidade é a Interrupção. Seu usoaplica-se tanto em computadores de um modo geral, como também no ambiente de automaçãoindustrial.

    INTERRUPÇÃO  (IRQ) é um sinal de hardware enviado por um dispositivo periférico necessitando deimediata atenção da CPU. A utilização desta técnica, forçosamente, envolve sinais de hardware.

    É comum em softwares de apoio tradicionais, como o Norton Utilities, observar a distinção entreInterrupções por Hardware e por Software. Segundo nomenclatura da INTEL, a diferença básica é quena Interrupção por Hardware , o endereço de salto, para o qual o microprocessador irá desviar oprocessamento é predefinido pelo hardware do microprocessador, enquanto que na Interrupção porSoftware , este endereço de salto pode ser alterado pelo usuário programador Assembly.

    Um outro conceito relacionado as interrupções também merece ser comentado. É o mascaramentode Interrupções. Existem as Interrupções Mascaráveis  e as Interrupções Não Mascaráveis.Quando as Interrupções são Mascaráveis o processador tem a capacidade de não aceitar o pedidode interrupção do periférico, deixando-o pendente, de tal forma que possa atendê-lo um tempodepois. Já nas Interrupções Não Mascaráveis, o processador não pode fazer isso, sendo obrigado aatender imediatamente a solicitação de interrupção do periférico.

     A fim de exemplificar estes conceitos e subsidiar as explicações sobre o mecanismo de Interrupção,é fornecida a seguir a sintaxe e a semântica de uma instrução básica para o entendimento destemecanismo, a instrução RESTART.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    15/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 15

    Instrução RST n (Restart)

    RST é uma instrução CALL de propósito especial. RST "push" ou "empurra" bytes do ProgramCounter (PC) sobre a pilha e então faz a CPU saltar para um dentre vários endereços

    predeterminados.

    ((SP) - 1)

  • 8/18/2019 Microprocessadores - Apostila

    16/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 16

    Para o processador não se confundir, ao receber dois pedidos de interrupção simultâneos, é providoum mecanismo de prioridade que estabelece uma ordem no atendimento destes pedidos.

    Prioridade das Interrupções no 8085

    NOME PRIORIDADE ENDEREÇO DE SALTO (1) TIPO DE "TRIGGER"³

    TRAP 1 0024H Pulso Positivo amostradoaté Alto Nível

    RST 7.5 2 003CH Pulso Positivo "Latched"RST 6.5 3 0034H Sensível a Nível (Alto)RST 5.5 4 002CH Sensível a Nível (Alto)INTR 5 (2) Sensível a Nível (Alto)

    (1) – O processador coloca o conteúdo do Program Counter sobre a pilha, antes de saltar para oendereço indicado

    (2) - Depende da Instrução fornecida a CPU quando a Interrupção é reconhecida

     A figura 5 ilustra o mecanismo de Interrupção no 8085. A figura 6 mostra o mesmo para o ZILOG Z80e a figura 7 exibe os circuitos integrados típicos dos ambientes INTEL e ZILOG. É importanteressaltar a diferença entre os mecanismos de prioridade de interrupção das duas empresas.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    17/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 17

    Figura 5 – Mecanismo de Interrupção no INTEL 8085

    INTEL8085

    DispositivoPeriférico

    1

    2

    3

    INTR

    INTA

    RST nn

    6001

    60026003

    0038 C3 (JMP)

    003A 80

    Ex.: RST 7

    INTR

    (SP) 0260

    1

    3

    0039 00

    4

    5

    6

    Pilha

    Subrotina de Serviço deInterrupção

    Programa sendo executado

    8000 . . .

    RET. . .

    Endereço Dado

    2

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    18/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 18

    Figura 6 – Mecanismo de Interrupção (Modo 2) no ZILOG Z80

    ZILOGZ80

    DispositivoPeriférico

    1

    2

     ___

    INT ____INTA

    400240034004

    (SP) 04

    40

    2

    5

    4

    1

    Pilha

    Subrotina de Serviço deInterrupção

    Programa sendo executado

    8003

    8005 608004 50

    8006

    6050 . . .

    60XX RETI. . .

    Tabela de Endereços deInterrupção

     ___INT

    I 80Registrador da CPU

    80 04

    36

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    19/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 19

    Figura 7 – Mecanismos de Prioridade de Interrupção ZILOG e INTEL

    8259 – Controlador de Prioridade de Interrupção (PIC)8257 – Controlador de DMA Programável (PDC)8272 – Controlador de Disco Flexível8274 – Controlador Serial Multiprotocolo8273 – Temporizador Programável

    1.8 – TÉCNICAS DE ENTRADA E SAÍDA

    Z80CPU

    PIO DMA

    8085CPU

    CTC SIO

    8274 8253

    8259(PIC)

    8257 8272

    Mecanismo"Daisy Chain"

    Prioridade Fixa

    PrioridadeControlada

    Barramentos

    Barramentos

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    20/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 20

     Além da técnica de Interrupção detalhada na seção anterior, existem duas outras técnicas, tambémmuito utilizadas em sistemas de computação de um modo geral. São estas: "Polling" e AcessoDireto àMemória (ou DMA – “Direct Access Memory”).

    "POLLING": É uma técnica de Entrada/Saída de dados onde a CPU, explicitamente, consulta operiférico com o objetivo de saber se o mesmo possui dados para transmitir ou se está livre para os

    receber. Esta técnica não envolve sinais de hardware e pode ser implementada por software;

    ACESSO DIRETO À MEMÓRIA: É uma técnica de Entrada/Saída de dados onde a CPU nãoparticipa do processo de transferência de dados, exceto no seu início e após o seu término. Umoutro dispositivo periférico é necessário, o chamado "Controlador de DMA", para assumir o controledos barramentos do sistema e controlar as transferências de dados.

    Na maior parte dos casos, o uso desta técnica obriga o uso combinado das anteriores para que oprocesso de transferência de dados seja iniciado e terminado corretamente. A figura 8 ilustra passo-a-passo o procedimento de transferência de dados para a ou da memória, sem interferência da CPU.

    Figura 8 – Entrada/Saída por Acesso Direto à Memória

    1 – DRQ – “Data Request”: Solicitação de Acesso Direto àMemória feito pelo dispositivo periférico aoControlador de DMA (CDMA);

    2 – HOLD – “Hold Request: Solicitação de controle de barramentos feito pelo CDMA ao processador;3 – HLDA – “Hold Acknowledgement” – Resposta do processador ao CDMA, avisando que à partir

    daquele momento, este poderá assumir o controle temporário dos barramentos para atransferência de dados;

    4 – DACK – “Data Acknowledgement” – Resposta do CDMA ao dispositivo periférico, avisando queassumiu o controle dos barramentos e a transferência de dados poderá se iniciar.

     A programação do CDMA consiste basicamente de informar o mesmo sobre o endereço inicial do

    bloco de bytes a ser transferido, o sentido da transferência e o tamanho de bloco ou o endereço final.Depois que os comandos são fornecidos ao dispositivo periférico o processo continua, sem

    CPU

    Memória Disp. 0

    CDMADisp. 3 Disp. 2

    Barramentos

    Disp. 1

    1

    2

    34

    Driver Óptico

    D   a   d    o  s  

    DRQ

    DACK

    HOLD

    HOLDA

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    21/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 21

    interferência da CPU. Após a transferência, o sinal DRQ é retirado, consequentemente, todos osoutros sinais são retirados e a CPU reassume o controle dos barramentos.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    22/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 22

    CAPÍTULO 2: OS MICROPROCESSADORES DA INTEL

    2.1 – O 8086/8088

     A figura 9 exibe o Diagrama em Blocos da Arquitetura do 8086.

    2.1.1 – Arquitetura

    Figura 9 – Arquitetura do 8086

    Fonte: "The 8086 Book", Rector R. e Alexy G. - OSBORNE/McGraw-Hill

    CSDSSSES

    0000000000000000

    IPSP

    BH BL

    DH DLCH CL

     AH AL

    BPSIDI

     ALU (Unidade Lógica e Aritmética)

    Unidade de Controle

    Status

    Registrador de Instrução

    123456

    Unidade de Controle deBarramento

    Unidade de Execução Unidade de Interface deBarramento

    Fila de Código Objetode Instrução

    0000

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    23/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 23

    Registradores do 8086/8088

    Registrador Finalidade

     AX = AH + AL Acumulador

    BX = BH + BL Base (2º acumulador)CX = CH + CL Contador (usado em instruções de múltiplas interações)DX = DH + DL Dado (algumas instruções movem dados de uma porta de E/S para a posição

    de memória endereçada por DX)SP Apontador de PilhaBP Apontador de BaseSI Índice FonteDI Índice DestinoIP Apontador de InstruçãoFlags H + Flags L FlagsCS Segmento de CódigoDS Segmento de DadosSS Segmento de PilhaES Segmento Extra

    Observações:

    1. O registrador SP  está estreitamente ligado ao ES, em função das operações relacionadas àmanutenção da pilha;

    2. O registrador IP  está estreitamente ligado ao CS, em função das operações relacionadas àexecução de instruções;

    3. O endereço fonte de um String de dados é obtido àpartir de SI + DS ;4. O endereço destino de um String de dados é obtido àpartir de DI + ES.

    2.1.2 – Características Gerais

    Capacidade de Endereçamento:

    20 bits de endereçamento => 1.0 Megabytes ou 512 Kwords

    Operações com: Bit, Byte, Word e Bloco

    Organização da Memória:

    a) Física: => 2 x 512 Kbytes. End. Ímpar (D7 – D0)End. Par (D15-D8)

    b) Endereçamento relativo à base de endereços de Registradores de Segmento: Code   (CS),Data  (DS), Stack (SS) e Extra (ES).

    Endereço Registrador Conteúdo

    End. da Memória de Programa IP 0 M M M M

    CS N N N N 0(IP+CS) Endereço Finalè  P P P P M

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    24/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 24

    End. da Memória de Dados XX 0 M M M MDS N N N N 0

    (XX+DS) Endereço Finalè  D D D D M

    End. da Memória de Pilha XX 0 M M M MSS N N N N 0

    (XX+SS) Endereço Finalè  S S S S M

    End. da Memória Extra XX 0 M M M MES N N N N 0

    (XX+ES) Endereço Finalè  D D D D M

    Observações:

    1. Cada registrador de segmento (16 bits) identifica o início de um segmento 64 Kbytes. Como são4 (quatro) os registradores de segmento, pode-se selecionar apenas um de 4 segmentos de 64Kbytes de cada vez. Isto significa que de 1 MBytes, têm-se apenas 1 de 16 possíveissegmentos endereçáveis diretamente (1 MBytes / 64 Kbytes = 16);

    2. XX pode ser um registrador qualquer da CPU, como por exemplo: IP, quantidade de 16 bits, DI ouSI, BX, BP, etc.

    c) Posições de FFFF0-FFFFF  (32 Bytes) reservadas para “Reset” => Após o “Reset”, a CPUexecuta sempre a instrução contida no endereço FFFFF0, onde normalmente existe um JUMP.

    d) Posições de 00000-003FF  (1024 Bytes) reservadas para operações com Interrupção => 256possíveis vetores de interrupção;

    Endereçamento de Entrada/Saída

    - 256 dispositivos diretamente;- 64 Kbytes indiretamente

    Tamanho dos Registradores Internos : 16 bits 

    Tamanho do Barramento de Dados: 16 bits 

    Coprocessador matemático: 8087 

    2.1.3 – Capacidade de Interrupção

    1. Interrupções Predefinidas (requisitadas por hardware ou software)

    De 0 a 31: IRQ 0 è  Divisão por ZeroIRQ 1 è  Passo-a-PassoIRQ 2 è  NMI (“Not Maskable Interrupt”). . .

    2. Interrupções de Hardware (definidas pelo usuário)

    De 32 a 255: Solicitadas via pino INTR da CPU

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    25/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 25

    Observação: O dispositivo solicitante deve colocar em D0-D7 (8 bits menos significativos dobarramento de dados) o Número de Interrupção para a CPU. A CPU multiplica este número por 4 ecom o resultado, endereça a posição de memória contendo o vetor correspondente na TABELA DEVETORES DE INTERRUPÇÃO. A figura 10 ilustra estes conceitos.

    Figura 10 – Busca da Rotina de Serviço de Interrupção no 8086

    Dos 4 bytes do VETOR DE INTERRUPÇÃO, os 2 primeiros formam o conteúdo do IP (“InstructionPointer”) e 2 bytes restantes formam o conteúdo do CS - Registrador de Segmento de Código (“CodeSegment”). Desta maneira é formado o Endereço de Início da Rotina de Serviço de Interrupção.

    3. Interrupções de Software (definidas pelo usuário)

    De 32 a 255: Solicitadas via instrução "INT nn"

    nn = Número da Interrupção a ser executada

    Para finalizar este item deve-se comentar a posição do microprocessador 8088 em relação ao 8086.

    Sobre o 8088

    00000

    IPCS

    Rotina de Serviçode Interrupção

    003FFNúmero deInterrupção

    x 4

    IRET

    1a. Instrução

    Tabela de

    Vetores deInterrupção

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    26/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 26

    Uma das únicas diferenças entre os dois processadores é a de que o barramento de dados no 8088possui um comprimento de 8 bits (o barramento do 8086 é de 16 bits). Este fato possibilitou aosfabricantes de microcomputadores o aproveitamento quase total dos circuitos periféricos do 8080(mais conhecidos e mais baratos), reduzindo sobremaneira o custo final da máquina. Como o 8086,efetivamente, não era utilizado como um microprocessador de 16 bits, propagandeou-se em largaescala que microcomputadores com CPU 8088 possuíam o mesmo desempenho e mais baixo custo

    do que máquinas com CPU 8086. A verdade é que o momento era de transição para uma CPU maispoderosa e os fabricantes de placas ainda não haviam tomado uma posição definitiva àrespeito.

     Assim, o 8088 é arquiteturalmente (rodava os mesmos programas) igual ao 8086, com a diferençaprincipal apenas no comprimento do barramento de dados.

    Sobre o par 80186/80188

     Após os microprocessadores 8086 e 8088, a INTEL lançou o processador 80186, com desempenhocerca de 30% superior ao 8086. O 80186 era um 8086 com novos blocos de hardware internos. Talmicroprocessador encontrou sua utilização na área de controle de processos, gerenciamento de

    terminais e automação industrial. Entretanto, não fez sucesso comercial na área demicroinformática, pois suas melhorias em relação a software eram muito poucas.

     A exemplo do par 8086/8088, uma CPU 80188 também foi produzida pela INTEL, com as mesmascaracterísticas do 80186, àexceção do barramento de dados, dimensionado para 8 bits

    2.2 – O 80286

    2.2.1 – Arquitetura e Características

    O microprocessador 80286 surgiu com duas grandes novidades para a área de microinformática. Aprimeira foi que o barramento de endereços da pastilha cresceu para 24 bits (não mais os 20 bits do8086 e 80186), o que implica em uma capacidade de endereçamento de 16 MBytes. A segunda foi aintrodução de dois modos de funcionamento da CPU: o MODO REAL (compatível com o 8086) e oMODO PROTEGIDO (específico para o 286). Uma terceira inovação, o suporte a memória virtual (naépoca, não totalmente explorada), permitia o endereçamento de até 1 Gigabytes. Os itens que seseguem procuram fornecer mais detalhes sobre esta CPU.

    Modo Real: Neste modo, o 80286 é compatível em software (a nível de código objeto) com o8086/8088. O fato de emular o 8086/8088 significa dizer que a memória a ser utilizada pelo programa

    não pode ultrapassar 1.0 MBytes, consequentemente, não utilizando toda a capacidade deendereçamento disponível. Sendo a CPU mais evoluída em hardware e permitindo a utilização deosciladores a cristal de freqüências mais altas, sem dúvida máquinas com esta CPU, mesmooperando neste modo, possuíam maior desempenho que os famosos XTs.

    Modo Protegido: Neste modo, o 80286, também pode rodar programas 8086/8088 e além disso,rodar programas escritos especificamente com o código fonte 80286. Neste modo, o 80286automaticamente mapea 1.0 Gigabytes de endereços virtuais por tarefa dentro de um espaço deendereço real de 16.0 Megabytes. No modo protegido, o 80286 provê proteção de memória paraisolar o sistema operacional e assegurar a privacidade de cada tarefa sendo executada. Assim, o80286, foi especialmente otimizado para suportar sistemas multitarefa e multiusuário.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    27/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 27

    Registradores do 80286

    Registrador Finalidade AX = AH + AL AcumuladorBX = BH + BL Base (2º acumulador)CX = CH + CL Contador (usado em instruções de múltiplas interações)DX = DH + DL Dado (algumas instruções movem dados de uma porta de E/S e a posição de

    memória endereçada por DX)SP Apontador de PilhaBP Apontador de BaseSI Índice FonteDI Índice DestinoIP Apontador de InstruçãoFlags H + Flags L FlagsCS Segmento de CódigoDS Segmento de DadosSS Segmento de PilhaES Segmento Extra

    Observação: Exatamente os mesmos registradores do 8086

    Capacidade de Endereçamento:

    24 bits de endereço è 16.0 MBytes 

    Operações com: byte, word, double word, quad word, BCD, ASCII, apontador e ponto flutuante;

    Relógio: 80286-4 ==> 4.0 Mhz80286-6 ==> 6.0 Mhz80286 ==> 8.0 Mhz80286x ==> 12.0 Mhz e 16 Mhz

    Organização de Memória:

    a) física è 2 x 8.0 MBytes;

    b) Endereçamento:

    31 16 15 0

    Seletor de Segmento Offset

    O seletor de segmento (16 bits) especifica um índice dentro de uma tabela em memória residentecujo conteúdo é um endereço base de 24 bits. O endereço real de memória é obtido com a somadeste endereço base (24 bits) mais o offset (16 bits), totalizando 24 bits de endereço.

    c) Posições de 00000-003FF (1024 bytes è  256 possíveis vetores de interrupção) reservadas,

    como no 8086, para operações com interrupção, no modo real;d) Posições de FFFF0-FFFFF reservadas para "reset", no modo real;

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    28/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 28

    Endereçamento de Entrada/Saída:

    - 256 dispositivos diretamente;- 64 Kbytes indiretamente

    Tamanho dos Registradores Internos: 16 bits 

    Tamanho do Barramento de Dados: 16 bits 

    Coprocessador matemático: 80287 

    Capacidade de Processamento de Instruções: aprox. 1.5 MIPS(80286 a 8 Mhz)

    2.2.2 - Diferenças no Conjunto de Instruções

    O conjunto de instruções do 80286 é dividido em sete  categorias: transferência de dados,aritméticas, deslocamento/lógicas, manipulação de strings, controle de transferência, de alto nível ede controle de processador.

    Entre as instruções adicionais podem ser citadas as seguintes:

    PUSHAè salva o conteúdo da totalidade dos registradores;POPA è restaura o conteúdo da totalidade dos registradores;INS è entra string de caracteres;OUTS è sai string de caracteres;

    ENTERè chama procedure;LEAVE è libera procedure;e mais 15 instruções que somente podem ser executadas no modo protegido;

    2.2.3 – Implicações no Desempenho de um Microcomputador

    Sistemas de microcomputador baseados no 80286 foram os primeiros sistemas com capacidadepara rodar sistemas operacionais de rede multiusuário e/ou multitarefa, na época, por exemplo, oNetware 2.x da Novell, o qual era escrito em C e Assembly 80286. Tais sistemas, paulatinamente,

    passaram àfunção de computador pessoal (“desktop”) e não mais a de servidor.

    2.3 - OS 80386

    2.3.1 - Diferenças de Arquitetura e Características

    O microprocessador 80386 é compatível em software com o 8086. A INTEL optou por manter estacompatibilidade para aproveitar toda a enorme base de software escrita para os 8086 e 80286. Sendo

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    29/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 29

    assim, o 386 executa a maioria dos programas escritos para o 8086 e 80286, simplesmente por queeste emula estas CPUs, não fazendo uso de todas as suas capacidades.

    Primeiro microprocessador de 32 bits da INTEL, o 80386 trouxe um novo modo de operação, emadição aos dois modos do 80286 (Real e Protegido), o modo Virtual. O microprocessador abordadonos próximos parágrafos é o 80386 mais potente da família, que na literatura é chamado de

    80386DX, ou 80386 "Full" ou ainda, como a INTEL o denominou, simplesmente, 80386.

     A figura 11 mostra os registradores do 80386.

    Figura 11 – Registradores do 80386

    No MODO REAL, o 80386 é compatível em software (a nível de código objeto) com o 8086/8088,inclusive com a mesma limitação de memória (1.0 MBytes). Sendo a CPU mais evoluída emhardware (p.e. registradores de 32 bits) e permitindo a utilização de osciladores a cristal de

    freqüências ainda mais altas que os 80286, sem dúvida, máquinas com esta CPU possuemdesempenho bem maior que os 286. Assim, neste modo, o mecanismo de endereçamento, otamanho de memória e a manipulação de interrupções são todos idênticos ao modo real do 80286.

     As instruções 80386 também podem ser utilizadas neste modo.

    No MODO PROTEGIDO, o 80386, se comporta exatamente como no modo de mesmo nome do80286, sendo que endereçará 4.0 Gigabytes de memória real (ao invés dos 16.0 MBytes do 80286)e 64 Terabytes de memória virtual. Neste modo, o mecanismo de endereçamento também é diferentedaquele utilizado no 80286. Enquanto no 80286 o endereço base é de 24 bits (aos quais sãoadicionados 16 bits de offset), no 80386 este endereço é de 32 bits (aos quais são adicionados 16ou 32 bits de offset).

    Quando operando no modo protegido, o 80386 pode fazer uso de uma técnica chamada deSEGMENTAÇÃO. Esta técnica organiza a memória em módulos lógicos chamados segmentos. Estemodo de gerenciamento de memória provém a base para a proteção de segmentos de memória. Por

     AH CS

    SIDIBPSP

     ALBH BL

    CH CLDH DL

    031 715

    SS

    DSESFSGS

    CódigoPilha

    Dados

    IPFLAGS

    EIPEFlags

    015

    Registradores Gerais deEndereço e Dados

     Apontador de Instruçãoe Registrador de Flags

    Registradores Seletoresde Segmento

    EAXEBX

    ECXEDXESIEDIEBPESP

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    30/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 30

    exemplo, uma tabela do sistema operacional pode residir em um segmento e, como tal, deve serprotegido da interferência de usuários não privilegiados, os quais poderiam "derrubar" o sistema.

    Uma outra técnica útil de gerenciamento de memória para sistemas operacionais multitarefa emmemória virtual é a técnica chamada de PAGINAÇÃO. Independentemente da segmentação, a qualmodulariza programas e dados em segmentos de comprimento variável, a paginação divide

    programas em páginas uniformes múltiplas. Dessa forma, somente um pequeno número de páginasde cada tarefa precisa estar na memória em um dado instante. A paginação é útil para ogerenciamento da memória física do sistema.

    O 80386 possui 4 níveis de proteção otimizados para suportar as necessidades de sistemasoperacionais multitarefa, os quais devem proteger e isolar programas de usuários, uns dos outros, eprogramas do próprio sistema operacional, dos usuários. Tais níveis de proteção se constituem, emoutras palavras, em um sistema de privilégio hierárquico de 4 níveis:

    PL=0 (mais privilegiado) - Núcleo do sistema operacional;PL=1 - Serviços do Sistema Operacional;PL=2 - Extensões do Sistema Operacional e

    PL=3 - Aplicações.

    Quando operando no MODO VIRTUAL, o 80386 permite a execução simultânea de aplicações 8086,sistemas operacionais 8086 e suas aplicações, aplicações 80286 e, ainda, aplicações 80386.

     Assim, em um computador 386 multiusuário, uma pessoa pode estar rodando uma planilha DOS,enquanto outra usa o DOS e uma terceira roda múltiplos utilitários e aplicativos UNIX.

     A MEMÓRIA CACHE é um bloco de memória RAM (do tipo estática) que, tendo tempo de acessomenor que a memória principal (do tipo dinâmica), pode ser lido muito mais rapidamente. Assim,antes de se executar um programa que está na memória principal, a região contendo o programa étransferida para a memória cache e só então o programa é executado. Isto reduz drasticamente otempo de acesso àRAM e aumenta a velocidade de execução dos programas. No 80386, o uso dememória cache era opcional, isto é, apenas algumas máquinas (dependendo do fabricante) incluíam

    uma pastilha controladora de memória cache, o 82385 (gerenciavam até 256 Kbytes), e sua inclusãoimplicava em um aumento da placa mãe. Esta pastilha só era encontrada nas últimas versõesmicros 386.

    Características Principais:

    Capacidade de Endereçamento:

    32 bits de endereço è 4.0 Gigabytes 

    Operações com: bit, campos de bit, string de bits, byte, word, double word, quad word, BCD, ASCII,

    apontador e ponto flutuante;

    Relógio: 80386-12 è 12.5 Mhz80386-16 è 16.0 Mhz80386x è 20.0 Mhz80386x è 33.0 Mhz

     Am386-40 è 40.0 Mhz

    Organização de Memória:

    a) Física: è 2 x 2.0 Gigabytes;è 4 x 1.0 Gigawords;è 8 x 0.5 Gigalongwords

    b) Endereçamento:

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    31/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 31

    3 espaços de endereço ==> lógico, linear e físico

    Endereçamento Lógico (ou Virtual): Consiste de um segmento seletor  (14 bits) e de umoffset  (soma de componentes de endereçamento: BASE, INDEX, DISPLACEMENT => 32 bits),totalizando 46 bits de endereçamento, consequentemente, um espaço de 64 Terabytes;

    Endereçamento Linear : A unidade de segmentação translaciona o endereço lógico paraum endereço linear de 32 bits, implicando em 4.0 Gigabytes;

    Endereçamento Físico: Se a unidade de paginação não está habilitada, o endereço linearde 32 bits corresponde a um endereço físico, também de 4.0 Gigabytes.

    c) Posições de 00000000-000003FF (1024 bytes è  256 possíveis vetores de interrupção)reservadas, como no 8086 e 80286, para operações com interrupção, no modo real;

    d) Posições de FFFFFFF0-FFFFFFFF reservadas para "reset", no modo real;

    Endereçamento de Entrada/Saída:

    - 256 dispositivos diretamente, como nos 8086 e 80286;- 64 Kbytes indiretamente

    Tamanho dos Registradores Internos: 32 bits 

    Tamanho do Barramento de Dados: 32 bits 

    Coprocessador matemático: 80387 

    Capacidade de Processamento de Instruções: aprox. 4.0 a 10.0 MIPS(80386 32 bits em 16, 20 e 25 Mhz)

    2.3.2 - Diferenças no Conjunto de Instruções

    O conjunto de instruções do 80386 é dividido em nove   categorias: transferência de dados,aritméticas, deslocamento/lógicas, manipulação de strings, controle de transferência, suporte delinguagem de alto nível, suporte de sistema operacional e de controle de processador. As diferençasno conjunto de instruções estão intimamente ligadas às instruções de suporte de linguagem de altonível e de sistema operacional.

    Uma das fraquezas do projeto 286 foi a sua incapacidade de emular o 8086, mantendo a proteção ea memória virtual. Com o 286, só se poderia emular o 8086 se este estivesse no modo real, quando aproteção está completamente desabilitada. O projeto do 386 corrigiu este problema e permitiu entãoque várias tarefas 8086 sejam emuladas ao mesmo tempo no seu modo VIRTUAL.

     A fim de fornecer compatibilidade em software com os 80286, o 80386 podia executar instruções de16 bits no modo real e no modo protegido. Prevendo a expansão para o 386, a INTEL, especificoupara o 286 que os bits não usados por um descritor de segmento deveriam ser posicionados em "0".O 386 interpreta isso como um identificador de segmento 286. Assim, o processador examina oconteúdo de um bit D do descritor de segmento. Se é "0", então todos os comprimentos de operandoe endereços efetivos são assumidos como de 16 bits (código 286). Se é 1, então o comprimentodefault é de 32 bits (código 386). Independentemente da precisão default, o 80386 pode executarinstruções de 16 ou 32 bits, através de um prefixo automaticamente adicionado pelos montadores

     Assembly da INTEL.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    32/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 32

    Fonte: "80386 High Performance Microprocessor with Integrated Memory Management", INTELCorporation - Advance Information, october 1985;

     Além das diferenças anteriormente mencionadas, pode-se ainda citar algumas outras:

    1. O tempo de execução das instruções é diferente em vários casos. Na maior parte, o 386 é maisrápido que o 286;

    2. Existem vários códigos indefinidos no 286 que, se executados, provocariam uma falha de código(INT 6). No 386 a instrução será executada;

    3. O prefixo LOCK (impede que outros dispositivos acessem a memória do processador) para o8086 é irrestrito, mas para o 386 é proibido em várias instruções. O problema era que o usoindiscriminado do LOCK resultava em que dispositivos eram inibidos por períodosinaceitavelmente longos. No ambiente não protegido do 8086, cabia às aplicações não deixar queisto ocorresse. No ambiente protegido do 386, apenas algumas instruções podem ser precedidas

    deste prefixo, àquelas que não interferem com a velocidade de execução de tarefas.

    2.3.3 – Versões 80386, 80386SX e 80386SL

    O 80386SX podia ser interfaceado a circuitos periféricos de 16 bits, mas roda os softwares de 32 bitsescritos para o 386, pois sua arquitetura interna é de 32 bits. O seu barramento de dados é de 16bits (a metade dos 32 bits do 80386). Endereça até 16 MBytes de memória real (bem menos que os4 Gigabytes do 80386). Era comercializado pela INTEL com relógio máximo de 20 Mhz (o 80386 eraencontrado com relógio de 33 Mhz). Sua capacidade de execução de instruções varia entre 3 e 4

    MIPS (menos da metade dos 11,4 MIPS do 80386 a 33 Mhz). O coprocessador utilizado com o386SX era o 80387SX.

    O 80386SL era um microprocessador também derivado do 80386 e foi projetado especialmente parauso em computadores portáteis ("Lap Tops"). Esta pastilha foi o resultado da integração de trêscircuitos: a CPU 386SL, um controlador de barramento e um controlador de vídeo gráfico, diminuindoassim, o tamanho e o peso do equipamento, além de proporcionar uma característica particular deeconomia de energia. A memória real endereçável do 386SL era de 32 MBytes (16 MBytes a maisque o 386SX), sua freqüência de operação era de 20 Mhz e o barramento de dados de 16 bits (comono 386SX). A unidade gerenciadora de energia era capaz de baixar a zero a atividade na CPU,enquanto se lê a tela do micro ou no intervalo da digitação. A aplicabilidade do 386SL em "lap Tops"foi indiscutível.

    2.3.4 - Implicações no Desempenho de um Microcomputador

    Com base nas explicações fornecidas nos itens anteriores pode-se dizer o seguinte:

     A exemplo do que ocorreu com o 80286 em relação ao 8086, sistemas de microcomputadorbaseados no 80386, paulatinamente, passaram de servidores a desktops. Uma versão do Netware daNovell, a versão 3.12, até os dias atuais muito utilizada, usa toda a capacidade destemicroprocessador, uma vez que foi escrita em C e assembly 386.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    33/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 33

    O 80386 dispunha de um modo de execução muito melhor adaptado ao funcionamento multitarefa doque o 80286. Na época, sistemas baseados neste microprocessador eram os únicos capazes desuportar de uma só vez os sistemas operacionais DOS, OS/2 e UNIX.

    2.4 - OS I486

     A INTEL, segundo decisão da justiça dos EUA, não pode registrar números, 386 e 486 p.e., comosuas marcas. Optou então, por acrescentar um "i" (i minúsculo) na frente dos números. Assim, 486,80486 ou i486 eram nomes encontrados na literatura para designar o mesmo processador.Inicialmente será abordado o i486 e em seguida o i486SX.

    2.4.1 - Diferenças de Arquitetura e Características

     A arquitetura interna do i486 foi otimizada em relação ao 80386 ou i386. Isto possibilitou a introduçãona pastilha de algo acima de um milhão de transistores (quatro vezes mais que o i386 possui). Osfabricantes de computadores foram diretamente beneficiados por esta densidade de integração, umavez que a placa mãe sofreu uma redução significativa de tamanho e o processo de projeto emontagem foi simplificado. Também o microcódigo de instruções foi otimizado, de forma a manter omáximo possível as operações no interior da pastilha e, consequentemente, eram necessáriosmenos ciclos de relógio para executar as mesmas instruções que o i386 já executava. O 486 usaambas as bordas do sinal de Relógio para a CPU, enquanto os 286 e 386 usavam apenas umaborda.

    Pode-se dizer que, a grosso modo, o ganho de desempenho veio, essencialmente, da memória

    cache e do coprocessador (essencial em ambientes de CAD/CAM). Entretanto, em ambientes demicroinformática, considerados mais simples, que usam planilhas e bancos de dados, o ganho dedesempenho com o uso do coprocessador foi praticamente nulo.

    O i486 incorpora o i386 com as suas instruções, memória cache de 8 Kbytes de RAM estática (maisrápida que a dinâmica) e gerenciador próprio (80385) e coprocessador aritmético (80387). Foramadicionadas ao conjunto de instruções do i386 cinco  instruções: três para gerenciamento damemória cache e duas, incluídas a pedido da Microsoft, para tratamento de tarefas concorrentespelo OS/2. Como no i386, a pastilha endereça diretamente até 4.0 Gigabytes e indiretamente até 64Terabytes.

    2.4.2 - Diferenças na Capacidade de Processamento

    O i486 a 25 Mhz possui uma capacidade de processamento de instruções de aproximadamente 20.0MIPs (duas vezes mais rápido que um i386 nos mesmos 25 Mhz) e é totalmente compatível comeste último.

    Como mencionado, a capacidade de processamento do 486 foi amplamente influenciada pelamemória cache. Isto é detalhado a seguir.

    Há muitas discussões sobre o melhor tamanho da memória cache, mesmo entre os fabricantes de

    microcomputadores, por isso mesmo são oferecidas ao usuário as mais diferentes opções. Uma vezque esta é a responsável direta pelo aumento de desempenho da máquina, uma escolha acertada

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    34/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 34

    poderia beneficiar grandemente o usuário. O que se constata na literatura especializada é que omelhor tamanho para a memória cache é o tamanho do maior programa que vai ser executadonaquela máquina. Entretanto pode-se tornar excessivamente caro colocar o máximo possível dememória cache, não compensando os benefícios correspondentes.

    O i486 permitiu memória cache externa, além dos 8 Kbytes internos. Assim, algumas máquinas

    eram oferecidas com 256 Kbytes externos. Considerando-se o desempenho relativo a um XT 4.77Mhz, pode-se fornecer alguns dados de desempenho, como discriminados abaixo:

    i486, 33 Mhz, cache externo de 64 Kbytes

    Cache interno e externo desabilitado è 6,5 vezes mais rápido;

    Somente cache externo habilitado è 26 vezes mais rápido;

    Somente cache interno habilitadoè

     38 vezes mais rápido;

    Caches interno e externo habilitados è 72 vezes mais rápido;

    Conclui-se destes dados que o cache interno é extremamente importante, mesmo sendo muitomenor que o externo. Isto se deve a sua lógica de construção e, obviamente, ao fato de estar dentroda própria pastilha de CPU.

    Quando se carrega um programa na memória cache e este é executado, considera-se que isto é um"acerto" e cada vez que se deve movimentar um bloco da memória principal para a RAM de cache,considera-se que isto é um "erro". Existe, portanto, uma taxa de acertos ("Hit Rate") relacionadacom o tamanho da memória cache. Um cache externo maior, evidentemente, possibilitará umamelhor taxa de acertos, uma vez que poderá conter mais programas. Assim, a velocidade do cache

    interno aliada a uma melhor taxa de acertos provida pelo cache externo, possibilitará um melhordesempenho da máquina como um todo.

    Sobre o i486SX

    O i486Sx foi lançado pela INTEL para fazer frente a concorrência acirrada do microprocessador Am386-40 de 40 Mhz da Advanced Micro Devices (AMD), mais veloz que o seu microprocessadormais rápido, o i386 33 Mhz. Deve-se entender o "SX" com uma versão desprovida de algo que suaversão completa, ou "full", ou ainda "DX", continha.

    O i486SX possui um barramento de dados de 32 bits, exatamente como o i486. Isto não aconteceucom o i386SX, o qual possui 16 bits para dados, 16 a menos que i386. Basicamente, o i486SX operaa uma taxa de relógio de 20 Mhz e possui uma unidade de ponto flutuante interna (como o i486),mas esta encontra-se desativada. Estes dois fatores levaram a uma diminuição no custo da pastilhade 60% em relação ao i486. O i486SX, mesmo a 20 Mhz segundo a INTEL, era 45% mais rápido queo i386 (33 Mhz), com um custo apenas 17 % superior. Já o i486 25 Mhz era 20% mais rápido que oi486SX (20 Mhz) e custava 270% mais caro (custo em março de 1992). Um quadro exibido pelarevista Micro Sistemas em março de 1992 mostrava o seguinte:

    CPU (clock)  Custo (US$)  MIPs  Custo do MIP (US$) 

    i386 (33) 214 11,4 18,77i486SX(20) 250 16,5 15,15

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    35/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 35

    i486 (25) 671 20,0 33,55

    Sobre o i486 50 Mhz (i486/50 e i486DX2/50)

    Em junho de 1991 a INTEL lançou o i486 50 Mhz e somente em junho de 1992 a revista PCMagazine americana publicou testes de desempenho sobre as primeiras máquinas fabricadas comesta CPU. Antes desta CPU, a líder em desempenho da INTEL era o i486 33 Mhz. Segundo a citadarevista, o i486/50 é 30% mais rápido que i486/33 a um custo (naquele ano) 10 a 20% maior. Umaobservação importante é que máquinas equipadas com esta CPU definitivamente não eram baratas,mas a relação custo beneficio em relação ao i486/33 era atraente. Isto significou, em outras palavras,que se alguém estivesse disposto a pagar o preço de uma máquina 486/33, era melhor que o fizessepor uma i486/50, em função da melhor relação custo/benefício.

    Em março de 1992 a INTEL anunciou as chamadas pastilhas "Speed-Doubler". Tais pastilhasintroduziram opções de preço e desempenho nos i486. Uma dessas opções, é o i486DX2/50 que

    opera internamente a 50 Mhz, mas comunica-se com os barramentos a 25 Mhz. Isto permite oprojeto de sistemas baseados, externamente, no i486 25 Mhz, facilitando mais uma vez o dia-a-diados fabricantes de micro e minicomputadores. A segunda opção é a pastilha "full" i486DX/50. Estapastilha é 30% mais rápida que a anterior.

    Em linhas gerais, pode-se dizer que para máquinas necessitando de uma atividade de Entrada/Saídaintensa, como servidores de arquivos p.e., o i486DX2/50 não seria a primeira escolha. Já paramáquinas "stand-alone" em ambientes de CAD/CAM esta seria uma boa escolha.

    O i486DX/50 contém basicamente a mesma lógica de processador que o i486DX/33, comcoprocessador, 8 Kbytes de cache e 1,2 milhão de transistores, mas houve alguns refinamentostécnicos na parte de 50 Mhz, a qual usa um projeto de pastilha de três camadas e não de duascamadas como o i486DX/33.

    Sobre os i486DX2/66 e i486DX4/100

    Em novembro de 1992, foram disponibilizadas comercialmente máquinas sob controle da pastilhai486DX2/66, ou seja, operando internamente a 66 Mhz e externamente a 33 Mhz. Testes preliminaresrevelaram que esta pastilha é 30% mais rápida que o i486DX/50.

    O i486DX4/100, possui um clock interno de 99 MHz, operando externamente a 33 MHz. Estapastilha entrou e saiu rapidamente do mercado, dando lugar aos microprocessadores da classe

    Pentium.

    Algumas Observações:

    Os problemas relacionados a estes microprocessadores são a quantidade de calor desprendida, queprecisa ser dissipada, e a emissão de sinais de alta frequência, podendo também sofrerinterferências do meio ambiente, como é o caso das televisões que emitem sinais na faixa de 54 a890 Mhz. A partir dos i486, os fabricantes iniciaram a utilização de ventiladores acoplados aosdissipadores, para reduzir os efeitos da alta temperatura. Também alguns gabinetes sãocomercializados com algum tipo de blindagem interna de modo a minimizar a influência dasfrequências externas.

    Com a crescente demanda do mercado por redes de computadores e, consequentemente, porequipamentos de gerenciamento e interconexão de tais redes, observou-se que as CPUs de pontes

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    36/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 36

    (“Bridges”), roteadores (Routers”), ponte-roteadores (“Brouters”) e passarelas (“Gateways”)frequentemente, são CPUs INTEL do tipo 286 e 386. Neste mercado, modelos mais sofisticadosdesses equipamentos frequentemente fazem uso de CPUs MOTOROLA e alguns até mesmo deprocessadores RISC.

    2.5 - OS PENTIUM, PENTIUM MMX E PRO

    2.5.1 - Diferenças de Arquitetura e Características

     Antes de iniciar as explicações sobre os Pentium MMX e PRO, é necessário mencionar os primeirosmicroprocessadores da classe Pentium, os simplesmente Pentium (núcleo P54C).

    Os Pentium

    Essencialmente, o Pentium consiste de dois processadores i486 em paralelo. Logo, mais instruçõessão processadas ao mesmo tempo, tipicamente, o dobro. Pode-se destacar algumas característicasimportantes.

    Pipelines

    O microprocessador Pentium é construído em torno de 2 pipelines (ou Pipes) inteiros (U e V),paralelos, de propósito geral e 1 unidade com pipeline, de ponto flutuante . O pipe U é chamadode Principal e o pipe V é chamado de Secundário. O Pipe U possue algumas limitações sobreinstruções que executa. Os dois Pipes tem cinco estágios cada um, como mostrado na figura 12.

    O Pentium pode buscar até 2 instruções por ciclo. Durante a execução de uma instrução, aspróximas duas instruções são testadas. Se possível, a primeira é executada no Pipe U e a Segundano Pipe V. Se não é possível, uma instrução é passada ao Pipe U e nenhuma instrução é passadaao Pipe V. O comportamento funcional das instruções nos dois Pipes é exatamente o mesmo deinstruções executadas sequencialmente.

    Caches

    O Pentium possui um subsistema de cache interno com 2 conjuntos (um para instrução e outro paradados) de caches associativos de 8 Kbytes. Como o cache de dados é disposto em 8 bancos, este

    pode ser acessado simultaneamente por ambos os Pipes, desde que as referências sejam parabancos diferentes.

    Prebuscador de Instruções (“Instruction Prefetcher”)

    O, aqui chamado, Prebuscador de Instruções possui 4 buffers de 32 Bytes. No estágio PF, doisbuffers de prebusca operam em conjunto com o buffer chamado BTB (“Branch Target Buffer “).Somente 1 dos buffers de prebusca requisita prebuscas em um dado tempo. Se uma instrução desalto é buscada, o BTB prevê se o salto ocorrerá ou não. Se o salto não vai ser executado tudocontinua linearmente. Se é para ser executado, o outro buffer de prebusca é habilitado e inicia aprebusca como se o salto fosse executado. Se finalmente o salto não for realizado, os pipelines de

    instrução são limpos e a atividade de prebusca recomeça. Como o cache de instruções e dados sãoseparados, prebuscas de instruções não conflitam com referências a dados para acesso ao cache.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    37/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 37

    O Pentium emprega um esquema de previsão dinâmica de saltos (“Dynamic Branch Prediction”).Se a previsão é correta, não há penalidade na execução de uma instrução de salto. Se não é correta,as penalidades são as seguintes:

    1. 3 ciclos, se o JUMP condicional foi no Pipe U;2. 4 ciclos, se o JUMP condicional foi no Pipe V e

    3. 3 ciclos em qualquer dos Pipes para CALLs e instruções de JUMP incondicional.

    Figura 12 – Pipelines de Inteiros do Pentium

    Write Buffers

    O Pentium possui 2 buffers de escrita, um para cada Pipe (U ou V). A finalidade desses buffers éaumentar o desempenho de escritas consecutivas na memória. Esses buffers de 64 bits sãocarregados simultaneamente em um período de relógio. Escritas nesses buffers são enviadas para obarramento externo do processador. Tais operações de escrita acontecem sempre na ordem em queocorrem. Não são possíveis leituras intermediárias.

    Pipe U Pipe V

    Prefetch(PF)

    Estágio deDecodifi-cação 1(DS1)

    Estágio deDecodifi-cação 2(DS2)

    Estágio deDecodifi-cação 2(DS2)

    Execução Execução

    Writeback Writeback

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    38/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 38

    Unidade de Ponto Flutuante

     A Unidade de Ponto Flutuante do Pentium acrescenta um Pipeline de 3 estágios aos Pipes jámencionados (U e V). As instruções de ponto flutuante seguem normalmente pelo pipeline até oestágio E (Execução). Após este estágio, as instruções dispendem pelo menos um clock para cadaum dos 3 estágios: X1, X2 e WF. A maioria das instruções de ponto flutuante tem um período de

    latência superior a um período de relógio. Entretanto, tal latência é escondida pela existência dos 3estágios. Além disso, instruções com inteiros (e não de ponto flutuante) são tratadas durante esteperíodo de latência. A figura 13 exibe a integração dos Pipelines de Inteiros e Ponto Flutuante. Os 3primeiros estágios do Pipe de Inteiros são desacoplados do Pipe de Ponto Flutuante. Os doisúltimos são integrados.

    Figura 13 – Integração dos Pipelines de Inteiros e de Ponto Flutuante do Pentium

    Os Pentium MMX

    Os microprocessadores Pentium com tecnologia chamada pela INTEL de MMX (algo como“Multimedia Extensions”) trouxeram quatro enriquecimentos básicos de projeto arquitetônico:

    1. Arquitetura SIMD;2. 4 novos tipos de dados.3. 8 registradores MMX de 64 bits e4. 57 novas instruções;

    Como a própria INTEL propagandeia, esta mudança na arquitetura do processador foi a maisimportante desde o 80386, o qual extendeu a arquitetura de 16 para 32 bits e introduziu três modosde funcionamento (real, protegido e virtual). Como de fato se verificou, tais mudanças foramincorporadas a todas as gerações de processadores subsequentes da empresa.

    Segundo a INTEL, a definição desta tecnologia foi resultado de trabalho conjunto entre arquitetos de

    microprocessadores e desenvolvedores de software. Dentre os softwares analisados, incluiram-seGráficos, Vídeo MPEG, Síntese de música, compressão de voz, reconhecimento de voz,

    Prefetch(PF)

    Estágio deDecodifi-cação 1(DS1)

    Estágio deDecodifi-cação 2

    (DS2)

    Execução Writeback

    X1 X2 WF

    Estágios do Pipe de Ponto Flutuante desacoplados

    Estágios Integrados dos Pipes

    Pipeline de Inteiros somente

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    39/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 39

    processamento de imagens, jogos e vídeo-conferência. O núcleo deste processador foi chamado deP55C.

    Esta análise mostrou muitas características comuns entre as diversas categorias de software. Osatributos chave para estas aplicações foram:

    • Tipos de dados pequenos e inteiros (por exemplo: pixel gráfico de 8 bits, amostras deáudio de 16 bits);

    • Loops pequenos altamente repetitivos;• Multiplicações e acumulações frequentes;•  Algoritmos de computação intensiva;• Operações altamente paralelas.

     Assim, foi projetado um grupo de instruções novo, com instruções inteiras de propósito geral, visandoa otimização do processamento de tais aplicações.

    Arquitetura SIMD (“Single Instruction Multiple Data”)

    Técnicas SIMD foram utilizadas de forma a permitir que múltiplas peças de informação pudessem serprocessadas com uma única instrução, provendo um certo paralelismo, reduzindo loops decomputação intensiva e, consequentemente, aumentando o desempenho de aplicações multimídia ede comunicações.

    Novos Tipos de Dados

    O tipo de dado principal da arquitetura MMX é um pacote inteiro de ponto fixo, onde múltiplaspalavras inteiras são agrupadas em uma única quantidade de 64 bits. Estes pacotes sãomanipulados por registradores MMX de 64 bits.

    Como exemplo de benefício pode-se citar o pixel, geralmente representado em inteiros de 8 bits, oubytes. 8 desses pixels podem ser “empacotados” em uma única quantidade de 64 bits e movidos

    para um registrador MMX. Uma instrução MMX ao ser executada, busca 8 pixels de uma só vez, fazas operações lógicas e aritméticas sobre os oito elementos e escreve o resultado em um outroregistrador MMX.

     A figura 14 exibe os novos tipos de dados do Pentium MMX.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    40/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 40

    Packet Byte (8 elementos de 8 bits)

    Packet Word (4 elementos de 16 bits)

    Packet Doubleword (2 elementos de 32 bits)

    Quadword (1 elemento de 64 bits)

    063

    63 0

    31 7

    31

    63 031

    63 0

     

    Figura 14 – Novos Tipos de Dados do Pentium MMX 

    Registradores MMX

     A figura 15 exibe o layout dos oito novos registradores MMX

    063

    MM0

    MM7

    CampoTAG

     

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    41/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 41

    Figura 15 – Registradores MMX 

    Novas Instruções

     As instruções MMX cobrem vários grupos funcionais, incluindo:

    1. Operações aritméticas básicas;2. Operações de comparação;3. Instruções de conversão entre novos tipos de dados (“packets”) e de pequenos para

    grandes tipos de dados;4. Operações lógicas tais como: AND, OR, NOT e XOR;5. Operações de Shift;6. Instruções MOV para dados de 32 ou 64 bits;

     As instruções lógicas e aritméticas são projetadas para suportar diferentes tipos de dados. Taisinstruções possuem um código de operação para cada tipo de dado suportado. Como resultado, asnovas instruções são implementadas com 57 códigos de operação. Um aspecto importante é queinstruções MMX não são privilegiadas, podendo ser usadas em aplicações,codificadores/decodificadores, algoritmos e drivers.

    Categoria Mnemônico Nr. De Códigos deOperação Diferentes

    Descrição

    PADD [B,W,D] 3 Add with wrap-around on [byte, word,doubleword]

    PADDS [B,W] 2 Add signed with saturation on [byte,word]

    PADDUS [B,W] 2 Add unsigned with saturation on [byte,word]

    PSUB [B,W,D] 3 Subtract with wrap-around on [byte,word, doubleword]

    PSUBS [B,W] 2 Subtract signed with saturation on [byte,word]

    PSUBUS [B,W] 2 Subtract unsigned with saturation on[byte, word]

    PMULHW 1 Packed multiply high on wordsPMULLW 1 Packed multiply low on words

    Aritmética

    PMADDWD 1 Packed multiply on words and addresulting pairs

    PCMPEQ[B,W,D]

    3 Packed compare for equality [byte,word, doubleword]

    ComparaçãoPCMPGT[B,W,D]

    3 Packed compare greater than [byte,word, doubleword]

    PACKUSWB 1 Pack words into bytes (unsigned withsaturation)

    PACKSS[WB,DW]

    2 Pack [words into bytes, doublewordsinto words] (signed with saturation)

    Conversão

    PUNPCKH[BW,WD,DQ]

    3 Unpack (interleave) high-order [bytes,words, doublewords] from MMXTMregister

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    42/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 42

    PUNPCKL[BW,WD,DQ]

    3 Unpack (interleave) low-order [bytes,words, doublewords] from MMX register

    PAND 1 Bitwise ANDPANDN 1 Bitwise AND NOTPOR 1 Bitwise OR

    Lógicas

    PXOR 1 Bitwise XORPSLL [W,D,Q] 6 Packed shift left logical [word,

    doubleword, quadword] by amountspecified in MMX register or byimmediate value

    PSRL [W,D,Q] 6 Packed shift right logical [word,doubleword, quadword] by amountspecified in MMX register or byimmediate value

    Shift

    PSRA [W,D] 6 Packed shift right arithmetic [word,doubleword] by amount specified in MMXregister or by immediate value

    Transferência

    de Dados 

    MOV [D,Q] 4 Move [doubleword, quadword] to MMX

    register or from MMX registerGerenciamen-to de EstadoMMX e Ponto

    Flutuante  

    EMMS 1 Empty MMX state

    Pipeline Superescalar

    Os Pentium MMX adicionam mais estágios ao pipeline. A integração do Pipe MMX com o Pipe deinteiros é muito similar a do Pipe de Ponto Flutuante. A Figura 16 mostra esta estrutura de pipeline.

    Os Pentium MMX adicionam um estágio de pipeline inteiro. Os bytes de instrução são prebuscadosdo cache de código no estágio de prebusca PF e passados ao estágio de busca F. Quaisquerprefixos são decodificados no estágio F.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    43/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 43

    MR/W Mex WM/M2 M3 WMul

    PF F DS1 DS2 E WB

    E1 E2

    E1 E2 E3

    Estágios do Pipe de MMX desacoplados

    Estágios Integrados dos Pipes

    Pipeline de Inteiros somente 

    Figura 16 – Estrutura Pipeline MMX 

    O estágio F é desacoplado da decodificação de instruções por meio de um buffer FIFO (“First In,

    First Out”), o qual está situado entre os estágios F e D1 (“Decode 1”). Esta FIFO mantém até 4instruções.

     A cada período de relógio, 2 instruções são colocadas nesta FIFO. Pares de instrução sãocolocados para fora de F e dentro de D1. Uma vez que a taxa média de execução de instruções émenos que duas por clock, a FIFO está normalmente cheia. Quando a FIFO está cheia, esta deve“bufferizar ” qualquer “freio” que pode ocorrer durante a busca de instrução. Esta FIFO previne, oestágio de Execução do pipe, de um “freio” na execução de instruções.

    Exemplos de Instruções MMX

    Para ilustração, o tipo de dado será uma palavra de 16 bits (word), contudo a maioria das operaçõespode ser realizada para 8 e 32 bits.

     A figura 17 mostra uma operação de adição (PADD[W] - “Add with wrap-around on [word]”). Sãorealizadas 4 adições de 8 elementos de 16 bits. Cada uma independente da outra e em paralelo.Neste caso, o resultado mais àdireta excede o valor máximo representável em 16 bits e o 17º  bit éperdido.

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    44/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 44

    Figura 17 – Instrução PADD[W] 

     A figura 18 mostra uma outra operação de adição (PADDUS[W] - “Add unsigned with saturation on[word]”). Neste caso, uma saturação ocorre. Saturação significa que se a adição resulta em“overflow ” ou a subtração em “underflow ”, o resultado é alterado para o maior ou para o menor valorrepresentável, respectivamente. Para uma operação sem sinal, com uma palavra de 16 bits, o maiore o menor valor são: FFFFh e 0000h. Isto é importante para cálculos de pixels, onde a perda do 17 º  bit poderia causar um pixel preto logo após um pixel branco em um gráfico 3D.

    Figura 18 – Instrução PADDUS[W] 

    Os novos games 3D manipulam objetos 3D. Estas computações, tipicamente, são baseadas emmatrizes 4 x 4, as quais são multiplicadas por 4 vetores várias vezes. O vetor possui a informação deX, Y, Z e a correção de perspectiva para cada pixel. A matriz 4 x 4 é usada para girar, escalonar,

    translacionar e atualizar a informação de correção das perspectiva para cada pixel. Esta matriz éaplicada a muitos vetores. A figura 19 mostra esses cálculos e o que faz a instrução PMADD.

    a3 a2 a1 FFFF

    b3 b2 b1 8000

    a3+b3 a2+b2 a1+b1 7FFF

    + + + +

    a3 a2 a1 FFFF

    b3 b2 b1 8000

    a3+b3 a2+b2 a1+b1 FFFF

    + + + +

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    45/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 45

    Figura 19 – Instrução PMADD 

    Os Pentium PRO

    Diferentemente dos 5 estágios do Pentium. O Pentium PRO possui um pipeline de 12 estágios,

    desacoplado. Isto lhe confere um desempenho 33% superior ao Pentium comum. Suamicroarquitetura superescalar torna possível a execução de 2 instruções por clock. A figura 20detalha este pipeline.

    O Pipeline do Processador Pentium PRO possui 3 unidades que se comunicam através de um Poolde Instruções: A Unidade de Busca/Decodificação (ou “Front-End”), a Unidade deDespacho/Execução (ou “Core”) e a Unidade de Retiro (ou “Retire”). A figura 21 exibe a ligação entreestas unidades.

    Figura 20 – Pipeline do Pentium PRO 

    =

    a0 a1 a2 a3

    b0 b1 b2 b3

    c0 c1 c2 c3

    d0 d1 d2 d3

    x'

    y'

    z'

    w'

    x

    y

    z

    1

    x = a0.x + a1.y + a2.z + a3

    TranslaçãoGiro e Escala

    Perspectiva

    BTB0

    BTB1

    IFU0 IFU1 IFU2 ID0 ID1 RAT ROBRd

    RS

    Port2

    Port0 Port

    1

    ROBWb

    RRF

    Port3

    Port4

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    46/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 46

    Figura 21 – As 3 unidades do Pentium PRO 

     A Unidade de Busca/Decodificação possue como entrada o conjunto de instruções de programade usuário armazenado no cache de instruções L1 (interno). Tal unidade decodifica este conjunto em

    uma série de microperações que representam o fluxo de dados daquele conjunto.

     A Unidade de Despacho/Execução  aceita o fluxo de dados, esquematiza a execução dasmicroperações sujeitas a dependência de dados e disponibilidade de recursos. Em seguida,armazena o resultado dessas execuções especulativas.

     A Unidade de Retiro conhece como e quando confirmar do resultado especulativo temporário paraum estado arquitetural permanente.

     A Unidade de Interface de Barramento  responsável pela conexão das 3 unidades internas aomundo real. Esta unidade comunica-se diretamente com o cache L2 (externo), suportando até 4acessos concorrentes ao cache.

     A figura 22 ilustra mais detalhadamente estes aspectos.

    Unidade deBusca/

    Decodifica-ção

    Unidade de

    Despacho/Execução

    Unidade deRetiro

    Pool deInstruções

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    47/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 47

    Figura 22 – A Interface das 3 unidades com a memória usando CachesUnificados de 8K/8K do Pentium PRO 

    Execução Dinâmica de Instruções

    Execução Dinâmica, segundo a INTEL, é a combinação única de 3 técnicas de processamento:

    • Predição de Múltiplos Saltos. Inicialmente o processador “olha” múltiplos passos atrás no

    software e prediz quais saltos ou grupos de instruções, provavelmente, serão processadas;

    •  Análise do Fluxo de Dados. Em seguida, analisa quais instruções são dependentes do resultado

    ou dados de outras instruções, para criar uma sequência otimizada de instruções;

    Unidade deBusca/

    Decodifica-ção

    Unidade deDespacho/Execução

    Unidade deRetiro

    Pool deInstruções

    Cache de Dados L1Cache de

    Instruções L1

    Unidade de Interface de Barramento

    Cache L2Barramentode Sistema

    Eletricazine, www.eletricazine.hpg.ig.com.br

  • 8/18/2019 Microprocessadores - Apostila

    48/103

    Microprocessadores _________________________________________________________________________________________________  ____

    Página 48

    • Execução Especulativa. As instruções são então “puxadas” especulativamente, com base no

    esquema otimizado.

    Arquitetura Superscalar

     Arquitetura Superscalar é uma microarquitetura capaz de sinmultaneamente buscar, decodificar eexecutar múltiplas operações inteiras por período de relógio. Tipicamente o Pentium PRO “percebe”entre 20 e