Sei sulla pagina 1di 8

1

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI


Vittorio Prisco

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI - V. Prisco -info@vittorioprisco.com

2 GESTIONE DELLINPUT /OUTPUT I/O a controllo di programma Il flusso di operazioni dette al programma decide e controlla lI/O. La cpu detta i ritmi di questo controllo. Questo approccio diventa scomodo se la cpu molto indaffarata. I/O gestito dagli INTERRUPT Non si basa sui ritmi della cpu e chi deve imporre i tempi di sincronizzazione sono direttamente le interfacce. E come se dallinterfaccia partisse una chiamata ad una routine di CONTROLLO PROGRAMMA. La chiamata, se forzata dallesterno Asincrona. Per realizzare questo viene adoperata una linea nel bus di controllo detta INTREQ. Da essa giunger il comando verso la cpu per interrompere il suo lavoro al fine di eseguire la subroutine voluta. La cpu dovr salvare il lavoro al quale potr poi tornare dopo aver terminato la subroutine temporanea. Il salvataggio/ripristino del contesto effettuato da parte del sottoprogramma che regola il mondo esterno che detto ROUTINE DI RISPOSTA ALLINTERRUPT. Tutto questo ha un limite nellimposizione della gestione di interrupt provenienti solo da una periferica. Risolveremo ci tramite la configurazione degli stadi di uscita dellinterrupt, in particolare tramite luso della configurazione OPEN COLLECTOR che evita problemi di differenze di corrente alle porte delle interfacce (nel caso della configurazione Totem Pole) oppure evita la presenza di una sorta di arbitro che gestisca le priorit delle interfacce come avviene per la configurazione Tri-State. Nella configurazione Open Collector la gestione degli interrupt avviene tramite la gestione delle tensioni, ovvero, le porte delle interfacce se dicono 0 si portano a bassa impedenza mandando a 0 la tensione sulla linea e assorbendo corrente, attivandosi, altrimenti possono dire 1 restando ad alte impedenze non imponendo alcuna tensione sulla linea e rimanendo scollegate. Per far capire alle interfacce quale interrupt ha avuto ascolto da parte della cpu, la cpu invia un IntAck propagato su tutte le periferiche con una certa regola e che da esse viene processato sistematicamente. La prima periferica che soddisfa lack sospende la propagazione e comunica alla cpu che stata lei a generare linterrupt. Questa la cosiddetta CONFIGURAZIONE DAISY CHAIN in cui la posizione della periferica a seconda delle vicinanze alla cpu determinante per le priorit negli interrupt. Quello di cui abbiamo parlato lINTERRUPT CABLATO in cui abbiamo solo un filo per la comunicazione delle periferiche con la cpu, la priorit fissata dalla vicinanza ad essa e lIntAck comporta ritardi spesso considerevoli se le periferiche sono tante. Unalternativa utile la GESTIONE DELLINTERRUPT PROGRAMMABILE, sistema pi efficiente e pi usato oggi. Ciascun bit meno significativo dello STATO dellinterfaccia di ogni periferica collegato ad un controller detto PIC (programmable interrupt controller). Esso si forma di 4 parti: 1. UC: un unit di controllo 2. IVR: registro che contiene i riferimenti alle periferiche, il quale viene scritto dalla cpu al momento dellinizializzazione in fase di Bootstrap del sistema 3. IPR: che il registro modificabile dallesterno per gestire le priorit daccesso al bus dati 4. IMR: che il registro con il quale si possono nascondere le richieste di interrupt delle periferiche.

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI - V. Prisco -info@vittorioprisco.com

FUNZIONAMENTO PIC (Programmable Interrupt Controller) La periferica che richiede linterrupt segnala un suo codice inserito nellIntack inviato successivamente dalla cpu per il riconoscimento della periferica. Ricevuto un Intreq la cpu deve salvare tutto il PC e genera un Intack. Dopo aver analizzato da quale periferica proviene linterrupt, legge il bus dati, ne legge il contenuto in bit e usa i bit letti come lindirizzo della cella di memoria il cui contenuto va messo nel PC [M(Bus dati) PC] Alla fine la cpu disabilita linterrupt e riprende il suo lavoro. La comodit del PIC sta nella programmazione del flusso di interrupt a seconda delle esigenze.

ACCESSO AL DISCO (DMA) Il DMA usato per poter passare dallinterfaccia disco alla memoria senza dover usare la cpu (facendo il fetch delle istruzioni del ciclo che scrive da memoria di lavoro al disco, per poi attendere lincremento e il decremento dei contatori per sapere quanti byte da trasferire mancano e per effettuare lincremento dellindirizzo di memoria per spostarsi lungo le celle di questultima) Faremo uso del DMA attraverso un controller detto DMAC. Il DMAC formato da un MDA, memory data access che collegato con il bus address, da un DC, data counter e da un TD, transfert counter. FUNZIONAMENTO DMA Il DMA Controller, dopo che la periferica ha segnalato che pronta, invia un HOLDREQ chiedendo alla cpu di congelarsi e quando gli arriva un HOLDACK dalla cpu (segnale che la cpu si congelata e ha lasciato il bus dati e laddress bus) allora il Memory Data Address viene inserito nel bus address e viene attivato il MEMWR e lIN. Disattivato lHOLDREQ viene incrementato lMDA e decrementato il DC; se il DC maggiore si 0 il DMAC attende nuovamente il segnale che indica che la periferica pronta altrimenti, se uguale a 0, genera lINTREQ chiedendo alla cpu di interrompersi e di chiamare la routine finale di ripristino del contesto leggendo i dati caricati nella Memoria di Lavoro. FUNZIONI E STRUTTURA INTERNA DELLA CONTROL UNIT (CU) La CU ha il compito di provvedere alla fase di fetch e di exec, pertanto deve essere in grado di interpretare ed eseguire le istruzioni e generare gli opportuni segnali di controllo interni ed esterni alla cpu. CU CABLATA Parlando di una CU CABLATA facciamo riferimento ad una CU costruita per degli specifici ingressi e con delle precise uscite. Allaumentare delle uscite o in generale se parliamo di cpu CISC con set di istruzioni pi complesse, la complessit generale della rete della CU aumenta esponenzialmente, rendendo svantaggiosa questa tipologia di CU. Dobbiamo dire che il segnale di controllo della Control Unit viene realizzato come funzione di: - Istruzione acquisita nella fase di Fetch - Stato dei Flag - Segnali esterni

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI - V. Prisco -info@vittorioprisco.com

4 Il vantaggio che risiede nelluso di una CU Cablata che molto veloce in quanto fa uso di diodi e non di fusibili dato che non necessita di alcuna programmazione. CU MICROPROGRAMMATA La CU MICROPROGRAMMATA costituita da una memoria Rom interna alla cpu che contiene i passi che la cpu stessa deve fare in corrispondenza di precise istruzioni. Ha un Next Microaddress Generator che carica in un microPC lindirizzo della microistruzione che deve essere eseguita. Ciascuna microistruzione si compone di microcomandi che sono segnali di controllo che la CU deve generare per poter eseguire correttamente listruzione. Il principale vantaggio di questo tipo di Control Unit sta nella semplicit della architettura e nella facile implementazione in caso di architetture complesse CISC. Lo svantaggio tutto in termini di velocit. LA CACHE La cache una memoria di ridotte dimensioni rispetto alla Memoria di Lavoro ma tuttavia ha unimportanza decisamente alta. Spessi parte integrante della cpu, per velocizzare linterazione con essa. La tecnologia alla base del caching avanzata e costosa, ma permette prestazioni incomparabili a quelle di memorie di lavoro. Idea principale: nella cache vengono memorizzati i dati che con maggiore probabilit possono essere usati. Esistono 2 TIPI DI CACHE (caratterizzati da atrettanti 2 tipi di gestione dei dati): 1. TAG ASSOCIATIVE: Quando viene generato un certo indirizzo allistante t, si verifica che agli istanti successivi la probabilit di trovare indirizzi vicini alta. Ci permette di sfruttare la memoria non a singole parole ma a blocchi. Se viene richiesta una parola dalla memoria di lavoro, viene portato in cache tutto il blocco al quale tale memoria appartiene. La MdL viene divisa in pagine di uguali dimensioni e anche la cache subisce tale divisione: tra pagine della MdL e pagine cache c una stretta associazione, ad esempio, la prima pagina di memoria di lavoro pu andare solo nella prima pagina della cache, la seconda pagina di MdL pu essere caricata solo nella seconda di cache, e cos via. Ci saranno tanti gruppi quante sono le pagine di cache. A ciascuna pagina del gruppo viene associato un numero crescente a partire da 0. Se esaminiamo gli indirizzi in MdL notiamo che i 5 bit pi significativi indicano quale pagina del gruppo sto considerando, i 7 bit seguenti indicano il gruppo e gli ultimi 4 bit indicano la parola considerata. NP 5 bit NG 7 bit NW 4 bit

Quando lunit centrale accede ad un indirizzo invia sullADDBUS linsieme Di NP&NG&NW; per capire se la parola indirizzata in cache necessario che dato il gruppo che lunit centrale richiede (che indica a quale pagina di cache si fa riferimento) deve succedere che in tale pagina di cache ci sia una copia della pagina del gruppo richiesta. Se ci accade la pagina della MdL di indirizzo NP&NG viene portata in cache alla prossima NG e infine la cpu interagisce con la memoria cache allindirizzo NG&NW. Ci sono 2 METODI DI GESTIONE DELLE SCRITTURE:

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI - V. Prisco -info@vittorioprisco.com

5 a) STORE THRU: se la cpu deve scrivere in cache scrive nella MdL col vantaggio che loriginale e la copia vengono aggiornate costantemente a scapito, per del tempo di elaborazione pi lungo dovuto alle scritture. b) STORE IN: si usa per migliorare le prestazioni; usa un bit detto bit di modifica che viene azzerato quando la cpu porta in cache una pagina della MdL visto che la copia della cache risulta fedele a quella presente in MdL oppure settato ad 1 se la cpu scrive nella cache. Ci permette di tener traccia del fatto che la pagina di cache diversa da quella di MdL e cos facendo, la cpu che non trova il dato prima copia il contenuto della pagina in cache (alla pagina di MdL corrispondente) e poi prende la nuova pagina di MdL esaminata e la copia in cache. 2. FULLY ASSOCIATIVE: Le pagine non sono pi divise in gruppi pertanto il processo, quando richiede un indirizzo lo invia nella forma NP&NW. Essendo scomparsa la divisione in blocchi, nella cache le pagine sono etichettate in ordine crescente da 0 al totale delle pagine -1. Le pagine vengono memorizzate in cache senza alcun criterio, pertanto sarebbe necessario eseguire un ciclo di ricerca ogni volta che una pagina deve essere ricercata nella cache con conseguente diminuzione delle prestazioni. Per ovviare a questo problema si utilizza una MEMORIA ASSOCIATIVA. Ciascuna delle celle costituita da bistabili statici di tipo D. Esiste un registro associativo nel quale viene scritta la parola alla quale si vuole accedere estendendola su tutte le celle della memoria associativa. I circuiti di tale memoria mandano in uscita una 0 se le celle considerate hanno almeno un bit diverso dal registro associativo, mandano un 1 se il registro associativo ha un contenuto uguale al contenuto delle celle esaminate. Le uscite di questo circuito diventano ingressi di un encoder che permette di capire se la pagina in cache o meno e fornir la posizione della pagina stessa. Se lindirizzo trovato si consente alla cpu di interagire con la memoria cache di indirizzo NPMC&NW. Se la pagina non trovata in cache bisogna capire in quale pagina della cache deve essere copiata. Bisogna, quindi tracciare la storia della cache per capire qual la pagina che non viene richiesta da molti accessi. Viene usato un contatore di saturazione che progettato in modo tale che, una volta raggiunto un valore massimo (di saturazione) pari al numero di pagine che possono essere contenute in memoria cache, non viene azzerato ma rimane fermo, ovvero, in una cache di 27 pagine (128) il contatore si blocca a 127. Ogni volta che una pagina viene copiata in cache il suo contatore di saturazione viene settato a 0 e vengono incrementati di 1 tutti i contatori delle altre pagine. Si verifica che in ogni operazione c almeno un contatore con valore 127. Viene, a questo punto identificata la pagina da eliminare dalla cache.

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI - V. Prisco -info@vittorioprisco.com

6 TAVOLE DEI PRINCIPALI COMPONENTI ELETTRONICI

MACCHINA DI VON NEUMANN

INTERFACCE DI I/O

SHIFT REGISTER A 4 BIT ROM

SHIFT REGISTER A 4 BIT A CARICAM PARALLELO

PROM

COUNTER A 4 BIT

COUNTER A 4 BIT UP-DOWN PAL

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI - V. Prisco -info@vittorioprisco.com

7 STRUTTURA INTERNA CPU NS-0 STRUTTURA DEI REGISTRI NS-0

STRUTTURA REGISTRO DATI MDR

CU MICROPROGRAMMATA

CU CABLATA

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI - V. Prisco -info@vittorioprisco.com

8 DMA

LA RAM

ELEMENTI DI ARCHITETTURA DEGLI ELABORATORI - V. Prisco -info@vittorioprisco.com