51
Arquitectura de Computadores LEEC/MEEC (2006/07 – 2º Sem.) Unidade de Processamento Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Unidade de Processamento - Técnico Lisboa - Autenticação · Unidade de Processamento Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Embed Size (px)

Citation preview

Arquitectura de ComputadoresLEEC/MEEC (2006/07 – 2º Sem.)

Unidade de Processamento

Nuno Cavaco Gomes Horta

Universidade Técnica de Lisboa / Instituto Superior Técnico

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

2

Arquitectura de ComputadoresUnidade de Processamento

Sumário

• Introdução• Unidade de Processamento• Unidade de Controlo• Conjunto de Instruções• Unidade Central de Processamento (CPU)• Unidade de Entrada/Saída (I/O)• Unidade de Memória• Perspectiva Evolutiva das Arquitecturas de Computadores

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

3

Arquitectura de ComputadoresUnidade de Processamento

Unidade de Processamento

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

4

Arquitectura de ComputadoresUnidade de Processamento

Sistemas Digitais Complexos: Unidade de Processamento + Unidade de Controlo

Unidade de Processamento (Datapath): Módulo responsável pela execução das operações de processamento de dados.

Unidade de Controlo: Módulo responsável pelo controlo da sequência de operações a executar na Datapath para implementação de uma tarefa.

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

5

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Caracteriza-se pelo conjunto de registos e pelo conjunto de operações realizado sobre os dados armazenados nos registos.

Operações Elementares sobre Registos: Shift (Deslocamento), Clear(Apagar), Load (Carregamento), Incrementar, Decrementar, Somar, Subtrair, etc.

Microoperações (Aritméticas, Lógicas, Deslocamento): Operações elementares aplicadas sobre os dados em registos.

Unidade de Controlo: Fornece os sinais que permitem sequenciar as microoperações de um modo definido, e.g., sequência do conjunto de operações para realizar uma multiplicação.

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

6

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Caracteriza-se pelo conjunto de registos (Unidadede Armazenamento) e peloconjunto de operações (Unidade Funcional) realizado sobre osdados armazenados nesses registos.

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

7

Arquitectura de ComputadoresUnidade de Processamento

Datapath (Exemplo)Unidade de ArmazenamentoUnidade Funcional

ALU: Unidade Logica e AritméticaShifter: Unidade de Deslocamento

(Exemplo de Operação)

Entradas de Controlo (da U. de Controlo)• Selecção de A• Selecção de B• Selecção de G• Selecção de MB• Selecção de MF• Selecção de MD• Selecção do Destino• Carregamento do ResultadoOperação relizada num 1 ciclo de relógio(Cálculo e Carregamento)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

8

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Exemplo de Operação:

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

9

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Unidade de Armazenamento:

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

10

Arquitectura de ComputadoresUnidade de Processamento

Registo: Elemento básico de memória que permite armazenar um conjunto de N bits (dimensão do registo).

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

11

Arquitectura de ComputadoresUnidade de Processamento

Operação de Transferência de Dados entre 2 Registos:

12:1 RRK ←çãoMicrooperaControlo :

CP_H

D0

D1

D2

D3

M1[Load]

C2

1, 2D

K1

Q0

Q1

Q2

Q3

M1[Load]

C2

1, 2D

R1 R2

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

12

Arquitectura de ComputadoresUnidade de Processamento

Simbologia: (Transferências de Registos)

?

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

13

Arquitectura de ComputadoresUnidade de Processamento

Operações de Transferência entre Registos: (Multiplexagem)

20:,10: 211 RRKKRRK ←←

...

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

14

Arquitectura de ComputadoresUnidade de Processamento

Operações de Transferência entre Registos: (BUS)

Multiplexers Dedicados BUS ÚnicoMultiplexers Dedicados: 9 portas lógicas (3x(2AND+1OR)), 6 linhas de entrada.

BUS: 4 portas lógicas (1x(3AND+1OR)), 3 linhas de entrada.

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

15

Arquitectura de ComputadoresUnidade de Processamento

Operações de Transferência entre Registos: (BUS)

BUS Único

Exemplo:

O número de registos fonte em transferências simultâneas condiciona o número mínimo de

BUSES no sistema

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

16

Arquitectura de ComputadoresUnidade de Processamento

Operações de Transferência entre Registos: (BUS Tri-State)

BUS ÚnicoBUS Three-State

?

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

17

Arquitectura de ComputadoresUnidade de Processamento

Operações de Transferência entre Registos: (BUS Endereços e Dados + Memória)

[ ]ARMDRREAD ←:[ ] DRARMWRITE ←:

Exemplos:

[ ] 21: DAMWRITE ←

[ ]21: AMDREAD ←

ABD Control: 01DBSD Control: 10DBDD Control: 11

ABD Control: 10DBSD Control: 11DBDD Control: 01

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

18

Arquitectura de ComputadoresUnidade de Processamento

Datapath (Exemplo)Unidade de ArmazenamentoUnidade Funcional

ALU: Unidade Logica e AritméticaShifter: Unidade de Deslocamento

(Exemplo de Operação)

Entradas de Controlo (da U. de Controlo)• Selecção de A• Selecção de B• Selecção de G• Selecção de MB• Selecção de MF• Selecção de MD• Selecção do Destino• Carregamento do ResultadoOperação relizada num 1 ciclo de relógio(Cálculo e Carregamento)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

19

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Exemplo de Operação:

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

20

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Unidade Funcional:

Unidade Aritmética e Lógica (ALU)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

21

Arquitectura de ComputadoresUnidade de Processamento

Microoperações: (Aritméticas)

?

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

22

Arquitectura de ComputadoresUnidade de Processamento

Microoperações: (Lógicas)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

23

Arquitectura de ComputadoresUnidade de Processamento

Microoperações: (Deslocamento)

?

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

24

Arquitectura de ComputadoresUnidade de Processamento

ALU: Unidade Lógica e Aritmética

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

25

Arquitectura de ComputadoresUnidade de Processamento

ALU: Circuito Aritmético (Exemplo)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

26

Arquitectura de ComputadoresUnidade de Processamento

ALU: Circuito Aritmético

?

in

iii

ii

CC

SBSBY

AX

=+=

=

0

10

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

27

Arquitectura de ComputadoresUnidade de Processamento

ALU: Circuito Aritmético (Exemplo)

SomaSubtracçãoIncrementoDecrementoTransferência...

?

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

28

Arquitectura de ComputadoresUnidade de Processamento

ALU: Circuito Lógico (Exemplo)

ANDORXORNOT

?

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

29

Arquitectura de ComputadoresUnidade de Processamento

ALU: Circuitos Aritmético e Lógico (Exemplo)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

30

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Unidade Funcional:

Unidade de Deslocamento

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

31

Arquitectura de ComputadoresUnidade de Processamento

Unidade de Deslocamento: Circuito (Exemplo1)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

32

Arquitectura de ComputadoresUnidade de Processamento

Unidade de Deslocamento: Circuito (Exemplo2)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

33

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Representação Hierárquica

Diagrama de Blocos:Unidade de ArmazenamentoUnidade Funcional

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

34

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Representação Hierárquica

Diagrama de Blocos:Unidade de ArmazenamentoUnidade Funcional

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

35

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Palavra de Controlo

Palavra de Controlo: Conjunto de bits correspondente às variáveis de controlo que permitem seleccionar as microoperações.

AA – Selecção do Registo ABA – Selecção do Registo BDA – Selecção do R. de DestinoMB – Selecção do Operando BFS – Selecção da Função na U. FuncionalMD – Sel. dos Dados para R. de DestinoRW - Carregamento

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

36

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Codificação da Palavra de Controlo

Nota: o número de palavras de controlo, com significado

no presente caso, não é2^17=131072, mas apenas

61440, justifique!

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

37

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Palavra de Controlo (Exemplo de Microoperações)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

38

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Palavra de Controlo (Exemplo de Microoperações - Codificação)

?

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

39

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Simulação da Execução de uma Sequência de Microoperações (Exemplo)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

40

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Fmax = 1/Tmin

Fmax – Frequência máxima de funcionamento

Tmin – Período mínimo que respeita todos as restrições temporais impostas por cada componente

Fmax = 1/(Tua+Tuf+Tlc)

Tua – Restrição temporal imposta pela UA

Tuf – Restrição temporal imposta pela UF

Tlc – Restrição temporal impostas pela lógica combinatória adicional

Unidade de Processamento:

Temporizações

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

41

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Tua – Restrição temporal imposta pela UA

Não considerando, para já, a geração dos sinais de controlo, a contribuição da UA para a definição do período do sinal de relógio corresponde, por um lado, ao caminho dos dados que inclui o tempo de propagação nos registos e o tempo de propagação nos MUXs e, por outro lado, ao caminho dos sinais de controlo correspondentes à geração do sinal de load. Estes 2 caminhos são concorrentes na determinação do período máximo devendo ser considerada a situação mais desfavorável.

UP: Unidade de Armazenamento

Temporizações

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

42

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de ProcessamentoUP: Unidade Funcional (1) –Unidade Aritmética

Temporizações

Tuf – Restrição temporal imposta pela UF

Neste caso há que considerar a situação mais desfavorável para a propagação do sinal ao nivel dos vários circuitos combinatórios: Unidade Aritmética, Unidade Lógica e Unidade de Deslocamento.

Na Unidade Aritmética há que ter em conta a propagação do Carry ao longo do somador.

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

43

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Na Unidade Lógica há que ter em conta a diferente complexidade das várias portas lógicas envolvidas.

Considerando o bloco U. Aritmetica e Lógica deve, neste caso, ser considerado o maior dos atrasos associados a estes blocos e adicionar o atraso associado ao MUX de interligação.

UP: Unidade Funcional (2) –Unidade Lógica

Temporizações

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

44

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de Processamento

Na U. De Deslocamento há que considerar o tempo de propagação atarvés dos MUXs (1 nível de MUXs)

Em conjugação com Uarit. e Ulog deve ser considerado ainda o tempo de propagação no associado ao MUX de interligação.

UP: Unidade Funcional (2) –Unidade de Deslocamento

Temporizações

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

45

Arquitectura de ComputadoresUnidade de Processamento

Unidade de Processamento

Unidade de Armazenamento

Unidade Funcional

MUX Interligação

Registo MUXSelecção Unidade Aritmética Unidade Lógica Unidade de DeslocamentoDescodificador

......

UP: Projecto no Xilinx (Especificação e Hierarquia)

UP de 4 bitsUA com 4 Registos de 4 bits

Escrita possível em apenas um registo por cada cicloLeitura de qualquer dos registos para obter operando A e B

UF composta por UArit, ULog, UDeslOperações: A, A-B, A+B, A+1, NAND(A,B), NOR(A,B), SR(B), SL(B)Bits de Estado (Flags): C,V,N,Z

MUX de interligaçãoPermitir a selecção de uma constante em alternativa ao conteúdo do registo para o operando B. Permitir a selecção de uma palavra de memória em alternativa àsaída da UF par escrita na UA.

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

46

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de ProcessamentoUP: Projecto no Xilinx (Esquemático de Topo)

UP de 4 bitsUA com 4 Registos de 4 bits

Escrita possível em apenas um registo por cada cicloLeitura de qualquer dos registos para obter operando A e B

UF composta por UArit, ULog, UDeslOperações: A, A-B, A+B, A+1, NAND(A,B), NOR(A,B), SR(B), SL(B)Bits de Estado (Flags): C,V,N,Z

MUX de interligaçãoPermitir a selecção de uma constante em alternativa ao conteúdo do registo para o operando B. Permitir a selecção de uma palavra de memória em alternativa àsaída da UF par escrita na UA.

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

47

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de ProcessamentoUP: Projecto no Xilinx

(UA – Esquemático e Teste)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

48

Arquitectura de ComputadoresUnidade de ProcessamentoMicroprocessadores

Unidade de ProcessamentoUP: Projecto no Xilinx

(UF – Esquemático e Teste)

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

49

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Arquitectura Convencional vs Arquitectura Pipeline

Convencional –Unidades a funcionar sequencialmente.Pipeline – Unidades a funcionar em simultaneo.

OF – Operand FetchEX – ExecuteWB – Write Back

Pipeline oferece maior rapidez mas obriga a hardware adicional,3 estruturas de Registos.

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

50

Arquitectura de ComputadoresUnidade de Processamento

Datapath: Execução de Microoperaçõesna Arquitectura Pipeline

Execução Convencional:7 x 12 = 84 ns

Execução Pipelined:9 x 5 =45 ns !!

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

51

Arquitectura de ComputadoresUnidade de Processamento

BIBLIOGRAFIA

[1] M. Morris Mano, Charles R. Kime, “Logic and Computer Design Fundamentals”, Prentice-Hall International, Inc. (Capítulo 7)