Calcolo prestazioni cache (1)
|
|
|
- Veronica Marini
- 9 anni fa
- Visualizzazioni
Transcript
1 Calcolo prestazioni cache (1) Consideriamo gcc: miss rate x istruzioni = 2% miss rate x dati = 4% frequenza di letture e scritture=36% Consideriamo inoltre un sistema con: CPU: Clock=3Ghz, CPI ideale =1 (in assenza di stalli per accesso a RAM / 100% HIT RATIO) RAM: DDR 266 MHZ (2x133Mhz, 2 parole x ciclo di clock) Calcoliamo: Tempo di accesso alla RAM= 1000ns/133 cicli/ns= 7,51 ns (per la prima parola) Miss penalty= 7,51 ns/ 0,3 cicli di clock/ns=25 cicli di clock Sia I il numero totale di istruzioni del programma: cicli di stallo complessivi per i miss sulle istruzioni: 2% * 25* I = 0,5 * I cicli di stallo complessivi per i miss sui dati: 4% * 25* 36% *I=0,36 * I Cicli di stallo complessivi per miss: (0,25+0,18)*I=0,86 CPI effettivo =CPI ideale +cicli di stallo per miss=1,86 Differenza percentuale tra CPI effettivo e CPI ideale (CPI effettivo CPI ideale )/= CPI ideale = 86%
2 E ora: Overclocking! (*) Supponiamo di poter portare il clock della CPU a 6Ghz ( e muniamoci di una buon dissipatore!) Poiché il tempo di accesso alla RAM rimane costante, la penalità di Miss raddoppia Miss penalty= 2 * Miss Penalty con clock dimezzato =50 cicli di clock Quindi i cicli di stallo complessivi per miss raddoppiano:0,86*2= 1,72 CPI effettivo =CPI ideale +cicli di stallo per miss=2,72 Tempo di esecuzione di un programma con I istruzioni su un processore di cui è noto il tempo di clock: I*CPI*TEMPO DI CLOCK Tempo di esecuzione a 3GHZ / Tempo di esecuzione a 6 GHZ = = (I*CPI3 GHZ*TEMPO CLOCK 3GHZ) / (I*CPI 6 GHZ*TEMPO CLOCK 6GHZ) = = (I*CPI 3 GHZ*TEMPO DI CLOCK 3GHZ) / (I*CPI 6 GHZ*1/2 * TEMPO CLOCK 3GHZ) = = CPI A 3 GHZ/ (CPI A 6 GHZ* 0.5) = 1,86 / (2,72 * 0,5) = 66% Quindi raddoppiando la velocità del processore, il tempo di esecuzione non è sceso al 50% bensì al 66%
3 I Limiti dell indirizzamento fisico Indirizzo fisico delle lcoazioni di memoria A0-A31 CPU D0-D31 Dati e istruzioni A0-A31 Memoria D0-D31 Tutti i programmi condividono un solo spazio di indirizzi: Lo spazio di indirizzi fisico I programmi in linguaggio macchina devono conoscere l organizzazione della CPU Non ci sono modi di limitare gli accessi alle risorse del sistema
4 Soluzione: indirizzi virtuali Indirizzo Virtuale Inidirizzo fisico A0-A31 CPU D0-D31 Virtua l Physica l Traduzione indirizzo A0-A31 Memoria D0-D31 Dati e istruzioni I programmi sono eseguti in uno spazio di indirizzi virtuale Il sistema operativo gestisce la traduzione dell indirizzo da indirizzo virtuale a indirizzo fisico La traduzione è fatta in hardware e l hardware supporta altre caratteristiche desiderabili: Protezione, Condivisione...
5 Memoria Virtuale La memoria principale è come una cache per i dispositivi di memorizzazione secondari (dischi) Spazio Indirizzi Virtual addresses Address translation Physical addresses Memoria principale Disk addresses Vantaggi: illusione di disporre di un quantitativo superiore Disco di mem. fisica Rilocazione dei programmi Protezione dei singoli processi (spazi di indirizzam. separati)
6 Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire dati tra memoria principale e secondaria si usano blocchi di dimensione fissa detti PAGINE : Il programmatore o il compilatore specificano gli indirizzi relativi all interno di singoli blocchi di programma (Indirizzo VIRTUALE) Il sistema operativo definisce in fase di esecuzione, le locazioni nelle quali il singolo blocco viene posto (Indirizzo FISICO): E necessario porre in corrispondenza gli indirizzi virtuali usati da un programma con i diversi indirizzi fisici PRIMA che questi vengano usati per indirizzare la memoria La Tabella delle Pagine contiene informazioni relative a: Indirizzo fisico. Presenza in memoria. Se modificato da quando in memoria. Diritti di accesso
7 I 4 stadi della metamorfosi di un programma e delle relative modalità di indirizzamento: RELATIVO
8 Gli albori della memoria virtuale: OVERLAY In principio se un programma eccedeva le dimensione della memoria fisica, il programmatore doveva direttamente gestire lo spostamento dei dati dalla memoria secondaria alla memoria principale. 1) Identificazione delle parti mutualmente esclusive che a run-time venivano sovrascritte (overlay=sovrapposte). 2) Tali parti venivano caricate e scaricate sotto il diretto controllo del programma. 3) Occorreva accertarsi che un il programma non cercasse mai di accedere ad un overlay non caricato e che gli overlay non eccedessero mai la dimensione della memoria fisica Contro: Notevole carico sui programmatori (meccanismi di gestione molto complessi + necessità di disporre di implementazioni efficienti per non penalizzare le performance del sistema)
9 Traduzione degli indirizzi con la tavola delle pagine indirizzo virtuale Tavola delle ) Pagine Spazio indirizzi fisico frame frame frame frame Lo spazio virtuale è diviso in blocchi di memoria detti PAGINE Una macchina di solito supporta pagine di date dimensioni (MIPS R4000): SO gestisce la tavola Una pagina di memoria è specificata da un indirizzo virtuale Una posizione nella tavola delle pagine contiene l indirizzo fisico della pagina corrispondente e altre informazioni utili: presenza in memoria, se modificato da quando in memoria. diritti di accesso
10 Velocizzare la traduzione degli indirizzi Problema: se la tavola delle pagine risiede in memoria le prestazioni sarebbero inaccettabili Soluzione: Una cache per le traduzioni degli indirizzi: TLB, translation lookaside buffer: ciascun blocco del TLB contiene l indirizzo del page frame (calcolato a partire dal page table register e dall offset presente nella page table in ram) associato ad una data pagina virtuale Valori tipici per il TLB: Dimensione del TLB: elementi Dimensione del blocco: 1-2 elementi della page table. Tempo di HIT: 0,5 1 ciclo Penalità di Miss: cicli Frequenza di Miss: 0,01% - 1% NOTA: la frequenza di miss è molto bassa perché abbiamo una forte località spaziale e temporale per gli indirizzi nella stessa pagina!
11 Traduzione degli indirizzi con il TLB In questo caso pagine fisiche e virtuali hanno la stessa dimensione indirizzo virtuale page off Tavoa delle pagine 2 for ASID Indirizzo fisico 0 1 Cache TLB 3 TLB frame page indirizzo fisico page off V=0 indica che la pagina o è su disco o non è allocata i diritti di accesso limitano la disponibilità della pagina al programma
12 Page faults Se i dati non sono in memoria principale, occorre recuperarli dal disco. Enorme penalità di miss (milioni di cicli), il cui costo è dovuto in gran parte al prelievo della prima parola (miss obbligaotri): le pagine sono scelte sufficientemente grandi (esempio da 4KB) ridurre i page faults è importante: collocazione completamente associativa Implementazione di politiche di gestione complesse (LRU) Usare il write-through è troppo costoso così si usa il writeback (scrittura di una pagina per volta + dirty bit) Virtual address Virtual page number Page offset ^32 ind.virtuali (4 Gb) Translation Physical page number Page offset ^18 page frames (1 Gb) Physical address
13 Page Faults Il sistema operativo tiene traccia di quali processi e quali indirizzi virtuali usino una data pagina fisica. Se le pagine fisiche sono esaurite, in caso di page fault, occorre sostituire qualche pagina (swap out) in base ad un criterio che minimizzi la possibilità di dover accedere a quella pagina di lì a breve: LRU. Approssimazione di LRU tramite l uso di un bit di riferimento settato ad uno ogni volta che si accede alla pagina e periodicamente resettato. Quando la politica di gestione della gerarchia non è efficiente si verificano troppi page faults, si ha il fenomeno di Thrashing: La CPU spende il proprio tempo ad allocare e disallocare aree di memoria senza più svolgere lavoro utile. CAUSA: cattivo dimensionamento della memoria rispetto ai dati utilizzati dal programma che opera sul sistema.
14 TLB e CACHE nella DECStation3100 Cache a corrispondenza diretta TLB completamente associativo. Cache indicizzata tramite indirizzi fisici, per cui, prima di accedervi, è sempre necessario utilizzare il TLB. Speciale gruppo di istruzioni usato dal SO per caricare linee del TLB Elemento da rimpiazzare nel TLB scelto casualmente.
15 TLB e cache Virtual address TLB access TLB miss exception No TLB hit? Yes Physical address No Write? Yes Try to read data from cache No Write access bit on? Yes Cache miss stall No Cache hit? Yes Write protection exception Write data into cache, update the tag, and put the data and the address into the write buffer Deliver data to the CPU
16 Meccanismi di protezione La memoria virtuale permette che più processi condividano (e riusino) la stessa memoria principale I processi in esecuzione possono eseguire operazioni di scrittura in memoria PROBLEMA: occorre garantire che non sia possibile per un processo leggere o scrivere all interno dello spazio di indirizzamento di un altro processo o del sistema operativo Se così non fosse è possibile per un processo accedere e modificare i dati di un altro programma e del sistema operativo
17 Meccanismi di protezione La memoria virtuale permette che più processi condividano (e riusino) la stessa memoria principale PROBLEMA: occorre garantire che non sia possibile per un processo leggere o scrivere all interno dello spazio di indirizzamento di un altro processo o del sistema operativo: NOTA: Ciascun processo ha la propria page table, per cui è sufficiente che: 1) il SO deve impedire che un processo possa cambiare il riferimento alla propria page table. 2) Il SO deve poter modificare le tabelle delle pagine. SOLUZIONE: 1) Porre le page tables nello spazio di indirizzamento del SO. 2) In caso di richiesta di condivisione di pagine tra processi è compito del sistema operativo effettuare le necessarie operazioni sulle rispettive page tables.
18 Meccanismi di protezione Il problema si risolve con il supporto dell hardware: 1) (Almeno) 2 modi di funzionamento (modo utente/modo Kernel - o anche SO) che indicano se è in esecuzione un processo utente o il SO. 2) Impedire ad un processo eseguito in modo utente di accedere ad alcune informazioni di stato della CPU (le relative operazioni sono eseguibili solo in modo kernel): 1) Bit modo utente/modo kernel 2) Page table register 3) TLB 3) Permettere il passaggio sicuro da modo utente a modo kernel e viceversa: System Call: Il meccanismo è simile a quello delle interruzioni hw (context switch), in questo caso si parla di interruzioni software.
19 Meccanismi di protezione Bisogna garantire la sicurezza degli accessi: PROBLEMA: In caso di cambio di processo o di contesto, in presenza di TLB, non è sufficiente cambiare il puntatore alla page table. Occorre invalidare il TLB così da forzarlo a caricare le traduzioni degli indirizzi del nuovo processo. NOTA: Se la frequenza di cambio di contesto è troppo alta le prestazioni si deteriorano! Problemi (e soluzioni) analoghe possono sorgere con la cache, nel caso in cui essa sia indicizzata tramite indirizzi virtuali.
20 Paginazione vs Segmentazione Oggi si usano le pagine.. In passato era diffuso uno schema con blocchi di dimensioni variabili, detti SEGMENTI: insieme di bytes contigui e posti in relazione logica, definiti dal compilatore a partire dai moduli o blocchi dei programmi di alto livello. Il segmento è il blocco elementare che viene trasferito fra le gerarchie
21 Segmentazione VANTAGGI La struttura del segmento corrisponde alla naturale suddivisione dei dati e dei programmi. E' agevole gestire meccanismi di separazione e di protezione per i dati dei singoli utenti. SVANTAGGI I segmenti hanno dimensioni fisiche diverse, quindi: allocazione complessa frammentazione (esterna) necessità di ricompattazione della memoria. CAUSE PER IL MANCATO UTILIZZO DELLO SPAZIO Regioni vuote. Frammenti di memoria non utilizzati. Regioni occupate dal sistema di gestione. Regioni occupate da informazioni che non vengono utilizzate.
22 Segmentazione: frammentazione La frammentazione esterna riduce l'utilizzazione della memoria quando risulta necessario disporre i dati dei segmenti in celle di memoria contigue. Lo stesso problema si verificava sui sistemi di memoria secondaria (dischi) quando i ogni file doveva essere memorizzato in segmenti adiacenti. S1 S2 Memoria libera S3 S4
23 Segmentazione: Ricompattazione La memoria non può essere sfruttata completamente. Tra le aree occupate rimangono zone di piccola dimensione nelle quali non possono essere allocati segmenti. Per migliorare l'utilizzazione della memoria: ricompattazione! S1 S1 S2 S3 S2 S3 S4 S4
La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini
La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine
SISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08.
SISTEMI OPERATIVI 08.a Gestione della memoria Gestione della memoria Partizionamento Paginazione Segmentazione Memoria virtuale 1 Obiettivi La gestione della memoria (effettuata dal SO usando gli accorgimenti
GESTIONE DELLA MEMORIA CENTRALE
GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:
Esercitazione su Gerarchie di Memoria
Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,
Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici
Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e
SOLUZIONI: Memoria virtuale
SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi
GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL
GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno
Esercitazione su Gerarchie di Memoria
Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,
Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:
Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può
La gerarchia delle memorie
La gerarchia delle memorie Gestione della memoria Ogni processo, per avanzare necessità che il relativo programma risieda nella memoria centrale, Tale programma è costituito da memoria e dati. Lo spazio
Architettura hardware
Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
PRESTAZIONI. senza e con memoria cache
PRESTAZIONI del processore MIPS pipeline senza e con memoria cache Prestazioni del processore GENERICO (P&H pp 29 31) Definizioni dei parametri di prestazione fondamentali del processore: sia P una prova,
Lezione 19 Memoria Virtuale
Lezione 9 Memoria Virtuale http://www.dii.unisi.it/~giorgi/didattica/arcal All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John
Simuliamo ora il funzionamento di LRU sulla reference string data:
1. Un computer ha quattro frame, i cui istanti di caricamento, di ultimo riferimento e i reference bit sono riportati nella seguente tabella: Frame Caric. Rifer. R 2 135 287 1 1 240 250 1 0 169 253 0 3
Gerarchie di memoria Memorie a componenti dinamici 1
Gerarchie di memoria Memorie a componenti dinamici 1 Denominate Dynamic RAM Memorizzazione su componenti capacitivi 1 transistor per bit (4-6 per Static RAM), dunque maggiore densità Richiede un ciclo
Gestione della memoria
Gestione della memoria Gestione della Memoria Introduzione Spazi di indirizzamento Allocazione contigua Paginazione Segmentazione Segmentazione con paginazione 2 1 Introduzione La condivisione della memoria
Cache: 1 livello della gerarchia di memoria
Cache: 1 livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale (DRAM) Memoria secondaria (Disco) 4 decisioni da prendere
La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni
La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo
Memoria Virtuale e I/O
Memoria Virtuale e I/O Paolo Baldan [email protected] Introduzione CPU - progettazione - prestazioni ideali Le prestazioni reali sono influenzate (pesantemente) da memoria e I/O. Memoria - gerarchie
Prestazioni & Co: CPU, Memoria, I/O
Prestazioni & Co: CPU, Memoria, I/O CPU - progettazione - prestazioni ideali Panoramica Memoria - gerarchie di memoria: cache, memoria principale, etc. - organizzazione, dimensionamento, indirizzamento,
Sistemi operativi e distribuiti
Sistemi operativi e distribuiti La memoria virtuale Memoria Virtuale Separazione della memoria logica da quella fisica Un programma potrebbe risiedere in memoria solo parzialmente Lo spazio di indirizzamento
File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:
File System File: definizione Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da: Dimensione Posizione Accessibilità (solo lettura, lettura e scrittura) Tipo (estensione)
Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)
Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale
MEMORIA GERARCHIE DI MEMORIA
MEMORIA GERARCHIE DI MEMORIA La memoria è divisa in più livelli che sono dal più vicino al più distante al CPU, per tempi di accesso: memoria cache, SRAM, capienza (MB), più veloce (decimi di ns), costosa
Organizzazione di un SO monolitico
Organizzazione di un SO monolitico Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del Gestore delle processore / Gestore della periferiche/ Scheduler(s) memoria dispositivi
Le virtual machine e la memoria virtuale
Le virtual machine e la memoria virtuale Prof. Alberto Borghese Dipartimento di Scienze dell Informazione [email protected] Università degli Studi di Milano Riferimento Patterson 5: 5.6, 5.7. 1/29
Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009. Esercitazione. Memoria virtuale
Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009 Esercitazione Università di Salerno Memoria virtuale 1. Si assuma che un processo abbia m frames (inizialmente tutti vuoti) a disposizione e
9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale
1 (es. 1) Consideriamo un processo con m frame inizialmente uoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine dierse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è il
Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware
Sistema Operativo (Software di base)
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!
Obiettivi Memoria Virtuale Descrivere i vantaggi di un sistema a memoria virtuale Concetti fondamentali Paginazione su richiesta (Demand paging) Algoritmi di sostituzione delle pagine Algoritmi di allocazione
Il Sistema Operativo. Informatica Sistema Operativo 1
Il Sistema Operativo Informatica Sistema Operativo 1 O.S.:.: un intermediario SW Applicativo Sistema Operativo HW Informatica Sistema Operativo 2 O.S. vs applicativi Applicativi accesso a un insieme ridotto
Valutazione delle prestazioni
Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di
SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007
2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)
Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:
Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema
Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1
Esercizio 1 Sia data una memoria cache di tipo a indirizzamento diretto (direct-mapped), con blocchi di dimensioni pari a una sola parola per blocco, e contenente. La parola è lunga 16 bit, e la memoria
Architettura degli elaboratori Docente:
Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri [email protected] Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File
