Arquitectura de Computadores - Autenticação · Pipeline SUMÁRIO 3. MEEC - Arquitectura de...

78
Arquitectura de Computadores MEEC (2014/15 2º Sem.) Unidade de Controlo Prof. Nuno Horta

Transcript of Arquitectura de Computadores - Autenticação · Pipeline SUMÁRIO 3. MEEC - Arquitectura de...

Arquitectura de Computadores MEEC (2014/15 – 2º Sem.)

Unidade de Controlo

Prof. Nuno Horta

MEEC - Arquitectura de Computadores 2014-2015

Introdução

Unidade de Processamento

Unidade de Controlo

Arquitectura do 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

PLANEAMENTO

2

MEEC - Arquitectura de Computadores 2014-2015

Unidade de Controlo Introdução

Formato das Instruções

Unidade de Controlo Ciclo Único

Unidade de Controlo de Ciclo Múltiplo

Pipeline

SUMÁRIO

3

MEEC - Arquitectura de Computadores 2014-2015

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

Unidade de Controlo:

Programável – Aquisição e execução de instruções armazenadas em memória RAM ou ROM. Localização das instruções através do registo PC (Program Counter). Interpretação das instruções e ativação da sequência de microoperações a executar pela Datapath.

Não-Programável – As operações a serem executadas assim como a sua sequência baseiam-se nas entradas da U. de Controlo e na avaliação dos bits de estado. Inexistência de procedimento de aquisição de instruções e de recurso a um registo do tipo PC (Program Counter).

UNIDADE DE CONTROLO

4

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

5

Computador de Ciclo Único:

Computador de Ciclo Único:

Computador ou Sistema Digital

Programável que implementa a

Aquisição e Execução de uma Instrução

num Ciclo Único de relógio.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

6

Computador de Ciclo Múltiplo:

Computador de Ciclo Múltiplo: (1) utilização de

memória única para instruções e dados; (2)

implementação e execução de instruções complexas.

MEEC - Arquitectura de Computadores 2014-2015

Unidade de Controlo Introdução

Formato das Instruções

Unidade de Controlo Ciclo Único

Unidade de Controlo de Ciclo Múltiplo

Pipeline

SUMÁRIO

7

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

8

Elementos de Armazenamento de Informação:

Elementos de Armazenamento de

Informação considerados nos exemplos em

estudo:

PC (Program Counter): Armazena o

endereço da próxima instrução a ser lida de

memória ou aponta para a posição de

memória da próxima instrução.

Register File: Conjunto de registos da

Unidade de Processamento (8 de 16 bits)

Instruction Memory: Memória onde se

encontra armazenado o programa (conjunto

de instruções).

Data Memory: Memória onde se encontram

armazenados os dados utilizados durante o

processamento.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

9

Formato de Instruções:

Considerando 7 bits para especificar o código da operação e 9 bits para especificar registos, dados ou endereços. (Unidade de Armazenamento da Datapath com 8 Registos de R0 a R7)

Endereçamento por Registo

Endereçamento Imediato

Endereçamento Relativo

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

10

Conjunto de Instruções Elementares:

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

Formato de Instruções:

11

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

12

Formato de Instruções:

Nota: Assumindo conteúdo de R4 igual a 70 e de R5 igual a 80

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

13

Formato de Instruções:

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

14

Formato de Instruções:

MEEC - Arquitectura de Computadores 2014-2015

Unidade de Controlo Introdução

Formato das Instruções

Unidade de Controlo Ciclo Único

Unidade de Controlo de Ciclo Múltiplo

Pipeline

SUMÁRIO

15

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

16

Computador de Ciclo Único:

Computador de Ciclo Único:

Computador ou Sistema Digital

Programável que implementa a

Aquisição e Execução de uma Instrução

num Ciclo Único de relógio.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

17

Computador de Ciclo Único: Instrução e Palavra de Controlo para a UP

Palavra de Controlo

Instrução

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

18

Computador de Ciclo Único: Descodificador de Instruções

U. Processamento, Memória de Dados e U. Controlo

Palavra de Controlo para a UP

Instrução

MEEC - Arquitectura de Computadores 2014-2015

19

UNIDADE DE CONTROLO Computador de Ciclo Único: Descodificador de Instruções

Tipos de Instrução

tendo por base o uso de

diferentes recursos de

hardware:

A palavra de controlo inclui sinais de

controlo para a U. de Processamento,

Memória de Dados e U. de Controlo.

Sinais para a U. de Controlo:

PL: “1” – Carregamento do PC; “0” –

Incremento do PC.

JB: “1” – Salto Incondicional; “0” – Salto

Condicional.

BC: Seleciona os bits de estado (Z ou N),

ou os seus complementos, que devem ser

avaliados no caso de saltos condicionais.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO Computador de Ciclo Único: Descodificador de Instruções

Tipos de Instrução

tendo por base o uso de

diferentes recursos de

hardware:

20

Sinais para a U. de Controlo:

FS: PL (Saltos Condicionais e

Incondicionais) Impõem bits de FS a 0, para

passar o registo A pela ALU e avaliar os bits

de estado (Z e N). Contudo, uma solução

mais realista seria armazenar os bits de

estado, “FLAGS,” num registo, “Registo de

Estado”, e efetuar a análise das flags sempre

em relação à instrução anterior.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

21

Computador de Ciclo Único: Exemplo de Instruções

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

22

LD R1,R3 Carrega R1 com o conteúdo da posição de

memória apontada por R3 (R1=2).

ADI R1,R1,3 Soma 3 a R1 (R1=5).

NOT R1,R1 Complementa R1

INC R1,R1 Incrementa R1 (R1=-5)

INC R3,R3 Incrementa R3

LD R2,R3 Carrega R2 com o conteúdo da posição de

memória apontada por R3 (R2=83).

ADD R2,R2,R1 Soma R2 com R1, R2=83-5=78

INC R3,R3 Incrementa R3

ST R3,R2 Armazena o valor de R2 na posição de memória

apontada por R3.

Computador de Ciclo Único: Exemplo de Programa

Pretende-se efetuar a seguinte operação aritmética:

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

23

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

24

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

25

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

26

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

27

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

28

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

29

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

30

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

31

Computador de Ciclo Único: Exemplo de Programa

LD R1,R3 0010000 001 011 000

ADI R1,R1,3 1000010 001 001 011

NOT R1,R1 0001011 001 001 000

INC R1,R1 0000001 001 001 000

INC R3,R3 0000001 011 011 000

LD R2,R3 0010000 010 011 000

ADD R2,R2,R1 0000010 010 010 001

INC R3,R3 0000001 011 011 000

ST R3,R2 0100000 000 011 010

M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

32

Computador de Ciclo Único: Controlo de Salto

A palavra de controlo inclui sinais de

controlo para a U. de Processamento,

Memória de Dados e U. de Controlo.

Sinais para a U. de Controlo:

PL: “1” – Carregamento do PC; “0” –

Incremento do PC.

JB: “1” – Salto Incondicional; “0” – Salto

Condicional.

BC: Seleciona os bits de estado (Z ou N),

ou os seus complementos, que devem ser

avaliados no caso de saltos condicionais.

Palavra de Controlo

Condição de Salto

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

33

Computador de Ciclo Único: Controlo de Salto

Condição de Salto

Cond = PL JB + BCout

Lógica para Condição de Salto

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

34

Computador de Ciclo Único: Controlo de Salto

Condição de Salto

Lógica para Atualização do PC

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

35

Computador de Ciclo Único: Exemplo de Execução de Instruções de Salto

BRZ R3, 16 1100000 010 011 000

JMP R4 1110000 000 100 000

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

36

Computador de Ciclo Único: Exemplo de Execução de Instruções de Salto

BRZ R3, 16 1100000 010 011 000

JMP R4 1110000 000 100 000

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

37

Computador de Ciclo Único: Desempenho

UC

UP

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

38

Limitações:

• Limitado na execução de instruções complexas que correspondem à execução de

várias microoperações.

• Impossibilita utilização de memória única para instruções e dados, e.g., a execução

de uma instrução com acesso a dados em memória obrigaria a 2 ciclos de acesso à

memória.

• Limite em termos da frequência máxima do sinal de relógio devido aos longos tempos

de propagação.

Computador de Ciclo Único: Desempenho

MEEC - Arquitectura de Computadores 2014-2015

Computador de Ciclo Único:

UNIDADE DE CONTROLO

39

Diagrama de blocos de um Computador de Ciclo Único com Controlo Hardwired.

MEEC - Arquitectura de Computadores 2014-2015

Computador de Ciclo Único:

UNIDADE DE CONTROLO

40

Em alternativa à implementação hardwired poder-se-ia utilizar uma memória para realizar a função de descodificação de instruções. Oferecendo esta alternativa maior flexibilidade na alteração das instruções interpretadas pela máquina.

Memória para

Descodificação das Instruções

MEEC - Arquitectura de Computadores 2014-2015

Computador de Ciclo Único:

UNIDADE DE CONTROLO

41

Memória para

Descodificação das Instruções

A função anteriormente realizada pelo descodificador é agora realizada por uma memória de 2^3 palavras de 4 bits! Endereço fornecido pelos bits OP15, OP14 e OP9, e palavras compostas por FS0, RW, MW e PL.

Linhas de Endereço

Saídas da Memória

MEEC - Arquitectura de Computadores 2014-2015

Computador de Ciclo Único:

UNIDADE DE CONTROLO

42

Memória para

Descodificação das Instruções

Linhas de Endereço

Saídas da Memória

Linhas de Endereço Saídas da Memória

MEEC - Arquitectura de Computadores 2014-2015

Unidade de Controlo Introdução

Formato das Instruções

Unidade de Controlo Ciclo Único

Unidade de Controlo de Ciclo Múltiplo

Pipeline

SUMÁRIO

43

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

44

Computador de Ciclo Múltiplo:

Computador de Ciclo Múltiplo: (1) utilização de

memória única para instruções e dados; (2)

implementação e execução de instruções complexas.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

45

Computador de Ciclo Múltiplo: Formato das Microinstruções

U. Processamento

Sinais para a U. de Processamento:

MM: Sinal de controlo para o MUX de seleção da entidade que

fornece o endereço de memória (PC para acesso a instrução e BUS A

para acesso a dados).

TD,TA,TB: Bits de controlo que são concatenados com os bits de

especificação/endereçamento dos registos para permitir armazenar,

num registo adicional R8, dados gerados num ciclo e necessários em

ciclos posteriores da execução da mesma instrução.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

46

Computador de Ciclo Múltiplo: Palavra de Controlo para a U. de Processamento

U. Processamento

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

47 Arquitectura de Computadores

2006/2007

Computador de Ciclo Múltiplo: Formato das Microinstruções

Sinais para a U. de Controlo:

IL: Load Enable do registo IR (Instruction Register), utilizado para

armazenar a instrução durante os ciclos da sua execução.

PI: Increment Enable do PC (Program Counter)

PL: Program Counter Load

MC: Sinal de controlo do MUX de seleção da entidade que fornece o

endereço da memória de controlo (bits NA da Microinstrução ou bits

de IR ) a armazenar no CAR (Control Address Register)

MS: Sinal de controlo do MUX de seleção entre carregar ou

incrementar o registo CAR.

NA: Endereço Seguinte

U. Controlo

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

48

Computador de Ciclo Múltiplo: Informação de Controlo para a U. de Controlo

U. Controlo

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

49

Computador de Ciclo Múltiplo: Aquisição e Execução de Instruções

Processamento de Instruções: consiste em 2

passos, aquisição e execução.

Aquisição (Fetch) - Estado IF (Instruction

Fetch): (1) o PC contém o endereço da

instrução na memória; (2) o endereço é aplicado

à memória conjuntamente com a activação do

sinal de leitura; (3) o conteúdo é armazenado,

no fim do ciclo de relógio, no registo IR; (4) o

PC é incrementado.

Execução (Execution) – Estado EX0: (1)

Preenchimento do CAR, tendo por base os 7

bits mais significativos de IR; (2) Permite

aceder a uma das 128 posições da memória de

controlo.

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

50

Computador de Ciclo Múltiplo: Microprograma para Aquisição e Execução de Instruções

Notação Simbólica

Codificação Binária

MEEC - Arquitectura de Computadores 2014-2015

51

Computador de Ciclo Múltiplo: Microprograma para Aquisição e Execução de Instruções

Notação Simbólica

Códificação Binária

UNIDADE DE CONTROLO

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

52

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h R2 <- 0010h PC <- 0000h CAR <- IF ou seja 192d M[R1] <- 6d e a execução da seguinte sequência de instruções: LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3 Qual a função realizada? Quantos os ciclos de relógio? M[R1+R2] <- -M[R1] em 15 ciclos de relógio

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

53

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- xxxxh

PC <- 0000h

CAR <- 192

e a execução: Ciclo 0 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

54

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- xxxxh

PC <- 0001h

CAR <- 193

e a execução: Ciclo 1 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

LD

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

55

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- xxxxh

PC <- 0001h

CAR <- 001

e a execução: Ciclo 2 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

LD

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

56

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- 0006h

PC <- 0001h

CAR <- 192

e a execução: Ciclo 3 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

LD

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

57

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- 0006h

PC <- 0002h

CAR <- 193

e a execução: Ciclo 4 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

NOT

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

58

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- 0006h

PC <- 0002h

CAR <- 004

e a execução: Ciclo 5 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

NOT

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

59

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFF9h

PC <- 0002h

CAR <- 192

e a execução: Ciclo 6 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

NOT

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

60

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFF9h

PC <- 0003h

CAR <- 193

e a execução: Ciclo 7 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

INC

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

61

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFF9h

PC <- 0003h

CAR <- 003

e a execução: Ciclo 8 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

INC

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

62

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFFAh (-6)

PC <- 0003h

CAR <- 192

e a execução: Ciclo 9 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

INC

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

63

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFFAh (-6)

PC <- 0004h

CAR <- 193

e a execução: Ciclo 10 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

ADD

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

64

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFFAh (-6)

PC <- 0004h

CAR <- 005

e a execução: Ciclo 11 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

ADD

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

65

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD10h

R2 <- 0010h

R3 <- FFFAh (-6)

PC <- 0004h

CAR <- 192

e a execução: Ciclo 12 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

ADD

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

66

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFFAh (-6)

PC <- 0005h

CAR <- 193

e a execução: Ciclo 13 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

ST

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

67

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFFAh (-6)

PC <- 0005h

CAR <- 002

e a execução: Ciclo 14 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

ST

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

68

Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h

R2 <- 0010h

R3 <- FFFAh (-6)

PC <- 0005h

CAR <- 192

e a execução: Ciclo 15 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3

ST

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

69

Computador de Ciclo Múltiplo: Execução de Instruções de Endereçamento Indirecto

Processamento da Instrução: LRI (Load Register Indirect)

Execução em 4 ciclos de relógio (IF, EX0, LRI0 e LRI1), a mesma operação

com recurso à instrução LD corresponde a 6 ciclos de relógio (IF, EX0, LD, IF,

EX0, LD).

LRI corresponde, claramente, a uma instrução que não pode ser executada

numa arquitectura de ciclo único.

SARMMDRR

Exemplo:

LRI R1, R2

21 RMMR

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

70

Computador de Ciclo Múltiplo: Execução de Instruções de Endereçamento Indirecto

LRI R1, R2

OPCODE DR SA SB

LRI - 0000110 001 010 000

END NXT MS MC IL PI PL TD TA TB MB FS MD RW MM MW

IF --- CNT --- LDI INP NLP --- --- --- --- --- --- NW PC NW

192 - 11000000 00000000 000 0 1 1 0 0 0 0 0 00000 0 0 1 0

EX0 --- NXT OPC NLI NLP NLP --- --- --- --- --- --- NW --- NW

193 - 11000001 00000000 001 1 0 0 0 0 0 0 0 00000 0 0 0 0

LRI0 LRI1 NXT NXA NLI NLP NLP R8 SA --- --- --- DATA WR MA NW

006 - 00000110 10000110 001 0 0 0 0 1 0 0 0 00000 1 1 0 0

LRI1 IF NXT NXA NLI NLP NLP DR R8 --- --- --- DATA WR MA NW

134 - 10000110 00000000 001 0 0 0 0 0 1 0 0 00000 1 1 0 0

21 RMMR

MEEC - Arquitectura de Computadores 2014-2015

?0000111=IR

SARR 8

0:2IRzfDRR

?00:2 =IRzf

88 RsrR

1- DRRDRR

?01=-DRR

10

SRM1

SRM2

SRM3

SRM4

00000111

10000111

10001000

10001001

1

0

0

1

8RDRR

SRM5IF

10001010

DRSA =

EX0 11000001 IF 11000000

PCMIR 1+ PCPC

UNIDADE DE CONTROLO

71

Computador de Ciclo Múltiplo: Execução de Instruções em Ciclo Múltiplo

Processamento da Instrução: SRM (Shift Right

Multiple)

Deslocamento para a direita SA o número de

vezes indicado nos últimos 3 bits do código da

operação. Execução em 5+2s ciclos de relógio, a

utilização de uma instrução de shift simples

conduziria 3s ciclos de relógio.

5 ciclos (IF, EX0, SRM1, SRM2, SRM5)

2s ciclos (SRM3+SRM4)

SRM R1, 3

11 RsrsrsrR

Exemplo:

OPCODE DR SA SB

SRM - 0000111 001 001 011

MEEC - Arquitectura de Computadores 2014-2015

72

Computador de Ciclo Múltiplo: Exemplo: Desenvolvimento de Microprograma

?0000111=IR

SARR 8

0:2IRzfDRR

?00:2 =IRzf

88 RsrR

1- DRRDRR

?01=-DRR

10

SRM1

SRM2

SRM3

SRM4

00000111

10000111

10001000

10001001

1

0

0

1

8RDRR

SRM5IF

10001010

DRSA =

EX0 11000001 IF 11000000

PCMIR 1+ PCPC

END NA MS MC IL PI PL TD TA TB MB FS MD RW MM MW

IF --- CNT --- LDI INP NLP --- --- --- --- --- --- NW PC NW

EX0 --- NXT OPC NLI NLP NLP --- --- --- --- --- --- NW --- NW

SRM1

SRM2

SRM3

SRM4

SRM5

SRM REGISTO, VALOR

MEEC - Arquitectura de Computadores 2014-2015

?0000111=IR

SARR 8

0:2IRzfDRR

?00:2 =IRzf

88 RsrR

1- DRRDRR

?01=-DRR

10

SRM1

SRM2

SRM3

SRM4

00000111

10000111

10001000

10001001

1

0

0

1

8RDRR

SRM5IF

10001010

DRSA =

EX0 11000001 IF 11000000

PCMIR 1+ PCPC

UNIDADE DE CONTROLO

73

Computador de Ciclo Múltiplo: Exemplo: Desenvolvimento de Microprograma

END NA MS MC IL PI PL TD TA TB MB FS MD RW MM MW

IF --- CNT --- LDI INP NLP --- --- --- --- --- --- NW PC NW

EX0 --- NXT OPC NLI NLP NLP --- --- --- --- --- --- NW --- NW

SRM1 SRM2 NXT NXA NLI NLP NLP 1 SA --- --- F=A FU WR --- NW

SRM2 SRM5 BZ NXA NLI NLP NLP DR --- SB 1 F=B FU WR --- NW

SRM3 --- CNT --- NLI NLP NLP 1 --- 1 0 F=sr B FU WR --- NW

SRM4 SRM3 BNZ NXA NLI NLP NLP DR SA --- --- F=A-1 FU WR --- NW

SRM5 IF NXT NXA NLI NLP NLP DR 1 --- --- F=A FU WR --- NW

MICROPROGRAMA

PALAVRA DE CONTROLO

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

74

Computador de Ciclo Múltiplo: Diagrama de Blocos para U. Controlo “Hardwired” baseada num Contador e num Descodificador

MEEC - Arquitectura de Computadores 2014-2015

UNIDADE DE CONTROLO

75

Computador de Ciclo Múltiplo: Aquisição e Execução de Instruções

MEEC - Arquitectura de Computadores 2014-2015

Unidade de Controlo Introdução

Formato das Instruções

Unidade de Controlo Ciclo Único

Unidade de Controlo de Ciclo Múltiplo

Pipeline

SUMÁRIO

76

MEEC - Arquitectura de Computadores 2014-2015

Arquitecturas de Computadores Elementares: Controlo Pipelined

UNIDADE DE CONTROLO

77

IF – Instruction Fetch DOF – Decode and Operand Fetch EX – Execution WB – Write Back

Exemplo de Desempenho:

Arq. de Ciclo Único: 17ns (1.18 inst. em 20ns)

Pipeline: 4x5=20ns (4 inst. em 20ns)

Pipeline/CicloÚnico=3.4

MEEC - Arquitectura de Computadores 2014-2015

• Bibliografia

[1] M. Morris Mano, Charles R. Kime, “Logic and Computer Design Fundamentals”, 4nd Edition Updated, Prentice-Hall International, 2008.

[2] G. Arroz, J. Monteiro, A. Oliveira, “Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores”, IST Press, 2007.

• Outras Referências

[3] J. Hennessy, D. Patterson, “Computer Architecture – A Quantitative Approach”, Morgan Kaufmann, 2007.

[4] D. Patterson, J. Hennessy, “Computer Organization and Design”, Morgan Kaufmann, 2009.

UNIDADE DE CONTROLO BIBLIOGRAFIA

78