Transferências entre registos
1
Registos

Registo – Conjunto de flip-flops e portas lógicas
adicionais que permite o armazenamento e
manipulação de informação

Operações típicas

Inicializar o registo com 0’s – Clear (ou Reset)

Carregar o registo com novos dados – Load

Deslocar os bits dentro do registo – Shift
2
Registos

Exemplo de um circuito
Din
Variáveis de controlo:
L1 – carregamento de R1
R2
L2
Load
C1 – Clear de R1 (activo a low)
L2 – Carregamento de R2
S – Selecção da operação:
0 – soma
S
Add/Sub
1 – subtrai
R1
Load
Clear
L1
C1
Linhas grossas são
barramentos ou Bus
Dout
3
Registos

Exemplos de operações
C1
L1
L2
S
Operação
0
x
0
x
R1  0
1
0
0
x
NOP (não faz nada)
1
0
1
x
R2  Din
1
1
0
0
R1  R1 + R2
1
1
0
1
R1  R1 – R2
1
1
1
0
R1  R1 + R2,
R2  Din
1
1
1
1
R1  R1 – R2,
R2  Din
Din
R2
S
Add/Sub
R1
Dout
L2
Load
Load
Clear
L1
C1
4
Notação utilizada
Designação
Significado
Exemplos
Letras (e números)
Registos
R0; AC; PC; IR
Parêntesis
Partes de um registo
R2(1); R2(0...3); AC(8..15)

Carregamento
R3  R2 + R1; R0  4
Vírgula
Operações em simultâneo
R1 R0, R2 R3+R1
M[x]
Posição de memória x
R0 M[1023]; R2 M[R1]
Conteúdo do
endereço 1023
Operação
Significado
Conteúdo do endereço
indicado pelo registo R1
Operação
Significado
~
Negação (bit-a-bit)
+
Soma
&
AND (bit-a-bit)
-
Subtracção
|
OR (bit-a-bit)

Multiplicação

XOR (bit-a-bit)
<<
Deslocamento para a esquerda
5
Utilização de multiplexers

Selecção da origem de dados
Variáveis
de controlo
C1
C2
S
Load
R1
n
0
MUX
n
1
n
R0
C2
C1
Função
0
x
---
1
0
R0  R1
1
1
R0  R2
R2
6
Utilização de multiplexers
R0
C1
L0
Load
R1
Load
R2
L2
Exemplos de operações
Operação
S1
L1
C0
0
1
2
3
S0
MUX
C1 C0 L2
L1
L0
R0  R1
0
1
0
0
1
R0  R1, R2  R1
0
1
1
0
1
R1  Din
1
1
0
1
0
R0  R1, R2  R0
Impossível
Bus de dados
externos
Load
Din
7
Utilização de multiplexers

Selecção das operações
R1
R2
S0
L0
S0
Função
0
x
---
1
0
R0  ~R2
1
1
R0  R1 + R2
MUX
Add
S
0
1
L0
Load
R0
8
Utilização de portas tri-state

Princípio de funcionamento
Enable
Enable = 0
A
A
Y
Y
Enable
A
Y
0
x
alta impedância
1
0
0
1
1
1
Y fica isolado de A
(alta impedância)
Enable = 1
A
Y
Y=A
9
Utilização de portas tri-state

Registos bidireccionais
Reg
Registo bidireccional
com saídas tri-state
EN
Dados
Load
Esquema
Reg
Dados
Nota: existe uma porta tri-state
por cada linha de dados
Load
EN
10
Utilização de portas tri-state

EN – Controlo da saída

Load – Controlo da entrada
R0
L0
E0
Exemplos
Operação
R1
E2 E1 E0 L2
L1
L0
R0  R1
0
1
0
0
0
1
R0  R1, R2  R1
0
1
0
1
0
1
R1  Din
1
0
0
0
1
0
R0  R1, R2  R0
Load
EN
Din, Dout
L1
E1
Load
EN
R2
Impossível
L2
E2
Load
EN
11
Utilização de portas tri-state
2/4
RD0
RD1
A0
A1
R0
0
1
2
3
L0
E0
Selecção do
registo destino
Load
EN
R1
L1
Selecção do
registo fonte
E1
2/4
RF0
RF1
A0
A1
D in, Dout
Load
EN
R2
0
1
2
3
L2
E2
Load
EN
12
Exemplo
Fonte para
o Bus B
FB0
FB1
S1 S0
R0
0
1 MUX
2
3
Load
Destino
R1
2/4
RD0
RD1
A0
A1
Load
0
1
2
3
R2
Load
0
1
2 MUX
3
Data in
S1 S0
Data out
Fonte para
o Bus A
FA1
FA0
A
B
ALU
C
13
Arquitectura básica de um CPU
14
Datapath
Juntando mais alguns componentes...
LE
H
RB0
RB1
S 1 S0
Load
Dec
RC0
RC1
A0
A1
Load
0
1
2
3
Load
Load
R0
0
1
2
3
MUX
BUS B
Deslocamento
R1
R2
0
1
2
3
R3
ALU
MUX
S 1 S0
RA1
RA0
BUS A
0
F
E
S
1
MUX
MF
BUS C
15
Datapath
Em blocos:
BUS C
RA RB
2
F
2
3
H MF Estado
2
4
BUS B
RC
2
LE
Guardar dados
Banco de
Registos
Unidade
Funcional
BUS A
Operações aritméticas
Operações lógicas
16
Datapath

Contudo, este esquema ainda não é operacional

Falta-lhe a possibilidade de comunicar com o exterior

Com uma memória RAM, por exemplo

E a possibilidade de carregar constantes

Como resolver? Uma hipótese será:

Acrescentar mais multiplexers e mais sinais de controlo

Os barramentos A, B e C passam a ter funcionalidades
adicionais:

Bus A – para endereçar a memória

Bus B – para constantes e dados a escrever na memória

Bus C – para dados lidos da memória
17
Comunicação datapath-memória
Selecção de
constantes
Selecção de dados
vindos da memória
BUS C
RA RB
2
Constante
MB
F
2
H MF Estado
3
0
2
4
MD
BUS B
1
RC
2
Banco de
Registos
LE
Unidade
Funcional
BUS A
0
1
MW
Memória
Controlo de
escrita/leitura
na memória
D in
Endereço
Dout
R/W
18
Palavras de controlo

Combinação binária correspondente ao conjunto
dos sinais de controlo
Possível estrutura de uma palavra de controlo
para o esquema anterior:
15
14
RC
13
12
RB
Registos
11
10
RA
9
8
F
7
6
5
H
4
MF
Unidade funcional
3
2
1
0
LE MD MB WR
Mem / Reg /
Const
19
Unidade de controlo
Gera as palavras de controlo
de acordo com as instruções
de um programa
Dados
Registos
Sinais de controlo
Memória
Endereços
Unidade
de Controlo
Sinais de controlo
Unidade
funcional
Flags
Dados
20
Execução de uma instrução
Micro-processador
3. Palavra de
Unidadecontrolo
de Controlo
Datapath
4. Flags
1. Endereço
de instrução
End. D in
R/W
2. Instrução
D
out
Memória
21