La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Central Process Unit Architettura degli elaboratori 1 - A. Memo 156 3.3 Memoria virtuale generalità Il principio della memoria virtuale scaturisce da due.

Presentazioni simili


Presentazione sul tema: "Central Process Unit Architettura degli elaboratori 1 - A. Memo 156 3.3 Memoria virtuale generalità Il principio della memoria virtuale scaturisce da due."— Transcript della presentazione:

1 Central Process Unit Architettura degli elaboratori 1 - A. Memo 156 3.3 Memoria virtuale generalità Il principio della memoria virtuale scaturisce da due esigenze distinte e convergenti: l permettere lallocazione in memoria di più program- mi diversi l permettere lesecuzione di un programma di dimen- sioni maggiori della memoria principale l inoltre consente un utilizzo più efficiente e semplifi- cato della memoria fisica

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

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

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

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

6 Central Process Unit Architettura degli elaboratori 1 - A. Memo 161 3.3 Memoria virtuale paginazione 1 Suddivisione delle memorie primaria e secondaria in blocchi della stessa dimensione prestabilita. Caratteristiche: l Funzione di traduzione semplificata l Frammentazione interna

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

8 Central Process Unit Architettura degli elaboratori 1 - A. Memo 163 3.3 Memoria virtuale paginazione 3 page Loffset indirizzo logico tabella di traduzione v pageL diritti pageF page Foffset indirizzo fisico al controllore degli accessi

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

10 Central Process Unit Architettura degli elaboratori 1 - A. Memo 165 3.3 Memoria virtuale frammentazione interna l Difficilmente la richiesta di memoria coincide con un multiplo esatto della dimensione di una pagina. Lo spazio residuo non può essere utilizzato da altri. l Maggiore è la dimensione della pagina e maggiore è lincidenza della fram- mentazione

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

12 Central Process Unit Architettura degli elaboratori 1 - A. Memo 167 3.3 Memoria virtuale rimpiazzo delle pagine l Least Recently Used –pagina usata meno recentemente –difficile da valutare (lista ordinata, dove ogmi pagina referenziata viene posta in cima, e lLRU è lultimo della lista) l Not Recently Used –pagina non utilizzata recentemente –bit di utilizzo, periodicamente azzerato

13 Central Process Unit Architettura degli elaboratori 1 - A. Memo 168 3.3 Memoria virtuale richiesta delle pagine l per riferimento (on demand) –ogni volta che viene richiesto un dato di una pagina non presente in memoria principale l 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

14 Central Process Unit Architettura degli elaboratori 1 - A. Memo 169 3.3 Memoria virtuale congruenza 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.

15 Central Process Unit Architettura degli elaboratori 1 - A. Memo 170 3.3 Memoria virtuale Translation 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.

16 Central Process Unit Architettura degli elaboratori 1 - A. Memo 171 3.3 Memoria virtuale quantificazione dimensione del blocco512 - 8192 Byte durata hit 1 - 10 cicli machina durata miss100.000 - 600.000 cicli (tempo di accesso)(100.000 - 500.000 cicli) (tempo di trasferimento)(10.000 - 100.000 cicli) percentuale miss0,000001% - 0,001% dimensione DRAM4 - 1024 MByte

17 Central Process Unit Architettura degli elaboratori 1 - A. Memo 172 3.3 Memoria virtuale segmentazione 1 Allocazione di un blocco di memoria della dimensione (qualsiasi) richiesta. Caratteristiche: l funzione di traduzione complicata l frammentazione esterna l controllo più efficace dei diritti duso

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

19 Central Process Unit Architettura degli elaboratori 1 - A. Memo 174 3.3 Memoria virtuale segmentazione 2 seg L offset indirizzo logico tabella di traduzione v seg L diritti lung seg F indirizzo fisico al controllore degli accessi seg F offset

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

21 Central Process Unit Architettura degli elaboratori 1 - A. Memo 176 3.3 Memoria virtuale considerazioni l la memoria virtuale può essere vista come unestensione dellorganizzazione gerarchi- ca della memoria l viene utilizzata per condividere lunica memoria tra più processi, onsentendo buoni schemi di protezione l lampia memoria virtuale a disposizione richiede tabelle paginate e TLB l rilevante lottimizzazione dei compilatori

22 Central Process Unit Architettura degli elaboratori 1 - A. Memo 177 3.4 Architettura RISC generalità 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.

23 Central Process Unit Architettura degli elaboratori 1 - A. Memo 178 3.4 Architettura RISC generalità 2 Levoluzione 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.

24 Central Process Unit Architettura degli elaboratori 1 - A. Memo 179 3.4 Architettura RISC generalità 3 Complex Instruction Set Reduced Instruction Set Computer IBM 370VAX 11IBM 801RISC 1MIPSSPARC anno197319781980198119831987 # istr.20830312035558 microcod54 K61 K0000 dim. instr.2 - 62 - 574444 reg-reg modello reg-memreg-mem reg-regreg-regreg-regreg-regmem-mem

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

26 Central Process Unit Architettura degli elaboratori 1 - A. Memo 181 3.4 Architettura RISC caratteristiche 2 l adottano grandi banchi di registri l passaggio parametri tramite overlapping register windows l eseguono le istruzioni (ridotte) 2 - 4 volte più velocemente delle equivalenti CISC l il control path occupa meno spazio l le prestazioni dipendono dallottimizzazione del software

27 Central Process Unit Architettura degli elaboratori 1 - A. Memo 182 3.4 Architettura RISC caratteristiche 3 l è più facile realizzzare i compilatori l servono più istruzioni semplici per sostituire unistruzione complessa (code expansion) l sono ideali per il superpipeline, il supersca- lare, la speculative execution e lout-of- order execution l è diventato più un problema di filosofia che strutturale e tecnologico

28 Central Process Unit Architettura degli elaboratori 1 - A. Memo 183 3.4 Architettura RISC fusione RISC - CISC Il 486 dellIntel ha un set di istruzioni di core implementate RISC e un set di istruzioni compatibili microprogrammate Fast cachedecoder ALU e registri control path microprog. core instr. comp. instr. codice

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

30 Central Process Unit Architettura degli elaboratori 1 - A. Memo 185 3.5 Larchitettura x86 cronologia 2 80386AB e DB a 32 bit, [85], virtual mode, nuove istruzioni e indirizzamenti, paginazione 80486aumento 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]

31 Central Process Unit Architettura degli elaboratori 1 - A. Memo 186 3.5 Larchitettura x86 il 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

32 Central Process Unit Architettura degli elaboratori 1 - A. Memo 187 3.5 Larchitettura x86 i registri 832 bitgeneral purpose register preferenziali (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP) 616 bitregistri speciali ( CS, SS, DS, ES, FS, GS) 132 bitprogram counter (EIP) 132 bitregistro di flag (EFLAGS) 880 bitregistri Floating Point organizzati a stack (R0, R1, R2, R3, R4, R5, R6, R7) altri registri di livello sistema e di controllo FP

33 Central Process Unit Architettura degli elaboratori 1 - A. Memo 188 3.5 Larchitettura x86 modalità di indirizzamento 1 l immediato l tramite registro l indiretto tramite registro (BX, SI, DI) l con base e spiazzamento 8/16 bit (BP, BX, SI, DI) l indicizzato (BX+SI, BX+DI, BP+SI, BP+DI) l indicizzato con base e spiazzamento 8/16 bit l con fattore di scala (SI/DI *1/2/4/8)

34 Central Process Unit Architettura degli elaboratori 1 - A. Memo 189 3.5 Larchitettura x86 modalità di indirizzamento 2 l le istruzioni a due operandi ammettono: sorgente/destinazionesorgenteregistro registroimmediato registromemoria memoriaregistro memoriaimmediato l gli operandi possono essere ad 8, 16 o 32 bit l la lunghezza delle istruzioni varia da 1 a 17 Byte

35 Central Process Unit Architettura degli elaboratori 1 - A. Memo 190 3.5 Larchitettura x86 set 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)

36 Central Process Unit Architettura degli elaboratori 1 - A. Memo 191 3.5 Larchitettura x86 considerazioni l la compatibilità verso il basso è stata la mossa commerciale vincente, ma è unostacolo enorme allevoluzione dellarchitettura l le prestazioni sono migliorate dalla prima CPU, buoni i risultati nelle operazioni intere, meno brillanti nel settore floating point per lorganizzazione rigidamente a stack l è comunque la piattaforma più diffusa nel mondo

37 Central Process Unit Architettura degli elaboratori 1 - A. Memo 192 3.5 Larchitettura x86 MMX 1 Estensione dellultima generazione che fornisce tipi di dati e istruzioni atte alla gestione multimediale. Le esigenze della multimedialità sono: l dati di piccole dimensioni (8 o 16 bit) l cicli ripetitivi di estensione contenuta l operazioni concorrenti a basso grado di parallelismo quali prodotti e sommatorie di piccoli vettori

38 Central Process Unit Architettura degli elaboratori 1 - A. Memo 193 3.5 Larchitettura x86 MMX 2 Nuovi tipi di dati implementati: l packed byte : vettore di 8 elementi byte racchiuso in un registro a 64 bit l packed word : vettore di 4 elementi word racchiuso in un registro a 64 bit l packet doubleword : vettore di 2 elementi doubleword racchiuso in un registro a 64 bit l quadword : un elemento a 64 bit

39 Central Process Unit Architettura degli elaboratori 1 - A. Memo 194 3.5 Larchitettura x86 MMX 3 Ci sono 57 nuove istruzioni che operano sui nuovi dati: l trasferimento: move l arithmetiche: add, subtract, multiply, multiply-add l logiche: and, and not, or l di spostamento: left, right, arithmetic l di confronto: compare equal, compare greater than l di conversione: pack and unpack

40 Central Process Unit Architettura degli elaboratori 1 - A. Memo 195 3.5 Larchitettura x86 MMX 4 l in alcune applicazioni (poche), tipo compressione MPEG, raddoppiano di velocità; nelle altre + 20% l sono ancora pochi i programmi compilati per lestensione MMX, e quindi è difficile valutare in opera le prestazioni l probabilmente il futuro è orientato allimplementazione di istruzioni parallele, e Intel è stata la prima a proporle a livello di massa


Scaricare ppt "Central Process Unit Architettura degli elaboratori 1 - A. Memo 156 3.3 Memoria virtuale generalità Il principio della memoria virtuale scaturisce da due."

Presentazioni simili


Annunci Google