Arquitetura de Um Processador III

Propaganda
Arquitetura de Um Processador III
José Costa
Introdução à Arquitetura de Computadores
Departamento de Engenharia Informática (DEI)
Instituto Superior Técnico
2013-11-15
José Costa (DEI/IST)
Arquitetura de Um Processador III
1
Sumário
Micro-Programação
José Costa (DEI/IST)
Arquitetura de Um Processador III
2
Micro-Programação
Carregamento
da Instrução
OPCODE
OPCODE=00...
OPCODE=01...
Carregamento
do Operando
Execução
da Instrução
Execução
da Instrução
(PUSH)
OPCODE=10...
Carregamento
dos Operandos
Execução
da Instrução
Escrita
Resultado
OPCODE=11...
Carregamento
do Operando
Execução
da Instrução
(TEST, CMP)
Teste de
Interrupções
José Costa (DEI/IST)
Arquitetura de Um Processador III
3
Carregamento do Registo de Instrução
IF0:
IF1:
José Costa (DEI/IST)
RI←M[PC]
PC←PC+1, CAR←ROMA[OPCODE]
Arquitetura de Um Processador III
; Carrega RI
; Incrementa PC
4
Carregamento dos Operandos
O registo EA (R12) é usado para guardar o endereço efectivo de
um operando sempre que este operando provenha de memória
(do inglês, effective address).
O valor do primeiro operando deve ser copiado para o registo RD
(R13). Após os cálculos, o resultado da operação deve ser
guardado nesse mesmo registo.
O valor do segundo operando deve ser copiado para o registo SD
(R11), sempre que a instrução use dois operandos.
José Costa (DEI/IST)
Arquitetura de Um Processador III
5
Carregamento dos Operandos
1 Operando
F1R0:
RD←R[IR1], CAR←SBR
; Copia operando
F1RI0:
F1RI1:
EA←R[IR1]
RD←M[EA], CAR←SBR
; Carrega o endereço
; Copia operando
F1IM0:
F1IM1:
RD←M[PC]
PC←PC+1, CAR←SBR
; Carrega o operando
; Incrementa o PC
F1IN0:
F1IN1:
F1IN2:
F1IN3:
EA←M[PC]
PC←PC+1
EA←EA+R[IR1]
RD←M[EA], CAR←SBR
;
;
;
;
José Costa (DEI/IST)
Carrega a constante W
Incrementa PC
Guarda o endereço
Carrega o operando
Arquitetura de Um Processador III
6
Carregamento dos Operandos
2 Operandos (S = 0)
F2R0:
F2R1:
RD←R[IR1]
SD←R[IR2], CAR←SBR
; Copia primeiro operando
; Copia segundo operando
F2RI0:
F2RI1:
F2RI2:
EA←R[IR1]
RD←M[EA]
SD←R[IR2], CAR←SBR
; Guarda endereço
; Copia primeiro operando
; Copia segundo operando
F2IM0:
F2IM1:
F2IM2:
RD←M[PC]
PC←PC+1
SD←R[IR2], CAR←SBR
; Copia primeiro operando
; Incrementa o PC
; Copia segundo operando
F2IN0:
F2IN1:
F2IN2:
F2IN3:
F2IN4:
EA←M[PC]
PC←PC+1
EA←EA+R[IR1]
RD←M[EA]
SD←R[IR2], CAR←SBR
;
;
;
;
;
José Costa (DEI/IST)
Carrega a constante W
Incrementa o PC
Guarda o endereço
Copia primeiro operando
Copia segundo operando
Arquitetura de Um Processador III
7
Carregamento dos Operandos
2 Operandos (S = 1)
F2RS0:
F2RS1:
SD←R[IR1]
RD←R[IR2], CAR←SBR
; Copia segundo operando
; Copia primeiro operando
F2RIS0:
F2RIS1:
F2RIS2:
EA←R[IR1]
SD←M[EA]
RD←R[IR2], CAR←SBR
; End. do seg. operando
; Copia segundo operando
; Copia primeiro operando
F2IMS0:
F2IMS1:
F2IMS2:
SD←M[PC]
PC←PC+1
RD←R[IR2], CAR←SBR
; Copia segundo operando
; Incrementa PC
; Copia primeiro operando
F2INS0:
F2INS1:
F2INS2:
F2INS3:
F2INS4:
EA←M[PC]
PC←PC+1
EA←EA+R[IR1]
SD←M[EA]
RD←R[IR2], CAR←SBR
;
;
;
;
;
José Costa (DEI/IST)
Carrega a constante W
Incrementa PC
Guarda endereço
Copia segundo operando
Copia primeiro operando
Arquitetura de Um Processador III
8
Execução das Instruções
ADD0:
ADD1:
CAR←ROMB[1|S|M], SBR←CAR+1
RD←RD+SD, FM←Fh, CAR←ROMB[0|1|M]
; Copia Ops
; Adição
PUSH0:
PUSH1:
PUSH2:
CAR←ROMB[0|0|M], SBR←CAR+1
M[SP]←RD, SP←SP-1
CAR←IH0
; Copia operando
; Escrita
; Salto para IH
CALL0:
CALL1:
CALL2:
CALL3:
CAR←ROMB[0|0|M], SBR←CAR+1
M[SP]←PC, SP←SP-1
PC←RD
CAR←IH0
;
;
;
;
José Costa (DEI/IST)
Carregar endereço
Push do PC
Carregamento do PC
Salto para IH
Arquitetura de Um Processador III
9
Escrita do Resultado
WBR0:
WBR1:
R[WBR]←RD
CAR←IH0
; Escrita em registo
; Tratamento de interrupções
WBM0:
WBM1:
WBM2:
S: CAR←WBR0
M[EA]←RD
CAR←IH0
; Escrita em registo se S = 1
; Escrita do resultado
; Tratamento de interrupções
José Costa (DEI/IST)
Arquitetura de Um Processador III
10
Teste de Interrupções
IH0:
IH1:
IH2:
IH3:
IH4:
IH5:
IH6:
IH7:
R8←RE, EINT: CAR←IF0
M[SP]←R8, SP←SP-1
M[SP]←PC, SP←SP-1, IAK←1
R9←VECTINT
R8←0200h
R9←R9-R8
PC←M[R9]
RE←R0, CAR←IF0
José Costa (DEI/IST)
; Guarda RE
Arquitetura de Um Processador III
11
Controlo do Circuito de Dados
16
WR
SelAD
SelB
D
4
Banco de
Registos
4
Reset
A
B
16
16
0
MA
1
F
16
0
MB
MUXA
1
WM
MUXB
Memória
W
F
Endereço
11111111111111111111
00000000000000000000
16
Escrita de dados
FM
BUS A
BUS B
16
4
F
LF
16
FIN
F
Estado
ULA
Leitura de dados
5
16
RE
FR
CULA
5
16
4
Registo de Estado
FOUT
4
5
000h
11
16
2
José Costa (DEI/IST)
CONST
12
MD
0
1
2
MUXD
3
4
0000
LI
F
Arquitetura de Um Processador III
RI
12
Unidade de Controlo
LI
REGISTO DE INSTRUÇÃO
OP
M
S
IR1 IR2
1
0
MUX1
4
INT
3
E
RI14
S
M0
4
M1
5
1
MUX6
0
C
9
RI6
SelAD
4
0
RAD
9
F
SBR
LS
MAD
9
MUX4
COND
6
RI15
1
0
9
9
M5
2
0
1
2
3
MUX5
7
N
2
O
3
MCOND
P
4
3
INT
9
F
3
Z
4
4
EINT
RI15
CC
1
2
MRB
WBR
MUXAD
1
c
M2
END B
END A
4
RB
1
z
4
0
0
MUXCOND
1
4
MEMÓRIA
B
MUX3
MEMÓRIA
A
SelB
4
1
2
MUXRB
1
0
0
SR2
6
MUX2
SR1
M2 S
CAR
+1
9
5
NA
3
RI9−7
MEMÓRIA
Controlo
32
MICRO−INSTRUÇÃO
José Costa (DEI/IST)
Arquitetura de Um Processador III
13
Unidade Lógica e Aritmética
S4 S3 S2 S1 S0
00000
00001
00010
00011
00100
00101
00110
00111
01-00
01-01
01-10
01-11
10000
10001
10010
10011
10100
10101
10110
10111
11- - José Costa (DEI/IST)
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
←A+B
←A−B
←A+B +C
←A−B −C
←A−1
←A+1
←A−C
←A+C
←A
←A∧B
←A∨B
←A⊕B
← shr A
← shl A
← shra A
← shla A
← ror A
← rol A
← rorc A
← rolc A
←A
Operação
soma
subtracção
soma com bit transporte
subtracção com transporte negado
decremento
incremento
decremento, se C = 0
incremento, se C = 1
complemento
conjunção
disjunção
disjunção exclusiva
deslocamento lógico à direita
deslocamento lógico à esquerda
deslocamento aritmético à direita
deslocamento aritmético à esquerda
rotação à direita
rotação à esquerda
rotação à direita com transporte
rotação à esquerda com transporte
transferência
Arquitetura de Um Processador III
14
Formato das Micro-Instruções
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
0
M5
S
R
1
S
R
2
I
A
K
FM
S
R
1
S
R
2
L
S
MCOND
CALU
M
A
M
B
M
2
M
R
B
RB
8
7
W
W
M
R
6
5
4
3
2
1
MD
M
A
D
RAD
MD
M
A
D
RAD
0
F
1
M5
José Costa (DEI/IST)
C
C
L
I
L
F
CONST/NA
Arquitetura de Um Processador III
W
R
15
Sumário
Micro-Programação
José Costa (DEI/IST)
Arquitetura de Um Processador III
16
Referências
Arquitectura de Computadores: dos Sistemas Digitais aos
Microprocessadores,
G. Arroz, J. Monteiro, A. Oliveira,
Secções 12.3
José Costa (DEI/IST)
Arquitetura de Um Processador III
17
Próxima Aula
Arquitetura de Um Processador (cont.)
José Costa (DEI/IST)
Arquitetura de Um Processador III
18
Download