Erasable Programmable Read Only Memory
Sigle comunemente utilizzate: 27C64, 27C128, 27C256, 27C512, 27C010, 27C020, 27C040, 27C1001, M27C1001, M27C2001, M27C4001, 27C080, M27C801,M87C257, 2716(Vpp25V), 2732, 2764, 27128, 27256, 27512, 27010
La EPROM (Erasable Programmable Read Only Memory) e' una tipologia di memoria non volatile che sostituisce la precedente PROM. A differenza della PROM, la EPROM puo' essere cancellata mediante l'utilizzo dei raggi ultravioletti (con appositi strumenti chiamati Eprom Eraser) e quindi riutilizzata. Nella parte superiore del package infatti, e' possibile notare una "finestrella" che si affaccia direttamente sul die del chip, realizzata con cristallo di quarzo. Quando veniva programmata, era solito applicare un adesivo/etichetta sopra la finestrella per evitare che la memoria potesse cancellarsi accidentalmente col tempo. L'invenzione della EPROM risale agli anni 70. Le dimensioni di memoria variavano da un minimo di 265byte (quelle piu' vecchie) a massimo 64mb (nel caso delle ultime prodotte).
Per risparmiare sui costi, introdussero le memorie EPROM OTP (One Time Programmable), che come dice il nome, potevano essere programmate una sola volta nel loro ciclo vitale. Cosi' facendo, non c'era bisogno di creare la finestrella per la cancellazione UV e in fase di produzione, non bisognava eseguire i test sulla funzionalita' della cancellazione. Per programmare la memoria EPROM servivano svariate connessioni. Nelle memorie EPROM a tensione singola, 2 pin erano di alimentazione. Quindi VCC (+5V) e GND. Per questa tipologia di EPROM, bastava soltanto la 5V per leggerle, mentre per programmarle c'era bisogno di una tensione secondaria (VPP, che puo' essere 25V, 21V o 12V). I chip che utilizzano una tensione di programmazione di 12.5V necessitano l'aumento della tensione di alimentazione (VCC) 6V durante la programmazione. Invece nelle memorie EPROM piu' vecchie servivano ben 3 tensioni, solo per leggerle! (+5V, +12V e -5V). Una quarta tensione era invece necessaria per programmarle. Poi, oltre ai pin di alimentazione abbiamo il pin "OE" (Output Enable) e il pin "CE" (Chip Enable). Il Chip Enable (nel caso dell'immagine qui a destra, PD/PGM) abilita e disabilita l'output dei dati. Quando e' disabilitato, la maggior parte dei chip entra in modalita' sleep. Questo riduce la velocita' di accesso ai dati. La velocita' di accesso utilizzando l'Output Enable (nel caso dell'immagine qui a destra, CS) invece del Chip Enable e' molto piu' ridotta, dato che non viene disabilitato tutto il chip, ma solo i pin dell'output dei dati. Questo permette quindi un accesso molto piu' veloce ai dati, a costo pero' del consumo di corrente. La maggior parte delle EPROM possiede 8 (data lines) linee dati (bits D0 - D7). Altre EPROM invece possiedono ben 16 linee dati (D0-D15). Nel caso dell'immagine qui a destra 00 - 07. Abilitando sia CE che OE, tutti i bit appariranno sulle linee dati (come 0 o 1). Non e' possibile abilitare bit in maniera individuale. Le linee dati di un EPROM sono bi-direzionali (diventano output quando l'EPROM viene letta input quando viene programmata). Poi ci sono le linee degli indirizzi (address lines), che formano il bus indirizzi. Queste linee sono di input, insieme selezionano la posizione che vogliamo leggere/scrivere. Le linee degli indirizzi partono da A0 (meno significativo) aumentando (A1, A2, A3...) con lo spazio di indirizzo che raddoppia la sua grandezza per ogni pin aggiunto. |
Programmazione / Cancellazione
Durante la programmazione viene utilizzato il pin VPP per fornire la cosiddetta "Tensione di programmazione" all'EPROM che, come detto prima puo' essere di 25V, 21V o 12V. Altrimenti la linea VPP viene lasciata a +5V. Tale tensione di programmazione, deve essere applicata per un determinato lasso di tempo. Un tempo troppo breve, o una tensione troppo bassa, comporta una programmazione instabile o errata (che comporta la corruzione dei dati e il rallentamento dei tempi di accesso). Una cosa simile puo' accadere se l'EPROM non viene sottoposta alla cancellazione per un tempo abbastanza lungo. Mentre se applichiamo una tensione troppo alta, oppure il chip viene sottoposto a tempi di cancellazione troppo lunghi, rischiamo di danneggiare la memoria. I tempi e le tensioni di lavoro sono specificate negli appositi datasheet.
Durante la programmazione, possiamo cambiare i bit solo da 1 a 0, dato che per cambiarli da 0 a 1, la cancellazione e' necessaria. Come detto prima, per eseguire la cancellazione, bisogna posizionare una luce UV sopra la finestrella. La cancellazione e' totale, non e' possibile cancellare singoli bit. Quando l'EPROM viene cancellata, tutti i bits sono impostati a 1. Quindi una volta cambiato un bit a 0 durante la programmazione, non puo' essere piu' cambiato (e quindi bisogna effettuare la cancellazione di tutta l'EPROM). E' invece possibile cambiare i bit rimasti a 1 con 0 con una seconda sessione di programmazione chiamata "patching".
Per eseguire correttamente la cancellazione, la luce UV applicata deve possedere una frequenza alta. Infatti deve riuscire a trapassare il cristallo di quarzo col quale e' stata realizzata la finestrella. Oltre alla frequenza della luce UV, conta molto anche l'intensita' della luce stessa e la distanza dalla finestrella. Piu' la luce sara' intensa e vicina al die, piu' velocemente verra' effettuata la cancellazione. Ogni volta che una EPROM viene cancellata e riprogrammata, il chip subisce un processo di degradazione. Ogni ciclo di cancellazione, aumentera' i tempi di accesso. Tuttavia per iniziare a notare problemi, bisogna effettuare un numero estremo di cicli (specificato sempre nel datasheet).
Durante la programmazione, possiamo cambiare i bit solo da 1 a 0, dato che per cambiarli da 0 a 1, la cancellazione e' necessaria. Come detto prima, per eseguire la cancellazione, bisogna posizionare una luce UV sopra la finestrella. La cancellazione e' totale, non e' possibile cancellare singoli bit. Quando l'EPROM viene cancellata, tutti i bits sono impostati a 1. Quindi una volta cambiato un bit a 0 durante la programmazione, non puo' essere piu' cambiato (e quindi bisogna effettuare la cancellazione di tutta l'EPROM). E' invece possibile cambiare i bit rimasti a 1 con 0 con una seconda sessione di programmazione chiamata "patching".
Per eseguire correttamente la cancellazione, la luce UV applicata deve possedere una frequenza alta. Infatti deve riuscire a trapassare il cristallo di quarzo col quale e' stata realizzata la finestrella. Oltre alla frequenza della luce UV, conta molto anche l'intensita' della luce stessa e la distanza dalla finestrella. Piu' la luce sara' intensa e vicina al die, piu' velocemente verra' effettuata la cancellazione. Ogni volta che una EPROM viene cancellata e riprogrammata, il chip subisce un processo di degradazione. Ogni ciclo di cancellazione, aumentera' i tempi di accesso. Tuttavia per iniziare a notare problemi, bisogna effettuare un numero estremo di cicli (specificato sempre nel datasheet).
Differenza tra memorie C e non
L'unica differenza tra (per esempio) una 27256 e una 27C256 e' che la 27256 utilizza la tecnologia NMOS, mentre la 27C256 quella CMOS. La tecnologia CMOS consuma meno corrente rispetto alla NMOS e di conseguenza il chip produce meno calore. Inoltre, l'alta densita' di posizionamento della tecnologia CMOS riduce la lunghezza delle piste, incrementando la velocita'.
Le memorie CMOS sono piu' semplici da cancellare, tuttavia e' anche piu' facile che vengano danneggiate dal processo di cancellazione se sono esposte per troppo tempo alla luce UV. Per quanto riguarda la programmazione, la tensione di programmazione (VPP) e' di 12.5V, e la tensione di alimentazione (VCC) deve essere esattamente di 6V.
Le memorie CMOS sono piu' semplici da cancellare, tuttavia e' anche piu' facile che vengano danneggiate dal processo di cancellazione se sono esposte per troppo tempo alla luce UV. Per quanto riguarda la programmazione, la tensione di programmazione (VPP) e' di 12.5V, e la tensione di alimentazione (VCC) deve essere esattamente di 6V.