Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Architettura hardware

Comprendere le tecniche di moltiplicazione RISCV

Una panoramica dei metodi di moltiplicazione RISCV e delle loro esigenze hardware.

― 5 leggere min


Analisi dellaAnalisi dellamoltiplicazione RISCVper un design hardware efficiente.Semplificare la moltiplicazione RISCV
Indice

Introduzione alla Moltiplicazione RISCV

La moltiplicazione nell'architettura del processore RISCV è diversa dalle altre istruzioni. Mentre la maggior parte delle istruzioni è veloce e richiede solo un ciclo di clock, la moltiplicazione è più impegnativa. Richiede più risorse e impiega più tempo, il che può essere un problema per certi tipi di design dei computer. Nella configurazione base di RISCV, non c'è un comando di moltiplicazione, rendendo più facile la vita per le versioni più semplici del processore. Le versioni più grandi includono comandi di moltiplicazione tramite una funzione aggiunta chiamata estensione M, che copre diversi tipi di moltiplicazione come firmata, non firmata e mista.

Tipi di Moltiplicazione

A prima vista, avere modi diversi di moltiplicare può sembrare strano. Per esempio, quando si moltiplicano numeri a 32 bit, che un numero sia firmato o non firmato non influisce sul risultato finale per la parte bassa del prodotto moltiplicato. Tuttavia, la natura firmata conta per la parte alta del risultato.

La maggior parte dei design attuali per la moltiplicazione si basa su un metodo chiamato moltiplicazione lunga, che ha due passaggi principali:

  1. Calcolare i Prodotti Parziali.
  2. Sommare tutti quei prodotti parziali.

Il primo passaggio è semplice e può essere fatto in parallelo, ma il secondo è più complesso. Esistono molti approcci per gestire questo passaggio, bilanciando velocità e quanto spazio si usa.

Metodi di Moltiplicazione Efficiente

Il documento discute come piccole modifiche al primo passaggio possano aiutare a usare un solo processo per tutte e tre le forme di moltiplicazione (firmata, non firmata e mista).

Fondamenti della Moltiplicazione Lunga

La moltiplicazione lunga per i numeri binari segue un processo base. Inizia con il bit meno significativo (il bit più a destra) del moltiplicatore. Scrivi il moltiplicando solo se quel bit è 1. Se il bit è 0, scrivi solo zeri. Ripeti questo per ogni bit, spostando il moltiplicando a sinistra mentre ti sposti verso bit più alti, portando a diversi prodotti parziali. Il risultato finale si ottiene sommando tutti i prodotti parziali.

Necessità Hardware

Eseguire il metodo di moltiplicazione lunga in hardware ha due compiti:

  1. Calcolare i prodotti parziali, che possono essere fatti contemporaneamente.
  2. Calcolare la somma di tutti i prodotti parziali, spesso usando un albero di addizione.

Per ogni prodotto parziale, ci concentriamo su moltiplicarlo per un numero fisso di bit, il che può essere fatto in modo efficiente con operazioni specifiche in formato vettoriale.

Moltiplicazione Firmata

Quando si parla di numeri firmati, vengono memorizzati in modo diverso. Un numero firmato usa un formato che permette valori sia positivi che negativi, con i valori minimi e massimi definiti dalla sua grandezza.

Sebbene addizionare e sottrarre funzioni normalmente, moltiplicare numeri firmati è complicato. Un metodo sviluppato da Baugh e Wooley consente ai metodi di moltiplicazione non firmati di funzionare con numeri firmati con solo piccole modifiche. L'approccio prevede di trovare il complemento a 2 dei numeri negativi, il che ci permette di aggiungerli correttamente.

Passaggi per la Moltiplicazione Firmata

Nella moltiplicazione firmata, i numeri positivi possono essere sommati direttamente. Per i numeri negativi, dobbiamo regolare la loro rappresentazione e poi sommarli. Le somiglianze nello schema di moltiplicazione non firmata aiutano a semplificare questo, poiché i bit più bassi di entrambi gli schemi possono dare gli stessi risultati.

Moltiplicazione Mista

Il set di istruzioni RISCV include un'istruzione unica che usa un numero non firmato come moltiplicatore e un numero firmato come moltiplicando. Questo tipo di moltiplicazione richiede di trovare il complemento a 2 del numero firmato per consentire una corretta addizione.

Il processo è simile alla moltiplicazione firmata, con l'ultimo passaggio che a volte richiede un piccolo aggiustamento per tenere conto di eventuali azioni extra necessarie nell'hardware.

Fusione dei Tipi di Moltiplicazione

Incorporare questi diversi tipi di moltiplicazione può essere semplificato. Usando segnali binari per rappresentare moltiplicazioni firmate, non firmate e miste, è possibile combinare tutte le implementazioni in un unico moltiplicatore.

Ci sono tre tipi di prodotti parziali:

  • Il primo
  • L'ultimo
  • Quelli in mezzo

Il primo prodotto parziale rimane lo stesso per certi bit, mentre altri potrebbero necessitare di aggiustamenti in base a se l'operazione è firmata o mista.

Prodotti Parziali Intermedi e Ultimi

I prodotti parziali centrali dipendono dalle loro posizioni specifiche e potrebbero essere spostati. La maggior parte dei bit rimane invariata, anche se sono necessari alcuni cambiamenti per le operazioni firmate e miste.

L'ultimo prodotto parziale può essere più complesso. Richiede l'inversione di certi bit per la moltiplicazione firmata, e il bit più significativo potrebbe anche necessitare di aggiustamenti a seconda che la moltiplicazione sia mista.

Conclusione

Attraverso piccole modifiche su come vengono gestiti i prodotti parziali, è fattibile gestire tutti i tipi di moltiplicazione RISCV con un solo moltiplicatore. Questo approccio semplifica notevolmente il design, riducendo la complessità e rendendo più facile l'implementazione, soprattutto in sistemi che richiedono più core o lavorano con operazioni simili a vettori. Ottimizzando questi processi, l'implementazione diventa più efficiente, il che è particolarmente prezioso negli ambienti di computing moderni.

Articoli simili