“Concetti di informatica e Fondamenti di Java”. C.Horstmann Terza edizione, Ed.
Apogeo, 2005. ▫ Per gli argomenti rimanenti sono sufficienti le dispense.
Informatica I Ingegneria Medica
Prof. Diego Salamon
1
Informazioni
Corso : Informatica I
Corso
di Laurea in Ingegneria Medica
Docente : Prof. Diego Salamon
Orario delle Lezioni (modificato)
Lun
13.30 – 15.00
Mer 8.30 – 10.00
Gio 13.30 – 15.00 Ricevimento studenti a fine Lezione
Informazioni
Corso introduttivo all’informatica:
Introdurre
i principi del funzionamento di un elaboratore e della programmazione.
Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e algoritmi al progetto di strutture di dati. Fornire le competenze per lo sviluppo di semplici applicazioni in linguaggio Java. Java
Accento sulle applicazioni mediche Linguaggio usato : Java (cenni sulla programmazione a oggetti) Previsti dei seminar (non inclusi nel programma) su :
Architetture
Informative cliniche
Sicurezza Informatica
Riferimenti Bibliografici Libro di testo: “Concetti di informatica e Fondamenti di Java”. C.Horstmann Terza edizione, Ed. Apogeo, 2005 Per gli argomenti rimanenti sono sufficienti le dispense lasciate dal docente; per chi volesse approfondire gli argomenti può consultare i seguenti testi: Per la parte teorica:
“Algoritmi e Strutture Dati” Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano. McGraw Hill, 2004.
“Architettura dei computer. Un approccio strutturato” A.S.Tanenbaum
“I moderni sistemi operativi” A.S.Tanenbaum Per la parte di programmazione :
è sufficiente il materiale liberamente scaricabile dalla rete (ad esempio il Testo - "Thinking in Java“ Java 3rd Edition http://www.bruceeckel.com/
Modalità di Esame
Esame Orale 2 domande. domande Previsto 1 esonero durante il corso
Il
superamento di questo alleggerisce di una domanda il colloquio finale ; quest’ultimo da tenersi durante un appello formale.
L’accettazione del voto dell’esonero deve essere fatta a priori rispetto lo svolgimento della prova finale
Ricevimento studenti a fine lezione Contatti via mail all’indirizzo: Esonero: Esonero nella prassi comune è
[email protected]
Materiale scaricabile dal sito: http://?????ing.uniroma2.it
un appello informale che si tiene durante la frequentazione di un corso (quindi al di fuori delle date ufficiali di esame)e che esonera lo studente dall’esame formale o da parte di esso.
Prenotazioni
Le pronotazioni agli esami e agli esoneri sono gestite elettronicamente:
Per
prenotarsi ad un esonero mandare una mail al docente con oggetto: Prenotazione Esonero body: nome, cognome, matricola, data esonero
Per
prenotarsi ad un esame mandare una mail al docente con oggetto: Prenotazione Esame body: nome, cognome, matricola, data esame
Organizzazione del Corso
Il corso prevede :
Una
parte teorica
Una
parte pratica
Il corso è suddiviso :
Parte
I: fino primo esonero
Parte II : dal primo esonero fino secondo A questa suddivisione formale corrisponde una suddivisione degli argomenti trattati; tali argomenti saranno evidenziati nel prosieguo del corso.
Introduzione al Corso
Introduzione al corso. Storia degli Elaboratori Architettura degli elaboratori
Evoluzione degli Elaboratori
Quasi tutta l’evoluzione ha avuto luogo negli ultimi 50 anni
Evoluzione: Generazione 0 (1600-1945)
Pascal (1623-1662)
Pascaline:
Leibniz (1646-1716)
Anche
addizioni e sottrazioni
Funzionamento Elettromeccanico
moltoplicazioni e divisioni
Charles Babbage (1792-1871)
A)
B)
Macchina Differenziale Algoritmo fisso (differenze finite) Output su piastra di rame
Macchina Analitica Prima macchina programmabile Primo programmatore: Ada Lovelace (figlia di Lord Byron) Memoria: 1000 x 50 cifre decimali Mulino (CPU) I/O su schede perforate Limite: tecnologia meccanica
Evoluzione: Generazione 0 (1600-1945)
Konrad Zuse (~1930 Germania)
Macchina
a relè
Distrutte nella guerra
Funzionamento Elettromeccanico
John Atanasoff (~1940 USA)
Aritmetica
binaria
Memoria a condensatori
Howard Aiken (~1940 USA) MARK 1: versione a relè della macchina di Babbage
Memoria: 72 x 23 cifre decimali
tempo di ciclo: 6 sec.
I/O su nastro perforato
Evoluzione: Generazione I (1945-1955)
COLOSSUS (~1940 GB)
Gruppo
di Alan Turing
Decifrazione del codice Enigma
Progetto mantenuto segreto
Tecnologia a Tubi Termoionici
ENIAC (~1946 USA)
J.
Mauchley, J. Eckert
18.000 valvole
30 tonnellate di peso
140kw assorbimento
Programmabile tramite 6000 interruttori e pannelli cablati
20 registri da 10 cifre
EDVAC (~1950 USA)
Successore
dell’ENIAC
Mai giunto a termine
Evoluzione: Generazione I (1945-1955)
Evoluzione: Generazione I
Finora gli elaboratori sono limitati all’ambito scientifico, a quello militare e istituzionale (censimento) Diventa ormai chiara l’occasione di mercato Nel 1950 Mauchley e Eckert escono dal progetto EDVAC e fondano la UNIVAC, la prima grossa società del settore
Evoluzione: Generazione I Inizialmente il mercato è dominato dalla UNIVAC L’IBM entra nel mercato nel 1953, e assume una posizione dominante che manterrà fino agli anni ‘80: IBM 701 (1953):
Memoria: 2k word di 36 bit
2 istruzioni per word
IBM 704 (1956):
Memoria: 4k word di 36 bit
Istruzioni a 36 bit
Floating-point hardware
IBM 709 (1958)
Praticamente un 704 potenziato
Ultima macchine IBM a valvole
Evoluzione: Generazione II(1955-1965)
TXO e TX2 macchine sperimentali costruite allo MIT Uno dei progettisti del TX2 fonda una propria società la Digital Equipment Corporation (DEC) Tecnologia a La DEC produce il PDP-1 (1951):
Memoria:
4k parole di 18 bit
Tempo di ciclo di 4msec
Prestazioni simili all’IBM 7090
Prezzo meno di un decimo
Schermo grafico 512 ´ 512 pixel
(primi videogiochi)
Comincia la produzione di massa
Transistor
Evoluzione: Generazione II Sistemi Commerciali Mainframe : grossi calcolatori per applicazioni scientifiche, militari e PA • IBM 7090
Versione transistorizzata del 709 Memoria 32k word a 36 bit Tempo di ciclo 2 msec Domina il mercato fino agli anni ‘70 Pochi esemplari, costano milioni di $
Piccoli sistemi: per medie aziende o di appoggio ai mainframe IBM 1401
Stessa capicità di I/O del 7090 Memoria 4k word 8bit (1byte) Orientata a caratteri Istruzioni per la manipolazione di stringhe
Evoluzione: il minicomputer
DEC PDP-8 (1965)
Successore
diretto del PDP-1
Interconnessione a bus, molto flessibile
Architettura incentrata sull’I/O
Possibilità di connettere qualsiasi periferica
Prodotto in oltre 50.000 esemplari
Evoluzione: il supercomputer
Macchine molto potenti dedicate al number crunching 10 volte più veloci del 7090 Architettura molto sofisticata Parallelismo all’interno della CPU Nicchia di mercato molto specifica (resta vero anche oggi) CDC 6600 (1964)
Progettista
del CDC 6600 è Seymour
Cray, poi fondatore della CRAY
Evoluzione: III Generazione (1965-1980)
Evoluzione dell’architettura HW:
Microprogrammazione
Unità
veloci floating-point
Processori ausiliari dedicati alla
gestione dell’I/O
Tecnologia a LSI VLSI
Evoluzione dei Sistemi Operativi
Virtualizzazione
delle risorse
Multiprogrammazione: esecuzione concorrente di più programmi
Memoria Virtuale: rimuove le limitazioni dovute alle dimensioni della memoria fisica
Evoluzione: Serie IBM System/360
L’IBM introduce una famiglia di elaboratori (passo decisivo) Serie IBM System/360 Macchine con lo stesso linguaggio Range di prestazioni (e prezzo) 1-20 Completa compatibilità Portabilità totale delle applicazioni Sistema Operativo comune OS/360
Evoluzione: Serie DEC PDP-11 e UNIX
Evoluzione diretta del PDP-8 Parole di memoria e istruzioni a 16 bit Architettura a bus (Unibus) Grande flessibilità nella gestione e nell’interfacciamento di periferiche e strumentazione al bus Domina il mercato fino alla fine degli anni ’70 Prodotto in milioni di esemplari Diffusissimo nelle università Supporta il sistema operativo UNIX, indipendente dalla piattaforma Influenzerà un’intera generazione di progettisti e di utenti
Evoluzione: IV Generazione il PC
Diretto discendente del minicomputer:
Architettura a bus Parole e istruzioni a 16 bit
Nasce nel 1980 all’ IBM (che dà così avvio alla propria decadenza) Esplosione del mercato dei ‘cloni’ Crollo dei costi ed enorme espansione dell’utenza Dai grandi Centri di Elaborazione a un contesto di Informatica Distribuita L’espansione del PC è trainata da tre fattori:
Aumento della capacità della CPU Discesa dei costi della memoria Discesa dei costi dei dischi
Evoluzione degli elaboratori
Legge di Moore: Il numero di transistor su di un chip raddoppia ogni 18 mesi
Circa un aumento del 60% all’anno Conseguenze:
Aumento
della capacità dei chip di memoria
Aumento della capacità delle CPU
Evoluzione degli elaboratori
Legge di Moore per le CPU:
N.B. Altro fattore tecnologico decisivo è la frequenza di funzionamento
Più transistor in una CPU significano:
Eseguire
direttamente istruzioni più complesse
Maggiore memoria sul chip (cache)
Maggiore parallelismo interno
Evoluzione degli Elaboratori
Legge di Nathan: Il software è un gas: riempie sempre completamente qualsiasi contenitore in cui lo si metta
Al calare dei costi e all’aumentar della memoria disponibile, le dimensioni del software sono sempre cresciute in proporzione Il Circolo Virtuoso
Costi
più bassi e prodotti migliori
Aumento dei volumi di mercato
Fattori di scala nella produzione
Costi più bassi …...
Architettura degli elaboratori
Server
Su rete locale o Web server Memorie fino a qualche Gbyte Molti Gbyte di disco Gestione di rete efficiente
COW (Cluster of workstations)
Sistema multiprocessore ad accoppiamento lasco Hardware di tipo standard: costi contenuti Strutture di connessione veloci Elevata capacità di elaborazione complessiva
Architettura degli elaboratori
Mainframe
Diretti
discendenti della serie 360
Gestione efficiente dell’I/O
Periferie a dischi di molti Tbyte
Centinaia di terminali connessi
Costi di parecchi milioni di lire all’epoca
Perché sopravvivono?
Gestiscono
applicazioni legacy
Costi di migrazione delle applicazioni molto superiori a quelli dell’HW
Architettura degli Elaboratori
Famiglie di elaboratori
Intel
SPARC
(Scalable Processor ARChitecture) La Famiglia INTEL
Architettura degli Elaboratori
Proposta da Sun Microsystems nell ’87 Dedicata a workstation Unix Non prodotta direttamente da Sun Caratteristiche principali
Insieme ridotto di istruzioni (55)
Esecuzione non interpretata
Architettura a 32 bit
Unità FP addizionale (14 istr.)
UltraSPARC I (1995)
Registri e indirizzi a 64 bit
VIS (Visual Instruction Set)
Dedicata a sistemi high-end :
dozzine di CPU, memorie di Tbyte
Ultra SPARC II e III
Architettura degli Elaboratori
Architettura a Livelli • Al livello i corrispondono una macchina virtuale Mi ed un linguaggio Li • Il linguaggio Li è interpretato da un programma che gira sulla macchina Mi-1
Architettura degli Elaboratori Perché un’architettura a livelli?
M0 è facilmente realizzabile in hardware, ma difficile da programmare Mn è facile da programmare ma impossibile da realizzabile in hardware Implementazione progressiva e modulare Trasparenza per l’utente e le applicazioni Il linguaggio Ln non dipende dalla piattaforma (hardware) M0:
Diversi linguaggi disponibili sulla stessa piattaforma
Lo stesso linguaggio disponibile su diverse piattaforme
Architettura degli Elaboratori Struttura Tipica • Il livello 2 è il più basso al quale un utente può programmare la macchina • Normalmente si programma a livello 5 • Non tutti i sistemi hanno il livello 1
Architettura di un Elaboratore Macroarchitettura
Input
Memoria
Processore
Output
Architettura degli Elaboratori Registro: unità di memoria base ad utilizzo esclusivo della CPU
La memoria contiene sia i dati che le istruzioni Il contenuto dei registri può essere scambiato con la memoria e l’I/O Le istruzioni trasferiscono i dati e modificano il contenuto dei registri Registri particolari:
PC: indirizza l’istruzione corrente
IR: contiene l’istruzione corrente
Architettura degli Elaboratori Registro: Vengono registrati
Struttura della CPU
anche i risultati delle operaz.
Esecuzione di operazioni aritmetiche e logiche sui dati contenuti nei registri Spostamento di dati fra registri e fra registri e memoria(non in fig.) Ciclo elementare: due operandi sono inviati alla ALU e il risultato e messo in un registro
Architettura degli Elaboratori Il ciclo Fetch-Decode-Execute L’esecuzione di ciascuna istruzione nella CPU consta dei seguenti passi: 1. 2. 3. 4. 5. 6. 7.
Carica l’istruzione da memoria in IR (Instruction Register) (Fetch) Incrementa PC (Program Counter) Decodifica l’istruzione (Decode) Se l’istruzione usa un dato in memoria calcolane l’indirizzo Carica l’operando in un registro Esegui l’istruzione (Execute) Torna al passo 1. Per l’esecuzione dell’istruzione successiva
Accessi alla memoria sono effettuatisempre al passo 1, e non sempre ai passi 5 e 6
Architettura degli Elaboratori Esecuzione e Interpretazione Esecuzione diretta
Le istruzioni possono venire eseguite direttamente dai circuiti hardware
Approccio molto complesso:
Repertorio di istruzioni limitato Progettazione dell’HW complessa Esecuzione molto efficiente
Interpretazione
L’hardware può eseguire solo alcune operazioni elementari molto semplici
Ciascuna istruzione è scomposta in una successione di operazioni base poi eseguite dall’hardware
Vantaggi:
Repertorio di istruzioni esteso HW più compatto Flessibilità di progetto
Architettura degli Elaboratori Due approcci CISC e RISC All’inizio degli anni ’80 i progettisti di sistemi veloci riconsiderano l’approccio dell’esecuzione diretta Architetture RISC (Reduced Instruction Set Computer):
Repertorio ristretto (alcune decine)
Istruzioni prevalentemente su registri
Una istruzione per ciclo di clock
Architetture CISC (Complex Instruction Set Computer) micro-programmate:
Repertorio esteso (alcune centinaia)
Istruzioni anche su memoria
Molti cicli di clock per istruzione
Esempi:
Alpha (DEC): RISC
Pentium IV (Intel): CISC
Architettura degli Elaboratori Obiettivi di Progetto(RISC design priciples)
Eseguire direttamente le istruzioni più frequenti Massimizzare la frequenza alla quale le istruzioni sono eseguite, misurata in MIPS (Millions of Instr. per Second) Semplificare la decodifica delle istruzioni: formati molto regolari Limitare i riferimenti alla memoria alle sole LOAD e STORE Ampliare il numero di registri per limitare l’uso di LOAD e STORE
Architettura degli Elaboratori Il parallelismo
Svolgere più attività nello stesso intervallo di tempo. A oggi è l’unica strada per aumentare le prestazioni Limite di un’esecuzione sequenziale:
velocità della luce (30 cm in 1 ns)
Due tipi di parallelismo: A) A livello di istruzioni
Diverse istruzioni eseguite insieme
Diverse fasi della stessa istruzione eseguite concorrentemente
B) A livello di processori
Molti processori lavorano insieme allo stesso problema
Fattori di parallelismo molto elevati
Diversi tipi di interconnessione e di cooperazione (più o meno stretta)
Architettura degli Elaboratori
Il PIPELINING
N.B. Si guadagna un fattore pari al numero di stadi della pipeline (comunque finito).
Ciascuna istruzione è divisa in fasi L’esecuzione avviene in una pipeline (catena di montaggio) a più stadi Più istruzioni in esecuzione contemporanea Una istruzione completata per ogni ciclo
Architettura degli Elaboratori
Architetture Superscalari
Si aumenta il parallelismo avendo più di una pipeline nel microprocessore Le pipeline possono essere specializzate:
Il Pentium ha due pipeline a 5 stadi
Una può eseguire solo istr. su interi
Problema: compatibilità dell’esecuzione parallela
Indipendenza tra le istruzioni
Ciascuna istruzione non deve utilizzare i risultati dell’altra
Architettura degli Elaboratori
Unità funzionali Multiple
La CPU contiene al suo interno diverse unità funzionali indipendenti Lo stadio più lento della pipeline (che condiziona la velocità viene multiplato Architettura adottata nei supercomputer Prima forma di architettura superscalare
Architettura degli Elaboratori : cenni di Sistemi di Numerazione
Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato da numerali diversi in diversi sistemi Esempio 1:
156
nel sistema decimale
CLVI in numeri romani
Il numero di caratteri nel numerale determina l’intervallo di numeri rappresentabili Esempio 2:
interi
a 3 cifre con segno in
notazione decimale: [-999,+999]
Architettura degli Elaboratori : cenni di Sistemi di Numerazione Numero finito di cifre Si perdono alcune proprietà:
Esempio
chiusura operatori ( + , -, ´ ) prop. associativa, distributiva,.. 2 cifre decimali e segno [-99,+99] 63+40=103 (Chiusura) 60+(50-40) (60+50)-40 (Associatività)
Errori di arrotondamento Buchi nella rappresentazione dei reali Esempio: usando numerali decimali con due sole cifre frazionarie:
Architettura degli Elaboratori : cenni di Sistemi di Numerazione
Sistemi Posizionali Ciascuna cifra rappresenta il coefficiente di una potenza della base L’esponente è dato dalla posizione della cifra Se la base è b occorrono b simboli: – b = 10 {0,9} – b = 2 {0,1} – b = 8 {0,1, ... 7} – b = 16 {0,1, ... 9,A,B,C,D,E,F}
Architettura degli Elaboratori : cenni di Sistemi di Numerazione
Intervalli Rappresentati Rappresentando gli interi positivi e lo zero in notazione binaria con n cifre (bit) si copre l’intervallo [0 , 2^n-1] Si sfruttano tutte le 2^n disposizioni Esempio n=3 [0,7] 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
Architettura degli Elaboratori : cenni di Sistemi di Numerazione Ordini di grandezza Le potenze di 2 2^0 ... 29 = 1, 2, 4, 8, 16, 32, 64, 128, 256, 512.. 2^10 = 1024 ~ 103 1K 2^20 = 2^10 2^10 =1048576 ~ 10^6 1M 2^30 = 2^10 2^10 2^10 =1073741824 ~ 10^9 1G 2^40 = ... =1099511627770 ~ 10^12 1T Esempio 2^26 = 2^6× 2^20 = 64 M Il numero di bit di un indirizzo binario determina le dimensioni della memoria: CPU bit indirizzo Memoria 8080 16bit 64 K 8086 20bit 1 Mega 80286 24bit 16 Mega 80486 46bit 64 Tera Pentium 46bit 64 Tera
Architettura degli Elaboratori : cenni di Sistemi di Numerazione
Numeri relativi
Per rappresentare gli interi relativi, a parità di cifre si dimezza l’intervallo dei valori assoluti Si utilizzano varie rappresentazioni Modulo e segno
un bit per il segno 0: + 1:
n-1 bit per il modulo
intervallo [-2n-1+1, +2n-1-1]
Esempio
n=4 bit intervallo [-7,+7]
5 = 0101 -5 = 1101
NB
intervallo simmetrico
doppia rappresentazione dello zero
Architettura degli Elaboratori : cenni di Sistemi di Numerazione Notazione in base 16 Per i numerali esadecimali occorrono 16 cifre { 0,1, ... 9,A,B,C,D,E,F } Conversione esadecimale-binario:
Si fa corrispondere a ciascuna cifra esadecimale il gruppo di 4 bit che ne rappresenta il valore
Esempio F 5 7 A 3 1 1111 0101 0111 1010 0011 0001 Conversione binario-esadecimale: Partendo da destra si fa corrispondere a ciascun gruppo di 4 o meno cifre binarie la cifra esadecimale che ne rappresenta il valore Si usano spesso stringhe esadecimali per rappresentare stringhe binarie
Architettura degli Elaboratori : cenni di Sistemi di Numerazione
Notazioni Unità elementare di informazione: il bit Nibble: insieme di 4 bit Byte: Byte insieme di 8 bit KB: KB kilobyte Kb: Kb kilobit Esempio: Velocità Teorica Modem analogico: 56 Kb = 56/8 KB = 8 KB
Architettura degli elaboratori p.e., Pentium II – Architettura a 32 bit
La memoria centrale – Registri e ALU a 32 bit – Word di 4 byte 32 bit Contiene sia i programmi che i dati – Indirizzi a 32 bit – Spazio indirizzabile 232 = 4 GB Memorizzazione binaria (bit) Cella (o locazione): unità indirizzabile
byte:
cella da 8 bit
word: insieme di k byte (k dipende dall’architettura)
Indirizzo (della cella): tramite il quale la CPU accede al dato nella cella Indirizzi binari a m bit: spazio di indirizzamento 2m celle
Architettura degli elaboratori Codici a correzione di errore
Recupero degli errori hardware tramite codifiche ridondanti Codifiche con n= m+r bit
n bit complessivi codifica m bit dati r check bit (ridondanti)
Si utilizza solo un sottoinsieme delle codifiche (codifiche valide) Distanza di Hamming h: minimo numero di bit diversi tra due codifiche valide Per rilevare errori su d bit occorre h=d+1 Per correggere errori su d bit occorre h=2d+1
Architettura degli elaboratori Codici a correzione di errore
Esempio: la codifica utilizzata prevede una tipologia di trasmissione a 4 codici possibili di 10 bit. L’informazione non è legata al modulo del numero ma al significato ad esso associato.
Es. n=10, m=2, r=8 L’informazione, quindi, è legata al 0000000000 numerale nella sua interezza. 0000011111 4=2^m codifiche valide 1111100000 1111111111 • Distanza di Hamming h=5 fra due qualsiasi codifiche valide • Possibile correggere errori doppi 2d+1=h=5 • 1100011111 viene riconosciuto(e corretto) come 0000011111 • Possibile rilevare errori quadrupli d+1=h=5 • 1111011111 viene riconosciuto come errato
Architettura degli Elaboratori Bit di parità Nel caso più semplice si vogliono solo rilevare errori singoli Attenzione alla codifica utilizzata! Basta aggiungere un solo check bit r=1, n=m+1 Bit di parità: scelto in modo che il numero complessivo di 1 nella codifica sia sempre pari (o dispari) Questo codice ha distanza h=2 Errore rilevato da circuiti molto semplici Le memorie segnalano ‘parity error’ quando un errore si manifesta Il bit deve essere identificato a priori:
1|00100010 (pari) 0|00100110 (dispari)
Architettura degli Elaboratori Ipotizziamo di voler creare un codice di m bit dati r bit di controllo che permetta di correggere tutti gli errori di un bit:
m data bit, r check bit, n bit totali 2m codifiche valide n codifiche errate a distanza 1 da ciascuna delle valide Ogni codifica valida ne richiede in tutto n+1 (n configurazioni di errori più la corretta) (n+1) 2^m < 2^n cioè (m+r+1) < 2^r
Architettura dell’elaboratore La memoria CACHE
La memoria è sempre più lenta della CPU e tende a rallentarla Memorie veloci sono disponibili ma solo per piccole dimensioni La Cache (da cacher) funziona alla velocità del processore, e quindi nasconde la ‘lentezza’ della memoria Contiene le ultime porzioni di memoria acceduta: se la CPU vuole leggere una di esse evita un accesso a memoria Funziona bene sfruttando la località degli accessi
Architettura dell’elaboratore Cache Hit Ratio Se una parola viene letta k volte di seguito, k-1 volte sarà trovata in cache Cache hit ratio: h=(k-1)/k Tempo medio di accesso a memoria: a=c+(1-h)m
m:
tempo di accesso della memoria
c: tempo di accesso della cache
La memoria è organizzata in blocchi
Per ogni cache miss un intero blocco è spostato in cache, e usato in parecchi accessi successivi
Architettura dell’elaboratore
Gerarchie di memoria :
Scendendo nella gerarchia:
Cresce il tempo di accesso Aumenta la capacità Diminuisce il costo per bit
Solo il livello più alto della gerarchia è a contatto con la CPU Migrazione dei dati fra livelli della gerarchia