Estratto del documento

Vantaggi della codifica delle istruzioni del processore DLX

Il processore DLX utilizza un set di istruzioni RISC dove ogni istruzione ha una lunghezza di 32 bit. Le istruzioni si dividono in tre gruppi: I, J ed R. Tutte iniziano con 6 bit di codice operativo. Nel caso delle istruzioni J, seguono 26 bit di immediato con segno. Le istruzioni R comprendono 3 blocchi da 5 bit che identificano 3 registri e 11 bit di estensione del codice operativo. Le istruzioni I hanno invece 2 blocchi da 5 bit per identificare i registri più un immediato con segno a 16 bit.

Grazie all'uso di istruzioni a lunghezza fissa, il DLX è in grado di ottenere interamente le istruzioni dalla memoria in un solo ciclo di clock. Il parallelismo dei dati nel DLX è di 32 bit, eliminando la necessità di calcolare la loro lunghezza in base al codice. In un'architettura pipelined, questo consente di inserire nella pipeline un'istruzione per ciclo di clock (ipotizzando l'assenza di alee). Conoscendo l'indirizzo dell’istruzione corrente, si conosce anche quello della successiva, ovvero 4 byte dopo.

Gestione delle alee di dato nello stadio MEM

Quando un'istruzione richiede l'accesso a un dato prodotto dalle istruzioni immediatamente precedenti, che non hanno ancora completato la fase di WB, può essere necessario bloccare la pipeline finché il RF non viene aggiornato, penalizzando il CPI. Una soluzione alternativa sfrutta la Forwarding Unit, che riceve i dati dagli stadi successivi e li retroaziona dove sono richiesti.

Se il dato viene prodotto in MEM, come nel caso di un’istruzione LOAD, arriva solo verso la fine del ciclo di clock, rischiando di non rispettare i tempi di setup per il campionamento. Si ricorre quindi alla tecnica del delayed load. Il problema non viene gestito dall’hardware, ma dal compilatore, che cerca di inserire un’altra istruzione tra il LOAD e la successiva che non richieda il risultato del LOAD, cambiando l'ordine delle istruzioni assembler per eliminare l'alea. Se ciò non è possibile, l’istruzione inserita è una NOP.

Gestione dell'Input/Output: polling vs. interrupt

La gestione di IO mediante polling prevede che il processore, a intervalli regolari, controlli tutte le periferiche di IO per verificare se possono ricevere nuovi dati per l’output o hanno nuovi dati in ingresso.

Se il processore sfrutta gli interrupt, ogni periferica può segnalare al processore quando è necessario un intervento. Questo metodo può risultare più efficiente perché il processore non deve controllare continuamente lo stato di tutte le periferiche, ma può concentrarsi su altre operazioni fino a quando non viene notificato da un’interrupt.

I vantaggi e svantaggi di ciascuna metodologia risiedono principalmente nell'uso delle risorse del processore e nella reattività del sistema. Il polling può risultare inefficiente in termini di utilizzo del tempo di CPU, mentre gli interrupt permettono di rispondere più rapidamente agli eventi esterni, ma possono introdurre complessità nella gestione del contesto e delle priorità.

Anteprima
Vedrai una selezione di 1 pagina su 3
Domande di Teoria di Calcolatori Elettronici Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher piscoTech di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici T e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Mattoccia Stefano.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community