Calcolatori Elettronici B a.a. 2008/2009 - RICHIAMI DI CALCOLATORI A Massimiliano Giacomin

Pagina creata da Nicole Paoletti
 
CONTINUA A LEGGERE
Calcolatori Elettronici B
    a.a. 2008/2009

RICHIAMI DI CALCOLATORI A

    Massimiliano Giacomin

                            1
IL LIVELLO HARDWARE
                   istruzioni macchina
                         ISA
                                          Organizzazione di
Livello                                   componenti per
architetturale                            implementare ISA
                     Reti logiche:
                 registri, ALU, MUX…
                                         Modelli logici:
Livello
                                         si parla di variabili,
logico
                                         valori… binari!
                    Porte logiche:
                    NOT, AND, …
                                         Modelli elettronici:
Livello                                  si parla di
circuitale                               tensioni, correnti, ecc.
                      Transistor
                                         Modelli fisici: si parla di
Livello
                                         dimensioni fisiche,
del layout
                                         materiali, ecc.
                                                                       2
Due tipi di unità funzionali
     • Elementi di tipo combinatorio:
           - valori di uscita dipendono solo da valori in ingresso
           - Es. Porte logiche, PLA
     • Elementi di memoria:
           - capaci di memorizzare un valore
           - Es. flip-flop, registri, memoria RAM

Due tipi di reti
     • RETI COMBINATORIE
         - Contengono solamente elementi di tipo combinatorio
                      Valori di uscita dipendono solo da valori di ingresso

     • RETI SEQUENZIALI
         - Contengono elementi di memoria
                      Valori di uscita dipendono dalla storia del sistema (sequenza
                      di tutti gli ingressi) – sintetizzata nel valore di stato contenuto
                      negli elementi di memoria.                                          3
RETI COMBINATORIE
Assumiamo n ingressi           m uscite
Specifica
    • Si possono specificare mediante due approcci alternativi:
            – tabelle di verità
                (n ingressi ⇒ 2n righe, per ciascuna si specificano tutte le m uscite)

              Es.
                      A    B      C
                       0   0      0
                                                 (OR esclusivo)
                       0   1      1
                       1   0      1
                       1   1      0

            – equazioni logiche (algebra booleana)
                Es. AB+AB

                                                                                         4
Realizzazione: Porte logiche, PLA, ROM, PLD (Programmable logic device)
            • Elettronica digitale: realizzazione degli elementi sopraindicati
              (es. Famiglie logiche TTL, CMOS) – noi non ce ne occupiamo
              direttamente
            • Determina parametri tecnologici che influenzano le prestazioni

Tempo di propagazione

    x                             F(x)
                   F

   Dal momento in cui l’ingresso è valido al momento in cui l’uscita è valida
   trascorre un certo intervallo temporale:

                                                     Al max dopo Tcombinatorio
               x          Tcombinatorio              siamo sicuri che l’uscita è
                                                     valida e stabile
            F(x)

                                                                                   5
RETI SEQUENZIALI
Elementi di memoria

    • Flip-flop di tipo D                  D                        Q
                                                  FLIP-FLOP
                                           C       TIPO D           Q

      Sensibile ai fronti: l’ingresso è memorizzato sul fronte (di salita) del clock

       - Vincoli sull’ingresso: tempo di setup e tempo di hold
         Ritardo sull’uscita: tempo di propagazione

                                                          •Tutti i tempi riferiti
                D                                          al fronte del clock
                        Tsetup Thold

                C                                         • In generale
                                                           Thold < Tprop
                                Tprop
                Q

                                                                                       6
TEMPORIZZAZIONE
• Sistemi sincroni: segnale di clock comune determina aggiornamento elementi di stato

                 CK                                                   CK
        B                A                             F(A)
               D ST1 Q                   F                        D ST2 Q

    CLOCK
                              B                   C                    D
    ST1(IN)
                         A                B                   C
    ST1(OUT)

                             F(A)               F(B)                 F(C)
    ST2(IN)
                                         F(A)                 F(B)
    ST2(OUT)

      • Al fronte di clock, un elemento di stato memorizza il valore di ingresso
      • Nel periodo di clock, un nuovo valore di ingresso viene propagato
        dalla parte combinatoria e sarà disponibile al successivo fronte
                                                                                    7
CK
F(A)                A
       D        Q           F

           CLOCK
                            F(A)          F2(A)           F3(A)
                D
                        A          F(A)           F2(A)
                Q

                                                                  8
Temporizzazione e vincoli temporali

             CK                                                   CK
         D ST1 Q                        F                       D ST2 Q

              T1prop           Tcombinatorio          T2setup

• Dopo T1prop + Tcombinatorio, ingresso a ST2 è stabile: anticipo di almeno T2setup

                  Tclock ≥ T1prop + Tcombinatorio + T2setup

• Vincolo per rispetto di T2hold : ingresso ST2 permane per almeno T2hold dopo il fronte
                  T1prop + Tcombinatorio ≥ T2hold

                   [verificato automaticamente perché Thold < Tprop ]
                                                                                       9
ESTENDENDO QUESTE CONSIDERAZIONI AD UNA RETE COMPLESSA…

Occorre considerare il caso peggiore; in particolare il “cammino critico”
vincola la lunghezza del periodo di clock e quindi limita la frequenza ottenibile!

                   Tclock ≥ Tprop + Tcammino critico + Tsetup

                                   Nel caso peggiore!
                                                                                     10
Specifica di una rete sequenziale: macchine a stati finiti (FSM)

   Occorre definire:
      • L’insieme degli ingressi (dominio I) e delle uscite (dominio U)
      • L’insieme degli stati S
      • Dinamica (come si passa da uno stato all’altro):
                     funzione f: S*I → S
      • Come si generano le uscite
                     funzione η       η: S → U            Modello di Moore
                                      η: S*I → U          Modello di Mealy

                          S2: U2     I2
                                                S4:U4       [Modello di Moore]
                     I2            I1
                                           I2
      I1
             S1:U1        I1
                                   S3:U3
                                                    I1,I2

                                                                                 11
Implementazione di una rete sequenziale

                Logica combinatoria:        Uscite
Solo mod.            Funzione
 Mealy               di uscita η

 Ingressi       Logica combinatoria:
                     Funzione
                  di stato futuro f

               clock    Registro di stato

                                                     12
IL LIVELLO HARDWARE
                   istruzioni macchina
                         ISA
                                          Organizzazione di
Livello                                   componenti per
architetturale                            implementare ISA
                     Reti logiche:
                 registri, ALU, MUX…
                                         Modelli logici:
Livello
                                         si parla di variabili,
logico
                                         valori… binari!
                    Porte logiche:
                    NOT, AND, …
                                         Modelli elettronici:
Livello                                  si parla di
circuitale                               tensioni, correnti, ecc.
                      Transistor
                                         Modelli fisici: si parla di
Livello
                                         dimensioni fisiche,
del layout
                                         materiali, ecc.
                                                                       13
Nella progettazione della CPU, faremo riferimento alle seguenti istruzioni:

    • Istruzioni aritmetiche: add, sub, and, or, slt
           add rd, rs, rt       // rd ← rs + rt
           slt rd, rs, rt       // rd = 1 se rs < rt, 0 altrimenti
    • Istruzioni di accesso a memoria:
           lw rt, offset(rs)     // rt ← M[rs+offset]
           sw rt, offset(rs)     // M[rs+offset] ← rt
    • Istruzioni di salto condizionato:
           beq rs, rt, offset    // se rs=rt salta a offset istruzioni rispetto a PC
                                     (aggiornato a istruzione corrente + 4 bytes!)
                                     in bytes: PC + (offset | | 00)
    • Salto incondizionato:
           j offset              // salta all’indirizzo in istruzioni ottenuto da:
                                    4 bit di PC | | offset            [30 bit]
                                    indirizzo in byte è la concatenazione di
                                    4 bit di PC | | offset | | 00      [32 bit]
                                                                                       14
Codifica delle istruzioni viste:
 31                 26 25        21 20        16 15    11 10              6 5             0

          Op            rs               rt       rd       Shift_amount         funct             Aritmetiche:
                                                                                                  Tipo-R
      000000                      op                           00000            ADD:   100 000
                                                                                SUB:   100 010
                                                                                AND:   100 100
                                                                                OR:    100 101
                                                                                SLT:   101 010

 31                 26 25        21 20        16 15                                       0

          Op                rs           rt                         offset                        lw, sw, beq:
                                                                                                  Tipo-I
      10x011
        x = 0: lw                                     +
        x = 1: sw
      000100                                              PC + (offset || 00)
        beq                        =

 31                 26 25                                                                 0
          Op                                                   offset                            J: Tipo-J

                                                          PC || offset || 00                                     15
Glossario Visuale: indica le risorse individuate in base ad una prima analisi

           Segnali di controllo

            dati

                                   IRWrite

                                     Registro                                zero
                                     Istruzioni                      A
                                        Istruzione                   L
       P                                 [31-26]
                                                                     U       ris
       C                                Istruzione
                                         [25-21]
                                                                         AluCom
                                        Istruzione
                                         [20-16]
                                        Istruzione
                                          [15-0]
                                                                            AluOp
                                                             funct   UC
                                  [Se è necessario                   ALU
                                   memorizzare
                                   istruzione corrente]

• Registri: capaci di memorizzare un insieme di bit
           (si possono ottenere mediante array di Flip-flop di tipo D)

                                                                                    16
• Register File:
            Read register                         • Lettura: asincrona rispetto al clock,
            number 1              Read
                                 data 1              senza segnale di controllo read
            Read register
            number 2                              • Scrittura: attiva sul fronte del clock
                 Register file
            Write
            register
                                                     e solo quando write è affermato
                                  Read
                                 data 2
                                                  • Implementato con registri, multiplexer
            Write
            data       Write                        (per read port) e decodificatore (per write port)

• Memorie (per memorizzare quantità maggiori di dati)
                                 MemWrite

                    Indirizzo                                  • Lettura asincrona risp. clock,
                                                                 scrittura attiva sul fronte del clock
                                          Dato letto
                                                               • NB: forma semplificata
                    Dato scritto
                                                                 (cfr. SRAM, DRAM, ecc.)
                                 MemRead

 NB: il clock è presente ma non viene indicato per rendere le figure più chiare.
                                                                                                    17
Schema del processore (e memoria)
Durante l’esecuzione di un programma applicativo Pa, i circuiti interpretano le istruzioni
  del programma in linguaggio macchina costituito dal < Pa (tradotto) ° i servizi OS>

                                         Unità di controllo

                                                                                SEGNALI DI
                                                                                CONTROLLO
                                                   Condizioni:
                                                   segnali da
                                                   Datapath a U.C.
P          Memoria         Registro
C                          Istruzioni
          indirizzo
                                                               UNITA’ DI ELABORAZIONE
                            Istruzione
                             [31-26]
                                                                     (DATAPATH)
          Programma Pa

             Os Servizi

                                                                                             18
Controllo di un processore a singolo ciclo:
              l’idea di base

                              controlli
         Unità di controllo
          combinatoria
                              condizioni

                                           UNITA’ DI ELABORAZIONE
                                                 (DATAPATH)

P    Memoria
C

    indirizzo

    Programma Pa

       Os Servizi

                                                                    19
Idea di base
   • Ad ogni ciclo di clock, la memoria istruzioni fornisce l’istruzione corrente
   • L’unità di controllo è una rete combinatoria che:
          - riceve in input l’istruzione corrente
          - produce in output segnali di controllo all’unità di elaborazione:
            controllo multiplexer, read e write ad elementi di memoria, controllo ALU
   • I segnali di controllo determinano, a seconda del tipo di istruzione:
          - il percorso sorgente-destinazione dei dati mediante:
                   indirizzi e numeri registri + segnali di controllo ai multiplexer
          - le operazioni aritmetiche e logiche effettivamente svolte mediante:
                   segnali di controllo alle ALU
          - se un elemento di memoria deve scrivere e/o leggere un dato mediante:
                   segnali di tipo read/write
   • Avremo quindi la determinazione di un “percorso” del tipo:

                 CK                                               CK
               Sorgente                   F                      Dest.

dove: - sorgente e destinazione possono coincidere
      - valore sorgente disponibile “nel corso” del ciclo, destinazione scritta alla fine
                                                                                            20
Il MIPS

                                 Instruction [25– 0]         Shift         Jump address [31– 0]
                                                            left 2
                                                       26            28                                                                            0            1

                                             PC+4 [31– 28]                                                                                         M            M
                                                                                                                                                   u            u
                                                                                                                                                   x            x
                                                                                                                                    ALU
                                                                                                                              Add result           1            0
               Add                                                                                                 Shift
                                                                                RegDst
                                                                                Jump                              left 2
     4                                                                          Branch
                                                                                MemRead
                                       Instruction [31– 26]
                                                                     Control    MemtoReg
                                                                                ALUOp
                                                                                MemWrite
                                                                                ALUSrc
                                                                                RegWrite

                                       Instruction [25– 21]                      Read
     Read                                                                        register 1
PC   address                                                                                      Read
                                       Instruction [20– 16]                                      data 1
                                                                                 Read
                                                                                 register 2                                       Zero
                   Instruction                                       0                  Registers Read                        ALU ALU
                       [31– 0]                                                                                     0                                        Read
                                                                     M           Write           data 2                          result    Address                  1
     Instruction                                                      u          register                          M                                        data
                                                                                                                   u                                                M
       memory                          Instruction [15– 11]           x                                                                                              u
                                                                     1           Write                             x                                    Data
                                                                                 data                                                                                x
                                                                                                                   1                                   memory       0
                                                                                                                                           Write
                                                                                                                                           data
                                                                                              16             32
                                       Instruction [15– 0]                                           Sign
                                                                                                    extend           ALU
                                                                                                                    control

                                                                               Instruction [5– 0]

                                                                                                                                                                         21
Nota sui segnali di controllo:
    - i segnali di controllo sono determinati in modo “combinatorio”
     soltanto sulla base del campo Opcode
    - non è in generale possibile prevedere l’ordine di arrivo dei segnali
     di controllo: le operazioni non sono eseguite “in sequenza”,
     controllo combinatorio
     (è necessario che Tclock sia sufficientemente lungo)

                                                                        22
Esempio: istruzione di tipo-R

                                  Instruction [25– 0]         Shift         Jump address [31– 0]
                                                             left 2
                                                        26            28                                                                            0            1

                                              PC+4 [31– 28]                                                                                         M            M
                                                                                                                                                    u            u
                                                                                                                                                    x            x
                                                                                                                                     ALU
                                                                                                                               Add result           1            0
                Add                                                                                                 Shift
                                                                                 RegDst
                                                                                 Jump                              left 2
      4                                                                          Branch
                                                                                 MemRead
                                        Instruction [31– 26]
                                                                      Control    MemtoReg
                                                                                 ALUOp
                                                                                 MemWrite
                                                                                 ALUSrc
                                                                                 RegWrite

                                        Instruction [25– 21]                      Read
      Read                                                                        register 1
PC    address                                                                                      Read
                                        Instruction [20– 16]                                      data 1
                                                                                  Read
                                                                                  register 2                                       Zero
                    Instruction                                       0                  Registers Read                        ALU ALU
                        [31– 0]                                                                                     0                                        Read
                                                                      M           Write           data 2                          result    Address                  1
      Instruction                                                      u          register                          M                                        data
                                                                                                                    u                                                M
        memory                          Instruction [15– 11]           x                                                                                              u
                                                                      1           Write                             x                                    Data
                                                                                  data                                                                                x
                                                                                                                    1                                   memory       0
                                                                                                                                            Write
                                                                                                                                            data
                                                                                               16             32
                                        Instruction [15– 0]                                           Sign
                                                                                                     extend           ALU
                                                                                                                     control

                                                                                Instruction [5– 0]

                                                                                                                                                                          23
Esempio: istruzione di load

                                  Instruction [25– 0]         Shift         Jump address [31– 0]
                                                             left 2
                                                        26            28                                                                            0            1

                                              PC+4 [31– 28]                                                                                         M            M
                                                                                                                                                    u            u
                                                                                                                                                    x            x
                                                                                                                                     ALU
                                                                                                                               Add result           1            0
                Add                                                                                                 Shift
                                                                                 RegDst
                                                                                 Jump                              left 2
      4                                                                          Branch
                                                                                 MemRead
                                        Instruction [31– 26]
                                                                      Control    MemtoReg
                                                                                 ALUOp
                                                                                 MemWrite
                                                                                 ALUSrc
                                                                                 RegWrite

                                        Instruction [25– 21]                      Read
      Read                                                                        register 1
 PC   address                                                                                      Read
                                        Instruction [20– 16]                                      data 1
                                                                                  Read
                                                                                  register 2                                       Zero
                    Instruction                                       0                  Registers Read                        ALU ALU
                        [31– 0]                                                                                     0                                        Read
                                                                      M           Write           data 2                          result    Address                  1
      Instruction                                                      u          register                          M                                        data
                                                                                                                    u                                                M
        memory                          Instruction [15– 11]           x                                                                                              u
                                                                      1           Write                             x                                    Data
                                                                                  data                                                                                x
                                                                                                                    1                                   memory       0
                                                                                                                                            Write
                                                                                                                                            data
                                                                                                                                                      read
                                                                                               16             32
                                        Instruction [15– 0]                                           Sign
                                                                                                     extend           ALU
                                                                                                                     control

                                                                                Instruction [5– 0]

                                                                                                                                                                          24
Esempio: istruzione beq

                                  Instruction [25– 0]         Shift         Jump address [31– 0]
                                                             left 2
                                                        26            28                                                                            0            1

                                              PC+4 [31– 28]                                                                                         M            M
                                                                                                                                                    u            u
                                                                                                                                                    x            x
                                                                                                                                     ALU
                                                                                                                               Add result           1            0
                Add                                                                                                 Shift
                                                                                 RegDst
                                                                                 Jump                              left 2
      4                                                                          Branch
                                                                                 MemRead
                                        Instruction [31– 26]
                                                                      Control    MemtoReg
                                                                                 ALUOp
                                                                                 MemWrite
                                                                                 ALUSrc
                                                                                 RegWrite

                                        Instruction [25– 21]                      Read
      Read                                                                        register 1
 PC   address                                                                                      Read
                                        Instruction [20– 16]                                      data 1
                                                                                  Read
                                                                                  register 2                                       Zero
                    Instruction                                       0                  Registers Read                        ALU ALU
                        [31– 0]                                                                                     0                                        Read
                                                                      M           Write           data 2                          result    Address                  1
      Instruction                                                      u          register                          M                                        data
                                                                                                                    u                                                M
        memory                          Instruction [15– 11]           x                                                                                              u
                                                                      1           Write                             x                                    Data
                                                                                  data                                                                                x
                                                                                                                    1                                   memory       0
                                                                                                                                            Write
                                                                                                                                            data
                                                                                               16             32
                                        Instruction [15– 0]                                           Sign
                                                                                                     extend           ALU
                                                                                                                     control

                                                                                Instruction [5– 0]

                                                                                                                                                                          25
Esempi di processori che usano controllo a singolo ciclo:
    NESSUNO!
Perché?
   • Periodo di clock: abbastanza lungo per garantire la stabilità dei segnali
     attraverso il percorso più lungo ⇒ tempo di esecuz. costante per diverse istruz.
                     Istruzioni “più lente” limitano le istruzioni “più veloci”!

            Es. lw
                           Memoria        Reg. File
                            Istruz.
                                                           A                  Reg. File
                                                           L      Memoria
                                                                   Dati
                                                           U

       Es. Tipo-R

                           Memoria        Reg. File        A      Reg. File
                            Istruz.                        L
                                                           U

                                                                                          26
Limitazione aggravata da
  - istruzioni che utilizzano decine di unità funzionali in serie, ad esempio
    comprendenti calcoli in virgola mobile!
        CPI = 1, ma Tclock alto, ovvero frequenza di clock molto bassa!

        Nel complesso, il tempo di esecuzione di una istruzione è sempre pari al
        caso peggiore, ovvero a quello dell’istruzione più complessa e lunga

• Altro svantaggio: duplicazione dell’HW ⇒ costi elevati!

        Nell’esempio del MIPS, come visto:
            - occorrono due memorie diverse [dati e istruzioni]
              [NB: questo va comunque bene perché negli attuali calcolatori
                    si usa memoria cache + pipeline]
            - occorrono tre ALU, una per istruzioni aritmetiche | confronto
              operandi in beq | calcolo indirizzo lw e sw, una per calcolare PC+4
              ed una per calcolare indirizzo di salto beq
              [la cosa si complica considerando modalità di indirizzamento
                complesse, ad esempio quelle con autoincremento, o istruzioni
                che effettuano operazioni in virgola mobile]
                                                                                    27
CONTROLLO MULTICICLO: L’IDEA DI BASE
                                                        Istruzione lunga
                                                        Istruzione potenzialmente
                                                        breve
                    Tistruzione costante
       e pari a T medio di esecuzione per istruzione

 Suddividere le istruzioni in “fasi”: un ciclo di clock per una fase!

       T1esecuzione                T2esecuzione

NB: T2esecuzione (il caso peggiore) può in generale essere maggiore del precedente!
    Tuttavia, le istruzioni più lunghe sono anche meno frequenti:
    principio “rendere più veloce l’evento più frequente” comporta un guadagno!
                                                                                      28
Ciascuna fase deve essere sufficientemente breve (Tclock breve)

              Bilanciare la suddivisione in fasi,
              evitare di mettere in serie più unità funzionali lente.
               Faremo in modo di non mettere in serie più di una delle operazioni:
                - accesso in memoria (istruzioni o dati)
                - accesso al register file (due letture e una scrittura)
                - operazioni della ALU
               (NB: accesso/scrittura in un registro singolo considerato non oneroso)

               Ciascuna di queste unità [memoria, register file, ALU] necessita di
               registri temporanei per memorizzarne il risultato.
                 - registri temporanei: salvano dati prodotti in un ciclo di clock e
                      utilizzati dalla stessa istruzione in un ciclo di clock successivo
                 - registri visibili al prog: dati utilizzati da istruzioni successive

                                                                                       29
Il MIPS                   (Vedi Lezione CalcA “CPU multiciclo”, lucidi 7—20, per la specifica progressiva)

                                                   PCWriteCond            PCSource
                                                     PCWrite        ALUOp
                                                       IorD Outputs
                                                                     ALUSrcB
                                                   MemRead
                                                                     ALUSrcA
                                                   MemWrite Control
                                                                     RegWrite
                                                   MemtoReg
                                                                  Op       RegDst
                                                      IRWrite    [5–0]
                                                                                                                                                                 0
                                                                                                                                                                     M
                                                                                                                                                Jump             1 u
                                                Instruction [25–0]                                                         26            28     address [31-0]       x
                                                                                                                                 Shift
                                                                                                                                left 2                           2
                                    Instruction
                                       [31-26]                                                                                  PC [31-28]
PC     0                                                                                                            0
       M                            Instruction                                Read
                                      [25–21]                                  register 1                           M
        u   Address                                                                                                  u
        x                                                                                  Read                      x
                                    Instruction                                Read                         A                       Zero
       1        Memory
                                      [20–16]                                  register 2 data 1                    1
                                                                0                                                               ALU ALU       ALUOut
                      MemData                                                      Registers
                                    Instruction                 M              Write                                               result
                                                                                           Read             B
                                        [15–0]       Instruction u             register data 2                      0
            Write                 Instruction        [15–11]     x                                              4   1 M
            data                                                               Write                                  u
                                    register                    1              data                                 2 x
                                     Instruction                     0                                              3
                                         [15–0]                      M
                                                                      u
                                                                      x
                                    Memory                           1
                                      data                                16                32                             ALU
                                                                                  Sign              Shift
                                    register                                                                              control
                                                                                 extend            left 2

                                                                          Instruction [5–0]

     NB: l’unità di controllo si può specificare e realizzare in vari modi…
                                                                                                                                                                     30
Instruction decode/
                                                                                  Instruction fetch                                register fetch
                                                                0
                                                                      MemRead                                                   1
                                                                     ALUSrcA = 0
                                                                       IorD = 0                                                     ALUSrcA = 0
                                      Start                             IRWrite                                                     ALUSrcB = 11
                                                                    ALUSrcB = 01                                                     ALUOp = 00
                                                                     ALUOp = 00
                                                                       PCWrite
                                                                    PCSource = 00
                                                                                                                e)

                                                                                                                               ')
                                                                                                            -typ

                                                                                                                            EQ

                                                                                                                                        (Op = 'J')
                                                                                                         = R

                                                                                                                           'B
                                                                                                  (O p

                                                                                                                       =
    Memory address                                                 W   ')

                                                                                                                       p
                                                              = 'S                                      Branch

                                                                                                                     (O
                                                                                                                                                     Jump
     computation                                         Op
                                                    or (                    Execution                 completion                                     completion
                                              'LW')
                                            =
2                                     (Op                       6                             8                                 9
                                                                                                   ALUSrcA = 1
      ALUSrcA = 1                                                    ALUSrcA =1                   ALUSrcB = 00
     ALUSrcB = 10                                                                                                                     PCWrite
                                                                    ALUSrcB = 00                   ALUOp = 01
      ALUOp = 00                                                                                                                    PCSource = 10
                                                                     ALUOp = 10                    PCWriteCond
                                                                                                  PCSource = 01
                             (O
        (Op = 'LW')

                               p
                                  =
                                   'S
                                      W
                                       ')

                      Memory                      Memory
                      access                      access                           R-type completion
3                                 5                             7

                                                                     RegDst = 1
      MemRead                           MemWrite                      RegWrite
       IorD = 1                          IorD = 1                   MemtoReg = 0

                      Write-back step
4

      RegDst = 0
       RegWrite
     MemtoReg = 1

                                                                                                                                                                  31
Controllo di un processore-multiciclo:
 Riepilogo specifica e realizzazione

    Initial       Finite state
                                     Microprogram
representation     diagram

 Sequencing       Explicit next   Microprogram counter
   control       state function     + dispatch ROMS

     Logic          Logic                Truth
representation    equations             tables

Implementation   Programmable          Read only
  technique        logic array          memory

                                                         32
Calcolo CPI e Prestazioni nei sistemi a singolo ciclo e multiciclo
1) Calcolo prestazioni nei sistemi a singolo ciclo

       CPI = 1
       Tclock = max{Ta + … Tk}
                ovvero la serie più lenta di “operazioni atomiche” [cammino critico]
       Tesecuzione = #istruzioni * CPI * Tclock = #istruzioni * Tclock

2) Calcolo CPI e prestazioni nei sistemi multi-ciclo

     Dato un certo carico di lavoro con frequenze relative delle istruzioni f1, …, fn
          CPI = f1*CPI1 + f2*CPI2 + … + fn*CPIn
     Tclock = max{T1, … ,Tm}        [operazioni atomiche eseguite in un ciclo di clock]
     Tesecuzione = #istruzioni * CPI * Tclock

 3) Confronto di prestazioni tra sistemi diversi [su un carico/prog. determinato]
                   T1esecuzione       CPI1*T1clock
                                  =
                   T2esecuzione       CPI2*T2clock
                                                                                     33
Puoi anche leggere