Академический Документы
Профессиональный Документы
Культура Документы
do hardware
Descodificao de endereos
Ncleo do processador
Microprogramao
Bus de controlo
Unidadede
Bus de dados
dados
Espao de endereamento
0000H
Memria 1
(com 16 bits)
Perifrico 1
Perifrico 2
Perifrico 3
Memria 2
FFFFH
Jos Delgado 2012 Arquitetura de Computadores Introduo arquitetura do hardware 2
Diagrama de blocos
Bus de endereos
RD
WR
Descodificador
Processador Memria Perifrico
de endereos
CS1 CS2
Bus de dados
WR
Descodificador
Processador Memria Perifrico
de endereos
CS2
CS1
Bus de dados
A12..A19 800000
ROM
FFFFFF
endereos em bocados
iguais.
A gerao do chip select dos pequenos dispositivos
geralmente feita por discriminao de um bocado mdio (com
gates ou com outros descodificadores).
Regra geral, no deve haver sobreposies.
Jos Delgado 2012 Arquitetura de Computadores Introduo arquitetura do hardware 8
Descodificao com PROM
Neste caso possvel 000000
programar os endereos RAM 0
em mdulos de 4K. 0FFFFF
100000
RAM 1
A23 1FFFFF
. PROM
. (Programmable
. ROM) Perifricos 500000
500FFF
A12
800000
Em cada palavra da ROM
PROM, s um bit pode FFFFFF
estar a 0.
00H 0 1 2 3 00H 0 1 2 3
04H 4 5 6 7 04H 4 5 6 7
08H 8 9 A B 08H 8 9 A B
0CH 0CH
10H 10H
Big-endian Little-endian
Em ambos os casos, os inteiros representam-se com os
bits de maior peso esquerda.
A diferena est na ordem pela qual os bytes
aparecem.
Jos Delgado 2012 Arquitetura de Computadores Introduo arquitetura do hardware 14
Big-endian vs little-endian
Exemplo 03 0F 0A 07 H 03 0F 0A 07 H
00H 0 1 2 3 00H 0 1 2 3
04H 4 5 6 7 04H 4 5 6 7
08H 8 9 A B 08H 8 9 A B
0CH 0CH
10H 10H
Big-endian Little-endian
No big-endian, o byte de maior peso est no byte com
menor endereo (isto , aparece primeiro quando se vai
incrementando os endereos).
No little-endian, o byte de menor peso que aparece
primeiro.
Jos Delgado 2012 Arquitetura de Computadores Introduo arquitetura do hardware 15
Big-endian vs little-endian
Exemplo 03 0F 0A 07 H 03 0F 0A 07 H
00H 0 1 2 3 00H 0 1 2 3
04H 4 5 6 7 04H 4 5 6 7
08H 8 9 A B 08H 8 9 A B
0CH 0CH
10H 10H
Big-endian Little-endian
Esta distino s importante:
Ao aceder aos bytes individuais de uma palavra;
Ao trocar dados entre computadores.
WR
CS-RAM
31..24 23..16 15..8 7..0
Bus de dados
BS0 BS3
0 A0
0 M[soma] 0
1 M[soma] A
2 AN
1 M[temp] 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
6 A A + M[soma]
4 M[soma] M[soma] + M[temp]
7 M[soma] A
8 A M[temp]
5 M[temp] M[temp] 1 9 AA1
10 M[temp] A
6 PC 3 11 PC 5
7 PC 7 12 PC 12
Operao Exemplo
Escrever uma constante no registo A A0
Armazenar o registo A na memria M[soma] A
Ler uma clula de memria e escrever no
registo A A M[temp]
Salto incondicional PC 7
Salto condicional (A = 0) : PC 12
SEL_A MUX
ESCR_A Registo A
1. operando 2. operando
SEL_ALU ALU
resultado da operao
SEL_A MUX
ESCR_A Registo A
1. operando 2. operando
SEL_ALU ALU
resultado da operao
SEL_A MUX
ESCR_A Registo A
1. operando 2. operando
SEL_ALU ALU
resultado da operao
SEL_A MUX
ESCR_A Registo A
2. operando
SEL_ALU ALU
resultado da operao
SEL_A MUX
ESCR_A Registo A
1. operando 2. operando
SEL_ALU ALU
resultado da operao
constante
WR
PC
SEL_B MUX_B
SEL_A MUX_A
ESCR_A Registo A
1. operando 2. operando
SEL_ALU ALU
resultado da operao
constante
WR
PC
SEL_B MUX_B
SEL_A MUX_A
ESCR_A Registo A
1. operando 2. operando
SEL_ALU ALU
resultado da operao
constante
WR
PC
SEL_B MUX_B
SEL_A MUX_A
ESCR_A Registo A
1. operando 2. operando
SEL_ALU ALU
resultado da operao
ESCR_PC constante
WR
PC
SEL_B MUX_B
SEL_A MUX_A
ESCR_A Registo A
1. operando 2. operando
SEL_ALU ALU
resultado da operao
Memria de Memria
instrues de dados
endereo de
instrues
constante
SEL_PC
WR
PC
SEL_B MUX_B
1
bit de maior peso 8
0 1
8 1. operando 2. operando
...
1
SEL_ALU ALU
resultado da operao
endereo de
instrues constante
SEL_PC
WR
PC
SEL_B MUX_B
1
bit de maior peso 8
0 1 8
... 1. operando 2. operando
1
SEL_ALU ALU
resultado da operao
opcode constante
endereo de ROM de
instrues descodificao
constante
WR
PC
SEL_B MUX_B
1
bit de maior peso 8
8 1. operando 2. operando
0 1 ...
1
SEL_ALU ALU
resultado da operao
opcode constante
endereo de ROM de
instrues descodificao
constante
WR
PC
SEL_B MUX_B
1
bit de maior peso 8
8 1. operando 2. operando
0 1 ...
1
SEL_ALU ALU
resultado da operao
opcode constante
endereo de ROM de
instrues descodificao
constante
WR
PC
SEL_B MUX_B
1
bit de maior peso 8
8 1. operando 2. operando
0 1 ...
1
SEL_ALU ALU
resultado da operao
instrues Cache de
endereos instrues
de instrues endereos
Interface Memria
Ncleo do
de principal
processador dados/instrues
dados memria (dados e
dados Cache de instrues)
WR
endereos dados
RD
de dados
Processador
Registo de
instruo
Interface de memria
MPX Bus end.
endereos
A B dados
Unidade Bus dados
Controlo aritmtica e
lgica (ALU)
Bus contr.
F
CLK dados/instr.
flags MPX
Interface de memria
MPX Bus end.
endereos
A B dados
Unidade Bus dados
Controlo aritmtica e
lgica (ALU)
Bus contr.
F
CLK dados/instr.
flags MPX
Gerador de
NCLEO
constantes REM
PC
MUX
Unidade de
Unidade de excees
Controlo
I-Cache D-Cache
ACESSO MEMRIA
Interface de memria MUX
Portas tristate
RESET
BRQ
INT1
INT2
WAIT
BGT
INT3
INT0
RD
WR
BA
Barramento Barramento
de endereos de dados
A15..A0 D15..D0
3..0
BARR_A M ALU
4
M IND_A U BARR_A 5
U
OP_ALU OP_ALU
7..4
PA_A X
I_SAIDA
X SAIDA_ALU D_ENTR
BARR_B
15..12 11..8
PA_A M BARR_B
Banco de U SAZ, EXCESSO
SEL_A Registos SEL_OP_A X SAN,
DIV0 D_LE D_LE
SAC,
Cache de SAV C_RE D_ESCR D_ESCR
instrues REG_A 4
ENTR_RE 1
4 16
D_BA D_BA
IND_B SAIDA_RE
I_OK 3
SEL_RE
REM
Para a Unidade
SEL_OP_B D_BARR_END
LE_USP LE_USP SEL_RE de Excees
Excees ESCR_USP ESCR_USP
de busca PA_C PA_C M Cache de
BARR_C U ESCR_REM dados
SEL_C X
I_BARR_END ESCR_C
ESCR_RI
IND_C D_SAIDA
M ESCR_C
Para a Unidade 4
U
de Excees SEL_BARR_C Para a Unidade
X
de Excees
4 16 D_OK
I_OK_M REG_C
4 Gerador de
constantes Condies de salto
4 3 (Z, NZ, N, NN, C, GT, LE, etc)
SEL_CONST 0 1
MUX 4 SEL_SALTO
PC +2
Sinais de NUM_EXC
M controlo
U EXC_FIM Relgio
X
Fontes de excees
SALTA_PC
Gerador do prximo
endereo Endereo da
microinstruo
relgio Registo de endereo
de controlo microinstruo
ROM com
micro-
programa
ESCR_RA ESCR_RB
RA RB
SHR_RA DEC_RB
nZ
MICRO_SALTO Z
+1
M ESCR_RA
U ROM de
SHR_RA
X MPC micro-
ESCR_RB
1 cdigo
DEC_RB
MUX2 2
SEL_MICRO_SALTO
Deslocar o registo X
0 1 Z nZ
de N bits
ESCR_RA
SHR_RA
RA RB
ESCR_RB
DEC_RB Micro-
programa
nZ
MICRO_SALTO Z
+1
M ESCR_RA
U ROM de
SHR_RA
X MPC micro-
ESCR_RB
1 cdigo
DEC_RB
MUX2 2
SEL_MICRO_SALTO
0 1 Z nZ
ROM de
mapeamento
Entradas da
unidade de
controlo
Gerador do prximo
endereo Endereo da
microinstruo
ROM com
micro-
programa
3..0
BARR_A M ALU
4
M IND_A U BARR_A 5
U
OP_ALU OP_ALU
7..4
PA_A X
X
I_SAIDA SAIDA_ALU D_ENTR
BARR_B
15..12 11..8
PA_A M BARR_B
Banco de U SAZ, EXCESSO
SEL_A Registos SEL_OP_A X SAN,
DIV0 D_LE D_LE
SAC,
Cache de REG_A SAV C_RE D_ESCR D_ESCR
instrues ENTR_RE
4 1
4 16
D_BA D_BA
IND_B SAIDA_RE
I_OK 3
SEL_RE
REM
Para a Unidade
SEL_OP_B D_BARR_END
LE_USP LE_USP SEL_RE de Excees
Excees ESCR_USP ESCR_USP
de busca PA_C PA_C M Cache de
ESCR_RI BARR_C U ESCR_REM dados
SEL_C X
I_BARR_END ESCR_C
IND_C D_SAIDA
M ESCR_C
Para a Unidade 4
U
de Excees SEL_BARR_C Para a Unidade
X
de Excees
4 16 D_OK
I_OK_M REG_C
4 Gerador de
constantes Condies de salto
4 3 (Z, NZ, N, NN, C, GT, LE, etc)
0 1
SEL_CONST NUM_EXC
MUX 4 SEL_SALTO
PC +2
I_OK_M MICRO_SALTO
m_BSC1 Sinais de
M +1 controlo
U Relgio
X M ROM de
M MP
ROM de U micro- EXC_FIM
U C
Mapeamento m_EXC1 X cdigo
X 3