I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC 03/06/17 MEMORIE per PC Sommario La gerarchia della memoria ...................................................................................................................... 1 Nozioni base sulla latenza e sulla capacità della banda dati ........................................................................ 2 Tipi di memoria recenti ............................................................................................................................ 3 Memoria Sdram............................................................................................................................... 3 Memoria Ddr - Sdram ...................................................................................................................... 4 Memorie DDR2................................................................................................................................ 5 La gerarchia della memoria La memoria è organizzata secondo diversi livelli gerarchici, ognuno dei quali assolve ad uno scopo specifico: La memoria di sistema serve come cache per il file di paginazione e swap virtuale situato sul disco rigido. La cache di secondo livello (L2) funge da intermediario tra l'unità di calcolo e la memoria di sistema; Inoltre tutti i processori possiedono una più veloce cache di primo livello (L1) integrata al loro interno. La gerarchia delle cache ha senso in quanto ogni livello, partendo dai registri all'interno della Cpu scendendo fino al disco rigido, è caratterizzato da un prezzo decrescente e da una dimensione crescente poiché i principi fondamentali su cui si basano le memorie cache funzionano bene, nei computer moderni i sistemi di storage dei dati hanno avvicinato di molto le velocità dei registri pur mantenendo la capacità di un disco rigido. I principi fondamentali alla base delle architetture delle cache sono il Principio della Localizzazione Temporale e quello della Localizzazione Spaziale. Il primo afferma che nel momento in cui un programma si appoggia ad una determinata locazione di memoria è molto probabile che farà riferimento ad essa anche in un momento successivo. Il secondo principio afferma invece che un'applicazione tende ad utilizzare e fare riferimento a locazioni di memoria contigue o vicine le une alle altre. Quando la memoria cache riceve una richiesta per dati che non sono disponibili al suo interno si parla di cache miss (mancato hit nella cache). Questo evento è inevitabile quando il processore richiede per la prima volta il codice di un'applicazione. I cache miss forzati sono anche conosciuti con il termine mancato hit per partenza a freddo o mancato hit per primo riferimento. Si verificano situazioni di cache miss anche quando il processore richiede una quantità di dati che non possono essere contenuti all'interno della cache per motivi di spazio così che si rende necessario spostare le informazioni per poi tornare a recuperarle in un secondo momento; in queste situazioni si parla di mancato hit della cache per capacità. Abbiamo descritto queste nozioni base per mettere in evidenza l'importanza della memoria: la memoria di sistema è pensata e realizzata con lo scopo di minimizzare l'effetto collo di bottiglia che la memoria virtuale 1 ha sulle prestazioni generali del sistema. 1 Si tratta di una porzione di disco fisso utilizzata come se fosse memoria di sistema. La memoria virtuale possiamo considerarla come una emulazione, tramite software, della presenza di memoria RAM superiore a quella fisica presente nel nostro sistema, effettivamente installata. In parole semplici viene simulata la presenza di altra memoria utilizzando il disco rigido e tecniche di compressione. L’unica differenza sta nel differente tempo di accesso. 1 I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC 03/06/17 L'efficienza dipende poi dal numero e dal tipo di cache miss generati dal software in uso. Un programma che occupa uno spazio ben più grande della dimensione della cache L2 sarà influenzato in modo maggiore dalle prestazioni della memoria di sistema rispetto ad uno che occupa la metà della cache, perché il primo genera cache miss di capacità nella L2, cosa che non accade con il programma più piccolo. Maggiori sono i mancati hit della cache di capacità e di conflitto, maggiore sarà l'impatto della memoria di sistema sulle prestazioni generali. Nozioni base sulla latenza e sulla capacità della banda dati Con il termine latenza si indica il tempo necessario a completare un'operazione sulla memoria, dall'inizio alla fine del processo. La capacità della banda dati è, invece, la misura della quantità di informazioni che possono fluire al secondo attraverso il canale da e verso la memoria. Per comprendere al meglio il funzionamento della memoria e i concetti appena descritti, analizziamo in breve come funziona la memoria Dram. La Dram è costruita con celle di transistor e condensatori ordinati all'interno dei chip, in colonne e righe, organizzate a loro volta in banchi. poiché i condensatori perdono nel tempo il loro stato di carica è necessario effettuare un'operazione di ricarica periodica: da qui il concetto di refresh della memoria. Oltre a questo ogni qual volta viene letto un dato il condensatore perde la sua carica; per questo motivo i chip di memoria sono dotati di un circuito chiamato amplificatore di stato che identifica il dato in lettura e lo riporta allo stato originale dopo la fase di accesso. La memoria Dram standard, quando riceve una richiesta dati dal controller principale della memoria, identifica in primo luogo la riga in cui si trova l'informazione. Dopo questa fase deve essere attivato l'amplificatore di stato relativo a questa riga se differente da quella dell'ultimo accesso e questa operazione richiede un po' di tempo. Questo intervallo di tempo è indicato con tRP (Time Row Precharge, tempo di attivazione della riga). Quindi intercorre un piccolo lasso di tempo durante il quale il segnale di riga si stabilizza prima di poter impostare la colonna. Questo intervallo di tempo è conosciuto come tRCD (Time Ras to Cas Delay; Ras: Row Access Strobe; Cas: Column Access Strobe). A questo punto può essere effettuato l'accesso alla colonna e dopo un intervallo 2 I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC 03/06/17 di tempo tCAC ( Column Access Time) il dato richiesto viene inviato ai pin di uscita della Dram. La maggior parte delle migliorie introdotte nel disegno delle memorie Dram coinvolgono le operazioni base svolte durante l'accesso alle informazioni con differenti package e con qualche tecnica per aumentare l'efficienza. Una delle tecniche per ottenere una maggiore efficienza nel recupero dei dati è la modalità Burst che, mediante la lettura anticipata delle colonne adiacenti a quella appena letta, riesce a ridurre in modo drastico il tempo di latenza per letture sequenziali. In questo modo la cache carica dati per blocchi contigui; la modalità burst, nell'ottica del principio della localizzazione spaziale, risulta quindi un elemento di fondamentale importanza per le prestazioni generali. La memoria Fpm (Fast Page Mode Ram) e la Edo (Extended Data Output Ram), che le è succeduta per poco tempo, operavano in modalità asincrona, utilizzando cioè un proprio segnale di clock indipendente da quello del processore che, insieme al controller della memoria, doveva supervisionare a tutte le operazioni di trasferimento dati. Sdram è lo standard Dram definito dal Jedec e aiuta a risolvere questo problema impiegando il Fsb del processore come segnale di clock per le operazioni di input e output della memoria. La Sdram utilizza uno speciale registro che, come una chiave, memorizza gli indirizzi di riga e colonna del dato richiesto, così che la Cpu possa proseguire l'esecuzione delle istruzioni nella pipeline mentre attende l'arrivo dell'informazione. Poiché questa arriva sincronizzata sul fronte del Fsb, il processore può programmare il rendez-vous dei dati con le istruzioni all'interno degli stadi di esecuzione della pipeline. La banda di trasferimento dati è altrettanto difficile da determinare: la capacità massima teorica può essere calcolata moltiplicando il numero di bit trasferiti ad ogni ciclo di clock per la frequenza di funzionamento della memoria; tuttavia, poiché la latenza non è sempre pari a un ciclo di clock, possono trascorrere più cicli durante i quali non avviene alcun trasferimento di informazioni. Possiamo quindi dedurre che questo tipo di calcolo non fornisce un risultato accurato e che è particolarmente difficile ottenere una misura reale di quale sia la latenza e la banda di trasferimento dati. Detto ciò cercheremo ora di capire come analizzare queste caratteristiche per i moderni tipi di memoria. Tipi di memoria recenti Memoria Sdram Il tipo di memoria più diffuso sui vecchi (età > 3 anni) PC è il Single Data Rate (Sdr) Sdram che trasferisce i dati sul fronte di salita del segnale di clock. La Sdr Sdram, oggi ormai fuori mercato, era disponibile in tre tipologie definite dalle specifiche Jedec: Pc66, Pc100, Pc133. Queste vennero sviluppate perché nel momento in cui la Sdram arrivò sul mercato sorsero molti problemi inerenti ai timing di funzionamento: moduli certificati per essere Pc100 in realtà difficilmente funzionavano in modo corretto. In seguito Intel sviluppò un proprio documento sulle specifiche Pc100, che ancora oggi risulta 3 I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC 03/06/17 essere la guida più completa sull’argomento. Pc133 è un'evoluzione dello standard Pc100 che implica il solo innalzamento della frequenza di funzionamento a 133MHz; Con Pc66 ci si riferisce ai moduli di memoria Sdram che aderiscono alle specifiche originali Jedec. All'interno di questi stessi gruppi sono disponibili diverse caratteristiche: la Sdram con controllo di parità indica moduli in grado di identificare eventuali errori nei dati se la scheda madre e il chipset supportano l'impiego del bit di parità; la memoria Sdram Ecc possiede dei pin extra ed è in grado di effettuare anche correzioni sui dati errati. Queste proprietà addizionali comportano un costo aggiuntivo, ma sono generalmente impiegate solo per sistemi server e per hardware destinati ad applicazioni mission critical ; per la maggior parte delle applicazioni sono invece sufficienti normali moduli Sdram. Esistono ancora un paio di termini per descrivere i moduli di memoria Sdram: Cas2 e Cas3. Il termine Cas (Column Address Strobe) indica il numero di cicli (basati sul tempo tCAC) necessari perché il segnale di Cas attivi la colonna desiderata all'interno della griglia di celle di memoria. Un modulo Cas2 è più veloce di uno Cas3 ed è preferibile per operazioni di overclock; inoltre determina un incremento significativo della banda i di trasferimento dati effettiva, anche se le prestazioni i generali del sistema ne traggono poco beneficio. Note tecniche: Il timing dei moduli Ram sono elencati con un gruppo di tre cifre su un'etichetta applicata al modulo stesso. La prima cifra indica la latenza Cas, la seconda il numero di cicli per il tRCD e il terzo indica il tRP. I moduli Sdram tipicamente hanno timing di tipo 3-2-2 (moduli Cas3) o 2-2-2 (i moduli Cas2). Un'osservazione importante per chi intende utilizzare moduli Cas2 è di installare un singolo modulo in quanto l'impiego di più moduli distinti risulta generalmente nell'abbassamento, effettuato in automatico dalla scheda madre, a Cas3 dei timing di accesso. La latenza della Sdram è stimabile nell'ordine di 10 cicli del Front Side Bus (Fsb) per la lettura della prima cella e di un ciclo per la lettura delle successive. Moltiplicando il numero di cicli del Fsb che identificano la latenza della memoria per il moltiplicatore del processore, si ottiene il numero di cicli processore che intercorrono prima che il dato richiesto divenga disponibile: per un processore che funziona a 800 MHz con Fsb a 100 MHz il numero di cicli processore che intercorreranno per una prima lettura è circa 80. Nota sulla capacità L’identificazione della capacità di memoria di un modulo DIMM2 avviene attraverso le informazioni del chip SPD (Serial Presence Detect), una piccola eprom che contiene tutti i parametri operativi necessari. Il formato delle informazioni presenti nel chip SPD è stato fissato dal JEDEC, organizzazione che raggruppa i principali costruttori di memorie RAM. La non conformità dei dati presenti su tale chip è spesso causa di mancati riconoscimenti del corretto formato del modulo o della presenza dell’intero modulo. Memoria Ddr - Sdram La memoria Ddr (Double Data Rate) Sdram è molto simile a quella Sdr Sdram, ma con la caratteristica di trasferire le informazioni sia sul fronte ascendente che su quello discendente del segnale di clock. Gli standard per i moduli Ddr I Sdram sono Pc1600 DIMM è l’acronimo di Dual In Line Memory Module ed è il formato di memoria per i PC, mentre SODIMM è l'acronimo di Small Outline Dual In-line Memory Module ed è il formato dei moduli di memoria utilizzati sui notebook 2 4 I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC 03/06/17 (200MHz Ddr), Pc2100 (266 MHz), Pc2700 (333 MHz) e Pc3200 (DDR400: 533 MHz), PC3700 (667 MHz) e oltre. Memorie DDR2 Uscite sul mercato nel corso del 2004, le memorie Ddr2 si preparano a sfondare, sia nel segmento Pc desktop sia nei dispositivi portatili, anche se le specifiche sono in continua evoluzione. Il nuovo standard per le memorie di sistema ha debuttato nel 2004 sugli adattatori grafici Nvidia della serie GeForce FX e si appresta ora a entrare anche nel mercato di massa. Oltre a piattaforme video, ormai anche molte schede madri presenti sui cataloghi dei produttori sfruttano memoria DDR2. Dai sistemi domestici dedicati al gioco fino ai server, le memorie Ddr2 consentono di raggiungere prestazioni nettamente superiori a quelle fornite dalle attuali memorie. Le Ddr II sono infatti in grado di fornire, a parità di frequenza, una banda passante doppia rispetto alle odierne Ddr. I nuovi moduli, con tensione di alimentazione di 1,8 V, garantiscono un transfer rate di 533 Mbps, estendibile a 667 Mbps per i sistemi server o per particolari soluzioni che richiedano un ulteriore incremento di prestazioni. Attualmente sono sempre di più i produttori in grado di disporre di quantitativi ingenti di DDR2 conformi agli standard JEDEC3. Samsung è stato il primo produttore a inviare ai maggiori costruttori di chipset un campione di memoria Ddr2 da 512 Mbit conforme alle specifiche del Jedec, l’organismo preposto al controllo degli standard delle memorie. Hynix produce dal 2004 memoria DDR2 con processo produttivo a 0.11 micron, con 3 JEDEC = Joint Electronic Device Engineering Council 5 I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC 03/06/17 frequenze di clock di 533 e 667 Mhz e capacità complessiva di 512 Mbytes oppure 1 Gbyte; il package utilizzato è quello Fine-Pitch Ball Grid Array. Attualmente si trovano in vendita a prezzi poco più che doppi rispetto alla DDR, moduli di memoria DDR2 (di solito venduti a coppie con taglio 512 MB per poter sfruttare le piattaforme HW a doppio canale) denominati DDR2 PC3200 (400 MHz), DDR2 PC-4200 (533 MHz) e DDR2 PC-5400 (667 MHz) entrambi con alimentazione a 1,8V , package a 240 pins e CAS a valori 3 o 4. Sono già in produzione chip di memoria PC-6400 (800 MHz): I suddetti chip sono destinati ai futuri moduli di memoria PC2-6400, che offriranno una banda passante di 12,8 GB/sec in modalità dual-channel calcolando 1KB=1000 byte come fanno i produttori, oppure 11,9 GB/sec calcolando 1KB=1024 byte. Occorre dire che per adesso nessun chipset in commercio è in grado di supportare questo tipo di memorie che sono quindi da considerarsi ancora allo stato di prototipo. NOTA: Le memorie DDR2 richiedono molta più attenzione, rispetto alle tradizionali, per quanto riguarda la compatibilità. Occorre quindi comprarle in coppia per essere certi dell’appartenenza dei due moduli allo stesso lotto, ma soprattutto occorre verificare presso il sito del produttore della MB se la memoria scelta sia compatibile con il chipset presente sulla scheda madre. Quindi niente acquisti affrettati o dettati solo dal prezzo del prodotto. Esempio di specifiche per una DDR2 400MHz MT47H128M4BT-5E Di MICRON Technology Density: 512Mb Width: x4 Configuration: 128 Meg x 4 Voltage: 1.8V Package: FBGA Package Type: Lead Free Pin Count: 92-ball Clock Rate: 200 MHz Cycle Time: 5ns CAS Latency: 3 Data Rate: DDR2-400 Part Status: Production 6