Microprocessador
Afonso Ferreira Miguel
Microprocessador
Princípios:
•Armazenamento;
•Transporte de
informação;
•Processamento
Lógico-Aritmético.
Microprocessador
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
MA
MD
Microprocessador
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
MA
MD

Registradores;
Microprocessador
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
MA
MD
Registradores
 Barramento;

Microprocessador
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
MA
MD



Registradores
Barramento;
Unidade
LógicoAritmética.
Observar que são os
mesmos princípios
do Computador
Registradores
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
MA
MD
Pequenas células
de memória que
podem
armazenar um
Byte, Word,
DWord.
Assim, podemos
armazenar um
número dentro
de cada um.
Barramento
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
MA
MD
Meio de
comunicação
entre os
diversos
módulos.
Transporte de dados
BUS
uP
AX

BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP

Para transportar a
informação de um
módulo para outro,
utilizamos o
barramento.
Representamos este
transporte pela
notação reversa:
MA
MD
Destino  Origem
Transporte de dados
BUS
uP
AX = 10
BX
CX
DXDX
= 10
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
Assim, se
possuirmos o
número 10 em
AX e queremos
transferir para
DX, podemos
escrever:
MA
MD
DX  AX
ULA – Unidade Lógico-Aritmética
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
MA
MD

Unidade
responsável por
realizar
operações como
Soma (ADD),
subtração
(SUB),
incremento
(INC), entre
outras...
ULA – Unidade Lógico-Aritmética

Entrada A
Entrada B
Operação
Saída Z
Esta unidade
sempre recebe
um ou dois
parâmetros
nas Entradas
A e B,...
ULA – Unidade Lógico-Aritmética

Entrada A
Entrada B
Operação
Saída Z
Esta unidade
sempre recebe
um ou dois
parâmetros
nas Entradas
A e B, e a
operação.
ULA – Unidade Lógico-Aritmética

Entrada A
Entrada B
Operação
Saída Z
Como
resultado
destes sinais,
ela gera uma
resposta em
sua saída!
ULA – Unidade Lógico-Aritmética
5
7
Entrada A
Entrada B
Operação
ADD
Saída Z

Exemplo: Ao
receber os valores
7 e 5 nos canais A
e B da ULA
respectivamente, e
solicitarmos a
operação ADD
(soma)...
ULA – Unidade Lógico-Aritmética
5
7
Entrada A
Entrada B
Operação
ADD
Saída Z
12

Ela responderá
em sua saída
com o valor da
operação!
ULA – Unidade Lógico-Aritmética
5
7
Entrada A
Entrada B
Operação
ADD
SUB

Se alterarmos
apenas a
operação, ela
responde
imediatamente!
Saída Z
12
2
7-5=2
Microprocessador
Como visto
anteriormente, o
microprocessador
busca as instruções
do programa a ser
executado na
memória.
Microprocessador
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
Para isto, ele
utiliza dois
registradores
auxiliares MA e
MD.
Memória
0
MOV AX,0
MA
1
MOV BX,1
MD
2 ADD AX,BX
3
JMP 2
4
...
Microprocessador
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
MA = 3
MD
Através do MA, o
microprocessador
informa o endereço
a ser acessado na
memória.
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
Microprocessador
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP
O registrador MD
tem a função de
receber a instrução
ou dado da memória
apontado por MA.
Memória
0
MOV AX,0
MA = 3
1
MOV BX,1
JMP
MD 2
2 ADD AX,BX
3
JMP 2
4
...
Microprocessador

Algumas instruções básicas em Assembly:
Instrução
Descrição
MOV origem, destino
ADD p1, p2
JMP endereço
destino  origem
p1  p1 + p2
IP  endereço
Microprocessador funcionando!
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP = 0
Ao ligarmos o
microprocessador,
ocorre um sinal de
RESET que inicializa
o registrador IP com
ZERO.
Memória
0
MOV AX,0
MA
1
MOV BX,1
MD
2 ADD AX,BX
3
JMP 2
4
...
Microprocessador funcionando!
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP = 0
O registrador IP
(instruction pointer) serve
para indicar qual o
endereço da próxima
instrução na memória.
Memória
0
MOV AX,0
MA
1
MOV BX,1
MD
2 ADD AX,BX
3
JMP 2
4
...
Microprocessador funcionando!

Como visto anteriormente, o uP realiza as
seguintes atividades repetidas vezes:
Busca de instrução (FETCH) onde IP é
incrementado;
 Decodificação da instrução;
As vezes
ocorrem juntas
 Execução da instrução.

Fetch 0
...
Fetch 1
Decod 0
Decod 2
Exec 0
Primeira instrução
Exec 1
Segunda instrução
FETCH ...
BUS
uP
AX
BX
Para realizar o FETCH, o
uP realiza os seguintes
passos:
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP = 0
Memória
0
MOV AX,0
MA
1
MOV BX,1
MD
2 ADD AX,BX
3
JMP 2
4
...
FETCH ...
BUS
uP
AX
BX
CX
Para realizar o FETCH, o
uP realiza os seguintes
passos:
1. MA  IP
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP = 0
MA = 0
MD
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
FETCH ...
BUS
uP
AX
BX
CX
DX
tempA
Para realizar o FETCH, o
uP realiza os seguintes
passos:
1. MA  IP
2. MD  Memória
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP = 0
MA = 0
MD=MOV AX,0
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
FETCH ...
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR=MOV AX,0
IP = 0
MA = 0
MD=MOV AX,0
Para realizar o FETCH, o
uP realiza os seguintes
passos:
1. MA  IP
2. MD  Memória
3. IR  MD
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
INC PC ...
BUS
uP
AX
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR=MOV AX,0
IP = 0
MA = 0
MD=MOV AX,0
Após o FETCH de
cada instrução, o IP
precisa ser
incrementado através
da ULA, para
apontar para a
próxima instrução...
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
INC PC ...
BUS
uP
AX
BX
Para isto, são realizados
os seguintes passos:
1. tempA  IP
CX
DX
tempA
tempA
=0
tempB
0
Entrada A
Entrada B
Saída Z
A
IR=MOV AX,0
IP = 0
MA = 0
MD=MOV AX,0
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
INC PC ...
BUS
uP
AX
BX
CX
Para isto, são realizados
os seguintes passos:
1. tempA  IP
2. ULA  INC (A)
DX
tempA
tempA
=0
tempB
0
Entrada A
Entrada B
Saída Z
INC A
1
A
IR=MOV AX,0
IP = 0
MA = 0
MD=MOV AX,0
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
INC PC ...
BUS
uP
AX
BX
CX
DX
tempA
tempA
=0
tempB
0
Entrada A
Entrada B
Saída Z
INC A
Para isto, são realizados
os seguintes passos:
1. tempA  IP
2. ULA  INC (A)
3. IP  ULA
1
A
IR=MOV AX,0
IP = 01
MA = 0
MD=MOV AX,0
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
Execução ...
BUS
uP
AX
AX
=0
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR=MOV AX,0
IP = 1
MA = 0
MD=MOV AX,0
Para EXECUTAR a
instrução
MOV AX,0
o uP apenas realiza a
transferência:
AX  0
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
Microprocessador funcionando!

Como visto anteriormente, após a execução da
primeira instrução, um novo ciclo se inicia...
Fetch 0
...
Fetch 1
Decod 0
Decod 2
Exec 0
Primeira instrução
Exec 1
Segunda instrução
FETCH (segunda instrução) ...
BUS
uP
1. MA  IP
AX = 0
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP = 1
MA = 1
MD
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
FETCH (segunda instrução) ...
BUS
uP
1. MA  IP
2. MD  Memória
AX = 0
BX
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR
IP = 1
MA = 1
MD=MOV BX,1
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
FETCH (segunda instrução) ...
BUS
uP
AX = 0
BX
1. MA  IP
2. MD  Memória
3. IR  MD
CX
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR=MOV BX,1
IP = 1
MA = 1
MD=MOV BX,1
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
Execução (segunda instrução)...
BUS
uP
AX = 0
BXBX
=1
E a segunda instrução é
executada...
MOV BX,1
CX
BX  1
DX
tempA
tempB
Entrada A
Entrada B
Saída Z
A
IR=MOV BX,1
IP = 1
MA = 1
MD=MOV BX,1
Memória
0
MOV AX,0
1
MOV BX,1
2 ADD AX,BX
3
JMP 2
4
...
Download

Microprocessador - Afonso Ferreira Miguel, MSc