33
CPU CPU Implementa Implementa ç ç ão ão Multiciclo Multiciclo Prof. Carlos Bazilio [email protected]

Cpu Multiciclo

Embed Size (px)

DESCRIPTION

Resumo sobre estrutura multiciclo de CPU, usado durante a disciplina Organização de Computadores

Citation preview

  • CPUCPUImplementaImplementao o MulticicloMulticiclo

    Prof. Carlos [email protected]

  • AtAt ento, tento, tnhamos ...nhamos ...

  • Problemas comProblemas comImplementaImplementao Monocicloo Monociclo

    Ciclo de clock tem o mesmo tamanho para todas as instrues implementadas;

    Este ciclo definido pela instruo de maior durao (lw load word);

    Cada unidade funcional s pode ser usada 1 vez por ciclo;

    Com isso, algumas unidades funcionais so duplicadas, aumentando consideravelmente o custo do hardware.

  • ImplementaImplementao o MulticicloMulticiclo

    A execuo de cada instruo quebrada em passos;

    Cada passo gasta 1 ciclo de clock; Com isso, uma unidade funcional pode ser

    utilizada + de 1 vez por instruo, desde que em diferentes ciclos.

  • ImplementaImplementao o MulticicloMulticiclo

    Diferenas: nica memria; nica UAL; Registradores aps unidades funcionais.

  • ImplementaImplementao o MulticicloMulticicloCaminho de DadosCaminho de Dados

    Incluses: Registradores (IR, MDR, A, B, UALSada),

    Multiplexadores (End. Memria, UAL)

  • ImplementaImplementao o MulticicloMulticicloLinhas de ControleLinhas de Controle

  • ImplementaImplementao o MulticicloMulticicloCaminho CompletoCaminho Completo

  • Trecho da MTrecho da Mquinaquinade Estadosde Estados

  • Passos na execuPassos na execuoode uma instrude uma instruo (1/5)o (1/5)

    Busca da instruo e clculo do endereo seguinte:

    IR = Memria[PC]PC = PC + 4

  • Passos na execuPassos na execuoode uma instrude uma instruo (2/5)o (2/5)

    Decodificao da instruo e busca do registrador:

    A = Reg[IR[25-21]]B = Reg[IR[20-16]]

    UALSada = PC + extenso_sinal(IR[15-0]

  • Passos na execuPassos na execuoode uma instrude uma instruo (3/5)o (3/5)

    Execuo, clculo do endereo de memria ou desvio condicional: Referncia a memria:

    UALSada = A + extenso_sinal(IR[15-0]) Instruo aritmtica ou lgica:

    UALSada = A op B Desvio condicional:

    Se (A == B) PC = UALSada Desvio incondicional:

    PC = PC[31-28] || (IR[25-0]

  • Passos na execuPassos na execuoode uma instrude uma instruo (4/5)o (4/5)

    Final de execuo das instrues de escrita em memria e do tipo R: Referncia a memria (load):

    MDR = Memria [UALSada] Referncia a memria (store):

    Memria [UALSada] = B Instrues aritmticas ou lgicas:

    Reg[IR[15-11]] = UALSada

  • Passos na execuPassos na execuoode uma instrude uma instruo (5/5)o (5/5)

    Final de execuo das instrues de leitura memria: Referncia a memria (load):

    Reg[IR[20-16]] = MDR

  • ImplementaImplementao doo doControleControle

    No monociclo utilizamos um conjunto de tabelas-verdade;

    Na implementao de controle no projeto multiciclo veremos 2 abordagens: Mquina de estados finitos; Microprogramao.

  • ControleControleMMquina de Estados quina de Estados

    Finitos (1/6)Finitos (1/6)

  • ControleControleMMquina de Estados quina de Estados

    Finitos (2/6)Finitos (2/6)

  • ControleControleMMquina de Estados quina de Estados

    Finitos (3/6)Finitos (3/6)

  • ControleControleMMquina de Estados quina de Estados

    Finitos (4/6)Finitos (4/6)

  • ControleControleMMquina de Estados quina de Estados

    Finitos (5/6)Finitos (5/6)

  • MMquina de Estados quina de Estados Finitos Completa (6/6)Finitos Completa (6/6)

  • ImplementaImplementao doo doControleControle

  • MicroprogramaMicroprogramaoo A implementao real do MIPS possui um

    conjunto com cerca de 100 instrues; Cada gasta de 1 a 20 ciclos de clock para

    ser executada; Naturalmente, a funo de controle ser

    bem mais complexa, o que dificulta a sua especificao de forma grfica;

    Microprogramao o projeto de controle como um programa que implementa instrues de mquina em termos de estruturas mas simples (microinstrues).

  • MicroprogramaMicroprogramaoo Na microprogramao temos a

    representao simblica dos valores das linhas de controle;

    Assim, um microprograma est para os sinais de controle (microinstrues) assim como a linguagem de montagem estpara as instrues de mquina.

  • ArmazenamentoArmazenamentode um de um MicrocMicrocdigodigo

  • Formato da Formato da microinstrumicroinstruoo

    Deve seguir padres de projeto de linguagens de programao;

    Cada campo deve ser responsvel por um conjunto de sinais que no se sobreponham;

    Do formato apresentado no livro, temos 6 campos que controlam o caminho de dados e 1 que controla o seqenciamentodas microinstrues.

  • Formato da Formato da microinstrumicroinstruoo (1/4)(1/4)

    Controle da UAL (operao da UAL) Valores:

    Soma: faz com o que a UAL some Subtrao: idem para subtrao Cdigo de funo: usa o campo de funo da

    instruo SRC1 (entrada 1 da UAL)

    Valores: PC: PC como primeira entrada da UAL A: A como primeira entrada da UAL

  • Formato da Formato da microinstrumicroinstruoo (2/4)(2/4)

    SRC2 (entrada 2 da ual) Valores:

    B: B como segunda entrada da UAL 4: B constante 4 como segunda entrada da UAL Estendido: sada da extenso de sinal Estendido/deslocado: sada da extenso com deslocamento

    de 2 bits Controle de Registrador (leitura/escrita)

    Valores: Leitura: atualiza A e B com campos do IR Escrita da UAL: Escreve no banco com campo do IR (rd) e

    UALSaida como dado Escrita do MDR: Escreve no banco com campo do IR (rt) e

    MDR como dado

  • Formato da Formato da microinstrumicroinstruoo (3/4)(3/4)

    Memria (leitura/escrita na memria) Valores:

    Leitura partir do PC: L da memria usando o PC e escreve resultado no IR

    Leitura partir do UAL: L da memria usando o UALSaidae escreve resultado no MDR

    Escrita partir da UAL: Escreve na memria usando UALSaida como endereo e B como dado

    Controle PCEsc (Escrita no PC) Valores:

    UAL: Escreve a sada da UAL no PC UALOut-cond: Se sada Z da UAL ativa, atualiza PC com

    UALSaida End. Desvio Incondicional: Atualiza PC com endereo

    incondicional da instruo

  • Formato da Formato da microinstrumicroinstruoo (4/4)(4/4)

    Seqenciamento (Como escolher a prxima microinstruo) Valores:

    Seq: Escolhe a prxima microinstruosequencialmente

    Busca: Desvia para a primeira microinstruo Despacho i: Despacha de acordo com o tipo de

    instruo (opcode)

  • Arquitetura Arquitetura MulticicloMulticiclo

  • MicroprogramaMicroprograma

    BuscaUalOutBASubBeq1BuscaIncondJump1

    BuscaEscUalSeqBAFuncRform1

    BuscaEscUalSW2BuscaEscMdrSeqLerUalLW2

    Desp2ExtASomaMem1Desp1LeituraExtDesPCSoma

    SeqUalPC4PCSomaBuscaSeqPcEscMemRegsSrc2Src1UalIdent

  • BibliografiaBibliografia Organizao e projeto de computadores

    David A. Patterson & John L. HennessyLTC