44
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 a . 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/45 2007-03-12

Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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, 3a. 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/45 2007-03-12

Page 2: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

3

Page 3: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

Generalidades

+ O desempenho do processador depende do número deinstruções executadas, do CPI e do período do relógio.

D =1

Texec=

1

N ·CPI · tclk=

F

N ·CPI

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

+ Organização do processador depende do conjunto deinstruções a 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 no 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/45 2007-03-12

Notas:

4

Page 4: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

Instruções suportadas

+ Instruções lógico-aritméticasÉ add $t3, $t2, $t1 $t3 = $t2 + $t1

É addi $t4, $t5, 120 $t4 = $t5 + 120Valor imediato de 16 bits (com sinal): sofre extensão de sinalpara 32 bits.

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

É sw $t0, 150($t1) mem[$t1+150] ← $t0Deslocamento (imediato) de 16 bits (sofre extensão de sinal).

+ Saltos condicionais e incondicionaisÉ 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.

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

ArqComp: Organização de um processador 5/45 2007-03-12

Notas:

5

Page 5: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

6

Page 6: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

Aspectos comuns

+ 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 a

memó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:É lógico-aritméticas: ALU efectua a operação;

É load/store: ALU é usada para cálculo do endereço efectivo;

É salto condicional: ALU é usada para efectuar a comparação.

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

ArqComp: Organização de um processador 7/45 2007-03-12

Notas:

7

Page 7: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

Vista geral do caminho de dados 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áriasfontes).

ArqComp: Organização de um processador 8/45 2007-03-12

Notas:

8

Page 8: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

9

Page 9: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

10

Page 10: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

11

Page 11: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

Obtenção de instruções

PC Read address

Instruction

Instruction memory

Add

4

ArqComp: Organização de um processador 12/45 2007-03-12

Notas:

12

Page 12: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

13

Page 13: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

14

Page 14: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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 controlo

do salto

Add SumDestino do

salto

PC+4

Sign extend

16 32

InstruÁ„o

Shift

left 2

ArqComp: Organização de um processador 15/45 2007-03-12

Notas:

15

Page 15: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

16

Page 16: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

17

Page 17: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

18

Page 18: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

19

Page 19: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

20

Page 20: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

Observações gerais sobre a descodificação

+ Os bits 31:26 da instrução contêm sempre o código dainstruçã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 está 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/45 2007-03-12

Notas:

21

Page 21: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

22

Page 22: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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 porRegDst é alterado para o valorpresente na entrada Write data

ALUSrc 2o operando da ALU vem dasaída 2 do banco de registos.

2o operando da ALU é a cons-tante incluída na instrução

PCSrc PC assume valor PC+4 PC assume valor produzido porsomador do endereço.

MemRead Nenhum Memória fornece valor pedido.MemWRite Nenhum Memória guarda valor especifi-

cado por entrada WriteDataMemtoReg O valor a escrever no banco de

registos provem da ALUO Valor a escrever no banco deregistos provem da memória

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

ArqComp: Organização de um processador 23/45 2007-03-12

Notas:

23

Page 23: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

24

Page 24: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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 nomedas instruções pelo seu código numérico.

ArqComp: Organização de um processador 25/45 2007-03-12

Notas:

25

Page 25: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

26

Page 26: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

27

Page 27: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

28

Page 28: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

29

Page 29: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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 uma abordagem viável.

+ Para CPUs com instruções de complexidade muito diferente,não é uma boa abordagem.

+ Exemplos:É divisão inteira é muito mais demorada que a adiçãoÉ operações de vírgula flutuante são muito mais demoradasque operações sobre inteiros

+ Esta abordagem não permite seguir a regra: reduzir o tempo deprocessamento dos casos mais comuns

+ Alternativa: dividir tratamento de instruções em etapas e usarum período de relógio mais curto (um ciclo por etapa).

ArqComp: Organização de um processador 30/45 2007-03-12

Notas:

30

Page 30: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

31

Page 31: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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 ésempre o mesmo para uma dada instrução.

+ Durante um ciclo de relógio, o processador executa apenasuma etapa.

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

+ É necessário introduzir registos internos para preservar ossinais produzidos numa dada etapa e que sejam necessáriosnuma etapa 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/45 2007-03-12

Notas:

32

Page 32: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

33

Page 33: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

34

Page 34: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

35

Page 35: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

36

Page 36: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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 é especifi-cado por rt

Destino de escrita no RF é especifi-cado por rd

RegWrite Nada Efectua-se escrita no RFALUSrcA 1o operando da ALU é PC 1o 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 ALU-

OutValor a escrever em RF vem de MDR

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/45 2007-03-12

Notas:

37

Page 37: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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 2a entrada da ALU provém de B01 2a entrada da ALU é 410 2a entrada da ALU é IR[15:0], c/ extensão de sinal11 2a 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/45 2007-03-12

Notas:

38

Page 38: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

39

Page 39: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

40

Page 40: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

41

Page 41: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

42

Page 42: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

43

Page 43: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

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/45 2007-03-12

Notas:

44

Page 44: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém guras de Computer Organization

Elementos de consulta

A explicação detalhada da organização interna tratada nestadisciplina encontra-se no livro recomendado:

+ [Patterson & Hennessy]:É Secções 5.1–5.5

As obras [Delgado & Ribeiro] (sec. 7.1 e 7.2) e [Arroz, Monteiro &Oliveira] (cap. 12) também descrevem a organização interna deprocessadores. Contudo, ambas as abordagens sãoconsideravelmente diferentes (embora complementares) daseguida aqui.

ArqComp: Organização de um processador 45/45 2007-03-12

Notas:

45