matite e gomma

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0

Validazione XHTML 1.0 Validazione CSS 3
Logo del Dipartimento di Matematica e Informatica, Insegnamento di Sistemi dedicati, link al Forum

Microprogrammazione: architetture e controllo

Lezione 06 di Sistemi dedicati

Docente: Giuseppe Scollo

Università di Catania
Dipartimento di Matematica e Informatica
Corso di Laurea Magistrale in Informatica, AA 2019-20

Indice

  1. Microprogrammazione: architetture e controllo
  2. argomenti della lezione
  3. limitazioni delle FSM
  4. l'idea della microprogrammazione
  5. architettura del controllo microprogrammato
  6. vantaggi del controllo microprogrammato
  7. codifica di microistruzioni: campo indirizzo
  8. codifica di microistruzioni: campo comando
  9. datapath microprogrammato
  10. esempio di architettura microprogrammata
  11. esempio di codifica delle microistruzioni (1)
  12. esempio di codifica delle microistruzioni (2)
  13. stesura di microprogrammi
  14. esempio di microprogramma per il calcolo del GCD
  15. riferimenti

argomenti della lezione

di che si tratta:

limitazioni delle FSM

i modelli FSM catturano bene gli aspetti di flusso del controllo e decisionali degli algoritmi, tuttavia mancano di gerarchia; ciò è fonte di limitazioni severe quando si tratta di sistemi di controllo complessi

esplosione degli stati

gestione delle eccezioni

flessibilità a tempo di esecuzione

l'idea della microprogrammazione

un controllo più flessibile si realizza con la sua microprogrammazione

la prima idea di microprogrammazione fu proposta da Maurice Wilkes, nel 1951, ma trovò ampia applicazione a partire dagli anni '60, per divenire dominante nel decennio successivo con la diffusione delle architetture CISC (Complex Instruction-Set Computer)

architettura del controllo microprogrammato

a partire dagli anni '80 le architetture RISC (Reduced Instruction-Set Computer) hanno conteso il campo a quelle CISC, per divenire quindi dominanti

Schaumont, Figura 6.3 - in contrasto con il controllo basato su FSM, 
          la microprogrammazione usa uno schema di controllo flessibile

Schaumont, Figure 6.3 - In contrast to FSM-based control, microprogramming uses a flexible control scheme

CSAR (Control Store Address Register): l'analogo del Program Counter convenzionale

vantaggi del controllo microprogrammato

il controllo microprogrammato risolve i problemi delle FSM:

codifica di microistruzioni: campo indirizzo

Schaumont, Figura 6.4 - esempio di formato di una parola di 
          microistruzione da 32 bit

Schaumont, Figure 6.4 - Sample format for a 32-bit
micro-instruction word

la definizione di formato e codifica delle microistruzioni è guidata da considerazioni di progetto; ecco un esempio di codifica

  • ipotesi: micro-istruzioni da 32 bit, metà per il comando al datapath, l'altra metà per l'indirizzo della prossima micro-istruzione; cominciamo da quest'ultimo
  • 12 bit per il campo indirizzo → memoria di controllo per max. 4K microistruzioni
  • 4 bit per il campo next: seleziona la modalità di calcolo del prossimo indirizzo da caricare in CSAR, v. tabella in figura

codifica di microistruzioni: campo comando

il formato in figura 6.4 non è ottimale, poiché il campo indirizzo è usato solo per istruzioni di salto: può avere altri usi con altre istruzioni

Schaumont, Figura 6.5 - esempio di codifiche verticale e 
          orizzontale

Schaumont, Figure 6.5 - Example of vertical versus horizontal
micro-programming

un altro risparmio di spazio o tempo si ha con l'alternativa per il campo comando:

  • codifica orizzontale : un bit distinto per ogni bit di controllo del datapath
  • codifica verticale : la più breve codifica del controllo del datapath

spesso si ha una soluzione mista, e.g. la codifica nel campo next:

Schaumont, Figura 6.6 - codifica di CSAR

Schaumont, Figure 6.6 - CSAR encoding

datapath microprogrammato

il datapath di una macchina microprogrammata consiste di tre elementi:

a ciascuno di questi elementi possono corrispondere alcuni bit di controllo nella codifica della microistruzione, per esempio:

inoltre il datapath può generare flag di stato per il controllore microprogrammato

esempio di architettura microprogrammata

ecco un esempio di controllo microprogrammato di un datapath che include: una ALU con registro a scorrimento, un banco di otto registri, un registro accumulatore e una porta di input

codifica mista orizzontale/verticale: globalmente orizzontale, poiché ogni unità nel datapath usa una porzione distinta della parola di controllo, codifica verticale dei segnali di controllo di ciascuna unità nella sua porzione

Schaumont, Figura 6.7 - un datapath microprogrammato

Schaumont, Figure 6.7 - A micro-programmed datapath

lo shifter genera anche bit di esito usati dal controllore microprogrammato per salti condizionati

campi della parola di controllo:

  • Nxt, Address: usati dal controllore microprogrammato, gli altri campi sono usati dal datapath
  • ALU: si possono codificare fino a 16 operazioni
  • SBUS: selezione di un operando sorgente per la ALU, fra gli otto registri del banco e la porta di input, l'altro operando sorgente è l'accumulatore
  • Dest: selezione della destinazione per l'operazione di ALU e shifter, fra i registri del banco e l'accumulatore
  • Shifter: selezione della funzione di scorrimento, fino a otto funzioni

il datapath preleva ed esegue una microistruzione ogni ciclo di clock

esempio di codifica delle microistruzioni (1)

la tabella 6.1 presenta un esempio di codifica di microistruzioni per l'architettura vista (prima parte):

Field Width Encoding

SBUS 4 Selects the operand that will drive the S-Bus
   0000 R0 0101 R5
   0001 R1 0110 R6
   0010 R2 0111 R7
   0011 R3 1000 Input
   0100 R4 1001 Address/Constant
ALU 4 Selects the operation performed by the ALU
   0000 ACC 0110 ACC | S-Bus
   0001 S-Bus 0111 not S-Bus
   0010 ACC + S-Bus 1000 S-Bus + 1
   0011 ACC – S-Bus 1001 ACC + 1
   0100 S-Bus – ACC 1010 0
   0101 ACC & S-Bus 1011 1

esempio di codifica delle microistruzioni (2)

tabella 6.1 (seconda parte):

Field Width Encoding

Shifter 3 Selects the function of the programmable shifter
   000 logical SHL(ALU) 100 arith SHL(ALU)
   001 logical SHR(ALU) 101 arith SHR(ALU)
   010 rotate left ALU 111 ALU
   011 rotate right ALU    
Dest 4 Selects the target that will store S-Bus
   0000 R0 0101 R5
   0001 R1 0110 R6
   0010 R2 0111 R7
   0011 R3 1000 ACC
   0100 R4 1111 unconnected
Nxt 4 Selects next-value for CSAR
   0000 CSAR + 1 1010 cf ? CSAR + 1 : Address
   0001 Address 0100 zf ? Address : CSAR + 1
   0010 cf ? Address : CSAR + 1 1100 zf ? CSAR + 1 : Address

stesura di microprogrammi

con la codifica definita in tabella 6.1, una microistruzione si forma selezionando una funzione per ciascuno dei moduli nel datapath e un indirizzo per il campo Address (con un opportuno valore di indifferenza per esso qualora Nxt sia nullo)

a mo' di esempio, vediamo come una istruzione RTL, quale ACC ← R2, si traduce in una microistruzione

Schaumont, Figura 6.8 - formazione di microistruzioni da 
          istruzioni RTL

Schaumont, Figure 6.8 - Forming micro-instructions from register-transfer instructions

  • l'operando sorgente è in R2: SBUS = 0010
  • la ALU passa l'input S-Bus all'output: ALU = 0001
  • lo shifter inoltra l'output dell'ALU senza modifiche: Shifter = 111
  • l'output dello shifter aggiorna l'accumulatore: Dest = 1000
  • CSAR ha l'incremento di default: Nxt = 0000 e Address ha un valore d'indifferenza, e.g. nullo

esempio di microprogramma per il calcolo del GCD

strutture di controllo complesse, quali cicli e strutture if-then-else, possono esprimersi come combinazione (o sequenza) di istruzioni RTL

il microprogramma è scritto in una notazione RTL simbolica immediatamente traducibile in microistruzioni in modo simile all'esempio precedente

Command Field || Jump Field

  IN → R0    
  IN → ACC    
Lcheck: (R0 – ACC) || JUMP_IF_Z Ldone
  (R0 – ACC) << 1 || JUMP_IF_C Lsmall
  (R0 – ACC) → R0 || JUMP Lcheck
Lsmall: ACC – R0 → ACC || JUMP Lcheck
Ldone:     JUMP Ldone

Schaumont, Listing 6.1 - Micro-program to evaluate a GCD

riferimenti

letture raccomandate:

per ulteriore consultazione: