22
Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém figuras de “Computer Organization and Design” (cap. 5), D. Patterson & J. Hennessey, 3ª. ed., MKP Tópicos 1 Introdução 2 Caminho de dados (datapath) 3 Unidade de controlo uniciclo 4 Unidade de controlo multiciclo ArqComp: Organização de um processador 2/44 2006-03-31

Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Organização de um processador

João Canas Ferreira

Arquitectura de Computadores

FEUP/LEIC

Contém figuras de “Computer Organization and Design” (cap. 5), D. Patterson & J. Hennessey, 3ª. ed., MKP

Tópicos

1 Introdução

2 Caminho de dados (datapath)

3 Unidade de controlo uniciclo

4 Unidade de controlo multiciclo

ArqComp: Organização de um processador 2/44 2006-03-31

Page 2: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

1 Introdução

2 Caminho de dados (datapath)

3 Unidade de controlo uniciclo

4 Unidade de controlo multiciclo

ArqComp: Organização de um processador 3/44 2006-03-31

Generalidades

+ O desempenho do processador depende do número de instruçõesexecutadas, do CPI e do período do relógio.

+ Período de relógio e CPI dependem da organização doprocessador.

+ Organização do processador depende do conjunto de instruçõesa suportar.

+ RISC = Reduced Instruction Set Computer: instruções simples,que facilitam o projecto do CPU, beneficiando CPI e período derelógio em detrimento do nº de instruções: MIPS, Alpha, Sparc.

+ CISC = Complex Instruction Set Computer: instruções maispoderosas, cuja implementação é mais complicada: Intel IA-32.

+ CPU = caminho de dados + unidade de controlo

ArqComp: Organização de um processador 4/44 2006-03-31

Page 3: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Instruções suportadas

+ Instruções lógico-aritméticasI add $t3, $t2, $t1 $t3 = $t2 + $t1I addi $t4, $t5, 120 $t4 = $t5 + 120

Valor imediato de 16 bits (com sinal): sofre extensão de sinalpara 32 bits.

+ Instruções de acesso a memória (load/store)I lw $t0, 150($t1) $t0← mem[$t1+100]I sw $t0, 150($t1) mem[$t1+100]← $t0

Deslocamento (imediato) de 16 bits (sofre extensão de sinal).

+ Saltos condicionais e incondicionais

I beq $t0, $t1, 150 PC← PC + 4 + (150 << 2)Deslocamento relativo é número de 16 bits (com sinal);sofre extensão para 32 bits após deslocamento de 2 bits.

I j 10000 PC←PC+4; PC←{PC[31:28],26’d10000 << 2}

ArqComp: Organização de um processador 5/44 2006-03-31

Codificação das instruções suportadas

+ Instruções tipo R056101115162021252631

opcode rs rt rd shamt funct

add $t0, $t1, $t2 com $t0: rd, $t1: rs, $t2: rt+ Instruções do tipo I

015162021252631

opcode rs rt imediato

addi $t0, $t1, 187 com $t0: rt , $t1: rslw $t0, 150($t1) com $t0: rt, $t1: rs

+ Instruções do tipo J0252631

opcode endereço

j 10000

ArqComp: Organização de um processador 6/44 2006-03-31

Page 4: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Aspectos comuns

Obs: Para já, ignorar a instrução de salto incondicional.

+ Os dois primeiros passos do tratamento de todas as instruçõessão idênticos:

1. Enviar o conteúdo do contador de programa (PC) para amemória de instruções e obter a instrução.

2. Ler um ou dois registos (usando os campos da instruçãopara os seleccionar). A instrução de load apenas necessitade ler um registo.

+ As acções subsequentes dependem da instrução, mas sãosemelhantes para instruções da mesma classe.

+ Mesmo instruções de classes diferentes têm semelhanças. Porexemplo, todas (excepto o salto incondicional) utilizam a ALU:

I lógico-aritméticas: ALU efectua a operação;I load/store: ALU é usada para cálculo do endereço efectivo;I salto condicional: ALU é usada para efectuar a comparação.

ArqComp: Organização de um processador 7/44 2006-03-31

Vista geral do processador MIPS básico

Data

Register #

Register #

Register #

PC Address Instruction

Instruction memory

Registers ALU Address

Data

Data memory

AddAdd

4

Diagrama abstracto (algumas entradas estão ligadas a várias fontes).

ArqComp: Organização de um processador 8/44 2006-03-31

Page 5: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Organização do processador MIPS básico

Data

Register #

Register #

Register #

PC Address Instruction

Instruction memory

Registers ALU Address

Data

Data memory

AddAdd

4

MemWrite

MemRead

M u x

M u x

M u x

Control

RegWrite

Zero

Branch

ALU operation

ArqComp: Organização de um processador 9/44 2006-03-31

1 Introdução

2 Caminho de dados (datapath)

3 Unidade de controlo uniciclo

4 Unidade de controlo multiciclo

ArqComp: Organização de um processador 10/44 2006-03-31

Page 6: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Elementos para obtenção de instruções

PC

Instruction address

Instruction

Instruction memory

Add Sum

a. Memória de instruções b. Contador de programa c. Somador

ArqComp: Organização de um processador 11/44 2006-03-31

Obtenção de instruções

PC Read address

Instruction

Instruction memory

Add

4

ArqComp: Organização de um processador 12/44 2006-03-31

Page 7: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Elementos para instruções do tipo R

Read register 1

Read register 2

Write register

Write Data

Registers ALUData

Data

Zero

ALU result

RegWrite

a. Banco de registos b. ALU

5

5

5

Register numbers

Read data 1

Read data 2

ALU operation4

ArqComp: Organização de um processador 13/44 2006-03-31

Elementos para cálculo de endereços

Address Read data

Data memory

a. Memória de dados

Write data

MemRead

MemWrite

b. Unidade de extensão de sinal

Sign extend

16 32

ArqComp: Organização de um processador 14/44 2006-03-31

Page 8: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Elementos para avaliação da condição de salto

Read register 1

Read register 2

Write register

Write data

Registers ALU Zero

RegWrite

Read data 1

Read data 2

ALU operation4

Para controlodo salto

Add Sum Destino dosalto

PC4 +

Sign extend

16 32

Instrução

Shift left 2

ArqComp: Organização de um processador 15/44 2006-03-31

Instruções tipo R e acessos a memória

Read register 1

Read register 2

Write register

Write data

Write data

Registers ALUZero

RegWrite

MemRead

MemWriteMemtoReg

Read data 1

Read data 2

ALU operation4

Sign extend

16 32

InstruçãoALU

resultM u x

0

1

M u x

1

0

ALUSrcAddress

Data memory

Read data

ArqComp: Organização de um processador 16/44 2006-03-31

Page 9: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Caminho de dados (quase) completo

Read register 1

Read register 2

Write register

Write data

Write data

Registers ALU

Add

Zero

RegWrite

MemRead

MemWrite

PCSrc

MemtoReg

Read data 1

Read data 2

ALU operation4

Sign extend

16 32

Instruction ALU result

Add

ALU result

M u x

M u x

M u x

ALUSrc

Address

Data memory

Read data

Shift left 2

4

Read address

Instruction memory

PC

+ Ainda não inclui suporte para saltos incondicionais (j).

ArqComp: Organização de um processador 17/44 2006-03-31

1 Introdução

2 Caminho de dados (datapath)

3 Unidade de controlo uniciclo

4 Unidade de controlo multiciclo

ArqComp: Organização de um processador 18/44 2006-03-31

Page 10: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Controlo da ALU

opcode rs rt functrd shamt

Controladorprincipal

Sinais de contrologerais

Controladorda ALU

ALUOp

Sinais de controlopara ALU

+ A ALU funciona em três contextos diferentes.1. instruções lógico-aritméticas: ALUOp=102. cálculo de endereços: ALUOp=003. comparação: ALUOp=01

ArqComp: Organização de um processador 19/44 2006-03-31

Especificação do controlador da ALU

A especificação detalhada do controlador de ALU é a seguinte:

opcode ALUOp Operação Funct Op. ALU Ctrl ALU

lw 00 load word XXXXXX soma 0010sw 00 store word XXXXXX soma 0010beq 01 branch equal XXXXXX subtracção 0110R 10 soma 100000 soma 0010R 10 subtracção 100010 subtracção 0110R 10 AND 100100 e-lógico 0000R 10 OR 100101 ou-lógico 0001R 10 set on less than 101010 set on less than 0111

A coluna Ctrl ALU especifica os valores que a entrada de controloda ALU deve receber, por forma a que este componente execute aoperação apropriada a cada “contexto”.

ArqComp: Organização de um processador 20/44 2006-03-31

Page 11: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Observações gerais sobre a descodificação

+ Os bits 31:26 da instrução contêm sempre o código da instrução.

+ Os dois registos a serem lidos são sempre especificados peloscampos rs e rt (posições 25:21 e 20:16). [Instruções tipo R,beq e sw]

+ O registo de base para acessos a memória esta sempre nasposições 25:21 (rs). [Instruções lw e sw]

+ A constante de 16 bits ocupa sempre as posições 15:0.[Instruções beq, lw e st]

+ O registo de destino está em uma de duas posições:1. posição 20:16 (rt)) [ instrução lw]2. posição 15:11 (rd) [instrução R]

É necessário acrescentar um multiplexador para seleccionarentre as duas “fontes”.

ArqComp: Organização de um processador 21/44 2006-03-31

Caminho de dados com multiplexadores e controlo

Read register 1

Read register 2

Write register

Write data

Write data

Registers

ALU

Add

Zero

MemRead

MemWrite

RegWrite

PCSrc

MemtoReg

Read data 1

Read data 2

Sign extend

16 32

Instruction [31:0] ALU

result

Add

ALU result

M u x

M u x

M u x

ALUSrc

Address

Data memory

Read data

Shift left 2

4

Read address

Instruction memory

PC

1

0

0

1

0

1

M u x

0

1

ALU control

ALUOpInstruction [5:0]

Instruction [25:21]

Instruction [15:11]

Instruction [20:16]

Instruction [15:0]

RegDst

ArqComp: Organização de um processador 22/44 2006-03-31

Page 12: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Especificação dos sinais de controlo

O efeito dos 8 sinais de controlo é o seguinte:

Nome Efeito se = 0 Efeito se = 1

RegDst O endereço do registo a alterarvem da posição 20:16 (rt)

O endereço do registo a alterarvem da posição 15:11 (rd)

RegWrite Nenhum O registo especificado por RegDsté alterado para o valor presentena entrada Write data

ALUSrc 2º operando da ALU vem da saída2 do banco de registos.

2º operando da ALU é a constanteincluída na instrução

PCSrc PC assume valor PC+4 PC assume valor produzido por so-mador do endereço.

MemRead Nenhum Memória fornece valor pedido.MemWRite Nenhum Memória guarda valor especificado

por entrada WriteDataMemtoReg O valor a escrever no banco de re-

gistos provem da ALUO Valor a escrever no banco de re-gistos provem da memória

Branch Instrução não é beq Instrução é beq

ArqComp: Organização de um processador 23/44 2006-03-31

Detalhes das ligações da unidade de controlo

Read register 1

Read register 2

Write register

Write data

Write data

Registers

ALU

Add

Zero

Read data 1

Read data 2

Sign extend

16 32

Instruction [31Ð0] ALU

result

Add

ALU result

M u x

M u x

M u x

Address

Data memory

Read data

Shift left 2

4

Read address

Instruction memory

PC

1

0

0

1

0

1

M u x

0

1

ALU control

Instruction [5Ð0]

Instruction [25Ð21]

Instruction [31Ð26]

Instruction [15Ð11]

Instruction [20Ð16]

Instruction [15Ð0]

RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite

Control

ArqComp: Organização de um processador 24/44 2006-03-31

Page 13: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Especificação do controlador principal

Instrução RegDst ALUSrc MemtoReg RegWrite

R 1 0 0 1lw 0 1 1 1sw X 1 X 0beq X 0 X 0

Instrução MemRead MemWrite Branch ALUop[1] ALUop[0]

R 0 0 0 1 0lw 1 0 0 0 0sw 0 1 0 0 0beq 0 0 1 0 1

Para obter tabelas de verdade regulares, basta substituir o nome dasinstruções pelo seu código numérico.

ArqComp: Organização de um processador 25/44 2006-03-31

Tratamento de instruções do tipo R

Read register 1

Read register 2

Write register

Write data

Write data

Registers

ALU

Add

Zero

Read data 1

Read data 2

Sign extend

16 32

Instruction [31–0] ALU

result

Add

ALU result

M u x

M u x

M u x

Address

Data memory

Read data

Shift left 2

4

Read address

Instruction memory

PC

1

0

0

1

0

1

M u x

0

1

ALU control

Instruction [5–0]

Instruction [25–21]

Instruction [31–26]

Instruction [15–11]

Instruction [20–16]

Instruction [15–0]

RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite

Control

ArqComp: Organização de um processador 26/44 2006-03-31

Page 14: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Tratamento de instruções de load

Read register 1

Read register 2

Write register

Write data

Write data

Registers

ALU

Add

Zero

Read data 1

Read data 2

Sign extend

16 32

Instruction [31-0] ALU

result

Add

ALU result

M u x

M u x

M u x

Address

Data memory

Read data

Shift left 2

4

Read address

Instruction memory

PC

1

0

0

1

0

1

M u x

0

1

ALU control

Instruction [5-0]

Instruction [25-21]

Instruction [31-26]

Instruction [15-11]

Instruction [20-16]

Instruction [15-0]

RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite

Control

ArqComp: Organização de um processador 27/44 2006-03-31

Tratamento da instrução de salto condicional

Read register 1

Read register 2

Write register

Write data

Write data

Registers

Add

Read data 1

Read data 2

Sign extend

16 32

Instruction [31-0]

Add

ALU result

M u x

M u x

M u x

Address

Data memory

Read data

Shift left 2

4

Read address

Instruction memory

PC

1

0

0

1

0

1

M u x

0

1

ALU control

Instruction [5-0]

Instruction [25-21]

Instruction [31-26]

Instruction [15-11]

Instruction [20-16]

Instruction [15–0]

RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite

Control

ALU

Zero

ALU result

ArqComp: Organização de um processador 28/44 2006-03-31

Page 15: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Tratamento da instrução de salto incondicional

Read register 1

Read register 2

Write register

Write data

Write data

Registers

Add

Read data 1

Read data 2

Sign extend

16 32

Instruction [31-0]

Add

ALU result

M u x

M u x

M u x

Address

Data memory

Read data

Shift left 2

Shift left 2

4

Read address

Instruction memory

PC

1

0

0

1

1

0

M u x

0

1

M u x

0

1

ALU control

Instruction [5-0]

Instruction [25-21]

Instruction [31Ð26]

Instruction [15-11]

Instruction [20-16]

Instruction [15-0]

RegDst Jump Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite

Control

Instruction [25-0] Jump address [31-0]

26 28PC + 4 [31-28]

ALUZero

ALU result

ArqComp: Organização de um processador 29/44 2006-03-31

Limitações da implementação uniciclo

+ Unidades de controlo “uniciclo” não são usadas emprocessadores actuais.

+ O período de relógio é determinado pela instrução maisdemorada (provavelmente a instrução de load).

+ CPI=1, mas período de relógio demorado.+ Para CPUs muito simples, pode ser um abordagem viável.+ Para CPUs com instruções de complexidade muito diferente, não

é uma boa abordagem.+ Exemplos:

I divisão inteira é muito mais demorada que somaI operações de vírgula flutuante são muito mais demoradas

que operações sobre inteiros+ Esta abordagem não permite seguir a regra: reduzir o tempo de

processamento dos casos mais comuns+ Alternativa: dividir tratamento de instruções em etapas e usar

um período de relógio mais curto (um ciclo por etapa).ArqComp: Organização de um processador 30/44 2006-03-31

Page 16: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

1 Introdução

2 Caminho de dados (datapath)

3 Unidade de controlo uniciclo

4 Unidade de controlo multiciclo

ArqComp: Organização de um processador 31/44 2006-03-31

Características de uma implementação multiciclo

+ O tratamento de cada instrução é dividido em etapas.

+ O número de etapas varia com o tipo de instrução, mas é sempreo mesmo para uma dada instrução.

+ Durante um ciclo de relógio, o processador executa apenas umaetapa.

+ Uma unidade funcional pode ser usada mais que uma vezdurante o processamento de uma instrução, desde que seja emetapas diferentes.

+ É necessário inroduzir registos internos para preservar os sinaisproduzidos numa dada etapa e que sejam necessários numaetapa subsequente da mesma instrução.

+ Dados necessários para instruções subsequentes devem serpreservados em elementos de memória “visíveis” aoprogramador: banco de registos, PC ou memória.

ArqComp: Organização de um processador 32/44 2006-03-31

Page 17: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Datapath para implementação multiciclo

Data

Register #

Register #

Register #

PC Address

Instruction or dataMemory Registers ALU

Instruction register

Memory data

register

ALUOut

A

BData

+ uma única unidade de memória+ uma única ALU (em vez de uma ALU e dois somadores)+ registos internos adicionais:

registo de instruções (IR), registo de dados de memória (MDR),saída da ALU (ALUOut), entradas da ALU (A e B).

ArqComp: Organização de um processador 33/44 2006-03-31

Datapath para instruções básicas

Read register 1

Read register 2

Write register

Write data

Registers ALUZero

Read data 1

Read data 2

Sign extend

16 32

Instruction [25-21]

Instruction [20-16]

Instruction [15-0]

ALU result

M u x

M u x

Shift left 2

Instruction register

PC 0

1

M u x

0

1

M u x

0

1

M u x

0

1A

B 0 1 2 3

ALUOut

Instruction [15-0]

Memory data

register

Address

Write data

MemoryMemData

4

Instruction [15-11]

(faltam alguns elementos para o tratamento de saltos)

+ multiplexador adicional na entrada superior da ALU

+ multiplexador 4:1 na entrada inferior da ALU

ArqComp: Organização de um processador 34/44 2006-03-31

Page 18: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Datapath com sinais de controlo

Read register 1

Read register 2

Write register

Write data

Registers ALU

Zero

Read data 1

Read data 2

Sign extend

16 32

Instruction [25–21]

Instruction [20–16]

Instruction [15–0]

ALU result

M u x

M u x

Shift left 2

Instruction register

PC 0

1

M u x

0

1

M u x

0

1

M u x

0

1A

B 0

1

2

3

ALUOut

Instruction [15–0]

Memory data

register

Address

Write data

MemoryMemData

4

Instruction [15–11]

ALU control

Instruction [5–0]

MemtoReg ALUSrcB ALUOp

IorD MemRead MemWrite IRWrite RegDst RegWrite ALUSrcA

ArqComp: Organização de um processador 35/44 2006-03-31

Processador multiciclo completo

Read register 1

Read register 2

Write register

Write data

Registers ALUZero

Read data 1

Read data 2

Sign extend

16 32

Instruction

[31-26] Instruction

[25-21] Instruction

[20-16] Instruction

[15-0]ALU

result

M u x

M u x

Shift left 2

Shift left 2

Instruction register

PC 0

1

M u x

0

1

M u x

0

1

M u x

0

1A

B 0 1 2 3

M u x

0

1

2

ALUOut

Instruction [15-0]

Memory data

register

Address

Write data

MemoryMemData

4

Instruction [15-11]

PCWriteCond PCWrite

IorD MemRead MemWrite

MemtoReg IRWrite

PCSource

ALUOp

ALUSrcB

ALUSrcA

RegWrite

RegDst

26 28

Outputs

Control

Op [5-0]

ALU control

PC [31-28]

Instruction [25-0]

Instruction [5-0]

Jump address [31-0]

ArqComp: Organização de um processador 36/44 2006-03-31

Page 19: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Especificação dos sinais de controlo (1/2)

Sinais de controlo de 1 bit:

Nome Efeito se = 0 Efeito se = 1

RegDst Destino de escrita no RF é espe-cificado por rt

Destino de escrita no RF é espe-cificado por rd

RegWrite Nada Efectua-se escrita no RFALUSrcA 1º operando da ALU é PC 1º operando vem do registo A

MemRead Nada Memória fornece item de dadosMemWrite Nada Memória guarda item de dadosMemtoReg Valor a escrever em RF vem de

ALUOutValor a escrever em RF vem deMDR

IorD PC fornece endereço de memória ALUOut fornece endereço de me-mória

IRWrite Nada Saída de memória escrita em IRPCWrite Nada PC actualizadoPCWRiteCond Nada PC actualizado se saída Zero da

ALU estiver activa

ArqComp: Organização de um processador 37/44 2006-03-31

Especificação dos sinais de controlo (2/2)

Sinais de controlo de 2 bits:

Nome Valor Efeito

ALUop 00 ALU soma01 ALU subtrai10 O campo funct determina a operação da ALU

ALUSrcB 00 2ª entrada da ALU provém de B01 2ª entrada da ALU é 410 2ª entrada da ALU é IR[15:0], c/ extensão de sinal11 2ª entrada da ALU é IR[15:0], c/ extensão de sinal e

deslocamento de 2 bits à esquerda

PCSource 00 Saída da ALU é enviada para PC01 Valor de ALUOut é enviado para PC10 Destino de salto incondicional enviado para PC

ArqComp: Organização de um processador 38/44 2006-03-31

Page 20: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Etapas do processamento de instruções

Etapa Tipo R Mem Branch Jump

1 IR← Mem[PC];PC← PC+4

2 A← reg[IR[25:21]]; B← reg[IR[20:16]];ALUOut← PC + ExtSin(IR[15:0]) << 2

3 ALUOut← A op B ALUOut←A + ExtSin(IR[15:0])

if (A==B)PC← ALUOut

PC←{PC[31:28],IR[25:0],00}

4 Reg[IR[15:11]] ←ALUOut

Load:MDR← Mem[ALUOut]ou Store:Mem[ALUOut]← B

5 Load:Reg[IR[20:16]]← MDR

+ Banco de registos é “lido” em todos os ciclos, mas desde que IRnão se modifique, os valores à saída do banco são sempre osmesmos (qualquer actualização só acontece na etapa final dotratamento da instrução).

ArqComp: Organização de um processador 39/44 2006-03-31

Obtenção de instruções e descodificação

MemRead ALUSrcA = 0

IorD = 0 IRWrite

ALUSrcB = 01 ALUOp = 00

PCWrite PCSource = 00

ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00

Memory-reference FSM R-type FSM Branch FSM Jump FSM

Instruction decode/ Register fetch

Instruction fetch

0 1

Start

(Op = 'LW') or (Op = 'SW')

(Op = R-type)

(Op =

'BEQ

')

(Op =

'J')

ArqComp: Organização de um processador 40/44 2006-03-31

Page 21: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Acessos a memória

ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00

From state 1

(Op = 'LW') or (Op = 'SW')

Memory address computation

Memory access

MemRead IorD = 1

MemWrite IorD = 1

RegWrite MemtoReg =1

RegDst = 0

Memory read completion step

To state 0 (Figure 5.32)

2

3

4

5

Memory access

(Op = 'SW')

(Op =

'LW

')

ArqComp: Organização de um processador 41/44 2006-03-31

Instruções do tipo R

ALUSrcA = 1 ALUSrcB = 00 ALUOp = 10

From state 1

(Op = R-Type)

Execution

RegDst =1 RegWrite

MemtoReg = 0

To state 0 (Figure 5.32)

6

7R-type completion

ArqComp: Organização de um processador 42/44 2006-03-31

Page 22: Organização de um processadorpaginas.fe.up.pt/~jcf/ensino/disciplinas/leic/arq/2005...I salto condicional: ALU é usada para efectuar a comparação. ArqComp: Organização de um

Instruções de salto

Condicional Incondicional

ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01

PCWriteCond PCSource = 01

From state 1

(Op = 'BEQ')

Branch completion

To state 0 (Figure 5.32)

8

PCWrite PCSource = 10

From state 1

(Op = 'J')

Jump completion

To state 0 (Figure 5.32)

9

ArqComp: Organização de um processador 43/44 2006-03-31

Unidade de controlo completa

MemRead ALUSrcA = 0

IorD = 0 IRWrite

ALUSrcB = 01 ALUOp = 00

PCWrite PCSource = 00

ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00

ALUSrcA = 1 ALUSrcB = 00 ALUOp = 10

ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00

MemRead IorD = 1

MemWrite IorD = 1

RegDst = 1 RegWrite

MemtoReg = 0

RegDst = 1 RegWrite

MemtoReg = 0

PCWrite PCSource = 10

ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01

PCWriteCond PCSource = 01

Instruction decode/ register fetch

Instruction fetch

0 1

Start

(Op = 'LW') or (Op = 'SW')

(Op = R-typ

e)

(Op =

'BEQ

')

(Op =

'J')

Jump completion

9862

3

4

5 7

Memory read completon step

R-type completionMemory access

Memory access

ExecutionBranch

completionMemory address

computation

(Op = 'SW')

(Op =

'LW

')

ArqComp: Organização de um processador 44/44 2006-03-31