Fondamenti di Informatica Fondamenti di Informatica - Memoria cache, interrupt e DMA Fondamenti di Informatica - Memoria cache, interrupt e DMA Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà dell’autore prof. Pier Luca Montessoro, Università degli Studi di Udine. Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori. L’informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell’informazione). In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste slide. In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali. FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA 2 Fondamenti di Informatica - Memoria cache, interrupt e DMA Memoria cache • L’idea risale agli anni ’60 • Dagli anni ’90 le memorie cache risiedono sul chip del microprocessore Memoria cache CACHE Memoria centrale 20-1000 volte più piccola della RAM CPU 5-20 volte più veloce © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA Fondamenti di Informatica - Memoria cache, interrupt e DMA Miss e Hit Problemi • La CPU genera l’indirizzo I e il comando di lettura • Se il dato non è nella cache: MISS • Directory dei dati contenuti in base agli indirizzi di memoria • Dimensione della cache e gestione in base al principio di località spaziale dei programmi • Criterio di mappatura tra la posizione in memoria centrale delle parole in memoria centrale e in cache (cache completamente associativa, a mappatura diretta, associativa a più vie) – leggere il dato dalla memoria centrale – copiarlo in cache tenendo traccia dell’indirizzo I, per i riferimenti futuri • Se il dato è nella cache: HIT © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5 4 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 6 1 Fondamenti di Informatica Fondamenti di Informatica - Memoria cache, interrupt e DMA Fondamenti di Informatica - Memoria cache, interrupt e DMA Mappatura diretta Mappatura diretta memoria • Capacità della cache: L = 2l linee • Linee di W = 2w parole (C = LxW parole nella cache) • Memoria centrale di B = 2b blocchi (ogni blocco delle stesse dimensioni della cache) b l w • Indirizzo: IB IL IW linea k blocco 0 cache linea k linea k blocco 1 linea k blocco 2 .. . © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA Mappatura diretta IB IL TAG RAM Linea per linea, contiene il numero del blocco da cui provengono compar. DATA RAM OE SEL Fondamenti di Informatica - Memoria cache, interrupt e DMA Cache completamente associativa IW hit/miss 8 Linea per linea, contiene copia delle parole di memoria • Ogni linea di memoria può essere copiata in qualsiasi posizione della cache • CAM: Content Addressable Memory • Ogni linea di memoria ha un proprio univoco indirizzo – la TAG RAM ha L posizioni di b+l bit • Nota: a seguito di un cache miss, bisogna individuare la linea da riscrivere nella cache alla CPU © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA 10 Fondamenti di Informatica - Memoria cache, interrupt e DMA Cache parzialmente associativa Cache parzialmente associativa • Detta anche associativa a più vie • Prevede un funzionamento analogo alla mappatura diretta, ma con più banchi di cache in cui può trovarsi il dato IB IL IW TAG RAM compar. DATA RAM OE compar. SEL OE SEL alla CPU © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12 2 Fondamenti di Informatica Fondamenti di Informatica - Memoria cache, interrupt e DMA Il problema della scrittura Il problema del rimpiazzamento • Fortunatamente le scritture sono meno frequenti delle letture (si pensi all’instruction fetch, alle scritture nei registri, ecc.) • Due approcci • Analogie con la paginazione (v. sistemi operativi) – scrittura immediata si aggiorna la memoria centrale immediatamente (o quasi) riduzione delle prestazioni – scrittura differita si tiene traccia delle modifiche effettuate sul contenuto della cache mediante un “dirty bit” per ogni linea © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA 13 • Principali strategie: – LRU (Least Recently Used) – FIFO (First-In First-Out) – RAND (a caso) © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA 14 Fondamenti di Informatica - Memoria cache, interrupt e DMA Il problema della gestionde dell’I/O • Le operazioni di input/output sono asincrone rispetto alla CPU • Due approcci: Interrupt e DMA © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) – polling – interrupt 15 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA 16 Fondamenti di Informatica - Memoria cache, interrupt e DMA Interrupt Polling • Si basa su: • Il programma esegue un ciclo di attesa: – segnale hardware che permette ai dispositivi esterni di segnalare eventi alla CPU – routine di servizio dell’interrupt attivata quando la CPU riceve la segnalazione LOOP: INB R1, 0001 TSTI 0001 JMPNZ LOOP Memoria CPU 0000 0001 • Limitata efficienza • Incompatibile con il multitasking 0006 0007 Dispositivi di I/O Control Unit 0002 0003 0004 0005 Arithmetic and Logic Unit PC R0 IR SP . . . flags . . . R1 R15 Address bus segnale di interrupt Data bus Control bus © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 17 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 18 3 Fondamenti di Informatica Fondamenti di Informatica - Memoria cache, interrupt e DMA Esempio programma principale programma principale Gestione dell’interrupt programma principale CPU routine di servizio (invio di 1 carattere alla stampante) stampante stampa stampa Fondamenti di Informatica - Memoria cache, interrupt e DMA stampa stampa t La stampante segnala alla CPU di essere pronta a ricevere un nuovo carattere © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 19 • Salvare il program counter nello stack • Salto alla routine di servizio • Salvataggio dei registri e dello stato del processore (la cosiddetta PSW - Processor Status Word) • Eseguire l’operazione di I/O • Ripristinare lo stato dei registri e del processore • Ripristinare il valore del program counter salvato © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA Mascheramento dell’interrupt Fondamenti di Informatica - Memoria cache, interrupt e DMA Vettori di interrupt • La chiamata ad una routine di interrupt normalmente attiva un flip-flop che disabilita la ricezione dell’interrupt mentre si sta ancora servendo il precedente • Esiste però quasi sempre almeno una linea di interrupt “non mascherabile” per le emergenze (es. caduta di alimentazione) © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 21 • Permettono di gestire più periferiche • Due approcci: – linee di richieste indipendenti – controller esterno © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica - Memoria cache, interrupt e DMA address register .. . arbitro di priorità Linee di richieste indipendenti CALL ROUTINE 0 CALL ROUTINE 1 CALL ROUTINE 2 22 Fondamenti di Informatica - Memoria cache, interrupt e DMA Controller esterno INT 0 INT 1 INT 2 .. . INT N CALL ROUTINE i CPU © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 20 23 • I dispositivi vengono gestiti da un sistema esterno: – La CPU riceve il segnale di interrupt – La CPU segnala al controller esterno che sta eseguendo un ciclo di interruzione – Il controller seleziona la periferica da servire e trasmette alla CPU, mediante il bus dati, il “selettore di interruzione” (l’informazione di quale periferica è stata selezionata) © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 24 4 Fondamenti di Informatica Fondamenti di Informatica - Memoria cache, interrupt e DMA Direct Memory Access (DMA) • Tecnica adatta per periferiche veloci • Prevede il trasferimento diretto di dati (eventualmente a blocchi) tra la periferica e la memoria, senza eseguire routine di interrupt • Richiede un DMA controller esterno © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 25 © 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5