Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CENTRO TECNOLÓGICO
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
CURSO:
MICROPROCESSADORES
Belém – Pará
Curso de Microprocessadores
______________________________________________________________________________________________________
SUMÁRIO
SUMÁRIO...........................................................................................................................................2
LISTA DE FIGURAS.........................................................................................................................5
LISTA DE TABELAS........................................................................................................................7
II.1 - O 8086/8088.........................................................................................................................25
Página 2
Curso de Microprocessadores
______________________________________________________________________________________________________
II.4 - Os i486..................................................................................................................................36
V - OS MICROPROCESSADORES DA MOTOROLA..............................................................83
V.1 - O 68.000...............................................................................................................................83
V.1.1 - Arquitetura.................................................................................................................... 83
V.1.2 - Diferenças no Conjunto de Instruções ...................................................................... 84
V.1.3 - Capacidade de Interrupção ....................................................................................... 84
V.2 - O 68.010...............................................................................................................................84
V.3 - O 68.020...............................................................................................................................84
V.4 - O 68.030...............................................................................................................................85
Página 3
Curso de Microprocessadores
______________________________________________________________________________________________________
V.5 - O 68.040...............................................................................................................................85
V.6 - O 68.060...............................................................................................................................87
V.7.1 - Origem.......................................................................................................................... 88
V.7.2 - A Família PowerPC .................................................................................................... 90
V.7.3 - O PowerPC G4............................................................................................................ 91
VI - INTRODUÇÃO AOS MICROCONTROLADORES ............................................................93
Página 4
Curso de Microprocessadores
______________________________________________________________________________________________________
LISTA DE FIGURAS
Página 5
Curso de Microprocessadores
______________________________________________________________________________________________________
Página 6
Curso de Microprocessadores
______________________________________________________________________________________________________
LISTA DE TABELAS
Página 7
Curso de Microprocessadores
______________________________________________________________________________________________________
I - CONCEITOS BÁSICOS
I.1 - HISTÓRICO
A história dos microprocessadores é brevemente resumida a seguir com o destaque de algumas datas
importantes:
Década de 80:
Década de 90:
Página 8
Curso de Microprocessadores
______________________________________________________________________________________________________
Tendências:
Os próximos parágrafos procuram dar uma idéia da nomenclatura utilizada no restante deste documento e
introduzir os componentes principais da arquitetura de microcomputadores ou de circuitos controlados a
microprocessador.
É 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.
A CPU tem finalidade óbvia, a de controlar o sistema como um todo. A memória serve para armazenar os
dados que serão manipulados e os dispositivos de E/S para a comunicação da máquina com o mundo
exterior (usuário).
RAM - "Random Access Memory": memória de leitura/escrita, volátil, para armazenamento temporário de
programas e dados. Originalmente, o termo foi usado devido ao acesso direto a qualquer locação da
memória, o que não acontecia com memórias ditas offline, tais como fitas magnéticas, cujo acesso era
seqüencial.
RAM Estática - RAM com menor densidade e mais rápida que a RAM dinâmica. Não necessita de circuitos
adicionais em um microcomputador.
RAM Dinâmica - RAM com maior densidade e mais lenta que a RAM estática. Necessita de circuitos
adicionais de controle em um microcomputador.
ROM - "Read Only Memory": memória programada quando a pastilha é fabricada, não podendo ser
modificada. É usada para armazenamento permanente de programas e dados;
Página 9
Curso de Microprocessadores
______________________________________________________________________________________________________
EPROM - "Erasable PROM": memória que pode ser apagada e reprogramada várias vezes. Apagável pela
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, sem necessidade
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 na próxima
seção.
Micropro-
Memória Memória
cessador
RAM EPROM
(CPU)
Barramento de Endereços
Barramento de Dados
Barramento de Controle
Interfaces Interfaces de
Interfaces de
para Controle e
Interação c/
Memória Sensorea-
o Usuário
Secundária mento
HD CD-ROM R/W
Modem
Scanner
Página 10
Curso de Microprocessadores
______________________________________________________________________________________________________
Um sistema de barramentos é definido como um conjunto físico de linhas de sinal que possuem funções
específicas dentro do sistema.
O Barramento de Endereços é apenas de saída (em relação CPU) e define o caminho de comunicação
dentro do sistema.
O Barramento de Controle, como o próprio nome indica, envia e recebe os sinais de controle necessários
à transferência de dados no sistema. Este barramento é composto, basicamente, de 4 tipos de sinais:
leitura de memória ativa, escrita de memória ativa, entrada através de dispositivo externo ativo e saída
através de dispositivo externo ativo.
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 os seguintes blocos:
Contador de programa ("Program Counter - PC") - registrador que armazena o endereço de memória da
próxima instrução a ser executada;
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 e
aritméticas envolvendo dois operandos;
Decodificador de instruções - circuito combinacional utilizado para determinar qual a próxima instrução a
ser executada. Isto é feito a partir do código de operação armazenado previamente no Registrador de
Instrução;
Unidade de controle - circuito seqüencial interno ao microprocessador utilizado para gerar os sinais de
controle necessários à execução da instrução previamente decodificada;
Registradores auxiliares - conjunto de registradores de rascunho que podem ser usados em conjunto ou
separadamente para operações intermediárias, sem que seja necessário o acesso sistemático à memória;
Página 11
Curso de Microprocessadores
______________________________________________________________________________________________________
Barramento de
Dados
Buffer de
Dados
Acumulador
Informação
RI Código de
Comple- X R1
Instrução
mentar
Apontador ..
SP de Pilha .
S
Unidade Lógica e
Decodifi- Contador de
PC Rn Aritmética (ALU)
cador Programa Z
Registradores de CY
Rascunho
Unidade de
AC
Controle
P
Buffer de Endereço
Sinais de Flags
Controle Barramento de
Endereços
Nesta seção serão dadas as explicações básicas para o entendimento dos microprocessadores mais
comuns do mercado.
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:
Página 12
Curso de Microprocessadores
______________________________________________________________________________________________________
então Z è 1
senão Z è 0;
CARRY: Se o resultado da instrução provoca um "carry" (na adição) ou um "borrow" (na subtração ou
comparação),
então C è 1
senão C è 0;
Cada microprocessador tem seus próprios bits de flag. Os flags anteriormente mencionados são os mais
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. A partir deste
entendimento, pode-se por analogia, entender o formato de instruções de outros microprocessadores.
Assim, o formato de instrução do INTEL 8085 é utilizado como exemplo básico.
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.
D7 D6 D5 D4 D3 D2 D1 D0
Código de Operação
D7 D6 D5 D4 D3 D2 D1 D0
Página 13
Curso de Microprocessadores
______________________________________________________________________________________________________
D7 D6 D5 D4 D3 D2 D1 D0
Código de Operação
D7 D6 D5 D4 D3 D2 D1 D0
Info. Complementar
D7 D6 D5 D4 D3 D2 D1 D0
Ainda com o intuito de mostrar como instruções são executadas em microprocessadores, também se faz
necessário explicar as operações básicas de um computador ou circuito controlado a microprocessador.
Estas, são as operações de leitura de memória e escrita na memória.
Operação de Leitura:
Operação de Escrita:
Página 14
Curso de Microprocessadores
______________________________________________________________________________________________________
4. ("Descanso").
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 de máquina que
variam de acordo com a instrução. Cada ciclo de máquina, por sua vez tem a duração de 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 formato pode-se
descrever textualmente o ciclo de instrução.
CICLO DE INSTRUÇÃO:
1. BUSCA
2. EXECUÇÃO
b) Execução da instrução;
É importante ressaltar que cada ciclo de instrução é composto por vários ciclos de máquina..
Página 15
Curso de Microprocessadores
______________________________________________________________________________________________________
Porta de
Entrada 01
5
5
Acumulador
16
Registrador de
Instrução
Microprocessador
Endereço Conteúdo
1 0100 IN 2
3 0101 01 4
6 0102 STA 7
8 0103 00
0104 20
9
12
0105 OUT 13
14
0106 10 15
0107 ...
Memória de Programa
Endereço Conteúdo
10 2000 A 11
2001
2002
2003
Memória de Dados
Porta de
Saída 10
16
16
Página 16
Curso de Microprocessadores
______________________________________________________________________________________________________
T1 T2 T3 T4 T5 T1 T2 T3 T4 T5 T 1 T2 T3 T4 T5 T1 T2 T 3 T 4 T 5
Oper. RI <- LDA Não RI <- 04 Não RI <- 20 Não Bar. A <-
Usado Usado Usado Dados (0420)
<-(0420)
PC 1001 1002 1003 1004 1004
->1002 ->1003
RI
Página 17
Curso de Microprocessadores
______________________________________________________________________________________________________
Grupo Aritmético
Grupo Lógico
Grupo de Salto
Inclui instruções de manutenção de pilha, leitura escrita na/da memória, "seta" ou lê máscaras de
interrupção, seta ou limpa "FLAGs"
Uma das técnicas de Entrada/Saída de dados mais utilizadas na atualidade é a Interrupção. Seu uso
aplica-se tanto em computadores de um modo geral, como também no ambiente de automação industrial.
É comum em softwares de apoio tradicionais, como o Norton Utilities, observar a distinção entre
Interrupções por Hardware e por Software. Segundo nomenclatura da INTEL, a diferença básica é que na
Interrupção por Hardware, o endereço de salto, para o qual o microprocessador irá desviar o
processamento é predefinido pelo hardware do microprocessador, enquanto que na Interrupção por
Software, este endereço de salto pode ser alterado pelo usuário programador Assembly.
Página 18
Curso de Microprocessadores
______________________________________________________________________________________________________
RST é uma instrução CALL de propósito especial. RST "push" ou "empurra" bytes do Program Counter
(PC) sobre a pilha e então faz a CPU saltar para um dentre vários endereços predeterminados.
Ex.: O 8085 inclui 4 sinais de entrada (hardware) que geram internamente instruções RST:
Quando um dispositivo de E/S pede o serviço de interrupção e a IRQ está habilitada pelo sistema de
interrupção do processador, este reconhece o pedido e prepara suas linhas de dados para aceitar qualquer
instrução de um byte do dispositivo. RST é geralmente a instrução escolhida, pois é uma instrução CALL
de propósito especial que estabelece o retorno ao programa principal.
Ex.: O 8085 possui 1 entrada e 1 saída que implementa este tipo de interrupção
Página 19
Curso de Microprocessadores
______________________________________________________________________________________________________
Para o processador não se confundir, ao receber dois pedidos de interrupção simultâneos, é provido um
mecanismo de prioridade que estabelece uma ordem no atendimento destes pedidos.
(1) – O processador coloca o conteúdo do Program Counter sobre a pilha, antes de saltar para o endereço
indicado
A figura 5 ilustra o mecanismo de Interrupção no 8085. A figura 6 mostra o mesmo para o ZILOG Z80 e a
figura 7 exibe os circuitos integrados típicos dos ambientes INTEL e ZILOG. É importante ressaltar a
diferença entre os mecanismos de prioridade de interrupção das duas empresas.
Página 20
Curso de Microprocessadores
______________________________________________________________________________________________________
1 INTR
2 INTA
INTEL Dispositivo
8085 Periférico
3 RST nn
Ex.: RST 7
3
Endereço Dado
0038 C3 (JMP)
0039 00
003A 80
Página 21
Curso de Microprocessadores
______________________________________________________________________________________________________
___
1 INT
ZILOG ____ Dispositivo
2
Z80 INTA Periférico
Registrador da CPU I 80
80 04
Página 22
Curso de Microprocessadores
______________________________________________________________________________________________________
PIO DMA
Barramentos
Z80
CPU
Mecanismo
"Daisy Chain"
CTC SIO
Prioridade Fixa
8274 8253
Barramentos
8085
CPU
Prioridade
Controlada
Além da técnica de Interrupção detalhada na seção anterior, existem duas outras técnicas, também muito
utilizadas em sistemas de computação de um modo geral. São estas: "Polling" e Acesso Direto à Memória
(ou DMA – “Direct Access Memory”).
Página 23
Curso de Microprocessadores
______________________________________________________________________________________________________
"POLLING": É uma técnica de Entrada/Saída de dados onde a CPU, explicitamente, consulta o perifé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ão participa do
processo de transferência de dados, exceto no seu início e após o seu término. Um outro dispositivo
periférico é necessário, o chamado "Controlador de DMA", para assumir o controle dos 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 o processo
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.
Barramentos
Da
CPU
do
s
2 HOLD DRQ
1 Disp. 3 Disp. 2
CDMA
3 HOLDA DACK
4
Driver Óptico
1 – DRQ – “Data Request”: Solicitação de Acesso Direto à Memória feito pelo dispositivo periférico ao
Controlador 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 a transferência de
dados;
4 – DACK – “Data Acknowledgement” – Resposta do CDMA ao dispositivo periférico, avisando que assumiu
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 interferência da CPU. Após a
transferência, o sinal DRQ é retirado, consequentemente, todos os outros sinais são retirados e a CPU
reassume o controle dos barramentos.
Página 24
Curso de Microprocessadores
______________________________________________________________________________________________________
II.1 - O 8086/8088
II.1.1 - Arquitetura
Unidade de Controle de
Barramento
1
ALU (Unidade Lógica e
2
Aritmética)
3
4
Unidade de Controle 5
6
Status
Fila de Código Objeto
de Instrução
Registrador de Instrução
Página 25
Curso de Microprocessadores
______________________________________________________________________________________________________
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 Pilha
BP Apontador de Base
SI Índice Fonte
DI Índice Destino
IP Apontador de Instrução
Flags H + Flags L Flags
CS Segmento de Código
DS Segmento de Dados
SS Segmento de Pilha
ES Segmento Extra
Observações:
Capacidade de Endereçamento:
Organização da Memória:
b) Endereçamento relativo à base de endereços de Registradores de Segmento: Code (CS), Data (DS),
Stack (SS) e Extra (ES).
Página 26
Curso de Microprocessadores
______________________________________________________________________________________________________
CS NNNN0
(IP+CS) Endereço Final è PPPPM
Observações:
1. Cada registrador de segmento (16 bits) identifica o início de um segmento 64 Kbytes. Como são 4
(quatro) os registradores de segmento, pode-se selecionar apenas um de 4 segmentos de 64 Kbytes
de cada vez. Isto significa que de 1 MBytes, têm-se apenas 1 de 16 possíveis segmentos 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 ou SI,
BX, BP, etc.
c) Posições de FFFF0-FFFFF (32 Bytes) reservadas para “Reset” => Após o “Reset”, a CPU executa
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 => 256 possíveis
vetores de interrupção;
Endereçamento de Entrada/Saída
Página 27
Curso de Microprocessadores
______________________________________________________________________________________________________
Observação: O dispositivo solicitante deve colocar em D0-D7 (8 bits menos significativos do barramento de
dados) o Número de Interrupção para a CPU. A CPU multiplica este número por 4 e com o resultado,
endereça a posição de memória contendo o vetor correspondente na TABELA DE VETORES DE
INTERRUPÇÃO. A figura 10 ilustra estes conceitos.
1a. Instrução
Rotina de Serviço
de Interrupção
IRET
Número de 003FF
Interrupção
x 4
IP
CS
Tabela de
Vetores de
Interrupção
00000
Para finalizar este item deve-se comentar a posição do microprocessador 8088 em relação ao 8086.
Página 28
Curso de Microprocessadores
______________________________________________________________________________________________________
Sobre o 8088
Uma das únicas diferenças entre os dois processadores é a de que o barramento de dados no 8088 possui
um comprimento de 8 bits (o barramento do 8086 é de 16 bits). Este fato possibilitou aos fabricantes 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 larga escala 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 mais poderosa 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ça principal
apenas no comprimento do barramento de dados.
Após os microprocessadores 8086 e 8088, a INTEL lançou o processador 80186, com desempenho cerca
de 30% superior ao 8086. O 80186 era um 8086 com novos blocos de hardware internos. Tal
microprocessador 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 de microinformá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 mesmas
características do 80186, à exceção do barramento de dados, dimensionado para 8 bits
II.2 - O 80286
O microprocessador 80286 surgiu com duas grandes novidades para a área de microinformática. A primeira
foi que o barramento de endereços da pastilha cresceu para 24 bits (não mais os 20 bits do 8086 e 80186),
o que implica em uma capacidade de endereçamento de 16 MBytes. A segunda foi a introdução de dois
modos de funcionamento da CPU: o MODO REAL (compatível com o 8086) e o MODO 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 se seguem 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 o 8086/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 de endereçamento
disponível. Sendo a CPU mais evoluída em hardware e permitindo a utilização de osciladores a cristal de
freqüências mais altas, sem dúvida máquinas com esta CPU, mesmo operando 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 80286 automaticamente
mapea 1.0 Gigabytes de endereços virtuais por tarefa dentro de um espaço de endereço real de 16.0
Megabytes. No modo protegido, o 80286 provê proteção de memória para isolar o sistema operacional e
assegurar a privacidade de cada tarefa sendo executada. Assim, o 80286, foi especialmente otimizado para
suportar sistemas multitarefa e multiusuário.
Página 29
Curso de Microprocessadores
______________________________________________________________________________________________________
Registradores do 80286
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 e a posição de
memória endereçada por DX)
SP Apontador de Pilha
BP Apontador de Base
SI Índice Fonte
DI Índice Destino
IP Apontador de Instrução
Flags H + Flags L Flags
CS Segmento de Código
DS Segmento de Dados
SS Segmento de Pilha
ES Segmento Extra
Capacidade de Endereçamento:
Operações com: byte, word, double word, quad word, BCD, ASCII, apontador e ponto flutuante;
Página 30
Curso de Microprocessadores
______________________________________________________________________________________________________
Organização de Memória:
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 residente cujo
conteúdo é um endereço base de 24 bits. O endereço real de memória é obtido com a soma deste
endereço base (24 bits) mais o offset (16 bits), totalizando 24 bits de endereço.
c) Posições de 000000-0003FF (1024 bytes è 256 possíveis vetores de interrupção) reservadas, como no
8086, para operações com interrupção, no modo real;
Endereçamento de Entrada/Saída:
Página 31
Curso de Microprocessadores
______________________________________________________________________________________________________
Sistemas de microcomputador baseados no 80286 foram os primeiros sistemas com capacidade para rodar
sistemas operacionais de rede multiusuário e/ou multitarefa, na época, por exemplo, o Netware 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.
II.3 - OS 80386
O microprocessador 80386 é compatível em software com o 8086. A INTEL optou por manter esta
compatibilidade para aproveitar toda a enorme base de software escrita para os 8086 e 80286. Sendo
assim, o 386 executa a maioria dos programas escritos para o 8086 e 80286, simplesmente por que este
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, em adição aos
dois modos do 80286 (Real e Protegido), o modo Virtual. O microprocessador abordado nos 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.
Página 32
Curso de Microprocessadores
______________________________________________________________________________________________________
Apontador de Instrução
e Registrador de Flags
IP EIP
FLAGS EFlags
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 em hardware (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 possuem desempenho bem maior que os 286. Assim,
neste modo, o mecanismo de endereçamento, o tamanho 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 do 80286,
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 é diferente daquele utilizado no
80286. Enquanto no 80286 o endereço base é de 24 bits (aos quais são adicionados 16 bits de offset), no
80386 este endereço é de 32 bits (aos quais são adicionados 16 ou 32 bits de offset).
Quando operando no modo protegido, o 80386 pode fazer uso de uma técnica chamada de
SEGMENTAÇÃO. Esta técnica organiza a memória em módulos lógicos chamados segmentos. Este modo
de gerenciamento de memória provém a base para a proteção de segmentos de memória. Por exemplo,
uma tabela do sistema operacional pode residir em um segmento e, como tal, deve ser protegido 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 em memória
virtual é a técnica chamada de PAGINAÇÃO. Independentemente da segmentação, a qual modulariza
programas e dados em segmentos de comprimento variável, a paginação divide programas em páginas
Página 33
Curso de Microprocessadores
______________________________________________________________________________________________________
uniformes múltiplas. Dessa forma, somente um pequeno número de páginas de cada tarefa precisa estar na
memória em um dado instante. A paginação é útil para o gerenciamento da memória física do sistema.
O 80386 possui 4 níveis de proteção otimizados para suportar as necessidades de sistemas operacionais
multitarefa, os quais devem proteger e isolar programas de usuários, uns dos outros, e programas do
próprio sistema operacional, dos usuários. Tais níveis de proteção se constituem, em outras palavras, em
um sistema de privilégio hierárquico de 4 níveis:
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 acesso menor
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 o tempo de acesso à RAM e
aumenta a velocidade de execução dos programas. No 80386, o uso de memó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ão implicava em um aumento da placa mãe.
Esta pastilha só era encontrada nas últimas versões micros 386.
Características Principais:
Capacidade de Endereçamento:
Operações com: bit, campos de bit, string de bits, byte, word, double word, quad word, BCD, ASCII,
apontador e ponto flutuante;
Organização de Memória:
b) Endereçamento:
Endereçamento Lógico (ou Virtual): Consiste de um segmento seletor (14 bits) e de um offset
(soma de componentes de endereçamento: BASE, INDEX, DISPLACEMENT => 32 bits), totalizando 46
bits de endereçamento, consequentemente, um espaço de 64 Terabytes;
Página 34
Curso de Microprocessadores
______________________________________________________________________________________________________
Endereçamento de Entrada/Saída:
Uma das fraquezas do projeto 286 foi a sua incapacidade de emular o 8086, mantendo a proteção e a
memória virtual. Com o 286, só se poderia emular o 8086 se este estivesse no modo real, quando a
proteção está completamente desabilitada. O projeto do 386 corrigiu este problema e permitiu então que
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 de 16 bits
no modo real e no modo protegido. Prevendo a expansão para o 386, a INTEL, especificou para 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 o conteúdo de um bit D do
descritor de segmento. Se é "0", então todos os comprimentos de operando e endereços efetivos são
assumidos como de 16 bits (código 286). Se é 1, então o comprimento default é de 32 bits (código 386).
Independentemente da precisão default, o 80386 pode executar instruções de 16 ou 32 bits, através de um
prefixo automaticamente adicionado pelos montadores Assembly da INTEL.
Fonte: "80386 High Performance Microprocessor with Integrated Memory Management", INTEL Corporation
- 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 é mais rápido
que o 286;
Página 35
Curso de Microprocessadores
______________________________________________________________________________________________________
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 o 8086 é
irrestrito, mas para o 386 é proibido em várias instruções. O problema era que o uso indiscriminado do
LOCK resultava em que dispositivos eram inibidos por períodos inaceitavelmente longos. No ambiente
não protegido do 8086, cabia às aplicações não deixar que isto 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.
O 80386SX podia ser interfaceado a circuitos periféricos de 16 bits, mas roda os softwares de 32 bits
escritos para o 386, pois sua arquitetura interna é de 32 bits. O seu barramento de dados é de 16 bits (a
metade dos 32 bits do 80386). Endereça até 16 MBytes de memória real (bem menos que os 4 Gigabytes
do 80386). Era comercializado pela INTEL com relógio máximo 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 o 386SX era o 80387SX.
O 80386SL era um microprocessador também derivado do 80386 e foi projetado especialmente para uso
em computadores portáteis ("Lap Tops"). Esta pastilha foi o resultado da integração de três circuitos: a
CPU 386SL, um controlador de barramento e um controlador de vídeo gráfico, diminuindo assim, o tamanho
e o peso do equipamento, além de proporcionar uma característica particular de economia de energia. A
memória real endereçável do 386SL era de 32 MBytes (16 MBytes a mais que o 386SX), sua freqüência de
operação era de 20 Mhz e o barramento de dados de 16 bits (como no 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.
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 microcomputador baseados no
80386, paulatinamente, passaram de servidores a desktops. Uma versão do Netware da Novell, a versão
3.12, até os dias atuais muito utilizada, usa toda a capacidade deste microprocessador, uma vez que foi
escrita em C e assembly 386.
O 80386 dispunha de um modo de execução muito melhor adaptado ao funcionamento multitarefa do que o
80286. Na época, sistemas baseados neste microprocessador eram os únicos capazes de suportar de uma
só vez os sistemas operacionais DOS, OS/2 e UNIX.
II.4 - OS I486
A INTEL, segundo decisão da justiça dos EUA, não pode registrar números, 386 e 486 p.e., como suas
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.
Página 36
Curso de Microprocessadores
______________________________________________________________________________________________________
A arquitetura interna do i486 foi otimizada em relação ao 80386 ou i386. Isto possibilitou a introdução na
pastilha de algo acima de um milhão de transistores (quatro vezes mais que o i386 possui). Os fabricantes
de computadores foram diretamente beneficiados por esta densidade de integração, uma vez que a placa
mãe sofreu uma redução significativa de tamanho e o processo de projeto e montagem foi simplificado.
Também o microcódigo de instruções foi otimizado, de forma a manter o máximo possível as operações no
interior da pastilha e, consequentemente, eram necessários menos ciclos de relógio para executar as
mesmas instruções que o i386 já executava. O 486 usa ambas as bordas do sinal de Relógio para a CPU,
enquanto os 286 e 386 usavam apenas uma borda.
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 de microinformática,
considerados mais simples, que usam planilhas e bancos de dados, o ganho de desempenho 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 (mais rápida
que a dinâmica) e gerenciador próprio (80385) e coprocessador aritmético (80387). Foram adicionadas ao
conjunto de instruções do i386 cinco instruções: três para gerenciamento da memória cache e duas,
incluídas a pedido da Microsoft, para tratamento de tarefas concorrentes pelo OS/2. Como no i386, a
pastilha endereça diretamente até 4.0 Gigabytes e indiretamente até 64 Terabytes.
O i486 a 25 Mhz possui uma capacidade de processamento de instruções de aproximadamente 20.0 MIPs
(duas vezes mais rápido que um i386 nos mesmos 25 Mhz) e é totalmente compatível com este último.
Como mencionado, a capacidade de processamento do 486 foi amplamente influenciada pela memó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 vez que
esta é a responsável direta pelo aumento de desempenho da máquina, uma escolha acertada poderia
beneficiar grandemente o usuário. O que se constata na literatura especializada é que o melhor tamanho
para a memória cache é o tamanho do maior programa que vai ser executado naquela máquina. Entretanto
pode-se tornar excessivamente caro colocar o máximo possível de memó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.77 Mhz, pode-se
fornecer alguns dados de desempenho, como discriminados abaixo:
Página 37
Curso de Microprocessadores
______________________________________________________________________________________________________
Conclui-se destes dados que o cache interno é extremamente importante, mesmo sendo muito menor que
o externo. Isto se deve a sua lógica de construção e, obviamente, ao fato de estar dentro da 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") relacionada com o
tamanho da memória cache. Um cache externo maior, evidentemente, possibilitará uma melhor 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 melhor desempenho 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 microprocessador mais rápido, o i386
33 Mhz. Deve-se entender o "SX" com uma versão desprovida de algo que sua versã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 aconteceu com o
i386SX, o qual possui 16 bits para dados, 16 a menos que i386. Basicamente, o i486SX opera a 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 pastilha de 60% em relação ao i486.
O i486SX, mesmo a 20 Mhz segundo a INTEL, era 45% mais rápido que o i386 (33 Mhz), com um custo
apenas 17 % superior. Já o i486 25 Mhz era 20% mais rápido que o i486SX (20 Mhz) e custava 270% mais
caro (custo em março de 1992). Um quadro exibido pela revista Micro Sistemas em março de 1992
mostrava o seguinte:
Em junho de 1991 a INTEL lançou o i486 50 Mhz e somente em junho de 1992 a revista PC Magazine
americana publicou testes de desempenho sobre as primeiras máquinas fabricadas com esta CPU. Antes
desta CPU, a líder em desempenho da INTEL era o i486 33 Mhz. Segundo a citada revista, o i486/50 é 30%
mais rápido que i486/33 a um custo (naquele ano) 10 a 20% maior. Uma observaçã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 fizesse por uma i486/50, em função da melhor
relação custo/benefício.
Página 38
Curso de Microprocessadores
______________________________________________________________________________________________________
Em março de 1992 a INTEL anunciou as chamadas pastilhas "Speed-Doubler". Tais pastilhas introduziram
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 o projeto de sistemas baseados,
externamente, no i486 25 Mhz, facilitando mais uma vez o dia-a-dia dos fabricantes de micro e
minicomputadores. A segunda opção é a pastilha "full" i486DX/50. Esta pastilha é 30% mais rápida que a
anterior.
Em linhas gerais, pode-se dizer que para máquinas necessitando de uma atividade de Entrada/Saída
intensa, como servidores de arquivos p.e., o i486DX2/50 não seria a primeira escolha. Já para má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, com coprocessador, 8
Kbytes de cache e 1,2 milhão de transistores, mas houve alguns refinamentos técnicos na parte de 50
Mhz, a qual usa um projeto de pastilha de três camadas e não de duas camadas como o i486DX/33.
O i486DX4/100, possui um clock interno de 99 MHz, operando externamente a 33 MHz. Esta pastilha
entrou e saiu rapidamente do mercado, dando lugar aos microprocessadores da classe Pentium.
Algumas Observações:
Antes de iniciar as explicações sobre os Pentium MMX e PRO, é necessário mencionar os primeiros
microprocessadores da classe Pentium, os simplesmente Pentium (núcleo P54C).
Página 39
Curso de Microprocessadores
______________________________________________________________________________________________________
Os Pentium
Essencialmente, o Pentium consiste de dois processadores i486 em paralelo. Logo, mais instruções são
processadas ao mesmo tempo, tipicamente, o dobro. Pode-se destacar algumas características
importantes.
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 é chamado de Principal e o
pipe V é chamado de Secundário. O Pipe U possue algumas limitações sobre instruções que executa. Os
dois Pipes tem cinco estágios cada um, como mostrado na figura 14.
O Pentium pode buscar até 2 instruções por ciclo. Durante a execução de uma instrução, as próximas
duas instruções são testadas. Se possível, a primeira é executada no Pipe U e a Segunda no Pipe V. Se
não é possível, uma instrução é passada ao Pipe U e nenhuma instrução é passada ao Pipe V. O
comportamento funcional das instruções nos dois Pipes é exatamente o mesmo de instruções executadas
sequencialmente.
Página 40
Curso de Microprocessadores
______________________________________________________________________________________________________
Caches
O Pentium possui um subsistema de cache interno com 2 conjuntos (um para instrução e outro para
dados) 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 para bancos
diferentes.
O, aqui chamado, Prebuscador de Instruções possui 4 buffers de 32 Bytes. No estágio PF, dois buffers 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 de salto é buscada, o BTB
prevê se o salto ocorrerá ou não. Se o salto não vai ser executado tudo continua linearmente. Se é para ser
executado, o outro buffer de prebusca é habilitado e inicia a prebusca 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ão separados, prebuscas de instruções não conflitam
com referências a dados para acesso ao cache.
Página 41
Curso de Microprocessadores
______________________________________________________________________________________________________
Prefetch
(PF)
Estágio de
Decodifi-
cação 1
(DS1)
Estágio de Estágio de
Decodifi- Decodifi-
cação 2 cação 2
(DS2) (DS2)
Writeback Writeback
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ão carregados
simultaneamente em um período de relógio. Escritas nesses buffers são enviadas para o barramento
externo do processador. Tais operações de escrita acontecem sempre na ordem em que ocorrem. Não são
possíveis leituras intermediárias.
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é o estágio E (Execução).
Após este estágio, as instruções dispendem pelo menos um clock para cada um 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 3 estágios. Além disso, instruções com
inteiros (e não de ponto flutuante) são tratadas durante este período de latência. A figura 15 exibe a
integração dos Pipelines de Inteiros e Ponto Flutuante. Os 3 primeiros estágios do Pipe de Inteiros são
desacoplados do Pipe de Ponto Flutuante. Os dois últimos são integrados.
Página 42
Curso de Microprocessadores
______________________________________________________________________________________________________
X1 X2 WF
Estágio de Estágio de
Prefetch Decodifi- Decodifi-
cação 1 cação 2 Execução Writeback
(PF)
(DS1) (DS2)
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 e
4. 57 novas instruções;
Como a própria INTEL propagandeia, esta mudança na arquitetura do processador foi a mais importante
desde o 80386, o qual extendeu a arquitetura de 16 para 32 bits e introduziu três modos de funcionamento
(real, protegido e virtual). Como de fato se verificou, tais mudanças foram incorporadas a todas as gerações
de processadores subsequentes da empresa.
Página 43
Curso de Microprocessadores
______________________________________________________________________________________________________
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-se Gráficos,
Vídeo MPEG, Síntese de música, compressão de voz, reconhecimento de voz, processamento de
imagens, jogos e vídeo-conferência. O núcleo deste processador foi chamado de P55C.
Esta análise mostrou muitas características comuns entre as diversas categorias de software. Os atributos
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, visando a
otimização do processamento de tais aplicações.
Técnicas SIMD foram utilizadas de forma a permitir que múltiplas peças de informação pudessem ser
processadas com uma única instrução, provendo um certo paralelismo, reduzindo loops de computação
intensiva e, consequentemente, aumentando o desempenho de aplicações multimídia e de comunicações.
O tipo de dado principal da arquitetura MMX é um pacote inteiro de ponto fixo, onde múltiplas palavras
inteiras são agrupadas em uma única quantidade de 64 bits. Estes pacotes são manipulados por
registradores MMX de 64 bits.
Como exemplo de benefício pode-se citar o pixel, geralmente representado em inteiros de 8 bits, ou bytes.
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, faz as operações
lógicas e aritméticas sobre os oito elementos e escreve o resultado em um outro registrador MMX.
Página 44
Curso de Microprocessadores
______________________________________________________________________________________________________
63 31 7 0
Registradores MMX
Campo
TAG 63 0
MM7
MM0
Página 45
Curso de Microprocessadores
______________________________________________________________________________________________________
Novas Instruções
As instruções lógicas e aritméticas são projetadas para suportar diferentes tipos de dados. Tais instruções
possuem um código de operação para cada tipo de dado suportado. Como resultado, as novas instruções
são implementadas com 57 códigos de operação. Um aspecto importante é que instruções MMX não são
privilegiadas, podendo ser usadas em aplicações, codificadores/decodificadores, algoritmos e drivers.
Página 46
Curso de Microprocessadores
______________________________________________________________________________________________________
Pipeline Superescalar
Os Pentium MMX adicionam mais estágios ao pipeline. A integração do Pipe MMX com o Pipe de inteiros é
muito similar a do Pipe de Ponto Flutuante. A Figura 19 mostra esta estrutura de pipeline.
Os Pentium MMX adicionam um estágio de pipeline inteiro. Os bytes de instrução são prebuscados do
cache de código no estágio de prebusca PF e passados ao estágio de busca F. Quaisquer prefixos são
decodificados no estágio F.
PF F DS1 DS2 E WB
E1 E2
E1 E2 E3
Página 47
Curso de Microprocessadores
______________________________________________________________________________________________________
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é 4 instruções.
A cada período de relógio, 2 instruções são colocadas nesta FIFO. Pares de instrução são colocados 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, o estágio de Execução do pipe, de um
“freio” na execução de instruções.
Para ilustração, o tipo de dado será uma palavra de 16 bits (word), contudo a maioria das operações pode
ser realizada para 8 e 32 bits.
A figura 20 mostra uma operação de adição (PADD[W] - “Add with wrap-around on [word]”). São realizadas
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.
a3 a2 a1 FFFF
+ + + +
b3 b2 b1 8000
A figura 21 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 valor representável,
respectivamente. Para uma operação sem sinal, com uma palavra de 16 bits, o maior e 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.
Página 48
Curso de Microprocessadores
______________________________________________________________________________________________________
a3 a2 a1 FFFF
+ + + +
b3 b2 b1 8000
Os novos games 3D manipulam objetos 3D. Estas computações, tipicamente, são baseadas em matrizes
4 x 4, as quais são multiplicadas por 4 vetores várias vezes. O vetor possui a informação de X, 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 22 mostra esses cálculos e o que faz a instrução PMADD.
x' a0 a1 a2 a3 x
y' b0 b1 b2 b3 y
=
z' c0 c1 c2 c3 z
w' d0 d1 d2 d3 1
Perspectiva
Os Pentium PRO
Página 49
Curso de Microprocessadores
______________________________________________________________________________________________________
O Pipeline do Processador Pentium PRO possui 3 unidades que se comunicam através de um Pool de
Instruções: A Unidade de Busca/Decodificação (ou “Front-End”), a Unidade de Despacho/Execução (ou
“Core”) e a Unidade de Retiro (ou “Retire”). A figura 24 exibe a ligação entre estas unidades.
Port Port
Port 4
3
2
Port
Port
0
1
Unidade de
Unidade de
Busca/ Unidade de
Despacho/
Decodifica- Retiro
Execução
ção
Pool de
Instruções
Página 50
Curso de Microprocessadores
______________________________________________________________________________________________________
A Unidade de Retiro conhece como e quando confirmar do resultado especulativo temporário para um
estado arquitetural permanente.
A Unidade de Interface de Barramento responsável pela conexão das 3 unidades internas ao mundo
real. Esta unidade comunica-se diretamente com o cache L2 (externo), suportando até 4 acessos
concorrentes ao cache.
Barramento
Cache L2
de Sistema
Cache de
Cache de Dados L1
Instruções L1
Unidade de
Unidade de
Busca/ Unidade de
Despacho/
Decodifica- Retiro
Execução
ção
Pool de
Instruções
Página 51
Curso de Microprocessadores
______________________________________________________________________________________________________
• 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;
• Execução Especulativa. As instruções são então “puxadas” especulativamente, com base no esquema
otimizado.
Arquitetura Superscalar
O barramento externo do Pentium PRO foi otimizado para suportar de 1 a 4 CPUs. A figura 26 ilustra este
fato.
Página 52
Curso de Microprocessadores
______________________________________________________________________________________________________
II.5.2 - Benchmarks
Página 53
Curso de Microprocessadores
______________________________________________________________________________________________________
II.6 - OS PENTIUM II
O Pentium II vem evoluindo continuamente, de acordo com os novos desenvolvimentos ou opções da INTEL.
Trataremos aqui da arquitetura inicial deste processador, cujo codinome ainda é “Klamath”.
• Cache interno L1 32 Kbytes (16 K para instruções + 16 K para dados). Cache duas vezes maior que o
do Pentium PRO;
• Cache externo L2 é de 512 Kbytes em ½velocidade (“half speed”), fazendo parte do cartucho de metal e
plástico que inclui o núcleo da CPU;
• Tecnologia de Processo de fabricação CMOS de 0,35 microns. A versão de 333 MHz usa o processo
de 0,25 microns;
• Encapsulamento em cartucho SEC (“Single-Edge Contact”) de 242 pinos, diferentemente do Pentium
PRO, o qual usava soquete ZIF (“Zero Force Insertion”);
• Suas primeiras versões, com arquitetura idêntica, operam nas velocidades de 233, 266, 300 e 333
MHz. Versões a 350 e 400 MHz, trazem ligeiras diferenças;
• Opera na velocidade interna de 66 MHz FSB (“Front-Side Bus”), exatamente como o Pentium PRO;
• Possui 5 unidades de execução, como no Pentium PRO;
• Alimentação de 2,8 Volts;
• Endereçamento físico de até 64 Gigabytes;
Página 54
Curso de Microprocessadores
______________________________________________________________________________________________________
II.6.2 - Benchmarks
A Figura 28 apresenta o iCOMP 2.0 (Benmchmark Multimídia da INTEL) para várias versões do Pentium II,
excluindo-se a versão de 333 MHz. Em seguida, é exibida na Figura 29, uma CPU Pentium II na presença
de uma interface de aceleração gráfica AGP (“Advanced Graphics Port”) e na figura 30, um Benchmark
entre os processadores Pentium II e Celeron.
Página 55
Curso de Microprocessadores
______________________________________________________________________________________________________
Fonte: www.tomshardware.com
Página 56
Curso de Microprocessadores
______________________________________________________________________________________________________
Página 57
Curso de Microprocessadores
______________________________________________________________________________________________________
• Codnone KATMAI
• Terceira versão do Pentium II;
• Conjunto de Instruções com 70 novas instruções MMX2 ou KNI (“Katmai New Instructions”);
• Registradores de 128 bits;
• 512 K de cache nível 2;
• Arquitetura P6;
• Suporte a DirectX 6.1;
• Barramento do sistema de 100 e 133 MHz FSB;
• Versões de 450, 500, 533, 550, 600, 650, 677, 700, 750, 733, 750, 800, 850, 866 e 1000 MHz.
Página 58
Curso de Microprocessadores
______________________________________________________________________________________________________
Linha CELERON
Página 59
Curso de Microprocessadores
______________________________________________________________________________________________________
Linha Pentium 4
Pentium 4
Página 60
Curso de Microprocessadores
______________________________________________________________________________________________________
Página 61
Curso de Microprocessadores
______________________________________________________________________________________________________
Página 62
Curso de Microprocessadores
______________________________________________________________________________________________________
Linha IA-64
Página 63
Curso de Microprocessadores
______________________________________________________________________________________________________
AMD K5
AMD K6
AMD K6-2
Página 64
Curso de Microprocessadores
______________________________________________________________________________________________________
AMD Duron
Página 65
Curso de Microprocessadores
______________________________________________________________________________________________________
• Clock do processador em 1,0; 1,13; 1,2; 1,33 e 1,4 GHz na frequência de 266 MHz;
• Clock do processador em 1,0; 1,1; 1,2; 1,3 e 1,4 GHz na frequência de 200 MHz;
• Cache interno de 384k (L1=128k + L2 on-die=256k);
AMD Athlon XP
Página 66
Curso de Microprocessadores
______________________________________________________________________________________________________
Os barramentos ISA 8 bits e ISA 16 bits foram os barramentos utilizados pelos primeiros
microcomputadores realmente populares do mercado. A sigla ISA significa “Industry Standard
Architecture”. Os famosos PCs XT utilizavam o ISA 8 bits, que suportava placas de expansão contendo
um único pente. Já o ISA 16 bits suporta placas de expansão contendo dois pentes separados por uma
ranhura. Este barramento é também conhecido no jargão técnico como “AT”. Os famosos XTs baseava-se
em CPUs 8088 ou 8086. Já os PCs AT baseavam-se em CPUs 80286, 80386 e até i486.
Surgiram então novas propostas de barramento principal para os microcomputadores do mercado, entre as
quais as propostas EISA e MCA.
O Barramento EISA ("Extended Industry Standard Architecture") de 32 bits foi um produto resultante
da formação de um consórcio composto de fabricantes de "clones" ("Gang of Nine") ou a Gang dos Nove,
nominalmente: Wyse, AST Research, Tandy, Compaq, Hewlett-Packard, Zenith, Olivetti, NEC e Epson,
mnemonicamente chamado, "WATCHZONE".
O argumento desses fabricantes era o de que sempre procuraram oferecer aos seus usuários produtos de
mais baixo custo e com ampla disponibilidade de placas de expansão, qualidades que na época (e nem
hoje) não eram (não são) encontradas na opção pelo barramento MCA.
Para que o barramento EISA fosse compatível com a maioria das placas (ISA 8 e ISA 16) já disponíveis no
mercado, os conectores da placa mãe (onde se encaixam as placas de expansão) dos microcomputadores
foram mudados para conectores EISA/ISA. Ou seja, tanto placas ISA de 8 ou 16 bits, quanto placas EISA
podiam e podem ser inseridas nos slots do sistema.
O artifício consistiu de dotar o conector de duas linhas de contactos, uma ISA e outra EISA. Placas ISA
penetram até a metade do conector fazendo uso da primeira linha de contatos (compatível ISA 8 e 16 bits).
Placas EISA penetram completamente no conector fazendo uso da segunda linha de contatos (compatível
EISA). A profundidade de penetração das placas é determinada pelo número de ranhuras das placas. No
caso das placas ISA existe somente uma única ranhura e no das placas EISA existem 6 ranhuras (uma
ranhura maior e cinco menores). Assim, a profundidade dos contatos do pente das placas de expansão
EISA passa dos atuais 0,79 cm para 1,32 cm.
O Barramento MCA ("Micro Channel Architecture"), também de 32 bits, embora tenha havido uma
versão de 16 bits, foi o padrão de barramento adotado pela IBM para os slots de um micro ou
supermicrocomputador, o qual era incompatível com os barramentos ISA (8 bits e 16 bits). Mesmo com a
decisão da IBM de abrir o projeto de seu barramento para outros fabricantes de placas de expansão, o
padrão ISA/EISA fez parte da maioria dos sistemas 486 disponíveis no mercado americano e brasileiro da
época.
Segundo artigo da revista BYTE americana de novembro de 1989, o barramento EISA permite a taxa de
transferência máxima de 33 Megabytes/segundo, enquanto no barramento MCA 16 bits esta taxa cai para
20 MBytes/segundo. Ainda segundo a mesma revista, as placas EISA são mais baratas e de fabricação
Página 67
Curso de Microprocessadores
______________________________________________________________________________________________________
mais fácil. Matérias na revista PC Magazine Brasil de agosto de 1992 apontavam o desempenho de 40
Mbytes/segundo para o barramento MCA de 32 bits, numa frequência de relógio da ordem de 10 MHz,
diferentemente dos 8,0 Mhz utilizados nos ISA e EISA.
Independentemente dos barramentos principais, surgiram no mercado, no início da década de 90, máquinas
fazem uso de um barramento local ("Local Bus"), ou seja, máquinas que implementam uma conexão direta
entre a CPU e a parte de I/O. Assim, o tráfego de dados da CPU para os periféricos fica na velocidade da
CPU, atingindo um desempenho de até 200 MegaBytes/segundo.
O Barramento VESA
A Video Electronics Standards Association – VESA - baseada na idéia de que as interfaces de vídeo
integradas à placa-mãe eram uma limitação às rápidas atualizações que surgiam a todo momento no
mercado de vídeo, lançou um padrão de conexão para placas de vídeo. A associação já existia antes do
advento do barramento local e cuidava de padrões de arquitetura e compatibilidade de projetos relacionados
a vídeo de alta performance.
Assim, em 1992, foi elaborado um projeto de barramento de 32 bits, direcionado originalmente às interfaces
de vídeo. O padrão VL-Bus, como ficou conhecido, teve aceitação imediata, não só pelas definições de
vídeo como também por sua arquitetura aberta, que permitia a implementação de outros tipos de interfaces
de barramento local, como de discos e redes.
O VESA Local Bus veio introduzir o conceito de barramento próprio, interligado diretamente à CPU.
Operando em 32 bits e na mesma frequência do processador principal o barramento VESA consegue taxas
de transferências de até 132 MB/s, mas somente no modo rajada (“Burst”).
Basicamente, o barramento VESA duplica os sinais do 486, o que reduz o custo do projeto das placas-
mães e melhora sensivelmente o desempenho em relação ao barramento ISA.
Uma das limitações deste barramento é quanto à frequência e número de conectores, ou placas a ele
conectadas. Isto ocorre por estar ligado diretamente ao barramento do processador e operar em frequências
muito altas. Assim, o número de periféricos conectados é de no máximo três. Os projetistas podem
acrescentar mais conectores, além do número máximo recomendado pela associação, mas fazendo isto
sacrificariam a velocidade do barramento.
O VL-Bus, da VESA, desenvolveu uma maneira de acelerar gráficos, descarregando-os do barramento ISA,
mais lento. Antes da adoção do padrão VESA, foram desenvolvidos alguns barramentos locais
proprietários, que davam poucas opções aos usuários, pois seus conectores não eram padronizados. Com
a nova versão 2.0, o VESA VL-BUS soluciona muitas das limitações do seu antecessor. O barramento
pode operar a 50 MHz, possuindo um caminho de dados de 64 bits, ao invés de 16 ou 32. A VESA
produziu um procedimento para testes de compatibilidade e conformidade para adaptadores. Com isto, os
fabricantes de placa podiam colocar um logotipo "compatível com VESA" na caixa.
A maioria das empresas nacionais suportavam o padrão VL-Bus. Este não somente foi, em sua época, o
mais difundido, como era o padrão para o qual havia o maior número de placas de expansão do mercado.
O Barramento PCI
O Barramento PCI (Peripheral Component Interconnect), outra arquitetura com barramento local, foi criado
pela Intel logo após o VESA. O Local Bus PCI veio aperfeiçoar o conceito VESA, introduzindo um
controlador de periféricos padronizado e definindo uma frequência fixa de operação em 33 MHz. O resultado
foi um barramento mais barato que o EISA e MCA, embora um pouco mais caro que o VESA.
Página 68
Curso de Microprocessadores
______________________________________________________________________________________________________
A diferença básica entre o PCI e o VL-Bus está no projeto. Mais moderno e com capacidade para suportar
futuras alterações no hardware dos PCs, o PCI reúne características que o tornaram mais atraente e mais
enxuto que o VESA.
Além de ter sido projetado prevendo ambientes com múltiplos processadores, o PCI define o uso de
componentes multimídia no barramento local. O bus mastering também é suportado, junto com uma
linguagem própria de controle de barramento.
Segundo a Intel, placas desenhadas para serem usadas em barramento PCI funcionam em qualquer
máquina, seja ISA, EISA ou MCA.
O PCI tem como características o barramento assíncrono e a arquitetura multiplexada, possui uma largura
de barramento de 32 ou 64 bits, o que o torna mais apropriado para processadores baseados no chip
Pentium. É um barramento do tipo mezzanino, significando que ele é independente do barramento do
processador. Além disso, a especificação do PCI é mais precisa do que a do VESA e isto já resultou em
incompatibilidades em adaptadores VESA. Finalmente, o PCI não é dedicado a um processador INTEL x86,
mas também pode ser usado por processadores Motorola.
O PCI supera, atualmente, tudo o que existe em máteria de barramento de comunicação, apresentando
taxas de transferência de dados na ordem de 132 MB/s em 32 bits e de até 264 MB/s em 64 bits. Em
relação ao número de slots de expansão, o PCI permite o controle de até 10 dispositivos auto-configuráveis
de alto desempenho.
Na comunicação de vídeo, o PCI supera todas as expectativas, apresentando uma performance 3 vezes
superior a uma VGA ISA e 3 vezes a de uma VGA-VESA.
Os dois barramentos locais descritos têm praticamente a mesma velocidade em 32 bits, atingindo picos de
desempenho de 132 MB/s, mas este número pode variar muito, se forem considerados os estados de
espera e as operações do modo burst.
A tabela 1 procura relacionar as várias velocidades envolvidas nos barramentos mencionados. A Tabela 2
exibe não só a limitação de 33 MHz do barramento PCI, como a relação entre a velocidade da máquina e o
CHIPSET da mesma
.
Página 69
Curso de Microprocessadores
______________________________________________________________________________________________________
O Barramento AGP
O Barramento AGP (“Accelerated Graphics Port”) é uma nova plataforma de especificação de barramento
direcionada para capacidades gráficas de alto desempenho, em particular, gráficos 3D. Tais aplicações
requerem grande área armazenamento de informações a fim de que a imagem 3D do monitor possa ser
“refrescada” ou atualizada o mais rápido possível.
A interface AGP é promovida pelo A.G.P. Implementors Forum, o qual provê suporte e facilidades na
adoção da especificação. Fazem parte deste Forum vários fabricantes de PCs, assim como fabricantes de
componentes gráficos.
Esta interface, como é conhecida, adiciona novas características às placas aceleradoras gráficas, tais
como: acesso em pipeline dedicado à memória principal e taxas de transferência mais rápidas. Esta
interface não é concorrente do barramento PCI, pois foi projetada pela INTEL especialmente para uso
Página 70
Curso de Microprocessadores
______________________________________________________________________________________________________
dedicado por controladores gráficos e não para substituir o PCI. Este permanece um padrão para um
sistema de barramento de I/O, de uma maneira mais geral.
A interface AGP foi projetada para componentes gráficos ponto-a-ponto e é fisicamente separada do
barramento PCI, usando um conector separado. A AGP permite alocação dinâmica da memória principal,
tornando-a mais flexível.
Esta interface está incorporada à maioria das placas-mães de hoje baseadas no processador Pentium II. A
figura 42 mostra um diagrama de blocos da interface AGP, na presença dos componentes da placa-mãe.
Página 71
Curso de Microprocessadores
______________________________________________________________________________________________________
A figura 43 exibe os barramentos PCI e AGP em uma arquitetura de placa-mãe e chipset mais modernos.
A figura 44 exibe uma placa-mãe com 4 slots PCI (brancos) e 1 slot AGP (marron).
Página 72
Curso de Microprocessadores
______________________________________________________________________________________________________
No artigo mencionado, o autor procura demonstrar que o pico teórico para o AGP é de 528 MBytes/s (8 x
66 Mbits/segundo), pois a atual limitação do transporte de dados da CPU para a memória principal está em
66 MHz do Clock do barramento: “Therefore AGP will never be able to get a throughput of 528 MB/s,
since this is the whole bandwidth of main memory and thus it has to be shared with CPU and
others” . E mais, esta taxa somente é válida com o uso de memórias SDRAM, pois em memórias do tipo
EDO é consideravelmente mais lenta. O autor explica que o AGP realmente necessita é que o barramento
principal das máquinas suba para 100 MHz (chegando atualmente ao mercado), quando então o pico
teórico seria de 800 Mbytes/s.
Existem propostas concorrentes do AGP da INTEL, as quais colocam nas placas gráficas a memória
necessária ao refrescamento do vídeo e não usam a memória principal do sistema que é compartilhada por
todos os outros periféricos. A INTEL raciocina que isto pode resultar em um custo mais elevado do que
proposta AGP, em função do alto custo das memórias.
Página 73
Curso de Microprocessadores
______________________________________________________________________________________________________
A figura 46 exibe um benchmark entre uma placa gráfica com barramento PCI e uma com barramento AGP.
Enfatiza-se que os barramentos, como mencionado anteriormente, não são comparáveis, uma vez que se
destinam a diferentes objetivos. Notar que em resoluções normais, 640x480 pixels, não há praticamente
diferença de desempenho entre as duas placas testadas.
Página 74
Curso de Microprocessadores
______________________________________________________________________________________________________
Com o avanço tecnológico e o surgimento do INTEL 80386, com um barramento de dados de 32 bits, a paz
nas indústrias terminou e, como já mencionado, surgiu uma briga entre o MCA da IBM e o EISA da Gang
dos Nove, vencida pelo EISA em termos mercadológicos. A Tabela 4 exibe uma comparação entre o EISA
e o ISA 16 bits.
Para finalizar este capítulo, vale ressaltar alguns aspectos do barramento PCI.
O PCI é considerado um barramento “mezzanino”, ou seja, nem ligado diretamente à CPU, nem ligado
diretamente aos dispositivos de I/O. É divorciado da CPU, dando a esta alguma independência e a abilidade
de competir com mais dispositivos. É multiplexado no tempo, significando que linhas de endereços e linhas
de dados compartilham conexões. Possui um modo de rajada próprio, o qual permite que um ciclo de
endereço pode ser seguido por tantos ciclos de dados quanto o overhead do sistema permitir.
A 33 MHz pode transferir 32 bits por período de relógio, implicando numa taxa de 132 MBytes/s (4 bytes x
33 Mbits/s). A especificação 2.1 do PCI inclui um barramento de 64 bits a 66 MHz, implicando em uma
taxa teórica máxima de 528 MBytes/s (8 bytes x 66 Mbits/s), conforme exibido na Figura 45.
Atualmente há dois tipos de barramentos, ditos aqui, secundários: O EIDE (“Enhanced Integrated Drive
Eletronics”) e o SCSI (“Small Computer System Interface”). Nesta seção trataremos destes dois
Página 75
Curso de Microprocessadores
______________________________________________________________________________________________________
tipos. Na literatura técnica, normalmente este barramento é chamado de interface. Portanto, a partir deste
momento usaremos os dois termos indistintamente.
A interface IDE
Esta interface se tornou padrão de mercado durante muitos anos por dois bons motivos: a facilidade de uso
e o baixo custo. Desenvolvida pela Western Digital e pela Compaq, foi uma evolução natural da interface de
disco original do B I M AT - a ST 506 - apresentada em 1984. As controladoras IDE (e não EIDE) não
possuiam ROM na placa, pois os sistemas IBM PC AT e compatíveis dispunham de rotinas internas da
BIOS para suportar este padrão de disco rígido. As controladoras IDE usam endereços de portas I/O de
1F0 a 1F7 para os registradores de controle e IRQ14 para o atendimento às interrupções.
A antiga controladora IDE continha um pequeno cache de disco, que variava de 32 a 512 KB, o qual
proporcionava um ganho de desempenho. Os discos IDE possuem a controladora integrada no próprio
disco. A controladora é conectada ao barramento do sistema usando um único cabo de fita achatada. Ele é
acoplado a um conector de 40 pinos na placa-mãe ou numa placa adaptadora separada. A placa é
simplesmente uma interface para o barramento do sistema PC.
Uma de suas características populares é a transparência. Não é necessário um driver especial para um
disco IDE, pois este é definido e suportado na BIOS do sistema e na própria interface IDE.
As desvantagens principais da interface IDE são: a limitação no tamanho dos discos que podem ser
acoplados e nas taxas de transferência de dados que podem ser alcançadas.
A capacidade dos drives IDE é restringida não pela BIOS ou pela interface individualmente, mas pela
combinação das duas. Tanto a BIOS do PC padrão, quanto a interface IDE suportam drives de grande
capacidade. Entretanto, quando combinadas, não conseguem suportar drives acima de 528 MB, devido aos
diferentes números de bits que cada uma reserva para definir as diferentes características: cilindros,
cabeças e setores por trilha - de um drive.
A taxa de transferência de uma unidade IDE está limitada ao máximo de 5 MBytes/s, num barramento ISA.
Uma placa IDE controlava no máximo dois discos rígidos e dois acionadores de discos flexíveis.
A Interface EIDE
O barramento IDE possui atualmente uma versão mais avançada, chamada de EIDE (“Enhanced IDE”), com
melhor desempenho, mais recursos, suportando até 4 drives de (dois canais) dispositvos conectados ao
barramento, incluindo CD-ROMs e melhor aproveitamento do barramento local, seja VESA ou PCI. Os
discos do antigo padrão IDE tinham no máximo 528 MB e velocidade máxima de 5 MBytes/s, enquanto os
EIDE chegam até 8,4 GB, tamanho máximo de disco e arquivo reconhecido pelo Windows NT, por
exemplo. A velocidade máxima atingida por esses discos é 13,3 MBytes/s. Em condições normais a taxa
alcançada pelo EIDE é de 10 MBytes/s. A tabela 5 a seguir exibe as taxas atuais das interfaces EIDE.
Página 76
Curso de Microprocessadores
______________________________________________________________________________________________________
O Barramento SCSI
A interface SCSI é uma interface de propósito geral usada para acoplar vários dispositivos de I/O ao
computador. Esta consiste num barramento paralelo de 8 bits que pode suportar até oito dispositivos, entre
discos rígidos, acionadores de discos flexíveis, CD-ROMs, fitas DAT, Scanners e a própria placa
controladora. Cada um possui um controlador próprio, que recebe instruções através do barramento. A
placa de interface SCSI, que ocupa um conector de expansão do PC, é chamada de placa hospedeira. Ela
controla o barramento SCSI, enviando comandos e dados para os dispositivos, recebendo confirmações e
dados dos mesmos.
O barramento SCSI usa um protocolo de comandos e não uma interface de unidade. Para ler um bloco de
dados, a placa hospedeira envia um comando através do barramento, como uma sequência de bytes. O
dispositivo alvo decodifica e executa, enviando depois os dados. Teoricamente, isto oferece independência
de dispositivo. Na prática, entretanto, nem sempre isto se verifica, devido às variações nas implementações
de diferentes fabricantes.
O padrão SCSI define um tipo de dispositivo que possui algoritmo interno de manipulação das requisições
de leitura e escrita de dados. Ao contrário das interfaces IDE, que operam numa relação Mestre-Escravo,
as controladoras SCSI podem reordenar as requisições aleatórias de dados, provenientes de diversos
dispositivos, para minimizar o tempo de busca das informações.
Os discos rígidos SCSI têm capacidade que varia desde 200 MB (mínimo recomendável) até dezenas de
gigabytes, não precisando de nenhum recurso especial de configuração. Vale lembrar que o DOS 6.22 e o
Windows 3.11 “viam” arquivos e discos de até 2 GB, apenas. Essas diferenças refletem-se nas aplicações
Página 77
Curso de Microprocessadores
______________________________________________________________________________________________________
destinadas aos dois tipos de interface (SCSI e IDE). Os sistemas SCSI são recomendados para ambientes
que exijam segurança, rapidez e suporte a vários dispositivos.
Os discos SCSI são atualmente divididos em SCSI-1, SCSI-2 e SCSI-3. O SCSI-1 é o primeiro padrão,
define um barramento paralelo de 8 bits, que suporta tranferências de até 5 MBytes/s.
O SCSI-2 surgiu logo depois da consolidação do primeiro padrão. O SCSI-2 suporta um barramento mais
rápido, de 16 ou 32 bits e mantém a compatibilidade com o anterior, de 8 bits. O SCSI-2 foi divulgado
publicamente em 1990 e pode atingir, teoricamente, a taxa de transferência de até 40 MBytes/s.
Os dispositivos SCSI-2 que suportam o barramento mais rápido, de 10 MBytes/s, são chamados Fast
SCSI, enquanto os que aceitam barramento de 16 ou 32 bits de 20 MBytes/s, são conhecidos como Wide
SCSI. Existem ainda interfaces e dispositivos que combinam esses dois padões, o Fast SCSI e o Wide
SCSI, que podem atingir velocidades de até 40 MBytes/s. O padrão SCSI-3 é um barramento de 16 bits,
com velocidade de até 40 MBytes/s, cabeamento de fibra óptica, podendo suportar de 8 a 32 dispositivos.
Uma controladora SCSI Disk Array possui alta performance e confiabilidade. Dentro do Disk Array, todos os
discos são vistos como um só. Isto possibilita a distribuição dos dados pelos vários discos, permitindo um
acesso de alto desempenho através de operações de I/O simultâneas. Além disso, o Disk Array dispõe de
várias implementações de RAID (Redundant Array of Inexpensive Disk) que garantem a integridade das
informações, como o mirroring (espelhamento) e a técnica de paridade.
As Tabelas a seguir exibem um resumo das velocidades alcançadas e outros parâmetros, pelos diversos
padrões de barramento secundário.
8-bit 16-bit
SCSI bus clock
(cabo de 50 vias) (cabo de 68 vias, Wide SCSI)
Página 78
Curso de Microprocessadores
______________________________________________________________________________________________________
Máximo
Velocidade Número Máximo de
Tecnologia Comprimento do
Máxima (MBps) Dispositivos
cabo (em metros)
SCSI-1 6 5 8
SCSI-2 6 05/out 8 or 16
Fast SCSI-2 3 out/20 8
Wide SCSI-2 3 20 16
Fast Wide SCSI-2 3 20 16
Ultra SCSI-3, 8-bit 1.5 20 8
Ultra SCSI-3, 16-bit 1.5 40 16
Ultra-2 SCSI 12 40 8
Wide Ultra-2 SCSI 12 80 16
Ultra-3 (Ultra160) SCSI 12 160 16
Página 79
Curso de Microprocessadores
______________________________________________________________________________________________________
A Figura 47 exibe a evolução da estrutura de um programa na memória, desde o 8085 até o i486.
80386/i486
8086/8088
8080/8085
FFFFFFFF Pilha
FFFFF Extra
Pilha Dados 1
FFFF Pilha
COMPILADORES LIGADORES
MONTADORES CARREGADORES
Página 80
Curso de Microprocessadores
______________________________________________________________________________________________________
• MONTADORES: São programas que traduzem o programa fonte escrito em linguagem Assembly para
programas objetos. Montadores testam a correção da sintaxe utilizada pela linguagem para representar
o programa fonte;
• DEPURADORES: São programas que auxiliam no processo de testar a correção do programa objeto.
Depuradores testam a semântica do programa objeto já montado.
O formato típico de uma linha fonte inclui os campos RÓTULO, MNEMÔNICO, OPERANDO(S) e
COMENTÁRIOS, separados por caracteres separadores de campos, tais como ":" e ";".
Têm-se três tipos de linhas fonte: INSTRUÇÕES, DIRETIVAS e CONTROLES (próprios de cada montador
Assembly ou "Assembler").
O montador Assembly do 8080/Z80, a partir de um arquivo ".ASM" gera dois tipos de arquivo, um em
formato hexadecimal, ".HEX" (programa objeto) e outro em formato hexadecimal mais o programa fonte
original, ".PRN" (este último pode ser impresso). O carregador usa como entrada o arquivo em hexadecimal
para gerar um programa executável, ".COM", como saída.
Existem vários montadores Assembly para o 8086/8088, entre eles o chamado MASM ("Macro ASseMbler
Programming"). O texto a seguir mostra o processo de geração de arquivos com o MASM e demonstra o
uso de um depurador Assembly.
Página 81
Curso de Microprocessadores
______________________________________________________________________________________________________
!
Program terminated normally
C:\>
Para concluir este item pode-se dizer que qualquer software em linguagem Assembly pode ser desenvolvido
e testado em um microcomputador comum para posterior gravação em memória PROM, EPROM ou
EEPROM, a qual ficaria residente no sistema controlado por microprocessador. Programadores e
apagadores de EPROM estão disponíveis no mercado, para facilitar o processo de programação física da
EPROM e eventual apagamento devido a alterações no programa residente. No caso da EEPROM, isto não
é necessário, pois este tipo de memória pode ser apagado e reprogramado (“Electricaly Erasable”)
diretamente no sistema a microprocessador, sem desligamento da máquina.
Página 82
Curso de Microprocessadores
______________________________________________________________________________________________________
V - OS MICROPROCESSADORES DA MOTOROLA
V.1 - O 68.000
No interior deste capítulo serão citadas, oportunamente, as diferenças entre o 68.000 e o seu concorrente
mais próximo na época, o 8086. Será dado um enfoque comparativo para que se possa ter uma idéia das
diferenças de arquitetura entre os micros da linha PC/PS e os da linha Apple/Macintosh e suas implicações
no desempenho dessas máquinas.
O nome Macintosh surgiu quando em 1796, em Ontário - Canadá, um fazendeiro de nome McIntosh tornou
popular uma maçã, lhe dando o seu nome. Jef Raskin, consumidor habitual deste tipo de maçã e
responsável, no seu início, pelo projeto de um micro revolucionário na APPLE, batizou este micro de
Macintosh (com erro voluntário de ortografia).
O 68.000 foi o primeiro microprocessador de 16 bits da MOTOROLA e o terceiro a surgir no mercado, tendo
sido precedido pelo 8086 da INTEL e pelo Z8000 da ZILOG. O 68.000 não é compatível em software com a
família de 8 bits da MOTOROLA (vide 6800). Esta optou pelo projeto de um conjunto de instruções de
máximo desempenho e simplicidade, ao invés de compatibilidade com os seus predecessores.
O 68.000, possui características internas apropriadas para suportar o sistema operacional UNIX. Em outras
palavras, foi concebido para receber um sistema operacional multitarefa e multiusuário, diferentemente do
8086. Nestes termos, pode-se dizer que este é muito mais potente que um 8086.
V.1.1 - Arquitetura
A arquitetura do 68.000 usava a técnica de "pipeline" para aumentar a taxa de execução de instruções. O
8086 também fazia uso de "pipeline", utilizando para isso uma fila de 6 bytes para código objeto.
O 68.000 endereçava 16.0 MBytes diretamente, através de suas 24 linhas de endereço, e indiretamente 64
MBytes. O 8086 podia endereçar diretamente apenas 64 Kbytes e 1.0 Mbytes, respectivamente, através de
seus registradores de segmento.
O 68.000 operava em dois modos: modo Supervisor e modo Usuário. No Modo Supervisor o 68.000 podia
executar instruções privilegiadas, não executáveis no Modo Usuário. Assim, o 68.000 suportava um
sistema operacional multitarefa e multiusuário. O 8086 não possuía modos similares, apenas a partir do
80286 pode-se contar com o suporte a ambientes multitarefa e multiusuário.
Internamente, o 68.000 possuía 17 registradores de 32 bits, sendo oito para dados e nove para endereços
(dois desses últimos reservados para apontadores de pilha). O 8086 tinha somente 4 registradores de 16
bits mais três registradores de índice separados. Esta característica trazia vantagens em desempenho para
o 68.000, uma vez que mais operações podiam ser realizadas no interior da pastilha, evitando acessos
frequentes à memória principal, o que significaria atrasos ainda maiores no processamento.
O 68.000 em seu encapsulamento de 64 pinos possuía linhas de dados e endereços separadas. Já o 8086
multiplexava linhas de dados e endereços em seu encapsulamento de 40 pinos, sendo então necessária
uma lógica de demultiplexação externa a pastilha para recuperar os barramentos de dados e endereços. Se
por um lado a MOTOROLA não economiza espaço, ao mesmo tempo elimina a necessidade de circuitos
adicionais na placa-mãe.
O 68.000 era compatível em hardware com os circuitos periféricos de 8 bits da própria MOTOROLA. Uma
similaridade é encontrada no 8088 da INTEL, também compatível em hardware com os circuitos periféricos
de 8 bits da própria INTEL. As duas fábricas sempre lançam pastilhas compatíveis com circuitos periféricos
de seus antecessores.
Página 83
Curso de Microprocessadores
______________________________________________________________________________________________________
Os tipos de dados suportados pelo 68.000 são: bit, nibble (4 bits), byte, word e long-word (32 bits). Este
opera em ponto flutuante tão rápido quanto o par 8086/8087. Aqui praticamente não existem diferenças
importantes.
O conjunto de instruções do 68.000 era composto de apenas 56 instruções básicas, podendo atingir
até 1000 combinações. O 8086 possuía um conjunto complexo de instruções em número elevado e na sua
maioria com finalidades específicas. Do ponto de vista do programador Assembly é razoável raciocinar que
este consiga programar mais rápido com um conjunto poderoso de poucas instruções ao invés de um
conjunto também poderoso, mas com um número elevado de instruções a escolher.
A MOTOROLA usa a designação de "Exceção" para o que o 8086 interpreta como "Interrupção". A
MOTOROLA considera que interrupções são casos particulares de exceções. O 68.000 tratava dois tipos
de exceção: as exceções geradas internamente e as geradas externamente, como segue.
• Exceções Internas: procedimentos de exceção são executados quando a CPU detecta erros internos,
tais como: erros de endereçamento, violação de privilégio e códigos de operação ilegais ou quando a
CPU executa determinadas instruções de programa, tais como: TRAP e TRACE;
• Exceções Externas: procedimentos de exceção são executados quando a CPU recebe sinais de
hardware de fontes externas, tais como: erros de barramento, reset e pedido de interrupção.
Uma tabela de vetores para processamento de exceções fica alocada na memória residente, contendo 256
possíveis vetores para processamento de exceções (1024 bytes). No 68.000 há 7 (sete) níveis de prioridade
para exceções. No 8086 havia 3 (três) níveis de prioridade de interrupção (software, não mascarável e
mascarável, nessa ordem). Isto não chega a ser uma vantagem do 68.000, uma vez que no caso de
microcomputadores, tais níveis são largamente suficientes.
A vantagem do 68.000 aqui vinha do fato de que o tratamento de exceções possuía um esquema mais
direto e simples que no 8086, onde o programador tem mais preocupações. Vale ressaltar, que quanto
menor é o tempo de programação maior é a produtividade do programador e mais rapidamente os produtos
são lançados no mercado.
V.2 - O 68.010
Há pouco a dizer sobre o 68.010, a não ser que este é idêntico ao 68.000, com algumas ressalvas. A
primeira é a de que usa suporte para memória virtual, ou seja, possui os pinos e os sinais necessários à
comunicação com um circuito gerenciador de memória virtual (não disponível no 68.000). A segunda é a de
que inclui algumas novas instruções, justamente para gerenciamento desta memória virtual.
V.3 - O 68.020
Página 84
Curso de Microprocessadores
______________________________________________________________________________________________________
dados de 32 em 32 bits. Além disso, pode endereçar diretamente 4 Gigabytes de memória, através de seu
barramento de endereços de 32 bits.
O 68.020 é dotado de 3 (três) unidades lógicas e aritméticas, possui uma memória cache interna de 256
bytes ou 64 "long-words" (32 bits) e usa uma estrutura "pipeline" de 3 instruções (busca, decodificação e
execução) de 32 bits. A busca de uma instrução no 68.020 significa um acesso a uma instrução de 32 bits
e não dois acessos de 16 bits para buscar uma única instrução (como ocorre no 68.000 e 68.010).
O 68.020 a 16.67 Mhz é compat¡vel em código objeto com o 68.010 e possui um desempenho 6 (seis)
vezes superior ao do 68.000 a 8 Mhz. Foram incluídas ainda, 20 novas instruções e dois novos
registradores foram acrescentados no modo supervisor.
V.4 - O 68.030
O antigo Mac SE/30 (CPU 68.030 a 15,667 Mhz) era 4 (quatro) vezes mais rápido que o Mac SE (CPU
68.000). A pastilha 68.030 incorpora a unidade de gerenciamento de memória virtual ou PMMU ("Paged
Memory Management Unit"). O barramento do Mac SE/30 foi mudado do NuBus (dos Mac Plus e SE) para
o chamado "Direct Slot 030", a fim de se adaptar a capacidade de endereçamento de 32 bits do 68.030.
Por isso, este microcomputador não aceitava placas de expansão usadas nas versões anteriores.
Um outro antigo modelo, o Mac IIcx também operava sob controle da CPU 68.030, mas numa frequência de
relógio de 25 Mhz. Além disso, incorporava uma pastilha (68.882) de gerenciamento de memória virtual e
um slot adicional para cache.
Não se pode comparar a frequência de relógio de 15,76 Mhz do 68.030 com as frequências, por exemplo do
i386 33 Mhz. Arquiteturalmente diferentes, os microprocessadores da INTEL usam vários períodos de
relógio (algumas instruções necessitam de até 236 períodos de relógio) ou vários ciclos de máquina para
executarem uma instrução, enquanto que os microprocessadores MOTOROLA usam poucos períodos de
relógio (a mais longa instrução tem uma duração de apenas 74 períodos de relógio). Portanto, as
frequências baixas utilizadas pelos microprocessadores MOTOROLA não significam baixo desempenho
como se poderia precipitadamente concluir.
V.5 - O 68.040
As primeiras versões de Macintosh eram baseadas na CPU 68.000. Versões mais recentes são baseadas
nas CPUs 68.040, 68.060 e Power PC.
Página 85
Curso de Microprocessadores
______________________________________________________________________________________________________
Duas unidades de memória independentes se comunicam com a IU e a FPU. Cada unidade possui uma
MMU, unidade de gerenciamento de memória virtual, que translaciona endereço lógico para físico.
Instruções no interior da pastilha e cache de dados operam independentemente e são acessados em
paralelo com a translação de endereço. O cache aumenta o desempenho geral. Tanto a IU como a FPU
possuem pipeline e a IU executa concorrentemente com a FPU. O Controlador de Barramento opera em
modo Burst, de forma concorrente com todas as outras unidades funcionais. O nível Write-Back de pipeline
recebe sempre um resultado prévio da computação que poderá ou não ser escrito em memória externa. Isto
aumenta o desempenho, pois o acesso à memória externa é sempre mais demorado que o acesso ao
cache interno. Assim, o resultado da computação só é escrito em memória externa, após confirmação do
mesmo.
O Barramento do Macintosh
Página 86
Curso de Microprocessadores
______________________________________________________________________________________________________
O padrão de barramento do Macintosh, por volta de 1989, era o NuBus, ou ANSI/IEEE 1196-1987,
concebido no MIT no fim dos anos 70, com forte apoio da Western Digital e da Texas Instruments. A
banda passante do NuBus era de 20 MBytes/s e, se utilizado em "modo bloco" podia chegar a uma
taxa de 37,6 MBps. Neste ponto, vale ressaltar as bandas passantes, na época, do PC XT, 1,0 MBps, e de
um PC AT, 2 MBps. Naqueles anos, o único barramento comparável era o MCA 16 bits, utilizado nos PS/2
da IBM, o qual possuía a mesma banda passante do NuBus.
Com este barramento os Macintosh aceitavam placas de 8, 16 e 32 bits. Já nos PCs/PSs, isto variava
segundo a máquina. O NuBus foi concebido para ser utilizado por qualquer microprocessador, enquanto
que o MCA aceitava somente microprocessadores da INTEL. A implicação disto era que um Macintosh
aceitava uma placa 386 da INTEL, podendo rodar DOS ou OS/2, o inverso não era verdadeiro, isto é, não se
podia, em princ¡pio, colocar uma placa da APPLE em um PS/2. O fato é que os antigos barramentos dos
XTs e ATs estão definitivamente obsoletos, pela sua banda passante hoje considerada insuficiente.
Enquanto os PCs funcionavam sob controle do DOS e do controvertido OS/2, os Macintosh eram
controlados por um sistema operacional de propriedade da APPLE, que desde seu lançamento, em 1984,
procurou não ser hermético e chegar de uma vez mais próximo do usuário final. Corre o boato que o MS-
Windows na sua versão inicial nada mais era do que uma cópia pior do sistema operacional do Macintosh.
Assim a APPLE, aproveitando os resultados dos trabalhos do PARC ("Palo Alto Research Center") da
XEROX, apresentou um dos primeiros sistemas a adotar a representação simbólica, sob a forma de
"ícones" (pictograma que representa um documento, um programa, uma função, etc) de arquivos. Este
sistema era composto de um trio: a memória ROM da máquina, os arquivos "System" e "Finder", aos quais
vieram se somar cerca de 20 outros módulos anexos.
A memória ROM teve pelo menos três versões e continha, além dos programas de interfaceamento com o
hardware, programas gráficos, caixa de ferramentas, etc. Os arquivos "System" e "Finder" eram
indissociáveis e complementares. Um Macintosh não era "bootável" se estes dois arquivos não fosem
encontrados no mesmo subdiretório.
As palavras-chave do sistema operacional do Macintosh são muitas: menus "pop-up" e "pull-down", janelas,
ícones, memória morta (ROM), memória viva (RAM), interface SCSI ("Small Computer System Interface"),
ToolBox (sub-programas em ROM), "copy", "paste", HFS ("Hierarchical File System"), etc.
Juntamente com a versão 5.0 do sistema operacional, foi lançado o "MultiFinder", um "Finder" multitarefa.
O "MultiFinder" foi disponibilizado em 1987, anos antes do aparecimento dos primeiros sistemas
operacionais multitarefa para micros. A APPLE tem, assim, larga experiência com este tipo de sistema.
Por volta de 1992, a Apple anunciou que o sistema operacional acompanhando os novos micros seria o
"System 7.1". O Sistema se tornaria "internacional", ou seja, com telas e menus em inglês, espanhol,
francês, japonês e português. Esta versão do software vinha embutida nos Macintosh.
V.6 - O 68.060
Página 87
Curso de Microprocessadores
______________________________________________________________________________________________________
O mais importante nesta CPU é que a unidade de Inteiros, IU, contém um pipeline dual, uma interface
lógica para a FPU e controle lógico para a escrita de dados no cache e MMU. Isto implica na execução de
mais de uma instrução durante cada ciclo de clock.
O Branch Cache na Unidade de Busca permite a deteção antecipada do salto, antes que a mudança de
fluxo afete a unidade inteira.
V.7.1 - Origem
Página 88
Curso de Microprocessadores
______________________________________________________________________________________________________
A idéia inicial das 3 gigantes da indústria era a de projetar um microprocessador de enorme desempenho
em um único chip. Isto permitiria um balanceamento entre máximo desempenho, facilidade de fabricação e
baixo custo. A raiz do projeto foi a arquitetura POWER da IBM.
Simplicidade na Implementação. Retirada de update “degenerado”. Uma instrução de LOAD que tenta
carregar um operando no mesmo registrador usado pelo endereço efetivo resultante é dita degenerada
(somente um valor deve ser carregado no registrador alvo). No PowerPC isto foi deixado em aberto. Esta
mudança não reduz a funcionalidade, mas simplifica a implementação.
Exceções de Ponto-Fixo
Computação de Ponto-Fixo
Ponto-Flutuante
Modelo de Armazenamento
A arquitetura do POWER relegava a tarefa de manter a coerência do cache ao software e usava um modelo
de consistência fraco de armazenamento. O PowerPC também depende do software para manter a
consistência de armazenamento de instruções, mas adicionalmente permite ao software especificar quais
páginas de armazenamento de dados o processador manterá em um estado consistente.
Extensões de 64 bits
Os registradores acessíveis às instruções de ponto-fixo foram estendidos para 64 bits, com poucas
exceções. Um bit de Modo de ambiente foi adicionado ao registrador de status da máquina para selecionar
ambiente de 32 ou 64 bits. As especificações de 4 instruções existentes de LOAD de ponto-fixo foram
mudadas para implementações de 64 bits. Várias instruções aritméticas, de ponto-fixo e de ponto-flutuante
foram adicionadas para manipular operações com e sem sinal em 64 bits.
Página 89
Curso de Microprocessadores
______________________________________________________________________________________________________
A família PowerPC da Motorola possui vários membros, os quais possuem utilização específica. Os
microprocessadores usados em computadores handheld, notebooks, desktops, workstations e servidores
são:
• PowerPC 601;
• PowerPC 603;
• PowerPC 604;
• PowerPC 620;
• PowerPC 602;
• PowerPC 603;
• MPC821;
• MPC823;
• MPC860;
• MPC505.
Como não podia deixar de ser, além dos microprocessadores, a Motorola também fabrica circuitos a serem
utilizados como periféricos desses microprocessadores, tais como: MPC105 (Controlador de cache, ponte
PCI e interface de DRAM num único chip).
PowerPC 620
O PowerPC 620 é uma implementação de 64 bits da arquitetura RISC do PowerPC com as seguintes
características:
PowerPC 750/740
Página 90
Curso de Microprocessadores
______________________________________________________________________________________________________
• 2 unidades de Inteiros
• Unidade de Registradores de Sistema
• Unidade de Processamento de Saltos
• Unidade Load/Store
• Unidade de Ponto Flutuante
• Projeto de 1,9 a 2,5 Volts (interno) e 3,3 Volts (I/O) com 3 modos de salvamento de potência;
• Cache L1 de 32 Kbytes para instruções e 32 Kbytes para dados, fisicamente separados;
• Suporte a Cache L2 on-chip de até 1 MBytes (o PowerPC 740 não possui cache L2 “on-chip”);
• MMU suporta 4 GigaBytes de memória física e 1 PetaBytes (2 52 bits) de memória virtual;
• Barramento de Dados de 64 bits;
• Barramento de Endereços de 32 bits;
• 6,5 milhões de transistores integrados;
• Tecnologia de Processo CMOS estático de 0,25 ou 0,29 micron;
• O PowerPC 750 opera nas velocidades de 200, 233, 266, 300, 333 e 366 MHz;
• O PowerPC 740 opera nas velocidades de 200, 233, 266 e 300 MHz;
• 671 MIPS @ 366 MHz (750) e 550 MIPS @ 300 MHz (740).
V.7.3 - O PowerPC G4
Página 91
Curso de Microprocessadores
______________________________________________________________________________________________________
Página 92
Curso de Microprocessadores
______________________________________________________________________________________________________
A arquitetura interna dos mesmos, normalmente, é dotada de CPU, memória RAM, memória EPROM,
portas paralelas, portas seriais, temporizadores, contadores e lógica de expansão de barramento.
A título de exemplo são detalhados dois microcontroladores. O primeiro é um antigo membro da família de
microcontroladores da INTEL, o 8052. Este é citado por razões históricas e práticas, pois é de 8 bits e
muitos equipamentos de hoje ainda são baseados nesta pastilha. O segundo é um microcontrolador mais
sofisticado, fabricado pela Motorola, o MPC860.
Como já mencionado, o 8052 faz parte de uma família de microcontroladores, conforme tabela a seguir:
• CPU de 8 bits;
• Oscilador e Circuitos de Relógio Embutidos;
• 32 linhas de Entrada e Saída;
• 64 KB para endereços da memória de dados;
• 64 KB para endereços da memória de programa;
• 3 contadores/temporizadores de 16 bits;
• 5 fontes de interrupção (2 externas, 2 internas e 1 da porta serial);
• Porta Serial Full-Duplex;
• Processador Booleano;
• 4 modos de funcionamento para os 3 Temporizadores;
• 4 modos de funcionamento para a Porta Serial.
Página 93
Curso de Microprocessadores
______________________________________________________________________________________________________
3 Contadores/
ROM /
RAM Temporiza-
EPROM
(256 Bytes) dores
(8 KBytes)
(16 bits)
CPU (8 bits)
8052
Entrada/Saída
Controle de Entrada/Saída
Paralela
Expansão de Serial
Programável
Barramento Programável
(32 Linhas)
Para dar uma idéia comparativa, em relação a microprocessadores de propósito geral, são listados abaixo
os Registradores Internos do 8052.
A – Acumulador
B – Reg. Utilizado em operações de multiplicação, divisão e rascunho
PSW – Reg. De Status (CY, ACY, OVF, PARITY, ...)
SP – Stack Pointer
DPTR – Endereço de 16 bits
P0, P1, P2 e P3 – Latches das Portas
SBUFF – Buffer para a Porta Serial
TH0, TL0, TH1, TL1, TH2, TL2 – Temporizadores de 16 bits
IP, IE, TMOD, TCON, SCON, PCON – Reg. de Controle
O acesso à memória externa é feito com o auxílio dos seguintes sinais: PSEN (“Programa Store Enable”)
para a memória de programa e RD (“Read”) e WR (“Write”) para a memória de dados mais os endereços
correspondentes.
Página 94
Curso de Microprocessadores
______________________________________________________________________________________________________
ROM Interna
(8 KBytes)
64 RAM Externa 64
KBytes (Dados) KBytes
RAM Externa
(Programas)
128
Bytes
RAM Interna
Registradores
Internos
As interrupções são:
• INT 0 e INT 1 – Pinos da CPU projetados para receber pedidos externos de interrupção;
O MPC860 é uma combinação de microprocessador e periférico projetado para funcionar em uma ampla
variedade de aplicações de controlador, particularmente em produtos de comunicação e rede. Esta pastilha
é a geração seguinte do MC68360 para aplicações de redes e comunicação de dados. Esta pastilha
integra 2 blocos de processamento: o primeiro é o núcleo do PowerPC e o segundo é o Módulo
Página 95
Curso de Microprocessadores
______________________________________________________________________________________________________
Processador de Comunicação (CPM), muito similar ao MC68360. Esta arquitetura dual provém um
consumo mais baixo de potência do que o tradicional, por que o CPM assume as tarefas de controle de
periféricos do núcleo PowerPC.
Página 96
Curso de Microprocessadores
______________________________________________________________________________________________________
Todos os processadores mencionados até a seção anterior, em geral, são considerados como máquinas
CISC ("Complex Instruction Set Computer"). Guardadas as diferenças de projeto arquitetônico entre INTEL
e MOTOROLA, todas essas máquinas possuem um conjunto de instruções, considerado por
pesquisadores de arquitetura como, demasiado grande. Ainda que estruturas pipeline possam ser
encontradas no interior das máquinas CISC, isto não significa que seu projeto tenha sido direcionado para a
otimização da compilação de programas, como é bem o caso das RISC.
As máquinas RISC ("Reduced Instruction Set Computer") apareceram no início dos anos 80 em laboratórios
de empresas (p.e. IBM), como o IBM 801, e em instituições de pesquisa: RISC I e RISC II na Universidade
da Califórnia - Berkeley e MIPS na Universidade de Stanford. Em 1985, todas as três estavam operacionais.
Cada um dos projetos tinha diferentes requisitos e objetivos, mas alguns princípios eram comuns:
O objetivo das máquinas RISC era o de aumentar a eficiência da interface entre o compilador e o hardware
e não, diminuir o "gap" entre o usuário e o hardware. Este último tem sido o objetivo das máquinas
consideradas CISC, como os microprocessadores de desktops e alguns servidores.
A compilação em processadores RISC é simples e o código gerado é eficiente, até mesmo em função da
própria filosofia de se ter um conjunto reduzido de instruções. Ao lado disso, com o avanço tecnológico da
integração VLSI ("Very Large Scale Integration"), também tornou-se possível realizar o máximo de
operações no interior do circuito integrado, aumentando sobremaneira a velocidade das operações.
Pelo fato das instruções serem simples e pouco numerosas, várias transferências CPU/Memória e vice-
versa são necessárias. Este problema vem sendo resolvido com a técnica de "cache", ou seja, ler um grupo
de instruções de uma única vez, enfileirá-las e executá-las em seguida.
Um outro aspecto diz respeito aos numerosos registradores internos a processadores RISC. Pode-se
armazenar nesses registradores uma grande quantidade de dados temporários, no interior da pastilha, sem
que sejam necessários vários acessos à memória principal.
A técnica de "pipeline" em vários níveis também é utilizada para aumentar ainda mais a taxa de execução
de instruções.
Algumas máquinas RISC executam uma instrução por ciclo de relógio, isto para implementar um pipeline
eficiente. As máquinas clássicas utilizam vários ciclos de máquina, contendo vários ciclos de relógio para a
execução de uma única instrução.
As instruções RISC, em geral, são de mesmo comprimento para aproveitar de maneira eficiente a estrutura
pipeline, uma vez que comprimentos diferentes levariam ao aumento do número de acessos à memória para
busca de instruções e, no caso de necessidade de uso de memória virtual, poderiam haver quebras de
páginas difíceis de serem gerenciadas.
Página 97
Curso de Microprocessadores
______________________________________________________________________________________________________
Pode-se dizer também que máquinas RISC foram construídas para diminuir o "gap de desempenho" das
máquinas e não o "gap semântico" entre o usuário e a máquina. Processadores CISC, ao contrário, como
qualquer um pode notar, diminuíram muito esse "gap semântico".
Um outro aspecto não menos importante foi o contra-senso, durante uma certa época, de se utilizar
máquinas RISC como equipamento central controlando vários terminais, pois certamente o projeto da sua
arquitetura não foi direcionado para tal e sua parte de Entrada/Saída muito menos. O que uma máquina que
usa um processador RISC como CPU faz é otimizar a ação de compiladores e aumentar muito a velocidade
de processamento, tornando-a adequada ao desenvolvedor de aplicações "pesadas" ou aqueles que
necessitam de recursos gráficos e de processamento, considerados hoje, de primeira qualidade.
Página 98
Curso de Microprocessadores
______________________________________________________________________________________________________
4. Tendências de Tecnologia: Crescimento de clock esperado é lento, número de transistores num chip
crescendo;
Página 99
Curso de Microprocessadores
______________________________________________________________________________________________________
Demanda de Aplicações
Speaker
Veri¼ cation
1 MIPS Sub-Band
Speech Coding
Página 100
Curso de Microprocessadores
______________________________________________________________________________________________________
Tendências de Tecnologia
100
Supercomputers
10
Performance
Mainframes
Microprocessors
Minicomputers
1
0.1
1965 1970 1975 1980 1985 1990 1995
1,000
u
u
u
u
uu
u
uuuu
u
u
R10000
u
100 uuu
uuu
uu
uuu Pentium100
u
Clock rate (MHz)
uu
u u
uuu
uu
uuuuu
u uuu
u uu u
u
u u
uu
u i80386
uu
10 i8086 u u i80286
u
u
i8080
1 uu
u i8008
i4004
0.1
1970 1980 1990 2000
1975 1985 1995 2005
Página 101
Curso de Microprocessadores
______________________________________________________________________________________________________
100,000,000
u
10,000,000 uu u
u
u u R10000
u
uu
uu uu Pentium
uu
uu
uu
u
uuuuuu
u u u
1,000,000
Transistors
uuu
u
u u
u i80386
i80286 u u u u R3000
100,000 u u u R2000
u i8086
10,000 u
u i8080
u
u i8008
i4004
1,000
1970 1980 1990 2000
1975 1985 1995 2005
Página 102
Curso de Microprocessadores
______________________________________________________________________________________________________
Na área de arquiteturas especificamente paralelas outras classificações podem ser encontradas. Uma das
quais estabelece 4 classes de Arquiteturas Paralelas:
1. Arquiteturas Vetoriais
Página 103
Curso de Microprocessadores
______________________________________________________________________________________________________
2. Arquiteturas SIMD
Página 104
Curso de Microprocessadores
______________________________________________________________________________________________________
1. Alocação de Recursos
3. Desempenho e escalabilidade
No momento atual, ano 1999, verifica-se uma taxa de 50 a 100% de aumento de desempenho nos
microprocessadores a cada ano. A capacidade das RAMs dinâmicas quadruplica a cada 3 anos. A
densidade dos discos magnéticos cresce 50% anualmente. Isto força uma tendência de se utilizar
microprocessadores padrão. Além disso, o usuário força uma tendência de que a potência dos sistemas de
computador deve aumentar com o número de processadores, o que hoje não corresponde a realidade.
Um outro aspecto é verificar os modelos utilizados pelos 500 computadores mais rápidos do mundo. A
figura 54 exibe a tendência de uso de máquinas à Passagem de Mensagens.
Página 105
Curso de Microprocessadores
______________________________________________________________________________________________________
350
313 319
u
300 n 284
u
239
Number of systems
250
u u MPP
200 n PVP
n 198
u187 s SMP
150
110 106
100 s
n n
106
s s
50 73
63
0s
11/93 11/94 11/95 11/96
Página 106
Curso de Microprocessadores
______________________________________________________________________________________________________
Mensagens
Operações de
Sincronização
Dados
Página 107
Curso de Microprocessadores
______________________________________________________________________________________________________
O IBM SP-2
Power 2
CPU IBM SP-2 node
L2 $
Memory bus
General interconnection
network formed from Memory 4-way
8-port switches controller interleaved
DRAM
MicroChannel bus
NIC
I/O DMA
DRAM
i860 NI
Página 108
Curso de Microprocessadores
______________________________________________________________________________________________________
O INTEL PARAGON
Mem DMA
ctrl
Driver
NI
4-way
Sandia’ s Intel Paragon XP/S-based Supercomputer
interleaved
DRAM
8 bits,
175 MHz,
2D grid network bidirectional
with processing node
attached to every switch
Página 109
Curso de Microprocessadores
______________________________________________________________________________________________________
Primeira geração (1983-1987) – Tecnologia de placas de processadores utilizando redes hipercubo, sendo
a passagem de mensagens realizada pelo software. Um exemplo dessas máquinas é o Cosmic Cube,
desenvolvido pela Caltech por C. Seitz e o INTEL iPSC/1.
Segunda Geração (1988-1992) – Arquitetura com uma topologia de grade, sendo o roteamento realizado
por hardware. Um exemplo é o INTEL Paragon e iPSC/2.
Terceira Geração (1992-1997) – Tende a ser uma arquitetura de paralelismo sofisticado, podendo serem
citados a J-Machine, a Corporation Machine CM5 e o IBM SP/2.
O IBM SP-2 é uma tentativa de assegurar preferencialmente a transição a partir das estações de trabalho
até máquinas paralelas topo de linha, ao invés de visar diretamente o mercado topo de linha.
O Cosmic Cube
Operação: Cada nó pode conter vários processos que são executados concorrentemente, se entrelaçando.
Arquitetura: 64 processadores 8086/8087 – 5 Mhz. Cada nó é ligado a 6 outros nós (6-cube) por canais de
comunicação bidirecionais, assíncronos e ponto-a-ponto. Nós possuem 128 KB de RAM e 8 KB de ROM
(inicialização, boot, refrescamento de memória e programas de diagnóstico).
Sistema Operacional: Cada nó executa um micro-núcleo. Cada micro-núcleo pode criar e matar processos
sobre seu nó, gerenciar carga em memória e tratar interrupções. A cada processo está associado um único
e global ID (identificador) para endereçamento de mensagens. Cada mensagem possue um cabeçalho
contendo DESTINO, ID do EMISSOR, TIPO DE MENSAGEM e TAMANHO DA MENSAGEM.
O INTEL Paragon
Sistema Operacional: Consiste de UNIX melhorado, totalmente distribuído ao longo dos nós, eliminando a
necessidade de se ter um host ou front-end.
Linguagens: Compiladores Fortran-77, C, C++ e Ada produzem código otimizado para aplicações paralelas
Página 110
Curso de Microprocessadores
______________________________________________________________________________________________________
A J-Machine
Entidade básica: MDP (“Message-Driven Processor”). O MDP é um microcomputador VLSI de 36 bits e 1,1
milhão de transistores, memória de 4096 palavras de 36 bits e uma porta de rede. Foi concebido para ser
eficiente dentro de um multiprocessador. Cada nó contém 4K do MDP mais 1 Mbytes de memória externa.
O MDP possui ainda 6 portas de rede de duplo sentido e 1 porta de diagnóstico. Cada porta de rede
corresponde a uma direção (+x, -x, +y, -y, +z, -z) que faz o MDP se corresponder com um MDP adjacente.
Cada nó pode injetar na rede 2 palavras de 72 bits por ciclo de relógio. Uma rede de 1024 nós permite um
largura de banda de 1,8 Gbytes/s.
Redes de Estação de Trabalho - Alguns autores comparam a evolução dos sistemas de informática
atuais à uma cadeia alimentar invertida, na qual “os pequenos comerão os grandes”. Os PCs atacam o
mercado de estações de trabalho que por sua vez consumiram o de minicomputadores e avançam sobre o
de mainframes e supercomputadores.
A relação Preço/desempenho das estações de trabalho aumenta 80% por ano e não aumenta mais que 20
a 30% para os supercomputadores.
Arquiteturas baseadas em Tecnologia Padrão – Esta idéia é inicialmente fundamentada no fator custo,
mas também se baseia no aproveitamento rápido das últimas evoluções em microprocessadores.
Página 111
Curso de Microprocessadores
______________________________________________________________________________________________________
Suporte a todos os Modelos de Programação – Este é um requisito que tem se tornado desejável, a fim
de evitar a especialização das máquinas. Ou seja, a arquitetura deve possuir o suporte necessário à
execução de aplicações nos modelos de: passagem de mensagens, dados paralelos, memória
compartilhada, etc.
Página 112
Curso de Microprocessadores
______________________________________________________________________________________________________
IX - BIBLIOGRAFIA
IX.1 - LIVROS
1. TANENBAUM, Andrew :"Structured Computer Organization", second edition, Prentice-Hall, Inc., 1984.
2. RUSSELL, Rector; ALEXY, George: "The 8086 Book", Ed. Osborne/ McGraw-Hill, 1981;
3. ARTWICK, Bruce A., "Practical Hardware Details for 8080, 8085, Z80 e 6800 Microprocessors
Systems", Prentice-Hall, 1981;
IX.2 - LINKS
www.lri.fr
www.laas.fr
www.intel.com
http://www-techdoc.intel.com/
http://developer.intel.com/sites/developer/
http://www.cyrix.com/site_index.html
www.amd.com
http://www.tomshardware.com/
www.mot.com
http://www.mcu.motsps.com/index.html
http://www.lri.fr/~fci/goinfreWWW/projets97/fedak/Survey.html
http://ee.stanford.edu/
http://umunhum.stanford.edu/papers.html
IX.3 - ARTIGOS
1. "Microprocessors - The First Twelve Years"; Proceedings IEEE, Vol. 71, No. 11, november 1983.
2. "Microprocessors in Brief"; IBM Journal Research and Development, Vol. 29, No. 2, march 1985.
Página 113
Curso de Microprocessadores
______________________________________________________________________________________________________
4. "A Survey of Advanced Microprocessors and HLL Computer Architectures"; IEEE Computer, august
1986.
5. "An Introduction to GaAs Microprocessor Architecture for VLSI"; IEEE Computer, march 1986.
6. Artigos diversos das revistas: Byte USA, Byte Brasil, Electronic Design, Exame Informática, Computer
Design, PC Magazine USA, PC Magazine Brasil, PC World, SVM Macintosh.
IX.4 - MANUAIS
2. INTEL Corporation, "Application Techniques for the intel 8085 Bus", 1978;
6. INTEL Corporation,"MCS-51 Family of Single Chip Microcomputers User's Manual, july, 1981;
8. INTEL Corporation,"iAPX 86/88, 186/188 User's Manual" - Programmer's Reference, may 1983;
Página 114