Prima Lezione: La memoria di un pc Cosa devo memorizzare? ◦ Istruzioni (programmi) ◦ Dati (da elaborare tramite i programmi) Come faccio a codificare le info da Memorizzare (istruzioni o dati) ◦ Codifiche Numeri: Complemanto a due, singola e doppia preciosione,.. ◦ Codifiche: codice ASCII, Unicode, UTF-8, etc E le istr.? C’è una codifica binaria anche per loro ( Campo Operazione seguito dal/dai campo/i operando/i) Come memorizzo FISICAMENTE le ifo? come le leggo/modifico? → Dipende dal tipo di memoria ◦ Memoria Centrale: 0=tensione bassa 1=tensione alta ◦ Memorie Magnetiche: Magnetizzazione in un verso o nell'altro ◦ Memorie Ottiche: Land o Pit Classificazione delle Memorie: ◦ Volatili, permanenti, ◦ Accesso casuale e sequenziale ◦ Funzione svolta ▪ Registri e registri della CPU ▪ memoriaC ▪ Memorie di massa Principali tipologie di Memorie: ◦ RAM ◦ Hard Disk ◦ Cache ◦ Usb ◦ Dischi stato solido ◦ CD/DVD Classificazione in base alla capacità e al tempo di accesso → Gerarchia delle memorie (Libro TP pag. 76-78) Seconda Lezione: La memoria cache (pg. 76-78 libro tp) Non la principale.. seguiamo solo la gerarchia La velocità di elaborazione delle CPU è cresciuta molto più velocemente rispetto alla velocità di accesso alla memoria si è reso dunque necessario introdurre una memoria intermedia più veloce → MEMORIA CACHE
Veloce, invisibile al programmatore (risposta al problema velocità di elaborazione >> velocità accesso in memoria) Mantiene le parole usate più di recente → principi di località spaziale e temporale (è probabile che nel prossimo futuro si riutilizzino le parole di memoria utilizzate di recente ed è possibile utilizzare parole vicine a queste) La cache di solito viene divisa tra Cache dati e cache istruzioni
Problema: Un operazione di lettura basta farla in cache, un operazione di scrittura deve, prima o poi, essere riportata in memoria centrale. Due soluzioni ◦ Riporto l'aggiornamento immediatamente (Write Trought). In questo caso la cache è utile solo x le letture ◦ Riporto l'aggiornamento solo quando il dato verrà cancellato dalla cache (Write Back) Si guadagna tanto o poco utilizzando la cache? Dipende da quanto spesso si trova il dato nella cache → CACHE HIT: percentuale di volte in cui il dato viene trovato in cache Calcolo del tempo di accesso medio alla memoria ◦ Dati: ▪ Cache Hit: ch ▪ Tempo di accesso in memoria centrale: tmc ▪ Tempo di accesso in cache: tc ▪ Tempo medio: ch * tc + (1-ch) * (tmc+tc) ▪ Spiegazione: Se il dato si trova nella cache si accede solo alla cache; se il dato non si trova nella cache, dopo averlo cercato senza successo, bisogna accedere in MC quindi, in questo caso, il tempo di accesso è dato dalla somma dei due tempi di accesso. Terza Lezione: La meoria centrale dal punto di vista logico-funzionale Memoria centrale come insieme di celle indirizzabili Cosa memorizzo nella memoria centrale? Dati/Istruzioni MC dal punto di vista logico: Serie di registri indirizzabili (Scatola nera) Corrispondenza bit indirizzo/Area di mem. Indirizzabile → Schema della memoria Selettore + n registri (schema pag.160 lt) Operazioni sulla Memoria Lettura (indirizzo) → Dato letto nel MDR Scrittura(indirizzo,Dato) → modifica della cella indirizzata con il dato presente nel MDR Funzionamento Memoria: Selezionare la cella corrispondente Per selezionare la cella viene utilizzato un circuito combinatorio detto Decoder che riceve n ingressi e 2n Uscite numerate. Il funzionamento consiste nel mettere 1 in corrispondenza dell'uscita avente numero corrispondente all'ingresso.
Funzionamento Memoria: Memorizzare un Bit Per memorizzare un bit si utilizzano dei circuiti sequenziali chiamati Flip-Flop. In particolare consideriamo il Flip Flop di tipo D. Il Flip Flop D ha due ingressi CLK e D e un'uscita. Fino a quando CLK vale 0 l'uscita resta sempre uguale a se stessa mantenendo memorizzato il valore impostato in precedenza. Quando CLK passa a 1 l'uscita vine settata al valore corrente di D.
Descrizione funzionamento: Quando Enable (clk) vale 0 sia R che S valgono 0 (sono in AND e sappiamo che 0 AND x fa 0); Quindi poichè la porta NOR vale 1 solo quando entrambi gli ingressi valgono 1 il NOR in basso avrà come uscita il negato dell'uscita in alto. Per lo stesso motivo l'uscita in alto sarà il contrario dell'uscita in alto e quindi manterrà memorizzato il suo stato. Quando Enable (clk) vale 1 e D vale 0. R vale 1 ed S vale 0; quindi Q vale 1 indipendentemente dall'uscita del NOR in basso Quando Enable (clk) vale 1 e D vale 1. R vale 0 ed S vale 1; quindi Q vale 0 indipendentemente da U Quarta Lezione: La memoria Centrale: Aspetti tecnici (due Ore) Prima ora: Ricerca su Internet e compilazione scheda Clasificazione: MODULI SIMM e moduli DIMM Prima classificazione: Dram e Sram Sram ◦ La SRAM, acronimo di Static Random Access Memory, è un tipo di RAM volatile che non necessita di refresh. I banchi di memorie SRAM consentono di mantenere le informazioni per un tempo teoricamente infinito, hanno bassi tempi di lettura e bassi consumi, specialmente in condizioni statiche. La necessità di usare molti componenti per cella le rende però più costose delle DRAM. Dram
◦ La DRAM, acronimo di Dynamic Random Access Memory, ovvero RAM dinamica, è costituita, a livello concettuale, da un transistor che separa un condensatore, il quale mantiene l'informazione, dai fili di dati. A livello pratico non viene usato un vero condensatore ma si sfruttano le proprietà elettrico/capacitive dei semiconduttori. È così possibile usare un solo componente per ogni cella di memoria, con costi molto ridotti e la possibilità di aumentare notevolmente la densità di memoria. Tende a scaricarsi. Necessario un refresh frequente tramite operazioni fittizie di lettura e scrittura che rallentano il tempo di accesso. Ogni riga ha un bit di parità o adirittura più bit che costituiscono un codice di haming. Informazione come carica sul condensatore.... tende a scaricarsi (ordine dei millisecondi) necessario un refresh Nelle DRAM la lettura è distruttiva deve dunque essere immediatamente seguita da una nuova scrittura Ciò significa che a parità di tecnologia e di anno di produzione le memorie DRAM disponibili hanno tipicamente una capacità quadrupla rispetto alle SRAM disponibili. LE DRAM Funzionamento Mantenuta una matrice di condensatori Accesso tramite transistor con due segnali: RAS(Row Address Strobe) e CAS (coloumn Address Strobe) che devono essere mantenuti per un certo periodo in quanto il segnale non viene fornito istantaneamente. La DRAM necessita di un intervallo di riposo tra un'operazione e la successiva, chiamato precharge interval. In generale passa un certo tempo tra quando il dato viene richiesto e quando esso è disponibile (Latenza CAS) Tipi di DRAM FPM-DRAM: mantiene il segnale RAS mentre legge più colonne della stessa riga. Tempo di accesso 25-30 nanosecondi Conseguenza Non necessita di precharge interval. Quando legge dati della stessa riga Edo RAM La EDO DRAM (acronimo di Extended Data Output) è simile alla FPM DRAM, con l'aggiunta che l'indirizzo di riga può essere introdotto mentre il dato precedente viene comunicato in output. Questo permette un accavallarsi delle operazioni (pipelining) che migliora le prestazioni. Era più veloce della FPM DRAM del 20% circa quando cominciò a rimpiazzarla nel 1993.
Le memorie EDO sono una stretta evoluzione delle memorie FP alle quali aggiungono una "funzione" in grado di mantenere validi i dati anche dopo la fine dell'impulso di richiesta.
SD-RAM Sincronus RAM--> RAM Sincrona con il processore --> un'operazione sulla memoria per ogni ciclo di clock Risente comunque di latenza CAS misurato in cicli di clock SDR = SD-RAM Stessa frequenza del bus a cui sono connessi (PC66, PC100, PC133) DDR Opera su entrambi i fronti dell'onda quadra (cerescente e calante) raddopiando la frequenza di funzionamento DDR2 DDR3 cambiano principalmente le frequenze. CARATTERISTICHE Tipo Latenza CAS Parita o ECC Numero di PIN
Quinta Lezione: Gli Hard Disk (3 Ore) (Si veda, in parte, libro di TP pag. 235-237 e 242-246) Un disco Rigido (Hard Disk) è composto da diversi piatti di alluminio rivestiti da materiale magnetico. Le testine (sospese sui piatti) sono in grado di: Cambiare il verso della magnetizzazione in scrittura Rilevare il verso di magnetizzazione corrente in lettura Struttura di un disco
Un piatto del disco è formato da:
Una serie di cerchi concentrici (tracce) Una serie di zone del cerchio delimitate da due raggi (come delle fette → Settori) L'incrocio tra una traccia ed un settore (blocco o cluster)
Ogni singolo blocco non contiene al 100% dati validi in quanto è preceduto da un preambolo è seguito da un codice di parità per rilevare eventuali errori è preceduto e seguito da uno spazio libero che delimita due settori adiacenti. Un blocco contiene 512 Byte di dati. In definitiva lo spazio “netto”, (cioè quello utilizzato per registrare dati) è di circa 85% della capacità nominale La densità misura quanti dati si possono misurare in una porzione di spazio e si divide in densità radiale e densità lineare. La densità radiale misura quanto distano le tracce tra di loro e dipende da quanto può essere precisa la testina (si possono avere circa 50.000 tracce x centimetro) La densità lineare misura quanti bit per centimetro si possono trovare seguendo una traccia. La densità lineare dipende dalla purezza del materiale ed è di circa 25Gb/centimetro Tempi di accesso al disco Dipendono da: Tempo di spostamento radiale della testina (seek time) tra le diverse tracce (seek time). Mediamente la testina sta tra 5 e 10 millisecondi a raggiungere la traccia desiderata Tempo impiegato per raggiungere il settore: il disco deve girare fino a quando non si raggiunge la zona della traccia desiderata (latenza rotazionale). Considerando che un disco può girare a 5.400 giri al minuto il tempo impiegato per fare mezzo gira (in media faremo mezzo giri per raggiungere il settore desiderato) il tempo di latenza rotazionale è di circa 5 – 6 millisecondi Tempo di trasferimento dei dati. Considerando che la velocità di trasferimento dei dati è di circa 150 MB/s e che un blocco è costituito da 512 Byte il tempo necessario al traferimento di un blocco è di circa 3,5 microsecondi. Risulta evidente come il tempo sia condizionato dai primi due e che su questi non si possa fare molto in quanto richiedono dei movimenti meccanici (spostamento della testina o rotazione del disco) Tecnologia RAID: Redundant Array (of) Indipendent Disks Per migliorare I tempi di accesso al disco si sono sviluppate delle tecniche che, a fronte di un unico disco logico (visto dal sistema) utilizzavano più dischi fisici in modo da poter svolgere in parallelo operazioni di rotazione e posizionamento testine su più dischi
contemporaneamente. Talik tecniche sono state sucessivamente utilizzate anche per garantire, grazie a dei codici di parità, la tolleranza ai guasti (Fault Tollerance) e prendono il nome di “Tecniche R.A.I.D.). RAID 0 (Striping) La prima versione prevede solo la possibilità di rendere più veloci le operazioni d'accesso al disco senza meccanismi di Fault Tollerance.
I due dischi nell'immagine vengono visti come un unico disco di 8 blocchi. Se si vuole effettuare un'operazione di lettura o scrittura dal blocco 1 seguita da un'operazione di lettura o scrittura dal blocco 2 il controller eseguirà in contemporanea il due posizionamento della testina e rotazione del disco relativi alle due operazioni in quanto I blocchi appartengono a due dischi fisicamente distinti. RAID 1 (Mirroring)
Fisicamente sono presenti due copie dello stesso unico disco logico; ciò permette, in caso di guasto di uno dei due dischi, di ricostruirlo senza perdida di dati. Le operazioni di lettura da due settori diversi possono ancora avvenire in contemporanea (e in modo migliore rispetto a prima in quanto, per esempio, nel raid 0 non è possibile leggere contemporaneamente I blocchi 2 e 4 in quanto sono sullo stesso disco). Non è possibile,
tuttavia, svolgere in contemporanea operazioni di scrittura in quanto queste vanno fatte su entrambi I dichi al fine di mantenerne il perfetto allineamento. RAID4 (RAID with Shared Parity Disk)
I blocchi dell'unico disco logico (A0, B0, C0, D0, A1, B1, C1, D1, A2, B2, C2, D2, A3, B3, C3, D3) vengono, come nel RAID 0, divisi tra più dischi fisici (in questo esempio 4); a differenza del RAID 0 viene aggiunto un quarto disco dove ogni blocco contiene il codice di parità dei corrispondenti blocchi dei 4 dischi dati (Ap è la parita di A0, A1, A2,A3). Sfruttando il blocco di parità e il contenuto di tre dei 4 dischi dati è possibile ricostruire un disco, eventualmente, danneggiato. Le operazioni di lettura su blocchi memorizzati in dischi diversi possono avvenire contemporaneamente; le operazioni di scrittura no in quanto si richiede l'aggiornamento dell'unico disco di parità. RAID5
Il raid 5 è molto simile al raid 4 con la differenza che ogni disco contiene sia blocchi dati sia blocchi di parità di dati memorizzatti sugli altri dischi. In questo modo è sempre possibile ricostruire un disco in caso di perdita dati e effettuare operazioni di lettura in parallelo ma è anche possibile svolgere in parallelo alcune operazioni di scrittura in quanto I due blocchi di parità possono essere in dischi distinti.
DISCHI IDE-ATA-SATA I primi hard disk con controller integrato (I.D.E. Integrated Drive Eletctronics) si sono sviluppati a metà degli anni 80. X indirizzare un settore si indicava: la testina, il cilindro e il settore; le specifiche prevedevano 2 bit per la testina 10 bit per il cilindro e 6 bit per il settore. Ciò, oltre alla capacità massima, vincolava anche la geometria dei dischi che potevano avere al massimo: 4 Testine, 1024 Cilindri e 64 Settori. La capacità massima di un disco IDE (prima versione) era di 504MB (considerando il numero di blocchi totale per i 512 B di un blocco). EIDE Le limitazioni su capacità e geometria sono presto divenute troppo vincolanti e, quindi, si è passati ad un nuovo indirizzamento a 28 bit senza dividere i 28 bit tra cilindro, testina, settore. Nuova capacità massima 228 x 512 Byte = 128 GB ATA Bus in grado di funzionare anche con dispositivi di memorizzazione diversi dall'Hard Disk (lettore cd, floppy, etc) Passaggio da I/O a controllo di caratteri a DMA Velocità bus da 33Mhz a 66Mhz nelle varie versioni La versione 6 utilizza 48 bit per l'indirizzo in grado di supportare una capacità massima di memorizzazione che si stima essere sufficiente fino al 2035 La versione 7 passa dalla trasmissione parallela alla seriala e viene chiamata Serial ATA (SATA) con un minor voltaggio di lavoro e una velocità del bus di 1,5 GB/s Sesta Lezione: Altri dispositivi per la memorizzazione di massa Dischi allo stato solido SSD Sfruttano le memorie Flash Non ci sono parti meccaniche in movimento quindi vengono meno i rallentamenti conseguenti Simile (come prestazioni/modalità di memorizzazione dati) ad una memoria volatile ma permantente Svantaggi ◦ Costo al GB: pochi centesimi per HD da 1 a 3 € per SSD ◦ Subiscono deterioramento (sono possibili circa 100.000 operazioni di scrittura) CD-ROM Struttura Fisica I dati vengono memorizzati su una spirale che parte dal centro e arriva fino al bordo Su questa spirale ci sono dei piccoli avvallamenti (PIT) o la superficie resta piana (LAND); un laser colpisce la spirale e a seconda di come la luce viene riflessa si legge se c'è un PIT o una LAND.
Il modo in cui vengono memorizzati I bit non è PIT 1 LAND 0 ma passaggio da LAND A PIT o viceversa 1 assenza di cambiamento 0. Struttura Logica I dati memorizzati su un CD-Rom contengono molta ridindanza; ci sono meccanismi di rilevazione/correzione errori su 3 livelli
1 Byte (simbolo) di dati viene memorizzato con 14 bit (utilizzando codici di Haming) 42 Simboli formano un Frame; solo 24 di questi simboli contengono dati 98 Frame formano un Settore. Un settore ha un preambolo di 16 byte e un controllo errore
In definitiva solo il 28% dello spazio di un cd-rom contiene dati.