Podręcznik
4. Pamięci i inne układy o strukturze matrycowej
4.10. Reprogramowalne pamięci nieulotne CMOS
Pamięci wielokrotnie programowalne działają na zasadzie kontrolowanej zmiany napięcia progowego tranzystora. Zmianę napięcia progowego uzyskuje się na drodze elektrycznej, a nie w procesie produkcyjnym. Potrzebny jest do tego tranzystor o specjalnej, dwubramkowej konstrukcji. Idea takiego tranzystora pokazana jest na rysunku 4-10.
Rysunek 4 10. Dwubramkowy tranzystor nMOS stosowany w reprogramowalnych pamięciach EPROM
Bramka górna jest podłączona do linii słowa, natomiast bramka dolna nie jest nigdzie podłączona i ze wszystkich stron otoczona dielektrykiem (SiO2). Na kanał oddziałuje potencjał bramki dolnej. Bramka górna i dolna tworzą pojemnościowy dzielnik napięcia. Jeśli pojemności bramka górna-bramka dolna oraz bramka dolna-kanał są jednakowe, to na nośniki w kanale oddziałuje połowa napięcia przyłożonego do bramki górnej. Istotą działania omawianego tranzystora jako komórki pamięci jest możliwość trwałego naładowania bramki dolnej ładunkiem elektrycznym. W tym celu trzeba w kanale wytworzyć nośniki o wysokiej energii (t.zw. gorące nośniki). Takie nośniki powstają na przykład w procesie powielania lawinowego (patrz część I, punkt 3.1.2) w złączu p-n dren-podłoże. Gorące nośniki mogą pokonać barierę dielektryka dzięki zjawisku tunelowania i dotrzeć do bramki dolnej, gdzie zostają uwięzione. Tunelowanie jest zjawiskiem kwantowym, polegającym na tym, że – w dużym uproszczeniu – nośniki ładunku w pewnych warunkach mogą przenikać przez bardzo cienkie warstwy dielektryczne.
Jeśli bramka dolna zostanie naładowana ujemnym ładunkiem elektronów, to do bramki górnej trzeba przyłożyć znacznie wyższe napięcie dodatnie, by włączyć tranzystor. Innymi słowy, poprzez ładowanie bramki dolnej można zmienić napięcie progowe tranzystora „widziane” przez bramkę górną. Napięcie to może się stać tak duże, że tranzystora nie da się włączyć zwykłym napięciem przyłożonym do bramki górnej. W ten sposób programuje się tranzystor służący jako komórka pamięci EPROM. Ładunek zgromadzony w bramce dolnej ma czas rozładowania rzędu 10 lat. Jednak możliwe jest rozładowanie tego ładunku przy pomocy naświetlenia układu pamięci silnym światłem ultrafioletowym (nośniki są uwalniane dzięki zjawisku fotoelektrycznemu). W ten sposób zawartość pamięci może być skasowana, a pamięć zaprogramowana powtórnie.
W nowszych układach pamięci EPROM, zwanych EEPROM (ang. Electrically Erasable Programmable ROM) zmiana zawartości pamięci może być dokonana także na drodze czysto elektrycznej. Do uwalniania nośników z bramki dolnej wykorzystuje się zjawisko znane jako tunelowanie Fowlera-Nordheima. Występuje ono w ultracienkich warstwach dielektrycznych w silnym polu elektrycznym. Aby uzyskać ten efekt, warstwa dielektryczna SiO2 pod dolną bramką musi być niezwykle cienka (rzędu 10 nanometrów lub mniej). Aby wywołać prąd tunelowy Fowlera-Nordheima, trzeba do bramki górnej przyłożyć znaczne napięcie ujemne (kilkanaście V). Wywołuje to ucieczkę ładunku ujemnego z dolnej bramki. Programowanie, a w przypadku pamięci o organizacji NAND także odczyt, wymaga napięć dodatnich i ujemnych o wartościach wynoszących kilkanaście V. Napięcia te są generowane wewnątrz układu pamięci przy zastosowaniu układów pomocniczych zwanych pompami ładunkowymi. Zasada wytwarzania podwyższonego napięcia w pompie ładunkowej polega na ładowaniu kilku połączonych szeregowo kondensatorów, każdego z nich napięciem bliskim napięciu zasilania. Dzięki połączeniu szeregowemu napięcia się sumują i w ten sposób otrzymuje się napięcie wyższe od napięcia zasilania. Działanie pomp ładunkowych jest dość skomplikowane, i nie będzie tu omawiane. Z punktu widzenia użytkownika układ pamięci ma jedno typowe napięcie zasilania, np. 5 V lub 3,3 V.
Pamięci EEPROM wymagają specjalnej technologii wytwarzania dwubramkowych tranzystorów. Niewielu producentów oferuje technologie CMOS, w których można w tym samym układzie obok zwykłego układu cyfrowego CMOS wyprodukować moduł pamięci typu EEPROM. Jeśli taka możliwość istnieje, to projekt pamięci o zadanej pojemności i organizacji jest zwykle wykonywany automatycznie przy wykorzystaniu gotowych, opracowanych przez producenta bloków zapisu, odczytu, adresowania i samych komórek pamięci.
Programowanie pamięci EEPROM było dawniej procesem bardzo powolnym. Dziś istnieją pamięci tego rodzaju (zwane pamięciami „flash”), które mają czas programowania na tyle krótki, że można je traktować jako specjalny rodzaj pamięci o swobodnym dostępie (RAM). Mają one dłuższy od pamięci statycznych i dynamicznych czas zapisu, ale za to są nieulotne - do podtrzymania ich zawartości nie jest potrzebne żadne źródło zasilania. Są dziś powszechnie stosowane na przykład w popularnych kartach pamięci stosowanych w cyfrowych aparatach fotograficznych, telefonach komórkowych i innych urządzeniach, w których potrzebna jest pamięć nieulotna o możliwie krótkim czasie zapisu. Coraz częściej też zastępują twarde dyski w komputerach przenośnych (tzw. dyski SSD – ang. Solid-State Drive). Pamięci typu flash mają krótszy czas zapisu i odczytu, niż tradycyjne dyski twarde, a poza tym są odporne mechanicznie, bo nie zawierają precyzyjnych części ruchomych.
Pewną wadą pamięci tego rodzaju jest ich ograniczona trwałość. Procesy zapisu, które są związane z transportem przez cienką warstwę dielektryka nośników o wysokiej energii, powodują powolne pogarszanie się jakości warstwy dielektrycznej. Po określonej liczbie cykli zapisu komórka pamięci przestaje prawidłowo działać. Ta liczba cykli wynosi typowo do kilku tysięcy do kilkuset tysięcy. Nie należą więc do rzadkości przypadki, gdy intensywnie używana pamięć typu flash przestaje prawidłowo działać już po niedługim okresie użytkowania. Aby wydłużyć czas użytkowania pamięci, w blokach pamięci stosowanych jako zamiennik twardych dysków (dyskach SSD) stosowana jest systematyczna okresowa zmiana przyporządkowania komórek pamięci do adresów, co zapobiega szybszemu zużywaniu się komórek związanych z adresami wykorzystywanymi częściej, niż inne. Dyski SSD mają też bloki komórek zapasowych (zwykle o łącznej pojemności 7% - 10% pojemności nominalnej dysku), zastępujących automatycznie bloki z komórkami, które uległy zużyciu.
Niektóre rodzaje pamięci typu "flash" mają organizację odmienną od omawianych dotąd rodzajów pamięci. Wyróżnia się dwa sposoby organizacji tych pamięci, noszą one nazwy „pamięci typu NOR” i „pamięci typu NAND”.
Pamięci typu NOR mają matryce zorganizowane tak samo, jak pamięci innych rodzajów, tj. na każdym skrzyżowaniu linii słowa z linią bitu znajduje się pojedynczy tranzystor. Dzięki temu przy odczycie jest natychmiastowy indywidualny dostęp do każdej komórki pamięci. Te pamięci są wykorzystywane tam, gdzie zawartość pamięci zmieniana jest stosunkowo rzadko, natomiast ważny jest jak najkrótszy czas odczytu. Tak może być na przykład w pamięciach zawierających mikroprogramy sterujące systemami cyfrowymi („firmware”, BIOS).
Pamięci typu NAND mają organizację pokazaną niżej: do linii bitu dołączony jest nie pojedynczy tranzystor, lecz łańcuch tranzystorów połączonych szeregowo (stąd nazwa – analogia do łańcuchów tranzystorów nMOS w statycznych bramkach NAND).
Rysunek 4 11. Zasada organizacji pamięci flash typu NAND
Każdy z dwubramkowych tranzystorów, których bramki dołączone są do linii słowa S1 ... S4, stanowi jedną komórkę pamięci. Łańcuch tych tranzystorów (może ich być więcej, niż cztery) dołączony jest do linii bitu poprzez zwykły tranzystor nMOS. Sygnał BS na bramce tego tranzystora umożliwia wybór danego łańcucha tranzystorów do zapisu lub odczytu. Przy odczycie linia słowa, dla której ma być dokonany odczyt, polaryzowana jest normalnym napięciem odczytu, a wszystkie pozostałe znacznie wyższymi napięciami - takimi, przy których tranzystory ulegają włączeniu – przewodzą – bez względu na to, czy zapisane w nich jest „0”, czy „1”. Tranzystor, z którego dokonywany jest odczyt, przewodzi lub nie, i dzięki temu cały łańcuch przewodzi lub nie. Podobnie adresowane są tranzystory przy zapisie. Organizacja pamięci typu NAND daje przy umiejętnym zaprojektowaniu topografii oszczędność powierzchni, a ponadto ułatwia kasowanie zawartości całych bloków pamięci.