1 / 40

3.3 Memoria virtuale generalità

3.3 Memoria virtuale generalità. Il principio della memoria virtuale scaturisce da due esigenze distinte e convergenti: permettere l’allocazione in memoria di più program- mi diversi permettere l’esecuzione di un programma di dimen- sioni maggiori della memoria principale

jirair
Download Presentation

3.3 Memoria virtuale generalità

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3.3 Memoria virtualegeneralità Il principio della memoria virtuale scaturisce da due esigenze distinte e convergenti: • permettere l’allocazione in memoria di più program- mi diversi • permettere l’esecuzione di un programma di dimen- sioni maggiori della memoria principale • inoltre consente un utilizzo più efficiente e semplifi- cato della memoria fisica Architettura degli elaboratori 1 - A. Memo

  2. 3.3 Memoria virtualespazio virtuale e fisico Vanno distinti gli • indirizzi virtuali, quelli utilizzati dal pro-grammatore che suppone di avere a disposizione una memoria illimitata (spazio di indirizzamento virtuale) • indirizzi fisici, quelli in cui è realmente allocato in quel momento il dato cercato (spazio di indirizzamento fisico) Architettura degli elaboratori 1 - A. Memo

  3. 3.3 Memoria virtualegestione La gestione della memoria virtuale è molto simile a quella della cache: • memoria principale più veloce e memoria secondaria molto piu estesa ed economica • suddivisione in blocchi di memoria • se il dato cercato non è in memoria principale, si preleva un blocco dalla secondaria e lo si alloca in principale Architettura degli elaboratori 1 - A. Memo

  4. 3.3 Memoria virtualefunzione di traduzione Deve essere creata una funzione di traduzionef() tra indirizzo fisico e logico. Sv = {0, 1, ..., N-1} spazio indirizzamento virtuale Sf = {0, 1, ..., M-1} spazio indirizzamento fisico SvÛ f()Û Sf inoltre tale funzione deve verificare se il dato relativo ad un certo indirizzo virtuale è presente in memroia fisica. Architettura degli elaboratori 1 - A. Memo

  5. 3.3 Memoria virtualecache Û memoria virtuale La cache differisce dalla memoria virtuale: • i blocchi di memoria della cache hanno dimensioni molto inferiori • la cache viene gestita integralmente dalla CPU o da un dispositivo hardware dedicato • la memoria virtuale interagisce a livelli più alti (influenza anche il sistema operativo) Architettura degli elaboratori 1 - A. Memo

  6. 3.3 Memoria virtualepaginazione 1 Suddivisione delle memorie primaria e secondaria in blocchi della stessa dimensione prestabilita. Caratteristiche: • Funzione di traduzione semplificata • Frammentazione interna Architettura degli elaboratori 1 - A. Memo

  7. 3.3 Memoria virtualepaginazione 2 memoria secondaria suddivisa in pagina da 1KB ciascuna 00 0000-00FF indirizzi fisici 0100-01FF 01 f() 0200-02FF 02 0000-03FF 0300-03FF 03 0400-07FF memoria principale suddivisa in frame da 1KB ciascuno indirizzi logici numero di pagina Architettura degli elaboratori 1 - A. Memo

  8. 3.3 Memoria virtualepaginazione 3 indirizzo logico indirizzo fisico page L offset page F offset tabella di traduzione v pageLdirittipageF v pageLdirittipageF v pageLdirittipageF al controllore degli accessi Architettura degli elaboratori 1 - A. Memo

  9. 3.3 Memoria virtualepaginazione 4 • Page Fault, quando la pagina richiesta non è in memoria fisica • Protection Fault, quando il richiedente non ha i diritti per quella richiesta. • il controllore degli accessi può essere direttamente la CPU, o un dispositivo dedicato, o direttamente il Sistema Operativo Architettura degli elaboratori 1 - A. Memo

  10. 3.3 Memoria virtualeframmentazione interna • Difficilmente la richiesta di memoria coincide con un multiplo esatto della dimensione di una pagina. Lo spazio residuo non può essere utilizzato da altri. • Maggiore è la dimensione della pagina e maggiore è l’incidenza della fram-mentazione Architettura degli elaboratori 1 - A. Memo

  11. 3.3 Memoria virtualedimensione della pagina Una pagina di grandi dimensioni implica: • alta frammentazione • minor numero di elementi nella tabella ma campi pageL e pageF più ampi • maggiore velocità (bit per secondo) di trasferimento tra memoria principale e secondaria • dimensione tipica attuale ³ 4 KB Architettura degli elaboratori 1 - A. Memo

  12. 3.3 Memoria virtualerimpiazzo delle pagine • Least Recently Used • pagina usata meno recentemente • difficile da valutare (lista ordinata, dove ogmi pagina referenziata viene posta in cima, e l’LRU è l’ultimo della lista) • Not Recently Used • pagina non utilizzata recentemente • bit di utilizzo, periodicamente azzerato Architettura degli elaboratori 1 - A. Memo

  13. 3.3 Memoria virtualerichiesta delle pagine • per riferimento (on demand) • ogni volta che viene richiesto un dato di una pagina non presente in memoria principale • precaricata (prefetching) • basandoci sulla proprietà di località spaziale, anticipare la richiesta delle pagine adiacenti a quella in uso • non sempre funziona e può creare ulteriori fault Architettura degli elaboratori 1 - A. Memo

  14. 3.3 Memoria virtualecongruenza delle pagine Anche con la memoria virtuale c’è il problema della scrittura dei dati e quindi della congruenza delle pagine tra memoria principale e secondaria. Data la notevole lentezza della memoria secondaria si adotta quasi sempre la tecnica del write back. Architettura degli elaboratori 1 - A. Memo

  15. 3.3 Memoria virtualeTranslation Lookaside Buffer La tabella di traduzione è generalmente molto grande, deve essere allocata in memoria e spesso è a sua volta paginata Per velocizzare la funzione di traduzione si ricorre ad una cache speciale in cui memorizzare le pagine richieste recentemente, composta da N elementi con i campi pageL, pageF, dirty bit, use bit, controlli. Architettura degli elaboratori 1 - A. Memo

  16. 3.3 Memoria virtualequantificazione dimensione del blocco 512 - 8192 Byte durata hit 1 - 10 cicli machina durata miss 100.000 - 600.000 cicli (tempo di accesso) (100.000 - 500.000 cicli) (tempo di trasferimento) (10.000 - 100.000 cicli) percentuale miss 0,000001% - 0,001% dimensione DRAM 4 - 1024 MByte Architettura degli elaboratori 1 - A. Memo

  17. 3.3 Memoria virtualesegmentazione 1 Allocazione di un blocco di memoria della dimensione (qualsiasi) richiesta. Caratteristiche: • funzione di traduzione complicata • frammentazione esterna • controllo più efficace dei diritti d’uso Architettura degli elaboratori 1 - A. Memo

  18. 3.3 Memoria virtualesegmentazione 1 memoria secondaria contenente 2 segmenti indirizzi fisici 0000-000E f() 03F1-03FF 000F-010E 0500-05FF memoria principale contenente 2 segmenti indirizzi logici Architettura degli elaboratori 1 - A. Memo

  19. 3.3 Memoria virtualesegmentazione 2 indirizzo logico indirizzo fisico seg L seg F offset offset tabella di traduzione v seg Ldirittilungseg F v seg Ldirittilungseg F v seg Ldirittilungseg F al controllore degli accessi Architettura degli elaboratori 1 - A. Memo

  20. 3.3 Memoria virtualesegmentazione 3 • traduzione complicata e più ingombrante • scelta critica di dove allocare il segmento in memoria principale • best-fit, worst-fit, first-fit • frammentazione esterna, con necessità di periodiche ricompattazione (garbage collection) Architettura degli elaboratori 1 - A. Memo

  21. 3.3 Memoria virtualeconsiderazioni • la memoria virtuale può essere vista come un’estensione dell’organizzazione gerarchi-ca della memoria • viene utilizzata per condividere l’unica memoria tra più processi, onsentendo buoni schemi di protezione • l’ampia memoria virtuale a disposizione richiede tabelle paginate e TLB • rilevante l’ottimizzazione dei compilatori Architettura degli elaboratori 1 - A. Memo

  22. 3.4 Architettura RISCgeneralità 1 A cavallo degli anni ‘70 e ’80 Cocke (IBM), Patterson (Berkley) e Hennessy (Stanford) analizzarono i codici eseguibili di molti programmi e scoprirono che la grande maggioranza di istruzioni utilizzate erano quelle più semplici (assegnazioni, salti condizionati e chiamate a routine) messe a disposizioni di CPU sempre più complesse. Architettura degli elaboratori 1 - A. Memo

  23. 3.4 Architettura RISCgeneralità 2 L’evoluzione tecnologica era stata utilizzata per fare CPU con istruzioni sempre più complesse, ma venivano usate molto poco. Progettarono allora una CPU che sfruttasse la tecnologia per fare più velocemente quello che facevano le prime CPU. Nacque la disputa CISC - RISC. Architettura degli elaboratori 1 - A. Memo

  24. 3.4 Architettura RISCgeneralità 3 Complex Instruction Set Reduced Instruction Set Computer IBM 370 VAX 11 IBM 801 RISC 1 MIPS SPARC anno 1973 1978 1980 1981 1983 1987 # istr. 208 303 120 3 55 58 microcod 54 K 61 K 0 0 0 0 dim. instr. 2 - 6 2 - 57 4 4 4 4 reg-reg reg-reg modello reg-mem reg-mem reg-reg reg-reg reg-reg reg-reg mem-mem mem-mem Architettura degli elaboratori 1 - A. Memo

  25. 3.4 Architettura RISCcaratteristiche 1 Oltre al ridotto set di istruzioni, le RISC : • sono architetture Load/Store • hanno solo istruzioni che durano un ciclo • hanno istruzioni a formato fisso • hanno ridotte modalità di indirizzamento • riescono facilmente a bilanciare il pipeline • sono hardwired Architettura degli elaboratori 1 - A. Memo

  26. 3.4 Architettura RISCcaratteristiche 2 • adottano grandi banchi di registri • passaggio parametri tramite overlapping register windows • eseguono le istruzioni (ridotte) 2 - 4 volte più velocemente delle equivalenti CISC • il control path occupa meno spazio • le prestazioni dipendono dall’ottimizzazione del software Architettura degli elaboratori 1 - A. Memo

  27. 3.4 Architettura RISCcaratteristiche 3 • è più facile realizzzare i compilatori • servono più istruzioni semplici per sostituire un’istruzione complessa (code expansion) • sono ideali per il superpipeline, il supersca-lare, la speculative execution e l’out-of-order execution • è diventato più un problema di filosofia che strutturale e tecnologico Architettura degli elaboratori 1 - A. Memo

  28. 3.4 Architettura RISCfusione RISC - CISC Il 486 dell’Intel ha un set di istruzioni di core implementate RISC e un set di istruzioni compatibili microprogrammate codice Fast cache decoder core instr. comp. instr. control path microprog. ALU e registri Architettura degli elaboratori 1 - A. Memo

  29. 3.5 L’architettura x86cronologia 1 8086 versione a 16 bit dell’8080, [‘78]; registri general purpose con compiti preferenziali e ad accumulatore (mista), AB da 20 bit 8087 coprocessore matematico per 8086, [‘80] architettura a stack, modalità reg/mem 80186 poche innovazioni, fallimento [‘81] 80286 spazio di indirizzabilità a 24 bit, [‘82] schemi di protezione della memoria, real mode e protected mode Architettura degli elaboratori 1 - A. Memo

  30. 3.5 L’architettura x86cronologia 2 80386 AB e DB a 32 bit, [‘85], virtual mode, nuove istruzioni e indirizzamenti, paginazione 80486 aumento delle prestazioni, cache interna [‘89] Pentium (P5), superscalare con doppia pipeline [‘92] Pentium Pro (P6), doppia cavità, L2 integrata [‘96] predizione efficiente dei salti Pentium MMX , introduzione istruzioni MMX [‘97] Pentium II, nuovo socket e bus (Pro + MMX), [‘97] Architettura degli elaboratori 1 - A. Memo

  31. 3.5 L’architettura x86il futuro ? Deuschutes, clock 300-400 MHz, P II per portatili Katmai, P II con estensioni MMX2, DB da 100 MHz cache L1 maggiore Willamette, P Pro potenziato Merced, Intel ed HP progettano di realizzare un set di istruzioni compatibile x86 e PA-RISC (IA-64) con DB a 64 bit e clock elevatissimo Architettura degli elaboratori 1 - A. Memo

  32. 3.5 L’architettura x86i registri 8 32 bit general purpose register preferenziali (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP) 6 16 bit registri speciali (CS, SS, DS, ES, FS, GS) 1 32 bit program counter (EIP) 1 32 bit registro di flag (EFLAGS) 8 80 bit registri Floating Point organizzati a stack (R0, R1, R2, R3, R4, R5, R6, R7) altri registri di livello sistema e di controllo FP Architettura degli elaboratori 1 - A. Memo

  33. 3.5 L’architettura x86modalità di indirizzamento 1 • immediato • tramite registro • indiretto tramite registro (BX, SI, DI) • con base e spiazzamento 8/16 bit (BP, BX, SI, DI) • indicizzato (BX+SI, BX+DI, BP+SI, BP+DI) • indicizzato con base e spiazzamento 8/16 bit • con fattore di scala (SI/DI *1/2/4/8) Architettura degli elaboratori 1 - A. Memo

  34. 3.5 L’architettura x86modalità di indirizzamento 2 • le istruzioni a due operandi ammettono: sorgente/destinazione sorgente registro registro registro immediato registro memoria memoria registro memoria immediato • gli operandi possono essere ad 8, 16 o 32 bit • la lunghezza delle istruzioni varia da 1 a 17 Byte Architettura degli elaboratori 1 - A. Memo

  35. 3.5 L’architettura x86set di istruzioni • trasferimento dati (MOV, PUSH, POP, IN, OUT) • aritmetiche (ADD, ADC, AND, OR, SUB, INC) • spostamento bit (ROL, RCL, SHL, SAR, BSWAP) • manipolazione di bit (BTS, BTR, SET) • controllo (JMP,CALL, RET, JZ, JNZ) • di stringa (MOVS, STOS, CMPS, REP) • supporto ai linguaggi di alto livello ( LOOP) • supporto al sistema operativo (CLTS, LTR, SGDT) • controllo del processore (NOP, LOCK, HLT, WAIT) • floating point (FLD, FST, FXCH, FADD, FSIN) Architettura degli elaboratori 1 - A. Memo

  36. 3.5 L’architettura x86considerazioni • la compatibilità verso il basso è stata la mossa commerciale vincente, ma è un’ostacolo enorme all’evoluzione dell’architettura • le prestazioni sono migliorate dalla prima CPU, buoni i risultati nelle operazioni intere, meno brillanti nel settore floating point per l’organizzazione rigidamente a stack • è comunque la piattaforma più diffusa nel mondo Architettura degli elaboratori 1 - A. Memo

  37. 3.5 L’architettura x86MMX 1 Estensione dell’ultima generazione che fornisce tipi di dati e istruzioni atte alla gestione multimediale. Le esigenze della multimedialità sono: • dati di piccole dimensioni (8 o 16 bit) • cicli ripetitivi di estensione contenuta • operazioni concorrenti a basso grado di parallelismo quali prodotti e sommatorie di piccoli vettori Architettura degli elaboratori 1 - A. Memo

  38. 3.5 L’architettura x86MMX 2 Nuovi tipi di dati implementati: • packed byte : vettore di 8 elementi byte racchiuso in un registro a 64 bit • packed word : vettore di 4 elementi word racchiuso in un registro a 64 bit • packet doubleword : vettore di 2 elementi doubleword racchiuso in un registro a 64 bit • quadword : un elemento a 64 bit Architettura degli elaboratori 1 - A. Memo

  39. 3.5 L’architettura x86MMX 3 Ci sono 57 nuove istruzioni che operano sui nuovi dati: • trasferimento: move • arithmetiche: add, subtract, multiply, multiply-add • logiche: and, and not, or • di spostamento: left, right, arithmetic • di confronto: compare equal, compare greater than • di conversione: pack and unpack Architettura degli elaboratori 1 - A. Memo

  40. 3.5 L’architettura x86MMX 4 • in alcune applicazioni (poche), tipo compressione MPEG, raddoppiano di velocità; nelle altre + 20% • sono ancora pochi i programmi compilati per l’estensione MMX, e quindi è difficile valutare in opera le prestazioni • probabilmente il futuro è orientato all’implementazione di istruzioni parallele, e Intel è stata la prima a proporle a livello di massa Architettura degli elaboratori 1 - A. Memo

More Related