arquitectura de computadores – introdução à arquitectura do hardware1josé delgado © 2011...
TRANSCRIPT
Arquitectura de Computadores – Introdução à arquitectura do hardware 1José Delgado © 2011
Introdução à arquitectura do hardware
• Descodificação de endereços• Núcleo do processador• Microprogramação
Arquitectura de Computadores – Introdução à arquitectura do hardware 2José Delgado © 2011
Espaço de endereçamento
FFFFH
0000H
Esp
aço
de e
nder
eçam
ento
(com
16
bits
)
Memória 1
Periférico 1Periférico 2
Periférico 3
Memória 2
ProcessadorProcessador
Unidade de controlo
UnidadededadosUnidadede
dados
Mem
ória
Mem
ória
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o 1
Per
ifér
ico
2P
erif
éric
o 2
Per
ifér
ico
3P
erif
éric
o 3
Arquitectura de Computadores – Introdução à arquitectura do hardware 3José Delgado © 2011
Diagrama de blocos
Processador Memória PeriféricoDescodificadorde endereços
Bus de dados
CS1 CS2
Bus de endereços
RD
WR
Arquitectura de Computadores – Introdução à arquitectura do hardware 4José Delgado © 2011
Ciclo de bus com chip select
• Os chip selects são normalmente activos a zero
• Os flancos ascendentes dos sinais de RD e WR devem ocorrer “dentro” do período activo do chip select.
Relógio
Bus de
RD
WR
dados
endereços
Bus dedados
endereço
selectChip
Arquitectura de Computadores – Introdução à arquitectura do hardware 5José Delgado © 2011
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éricoDescodificadorde endereços
Bus de dados
CS1CS2
Bus de endereçosRD
WR
Arquitectura de Computadores – Introdução à arquitectura do hardware 6José Delgado © 2011
• Supondo um processador de 8 bits com este mapa de endereços:
Mapa de endereços
ROM
Periféricos
RAM 1
RAM 0
000000
0FFFFF100000
1FFFFF
FFFFFF
800000
500000500FFF
– 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 MB2 MB8 MB
4 KB6 MB – 4 KB
2023
Arquitectura de Computadores – Introdução à arquitectura do hardware 7José Delgado © 2011
Geração dos chip selects
A23
A22A21A20
ROM
Periféricos
RAM 1
RAM 0
000000
0FFFFF100000
1FFFFF
FFFFFF
800000
500000500FFF
Decoder1 para 8
A12..A19
Arquitectura de Computadores – Introdução à arquitectura do hardware 8José Delgado © 2011
A23
A22A21A20
ROM
Periféricos
RAM 1
RAM 0000000
0FFFFF100000
1FFFFF
FFFFFF
800000
500000500FFF
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.
Arquitectura de Computadores – Introdução à arquitectura do hardware 9José Delgado © 2011
Descodificação com PROMNeste caso é possível programar os endereços em módulos de 4K.
ROM
Periféricos
RAM 1
RAM 0
000000
0FFFFF100000
1FFFFF
FFFFFF
800000
500000500FFF
A23. . .
A12
PROM(Programmable
ROM)
Em cada palavra da PROM, só um bit pode estar a 0.
Arquitectura de Computadores – Introdução à arquitectura do hardware 10José Delgado © 2011
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 respectiva a 0.
• Zonas do espaço de endereçamento sem dispositivo têm a palavra respectiva com os bits todos a 1.
ROM
Periféricos
RAM 1
RAM 0000000
0FFFFF100000
1FFFFF
FFFFFF
800000
500000500FFF
A23
. . .
A12 PROM
(Programmable
ROM)
Arquitectura de Computadores – Introdução à arquitectura do hardware 11José Delgado © 2011
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 então tinha de 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 0000000
0FFFFF100000
1FFFFF
FFFFFF
800000
500000500FFF
A23. . .
A12
PROM
(Programmable
ROM)
Arquitectura de Computadores – Introdução à arquitectura do hardware 12José Delgado © 2011
Descodificação mistaIsto permite que a PROM seja 8 vezes mais pequena, com menos palavras repetidas.
ROM
Periféricos
RAM 1
RAM 0
000000
0FFFFF100000
1FFFFF
FFFFFF
800000
500000500FFF
Decoder
1 para 8A23
.
.
.
A15 PROM
(Programmable
ROM)
A12
A14A13
Arquitectura de Computadores – Introdução à arquitectura do hardware 13José Delgado © 2011
Endereçamento de byte e de palavra
• A memória é vista como um vector linear :– de bytes (8 bits), ou– de palavras do processador (N bits)
• Endereçamento de byte:– Permite acesso directo 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çamentode byte (P de 32 bits)
0CH
08H
04H
00H
10H
Endereçamento de palavra
03H
02H
01H
00H
04H
Arquitectura de Computadores – Introdução à arquitectura do hardware 14José Delgado © 2011
“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
BA98
7654
3210
Exemplo 03 0F 0A 07 H 03 0F 0A 07 H
Arquitectura de Computadores – Introdução à arquitectura do hardware 15José Delgado © 2011
“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
BA98
7654
3210
Exemplo 03 0F 0A 07 H 03 0F 0A 07 H
Arquitectura de Computadores – Introdução à arquitectura do hardware 16José Delgado © 2011
“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
BA98
7654
3210
Exemplo 03 0F 0A 07 H 03 0F 0A 07 H
Arquitectura de Computadores – Introdução à arquitectura do hardware 17José Delgado © 2011
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)
Arquitectura de Computadores – Introdução à arquitectura do hardware 18José Delgado © 2011
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çamentode byte (P de 32 bits)
0CH
08H
04H
00H
10H
Endereçamentode palavra
03H
02H
01H
00H
04H
Arquitectura de Computadores – Introdução à arquitectura do hardware 19José Delgado © 2011
Ligação de RAMs em paralelo
RAM
(8 bits)
Descodificador
de endereços
31..24CS-RAM
RD
WR
RAM
(8 bits)
RAM
(8 bits)
RAM
(8 bits)
23..16 15..8 7..0
Bus de endereçosAn..A2 An..A2 An..A2 An..A2
Bus de dados
Processador
(32 bits)
BS3BS0
• BS3..0 (Byte Select) – Indica que bytes são acedidos.
Arquitectura de Computadores – Introdução à arquitectura do hardware 20José Delgado © 2011
Voltemos ao PEPE-8• Objectivo: 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)
Arquitectura de Computadores – Introdução à arquitectura do hardware 21José Delgado © 2011
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 01 M[soma] A
1 M[temp] N 2 A N3 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] – 18 A M[temp]9 A A – 110 M[temp] A
6 PC 3 11 PC 57 PC 7 12 PC 12
Arquitectura de Computadores – Introdução à arquitectura do hardware 22José Delgado © 2011
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
• Esta notação designa-se RTL (Register Transfer Language)
Arquitectura de Computadores – Introdução à arquitectura do hardware 23
Arquitectura de base
José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 24José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 25José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 26José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 27José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 28José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 29José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 30José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 31José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 32José Delgado © 2011
(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 peso0 1
MUX_PC
. . .
8
8
1
1
Arquitectura de Computadores – Introdução à arquitectura do hardware 33José Delgado © 2011
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 peso0 1
MUX_PC
8
. . .8
1
1
Arquitectura de Computadores – Introdução à arquitectura do hardware 34José Delgado © 2011
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 35José Delgado © 2011
Linguagem assemblyCategoria 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
JMPendereço Jump 0BH PC endereço
JZendereço Jump if zero 0CH (A=0) : PC endereço
JNendereço Jump if negative 0DH (A<0) : PC endereço
Diversos NOP No operation 0EH
Arquitectura de Computadores – Introdução à arquitectura do hardware 36José Delgado © 2011
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 37José Delgado © 2011
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 38José Delgado © 2011
Programação em assembly
Programa em RTL Programa em assembly0 A 01 M[soma] A2 A N3 M[temp] A4 (A < 0) : PC 125 (A = 0) : PC 126 A A + M[soma]7 M[soma] A 8 A M[temp] 9 A A – 110 M[temp] A 11 PC 512 PC 12
00H01H02H03H04H05H06H07H08H09H0AH0BH0CH
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
Arquitectura de Computadores – Introdução à arquitectura do hardware 39José Delgado © 2011
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 por cada instrução
Arquitectura de Computadores – Introdução à arquitectura do hardware 40José Delgado © 2011
Controlo
Unidade decontrolo
CLK
Unidade aritmética e
lógica (ALU)
A B
Unidade de processamento
de dadosBanco de registos
MPX
MPX
PC
Registo de instrução
flags
endereços
dados
dados/instr.
Bus dados
Interface de mem
ória
Bus end.
Bus contr.F
Ciclo do processadorDescodifica
Registo de instrução
Controlo
flags
ExecutaBanco de registos
MPX
Unidade aritmética e
lógica (ALU)
Escreve resultadoBanco de registos
Unidade aritmética e
lógica (ALU)
MPX
Busca instrução
Registo de instrução
PC
MPX
Interface de mem
ória
MPX
Busca operandos(registos)Banco de
registos
Busca operandos(memória)Banco de
registos
MPX
Interface de mem
ória
MPX
Arquitectura de Computadores – Introdução à arquitectura do hardware 41José Delgado © 2011
Controlo
Unidade decontrolo
CLK
Unidade aritmética e
lógica (ALU)
A B
Unidade de processamento
de dadosBanco de registos
MPX
MPX
PC
Registo de instrução
flags
endereços
dados
dados/instr.
Bus dados
Interface de 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 + 2R2 M[R3]
ADD R1, R2
RI M[PC]PC PC + 2R1 R1 + R2
MOV [R3], R1
RI M[PC]PC PC + 2M[R3] R1
PCPCPCPCPCPCRI M[PC]PC PC + 2R2 M[R3]
RI M[PC]PC PC + 2R2 M[R3]
RI M[PC]PC PC + 2R2 M[R3]
RI M[PC]PC PC + 2R1 R1 + R2
RI M[PC]PC PC + 2R1 R1 + R2
RI M[PC]PC PC + 2R1 R1 + R2
RI M[PC]PC PC + 2M[R3] R1
RI M[PC]PC PC + 2M[R3] R1
RI M[PC]PC PC + 2M[R3] R1
Arquitectura de Computadores – Introdução à arquitectura do hardware 42José Delgado © 2011
Estrutura do processador
Gerador de constantes
Banco de registos
Unidade de Controlo
I-Cache
Interface de memória
D-Cache
Unidade de excepções
ALU
MUX
REM
MUX
MUX
Portas tristate
Barramentode dadosD15..D0
Barramentode endereços
A15..A0
WR
RD
BR
QB
GT
WA
IT
INT
3IN
T2
INT
1IN
T0
RE
SE
T
BA
NÚ
CL
EO
AC
ES
SO
À M
EM
ÓR
IA
PC
Registo de instruções
Arquitectura de Computadores – Introdução à arquitectura do hardware 43José Delgado © 2011
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
MUX
MUX
MUX
MUX
ALU
REG_A4
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
5 OP_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
MUX
RE
M
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 Unidadede Excepções
Para a Unidadede Excepçõ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
Excepções de busca
Unidade de Excepções
EXC_FIM
Fontes de excepções
NUM_EXC
Para a Unidadede Excepções
MUX
MAP
Unidade de Controlo
ESCR_RI
ESCR_RI
SEL_OP_B
SEL_BARR_C
ESCR_REM
SEL_OP_A
Arquitectura de Computadores – Introdução à arquitectura do hardware 44José Delgado © 2011
Controlo microprogramadoEntradas da unidade
de controlo
Registo de endereçode controlo
Gerador do próximoendereç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 damicroinstrução
Arquitectura de Computadores – Introdução à arquitectura do hardware 45José Delgado © 2011
Controlo e circuito controlado
MPCROM de micro-código
+1
MICRO_SALTO
MUX1
MUX2 2 SEL_MICRO_SALTO
0 1 Z nZ
RA RB
X
ESCR_RASHR_RA
ESCR_RBDEC_RB
N
Z
ESCR_RASHR_RAESCR_RBDEC_RB
nZ
Deslocar o registo X de N bits
Arquitectura de Computadores – Introdução à arquitectura do hardware 46José Delgado © 2011
Micro-programa
MPCROM de micro-código
+1
MICRO_SALTO
MUX1
MUX2 2 SEL_MICRO_SALTO
0 1 Z nZ
RA RB
X
ESCR_RASHR_RA
ESCR_RBDEC_RB
N
Z
ESCR_RASHR_RAESCR_RBDEC_RB
nZ
Arquitectura de Computadores – Introdução à arquitectura do hardware 47José Delgado © 2011
Descodificação da instrução
Entradas da unidade de
controlo
Registo de endereçode controlo
Gerador do próximoendereç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 damicroinstrução
ROM de mapeamento
opcodeRegisto de instrução
Arquitectura de Computadores – Introdução à arquitectura do hardware 48José Delgado © 2011
Unidade de controlo
I_OK_M
I_OK_M
PC
ESCR_RI
+2
MPC
+1
ROM deMapeamento
MICRO_SALTO
SEL_MICRO_SALTO
3
Cache de dados
D_BARR_END
D_ENTR
D_ESCR
D_LE
Banco de Registos
Gerador de constantes
MUX
MUX
MUX
MUX
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
5 OP_ALU
SAIDA_ALU
4
4
4
3..0
7..4
11..
815
..12
SEL_CONST
3
ESCR_C
SAZ,SAN, SAC,SAV
Registo de instruções
MUX
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
MUXm_EXC1
Controlo MPC
SALTA_MPC
EXC
DIV0
EXCESSO
Para a Unidadede Excepções
Para a Unidadede Excepçõ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
Excepções de busca
Unidade de Excepções
EXC_FIM
Fontes de excepções0 1nSAZ
SANnSA0
SAZ
MUX
SA0
NUM_EXC
MAP
Para a Unidadede Excepções
MUX
m_BSC1MUX
ESCR_RI
SEL_BARR_C
SEL_OP_A
SEL_OP_B
Arquitectura de Computadores – Introdução à arquitectura do hardware 49José Delgado © 2011
Microprogramação