introdução à arquitetura do hardware · josé delgado © 2012 arquitetura de computadores –...
TRANSCRIPT
Arquitetura de Computadores – Introdução à arquitetura do hardware 1 José Delgado © 2012
Introdução à arquitetura do hardware
• Descodificação de endereços
• Núcleo do processador
• Microprogramação
Arquitetura de Computadores – Introdução à arquitetura do hardware 2 José Delgado © 2012
Espaço de endereçamento
FFFFH
0000H
Esp
aço
de
end
ereç
amen
to
(co
m 1
6 b
its)
Memória 1
Periférico 1
Periférico 2
Periférico 3
Memória 2
Processador
Unidade de
controlo
Unidadede
dados
Bus de endereços
Bus de dados
Bus de controlo
Arquitetura de Computadores – Introdução à arquitetura do hardware 3 José Delgado © 2012
Diagrama de blocos
Processador Memória Periférico Descodificador
de endereços
Bus de dados
CS1 CS2
Bus de endereços
RD
WR
Arquitetura de Computadores – Introdução à arquitetura do hardware 4 José Delgado © 2012
Ciclo de bus com chip select
• 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.
Relógio
Bus de
RD
WR
dados
endereços
Bus de dados
endereço
select Chip
Arquitetura de Computadores – Introdução à arquitetura do hardware 5 José Delgado © 2012
Descodificação de endereços
• 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.
Processador Memória Periférico Descodificador
de endereços
Bus de dados
CS1
CS2
Bus de endereços
RD
WR
Arquitetura de Computadores – Introdução à arquitetura do hardware 6 José Delgado © 2012
• Supondo um processador de 8 bits com este mapa de endereços:
Mapa de endereços
ROM
Periféricos
RAM 1
RAM 0
000000
0FFFFF
100000
1FFFFF
FFFFFF
800000
500000
500FFF
– Quantos bits deve ter no mínimo o bus de endereços?
– Qual o espaço de endereçamento deste mapa de endereços?
– Qual a capacidade da RAM? – Qual a capacidade da ROM?
– Qual o espaço reservado para periféricos?
– Qual o espaço livre?
– Quantos bits de endereço devem ligar a cada módulo de RAM?
– E à ROM?
24
16 MB
2 MB 8 MB
4 KB
6 MB – 4 KB
20
23
Arquitetura de Computadores – Introdução à arquitetura do hardware 7 José Delgado © 2012
Geração dos chip selects
A23
A22 A21 A20
ROM
Periféricos
RAM 1
RAM 0
000000
0FFFFF
100000
1FFFFF
FFFFFF
800000
500000
500FFF
Decoder
1 para 8
A12..A19
Arquitetura de Computadores – Introdução à arquitetura do hardware 8 José Delgado © 2012
A23
A22 A21 A20
ROM
Periféricos
RAM 1
RAM 0 000000
0FFFFF 100000
1FFFFF
FFFFFF
800000
500000 500FFF
Decoder
1 para 8
A12..A19
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 “pequenos” dispositivos é geralmente feita por discriminação de um bocado médio (com gates ou com outros descodificadores).
• A geração do chip select dos dispositivos “médios” é geralmente feita com descodificadores que dividem o mapa de endereços em bocados iguais.
• Regra geral, não deve haver sobreposições.
Arquitetura de Computadores – Introdução à arquitetura do hardware 9 José Delgado © 2012
Descodificação com PROM
Neste caso é possível programar os endereços em módulos de 4K.
ROM
Periféricos
RAM 1
RAM 0
000000
0FFFFF
100000
1FFFFF
FFFFFF
800000
500000
500FFF
A23
.
.
.
A12
PROM
(Programmable
ROM)
Em cada palavra da PROM, só um bit pode estar a 0.
Arquitetura de Computadores – Introdução à arquitetura do hardware 10 José Delgado © 2012
Descodificação com PROM • A PROM permite gerar
tantos chip selects quantos os bits da sua largura.
• 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.
• 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.
ROM
Periféricos
RAM 1
RAM 0 000000
0FFFFF 100000
1FFFFF
FFFFFF
800000
500000 500FFF
A23
.
.
.
A12 PROM
(Programmable
ROM)
Arquitetura de Computadores – Introdução à arquitetura do hardware 11 José Delgado © 2012
Descodificação com PROM • Neste exemplo, cada
palavra da PROM corresponde a 4 K endereços do processador (para bater certo com o requerido pelos periféricos).
• Quantas palavras deve ter a PROM?
• Mudar o mapa de endereços implica apenas substituir ou reprogramar a PROM (que deve ser EPROM, EEPROM, FLASH, etc).
4 K
• Qual o conteúdo da PROM?
800 a FFF
501 a 7FF
500
200 a 4FF
100 a 1FF
000 a 0FF
1111 0111
1111 1111
1111 1011
1111 1111
1111 1101
1111 1110
ROM
vazio
periféricos
vazio
RAM 1
RAM 0
ROM
Periféricos
RAM 1
RAM 0 000000
0FFFFF 100000
1FFFFF
FFFFFF
800000
500000 500FFF
A23 .
.
. A12
PROM
(Programmable
ROM)
Arquitetura de Computadores – Introdução à arquitetura do hardware 12 José Delgado © 2012
Descodificação mista Isto permite que a PROM seja
8 vezes mais pequena, com
menos palavras repetidas.
ROM
Periféricos
RAM 1
RAM 0
000000
0FFFFF
100000
1FFFFF
FFFFFF
800000
500000
500FFF Decoder
1 para 8 A23
.
.
.
A15 PROM
(Programmable
ROM)
A12
A14 A13
Arquitetura de Computadores – Introdução à arquitetura do hardware 13 José Delgado © 2012
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: – Permite acesso direto a um byte
– Complica interface de memória (acesso aos bytes que não sejam o de menor peso de cada palavra)
– Espaço de endereçamento é menor
– PC e SP têm de variar de 2 em 2 (processador de 16 bits) ou de 4 em 4 (processador de 32 bits)
Endereçamento
de byte (P de 32 bits)
0CH
08H
04H
00H
10H
Endereçamento
de palavra
03H
02H
01H
00H
04H
Arquitetura de Computadores – Introdução à arquitetura do hardware 14 José Delgado © 2012
“Big-endian” vs “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.
Big-endian
0CH
08H
04H
00H
10H
8 9 A B
4 5 6 7
0 1 2 3
Little-endian
0CH
08H
04H
00H
10H
B A 9 8
7 6 5 4
3 2 1 0
Exemplo 03 0F 0A 07 H 03 0F 0A 07 H
Arquitetura de Computadores – Introdução à arquitetura do hardware 15 José Delgado © 2012
“Big-endian” vs “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.
Big-endian
0CH
08H
04H
00H
10H
8 9 A B
4 5 6 7
0 1 2 3
Little-endian
0CH
08H
04H
00H
10H
B A 9 8
7 6 5 4
3 2 1 0
Exemplo 03 0F 0A 07 H 03 0F 0A 07 H
Arquitetura de Computadores – Introdução à arquitetura do hardware 16 José Delgado © 2012
“Big-endian” vs “little-endian”
• Esta distinção só é importante:
– Ao aceder aos bytes individuais de uma palavra;
– Ao trocar dados entre computadores.
Big-endian
0CH
08H
04H
00H
10H
8 9 A B
4 5 6 7
0 1 2 3
Little-endian
0CH
08H
04H
00H
10H
B A 9 8
7 6 5 4
3 2 1 0
Exemplo 03 0F 0A 07 H 03 0F 0A 07 H
Arquitetura de Computadores – Introdução à arquitetura do hardware 17 José Delgado © 2012
Acessos à memória flexíveis
• 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...).
10
0CH
08H
04H
00H
10H 11 12 13
C D E F
8 9 A B
4 5 6 7
0 1 2 3
Acessos
alinhados em 8, 16
e 32 bits
Acesso desalinhado
(32 bits, endereço
01H)
Arquitetura de Computadores – Introdução à arquitetura do hardware 18 José Delgado © 2012
Bits de menor peso • 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.
• Os vários chips em paralelo podem ser acedidos simultaneamente em cada acesso, e é o processador que depois individualiza os bytes, se necessário.
• No endereçamento de byte, os bits de menor peso do bus de endereço não ligam à memória: – num processador de 16 bits, A0
– num processador de 32 bits, A1 e A0
Endereçamento
de byte (P de 32 bits)
0CH
08H
04H
00H
10H
Endereçamento
de palavra
03H
02H
01H
00H
04H
Arquitetura de Computadores – Introdução à arquitetura do hardware 19 José Delgado © 2012
Ligação de RAMs em paralelo
RAM
(8 bits)
Descodificador
de endereços
31..24
CS-RAM
RD
WR
RAM
(8 bits)
RAM
(8 bits)
RAM
(8 bits)
23..16 15..8 7..0
Bus de endereços
An..A2 An..A2 An..A2 An..A2
Bus de dados
Processador
(32 bits)
BS3 BS0
• BS3..0 (Byte Select) – Indica que bytes são acedidos.
Arquitetura de Computadores – Introdução à arquitetura do hardware 20 José Delgado © 2012
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. soma 0 (inicializa soma com zero) 2. temp N (inicializa temp com N)
3. Se (temp < 0) salta para 8 (se temp for negativo, salta para o fim) 4. Se (temp = 0) salta para 8 (se temp for zero, salta para o fim) 5. soma soma + temp (adiciona temp a soma) 6. temp temp – 1 (decrementa temp)
7. Salta para 4 (salta para o passo 4) 8. Salta para 8 (fim do programa)
Arquitetura de Computadores – Introdução à arquitetura do hardware 21 José Delgado © 2012
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 M[soma] 0 0 A 0 1 M[soma] A
1 M[temp] N 2 A N 3 M[temp] A
2 Se (M[temp] < 0) PC 7 4 (A < 0) : PC 12
3 Se (M[temp] = 0) PC 7 5 (A = 0) : PC 12
4 M[soma] M[soma] + M[temp] 6 A A + M[soma] 7 M[soma] A
5 M[temp] M[temp] – 1 8 A M[temp] 9 A A – 1 10 M[temp] A
6 PC 3 11 PC 5
7 PC 7 12 PC 12
Arquitetura de Computadores – Introdução à arquitetura do hardware 22 José Delgado © 2012
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 registo A A M[temp]
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
Arquitetura de Computadores – Introdução à arquitetura do hardware 23
Arquitetura de base
José Delgado © 2012
Registo A
MUX
ALU
Memória
de dados
WR
endereço de dados
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
Memória de
instruções
SEL_ALU
PC
endereço de
instruções
Arquitetura de Computadores – Introdução à arquitetura do hardware 24 José Delgado © 2012
A M[endereço]
Registo A
MUX
ALU
Memória
de dados
WR
endereço de dados
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
Memória de
instruções
SEL_ALU
PC
endereço de
instruções
Arquitetura de Computadores – Introdução à arquitetura do hardware 25 José Delgado © 2012
M[endereço] A
Registo A
MUX
ALU
Memória
de dados
WR
endereço de dados
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
Memória de
instruções
SEL_ALU
PC
endereço de
instruções
Arquitetura de Computadores – Introdução à arquitetura do hardware 26 José Delgado © 2012
A A + M[endereço]
Registo A
MUX
ALU
Memória
de dados
WR
endereço de dados
resultado da operação
2.º operando
SEL_A
ESCR_A
Memória de
instruções
SEL_ALU
PC
endereço de
instruções
Arquitetura de Computadores – Introdução à arquitetura do hardware 27 José Delgado © 2012
A 0 ???
Registo A
MUX
ALU
Memória
de dados
WR
endereço de dados
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
Memória de
instruções
SEL_ALU
PC
endereço de
instruções
Arquitetura de Computadores – Introdução à arquitetura do hardware 28 José Delgado © 2012
A constante
constante
Registo A
MUX_A
ALU
Memória
de dados
WR
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
MUX_B
Memória de
instruções
SEL_B
Arquitetura de Computadores – Introdução à arquitetura do hardware 29 José Delgado © 2012
A A + constante
Registo A
MUX_A
ALU
Memória
de dados
WR
constante
resultado da operação
2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
MUX_B
Memória de
instruções
SEL_B
constante
1.º operando
Arquitetura de Computadores – Introdução à arquitetura do hardware 30 José Delgado © 2012
Salto (PC 7) ???
Registo A
MUX_A
ALU
Memória
de dados
WR
constante
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
MUX_B
Memória de
instruções
SEL_B
Arquitetura de Computadores – Introdução à arquitetura do hardware 31 José Delgado © 2012
PC constante
Registo A
MUX_A
ALU
Memória
de dados
WR
constante
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
MUX_B
Memória de
instruções
SEL_B
ESCR_PC
Arquitetura de Computadores – Introdução à arquitetura do hardware 32 José Delgado © 2012
(A = 0) : PC constante • SEL_PC (2 bits): não salta, salto incondicional, salto
condicional (se A = 0 e se A < 0)
Registo A
MUX_A
ALU
Memória
de dados
WR
constante
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
MUX_B
Memória de
instruções
SEL_B
ESCR_PC
SEL_PC
bit de maior peso
0 1
MUX_PC
. . .
8
8
1
1
Arquitetura de Computadores – Introdução à arquitetura do hardware 33 José Delgado © 2012
PEPE-8: instruções com todos os sinais de controlo
Processador (PEPE-8), versão preliminar
Unidade de Controlo Unidade de Dados
Registo A
MUX_A
ALU
Memória
de dados
WR
constante
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
MUX_B
Memória de
instruções
SEL_B
ESCR_PC
SEL_PC
bit de maior peso
0 1
MUX_PC
8
. . .8
1
1
Arquitetura de Computadores – Introdução à arquitetura do hardware 34 José Delgado © 2012
PEPE-8: instruções com opcodes
Processador (PEPE-8)
Unidade de Controlo Unidade de Dados
Registo A
MUX_A
ALU
Memória
de dados
WR
constante
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
constante
MUX_B
Memória de
instruções
SEL_B
ESCR_PC
SEL_PC
bit de maior peso
0 1
MUX_PC
ROM de
descodificação
opcode
. . .8
1
1
8
Arquitectura de Computadores – Introdução à arquitectura do hardware 35 José Delgado © 2012
Linguagem assembly
Categoria Instrução
assembly Significado Opcode Descrição em RTL
Transferência de dados
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
Operações aritméticas
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]
Operações lógicas
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]
Saltos 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
Diversos NOP No operation 0EH
Arquitetura de Computadores – Introdução à arquitetura do hardware 36 José Delgado © 2012
Instrução LD [endereço]
Processador (PEPE-8)
Unidade de Controlo Unidade de Dados
Registo A
MUX_A
ALU
Memória
de dados
WR
resultado da operação
1.º operando 2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
constante
MUX_B
Memória de
instruções
SEL_B
ESCR_PC
SEL_PC
bit de maior peso
0 1
MUX_PC
ROM de
descodificação
opcode
. . .8
1
1
8
constante
Arquitetura de Computadores – Introdução à arquitetura do hardware 37 José Delgado © 2012
Instrução ADD valor
Processador (PEPE-8)
Unidade de Controlo Unidade de Dados
Registo A
MUX_A
ALU
Memória
de dados
WR
constante
resultado da operação
2.º operando
SEL_A
ESCR_A
SEL_ALU
PC
endereço de
instruções
constante
MUX_B
Memória de
instruções
SEL_B
ESCR_PC
SEL_PC
bit de maior peso
0 1
MUX_PC
ROM de
descodificação
opcode
. . .8
1
1
8
constante
1.º operando
Arquitectura de Computadores – Introdução à arquitectura do hardware 38 José Delgado © 2012
Programação em assembly
Programa em RTL Programa em assembly
0 A 0 1 M[soma] A 2 A N 3 M[temp] A 4 (A < 0) : PC 12 5 (A = 0) : PC 12 6 A A + M[soma] 7 M[soma] A 8 A M[temp] 9 A A – 1 10 M[temp] A 11 PC 5 12 PC 12
00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH
início: LD 0
ST [soma] LD N ST [temp] JN fim teste: JZ fim ADD [soma] ST [soma] LD [temp] SUB 1 ST [temp] JMP teste fim: JMP fim
Arquitetura de Computadores – Introdução à arquitetura do hardware 39 José Delgado © 2012
Agora um processador de 16 bits
Processador
Núcleo do
processador
Cache de
instruções
Cache de
dados
Interface
de
memória
Memória
principal
(dados e
instruções)
instruções
dados
dados
endereços
dados/instruções
endereços
de instruções
endereços
de dados
WR
RD
• Já não faz uma instrução por ciclo de relógio
• Tem um ciclo de ações elementares por cada
instrução
Arquitetura de Computadores – Introdução à arquitetura do hardware 40 José Delgado © 2012
Controlo
Unidade de
controlo
CLK
Unidade
aritmética e
lógica (ALU)
A B
Unidade de
processamento
de dados
Banco de
registos
MPX
MPX
PC
Registo de
instrução
flags
endereços
dados
dados/instr.
Bus dados
Interface d
e mem
ória
Bus end.
Bus contr. F
Ciclo do processador Descodifica
Registo de
instrução
Controlo
flags
Executa Banco de
registos
MPX
Unidade
aritmética e
lógica (ALU)
Escreve resultado Banco de
registos
Unidade
aritmética e
lógica (ALU)
MPX
Busca instrução
Registo de
instrução
PC
MPX
Interface d
e mem
ória
MPX
Busca operandos
(registos) Banco de
registos
Busca operandos
(memória) Banco de
registos
MPX
Interface d
e mem
ória
MPX
Arquitetura de Computadores – Introdução à arquitetura do hardware 41 José Delgado © 2012
Controlo
Unidade de
controlo
CLK
Unidade
aritmética e
lógica (ALU)
A B
Unidade de
processamento
de dados
Banco de
registos
MPX
MPX
PC
Registo de
instrução
flags
endereços
dados
dados/instr.
Bus dados
Interface d
e mem
ória
Bus end.
Bus contr. F
Exemplo MOV R2, [R3]
ADD R1, R2
MOV [R3], R1
MOV R2, [R3]
RI M[PC]
PC PC + 2
R2 M[R3]
ADD R1, R2
RI M[PC]
PC PC + 2
R1 R1 + R2
MOV [R3], R1
RI M[PC]
PC PC + 2
M[R3] R1 PC PC PC
RI M[PC]
PC PC + 2
R2 M[R3]
RI M[PC]
PC PC + 2
R2 M[R3]
RI M[PC]
PC PC + 2
R2 M[R3]
RI M[PC]
PC PC + 2
R1 R1 + R2
RI M[PC]
PC PC + 2
R1 R1 + R2
RI M[PC]
PC PC + 2
R1 R1 + R2
RI M[PC]
PC PC + 2
M[R3] R1
RI M[PC]
PC PC + 2
M[R3] R1
RI M[PC]
PC PC + 2
M[R3] R1
Arquitetura de Computadores – Introdução à arquitetura do hardware 42 José Delgado © 2012
Estrutura do processador
Gerador de
constantes
Banco de
registos
Unidade de
Controlo
I-Cache
Interface de memória
D-Cache
Unidade de exceções
ALU
MUX
REM
MUX
MUX
Portas tristate
Barramento
de dados
D15..D0
Barramento
de endereços
A15..A0
WR
RD
BR
QB
GT
WA
IT
INT
3
INT
2
INT
1
INT
0
RE
SE
T
BA
NÚ
CL
EO
AC
ES
SO
À M
EM
ÓR
IA
PC
Registo de
instruções
Arquitetura de Computadores – Introdução à arquitetura do hardware 43 José Delgado © 2012
Núcleo do processador
I_OK_M
PC +2
Cache de
dados
D_BARR_END
D_ENTR
D_ESCR
D_LE
Banco de
Registos
Gerador de
constantes
M
U
X
M
U
X
M
U
X
M
U
X
ALU
REG_A
4
4
4
REG_C
SEL_C
4
16
SEL_RE
3
1
IND_A
IND_B
SEL_RE
SAIDA_RE
ENTR_RE
BARR_B
BARR_ABARR_A
BARR_B
5OP_ALU
SAIDA_ALU
4
4
4
3..0
7..4
11
..8
15..1
2
SEL_CONST
3
ESCR_C
SAZ,
SAN,
SAC,
SAV
Registo de
instruções
M
U
XR
EM
D_SAIDA
D_LE
D_ESCR
SEL_A
PA_C
PA_A
PA_A
LE_USP
ESCR_USP
LE_USP
ESCR_USP
16
OP_ALU
C_RE
ESCR_C
IND_C
BARR_C
Sinais de
controlo
PA_C
D_BAD_BA
EXC
DIV0
EXCESSO
Para a Unidade
de Exceções
Para a Unidade
de Exceções
MUX
0 1
Condições de salto
(Z, NZ, N, NN, C, GT, LE, etc)
SEL_SALTO4
SALTA_PC
Relógio
D_OK
Cache de
instruções
I_BARR_END
I_SAIDA
I_OK
Exceções
de busca
Unidade de
Exceções
EXC_FIM
Fontes de exceções
NUM_EXC
Para a Unidade
de Exceções
M
U
X
MAP
Unidade de
Controlo
ESCR_RI
ESCR_RI
SEL_OP_B
SEL_BARR_C
ESCR_REM
SEL_OP_A
Arquitetura de Computadores – Introdução à arquitetura do hardware 44 José Delgado © 2012
Controlo microprogramado Entradas da unidade
de controlo
Registo de endereço
de controlo
Gerador do próximo
endereço
Próximo
endereço
Saídas para unidade
de controlo
Saídas para unidade de
processamento de dados
relógio
Bits de estado (flags)
microinstrução
ROM com
micro-
programa
Endereço da
microinstrução
Arquitetura de Computadores – Introdução à arquitetura do hardware 45 José Delgado © 2012
Controlo e circuito controlado
MPC
ROM de
micro-
código
+1
MICRO_SALTO
M
U
X
1
MUX2 2SEL_MICRO_SALTO
0 1 Z nZ
RA RB
X
ESCR_RA
SHR_RA
ESCR_RB
DEC_RB
N
Z
ESCR_RA
SHR_RA
ESCR_RB
DEC_RB
nZ
Deslocar o registo X
de N bits
Arquitetura de Computadores – Introdução à arquitetura do hardware 46 José Delgado © 2012
Micro-
programa
MPC
ROM de
micro-
código
+1
MICRO_SALTO
M
U
X
1
MUX2 2SEL_MICRO_SALTO
0 1 Z nZ
RA RB
X
ESCR_RA
SHR_RA
ESCR_RB
DEC_RB
N
Z
ESCR_RA
SHR_RA
ESCR_RB
DEC_RB
nZ
Arquitetura de Computadores – Introdução à arquitetura do hardware 47 José Delgado © 2012
Descodificação da instrução
Entradas da
unidade de
controlo
Registo de endereço
de controlo
Gerador do próximo
endereço
Próximo
endereço
Saídas para unidade de
controlo
Saídas para unidade de
processamento de dados
relógio
Bits de estado (flags)
microinstrução
ROM com
micro-
programa
Endereço da
microinstrução
ROM de
mapeamento
opcode
Registo de instrução
Arquitetura de Computadores – Introdução à arquitetura do hardware 48 José Delgado © 2012
Unidade de controlo
I_OK_M
I_OK_M
PC
ESCR_RI
+2
MP
C
+1
ROM de
Mapeamento
MICRO_SALTO
SEL_MICRO_SALTO
3
Cache de
dados
D_BARR_END
D_ENTR
D_ESCR
D_LE
Banco de
Registos
Gerador de
constantes
M
U
X
M
U
X
M
U
X
M
U
X
ALU
REG_A
4
4
4
REG_C
SEL_C
4
16
SEL_RE
3
1
IND_A
IND_B
SEL_RE
SAIDA_RE
ENTR_RE
BARR_B
BARR_ABARR_A
BARR_B
5OP_ALU
SAIDA_ALU
4
4
4
3..0
7..4
11
..8
15..1
2
SEL_CONST
3
ESCR_C
SAZ,
SAN,
SAC,
SAV
Registo de
instruções
M
U
X
RE
M
ESCR_REM
D_SAIDA
D_LE
D_ESCR
SEL_A
PA_C
PA_A
PA_A
LE_USP
ESCR_USP
LE_USP
ESCR_USP
16
OP_ALU
C_RE
ESCR_C
IND_C
BARR_C
Sinais de
controlo
PA_C
Unidade de
Controlo
D_BAD_BA
M
U
Xm_EXC1
Controlo MPC
SALTA_MPC
EXC
DIV0
EXCESSO
Para a Unidade
de Exceções
Para a Unidade
de Exceções
MUX
0 1
Condições de salto
(Z, NZ, N, NN, C, GT, LE, etc)
SEL_SALTO4
ROM de
micro-
código
SALTA_PC
Relógio
D_OK
Cache de
instruções
I_BARR_END
I_SAIDA
I_OK
Exceções
de busca
Unidade de
Exceções
EXC_FIM
Fontes de exceções0 1nSAZ
SANnSA0
SAZ
MUX
SA0
NUM_EXC
MAP
Para a Unidade
de Exceções
M
U
X
m_BSC1M
U
X
ESCR_RI
SEL_BARR_C
SEL_OP_A
SEL_OP_B
Arquitetura de Computadores – Introdução à arquitetura do hardware 49 José Delgado © 2012
Microprogramação