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 de um processador A máquina de von Neumann Datapath Palavras de controlo

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

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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