1 Aula 2 – Sumário Transferências entre registos Notação utilizada Utilização de...
Transcript of 1 Aula 2 – Sumário Transferências entre registos Notação utilizada Utilização de...
![Page 1: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/1.jpg)
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
![Page 2: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/2.jpg)
2
Transferências entre registos
![Page 3: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/3.jpg)
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
![Page 4: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/4.jpg)
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
![Page 5: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/5.jpg)
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
![Page 6: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/6.jpg)
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
![Page 7: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/7.jpg)
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
![Page 8: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/8.jpg)
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)
![Page 9: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/9.jpg)
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
![Page 10: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/10.jpg)
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
![Page 11: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/11.jpg)
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
![Page 12: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/12.jpg)
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
![Page 13: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/13.jpg)
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
![Page 14: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/14.jpg)
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
![Page 15: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/15.jpg)
15
Arquitectura básica de um CPU
![Page 16: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/16.jpg)
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
![Page 17: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/17.jpg)
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
![Page 18: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/18.jpg)
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
![Page 19: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/19.jpg)
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
![Page 20: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/20.jpg)
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
![Page 21: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/21.jpg)
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
![Page 22: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/22.jpg)
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
![Page 23: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/23.jpg)
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
![Page 24: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/24.jpg)
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
![Page 25: 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.](https://reader030.fdocument.pub/reader030/viewer/2022020923/552fc101497959413d8bd676/html5/thumbnails/25.jpg)
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