Anda di halaman 1dari 15

28/3/2011

1
Arquitetura de Computadores Arquitetura de Computadores
Arquitetura dos Processadores Intel
80x86
Prof. Marcos Quinet
Universidade Federal Fluminense UFF
Plo Universitrio de Rio das Ostras - PURO
Famlia Intel 80x86
Ao se falar em processadores,
inevitvel deixar de citar a Intel
Corporation e sua influente
famlia 80x86, que formada
pelos principais processadores
utilizados pelos computadores
pessoais.
Este captulo dedica-se a
apresentar uma viso geral deste
modelo de arquitetura e estudar
os principais componentes e
respectivas tarefas desta famlia
de processadores.
2
Intel 8086 Intel 8086
A famlia 80x86 comeou em junho de 1978,
com o lanamento do processador
8086/8088*, que teve vrias verses at 1982,
quando foi substitudo pelo 80286.
A primeira verso lanada foi constituda por
29.000 transistores, e apresentava um
desempenho de 0.33 MIPS, a uma velocidade
de 5 MHz
Foram ainda lanadas verses de 8 e 10 MHz,
sendo que esta ltima atingia um desempenho
de 0.75 MIPS
3
Intel 8086 Intel 8086
O 8086 veio atender s necessidades de
aplicaes que exigiam processamento de 16
bits, maior capacidade de memria, modos de
endereamento mais sofisticados (para facilitar
a execuo de programas escritos em
linguagem de alto nvel) e suporte para
sistemas operacionais multiprogramados
A figura a seguir ilustra os principais elementos
da arquitetura do 8086
4
28/3/2011
2
Intel 8086 Intel 8086
5
Intel 8086 Intel 8086
O Intel 8088 possui a mesma organizao do
8086, as nicas diferenas esto no tamanho da
fila de instrues (8 bytes no 8086 e 4 bytes no
8088) e no barramento de dados (16 bits no
8086 e 8 bits no 8088); devido as semelhanas,
estudaremos o 8086
A arquitetura do 8086 dividida em 2 unidades
principais: a unidade de execuo (EU
Execution Unit) e a unidade de interface de
barramento (BIU Bus Interface Unit)
6
Intel 8086 Intel 8086
Enquanto a EU abrange a unidade lgica e
aritmtica e a unidade de controle, a BIU
responsvel por controlar os acesso externos
memria principal e aos dispositivos de E/S
Se durante sua execuo uma instruo requer
um acesso a um dado armazenado na memria,
a EU solicita o acesso a BIU
7
Intel 8086 Intel 8086 Unidade de Execuo Unidade de Execuo
A ULA opera sobre dados de 8 ou 16 bits;
associado a ela existe um conjunto de 4
registradores de uso geral, denominados AX,
BX, CX e DX
Cada um destes registradores de 16 bits
formado por uma metade inferior (AL, BL, CL e
DL) e por uma superior (AH, BH, CH e DH), onde
podem ser realizados acessos individuais,
constituindo cada metade um registrador de 8
bits
8
28/3/2011
3
Intel 8086 Intel 8086 Unidade de Execuo Unidade de Execuo
Funo dos registradores:
AX: acumulador em instrues aritmticas e
lgicas;
BX: usado por algumas instrues para armazenar
ponteiros para dados armazenados na memria
CX: usado em instrues especiais, como o
controle de loop
DX: usado como uma extenso do reg. AX em
instrues de multiplicao e diviso, armazenando
a metade superior de um produto de 32 bits ou de
um dividendo de 32 bits
9
Intel 8086 Intel 8086 Unidade de Execuo Unidade de Execuo
Alm dos de uso geral, existem na EU
registradores indexadores e apontadores, so
eles:
SI (Source Index) e DI (Destination Index): utilizados
em operaes envolvendo cadeias de caracteres
(strings)
SP (Stack Pointer) e BP (Base Pointer) so
normalmente usados para realizar o acesso a pilha
em chamadas e retorno de rotinas; SP aponta para
o topo da pilha e o BP para a rea de dados locais,
na pilha, da rotina em execuo
Flags e Operandos so usados para registrar
informaes sobre o resultado de operaes
aritmticas e lgicas e ainda, alguns bits de controle
10
Intel 8086 Intel 8086 Unidade da Unidade da
Interface de Barramento Interface de Barramento
Todos os acessos memria e s interfaces de
E/S so controlados pela BIU. O 8086 possui
um barramento de endereo de 20 bits, que
suporta uma M.P. de at 1 MB
O 8086 acessa a memria organizada de forma
segmentada; nesta organizao a memria
dividida logicamente em blocos chamados
segmentos, cada um com um endereo-base
distinto
Uma locao de memria referenciada
atravs de seu deslocamento (offset)
11
Intel 8086 Intel 8086 Unidade da Unidade da
Interface de Barramento Interface de Barramento
A BIU possui um conjunto de registradores de
segmento, onde cada registrador armazena dos
16 bits mais significativos do endereo-base do
segmento.
A cada acesso realizado, o valor do endereo-
base concatenado esquerda com quatro bits
0, formando um endereo de 20 bits; a este
endereo somado o deslocamento (atravs de
um somador dedicado da BIU), resultando no
endereo da alocao
O deslocamento um valor de 16 bits, o que
limita os segmentos a um tamanho mximo de
64 KB
12
28/3/2011
4
Intel 8086 Intel 8086 Unidade da Unidade da
Interface de Barramento Interface de Barramento
No 8086, um programa residente na memria
dividido em 4 segmentos:
Segmento de cdigo: contm as instrues do
programa;
Segmento de dados: corresponde a rea de
dados do programa;
Segmento de pilha: rea que se destina a pilha do
programa
Segmento extra: rea de dados adicional
13
Intel 8086 Intel 8086 Unidade da Unidade da
Interface de Barramento Interface de Barramento
Para cada um destes segmentos existe um
registrador que armazena os 16 bits mais
significativos do endereo-base do segmento
correspondente. Estes registradores so:
CS: Code Segment register;
DS: Data Segment register;
SS: Stack Segment register;
ES: Extra Segment register.
14
Intel 8086 Intel 8086 Unidade da Unidade da
Interface de Barramento Interface de Barramento
Os quatro segmentos de um programa so
referenciados de acordo com o tipo de acesso a
memria, por exemplo, buscas de instrues so
feitas dentro do segmento de cdigo indicado
pelo valor corrente no registrador de segmento
CS
No acesso a instrues, o deslocamento dado
pelo contedo do registrador IP (Instruction
Pointer), que indica a prxima instruo a ser
buscada na memria
O reg. IP diferente do contador de programas,
que indica a prxima instruo a ser executada
15
Intel 8086 Intel 8086 Unidade da Unidade da
Interface de Barramento Interface de Barramento
Acesso a dados em memria acontecem dentro
do segmento indicado pelo registrador DS, e o
deslocamento gerado pelo programa, de
acordo com o modo de endereamento usado
Acesso a dados tambm podem ocorrer dentro
do segmento extra, apontado pelo registrador
ES
Acesso pilha ocorrem dentro do segmento de
pilha indicado pelo registrador SS
16
28/3/2011
5
Intel 8086 Intel 8086 Busca Antecipada Busca Antecipada
de Instrues de Instrues
O 8086 conta com um mecanismo de busca
antecipada de instrues (instruction prefetch),
para que o passo de busca de instruo seja
desvinculado dos demais passos de execuo da
instruo
Desta forma, novas instrues podem ser
buscadas antecipadamente enquanto uma
instruo anterior ainda est sendo executada
Na busca antecipada, a fase de busca e a fase
de execuo so separadas, e o tempo de busca
da instruo seguinte mascarado pelo tempo
de execuo da instruo corrente.
17
Intel 8086 Intel 8086 Busca Antecipada Busca Antecipada
de Instrues de Instrues
Na busca antecipada de instrues, utilizada
uma fila de instrues, para manter as
instrues buscadas antecipadamente, at serem
buscadas pela EU
Uma instruo trazida antecipadamente
permanece nesta fila at ser retirada pela EU
Em uma arquitetura sem busca antecipada, o PC
indica a prxima instruo a ser executada, que
exatamente a prxima instruo a ser buscada
18
Intel 8086 Intel 8086 Busca Antecipada Busca Antecipada
de Instrues de Instrues
A busca antecipada reduz o tempo mdio de
concluso de cada instruo
Consequentemente, o tempo para executar um
certo nmero de instrues menor, otimizando o
desempenho
Aps o 8086, vrias tcnicas de paralelismo de
operaes foram desenvolvidas, como no
pipelining e arquiteturas super-escalares
19
Intel 8086 Intel 8086 conjunto de instrues conjunto de instrues
As instrues do 8086 podem ser classificas nos
seguintes grupos:
Instrues aritmticas;
Instrues lgicas;
Instrues de manipulao de strings;
Instrues de transferncia de dados;
Instrues de transferncia de controle.
A arquitetura do 8086 do tipo memria-registrador,
logo, as operaes lgicas e aritmticas especificam
explicitamente 2 operandos, sendo que que um deles
atua como operando-fonte e operando-destino
Apenas um dos operandos pode se encontrar na
memria
20
28/3/2011
6
Intel 8086 Intel 8086 conjunto de instrues conjunto de instrues
As instrues aritmticas operam sobre nmeros de 8
ou 16 bits, com ou sem sinal
Esto disponveis instrues aritmticas especficas
para BDC
As instrues lgicas implementam as operaes
booleanas bsicas, instrues para deslocamento
aritmtico e instrues para rotao do contedo de
registradores
Operaes de manipulao de strings incluem:
movimentao entre regies de memria,
comparao, procura de caracteres dentro da string e
transferncia entre registradores e a memria
21
Intel 8086 Intel 8086 conjunto de instrues conjunto de instrues
As instrues de transferncia de dados
podem ser:
de uso geral, que incluem as transferncias
de dados entre registradores, registradores e
memria e acesso pilhas;
especiais, utilizadas para carregar
registradores de segmento, salvar/carregar o
registrador de estado e para realizar o
acesso a interfaces de E/S
22
Intel 8086 Intel 8086 conjunto de instrues conjunto de instrues
Instrues de transferncia de controle podem
ser classificadas como:
Condicionais: um desvio pode ou no ser
executado, dependendo se a condio testada pela
instruo ou no verdadeira;
Incondicionais: o desvio sempre efetuado; so
instrues de chamada/retorno de rotinas e
instrues de controle de loop
Esto disponveis instrues de transferncia de
controle especiais, como INT, que provoca uma
interrupo, usada para implementar uma
chamada ao sistema operacional
23
Intel 80286 Intel 80286
As principais novidades na arquitetura do
80286 foram a execuo de instrues em
pipeline e o suporte para memria virtual
Na arquitetura do 80286 foi implantado o
conceito de unidades independentes, que
realizam funes especficas:
A unidade de barramento controla os acessos a
memria e interfaces de E/S, e realiza a busca
antecipada de instrues, colocadas em uma fila
na unidade de barramento
24
28/3/2011
7
Intel 80286 Intel 80286
25
Intel 80286 Intel 80286
A unidade de instruo decodifica as
instrues, colocando as instrues
decodificadas em uma fila; a instruo
decodificada fornece de maneira mais
detalhada todas as informaes necessrias
execuo da instruo
A unidade de controle, a ULA e o conjunto de
registradores formam a unidade de execuo
A unidade de execuo retira da fila da UI as
instrues j decodificadas
A ULA do 80286 de 16 bits e o conjunto de
registradores idntico ao do 8086
26
Intel 80286 Intel 80286
A unidade de endereo responsvel por
controlar a memria virtual, o que torna possvel
a execuo de programas com tamanho de
cdigo maior do que a capacidade da memria
principal
27
Intel 80286 Intel 80286 modos de operao modos de operao
O 80286 pode operar em dois modos,
chamados modo real e modo protegido
No modo real, o 80286 opera com um modelo
de memria semelhante ao do 8086, contando
com uma memria segmentada de 1 Mbyte
No modo protegido utilizada a memria
virtual; neste modo, dividida em 16384
segmentos, cada um com 64 Kbytes de
capacidade
Em teoria, seria possvel executar programas
com at 1 Gbyte de tamanho, mas devido ao
barramento de endereo externo de 24 bits, o
tamanho mximo de MP de 16 Mbytes
28
28/3/2011
8
Intel 80286 Intel 80286 modos de operao modos de operao
No modo protegido possvel a execuo de
sistemas operacionais multiprogramados de
maneira mais eficiente, uma vez que prov
proteo entre segmentos pertencentes a
diferentes programas
importante observar que estes dois modos de
operao so estticos: quando o 80286
iniciado, comea a operar no modo real; a
execuo de uma instruo especial comuta sua
operao para o modo protegido, e permanece
neste modo at que seja reiniciado
29
Intel 80286 Intel 80286 modos de operao modos de operao
Programas para o 8086 no podem ser
executados no modo protegido, pois quando o
sistema passa a funcionar neste modo, os
registradores de segmento assumem funes
diferentes daquelas no 8086 (uma limitao
corrigida no 80386)
As diversas unidades no 80286 podem operar
simultaneamente, realizando tarefas que fazem
parte da execuo de diferentes instrues,
implementando a tcnica conhecida como
pipeline; no 8086 a execuo puramente
sequencial
30
Intel 80386 Intel 80386
Devido a um perodo de transio, foram
lanadas duas verses do Intel 80386:
SX: barramento de dados externo de 16 bits;
DX: barramento de dados externo de 32 bits;
A arquitetura do 80386 formada por oito
unidades lgicas, cujas funes bsicas so:
Bus Interface Unit (Unidade de barramento):
responsvel por controlar os acessos externos
memria e interfaces de E/S; recebe os pedidos de
acesso memria de vrias outras unidades
31
Intel 80386 Intel 80386
32
28/3/2011
9
Intel 80386 Intel 80386
Prefetch unit: realiza a busca antecipada de
instrues; possui uma fila de instrues, com
capacidade de 16 bytes, que solicita acessos
memria para a unidade de barramento sempre
que a fila estiver parcialmente vazia ou quando
uma instruo de transferncia de controle
executada
Decode unit: retira uma instruo da fila de
instrues e gera uma instruo decodificada,
que armazenada na fila de instrues
decodificadas (decoded queue) que, por sua
vez, so retiradas pela unidade de controle para
serem executadas
33
Intel 80386 Intel 80386
A unidade de dados (data unit) formada por
uma ULA e um conjunto de registradores de 32
bits, representado abaixo:
34
31 16 15 0
AH AX AL EAX
BH BX BL EBX
CH CX CL ECX
DH DX DL EDX
ESP
EBP
ESI
EDI
Intel 80386 Intel 80386
Existem 4 registradores de dados de 32 bits
(EAX, EBX, ECX e EDX) nos quais podem ser
feitos acessos a metade inferior de cada um,
como registradores de 16 bits (AX, BX, CX e
DX) que, por sua vez, podem ser considerados
como formados por dois registradores de 8 bits,
mantendo a compatibilidade com arquiteturas
anteriores
Os registradores apontadores ESP e EBP e os
registradores indexadores ESI e EDI so
realizados acesso apenas como registradores
de 32 bits
35
Intel 80386 Intel 80386
A memria virtual do 80386 gerenciada pela
trs unidades restantes: protection unit,
segmentation unit e paging unit
O 80386 implementa um modelo de memria
virtual organizada em segmentos e pginas;
A unidade de proteo verifica se um endereo se
encontra dentro dos limites de um segmento;
As unidades de segmentao e paginao
realizam a converso entre endereos virtuais e
endereos reais
36
28/3/2011
10
Intel 80386 Intel 80386
Alm dos modos real e protegido, j existentes no
80286, o 80386 possui mais um modo, chamado
modo 8086 virtual
Neste modo, programas desenvolvidos para o
8086 podem ser executados em um ambiente
multiprogramado protegido
No 80386 possvel comutar livremente do modo
protegido para o modo real e vice-versa, o que
ocorre, por exemplo, na abertura de uma janela
MS-DOS na interface grfica Windows (que
executa em modo protegido), possibilitando a
execuo de programas escritos para o 8086
(modo virtual)
37
Intel 80386 Intel 80386
A arquitetura do 80386 inclui todas as instrues
disponveis nas verses anteriores, alm de
vrias outras, com destaque para as de teste de
bits, procura de caracteres em strings e
movimentao e converso de dados
No 80386 esto disponveis 11 modos de
endereamento (incluindo os usados em
verses anteriores) alm de um novo
componente utilizado no clculo do endereo
efetivo, chamado escala (scale)
38
Intel 80386 Intel 80386
Escala um fator (1, 2, 4 ou 8) que multiplica o
ndice nos modos de endereamento indexado
A escala facilita o acesso a vetores com
elementos de 16, 32 ou 64 bits; por exemplo,
para percorrer um vetor com elementos de 32
bits, so necessrios incrementos de 4 bytes no
endereo efetivo
Se for utilizada uma escala 4, cada incremento
de 1 do ndice resulta, aps a multiplicao do
ndice pela escala, no incremento de 4 bytes no
endereo efetivo
39
Intel 80486 Intel 80486
Do ponto de vista arquitetural, o 80486
basicamente uma extenso da arquitetura do
80386, contendo uma memria cache de 8
Kbytes e uma unidade de ponto flutuante
Em sistemas baseados no 80386 a memria
cache e a unidade de ponto flutuante so
externos ao processador
40
28/3/2011
11
Intel 80486 Intel 80486
41
Intel 80486 Intel 80486
Uma estratgia de mercado muito utilizada nesta
poca e que empregada at hoje so as
diferentes verses de implementao, oferecendo
diferentes recursos com custos variados
80486-SX: no possui a unidade de ponto flutuante
integrada com o processador, apenas a memria
cache
80486-DX: possui unidade de ponto flutuante e
cache integradas com o processador; a frequncia
de clock do processador a mesma usada nos
ciclos de barramento para acessos memria e
interfaces de E/S
42
Intel 80486 Intel 80486
80486-DX2: a frequncia de clock interna ao
processador o dobro da frequncia externa
usada nos ciclos de barramento, o que permite a
compatibilidade entre verses mais novas do
processador com hardware de sistemas mais
antigos e lentos
Foi lanada ainda uma verso DX4 do 80486,
com o clock interno triplicado, mas ficou pouco
conhecida por ter sido lanada aps o Pentium
43
Intel 80486 Intel 80486 memria memria cache cache
O 80486 possui uma cache com capacidade de
8 kbytes, para o armazenamento de instrues
e dados, organizada em 128 conjuntos de 4
linhas cada
44
tag controle linha 0 (16 bytes)
conjunto 0
linha 1
linha 2
linha 3
... ... ...
conjunto 127
28/3/2011
12
Intel 80486 Intel 80486 memria memria cache cache
O 80486, assim como a maioria dos
processadores, utiliza um modelo de cache n-
associativa por conjunto
Um endereo de cache composto pelos
seguintes campos:
Byte, formado pelos 4 bits menos significativos;
Conjunto, formado pelos 7 bits seguintes;
Tag, formado pelos 21 bits mais significativos do
endereo.
Observe que o tamanho destes campos est
relacionado com a configurao da cache, que
pode variar entre diferentes processadores
45
Intel 80486 Intel 80486 memria memria cache cache
46
Intel 80486 Intel 80486 memria memria cache cache
A no coincidncia do tag do endereo com os
tags armazenados no conjunto indica que o byte
referenciado no se encontra na cache (cache
miss)
usado um bit de controle para saber se o bloco
armazenado em uma linha selecionado foi ou
no modificado desde o seu carregamento na
cache
No caso da substituio de blocos, o bit de
controle serve para determinar se o bloco
selecionado pode ser simplesmente descartado
ou deve atualizar o dado correspondente na M.P.
47
Intel 80486 Intel 80486 memria memria cache cache
A memria cache no 80486 utiliza a poltica de
substituio LRU (Least Recently Used)
Para minimizar os caches misses residuais, o
80486 implementa uma memria cache
secundria, em uma estrutura conhecida como
memria cache de dois nveis
A quantidade de memria cache varia
dependendo do modelo do 80486; a cache
primria integrada ao processador e possui um
tamanho de no mximo 64 Kbytes; a cache
secundria externa ao processador e pode
chegar a capacidade de 512 Kbytes
48
28/3/2011
13
Intel 80486 Intel 80486 memria virtual memria virtual
Como possui suporte a memria virtual, o 80486
pode operar em dois modos:
No modo real, o mecanismo de memria virtual
desativado, e o modelo de memria idntico ao
do 8086: os programas visualizam uma memria
segmentada, com um tamanho mximo de 1 Mbyte
No modo protegido, o mecanismo de memria
virtual ativado, e o espao de endereamento
de 64 Tbytes, enquanto o tamanho do espao de
endereamento real de 4 Gbytes
O uso da memria virtual requer uma unidade de
MMU (Memory Management Unit), que contm o
hardware necessrio ao uso da memria virtual
49
Intel 80486 Intel 80486 memria virtual memria virtual
O 80486 suporta os modelos de memria virtual
segmentada e paginada
O endereamento virtual organizado em
segmentos com tamanho entre 1 byte e 4
Gbytes, e cada segmento, por sua vez, pode ser
subdivido em pginas com 4 Kbytes de tamanho
O exemplo a seguir ilustra duas situaes: na
primeira, a utilizao de memria virtual apenas
segmentada; na segunda, com a paginao
ativada, o DAT de segmentao gera um
endereo linear, que por sua vez convertido
pelo DAT de paginao no endereo real
50
Intel 80486 Intel 80486 memria virtual memria virtual
OBS: DAT (Dynamic Address Translator): realiza o
mapeamento entre um endereo fsico real e um
endereo virtual, gerado pelo sistema
51
Intel 80486 Intel 80486 memria virtual memria virtual
Na M.V. segmentada, o DAT considera que os
endereos virtuais so formados por um seletor
de segmento (segment selector) de 14 bits e um
deslocamento (offset) de 32 bits
O seletor de segmento formado pelos 14 bits
mais significativos de um dos registradores de
segmento disponveis
O deslocamento o prprio endereo gerado
pelo programa, e indica a posio do byte onde
ser feito o acesso em relao ao incio do
segmento
52
28/3/2011
14
Intel 80486 Intel 80486 memria memria virtual virtual
segmentada segmentada
53
Intel 80486 Intel 80486 memria virtual memria virtual
segmentada segmentada
Os 13 bits mais significativos do seletor de
segmento so usados para indexar uma tabela
de descritores
A tabela de descritores desempenha o papel da
tabela de mapeamento: cada entrada da tabela
contm um descritor de segmento que, dentre
outras informaes, indica o endereo-base do
segmento na memria principal
O endereo-base da tabela de descritores
armazenada em um registrador especfico, o
DTR (Description Table Register)
54
Intel 80486 Intel 80486 memria memria virtual virtual
segmentada segmentada
55
Intel 80486 Intel 80486 memria memria virtual virtual
segmentada segmentada
O seletor de segmento concatenado ao
endereo em DRT, resultando no endereo de
um descritor de segmento
O deslocamento ento somado ao endereo-
base do segmento indicado pelo descritor de
segmento, resultando no endereo real do byte
referenciado
56
28/3/2011
15
Intel 80486 Intel 80486 memria memria virtual virtual
paginada paginada
Na paginao do 80486, o mapeamento feito
em dois nveis: primeiro, existe uma tabela de
diretrio, que indica os endereos-base das
tabelas no segundo nvel
Cada tabela no segundo nvel chamada de
tabela de pgina, e contm os endereos-base
das pginas na memria principal
57
Intel 80486 Intel 80486 memria memria virtual virtual
paginada paginada
O campo recebido do DAT de segmentao
dividido logicamente em trs campos:
Diretrio: com 10 bits, para acessar uma entrada
na tabela de diretrio;
Tabela: com 10 bits, usado para o acesso a uma
entrada em uma das tabelas de pgina;
Deslocamento: com 12 bits, indica a posio do
byte dentro da pgina
58
Intel 80486 Intel 80486 memria memria virtual virtual
paginada paginada
59