1
Aula 2 – Sumário
Transferências entre registos Notação utilizada Utilização de multiplexers, saídas tri-state e
descodificadores
Arquitectura básica de um processador A máquina de von Neumann Datapath Palavras de controlo
2
Transferências entre registos
3
Registos
Operações típicas Inicializar o registo a ‘0’s – Clear (ou Reset) Carregar o registo com novos dados – Load Deslocar os bits dentro do registo – Shift
Registo
Conjunto de flip-flops e portas lógicas que permite o armazenamento e a manipulação de informação
4
Registos
Exemplo de um circuito
Linhas grossas são barramentos ou Bus
Variáveis de controlo:
L1 – Carregamento de R1
C1 – Clear de R1 (activo a low)
L2 – Carregamento de R2
S – Selecção da operação:
0 – soma
1 – subtrai
R2 Load
R1Load
Add/Sub
L1
Din
L2
S
Dout
C1Clear
5
Registos
Exemplos de operaçõesC1 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 0R1 R1 + R2, R2 Din
1 1 1 1R1 R1 – R2, R2 Din
R2 Load
R1Load
Add/Sub
L1
Din
L2
S
Dout
C1Clear
6
Notação utilizada
Designação Significado Exemplos
Letras e números Registos R0; AC; PC; IR
Carregamento R3 R2 + R1; R0 4
Vírgula Operações em simultâneo R1 R0, R2 R3+R1
M[x] Conteúdo da posição de memória x R0 M[1023]; R2 M[R1]
Conteúdo do endereço indicado pelo registo R1
Conteúdo do endereço 1023
Operação Significado Operação Significado
~ Negação (bit-a-bit) + Adição
& AND (bit-a-bit) – Subtracção
| OR (bit-a-bit) Multiplicação
XOR (bit-a-bit) << Deslocamento para a esquerda
7
R1
n
R2
R0MUX
LoadS0
1
C1 C2
n
n
Utilização de multiplexers
Selecção da origem de dados
Variáveis de controlo
C2 C1 Função
0 x ---
1 0 R0 R1
1 1 R0 R2
8
R1
R2
R0
MUX
S1
0
1
2
3
S0
L2
L1
L0 Load
Load
Load
C1 C0
Din
Utilização de multiplexers
Exemplos de operaçõesOperação 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(exemplo: vindos da memória)
9
R1 R2
S
0
1
MUX
R0LoadL0
S0
Add
Utilização de multiplexers
Selecção das operações
L0 S0 Função
0 x ---
1 0 R0 ~R2
1 1 R0 R1 + R2
10
Utilização de saídas tri-state
Princípio de funcionamento
Enable A Y
0 x ---
1 0 0
1 1 1
A Y
EnableA Y
Enable=0
A Y
Enable=1
Y fica isolado de A(alta impedância)
Y fica ligado a A
11
Load
EN
Dados
Reg
Utilização de saídas tri-state
Registos bidireccionais
Nota: existe uma saída tri-state por cada linha de dados
Load
EN
Reg
Dados
Esquema
Registo bidireccional com saídas tri-state
12
Utilização de saídas tri-state
EN – Enable da saída Load – Carregamento
Operação 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 0 0 0 0 1 0
R0 R1, R2 R0 Impossível
Exemplos
Load
EN
R0
Load
EN
R1
Load
EN
R2
Din,
Dout
L0
E0
L1
E1
L2
E2
13
Load
EN
R0
Load
EN
R1
Load
EN
R2
Din, Dout
L0
E0
L1
E1
L2
E2
2/4A0
A1
0
1
2
3
2/4A0
A1
0
1
2
3
RD0
RD1
RF0
RF1
Utilização de descodificadores
Selecção do registo destino
Selecção do registo fonte
14
R0
R1
R2
MUX
S1
0
1
2
3
S0
MUX
S1
0
1
2
3
S0
2/4A0
A1
0
1
2
3
RD0
RD1
Load
Load
Load
FA1
FA0
FB0
FB1
A B
Data in
Data out
UnidadeFuncional
C
Exemplo
Fonte para o Bus A
Fonte para o Bus B
Destino
De ou para a memória
15
Arquitectura básica de um CPU
16
Processador
CPU (Central Processing Unit) É o principal responsável pela actividade de
um computador Executa sequências de instruções definidas
em programas Comunica com os restantes elementos do
sistema através dos seus pinos, ligados a barramentos externos
17
A máquina de von Neumann
John von Neumann (1903-1957) Propôs uma arquitectura de computadores
conhecida posteriormente como Máquina de von Neumann
CPU composto por 3 unidades principais Banco de registos Unidade funcional Unidade de controlo
O CPU executa instruções carregadas em memória – o programa
18
Banco de registos
Unidade decontrolo
Unidadefuncional
Sinais de controlo
Sinais de controlo
Estado (ou flags)
Bus A Bus B
Bus C
CPU
Estrutura básica de um CPU
Guardam vários tipos de dados
Operações aritméticas
Operações lógicas
Operações de deslocamento
Gera os sinais que seleccionam a fonte e o destino dos dados, assim como a operação a realizar
19
Banco de registos
Unidade decontrolo
Unidadefuncional
Sinais de controlo
Sinais de controlo
Estado (ou flags)
Bus A Bus B
Bus C
CPU
Estrutura básica de um CPU
Datapath
20
R0
R1
R2
R3
MUX
S1
0
1
2
3
S0
MUX
S1
0
1
2
3
S0
DecA0
A1
0
1
2
3
LE
Load
Load
Load
Load
BUS C
ALU
Deslocamento
S
0 1
BUS A
BUS B
H
MUXF
E
MFRA0
RA1
RB1
RB0
RC1
RC0
Datapath
Com mais pormenor…
Banco de registos
Unidade funcional
21
Datapath
Em blocos:
Banco de Registos
Unidade Funcional
2 2
RA
LE
BUS C
BUS B
BUS A
2
RBRC F H MF E
22
Datapath
Contudo, o esquema ainda não está 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
23
Banco de Registos
Unidade Funcional
0
1
0
1
2
2 2
RA RB
RC
LE
WR
MBConstanteF H MF E
MD
BUS C
BUS B
BUS A
MemóriaDin
Endereço
R/W
Dout
Comunicação Datapath-Memória
Selecção de dados vindos da memória
Selecção deconstantes
Controlo de escrita/leitura na memória
24
Palavras de controlo
Palavra de controlo ou Micro-instrução Combinação binária correspondente ao conjunto de todos os sinais de controlo
Possível estrutura de uma palavra de controlo (para o esquema anterior):
MDLEMFHFRARBRC
012345678910111213
MB WR
1415
Registos Unidade funcional Mem / Reg / Const
25
Datapath
Memória
Unidadede Controlo
Processador
R/W
End. Din Dout
Execução de uma instrução
Palavra de controlo
Estado
Endereço de instrução
Instrução
Palavra de controlo
Estado
Palavra de controlo
Estado