Firmware Multiplier. Sommario

Documenti analoghi
Firmware Multiplier. Sommario

Lezione 7 Sommatori e Moltiplicatori

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

Lezione 7 ALU: Moltiplicazione e divisione

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

Sommatori e Moltiplicatori. Sommario

Moltiplicatori HW e ALU

Firmware Division & Floating gpointer adder

Sommatori e Moltiplicatori

Es. 6 Moltiplicazione e divisione tra

Firmware Division, UC & Floating gpointer adder

Floating pointer adder & Firmware Division. Sommario

Firmware Division, UC & Floating pointer adder

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)

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.

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

Architettura degli Elaboratori

Architetture Digitali

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

Macchine dedicate e Macchine programmabili

Esercitazione del 17/03/2005

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

Calcolatori Elettronici A a.a. 2008/2009

Circuiti combinatori notevoli

Moltiplicazione e Divisione tra numeri relativi

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

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

Architettura degli elaboratori CPU a ciclo singolo

Lezione 6. Lezione 6

Architettura degli elaboratori CPU a ciclo singolo

Reti combinatorie. Reti combinatorie (segue)

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

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

Floating pointer adder ISA

Architetture aritmetiche

Macchine a Stati finiti

SISTEMI DIGITALI COMPLESSI

Macchine a Stati finiti. Sommario

Linguaggio macchina e register file

Una CPU multi-ciclo. Sommario

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

Circuiti combinatori notevoli

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

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

Logica binaria. Cap. 1.1 e 2.1 dispensa

Una CPU multi-ciclo. Sommario

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

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

Componenti notevoli combinatori

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

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

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

Una CPU multi-ciclo. Sommario

Circuti AND, OR, NOT Porte logiche AND

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

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

senza stato una ed una sola

Macchine a Stati finiti

Le memorie Cache n-associative

ALU e Control Unit. ALU e Control Unit

Il Livello Logico-Digitale. Blocchi funzionali combinatori

Macchine a Stati finiti

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

Esercitazione 11. Control-Unit. Data-Path

Carry-select adder per l'arm6

Architettura degli Elaboratori e Laboratorio

Hazard sul controllo. Sommario

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

Unità aritmetica e logica

ISA (Instruction Set Architecture) della CPU MIPS32

Fondamenti di Informatica A. A / 1 9

Le memorie Cache. Sommario

I bistabili ed il register file

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

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

Progetto CPU a singolo ciclo

ISA (Instruction Set Architecture) della CPU MIPS

Introduzione al linguaggio macchina. Istruzione l/m

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 Sommario Il moltiplicatore firmware 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 / StartCount Reset P H Clk contatore k N- Comparatore k = N- Start k!=n-, P 0 = S 2 / dd Write (P H + -> P H ) S / Test k=n- S 4 / End k!=n-, P 0 = S 3 / Not dd 25/33 Unità di controllo I - STT S = {Start, Test, dd, Not dd, End} I = {K, P 0, Start_counter} Y = {Reset_counter, Write P H, Reset P H } K!= N- P 0 = Start c K = N- P 0 = Start c K!= N- P 0 = 0 Start c K = N- P 0 = Start c Start c P 0, K Uscita StartCount Test Test Test Test X Test dd End Not dd End X dd Test Test Test Test X Reset_c Not Write P H Reset P H Not Reset_c Not Write P H Not Reset P H Not Reset_c Write P H Not Reset P H Not dd Test Test Test Test X End Start End Start End StartCount 26/33 Not Reset_c Not Write P H Not Reset P H 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 Start k = N S 2 / End 27/33 Write (P H + -> P H ) Unità di controllo - II - STT S = {Start, Multiply, End} I = {K, Start_counter} Y = {Reset_counter, Write P H, Reset P H } K!= N Start_c K = N Not Start_c K!= N Start K = N Not Start_c Start Multiply Multiply Multiply Multiply Multiply Multiply End Multiply End End Start End Start End Uscita Reset_c Not Write P H Reset P H Not Reset_c Write P H Not Reset P H Not Reset_c Not Write P H Not Reset P H 28/33 4

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. 29/33 P0 = 0 K!= N P 0 = K!= N P0 = 0 K = N P 0 = K = N Uscita Start Multiply Multiply Multiply Multiply Reset Not Write P H Reset P H Multiply Multiply Multiply End End Not Reset Write P H Not Reset P H End 30/33 5

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). /33 6

Sommario I moltiplicatori firmware Ottimizzazione dei moltiplicatori firmware 33/33 7