Le Memorie interne: RAM, ROM, cache Appunti per la cl. IV sez. D a cura del prof. Ing. Mario Catalano 1 Le memorie Cosa vorremmo : una memoria veloce abbastanza grande da contenere tutti i dati e i programmi che servono persistente (o non volatile) cioè capace di mantenere il suo contenuto anche in assenza di alimentazione elettrica di basso costo 2 Cosa può fare la tecnologia ? Memorie relativamente piccole e veloci, volatili, a costo medio alto RAM: lettura e scrittura nell’ordine delle decine di nanosecondi per parola Memorie grandi, molto capienti (decine di GB), persistenti e lente Dischi rigidi : lettura e scrittura nell’ordine di alcuni millisecondi per blocco (qualche KB) Nastri magnetici, DVD 3 I computer quindi hanno supporti di memorizzazione di più tipi: una memoria centrale, tipo RAM (random access memory): contiene i programmi durante la loro esecuzione ed i dati relativi altrimenti il processore sarebbe per la maggior parte del tempo fermo in attesa di dati da/per la memoria una o più memorie di massa (dischi etc.): che mantengono in modo persistente tutti i dati ed i programmi in attesa di essere eseguiti dei buffer: memorie “temporanee” utilizzate nei trasferimenti tra dispositivi con velocità diverse (es. si trovano nelle stampanti) una memoria cache: contiene istruzioni e dati prima che siano utilizzati dal processore 4 Struttura di una RAM elettronica Bus indirizzi p r o c e s s o r e 00003 0 1 2 1 0 1 1 0 0 3 4 ... Parola (word): gruppo minimo di bit indirizzabili Indirizzo Dato letto o da scrivere Bus controllo 1 0 1 1 0 0 Bus dati memoria 5 Struttura di una RAM elettronica 2 Caratteristiche: accesso ai dati in modo diretto e in tempi veloci volatilità (perdita di informazione in assenza di alimentazione elettrica) Componenti basilari: celle o locazioni di memoria, ciascuna delle quali ha un indirizzo. 6 Flip-flop L’unità fondamentale della memoria è il FLIP-FLOP. E’ un circuito elettronico che consente di memorizzare 1 bit per ciascuno Memorizzazione: Uscita costante finchè un valore su un input non lo modifica Lettura: lettura dell’uscita Scrittura di un nuovo valore: modifica di un input 7 Cella di memoria E’ composta da un certo numero di Flip-Flop: di solito 8 (memorizza 1 byte) Ognuna ha un indirizzo 8 Operazioni sulla memoria principale Le operazioni che si effettuano sulla memoria sono operazioni di lettura e scrittura Entrambe presuppongono l’utilizzo di un indirizzo che identifica univocamente la cella interessata all’operazione. L’operazione di scrittura è distruttiva, distruttiva cioè cancella l’informazione precedentemente contenuta nella cella L’operazione di lettura preserva il contenuto della cella indirizzata: all’esterno della memoria centrale viene trasferita copia dell’informazione 9 Architettura della memoria principale Registro indirizzi Decodificatore indirizzi BUS Il registro indirizzi contiene l’indirizzo della cella che deve essere acceduta; la sua dimensione deve essere tale da permettere che tutte le celle di memoria possano essere indirizzate Esempio: Esempio un registro a 16 bit indirizza 65536 posizioni di memoria Il decodificatore di indirizzi è un dispositivo in grado di selezionare la cella il cui indirizzo corrisponde a quello contenuto nel registro indirizzi Il registro dati contiene l’informazione scritta/letta sulla/dalla cella indirizzata; la dimensione del registro è uguale a quella delle celle di memoria Memoria centrale Registro dati 10 La memoria centrale È la memoria di lavoro del computer La quantità di RAM disponibile influenza in modo notevole le prestazioni del computer. 11 La memoria centrale La RAM può essere di due tipi: - SRAM o RAM statica - DRAM o RAM dinamica. I chip di SRAM sono molto veloci ma costosi, per cui sono usati generalmente per le memorie cache. I chip DRAM sono meno costosi, ma tendono a disperdere la carica nel tempo, per cui è necessario provvedere periodicamente al refresh della memoria, bisogna cioè riscrivere continuamente le informazioni nelle celle di memoria (già dopo un millesimo di secondo non è più possibile distinguere il valore dei bit); questa operazione deve essere eseguita continuamente. 12 RAM DINAMICHE (DRAM) La DRAM usa delle capacità interne per memorizzare i dati. Le capacità perdono la loro carica dopo un certo intervallo di tempo. Queste capacità necessitano di un costante refresh per mantenere inalterata l'informazione memorizzata. Il risultato finale è che tra due accessi consecutivi alla memoria, una carica elettrica viene mandata a rinfrescare la capacità del chip di memoria affinché il dato venga mantenuto nello stato logico corretto. Durante il refresh della memoria non è possibile accedere ad essa, rallentando, dunque, le sue prestazioni in termini di accessi in lettura/scrittura. Le DRAM sono caratterizzate da tempi di accesso (tempi di 13 lettura/scrittura) che vanno dai 10ns ai 70 ns. RAM DINAMICHE (DRAM) Una svolta importante si è avuta con le SDRAM (Synchronous DRAM), in grado di lavorare con un clock di sincronizzazione; evoluzioni successive hanno portato il bus a funzionare alle frequenze di 66, 100, 133 e 150 MHz, da cui la classificazione dei moduli di memoria in PC66, PC100, PC133, PC150. Le DDR (double data rate) sono un tipo di SDRAM che lavorano sui due fronti del clock, che è come se lavorassero a clock doppio (da cui il nome). 14 Packaging delle RAM Le RAM come packaging sono realizzate da moduli, ognuno dei quali è formato dai chip di memoria. I moduli sono del tipo: I moduli SIMM (Single InIine Memory Module) sono il tipo più vecchio, hanno un connettore a 72 pin e funzionano con bus a 32 bit; venivano usati per le SDRAM. I moduli DIMM (Dual InIine Memory Module) operano con bus a 64 bit; quelli a 168 pin sono stati usati per la seconda generazione di chip SDRAM, quelli a 184 pin per DDR, quelli a 200 pin per DDR e DDR2, quelli a 240 pin per DDR2 e 15 DDR3. Ram DDR3-DIMM (Double Data Rate Three Dual In-Line Memory Module) - 240 pin – (1.5 V) Le Ram DDR3-DIMM appartengono alla famiglia delle SDRAM, Syncrhonous Dynamic Random Access Memory, (come pure le altre DDR viste fin’ora). Rispetto alle DDR2 c’è un aumento della frequenza di clock e una diminuzione della tensione di alimentazione. Ciò consente prestazioni migliori, consumi ridotti e migliore dissipazione termica. 16 RAM STATICHE (SRAM) In questo tipo di RAM ogni cella è costituita da un "flip flop" realizzato da due porte logiche. Consente di mantenere le informazioni per un tempo indefinito, è molto veloce, consuma poco e quindi dissipa poco calore. La necessità di usare molti componenti, però, la rende molto costosa e difficile da impacchettare. E’ solitamente usata per le memorie cache, dove elevate velocità e ridotti consumi sono caratteristiche fondamentali. Sono caratterizzate da tempi di accesso dell'ordine delle decine di nanosecondi (da 6 ns a 25 ns). A differenza delle DRAM, nelle SRAM non occorre il rinfresco periodico. Le SRAM sono costose. 17 ROM - Read Only Memory Il termine ROM significa Read Only Memory. Indicava originariamente il fatto che l'unico tipo di accesso in queste memorie è la lettura (ovviamente la prima scrittura deve essere possibile). Esistono particolari ROM che possono essere anche riscritte. In ogni caso tutte le ROM sono caratterizzate dal fatto che l'informazione in esse contenute rimane anche quando manca la corrente. Nelle ROM che possono essere riscritte, l'informazione rimane fino alla successiva scrittura. 18 ROM - Read Only Memory Le ROM vengono in genere utilizzate per memorizzare programmi e dati di configurazione essenziali per il funzionamento del computer che devono essere memorizzati anche quando il computer è spento. Esistono differenti tipi di ROM: ROM non programmabili PROM. ROM Programmabili EPROM. Erasable Programmable ROM EEPROM. Electrical Erasable Programmable ROM Flash Memory 19 ROM, PROM, EPROM ROM: sono già predisposte in fabbrica. Hanno alte capacità bassi costi. PROM: sono programmabili con un dispositivo da laboratorio. Possono essere programmate una sola volta. EPROM: sono programmabili con un dispositivo da laboratorio. Hanno una finestra di quarzo tramite cui è possibile esporre il chip ai raggi U.V. e “cancellare” il contenuto. 20 EEPROM – FLASH MEMORY EEPROM: come le EPROM, ma cancellabili senza togliere dalla piastra il chip. I tempi di cancellazione sono molto più lunghi di quelli di lettura. Flash Memory: come le EPROM, ma la scrittura avviene per blocchi, molto velocemente. Non può essere usata come RAM per via della scrittura a blocchi Si chiama flash perché il microchip è organizzato in sezioni di celle cancellabili in un colpo solo (flash). 21 BIOS (firmware) è scritto di solito nel linguaggio assembler nativo della famiglia di CPU utilizzata. attualmente è scritto su memorie EEPROM riscrivibili, quindi può essere modificato e aggiornato: generalmente i costruttori mettono a disposizione nuove versioni di BIOS per correggere difetti o aggiungere supporto a periferiche hardware non previste inizialmente. 22 Basic Input-Output System o BIOS è il primo codice che viene eseguito da un Computer dopo l'accensione, ed ha tre funzioni principali: Eseguire una serie di test diagnostici per controllare lo stato di funzionamento dell'hardware e segnalare eventuali guasti rilevati tramite un codice sonoro (beep code); Localizzare il sistema operativo e caricarlo nella RAM; Fornire una interfaccia software per l'accesso alle periferiche e all'hardware del PC. 23 Firmware sulle schede di espansione Un computer può contenere diversi chip contenenti BIOS firmware. Il BIOS della motherboard contiene di solito il codice per accedere a componenti hardware fondamentali essenziali come la tastiera, i floppy drive, i controller degli hard disk ATA, dispositivi USB ed altri dispositivi di archiviazione. Alcune schede di espansione come SCSI, RAID, di rete e video spesso posseggono un loro BIOS che espandono o sostituiscono il codice standard presente nel BIOS della motherboard per quel componente. 24 BIOS Le routine di avviamento si occupano dell’inizializzazione del PC: Ne effettuano un rapido controllo di affidabilità, per accertare che tutte le componenti hardware siano perfettamente funzionanti Inizializzano i chip ed i dispositivi standard collegati al computer Controllano quali dispositivi opzionali sono collegati Caricano il sistema operativo dal disco (caricatore di bootstrap) www.itimedi.it 25 BIOS Il caricatore di bootstrap ha la funzione di leggere un programma di lancio dal disco e di trasferire ad esso il controllo Su un disco di sistema (bootable), bootable il programma controlla l’esistenza di un sistema operativo; in caso affermativo, i file necessari all’inizializzazione vengono caricati in memoria assieme al relativo file interprete dei comandi Il ROM BIOS è la parte della ROM attiva quando il computer è al lavoro: il suo ruolo è quello di fornire un insieme di servizi di base richiesti per il funzionamento delle periferiche www.itimedi.it 26 Memoria Cache Lo scopo della memoria cache è quello di reperire informazioni utilizzate recentemente senza doverle nuovamente prelevare dalla RAM. La memoria cache è generalmente gestita 27 direttamente dalla CPU tramite bus privati. Memoria Cache Sono definibili due tipi di cache dette: L1, di dimensioni minori (8KB...64KB): è in genere contenuta all'interno del Core del processore e opera alla frequenza di clock; L2 (nelle CPU correnti compresa tra 256KB e 1MB): a seconda del tipo di architettura è posta o all'interno del Core del processore oppure sulla motherboard; opera a frequenze differenti a seconda del tipo di architettura, variabili tra la frequenza di bus e quella di clock. Quando si parla di L3 cache s’intende un’espansione di L2 Il processore cerca prima nella cache interna L1 e poi in quella esterna L2. 28 Memoria Cache L'utilizzo della memoria cache rispetto la RAM è più vantaggioso perché: il bus di indirizzi e dati è locale e non deve essere utilizzato quello comune, che potrebbe essere occupato da altri dispositivi, ritardando l'accesso il tempo di accesso alla cache per lettura/scrittura è molto più basso di quello della RAM (generalmente il tempo di accesso medio alla RAM è 50-70ns, mentre si può arrivare a valori inferiori a 10ns per accedere alla memoria cache). 29 Memoria Cache L'uso della memoria cache prevede, però, opportuni accorgimenti dovuti al fatto che la dimensione di una cache è notevolmente inferiore a quella di una RAM Quando la cache si riempie, è necessario sovrascrivere alcuni dati contenuti nella cache, per far spazio a nuovi dati da memorizzare. In particolare, si adotta la politica di sovrascrivere i dati più vecchi, ossia quelli non utilizzati da più tempo. 30 Memoria Cache La gestione della cache, può essere formalizzata nella seguente maniera: la CPU necessita di un particolare dato la CPU ricerca in dato nella cache se lo trova, lo legge e lo utilizza (cache hit) se non lo trova (cache miss), lo reperisce nella RAM e lo copia nella cache nella locazione più "vecchia", ossia da più tempo non utilizzata. 31 La memoria CMOS Tutti i PC sono dotati di una memoria permanente speciale, alimentata da una batteria A questa memoria si fa riferimento con il termine CMOS (Complementary MetalOxideSilicon) ilicon ed in essa sono immagazzinati i dati relativi al clock in tempo reale ed alla configurazione del sistema e delle sue periferiche Parte della memoria CMOS viene impiegata per conservare le specifiche relative al tipo di disco fisso e all’ammontare di memoria disponibile; al momento del boot, boot il BIOS legge le informazioni di configurazione in CMOS e le utilizza per inizializzare il sistema www.itimedi.it 32 FINE 33