Post on 01-May-2015
transcript
Central Process Unit Architettura degli elaboratori 1 - A. Memo
1
3.3 Memoria virtuale3.3 Memoria virtualegeneralità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 inoltre consente un utilizzo più efficiente e semplifi-
cato della memoria fisica
Central Process Unit Architettura degli elaboratori 1 - A. Memo
2
3.3 Memoria virtuale3.3 Memoria virtualespazio virtuale e fisicospazio 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)
Central Process Unit Architettura degli elaboratori 1 - A. Memo
3
3.3 Memoria virtuale3.3 Memoria virtualegestionegestione
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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
4
3.3 Memoria virtuale3.3 Memoria virtualefunzione di traduzionefunzione di traduzione
Deve essere creata una funzione di traduzione f() 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.
Central Process Unit Architettura degli elaboratori 1 - A. Memo
5
3.3 Memoria virtuale3.3 Memoria virtualecache cache memoria virtualememoria 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)
Central Process Unit Architettura degli elaboratori 1 - A. Memo
6
3.3 Memoria virtuale3.3 Memoria virtualepaginazione 1paginazione 1
Suddivisione delle memorie primaria e secondaria in blocchi della stessa dimensione prestabilita.
Caratteristiche: Funzione di traduzione semplificata Frammentazione interna
Central Process Unit Architettura degli elaboratori 1 - A. Memo
7
3.3 Memoria virtuale3.3 Memoria virtualepaginazione 2paginazione 2
0000-00FF
0100-01FF
0200-02FF
0300-03FF
memoria secondaria suddivisa inpagina da 1KB ciascuna
indirizzi logici
f() 0000-03FF
0400-07FF
memoria principalesuddivisa in frameda 1KB ciascuno
indirizzi fisici00
01
02
03
numerodi pagina
Central Process Unit Architettura degli elaboratori 1 - A. Memo
8
3.3 Memoria virtuale3.3 Memoria virtualepaginazione 3paginazione 3
page L offset
indirizzo logico
tabella di traduzionev pageL diritti pageFv pageL diritti pageF v pageL diritti pageF
page F offset
indirizzo fisico
al controlloredegli accessi
Central Process Unit Architettura degli elaboratori 1 - A. Memo
9
3.3 Memoria virtuale3.3 Memoria virtualepaginazione 4paginazione 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
10
3.3 Memoria virtuale3.3 Memoria virtualeframmentazione internaframmentazione 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
11
3.3 Memoria virtuale3.3 Memoria virtualedimensione della paginadimensione 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
12
3.3 Memoria virtuale3.3 Memoria virtualerimpiazzo delle paginerimpiazzo 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
13
3.3 Memoria virtuale3.3 Memoria virtualerichiesta delle paginerichiesta 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
14
3.3 Memoria virtuale3.3 Memoria virtualecongruenza delle paginecongruenza 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.
Central Process Unit Architettura degli elaboratori 1 - A. Memo
15
3.3 Memoria virtuale3.3 Memoria virtualeTranslation Lookaside BufferTranslation 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.
Central Process Unit Architettura degli elaboratori 1 - A. Memo
16
3.3 Memoria virtuale3.3 Memoria virtualequantificazionequantificazione
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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
17
3.3 Memoria virtuale3.3 Memoria virtualesegmentazione 1segmentazione 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
18
03F1-03FF
0500-05FF
memoria secondariacontenente 2 segmenti
indirizzi logici
f()
0000-000E
000F-010E
memoria principalecontenente 2 segmenti
indirizzi fisici
3.3 Memoria virtuale3.3 Memoria virtualesegmentazione 1segmentazione 1
Central Process Unit Architettura degli elaboratori 1 - A. Memo
19
3.3 Memoria virtuale3.3 Memoria virtualesegmentazione 2segmentazione 2
seg L
offset
indirizzo logico
tabella di traduzionev seg L diritti lung seg Fv seg L diritti lung seg F v seg L diritti lung seg F
indirizzo fisico
al controlloredegli accessi
seg F
offset
Central Process Unit Architettura degli elaboratori 1 - A. Memo
20
3.3 Memoria virtuale3.3 Memoria virtualesegmentazione 3segmentazione 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)
Central Process Unit Architettura degli elaboratori 1 - A. Memo
21
3.3 Memoria virtuale3.3 Memoria virtualeconsiderazioniconsiderazioni
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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
22
3.4 Architettura RISC3.4 Architettura RISCgeneralità 1generalità 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.
Central Process Unit Architettura degli elaboratori 1 - A. Memo
23
3.4 Architettura RISC3.4 Architettura RISCgeneralità 2generalità 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.
Central Process Unit Architettura degli elaboratori 1 - A. Memo
24
3.4 Architettura RISC3.4 Architettura RISCgeneralità 3generalità 3
Complex Instruction Set Reduced Instruction Set ComputerIBM 370 VAX 11 IBM 801 RISC 1 MIPS SPARC
anno 1973 1978 1980 1981 1983 1987# istr. 208 303 120 3 55 58microcod 54 K 61 K 0 0 0 0dim. instr. 2 - 6 2 - 57 4 4 4 4
reg-reg reg-regmodello reg-mem reg-mem reg-reg reg-reg reg-reg reg-reg
mem-mem mem-mem
Central Process Unit Architettura degli elaboratori 1 - A. Memo
25
3.4 Architettura RISC3.4 Architettura RISCcaratteristiche 1caratteristiche 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
26
3.4 Architettura RISC3.4 Architettura RISCcaratteristiche 2caratteristiche 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
27
3.4 Architettura RISC3.4 Architettura RISCcaratteristiche 3caratteristiche 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
28
3.4 Architettura RISC3.4 Architettura RISCfusione RISC - CISCfusione RISC - CISC
Il 486 dell’Intel ha un set di istruzioni di core implementate RISC e un set di istruzioni compatibili microprogrammate
Fast cache decoder
ALU eregistri
control pathmicroprog.
coreinstr.
comp. instr.
codice
Central Process Unit Architettura degli elaboratori 1 - A. Memo
29
3.5 L’architettura x863.5 L’architettura x86cronologia 1cronologia 1
8086 versione a 16 bit dell’8080, [‘78]; registrigeneral purpose con compiti preferenziali ead 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
30
3.5 L’architettura x863.5 L’architettura x86cronologia 2cronologia 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]
Central Process Unit Architettura degli elaboratori 1 - A. Memo
31
3.5 L’architettura x863.5 L’architettura x86il futuro ?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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
32
3.5 L’architettura x863.5 L’architettura x86i registrii 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
33
3.5 L’architettura x863.5 L’architettura x86modalità di indirizzamento 1modalità 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)
Central Process Unit Architettura degli elaboratori 1 - A. Memo
34
3.5 L’architettura x863.5 L’architettura x86modalità di indirizzamento 2modalità di indirizzamento 2
le istruzioni a due operandi ammettono: sorgente/destinazione sorgente
registro registroregistro immediatoregistro memoriamemoria registromemoria immediato
gli operandi possono essere ad 8, 16 o 32 bit la lunghezza delle istruzioni varia da 1 a 17 Byte
Central Process Unit Architettura degli elaboratori 1 - A. Memo
35
3.5 L’architettura x863.5 L’architettura x86set di istruzioniset 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)
Central Process Unit Architettura degli elaboratori 1 - A. Memo
36
3.5 L’architettura x863.5 L’architettura x86considerazioniconsiderazioni
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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
37
3.5 L’architettura x863.5 L’architettura x86MMX 1MMX 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
38
3.5 L’architettura x863.5 L’architettura x86MMX 2MMX 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
39
3.5 L’architettura x863.5 L’architettura x86MMX 3MMX 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
Central Process Unit Architettura degli elaboratori 1 - A. Memo
40
3.5 L’architettura x863.5 L’architettura x86MMX 4MMX 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