Firmware Multiplier. Sommario

Documenti analoghi
Firmware Multiplier. Sommario

Lezione 7 Sommatori e Moltiplicatori

Lezione 7 ALU: Moltiplicazione e divisione

La ALU. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Firmware Division. Sommario

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Firmware Division. Sommario

Firmware Division & Floating pointer adder

Sommatori e Moltiplicatori

Lezione 7 Sommatori e Moltiplicatori

Firmware Division & Floating gpointer adder

Sommatori e Moltiplicatori. Sommario

Sommatori e Moltiplicatori

Firmware Division, UC & Floating gpointer adder

Moltiplicatori HW e ALU

Floating pointer adder & Firmware Division. Sommario

Firmware Division, UC & Floating pointer adder

Es. 6 Moltiplicazione e divisione tra

Es. 8 Moltiplicazione e divisione tra numeri interi (Firmware)

ALU + Bistabili. Sommario

ALU + Bistabili. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Lezione 5. Lezione 5

Lezione 5. Lezione 5. Aritmetica dei microprocessori. Unità Aritmetico Logica (ALU) Unità aritmetico logica (ALU) Unità aritmetico logica (ALU)

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Architetture Digitali

Lezione 5. Lezione 5. Aritmetica dei microprocessori. Unità Aritmetico Logica (ALU) Unità aritmetico logica (ALU) Materiale di riferimento.

Lezione 6. Lezione 6. Moltiplicatori a look-up table. Moltiplicatori a look-up table. Moltiplicatori veloci. Moltiplicatori a look-up table.

Architettura degli Elaboratori

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo

Esercitazione del 17/03/2005

Macchine dedicate e Macchine programmabili

Moltiplicazione e Divisione tra numeri relativi

Moltiplicazione tra numeri interi. Moltiplicazione e Divisione tra numeri relativi. Moltiplicazione: algoritmo carta e penna (base 2)

Calcolatori Elettronici A a.a. 2008/2009

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

Lezione 6. Lezione 6

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori

Circuiti combinatori notevoli

Logica binaria. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Floating pointer adder ISA

Architetture aritmetiche

Macchine a Stati finiti

SISTEMI DIGITALI COMPLESSI

Macchine a Stati finiti. Sommario

Linguaggio macchina e register file

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Reti combinatorie. Reti combinatorie (segue)

Reti combinatorie (segue) Reti combinatorie. Lezione 2. Architettura degli Elaboratori A. Sperduti 1

Registro a 4 bit P 1 D P 1 D C 0

Una CPU multi-ciclo. Sommario

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Forme canoniche, circuiti notevoli, criteri di ottimizzazione

REALIZZAZIONE DI SISTEMI DI ELABORAZIONE NUMERICA DEI SEGNALI. E. Del Re - Fondamenti di Elaborazione Numerica dei Segnali 1

Una CPU multi-ciclo. Sommario

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

A cosa servono i moltiplicatori? Tanti algoritmi prevedono l utilizzo di moltiplicazioni!

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Una CPU multi-ciclo. Sommario

Progetto CPU a singolo ciclo

Componenti notevoli combinatori

Circuiti combinatori notevoli

ISA (Instruction Set Architecture) della CPU MIPS32

Unita aritmetica e logica. Input e output della ALU. Rappresentazione degli interi. Rappresentazione in modulo e segno. Aritmetica del calcolatore

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Esercitazione 11. Control-Unit. Data-Path

Circuti AND, OR, NOT Porte logiche AND

Fondamenti di Informatica A. A / 1 9

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo. Classificazione. I microcontrollori

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Logica binaria. Cap. 1.1 e 2.1 dispensa

Le memorie Cache n-associative

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

ALU e Control Unit. ALU e Control Unit

La CPU a singolo ciclo

Macchine a Stati finiti

Università dell'insubria - Luigi Lavazza 1

Architettura hardware

La CPU a singolo ciclo

Pag. 2. Somma binaria. Somma binaria. Somma binaria. Altre operazioni aritmetiche. La somma si può fare colonna per colonna

ISA (Instruction Set Architecture) della CPU MIPS

Macchine a Stati finiti

Il Livello Logico-Digitale. Blocchi funzionali combinatori

Carry-select adder per l'arm6

Pipeline criticità e forwarding

Le memorie Cache. Sommario

I bistabili ed il register file

Transcript:

Firmware Multiplier Prof. lberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson 5a ed.: B.6 & 3.4 /33 Il moltiplicatore firmware Sommario Ottimizzazione dei moltiplicatori firmware 2/33

L approccio firmware Nell approccio firmware, viene inserita nella LU una unità di controllo e dei registri. L unità di controllo attiva opportunamente le unità aritmetiche ed il trasferimento da/verso i registri. pproccio controllore-datapath. Viene inserito un microcalcolatore dentro la LU. Il primo microprogramma era presente nell IBM 360 (964). 3/33 L approccio firmware vs hardware La soluzione HW è più veloce ma più costosa per numero di porte e complessità dei circuiti. La soluzione firmware risolve l operazione complessa mediante una sequenza di operazioni semplici. E meno veloce, ma più flessibile e, potenzialmente, adatta ad inserire nuove procedure. La soluzione HW è percorsa per le operazioni frequenti: la velocizzazione di operazioni complesse che vengono utilizzate raramente non aumenta significativamente le prestazioni (legge di mdahl). 4/33 2

lgoritmi per la moltiplicazione Il razionale degli algoritmi firmware della moltiplicazione è il seguente. Si analizzano sequenzialmente i bit del moltiplicatore e: ) Si mette 0 nella posizione opportuna (se il bit analizzato del moltiplicatore = 0). 2) Si mette una copia del moltiplicando nella posizione opportuna (se il bit analizzato del moltiplicatore è = ). Moltiplicando Moltiplicatore Prodotto 0 x 0 = 0 + 0 0 0 0 0 - --------------------- 0 0 - - - 0 0 0 0 5/33 Shift (scalamento) Dato su bit: a j = a j k k shift amount (>, =, < 0). Effettuato al di fuori delle operazioni selezionate dal Mux della LU, da un circuito denominato Barrel shifter. Tempo comparabile con quello della somma. Operazioni codificate in modo specifico nell IS. a n a n- a a 0 Shift dx 0 a n a 2 a Il bit a 0 si perde. Il bit a n = 0. 6/33 3

Moltiplicazione utilizzando somma e shift Utilizzo un registro prodotto da 64 bit, inizializzato a 0. Itero per ogni bit del moltiplicatore: ) Sommo il moltiplicando al prodotto se il bit =. B) Shift a sx di un bit il moltiplicando ( = * base). 27 x 7 = 89 0 x = 0 0 0 0 0 + 0 B 0 + P 0 - - 0 0 0 0 + 0 - - - 0 0 7/33 Inizio: P = 0; k = 0 no b k = 0? sì P = + P Shift sx ; k =k+ no k=n? Fine sì L algoritmo 8/33 B P = 0 + = *2 P 2 = P + 2 = *2=*4 P 3 = P 2 + 2 0 x = 0 0 0 0 0 + P 0 0 + P 0 - - 0 0 0 0 + P 0 - - 2-0 0 P contiene le somme parziali, al termine conterrà la somma totale, cioè il risultato del prodotto. 4

Implementazione circuitale gli attori - moltiplicando (shift a sx), 64 bit LU 64 B moltiplicatore, bit P Prodotto, 64 bit Controllo 9/33 Implementazione circuitale - moltiplicando (shift a sx), 64 bit B moltiplicatore, bit LU 64 add Shift sx bit P Prodotto, 64 bit Write Controllo Qual è il problema? 0/33 5

Esercizi Costruire il circuito HW che esegui la moltiplicazione 7 x 9 in base 2. Eseguire la stessa moltiplicazione secondo l algoritmo visto, indicando passo per passo il contenuto dei 3 componenti: che contiene il moltiplicando, B che contiene il moltiplicatore e P che contiene somme parziali ed il risultato finale. /33 Sommario I moltiplicatori firmware Ottimizzazione dei moltiplicatori firmware 2/33 6

Implementazione circuitale ottimizzata - I - moltiplicando (shift a sx), 64 bit B moltiplicatore, (shift right) bit. LU 64 add shift sx shift dx bit b 0 P Prodotto, 64 bit Write Controllo 3/33 no Inizio; P = 0, k = 0 P = + P b 0 = 0? Shift a sx, Shift B dx; k=k+ k=n? Fine sì sì no L algoritmo - I P B = * 2 0 = * 2 = * 2 2 0 x = 0 0 0 0 0 + P 0 0 + P 0 - - 0 0 0 0 + P 0 - - 2-0 0 4/33 7

Esempio - I 0000 000 000 000 x 00 = ------- Moltiplicazione su 4 bit. 5/33 Razionale per una seconda implementazione Meta dei bit del registro moltiplicando vengono utilizzati ad ogni iterazione. d ogni iterazione si aggiunge bit al registro prodotto. d ogni iterazione sommo N cifre (pari al numero di cifre del moltiplicando). Spostamento della LU sul registro prodotto. Oppure Si sposta la somma dei prodotti parziali verso dx di bit ad ogni iterazione. 0 x = 0 0 0 0 0 + P 0 0 + P 0 - - 0 0 0 0 + P 0 - - 2-0 0 6/33 8

Implementazione ottimizzata - II a implementazione 2 a implementazione 0 x = 0 0 0 0 0 + 0 0 + 0 - - 0 0 0 0 + 0 - - - 0 0 0 Sposto a sx il moltiplicando Sposto a dx il prodotto 0 P primo prodotto parziale - moltiplicando, bit LU 64 P Prodotto, 64 bit Qual è il problema? 7/33 add w Controllo shift dx 0 0 B moltiplicatore, (shift right) bit. shift dx Implementazione ottimizzata - II a implementazione 2 a implementazione 0 x = 0 0 0 0 0 + 0 0 + 0 - - 0 0 0 0 + 0 - - - 0 0 0 Sposto a sx il moltiplicando Sposto a dx il prodotto 0 P primo prodotto parziale LU Parte modificabile 8/33 Parte non modificabile 0 0 9

Razionale dell implementazione - III Il numero di bit del registro prodotto corrente (somma dei prodotti parziali) più il numero di bit da esaminare nel registro moltiplicando rimane costante ad ogni iterazione (pari a 64 bit). Si può perciò eliminare il registro moltiplicatore. 0 x = 0 0 0 0 0 + 0 0 + 0 - - 0 0 0 0 + 0 - - - 0 0 9/33 Circuito ottimizzato - III Moltiplicando, bit P 0 0 LU add P Prodotto, 63 bit Moltiplicatore, 3 0 bit Shift dx Write Controllo bit bit Suddivisione logica di P, alla prima iterazione Il moltiplicando è allineato sempre ai bit più significativi del prodotto. d ogni iterazione, il prodotto si allarga, il moltiplicatore si restringe. 20/33 0

Inizio; P = 0 B, k = 0 L algoritmo ottimizzato - III no sì b 0 = 0? P N N*2- =P N N*2- + Shift P B a dx; k=k+ no k=n? Fine sì B P 0 x = 0 0 0 0 0 + 0 0 + 0 - - 0 0 0 0 + 0 - - - 0 0 2/33 Esempio di esecuzione dell algoritmo ottimizzato - III Il moltiplicando è allineato (e sommato) ai bit più significativi del prodotto. 22/33

Circuito finale moltiplicatore firmware Moltiplicando, bit P 0 0 LU add P Prodotto, 63 bit Moltiplicatore, 3 0 bit Shift dx Write Controllo bit bit bit 64 per evitare overflow nelle somme parziali No overflow finale 23/33 Suddivisione logica di P, alla prima iterazione Le somme parziali possono occupare un bit in più per effetto del riporto. Circuito finale ottimizzato moltiplicatore firmware Moltiplicando, bit P 0 0 Il segnale di add non è necessario se è previsto un segnale di write di P H LU Shift a dx è comandato dal clock p 0 P Prodotto, 63 bit Moltiplicatore, 3 0 bit Clock Controllo Write P H bit bit bit 64 per evitare overflow nelle somme parziali No overflow finale 24/33 Suddivisione logica di P Le somme parziali possono occupare un bit in più per effetto del riporto. 2

Unità di controllo I - STG Reset (clear) S 0 / InitCount Reset P H Clk contatore k N P 0 = S / Test Comparatore k = N k!= N S 2 / dd Write (P H + -> P H ) P 0 = 0 K=N S 4 / End 25/33 S = {InitCount, Test, dd, End} I = {k, P 0 } Y = {Write P H, Reset P H } Unità di controllo I - STT k!= N P 0 = 0 k = N P 0 = 0 k!= N P 0 = k = N P 0 = Uscita InitCount Test Test Test Test Clear counter Reset P H Test (sub-step a) End End dd dd dd Test Test Test Test Write P H End (sub-test b) Test End Test End 26/33 3

Unità di controllo - II - STG Reset (clear) S 0 / StartCount Reset P H Clk contatore k Comparatore N k!= N S / Multiply Write P H p 0 k = N k = N S 2 / End 27/33 Write (P H + -> P H ) pprocci tecnologici alla LU Quattro approcci tecnologici alla costruzione di una LU (e di una CPU): pproccio strutturato. nalizzato in questa lezione. pproccio hardware programmabile (e.g. PL). d ogni operazione corrisponde un circuito combinatorio specifico. pproccio ROM. E un approccio esaustivo (tabellare). Per ogni funzione, per ogni ingresso viene memorizzata l uscita. E utilizzabili per funzioni molto particolari (ad esempio di una variabile). Non molto utilizzato. pproccio firmware (firm = stabile), o microprogrammato. Si dispone di circuiti specifici solamente per alcune operazioni elementari (tipicamente addizione e sottrazione). Le operazioni più complesse vengono sintetizzate a partire dall algoritmo che le implementa. 28/33 4

L approccio firmware Nell approccio firmware, viene inserita nella LU una unità di controllo e dei registri. L unità di controllo attiva opportunamente le unità aritmetiche ed il trasferimento da/verso i registri. pproccio controllore-datapath. Viene inserito un microcalcolatore dentro la LU. Il primo microprogramma era presente nell IBM 360 (964). 29/33 L approccio firmware vs hardware La soluzione HW è più veloce ma più costosa per numero di porte e complessità dei circuiti. La soluzione firmware risolve l operazione complessa mediante una sequenza di operazioni semplici. E meno veloce, ma più flessibile e, potenzialmente, adatta ad inserire nuove procedure. La soluzione HW è percorsa per le operazioni frequenti: la velocizzazione di operazioni complesse che vengono utilizzate raramente non aumenta significativamente le prestazioni (legge di mdahl). 30/33 5

Sommario I moltiplicatori firmware Ottimizzazione dei moltiplicatori firmware 3/33 6