capítulo 5 - inf.ufpr.br · – nós usaremos uma máquina de moore (saída baseada apenas no...

24
1 ? 1998 Morgan Kaufmann Publishers Capítulo 5 This material may not be copied or distributed for commercial purposes without express written permission of the copyright holder. Permission is granted to copy and distribute this material for e ducational purposes only, provided that the complete bibliographic citation and following credit line is included: "Copyright 1998 Morgan Kaufmann Publishers." Permission is granted to alter and distribute this material provided that the following credit line is included: "Adapted from Computer Organization and Design: The Hardware/Software Interface, 2nd Edition David A. Patterson , John L. Hennessy Morgan Kaufmann, 2nd ed., 1997, ISBN 1558604286 Copyright 1998 Morgan Kaufmann Publishers." Lecture slides created by Michael Wahl in English Tradução: Christian Lyra Gomes Revisão: Wagner M. N. Zola 2 ? 1998 Morgan Kaufmann Publishers Nós estamos prontos para olhar uma implementação do MIPS Simplificada para conter apenas: instruções de referência a memória: lw, sw instruções lógico-aritméticas: add, sub, and, or, slt instruções de controle de fluxo: beq, j ? Implementação Genérica: usa o contador de programa (PC) para fornecer o endereço das instruções pega a instrução da memória ler registradores usa a instrução para decidir exatamente o que fazer ? Todas as instruções usam a ULA após ler os registradores Por que? referência a memória? aritmética? controle de fluxo? O Processador: Datapath & Controle

Upload: donga

Post on 26-Sep-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

1? 1998 Morgan Kaufmann Publishers

Capítulo 5

This material may not be copied or distributed for commercial purposes without express written permission of the copyright holder.

Permission is granted to copy and distribute this material for educational purposes only, provided that the complete bibliographic citation and following credit line is included: "Copyright 1998 Morgan Kaufmann Publishers." Permission is granted to alter and distribute this material provided that the following credit line is included: "Adapted from Computer Organization and Design: The Hardware/Software Interface, 2nd Edition David A. Patterson, John L. Hennessy Morgan Kaufmann, 2nd ed., 1997, ISBN 1558604286 Copyright 1998 Morgan Kaufmann Publishers."

Lecture slides created by Michael Wahl in English

Tradução: Christian Lyra Gomes

Revisão: Wagner M. N. Zola

2? 1998 Morgan Kaufmann Publishers

• Nós estamos prontos para olhar uma implementação do MIPS• Simplificada para conter apenas:

– instruções de referência a memória: lw, sw – instruções lógico-aritméticas: add, sub, and, or, slt– instruções de controle de fluxo: beq, j

? Implementação Genérica:

– usa o contador de programa (PC) para fornecer o endereço das instruções

– pega a instrução da memória– ler registradores– usa a instrução para decidir exatamente o que fazer

? Todas as instruções usam a ULA após ler os registradoresPor que? referência a memória? aritmética? controle de fluxo?

O Processador: Datapath & Controle

Page 2: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

3? 1998 Morgan Kaufmann Publishers

• Visão Abstrata / Simplificada:

Dois tipos de unidades funcionais:– elementos que operam sobre valores de dados (combinacional)– elementos que contêm estados (seqüencial)

Mais detalhes da implementação

RegistersRegister #

Data

Register #

Datamemory

Address

Data

Register #

PC Instruction ALU

Instructionmemory

Address

4? 1998 Morgan Kaufmann Publishers

• Não-cronometrado vs. Cronometrado (clocked)• Relógios usados em lógica síncrona

– quando um elemento que contêm um estado deve ser atualizado?

Tempo de CicloBorda de subida

Borda de descida

Elementos de Estado

Page 3: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

5? 1998 Morgan Kaufmann Publishers

• A trava RS (set-reset latch)– a saída depende da entrada presente e também de entradas

passadas

Um elemento de estado não-cronometrado

6? 1998 Morgan Kaufmann Publishers

• Saída é igual ao valor armazenando no elemento(Não precisa pedir permissão para olhar o valor)

• Mudança de estado (valor) é baseado no relógio• Travas: quando a entrada muda, e o pulso de relógio está em “1”• Flip-flop: Estado muda apenas na borda do pulso de relógio

(edge-triggered methodology)

”verdadeiro lógico", — pode significar um sinal elétrico baixo

Uma metodologia de relógio define quando um sinal pode ser lido e escrito— Não se deseja ler um sinal ao mesmo tempo em que ele está sendo escrito

Travas (Latches) e Flip-flops

Page 4: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

7? 1998 Morgan Kaufmann Publishers

• Duas entradas:– o valor a ser armazenado (D)– o sinal do relógio (C) indicando quando ler e armazenar D

• Duas saídas:– o valor do estado interno (Q) e o seu complemento

Trava-D

Q

C

D

_Q

D

C

Q

8? 1998 Morgan Kaufmann Publishers

Flip-flop D

• Saída muda apenas na borda do relógio

QQ

_Q

Q

_Q

Dlatch

D

C

Dlatch

DD

C

C

D

C

Q

Page 5: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

9? 1998 Morgan Kaufmann Publishers

Nossa Implementação

• Usamos metodologia de gatilho pela borda do pulso de relógio• Execução típica:

– ler o conteúdo de alguns elementos de estado,– enviar o conteúdo através de alguma lógica combinacional– escrever o resultado em um ou mais elementos de estado

Clock cycle

Stateelement

1Combinational logic

Stateelement

2

10? 1998 Morgan Kaufmann Publishers

• Construído usando flip-flops D

Banco de Registradores (register file)

Mux

Register 0

Register 1

Register n – 1

Register n

Mux

Read data 1

Read data 2

Read registernumber 1

Read registernumber 2

R ea d regis ternu mber 1 R ea d

da ta 1

R ea dda ta 2

R ea d regis ternu mber 2

Regi ster f ileW riteregiste r

W ri teda ta Writ e

Page 6: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

11? 1998 Morgan Kaufmann Publishers

Banco de registradores (register file)

• Nota: nós ainda usamos o relógio real para determinar quando escrever

n - to -1d e co d e r

R e g is te r 0

R e g is te r 1

R e g i s te r n – 1C

C

D

DR e g i s te r n

C

C

D

D

R e g i s te r n u m b e r

W r i te

R e g i s te r d a ta

0

1

n – 1n

12? 1998 Morgan Kaufmann Publishers

Implementação Simples

• Inclui as unidades funcionais que precisamos para cada instrução

Por que precisamos dessascoisas?

PC

Instructionmemory

Instructionaddress

Instruction

a. Instruction memory b. Program counter

Add Sum

c. Adder

ALU control

RegWrite

RegistersWriteregister

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Writedata

ALUresult

ALU

Data

Data

Registernumbers

a. Registers b. ALU

Zero5

5

5 3

16 32Sign

extend

b. Sign-extension unit

Me mRead

Me mWrite

D atamemory

Writedata

Readdata

a. Data memory unit

Address

Page 7: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

13? 1998 Morgan Kaufmann Publishers

Construindo o Datapath

• Use multiplexadores para “grudar” as partes

PC

Instruct ionmemory

Readaddress

Ins truc tion

16 32

Add ALUresult

Mux

Regis ters

WriteregisterWritedata

Readdata 1

Readdata 2

Readregister 1Readregister 2

Shiftleft 2

4

Mux

ALU operation3

RegW rite

MemRead

MemWrite

PCSrc

ALUSrc

MemtoReg

ALUresult

Z eroALU

Datamemory

Address

Writedata

Readdata M

ux

Signextend

Add

14? 1998 Morgan Kaufmann Publishers

Controle

• Seleciona as operações a serem executadas (ULA, leitura/escrita, etc.)

• Controla o fluxo de dados (entradas dos multiplexadores)

• A Informação vem de instruções de 32 bits

• Exemplo:

add $8, $17, $18 Formato de Instrução:

000000 10001 10010 01000 00000 100000

op rs rt rd shamt funct

• Operações da ULA são baseadas no tipo de instrução e no código de função

Page 8: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

15? 1998 Morgan Kaufmann Publishers

• ex., O que a ULA deve fazer com essa instrução• Exemplo: lw $1, 100($2)

35 2 1 100

op rs rt 16 bit offset

• Controle de entrada da ULA

000 E001 OU010 adição110 subtração111 Ajusta-se-menor-que (set-on-less-than)

• Por que o código para subtração é 110 e não 011?

Controle

16? 1998 Morgan Kaufmann Publishers

• Devemos descrever o hardware para computar a uma entrada de 3-bit de controle de ULA– dado um tipo de instrução

00 = lw, sw01 = beq, 11 = aritmética

– código de função para aritmética

• Descreva ele usando uma tabela verdade (que pode ser transformadaem portas):

ULA Op computado a partir do tipo de instrução

Controle

ALUOp Funct field OperationALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0

0 0 X X X X X X 010X 1 X X X X X X 1101 X X X 0 0 0 0 0101 X X X 0 0 1 0 1101 X X X 0 1 0 0 0001 X X X 0 1 0 1 0011 X X X 1 0 1 0 111

Page 9: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

17? 1998 Morgan Kaufmann Publishers

Controle

Instruction RegDst ALUSrcMemto-

RegReg

WriteMem Read

Mem Write Branch ALUOp1 ALUp0

R-format 1 0 0 1 0 0 0 1 0lw 0 1 1 1 1 0 0 0 0sw X 1 X 0 0 1 0 0 0beq X 0 X 0 0 0 1 0 1

PC

I ns tr u c tio nme mo ry

R ea da d d re s s

In s tr u ct io n[3 1 – 0 ]

In s tr u ct io n [2 0 – 1 6 ]

In s tr u ct io n [2 5 – 2 1 ]

Ad d

In s tr u ct io n [ 5– 0 ]

Me mt o Re gAL U O p

Me mW r ite

Re g W r ite

Me mR e a dBra n chR e g D st

AL U Src

In s tr u ct io n [3 1 – 2 6 ]

4

1 6 3 2In s tr u ct io n [1 5 – 0 ]

0

0Mux

0

1

C o n tro l

A d d A L Ure su lt

Mux

0

1

R e g ist e rsW r it ere g is te r

W r it ed a t a

R e a dd a t a 1

R e a dd a t a 2

R e a dre g is te r 1

R e a dre g is te r 2

Sig ne xt e nd

Sh if tle ft 2

Mux

1

A L Ure su lt

Ze ro

Da t ame m ory

Wr it eda t a

R e a dd a ta

Mux

1

In s tr u ct io n [1 5 – 1 1 ]

AL Uc o n tro l

A LUA d d re s s

18? 1998 Morgan Kaufmann Publishers

Controle

• Lógica combinacional simples (tabelas verdade)

Operation2

Operation1

Operation0

Operation

ALUOp1

F3

F2

F1

F0

F (5– 0)

ALUOp0

ALUOp

ALU control block

R-format Iw sw beq

Op0

Op1Op2Op3

Op4Op5

Inp uts

Outputs

R egD st

A LUSrc

M emtoRe g

R egWrite

M emRea d

M emWrite

B ranch

A LUOp1

A LUOpO

Page 10: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

19? 1998 Morgan Kaufmann Publishers

• Toda a lógica é combinacional

• Nós esperamos tudo estabilizar, e a coisa certa a se fazer

– ULA pode não produzir a “resposta correta” imediatamente

– nós usamos sinais de escrita junto com o relógio para determinarquando escrever

• Tempo de ciclo determinado pelo tamanho do maior caminho

Nossa Estrutura de Controle Simples

Nós estamos ignorando alguns detalhes como tempos de “setup”e “hold”

Clock cyc le

Stateelement

1Com binational logic

Stateelement

2

20? 1998 Morgan Kaufmann Publishers

Implementação de ciclo único

• Calcula o tempo de ciclo assumindo atrasos negligenciáveis exceto:– memória(2ns)(porque?), ULA e somadores (2ns), acesso a bloco

de registradores (1ns)

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instruct ionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

RegWr ite

4

16 32Instruction [15– 0]

0Registers

WriteregisterWritedata

Writedata

Readdata 1

Readdata 2

Readregister 1Readregister 2

Signextend

ALUresult

Zero

Datamemory

Address Readdata M

ux

1

0

Mux

1

0

Mux

1

0

Mux

1

Instruction [15– 11]

ALUcontrol

Shiftleft 2

PCSrc

ALU

Add ALUresult

Page 11: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

21? 1998 Morgan Kaufmann Publishers

Para onde estamos nos dirigindo

• Problemas de ciclo único:– E se nós tivermos uma instrução mais complicada, como uma

instrução de ponto flutuante?– Desperdício de área

• Uma solução:– use um tempo de ciclo menor– faça com que diferentes instruções usem diferentes números de

ciclos– um datapath “multiciclo” :

P C

M em o r y

Ad dr e ss

In s tr uc t iono r da ta

D at a

I ns tr u c tio nr eg is te r

Re g is ter sR eg is te r #

D at a

R eg is te r #

R eg is te r #

A LU

M e m or yda ta

r eg is te r

A

B

A LU O ut

22? 1998 Morgan Kaufmann Publishers

• Nós iremos re-utilizar as unidades funcionais– ULA utilizada para computar endereços e incrementar o PC– Memória utilizada para instruções e dados

• Nossos sinais de controle não serão determinados unicamente pelainstrução– ex., O que a ULA deve fazer para a instrução de subtração?

• Nós iremos usar uma máquina de estados finitos para o controle

Abordagem Multiciclo

Page 12: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

23? 1998 Morgan Kaufmann Publishers

• Máquina de estados finitos:– um conjunto de estados e– função de próximo estado (determinada pelo estado corrente e a

entrada)– função de saída (determinada pelo estado corrente e possível

entrada

– Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente)

Revisão: Máquina de estados finitos

Ne xt-statefunct io nCu rren t sta te

Clo ck

Outp utfunct io n

N extstate

Out put s

In put s

24? 1998 Morgan Kaufmann Publishers

Revisão: Máquina de estados finitos

• Exemplo:

B. 21 Um amigo gostaria que você construísse um “olho eletrônico” para ser usado como um falso dispositivo de segurança. O dispositivo consiste de três luzes alinhadas, controladas pelas saídas Esquerda, Meio e Direita, que quando ligadas, indicam qual a luz deve estar acesa. Somente uma luz deve estar acesa em um determinado momento, e as luzes se “movem” da esquerda para a direita e depois da direita para a esquerda, espantando assim os ladrões que acreditarão que o dispositivo está monitorando a atividade deles. Desenhe uma representação gráfica da máquina de estados finitos usada para especificar o olho eletrônico. Observe que a velocidade de movimentação do olho será controlada pela freqüência de relógio (que não deve ser muito grande) e que essencialmente não há entradas.

Page 13: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

25? 1998 Morgan Kaufmann Publishers

• Quebre a instrução em passos, cada passo leva um ciclo– balanceie a quantidade de trabalho a ser feita– restrinja cada ciclo a usar apenas uma unidade funcional maior

• No final de cada ciclo– armazene os valores para uso em ciclos posteriores (a coisa

mais fácil a ser feita)– introduza registradores “internos” adicionais

Abordagem Multiciclos

Shif tleft 2

PC

Memory

MemData

Wri tedata

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Mux

0

1

Mux

0

1

4

Instruction[15– 0]

Signextend

3216

Instruction[25– 21]

Instruction[20– 16]

Instruction[15– 0]

Instruct ionregister

1 Mux

0

3

2

Mux

ALUresult

ALUZero

Memorydata

register

Instruct ion[15– 11]

A

B

ALUOut

0

1

Address

26? 1998 Morgan Kaufmann Publishers

• Instrução Busca

• Instrução Decodifica e Busca Registrador

• Execução, Cálculo de Endereço de Memória, ou Conclusão de Desvio

• Acesso à Memória ou Conclusão de instruções tipo-R

• Passo de “Write-back”

INSTRUÇÕES LEVAM 3 - 5 CICLOS!

Cinco passos de execução

Page 14: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

27? 1998 Morgan Kaufmann Publishers

• Usa o PC para pegar a instrução e coloca a instrução no Registrador de Instrução.

• Incrementa PC em 4 e coloca o resultado de volta no PC.• Pode ser descrito de forma sucinta usando a “Linguagem

Transferência-Registrador” - RTL "Register-Transfer Language"

IR = Memory[PC];PC = PC + 4;

Nós conseguimos descobrir os valores dos sinais de controle?

Qual é a vantagem de se atualizar o PC agora?

Passo 1: Instrução Busca

28? 1998 Morgan Kaufmann Publishers

• Leia os registradores rs e rt para o caso de precisarmos deles• Compute o endereço de desvio no caso da instrução ser um desvio• RTL:

A = Reg[IR[25-21]];B = Reg[IR[20-16]];ALUOut = PC + (sign-extend(IR[15-0]) << 2);

• Nós não estamos ajustando nenhuma linha de controle baseado no tipo de instrução

(Nós estamos ocupados “decodificando” ela em nossa lógica de controle)

Passo 2: Instrução Decodifica e Busca Registrador

Page 15: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

29? 1998 Morgan Kaufmann Publishers

• A ULA está desempenhando uma das 3 funções, baseada no tipo de instrução

• Referência à memória:

ALUOut = A + sign-extend(IR[15-0]);

• Tipo-R:

ALUOut = A op B;

• Desvio:

if (A==B) PC = ALUOut;

Passo 3 (dependente de instrução)

30? 1998 Morgan Kaufmann Publishers

• Carrega ou armazena na memória

MDR = Memory[ALUOut];or

Memory[ALUOut] = B;

• Finaliza instruções Tipo-R

Reg[IR[15-11]] = ALUOut;

A escrita acontece no final do ciclo na borda

Passo 4 (Tipo-R ou acesso-memória)

Page 16: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

31? 1998 Morgan Kaufmann Publishers

• Reg[IR[20-16]]= MDR;

E sobre todas as outras instruções?

Passo “Write-back”

32? 1998 Morgan Kaufmann Publishers

Sumário:

PassoAção para

instruções Tipo-RAção para instruções referência à memória

Ação para desvios Ação para saltos

Busca Instrução IR = Memory[PC]PC = PC + 4

Instrução A = Reg [IR[25-21]]Decodifica/busca reg. B = Reg [IR[20-16]]

ALUOut = PC + (sign-extend (IR[15-0]) << 2)

Execução, cálculo de ALUOut = A op B ALUOut = A + sign-extend if (A ==B) then PC = PC [31-28] IIendereço, desvio/ (IR[15-0]) PC = ALUOut (IR[25-0]<<2)fim de saltoAcesso Memória ou fim Reg [IR[15-11]] = Load: MDR = Memory[ALUOut]de Tipo-R ALUOut or

Store: Memory [ALUOut] = B

fim leitura de Memória Load: Reg[IR[20-16]] = MDR

Page 17: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

33? 1998 Morgan Kaufmann Publishers

• Quantos ciclos leva para executar esse código?

lw $t2, 0($t3)lw $t3, 4($t3)beq $t2, $t3, Label #assuma nãoadd $t5, $t2, $t3sw $t5, 8($t3)

Label: ...

• O que está acontecendo durante o oitavo ciclo de execução?• Em que ciclo acontece realmente a adição de $t2 e $t3?

Questões Simples

34? 1998 Morgan Kaufmann Publishers

• O Valor dos sinais de controle dependem de:– Qual instrução está sendo executada– Qual passo esta sendo executado

• Use as informações que nós acumulamos para especificar uma máquina de estados finitos– Especifique a máquina de estados finitos graficamente, ou– utilize microprogramação

• A Implementação pode ser derivada da especificação

Implementando o Controle

Page 18: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

• Quantos bits de estados nós precisaremos?

Representação Gráfica da MEF

PCWri tePCSource = 10

ALUSrcA = 1ALUSrcB = 00

ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA = 1ALUSrcB = 00

ALUOp= 10

RegDst = 1RegWrite

MemtoReg = 0

MemWriteIorD = 1

MemReadIorD = 1

ALUSrcA = 1ALUSrcB = 10ALUO p = 00

RegDst= 0RegWrite

MemtoReg= 1

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

Instruct ion fetchInstruction decode/

register fetch

Jumpcompletio n

Branchcompleti onExecut ion

Memory addresscomputat ion

Memorya ccess

Memoryaccess R-type completion

Write-back step

(Op = 'LW') or (Op = 'SW') (Op = R-type)

(Op

= 'BE

Q')

(Op

= 'J'

)

(Op = 'SW')

(Op

= 'L

W')

4

01

9862

753

Start

36? 1998 Morgan Kaufmann Publishers

• Implementação:

Máquina de Estados Finitos para o Controle

PCWrite

PCWriteCond

IorD

MemtoReg

PCSource

ALUOp

ALUSrcB

ALUSrcA

RegWrite

RegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3

S2

S1

S0

S tate register

IRWrite

MemRead

MemW rite

Instruction registeropcode f ield

Outputs

Control logic

Inputs

Page 19: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

37? 1998 Morgan Kaufmann Publishers

Implementação PLA

• Se eu pegar uma linha horizontal e uma vertical você consegue explicar ela?Op5

Op4

Op3

Op2

Op1

Op0

S3

S2

S1

S0

IorD

IRWrite

M emReadM emWri te

PCWritePCWriteCond

M emtoRegPCSource1

ALUOp1

ALUSrcB0ALUSrcARegWriteRegDstNS3NS2NS1NS0

ALUSrcB1ALUOp0

PCSource0

38? 1998 Morgan Kaufmann Publishers

• ROM = “Memória de leitura apenas” ("Read Only Memory”)– Valores de locais da memória são fixados previamente

• Uma ROM pode ser usada para implementar uma tabela verdade– Se o endereço tem m-bits, nós podemos endereçar 2m entradas

na ROM.– Nossas saídas são os bits de dados para os quais o endereço

aponta.

m é a ”altura", e n é a ”largura"

Implementação ROM

m n

0 0 0 0 0 1 10 0 1 1 1 0 00 1 0 1 1 0 00 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 11 1 0 0 1 1 01 1 1 0 1 1 1

Page 20: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

39? 1998 Morgan Kaufmann Publishers

• Quantas entradas existem lá?6 bits para opcode, 4 bits para o estado = 10 linhas de endereço(i.e., 210 = 1024 endereços diferentes)

• Quantas saídas existem lá? 16 Saídas de controle datapath, 4 bits de estado = 20 saídas

• ROM é 210 x 20 = 20K bits (é um tamanho um tanto estranho)

• Um tanto esbanjador, já que para um monte de entradas, as saídassão as mesmas

— i.e., o opcode é freqüentemente ignorado

Implementação ROM

40? 1998 Morgan Kaufmann Publishers

• Divida a tabela em duas partes— 4 bits de estado te retornam 16 saídas, 24 x 16 bits de ROM— 10 bits te retornam os 4 bits do próximo estado, 210 x 4 bits

de ROM— Total: 4.3K bits de ROM

• PLA é muito menor— pode compartilhar termos de produtos— precisa apenas de entradas que produzem saídas ativas— pode levar em conta os “não importa”

• O tamanho é (#entradas ? #termos-produto) + (#saídas ? #termos-produto)

Para este exemplo = (10x17)+(20x17) = 460 células PLA

• Células PLA são usualmente do mesmo tamanho de uma célula de ROM (ligeiramente maior)

ROM vs PLA

Page 21: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

41? 1998 Morgan Kaufmann Publishers

• Instruções Complexas: o “próximo estado” é freqüentemente o estado atual + 1

Outro Estilo de Implementação

AddrCtl

O utputs

PLA or ROM

State

Address select l og icO

p[5–

0]

Adder

Instruction registe ropcode fi eld

1

Control unit

Input

PCWri tePCWri teCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst

IRWri te

MemReadMemWrite

BWrite

42? 1998 Morgan Kaufmann Publishers

DetalhesDispatch ROM 1 Dispatch ROM 2

Op Opcode name Value O p Opcode name Value000000 R-format 0110 100011 lw 0011000010 jmp 1001 101011 sw 0101000100 beq 1000100011 lw 0010101011 sw 0010

número estado Ação do endereço de controle valor do AddrCtl0 Usa incremento de estado 31 Usa dispatch ROM 1 12 Usa dispatch ROM 2 23 Usa incremento de estado 34 Troca número de estado por 0 05 Troca número de estado por 0 06 Usa incremento de estado 37 Troca número de estado por 0 08 Troca número de estado por 0 09 Troca número de estado por 0 0

State

Op

Adder

1

PLA or ROM

Mux3 2 1 0

Di spatch RO M 1Dispatch ROM 2

0

AddrCt l

Ad dress select logi c

Instructi on registeropcode f ield

Page 22: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

43? 1998 Morgan Kaufmann Publishers

Microprogramação

• O que são “micro-instruções”?

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCt l

Outputs

Microcode memory

IRW rite

MemReadMemWrite

RegDst

Control uni t

Input

Microprogram counter

Address sel ect logi c

Op[

5–0]

Adder

1

Datapath

Instruct ion registeropco de fi el d

BWrite

44? 1998 Morgan Kaufmann Publishers

• Uma metodologia de especificação– apropriada se temos centenas de opcodes, modos, ciclos, etc.– sinais são especificados simbolicamente com micro-instruções

• Duas implementações da mesma arquitetura terão o mesmo micro código?• O que deverá fazer o micro assembler?

Microprogramação

LabelALU

control SRC1 SRC2Register control Memory

PCWrite control Sequencing

Fetch Add PC 4 Read PC ALU SeqAdd PC Extshft Read Dispatch 1

Mem1 Add A Extend Dispatch 2LW2 Read ALU Seq

Write MDR FetchSW2 Write ALU FetchRformat1 Func code A B Seq

Write ALU FetchBEQ1 Subt A B ALUOut-cond FetchJUMP1 Jump address Fetch

Page 23: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

Formato Micro-instruçãoNome do Campo Valor Sinais Ativos Comentários

Add ALUOp = 00 Faz a ULA adicionarALU control Subt ALUOp = 01 Faz a ILA subtrair; Isso implementa a comparaçao para

desvios.Func code ALUOp = 10 Usa o código de função da instrução para determinar o controle da ULA

SRC1 PC ALUSrcA = 0 Usa o PC como a primeira entrada da ULA.A ALUSrcA = 1 Registrador A é a primeira entrada da ULA.B ALUSrcB = 00 Registrador B é a segunda entrada da ULA.

SRC2 4 ALUSrcB = 01 Usa "4" como a segunda entrada da ULA.Extend ALUSrcB = 10 Usa a saída da unidade de extensão de sinal como a segunda entrada da ULA.Extshft ALUSrcB = 11 Usa saída da unidade desloca-2 como a segunda entrada da ULA.Read Lê dois registradores usando os campos rs e rt do IR como números de

registradores e coloca os dados nos registradores A e B.Write ALU RegWrite, Escreve em um registrador usando o campo rd do IR como número do registrador e

Register RegDst = 1, o contéudo da ALUOut como os dados.control MemtoReg = 0

Write MDR RegWrite, Escreve em um registrador usando o campo rt do IR como número do registrador eRegDst = 0, o conteúdo do MDR como os dados.MemtoReg = 1

Read PC MemRead, L6e a memória usando o PC como endereço; escreve o resulado no IR (elorD = 0 o MDR).

Memory Read ALU MemRead, Lê a memória usando o ALUOut como endereço; escreve o resultado no MDR.lorD = 1

Write ALU MemWrite, Escreve na memória usando o ALUOut como endereço, e o conteúdo de B como dado.lorD = 1

ALU PCSource = 00 Escreve a saída da ULA no PC.PCWrite

PC write control ALUOut-cond PCSource = 01, Se a saída Zero estiver ativa, escreve o PC com o conteúdoPCWriteCond do registrador ALUOut.

jump address PCSource = 10, Escreve o PC com endereço de salto da instrução.PCWrite

Seq AddrCtl = 11 Escolhe a próxima micro-instrução sequencialmente.Sequencing Fetch AddrCtl = 00 vai para a primeira micro-instrução para começar uma nova instrução.

Dispatch 1 AddrCtl = 01 Dispacha usando a ROM 1.Dispatch 2 AddrCtl = 10 Dispacha usando a ROM 2.

46? 1998 Morgan Kaufmann Publishers

• Nenhuma codificação:

– 1 bit para cada operação do datapath– mais rápida, requer mais memória (lógica)

– usada para o Vax 780 — incríveis 400K de memória!

• Muita codificação:

– envia micro-instruções através de lógica para pegar os sinais de controle

– usa menos memória, mais lento

• Contexto histórico do CISC:

– Muita lógica para colocar num único chip com todo o resto

– Usa uma ROM (ou mesmo RAM) para armazenar o microcódigo– é fácil adicionar novas instruções

Codificação Maximizada Vs Minimizada

Page 24: Capítulo 5 - inf.ufpr.br · – Nós usaremos uma máquina de Moore (saída baseada apenas no estado corrente) Revisão: Máquina de estados finitos Next-state function Current state

47? 1998 Morgan Kaufmann Publishers

Microcódigo: Compromissos

• A distinção entre a especificação e a implementação é muitas vezes misturada

• Vantagens da Especificação:

– Fácil de projetar e escrever

– Projeto da arquitetura e microcódigo em paralelo

• Vantagens da Implementação (“off-chip ROM”)

– Fácil de mudar já que os valores estão na memória

– Pode emular outras arquiteturas

– Pode usar os registradores internos

• Desvantagens da Implementação, mais LENTO já que:

– Controle é implementado no mesmo chip que o processador

– ROM não é mais rápida que RAM

– Não há necessidade de voltar e fazer mudanças

48? 1998 Morgan Kaufmann Publishers

O Grande Quadro

Initialrepresentati on

Finite stated iagram M icroprogram

Se quencingcont rol

Expli cit nextstate function

Microprogram counter+ dispatch ROM S

Logi crepresentati on

Logicequat ions

Truthtables

Implem entat ionte chnique

Program mablelogic array

Read onlymem ory