Altifigence Academy

6 / 24 · Concetto

Pianifica le risorse condivise con una FSM

Accumula quattro valori con un solo sommatore definendo le transizioni di stato e l'acquisizione.

Lo stato di controllo esprime una pianificazione delle operazioni

Una risorsa condivisa richiede di pianificare le operazioni nel tempo. Considera la somma da x0 a x3 con un solo sommatore e un accumulatore a dieci bit. Acquisisci tutti e quattro gli operandi quando una richiesta viene accettata. Le successive variazioni esterne non devono modificare una richiesta in sospeso. Il controllore seleziona un operando, abilita l'accumulo e decide quando il risultato diventa valido.

Usa gli stati IDLE, ADD0, ADD1, ADD2, ADD3 e DONE. Il fronte di accettazione in IDLE acquisisce gli ingressi e azzera acc. I quattro fronti successivi aggiungono ciascuno un operando memorizzato. Subito dopo il fronte ADD3, la somma finale è memorizzata e lo stato diventa DONE. DONE mantiene il risultato finché il consumatore lo accetta. Questa versione semplice torna a IDLE a quel fronte e non accetta contemporaneamente una nuova richiesta.

FronteStato precedenteAzioneacc nuovo
0IDLEAcquisire 3,5,7,9 e azzerare acc0
1ADD0Aggiungere 33
2ADD1Aggiungere 58
3ADD2Aggiungere 715
4ADD3Aggiungere 9, entrare in DONE24
5DONEIl consumatore accetta il risultato24

Distingui la disponibilità dopo il fronte 4 dal trasferimento al fronte 5. Gli stalli del consumatore possono prolungare DONE indefinitamente. Il riuso della risorsa riduce l'hardware aritmetico, ma limita il throughput rispetto a una pipeline che accetta a ogni ciclo. Supportare contemporaneamente il completamento e una nuova richiesta richiede una priorità esplicita tra consegna del vecchio risultato e inizializzazione della nuova richiesta.

Accumulatore di quattro valori
  1. IDLE: Accettare e acquisire tutti e quattro i valori
  2. ADD0..ADD3: Riutilizzare un sommatore su quattro fronti
  3. DONE: Mantenere il risultato finché viene consumato

Ricava i controlli dallo stato: abilitazione dell'accumulatore negli stati ADD, selezione dell'operando corrispondente allo stato e risultato valido in DONE. Assegna valori predefiniti alle uscite di controllo combinatorie. Definisci l'accettazione in modo che una richiesta mantenuta attiva non si ripeta accidentalmente. Il reset torna a IDLE e scarta il lavoro in sospeso. Un'implementazione basata su contatore può ridurre la codifica degli stati, ma richiede comunque la stessa pianificazione fronte per fronte.

Prova tu

Quali sono i valori di acc dopo ADD0 fino ad ADD3 per quattro ingressi di 255? Che cosa deve accadere quando ready di uscita è zero al fronte 5?

Leggi la spiegazione

I valori sono 255, 510, 765 e 1020, tutti rappresentabili con dieci bit. Con ready=0 non avviene alcuna consegna; mantieni DONE, acc=1020 e valid=1.

La scelta vale per questo browser. Puoi modificarla in qualsiasi momento dal piè di pagina.