Upload
henriquehorschutz
View
231
Download
2
Embed Size (px)
Citation preview
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