of 44 /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

  • Author
    others

  • View
    1

  • Download
    0

Embed Size (px)

Text of Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/...Organização de um processador João...

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

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

    Read register 1

    Read register 2

    Write register

    Write data

    Registers ALUZero

    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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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])

  • 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

  • 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

  • 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

  • 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

  • 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

    -type)

    (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

  • 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