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.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
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.
| Fronte | Stato precedente | Azione | acc nuovo |
|---|---|---|---|
| 0 | IDLE | Acquisire 3,5,7,9 e azzerare acc | 0 |
| 1 | ADD0 | Aggiungere 3 | 3 |
| 2 | ADD1 | Aggiungere 5 | 8 |
| 3 | ADD2 | Aggiungere 7 | 15 |
| 4 | ADD3 | Aggiungere 9, entrare in DONE | 24 |
| 5 | DONE | Il consumatore accetta il risultato | 24 |
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.
- IDLE: Accettare e acquisire tutti e quattro i valori
- ADD0..ADD3: Riutilizzare un sommatore su quattro fronti
- 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.