microprocessador afonso ferreira miguel. microprocessador princípios: armazenamento; transporte de...
TRANSCRIPT
MicroprocessadoMicroprocessadorr
Afonso Ferreira MiguelAfonso Ferreira Miguel
MicroprocessadorMicroprocessadorPrincípios:Princípios:
•Armazenamento;•Transporte de informação;•Processamento Lógico-Aritmético.
MicroprocessadorMicroprocessador
A
AXBXCXDX
tempA tempB
IR
MA
MD
BU
SEntrada B
Saída Z
Entrada A
IP
uP
MicroprocessadorMicroprocessador RegistradoRegistrado
res;res;
A
AXBXCXDX
tempA tempB
IR
MA
MD
BU
S
Entrada B
Saída Z
Entrada A
IP
uP
MicroprocessadorMicroprocessador RegistradoRegistrado
resres BarramentBarrament
o;o;A
AXBXCXDX
tempA tempB
Entrada B
Saída Z
Entrada A IR
MA
MD
BU
S
IP
uP
MicroprocessadorMicroprocessador RegistradoresRegistradores Barramento;Barramento; Unidade Unidade
Lógico-Lógico-Aritmética.Aritmética.
Observar que são Observar que são os mesmos os mesmos princípios do princípios do ComputadorComputador
A
AXBXCXDX
tempA tempB
Entrada B
Saída Z
Entrada A IR
MA
MD
BU
S
IP
uP
RegistradoresRegistradoresPequenas células Pequenas células
de memória de memória que podem que podem armazenar um armazenar um Byte, Word, Byte, Word, DWord.DWord.
Assim, podemos Assim, podemos armazenar um armazenar um número dentro número dentro de cada um.de cada um.
A
AXBXCXDX
tempA tempB
IR
MA
MD
BU
S
Entrada B
Saída Z
Entrada A
IP
uP
BarramentoBarramentoMeio de Meio de
comunicaçcomunicação entre os ão entre os diversos diversos módulos.módulos.
A
AXBXCXDX
tempA tempB
Entrada B
Saída Z
Entrada A IR
MA
MD
BU
S
IP
uP
Transporte de dadosTransporte de dados Para transportar Para transportar
a informação de a informação de um módulo para um módulo para outro, utilizamos outro, utilizamos o barramento. o barramento.
Representamos Representamos este transporte este transporte pela notação pela notação reversa:reversa:
DestinoDestino OrigemOrigem
A
AXBXCXDX
tempA tempB
Entrada B
Saída Z
Entrada A IR
MA
MD
BU
S
IP
uP
Transporte de dadosTransporte de dadosAssim, se Assim, se
possuirmos o possuirmos o número 10 em número 10 em AX e queremos AX e queremos transferir para transferir para DX, podemos DX, podemos escrever:escrever:
DXDX AXAX
A
AX = 10BXCXDX
tempA tempB
IR
MA
MD
BU
S
Entrada B
Saída Z
Entrada A
DX = 10
IP
uP
ULA – Unidade Lógico-ULA – Unidade Lógico-AritméticaAritmética
Unidade Unidade responsável responsável por realizar por realizar operações operações como Soma como Soma (ADD), (ADD), subtração subtração (SUB), (SUB), incremento incremento (INC), entre (INC), entre outras...outras...
A
AXBXCXDX
tempA tempB
Entrada B
Saída Z
Entrada A IR
MA
MD
BU
S
IP
uP
ULA – Unidade Lógico-ULA – Unidade Lógico-AritméticaAritmética
Esta Esta unidade unidade sempre sempre recebe um recebe um ou dois ou dois parâmetros parâmetros nas nas Entradas A e Entradas A e B,...B,...
Entrada B
Saída Z
Entrada A
Operação
ULA – Unidade Lógico-ULA – Unidade Lógico-AritméticaAritmética
Esta unidade Esta unidade sempre sempre recebe um recebe um ou dois ou dois parâmetros parâmetros nas Entradas nas Entradas A e B, e a A e B, e a operação.operação.
Entrada B
Saída Z
Entrada A
Operação
ULA – Unidade Lógico-ULA – Unidade Lógico-AritméticaAritmética
Como Como resultado resultado destes destes sinais, ela sinais, ela gera uma gera uma resposta resposta em sua em sua saída!saída!
Entrada B
Saída Z
Entrada A
Operação
ULA – Unidade Lógico-ULA – Unidade Lógico-AritméticaAritmética
Exemplo: Ao Exemplo: Ao receber os receber os valores 7 e 5 valores 7 e 5 nos canais A e B nos canais A e B da ULA da ULA respectivamentrespectivamente, e solicitarmos e, e solicitarmos a operação ADD a operação ADD (soma)...(soma)...
Entrada B
Saída Z
Entrada A
Operação
7 5
ADD
ULA – Unidade Lógico-ULA – Unidade Lógico-AritméticaAritmética
Ela Ela responderá responderá em sua saída em sua saída com o valor com o valor da operação!da operação!
Entrada B
Saída Z
Entrada A
Operação
7 5
ADD
12
12
ULA – Unidade Lógico-ULA – Unidade Lógico-AritméticaAritmética
Se alterarmos Se alterarmos apenas a apenas a operação, ela operação, ela responde responde imediatamentimediatamente!e!
7 - 5 = 27 - 5 = 2
Entrada B
Saída Z
Entrada A
Operação
7 5
2
ADDSUB
MicroprocessadorMicroprocessadorComo visto Como visto
anteriormente, o anteriormente, o microprocessadmicroprocessad
or busca as or busca as instruções do instruções do
programa a ser programa a ser executado na executado na
memória.memória.
MicroprocessadorMicroprocessador
A
AXBXCXDX
tempA tempB
IR
MA
MD
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Para isto, ele utiliza dois registradores auxiliares MA e MD.
MemóriaIP
uP
MicroprocessadorMicroprocessador
A
AXBXCXDX
tempA tempB
IR
MA = 3
MD
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Através do MA, o microprocessador informa o endereço a ser acessado na memória.MemóriaIP
uP
MicroprocessadorMicroprocessador
A
AXBXCXDX
tempA tempB
IR
MA = 3
MD
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
O registrador MD tem a função de receber a instrução ou dado da memória apontado por MA.
Memória
JMP 2
IP
uP
MicroprocessadorMicroprocessador Algumas instruções básicas em Algumas instruções básicas em
Assembly:Assembly:InstruçãoInstrução DescriçãoDescriçãoMOV MOV origemorigem, ,
destinodestinodestinodestino
origemorigemADD ADD p1p1, , p2p2 p1p1 p1p1 + + p2p2
JMP JMP endereçoendereço IP IP endereçoendereço
Microprocessador Microprocessador funcionando!funcionando!
A
AXBXCXDX
tempA tempB
IR
MA
MD
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Ao ligarmos o microprocessador, ocorre um sinal de RESET que inicializa o registrador IP com ZERO.MemóriaIP = 0
uP
Microprocessador Microprocessador funcionando!funcionando!
A
AXBXCXDX
tempA tempB
IR
MA
MD
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
O registrador IP (instruction pointer) serve para indicar qual o endereço da próxima instrução na memória.
MemóriaIP = 0
uP
Microprocessador Microprocessador funcionando!funcionando!
Como visto anteriormente, o uP realiza Como visto anteriormente, o uP realiza as seguintes atividades repetidas vezes:as seguintes atividades repetidas vezes: Busca de instrução (FETCH) onde IP é Busca de instrução (FETCH) onde IP é
incrementado;incrementado; Decodificação da instrução;Decodificação da instrução; Execução da instrução.Execução da instrução.
Fetch 0Decod 0
Exec 0
Fetch 1Decod 2
Exec 1...
As vezes ocorrem juntas
Primeira instrução Segunda instrução
FETCH ...FETCH ...
A
AXBXCXDX
tempA tempB
IR
MA
MD
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
MemóriaIP = 0
Para realizar o FETCH, o uP realiza os seguintes passos:
uP
FETCH ...FETCH ...
A
AXBXCXDX
tempA tempB
IR
MA = 0MD
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Para realizar o FETCH, o uP realiza os seguintes passos:
1. MA IP
MemóriaIP = 0
uP
FETCH ...FETCH ...
A
AXBXCXDX
tempA tempB
IR
MA = 0MD=MOV AX,0
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Para realizar o FETCH, o uP realiza os seguintes passos:
1. MA IP2. MD Memória
MemóriaIP = 0
uP
FETCH ...FETCH ...
A
AXBXCXDX
tempA tempB
IR=MOV AX,0
MA = 0MD=MOV AX,0
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Para realizar o FETCH, o uP realiza os seguintes passos:
1. MA IP2. MD Memória3. IR MD
MemóriaIP = 0
uP
INC PC ...INC PC ...
A
AXBXCXDX
tempA tempB
IR=MOV AX,0
MA = 0MD=MOV AX,0
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
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óriaIP = 0
uP
INC PC ...INC PC ...
A
AXBXCXDX
tempA tempB
IR=MOV AX,0
MA = 0MD=MOV AX,0
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Para isto, são realizados os seguintes passos:
1.tempA IP
MemóriaIP = 0
uP
tempA = 00
INC PC ...INC PC ...
A
AXBXCXDX
tempA tempB
IR=MOV AX,0
MA = 0MD=MOV AX,0
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Para isto, são realizados os seguintes passos:
1.tempA IP2.ULA INC
(A)MemóriaIP = 0
uP
tempA = 00
INC A1
INC PC ...INC PC ...
A
AXBXCXDX
tempA tempB
IR=MOV AX,0
MA = 0MD=MOV AX,0
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Para isto, são realizados os seguintes passos:
1.tempA IP2.ULA INC
(A)3.IP ULAMemóriaIP = 0
uP
tempA = 00
INC A1
IP = 1
Execução ...Execução ...
A
AXBXCXDX
tempA tempB
IR=MOV AX,0
MA = 0MD=MOV AX,0
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
Para EXECUTAR a instrução
MOV AX,0o uP apenas
realiza a transferência:
AX 0MemóriaIP = 1
uPAX = 0
Microprocessador Microprocessador funcionando!funcionando!
Como visto anteriormente, após a Como visto anteriormente, após a execução da primeira instrução, um novo execução da primeira instrução, um novo ciclo se inicia...ciclo se inicia...
Fetch 0Decod 0
Exec 0
Fetch 1Decod 2
Exec 1...
Primeira instruçãoSegunda instrução
FETCH (segunda FETCH (segunda instrução) ...instrução) ...
A
AX = 0BXCXDX
tempA tempB
IR
MA = 1MD
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
1. MA IP
MemóriaIP = 1
uP
FETCH (segunda FETCH (segunda instrução) ...instrução) ...
A
AX = 0BXCXDX
tempA tempB
IR
MA = 1MD=MOV BX,1
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
1. MA IP2. MD Memória
MemóriaIP = 1
uP
FETCH (segunda FETCH (segunda instrução) ...instrução) ...
A
AX = 0BXCXDX
tempA tempB
IR=MOV BX,1
MA = 1MD=MOV BX,1
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
1. MA IP2. MD Memória3. IR MD
MemóriaIP = 1
uP
Execução (segunda Execução (segunda instrução)...instrução)...
A
AX = 0BXCXDX
tempA tempB
IR=MOV BX,1
MA = 1MD=MOV BX,1
BU
S
Entrada B
Saída Z
Entrada A
MOV AX,0MOV BX,1ADD AX,BX
JMP 2...
01234
E a segunda instrução é executada...
MOV BX,1
BX 1
MemóriaIP = 1
uPBX = 1