Aula 2 – Sumário
 Transferências
 Notação
entre registos
utilizada
 Utilização
de multiplexers, saídas tri-state e
descodificadores
 Arquitectura
A
básica de um processador
máquina de von Neumann
 Datapath
 Palavras
de controlo
1
Transferências entre registos
2
Registos
Registo
Conjunto de flip-flops e portas lógicas que permite o
armazenamento e a manipulação de informação
 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
3
Registos

Din
Exemplo de um circuito
Variáveis de controlo:
R2
L1 – Carregamento de R1
L2
Load
C1 – Clear de R1 (activo a low)
L2 – Carregamento de R2
S – Selecção da operação:
S
Add/Sub
0 – soma
1 – subtrai
Load
L1
Clear
C1
R1
Linhas grossas são
barramentos ou Bus
Dout
4
Registos

Din
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
R2
L2
Load
S
Add/Sub
Load
L1
Clear
C1
R1
Dout
5
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 1023
Operação
Significado
Conteúdo do endereço
indicado pelo registo R1
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
6
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
7
Utilização de multiplexers
R0
C1
L0
Load
R1
Load
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
R2
L2
Load
Bus de dados externos
(exemplo: vindos da memória)
Din
8
Utilização de multiplexers

Selecção das operações
R2
R1
S0
L0
S0
Função
0
x
---
1
0
R0  ~R2
1
1
R0  R1 + R2
MUX
Add
S
0
1
L0
Load
R0
9
Utilização de saídas tri-state

Princípio de funcionamento
Enable=0
Enable
A
Y
Enable
A
Y
0
x
---
1
0
0
1
1
1
A
Y
Y fica isolado de A
(alta impedância)
Enable=1
A
Y
Y fica ligado a A
10
Utilização de saídas tri-state

Registos bidireccionais
Reg
Registo bidireccional
com saídas tri-state
EN
Dados
Load
Esquema
Reg
Nota: existe uma saída tri-state
por cada linha de dados
Dados
Load
EN
11
Utilização de saídas tri-state

EN – Enable da saída

Load – Carregamento
R0
L0
E0
R1
Exemplos
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
Load
EN
L1
E1
Load
EN
Din,
Dout
R2
Impossível
L2
E2
Load
EN
12
Utilização de descodificadores
2/4
RD0
RD1
A0
A1
R0
0
1
2
3
Selecção do
registo destino
L0
E0
Load
EN
R1
L1
Selecção do
registo fonte
E1
2/4
RF0
RF1
A0
A1
Din, Dout
Load
EN
R2
0
1
2
3
L2
E2
Load
EN
13
Exemplo
Fonte para
o Bus B
FB0
FB1
S 1 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
S 1 S0
Data out
Fonte para
o Bus A
De ou para
a memória
FA1
FA0
A
B
Unidade
Funcional
C
14
Arquitectura básica de um CPU
15
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
16
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
17
Estrutura básica de um CPU
Gera os sinais que
seleccionam a fonte e o
destino dos dados,
assim como a operação
a realizar
CPU
Banco de
registos
Guardam vários tipos
de dados
Bus A
Operações aritméticas
Operações lógicas
Operações de deslocamento
Sinais de controlo
Bus B
Unidade de
controlo
Sinais de controlo
Unidade
funcional
Estado (ou flags)
Bus C
18
Estrutura básica de um CPU
CPU
Datapath
Banco de
registos
Bus A
Sinais de controlo
Bus B
Unidade de
controlo
Sinais de controlo
Unidade
funcional
Estado (ou flags)
Bus C
19
Datapath
 Com
mais pormenor…
Unidade
funcional
H
RB0
RB1
LE
S1 S0
Load
Dec
RC0
RC1
A0
A1
Load
0
1
2
3
Load
Load
R0
0
1
2
3
MUX
Deslocamento
R1
R2
0
1
2
3
R3
ALU
MUX
S1 S0
Banco de
registos
BUS B
RA1
RA0
BUS A
0
F
E
MF
S
1
MUX
BUS C
20
Datapath
Em blocos:
RC
2
LE
RA RB
2
F
H MF
E
2
BUS B
Banco de
Registos
Unidade
Funcional
BUS A
BUS C
21
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
22
Comunicação Datapath-Memória
Selecção de
constantes
Selecção de dados
vindos da memória
BUS C
RA RB
2
Constante
F
MB
MD
BUS B
1
RC
E
2
0
2
H MF
Banco de
Registos
LE
Unidade
Funcional
BUS A
0
1
WR
Memória
Controlo de
escrita/leitura
na memória
Din
Endereço
Dout
R/W
23
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):
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
24
Execução de uma instrução
Processador
Palavra de
Unidadecontrolo
de Controlo
Datapath
Estado
Endereço de
instrução
Instrução
End. Din
R/W
Dout
Memória
25
Download

em formato ppt