Introdução à Arquitetura de Hardware

Propaganda
Introdução à arquitetura
do hardware
• Descodificação de endereços
• Núcleo do processador
• Microprogramação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
1
Espaço de endereçamento
Processador
Bus de endereços
Unidade de
controlo
Bus de controlo
Bus de dados
Espaço de endereçamento
(com 16 bits)
Unidadede
dados
José Delgado © 2012
Memória 1
0000H
Periférico 1
Periférico 2
Periférico 3
Memória 2
Arquitetura de Computadores – Introdução à arquitetura do hardware
FFFFH
2
Diagrama de blocos
Bus de endereços
RD
WR
Processador
Memória
Periférico
CS1
Descodificador
de endereços
CS2
Bus de dados
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
3
Ciclo de bus com chip select
Relógio
Bus de
endereços
endereço
RD
WR
Chip
select
Bus de
dados
José Delgado © 2012
• Os chip selects
são normalmente
ativos a zero
• Os flancos
ascendentes dos
sinais de RD e
WR devem
ocorrer “dentro”
do período ativo
do chip select.
dados
Arquitetura de Computadores – Introdução à arquitetura do hardware
4
Descodificação de endereços
Bus de endereços
RD
WR
Processador
Memória
Descodificador
de endereços
Periférico
CS2
CS1
Bus de dados
• Cada dispositivo liga aos bits de menor peso do bus de
endereços
• O descodificador de endereços liga aos bits de maior
peso do bus de endereços.
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
5
Mapa de endereços
• Supondo um processador de 8 bits
com este mapa de endereços:
– Quantos bits deve ter no mínimo
o bus de endereços? 24
– Qual o espaço de endereçamento
deste mapa de endereços? 16 MB
– Qual a capacidade da RAM? 2 MB
– Qual a capacidade da ROM? 8 MB
– Qual o espaço reservado para
periféricos? 4 KB
– Qual o espaço livre? 6 MB – 4 KB
– Quantos bits de endereço devem
ligar a cada módulo de RAM? 20
– E à ROM? 23
José Delgado © 2012
000000
RAM 0
0FFFFF
100000
RAM 1
1FFFFF
Periféricos 500000
500FFF
800000
ROM
Arquitetura de Computadores – Introdução à arquitetura do hardware
FFFFFF
6
Geração dos chip selects
000000
RAM 0
0FFFFF
100000
A20
A21
A22
RAM 1
1FFFFF
Decoder
1 para 8
Periféricos 500000
A23
500FFF
800000
A12..A19
ROM
FFFFFF
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
7
Geração dos chip selects
• A geração do chip select
dos “GRANDES”
dispositivos é geralmente
simples e feita à medida.
• A geração do chip select
dos dispositivos “médios”
é geralmente feita com
descodificadores que
dividem o mapa de
endereços em bocados
iguais.
RAM 0
RAM 1
A20
A21
A22
Decoder
000000
0FFFFF
100000
1FFFFF
1 para 8
Periféricos
A23
A12..A19
ROM
500000
500FFF
800000
FFFFFF
• A geração do chip select dos “pequenos” dispositivos é
geralmente feita por discriminação de um bocado médio (com
gates ou com outros descodificadores).
• Regra geral, não deve haver sobreposições.
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
8
Descodificação com PROM
Neste caso é possível
programar os endereços
em módulos de 4K.
000000
RAM 0
0FFFFF
100000
RAM 1
A23
.
.
.
1FFFFF
PROM
(Programmable
ROM)
Periféricos 500000
500FFF
A12
800000
Em cada palavra da
PROM, só um bit pode
estar a 0.
José Delgado © 2012
ROM
Arquitetura de Computadores – Introdução à arquitetura do hardware
FFFFFF
9
Descodificação com PROM
• A PROM permite gerar
tantos chip selects
.
quantos os bits da sua
A12
PROM
.
largura.
(
A23
ROM)
.
• Em cada palavra, só pode
haver um bit a 0.
• Os bits de endereço da PROM ligam aos
bits de maior peso do bus de endereços.
RAM 0
RAM 1
000000
0FFFFF
100000
1FFFFF
Programmable
Periféricos
ROM
500000
500FFF
800000
FFFFFF
• São precisos tantos bits quantos os requeridos pelo
dispositivo de endereçamento mais fino (que ocupará apenas
uma palavra da PROM).
• Os dispositivos “maiores” (RAM, por exemplo) ocuparão
várias palavras da PROM com o bit da saída respetiva a 0.
• Zonas do espaço de endereçamento sem dispositivo têm a
palavra respetiva com os bits todos a 1.
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
10
Descodificação com PROM
• Neste exemplo, cada
palavra da PROM
corresponde a 4 K
.
PROM
A23
endereços do processador
(
.
(para bater certo com o
ROM)
A12
.
requerido pelos periféricos).
• Quantas palavras deve ter a PROM? 4 K
• Qual o conteúdo da PROM?
RAM 0
RAM 1
000000
0FFFFF
100000
1FFFFF
Programmable
ROM
vazio
periféricos
vazio
RAM 1
RAM 0
1111 0111
1111 1111
1111 1011
1111 1111
1111 1101
1111 1110
José Delgado © 2012
800 a FFF
501 a 7FF
500
200 a 4FF
100 a 1FF
000 a 0FF
Periféricos
ROM
500000
500FFF
800000
FFFFFF
• Mudar o mapa de
endereços implica
apenas substituir ou
reprogramar a PROM
(que deve ser
EPROM, EEPROM,
FLASH, etc).
Arquitetura de Computadores – Introdução à arquitetura do hardware
11
Descodificação mista
Isto permite que a PROM seja
8 vezes mais pequena, com
menos palavras repetidas.
000000
RAM 0
0FFFFF
100000
A12
A13
A14
RAM 1
1FFFFF
A15
PROM
(Programmable
Decoder
ROM)
1 para 8
Periféricos 500000
500FFF
.
.
.
A23
800000
ROM
FFFFFF
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
12
Endereçamento de
byte e de palavra
• A memória é vista como um vetor
linear :
– de bytes (8 bits), ou
– de palavras do processador (N bits)
• Endereçamento de byte:
Endereçamento
de palavra
00H
01H
02H
03H
04H
– Permite acesso direto a um byte
Endereçamento
– Complica interface de memória (acesso
de byte (P de 32 bits)
aos bytes que não sejam o de menor
peso de cada palavra)
00H
– Espaço de endereçamento é menor
04H
– PC e SP têm de variar de 2 em 2
(processador de 16 bits) ou de 4 em 4 08H
(processador de 32 bits)
0CH
10H
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
13
“Big-endian” vs “little-endian”
03 0F 0A 07 H
Exemplo
00H
04H
08H
0CH
10H
0 1 2 3
4 5 6 7
8 9 A B
Big-endian
03 0F 0A 07 H
00H
04H
08H
0CH
10H
0 1 2 3
4 5 6 7
8 9 A B
Little-endian
• Em ambos os casos, os inteiros representam-se com os
bits de maior peso à esquerda.
• A diferença está na ordem pela qual os bytes
aparecem.
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
14
“Big-endian” vs “little-endian”
03 0F 0A 07 H
Exemplo
00H
04H
08H
0CH
10H
0 1 2 3
4 5 6 7
8 9 A B
Big-endian
03 0F 0A 07 H
00H
04H
08H
0CH
10H
0 1 2 3
4 5 6 7
8 9 A B
Little-endian
• No big-endian, o byte de maior peso está no byte com
menor endereço (isto é, aparece primeiro quando se vai
incrementando os endereços).
• No little-endian, é o byte de menor peso que aparece
primeiro.
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
15
“Big-endian” vs “little-endian”
03 0F 0A 07 H
Exemplo
00H
04H
08H
0CH
10H
0 1 2 3
4 5 6 7
8 9 A B
03 0F 0A 07 H
00H
04H
08H
0CH
10H
Big-endian
0 1 2 3
4 5 6 7
8 9 A B
Little-endian
• Esta distinção só é importante:
– Ao aceder aos bytes individuais de uma palavra;
– Ao trocar dados entre computadores.
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
16
Acessos à memória flexíveis
Acesso desalinhado
(32 bits, endereço
01H)
Acessos
alinhados em 8, 16
e 32 bits
00H
04H
08H
0CH
10H
0
4
8
C
10
1
5
9
D
11
2
6
A
E
12
3
7
B
F
13
• Alguns processadores suportam:
– Acessos a bytes e a palavras de 16 bits e 32 bits (potências de
8 bits até à largura da palavra do processador). Cada instrução
tem de indicar o tipo de acesso;
– Acessos desalinhados a palavras, em qualquer endereço, o que
pode implicar dois acessos e corte e costura...).
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
17
Bits de menor peso
Endereçamento
de palavra
• As memórias são geralmente feitas
com chips (circuitos integrados) com
largura de 8 bits, por isso são
precisos:
– 2 em paralelo para fazer 16 bits.
– 4 em paralelo para fazer 32 bits.
00H
01H
02H
03H
04H
• Os vários chips em paralelo podem
Endereçamento
ser acedidos simultaneamente em
cada acesso, e é o processador que de byte (P de 32 bits)
depois individualiza os bytes, se
00H
necessário.
04H
• No endereçamento de byte, os bits de
08H
menor peso do bus de endereço não
0CH
ligam à memória:
– num processador de 16 bits, A0
– num processador de 32 bits, A1 e A0
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
10H
18
Ligação de RAMs em paralelo
Bus de endereços
An..A2 An..A2 An..A2
RD An..A2
WR
Processador
RAM
RAM
RAM
RAM
Descodificador
(32 bits)
(8 bits)
(8 bits)
(8 bits)
(8 bits)
de endereços
CS-RAM
31..24
23..16
15..8
7..0
Bus de dados
BS0
BS3
• BS3..0 (Byte Select) – Indica que bytes são acedidos.
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
19
Voltemos ao PEPE-8
• Objetivo: somar um número com todos os inteiros
positivos menores que ele.
soma = N + (N-1) + (N-2) + . . . + 2 + 1
1.
2.
3.
4.
5.
6.
7.
8.
soma  0
temp  N
Se (temp < 0) salta para 8
Se (temp = 0) salta para 8
soma  soma + temp
temp  temp – 1
Salta para 4
Salta para 8
José Delgado © 2012
(inicializa soma com zero)
(inicializa temp com N)
(se temp for negativo, salta para o fim)
(se temp for zero, salta para o fim)
(adiciona temp a soma)
(decrementa temp)
(salta para o passo 4)
(fim do programa)
Arquitetura de Computadores – Introdução à arquitetura do hardware
20
Só uma constante por instrução
•
•
•
Decompôr instruções com várias constantes em instruções mais
simples, cada uma só com uma constante.
Já não há endereços e valores numéricos na mesma instrução).
Usa-se um registo auxiliar (A) para guardar valores entre instruções.
0
1
2
3
A0
M[soma]  A
AN
M[temp]  A
Se (M[temp] < 0) PC  7
4
(A < 0) : PC  12
3
Se (M[temp] = 0) PC  7
4
M[soma]  M[soma] + M[temp]
5
M[temp]  M[temp] – 1
6
7
PC  3
PC  7
5
6
7
8
9
10
11
12
(A = 0) : PC  12
A  A + M[soma]
M[soma]  A
A  M[temp]
AA–1
M[temp]  A
PC  5
PC  12
0
M[soma]  0
1
M[temp]  N
2
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
21
Que operações são necessárias?
• Para correr o programa anterior, o hardware tem de suportar
as seguintes operações:
Operação
Exemplo
Escrever uma constante no registo A
A0
Armazenar o registo A na memória
M[soma]  A
Ler uma célula de memória e escrever no
A  M[temp]
registo A
Operação com o registo A e uma célula
de memória como operandos
A  A + M[soma]
Operação com o registo A e uma
constante como operandos
AA–1
Salto incondicional
PC  7
Salto condicional
(A = 0) : PC  12
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
22
Arquitetura de base
endereço de
instruções
Memória de
instruções
Memória
de dados
endereço de dados
PC
WR
SEL_A
MUX
ESCR_A
Registo A
1.º operando 2.º operando
SEL_ALU
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
23
A  M[endereço]
endereço de
instruções
Memória de
instruções
Memória
de dados
endereço de dados
PC
WR
SEL_A
MUX
ESCR_A
Registo A
1.º operando 2.º operando
SEL_ALU
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
24
M[endereço]  A
endereço de
instruções
Memória de
instruções
Memória
de dados
endereço de dados
PC
WR
SEL_A
MUX
ESCR_A
Registo A
1.º operando 2.º operando
SEL_ALU
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
25
A  A + M[endereço]
endereço de
instruções
Memória de
instruções
Memória
de dados
endereço de dados
PC
WR
SEL_A
MUX
ESCR_A
Registo A
2.º operando
SEL_ALU
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
26
A  0 ???
endereço de
instruções
Memória de
instruções
Memória
de dados
endereço de dados
PC
WR
SEL_A
MUX
ESCR_A
Registo A
1.º operando 2.º operando
SEL_ALU
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
27
A  constante
Memória de
instruções
Memória
de dados
endereço de
instruções
constante
PC
WR
SEL_B
SEL_A
ESCR_A
MUX_B
MUX_A
Registo A
1.º operando
SEL_ALU
2.º operando
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
28
A  A + constante
Memória de
instruções
Memória
de dados
endereço de
instruções
constante
PC
WR
SEL_B
SEL_A
ESCR_A
MUX_B
MUX_A
Registo A
1.º operando
SEL_ALU
2.º operando
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
29
Salto (PC  7) ???
Memória de
instruções
Memória
de dados
endereço de
instruções
constante
PC
WR
SEL_B
SEL_A
ESCR_A
MUX_B
MUX_A
Registo A
1.º operando
SEL_ALU
2.º operando
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
30
PC  constante
Memória de
instruções
Memória
de dados
endereço de
instruções
ESCR_PC
PC
constante
WR
SEL_B
SEL_A
ESCR_A
MUX_B
MUX_A
Registo A
1.º operando
SEL_ALU
2.º operando
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
31
(A = 0) : PC  constante
• SEL_PC (2 bits): não salta, salto incondicional, salto
condicional (se A = 0 e se A < 0)
Memória de
instruções
Memória
de dados
endereço de
instruções
constante
SEL_PC
PC
ESCR_PC
MUX_B
SEL_A
MUX_PC
0 1
WR
SEL_B
MUX_A
Registo A
ESCR_A
1
1
bit de maior peso
...
SEL_ALU
8
8
1.º operando
2.º operando
ALU
resultado da operação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
32
PEPE-8: instruções com todos os
sinais de controlo
Memória de
instruções
endereço de
instruções
Memória
de dados
constante
SEL_PC
WR
SEL_B
PC
ESCR_PC
SEL_A
MUX_PC
MUX_A
Registo A
ESCR_A
1
0 1
MUX_B
bit de maior peso
...
1
8
8
1.º operando
2.º operando
ALU
SEL_ALU
resultado da operação
Unidade de Controlo
Unidade de Dados
Processador (PEPE-8), versão preliminar
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
33
PEPE-8: instruções com opcodes
Memória de
instruções
opcode
endereço de
instruções
Memória
de dados
constante
ROM de
descodificação
PC
SEL_PC
constante
WR
SEL_B
MUX_B
SEL_A
MUX_A
ESCR_PC
ESCR_A
MUX_PC
1
Registo A
bit de maior peso
0 1
...
1
8
8
SEL_ALU
1.º operando
2.º operando
ALU
resultado da operação
Unidade de Controlo
Unidade de Dados
Processador (PEPE-8)
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
34
Linguagem assembly
Instrução
Categoria
Transferência de
dados
Operações
aritméticas
Operações
lógicas
Saltos
Diversos
assembly
Significado
Opcode
Descrição em RTL
LD
valor
Load (imediato)
00H
A  valor
LD
[endereço]
Load (memória)
01H
A  M[endereço]
ST
[endereço]
Store (memória)
02H
M[endereço]  A
ADD
valor
Add (imediato)
03H
A  A + valor
ADD
[endereço]
Add (memória)
04H
A  A + M[endereço]
SUB
valor
Subtract (imediato)
05H
A  A – valor
SUB
[endereço]
Subtract (memória)
06H
A  A – M[endereço]
AND
valor
AND (imediato)
07H
A  A  valor
AND
[endereço]
AND (memória)
08H
A  A  M[endereço]
OR
valor
OR (imediato)
09H
A  A  valor
OR
[endereço]
OR (memória)
0AH
A  A  M[endereço]
JMP
endereço
Jump
0BH
PC  endereço
JZ
endereço
Jump if zero
0CH
(A=0) : PC  endereço
JN
endereço
Jump if negative
0DH
(A<0) : PC  endereço
No operation
0EH
NOP
José Delgado © 2012
Arquitectura de Computadores – Introdução à arquitectura do hardware
35
Instrução LD [endereço]
Memória de
instruções
opcode
endereço de
instruções
Memória
de dados
constante
ROM de
descodificação
PC
SEL_PC
constante
WR
SEL_B
MUX_B
SEL_A
MUX_A
ESCR_PC
ESCR_A
MUX_PC
1
Registo A
bit de maior peso
0 1
...
1
8
8
SEL_ALU
1.º operando
2.º operando
ALU
resultado da operação
Unidade de Controlo
Unidade de Dados
Processador (PEPE-8)
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
36
Instrução ADD valor
Memória de
instruções
opcode
endereço de
instruções
Memória
de dados
constante
ROM de
descodificação
PC
SEL_PC
constante
WR
SEL_B
MUX_B
SEL_A
MUX_A
ESCR_PC
ESCR_A
MUX_PC
1
Registo A
bit de maior peso
0 1
...
1
8
8
SEL_ALU
1.º operando
2.º operando
ALU
resultado da operação
Unidade de Controlo
Unidade de Dados
Processador (PEPE-8)
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
37
Programação em assembly
Programa em RTL
0
1
2
3
4
5
6
7
8
9
10
11
12
A0
M[soma]  A
AN
M[temp]  A
(A < 0) : PC  12
(A = 0) : PC  12
A  A + M[soma]
M[soma]  A
A  M[temp]
AA–1
M[temp]  A
PC  5
PC  12
José Delgado © 2012
Programa em assembly
00H início: LD
01H
ST
02H
LD
03H
ST
04H
JN
05H teste: JZ
06H
ADD
07H
ST
08H
LD
09H
SUB
0AH
ST
0BH
JMP
0CH fim:
JMP
0
[soma]
N
[temp]
fim
fim
[soma]
[soma]
[temp]
1
[temp]
teste
fim
Arquitectura de Computadores – Introdução à arquitectura do hardware
38
Agora um processador de 16 bits
• Já não faz uma instrução por ciclo de relógio
• Tem um ciclo de ações elementares por cada
instrução
instruções
endereços
de instruções
Núcleo do
processador
dados
dados
endereços
de dados
Cache de
instruções
endereços
Interface
de
memória
Cache de
dados
dados/instruções
Memória
principal
(dados e
instruções)
WR
RD
Processador
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
39
Ciclo do processador
Unidade de
controlo
Banco de
registos
PC
MPX
A
endereços
B
dados
Unidade
aritmética e
lógica (ALU)
Controlo
F
CLK
flags
José Delgado © 2012
de dados
dados/instr.
Interface de memória
Registo de
instrução
Busca instrução
Descodifica
Busca
operandos
Unidade
de
Executa
(memória)
(registos)
processamento
Escreve resultado
Bus end.
Bus dados
Bus contr.
MPX
Arquitetura de Computadores – Introdução à arquitetura do hardware
40
MOV R2, [R3]
Exemplo
Unidade de
controlo
R2  R1
R1
M[R3]
M[R3]
 +R1
R2
endereços
B
dados
Unidade
aritmética e
lógica (ALU)
Controlo
F
CLK
flags
dados/instr.
Interface de memória
MPX
A
José Delgado © 2012
MOV [R3], R1
Unidade de
processamento
RI  M[PC]
de 
dados
PC
PC + 2
Banco de
registos
PC
PC
Registo de
instrução
ADD R1, R2
Bus end.
Bus dados
Bus contr.
MPX
Arquitetura de Computadores – Introdução à arquitetura do hardware
41
Estrutura do processador
Registo de
instruções
Banco de
registos
ALU
MUX
PC
REM
MUX
Unidade de
Controlo
NÚCLEO
Gerador de
constantes
Unidade de exceções
D-Cache
Interface de memória
MUX
ACESSO À MEMÓRIA
I-Cache
Portas tristate
WR
RD
BA
WAIT
BGT
BRQ
INT3
INT2
INT1
INT0
RESET
José Delgado © 2012
Barramento Barramento
de endereços
de dados
A15..A0
D15..D0
Arquitetura de Computadores – Introdução à arquitetura do hardware
42
Núcleo do processador
3..0
Registo de
instruções
7..4
Cache de
instruções
IND_A
PA_A
PA_A
SEL_A
4
ENTR_RE
IND_B SAIDA_RE
SEL_RE
LE_USP
Exceções
de busca
ESCR_USP
4
SEL_RE
D_LE
D_BA
M
U
X
ESCR_REM
Cache de
dados
D_OK
Condições de salto
(Z, NZ, N, NN, C, GT, LE, etc)
3
0 1
MUX
+2
4
SEL_SALTO
NUM_EXC
Sinais de
controlo
EXC_FIM
Unidade de
Controlo
D_BARR_END
Para a Unidade
de Exceções
16
Gerador de
constantes
SEL_CONST
MAP
D_BA
D_SAIDA
ESCR_C
SEL_BARR_C
4
M
U
X
D_LE
D_ESCR
D_ESCR
4
4
PC
D_ENTR
Para a Unidade
de Exceções
SEL_OP_B
PA_C
PA_C
4
REG_C
OP_ALU
16
3
IND_C
M
U
X
5
BARR_B
SAZ, EXCESSO
SAN,
DIV0
SAC,
C_RE
SAV
1
ESCR_C
ESCR_RI
Para a Unidade
de Exceções
M
U
X
BARR_C
SEL_C
I_OK_M
SEL_OP_A
LE_USP
ESCR_USP
OP_ALU
REM
I_OK
ALU
BARR_A
SAIDA_ALU
Banco de
Registos
REG_A
I_BARR_END
M
U
X
BARR_A
BARR_B
15..12 11..8
I_SAIDA
4
M
U
X
EXC
ESCR_RI
Relógio
Unidade de
Exceções
Fontes de exceções
SALTA_PC
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
43
Controlo microprogramado
Entradas da unidade
de controlo
Bits de estado (flags)
Gerador do próximo
endereço
relógio
Registo de endereço
de controlo
Endereço da
microinstrução
microinstrução
ROM com
microprograma
Próximo
endereço
Saídas para unidade
de controlo
José Delgado © 2012
Saídas para unidade de
processamento de dados
Arquitetura de Computadores – Introdução à arquitetura do hardware
44
Controlo e circuito controlado
ESCR_RA
SHR_RA
X
N
RA
RB
ESCR_RB
DEC_RB
nZ
MICRO_SALTO
Z
+1
0
M
U
X
1
MPC
MUX2
2
1
Z
José Delgado © 2012
nZ
ROM de
microcódigo
ESCR_RA
SHR_RA
ESCR_RB
DEC_RB
SEL_MICRO_SALTO
Deslocar o registo X
de N bits
Arquitetura de Computadores – Introdução à arquitetura do hardware
45
ESCR_RA
SHR_RA
X
N
RA
RB
ESCR_RB
DEC_RB
nZ
MICRO_SALTO
Z
Microprograma
+1
0
M
U
X
1
MPC
MUX2
2
1
Z
ROM de
microcódigo
ESCR_RA
SHR_RA
ESCR_RB
DEC_RB
SEL_MICRO_SALTO
nZ
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
46
Descodificação da instrução
Registo de instrução
opcode
ROM de
mapeamento
Entradas da
unidade de
controlo
Bits de estado (flags)
Gerador do próximo
endereço
relógio
Registo de endereço
de controlo
Endereço da
microinstrução
microinstrução
ROM com
microprograma
Próximo
endereço
José Delgado © 2012
Saídas para unidade de
controlo
Saídas para unidade de
processamento de dados
Arquitetura de Computadores – Introdução à arquitetura do hardware
47
Unidade de controlo
3..0
Registo de
instruções
7..4
Cache de
instruções
IND_A
M
U
X
BARR_A
PA_A
PA_A
SEL_A
Banco de
Registos
ESCR_USP
ESCR_RI
I_BARR_END
3
PA_C
PA_C
4
Para a Unidade
de Exceções
16
Gerador de
constantes
D_OK
Condições de salto
(Z, NZ, N, NN, C, GT, LE, etc)
3
NUM_EXC
0 1
MUX
+2
4
SEL_SALTO
MICRO_SALTO
I_OK_M
m_BSC1
Sinais de
controlo
+1
M
U
X
ROM de
Mapeamento
Cache de
dados
D_SAIDA
ESCR_C
SEL_CONST
M
U
X
D_BARR_END
ESCR_REM
SEL_BARR_C
4
PC
D_BA
4
4
REG_C
M
U
X
ESCR_C
D_LE
D_ESCR
D_BA
Para a Unidade
de Exceções
SEL_OP_B
SEL_RE
IND_C
M
U
X
Para a Unidade
de Exceções
D_LE
D_ESCR
1
BARR_C
SEL_C
D_ENTR
16
LE_USP
ESCR_USP
OP_ALU
REM
Exceções
de busca
5
BARR_B
SAZ, EXCESSO
SAN,
DIV0
SAC,
C_RE
SAV
4
SEL_RE
LE_USP
M
U
X
SEL_OP_A
ENTR_RE
IND_B SAIDA_RE
I_OK
OP_ALU
SAIDA_ALU
REG_A
4
I_OK_M
ALU
BARR_A
BARR_B
15..12 11..8
I_SAIDA
4
M
U
X
m_EXC1
M
U
X
MP
C
ROM de
microcódigo
Relógio
EXC_FIM
3
Controlo MPC
EXC
ESCR_RI
Unidade de
Exceções
SALTA_MPC
MAP
Unidade de
Controlo
MUX
SEL_MICRO_SALTO
0 1 SA0 SAZ
SAN
nSA0 nSAZ
Fontes de exceções
SALTA_PC
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
48
Microprogramação
José Delgado © 2012
Arquitetura de Computadores – Introdução à arquitetura do hardware
49
Download