Architettura di un sistema di elaborazione N.1 Le memorie (Unità 3) La memoria è la parte del computer destinata a conservare informazioni per un certo periodo di tempo. La memorizzazione di informazioni in memoria, e il successivo recupero delle medesime, sono funzioni fondamentali nel funzionamento del computer. Per il fenomeno fisico alla base del processo di memorizzazione, vengono distinte diverse categorie di memorie: - Memorie a semiconduttore: il metodo è elettronico e si fonda sulla conservazione di una carica elettrica all’interno di un piccolo conduttore. Si tratta di una memoria di piccole dimensioni fisiche e molto veloce; per contro il costo è elevato. L’informazione può essere memorizzata in modo non permanente e si parla di memoria volatile (il contenuto viene perso se cessa l’alimentazione del sistema), oppure l’informazione viene stabilita in fase di creazione, non è modificabile, e la memoria si dice non volatile. - Memorie magnetiche: la tecnica utilizza la caratteristica di alcuni materiali (le sostanze ferromagnetiche) di assumere e mantenere una direzione di magnetizzazione. Il costo non è elevato e la memorizzazione è permanente (fino ad una successiva sovrascrittura); per contro la velocità non è notevole e viene richiesto un dispositivo di lettura elettro-meccanico (con conseguente possibilità di usura). Appartengono a questa categoria i dischi magnetici quali ad esempio dischi rigidi e floppy disk. Le cassette video e musicali, registrano le informazioni in formato analogico mentre per altri, come ad esempio hard disk e floppy disk, il formato dei dati è di tipo digitale, i principi fisici che vengono sfruttati sono gli stessi. - Memorie ottiche: il principio usato è la possibilità di un raggio laser di causare e poi riconoscere modifiche nella struttura della materia (riflettività, polarizzazione). I vantaggi e gli svantaggi sono simili a quelli delle memorie magnetiche, ma vengono migliorati i parametri costo e velocità; per questa ragione, le memorie di tipo ottico hanno sostituito quelle magnetiche. Funzionano in questo modo i CD audio e i CD-Rom e anche i CD riscrivibili e i DVD. L’informazione è registrata in formato digitale e la successione di 0 e di 1 viene incisa sul disco come una sequenza di zone opache e di zone riflettenti. Il lettore emette un raggio di luce che viene riflesso dal disco e poi letto da un apposito rivelatore opto-elettronico. La storia di questi supporti è molto recente, perché la tecnologia per realizzarli risale agli anni ’70, ma solo nel 1982 Philips e Sony lanciano sul mercato il primo CD audio; gli altri verranno in seguito, il DVD solo nel 1998. I moderni elaboratori utilizzano memorie anche funzionalmente e logicamente distinte. I diversi tipi di memoria utilizzati dai sistemi di elaborazione possono essere classificati: • • • memorie ad accesso casuale (RAM, Random Access Memory) memorie a sola lettura (ROM, Read Only Memory) memorie di transito (o cache, “ripostiglio”) 1 Memoria ad accesso casuale La memoria ad accesso casuale, detta memoria RAM, permette l’accesso alle informazioni in modo diretto e in tempi molto brevi. Dal punto di vista logico essa può essere vista come una grande matrice monodimensionale formata da celle formate da un indirizzo e da un contenuto. Il processore accede al contenuto (in lettura o in scrittura) della cella per mezzo del suo indirizzo: Fig.1 Struttura della memoria principale Accedere ad un dato significa selezionare mediante l'indirizzo la cella in cui esso è memorizzato e prelevare il valore. Memorizzare un dato richiede di specificare l’indirizzo della cella in cui si vuole inserirlo. L'indirizzo fisico di una cella è importante perchè permette al calcolatore di individuare le celle. E’ importante notare che nei linguaggi di programmazione ad alto livello non sarà necessario riferirsi ad una cella di memoria con l'indirizzo fisico, ma si userà un indirizzamento simbolico, ossia ci si riferirà ad essa attraverso un nome. Nella memoria RAM vengono caricati sia il programma da eseguire che i dati, ossia tutta l'informazione necessaria alla esecuzione del processo corrente, e si possono compiere operazioni sia di lettura che di scrittura, ma è una memoria temporanea (volatile), cioè quando si spegne il computer le informazioni che vi sono contenute vengono perse. La memoria RAM è del tipo semiconduttore e può essere di due tipi: • RAM statiche (SRAM), costituite di flip-flop; in esse l'informazione è mantenuta finché è presente la tensione di alimentazione; • RAM dinamiche (DRAM), costituite di condensatori la cui carica tende progressivamente a disperdersi. In questo caso per conservare l'informazione è necessario ripristinare periodicamente le cariche sui condensatori e viene svolta periodicamente dal microprocessore un’operazione chiamata refresh. Nella SRAM i chip usano due o quattro transistor per ogni cella di bit. I chip SRAM sono molto veloci ma hanno bisogno di dissipare potenza; la necessità di usare molti componenti, li rendono molto costosi. La SRAM è solitamente usata per le memorie cache, dove elevate velocità e ridotti consumi sono caratteristiche fondamentali. Nella DRAM i chip possono contenere un numero di celle fino a quattro volte maggiore. Viene utilizzato un solo transistor per ogni bit, e periodicamente bisogna provvedere 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, eseguita da un circuito interno alle memorie stesse, deve essere eseguita molto spesso ed è un processo con priorità molto alta continuamente in esecuzione in background. La Dram è più utilizzata perché ha un costo più basso rispetto alla memoria statica. La DRAM più conosciuta è la SDRAM o RAM Sincrona, la cui caratteristica principale è la capacità di operare in sincronismo con il clock del bus di sistema. Le memorie che si usano attualmente nei personal computer sono di tipo DDR. Cosa significa però esattamente DDR? In inglese è l’acronimo di Double Data Rate. Questo tipo di memorie, sono in grado di fare 2 cicli di trasferimento dei dati per ogni ciclo di clock, rispetto alle vecchie memorie 2 SDRAM, a parità di clock, trasferiscono il doppio dei dati. Alla fine del 2008 Intel ha rilasciato il primo processore di nuova generazione i7. Questi processori sono usciti sul mercato insieme a nuovi chipset per schede madri, gli X58. Insieme a questo nuovo tipo di chipset, è stato necessario introdurre un nuovo tipo di memoria. Siamo parlando della DDR3. Negli ultimi 2 anni praticamente tutta l’industria dei computer, sia fissi, netbook o laptop si è convertita alla nuova tecnologia. Tutti i nuovi processori Intel possono essere utilizzati soltanto con schede madri che sopportano memoria DDR3. Più recentemente, anche lo storico avversario di Intel, AMD, si è convertita alle nuove memorie. A questo punto dobbiamo vedere che cosa cambia tra la tecnologia DDR2 e DDR3. Si tratta sostanzialmente della stessa tecnologia, che però cerca di incrementare il numero dei trasferimenti di dati ad ogni ciclo di clock. Nel caso della memoria RAM DDR2, ci sono 4 trasferimenti di dati per ogni ciclo di clock, mentre nella DDR3 si arriva ad 8. Per fare un esempio se abbiamo un ciclo di clock di 100 MHz, una memoria RAM DDR, riesce a trasferire 1600 MB/s. Se prendiamo una DDR2 raggiunge 3200 MB/s, e infine una DDR3 arriva addirittura a 6400 MB/s. La velocità di una memoria si misura attraverso il suo tempo di accesso, ossia il tempo necessario a prelevare un dato. Il tempo di accesso si misura come l'intervallo di tempo che intercorre dall'istante in cui è dato l'ordine di recuperare (fetch) un'informazione dalla memoria e l'istante in cui tale informazione è disponibile per l'unità centrale, attualmente i tempi di accesso alla memoria centrale sono dell’ordine delle decine di nanosecondi (1 ns = 1 miliardesimo di secondo). E’ quindi importante considerare, oltre alla capacità della memoria, anche la velocità delle linee di comunicazione con la CPU, ovvero la frequenza del clock di sincronismo (velocità sul Bus). I chip di memoria sono montati su apposite schede collegate sulla scheda madre. In precedenza le memorie erano montate su schede dette SIMM (Single Inline Memory Module), un modello di scheda di memoria RAM caratterizzata da contatti su una sola faccia della scheda, più recentemente su schede DIMM (Dual Inline Memory Module), su due facce. SIMM DIMM 3 Memoria a sola lettura La memoria a sola lettura, detta memoria ROM, è una memoria in cui l’informazione è registrata permanentemente (mantiene le informazioni anche quando il computer viene spento), può essere solo letta e attualmente qualcuna anche modificata. Per le sue caratteristiche, la ROM è utilizzata per contenere informazioni particolarmente protette, come il BIOS (Basic Input Output System) del sistema. Come per la RAM, l'accesso alle locazioni è di tipo casuale, la logica è quindi identica ma con possibilità di sola lettura. Esistono vari tipi di ROM: • • • le PROM(Programmable ROM) le EPROM(Erasable PROM) le EEPROM(Electrically Erasable ROM) PROM Nelle PROM (Programmable ROM) l’utente può programmare autonomamente i contenuti binari della memoria. La memoria PROM può essere programmata una sola volta. EPROM Le EPROM (Eraseable PROM) sono una prima soluzione al problema della riprogrammabilità. In queste memorie il chip presenta una piccola finestrella di quarzo trasparente. Esponendo il chip alle radiazioni ultraviolette per un periodo di 15-20 minuti, viene cancellata tutta la memoria e può essere riprogrammata. Per fare ciò occorre togliere il chip dalla scheda madre e procedere con la riprogrammazione. EEPROM Le EEPROM (Electrically Eraseable PROM) sono memorie di tipo programmabile ma con qualche vantaggio in più rispetto alle EPROM: • • • i dati vengono cancellati in pochi millisecondi, contro i 15-20 minuti dell’EPROM per effettuare il processo di cancellazione non è necessario staccare il chip dalla scheda madre, ma può essere fatto on-line utilizzando le tensioni fornite dall’alimentatore alla scheda madre. Si può cancellare una singola cella di memoria anziché tutta la memoria. In tal caso la memoria si chiama EAPROM (Electrically Alterable PROM) Nei sistemi di elaborazione moderni questi tipi di chip consentono di modificare il BIOS del proprio computer. Memoria di transito o Memoria cache La memoria cache (memoria “ripostiglio”) è realizzata con tecnologia SRAM (RAM statica) e si trova logicamente situata tra la memoria centrale e il microprocessore. E’ più veloce della RAM ma può memorizzare meno dati. La memoria cache è una memoria temporanea utilizzata per migliorare il trasferimento dei dati tra la memoria centrale e i registri della CPU; la cache, sensibilmente più veloce della memoria centrale, contiene i dati usati più frequentemente dalla CPU, producendo così accessi più veloci. Quando il processore richiede un dato, questo viene prima ricercato nella memoria cache (dove con più probabilità si trova) e, in caso positivo (cache hit), viene caricato in modo quasi istantaneo nei registri del processore, in caso negativo (cache miss) l’informazione viene recuperata dalla memoria centrale e, in parallelo, vengono aggiornati i contenuti della memoria cache in modo che i dati in essa residenti siano sempre i più richiesti (in termini probabilistici). In dettaglio funziona così: L’indirizzo di una cella è diviso in due parti, una parte detta tag (o numero di blocco) e una parte detta offset (o distanza). La memoria cache è logicamente formata da due parti, una parte che contiene i tag e una parte che contiene i dati: 4 Indice dci Tag Memoria dati Tag 0 Tag 1 ……… Blocco 0 ……… Tag n ……… Blocco n Blocco 1 ……… Se ad esempio vogliamo leggere il dato all’indirizzo FAA5, la parte del Tag, FAA, viene cercata negli indici dei Tag: se il Tag esiste, e ad esempio corrisponde al Tag1, che punta al Blocco 1, il dato sta nella cella 5 del blocco 1 in Memoria dati. se il Tag non c’è, il processore va in memoria centrale e, prima di trattare il dato, il blocco di memoria centrale FAA viene copiato nella zona memoria dati della cache e il numero del blocco viene inserito nella tabella degli indici. Ovviamente, per inserire il nuovo blocco occorre che nella cache esista lo spazio, se questo non c’è occorre eliminare un blocco esistente. La scelta del blocco da eliminare è dettata da alcune scelte, ad esempio si toglie il blocco che da più tempo è in cache. Esistono vari livelli di cache: primo livello (L1): cache integrata direttamente nel processore o secondo livello (L2): cache esterna ma collegata direttamente al processore. Il collegamento fra la cache e il processore avviene tramite un bus specializzato, chiamato back-side, che può lavorare alla stessa velocità del processore. o terzo livello (L3): cache esterna sulla motherboard. o Con una struttura a più livelli il meccanismo di accesso ai dati è il seguente: 1) il microprocessore interroga la cache di primo livello per leggere un’informazione: • Se la risposta è positiva preleva il dato e lo tratta • Se il dato non è presente lo cerca nella cache di secondo livello: o Se l’informazione è presente nella cache di secondo livello, il microprocessore lo tratta e contemporaneamente il blocco contenente il dato viene ricopiato nella cache di primo livello o Se l’informazione non è presente nella cache di secondo livello lo cerca nella cache di terzo livello: ⇒ se l’informazione è presente nella cache di terzo livello, il microprocessore lo tratta e contemporaneamente il blocco contenente il dato viene ricopiato nella cache di secondo livello ⇒ se l’informazione non è presente nella cache di terzo livello lo preleva dalla memoria principale e copia il blocco contenente il dato in tutte le cache. 5 Le prestazioni del sistema aumentano all'aumentar della quantità di cache installata, infatti, quando diciamo che il microprocessore ha un clock di f MHz, significa che il microprocessore lavora alla frequenza f con la cache, e si collega poi al bus con la frequenza di clock del bus. Poiché aumentare la velocità del bus è molto costoso, si adotta un’architettura che prevede l’uso di cache memory. La memoria cache è piccola ma velocissima, per questo viene utilizzata nei sistemi di elaborazione per contenere dati e codice ai quali il microprocessore accede frequentemente. Il Bios Il BIOS (Basic Input Output System) è un insieme di programmi memorizzati nella ROM che operano da interfaccia tra l’hardware e il sistema operativo. Dato che l'esecuzione di un programma si trova in memoria centrale e che la RAM all'accensione non contiene ancora niente, le prime istruzioni da eseguire si trovano nella rom. In questa maniera l'indirizzo viene trovato automaticamente. La prima operazione che deve essere eseguita è il caricamento nella memoria del sistema operativo: BOOTSTRAP. L’architettura di un sistema di elaborazione è organizzata a strati, dall’applicazione all’hardware: Il Bios è invisibile a chi usa il computer, ma è di fondamentale importanza per un sistemista. Risiede in una memoria della EEPROM. Le informazioni necessarie per il corretto funzionamento del computer sono fissate attraverso il setup del Bios: sono i parametri che predispongono il lavoro del computer e che alcune volte devono essere modificati per aggiornare la configurazione in modo da ottenere le massime prestazioni. I parametri di setup sono memorizzati in una piccola memoria speciale chiamata CMOS che è di tipo RAM, costruita con la tecnologia CMOS che consente bassissimi consumi, e che, per evitare di perdere le informazioni allo spegnimento del computer, è alimentata a parte con la batteria di backup. La memoria CMOS fa parte di un circuito che comprende anche il clock in tempo reale del computer ed e' alimentato da una batteria (e' questa che fornisce l'alimentazione all'orologio anche quando il computer e' spento), conserva l'orario corrente e i dati di configurazione del BIOS. Una piccola batteria al litio costruita nel chip della CMOS può mantenere i dati salvati anche per più di 10 anni. COSA FA IL BIOS Il Bios ha molteplici ruoli ma quello più importante è sicuramente il caricamento del sistema operativo. Quando viene acceso il PC, il microprocessore inizia ad eseguire delle istruzioni. Ma dove va a cercarle? Ovviamente non le può leggere dal sistema operativo visto che questo è localizzato sull'hard disk ed il microprocessore non è in grado di accedervi perché nessuno gli ha ancora detto come si fa. Viene da se che l'unico posto dove trovare le istruzioni di base è proprio il Bios. Quando si accende il computer il BIOS esegue le seguenti operazioni in sequenza: o o o o o Controlla il CMOS Setup per i settaggi personalizzati Carica i vari drivers Inizializza i registri Effettua l'auto test (POST, ovvero power-on self-test) Mostra i settaggi di sistema a video 6 Intel motherboard 945 drivers free download Drivers Windows XP 7 Intel Core i7 965EE, i7 940, i7 920 Review :: Intel X58 Express Chipset Features (11-08-2008) 8 9