Informatica I - Università degli Studi di Roma Tor Vergata

132 downloads 109 Views 866KB Size Report
“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