Рис. 11.6.
Традиционное название энергозависимых типов памяти, как и в случае ROM, следует признать довольно неудачным. RAM значит Random Access Memory, т. е. «память с произвольным доступом», по-русски это звучит как ЗУПВ — «запоминающее устройство с произвольной выборкой». Главным же признаком класса является не «произвольная выборка», а то, что при выключении питания память стирается. EEPROM (о которой далее), к примеру, тоже позволяет произвольную выборку и при записи, и при чтении. Но так сложилось исторически, и не нам нарушать традиции.
Устройства RAM делятся на две больших разновидности — статические и динамические ЗУПВ. Простейшее статическое ЗУПВ (SRAM, от слова «static») — это обычный триггер. И «защелки» из микросхемы 561ТМЗ, и регистры типа 561ИР2, и даже счетчик с предзагрузкой типа ИЕ11 (см.
По счастью, с динамическими разновидностями RAM (DRAM) нам в схемотехническом плане иметь дело не придется, но ввиду практической важности этой разновидности (на DRAM построена вся оперативная память компьютеров) стоит остановиться на ней подробнее. Устройство ячейки обычной DRAM показано на рис. 11.7, из которого видно, что ячейка состоит всего из одного транзистора и одного конденсатора Последний на схеме (рис. 11.7,
Рис. 11.7
.а
— схематическое устройство; б — микрофотография среза кристалла DRAM (вытянутые вниз структуры — накопительные конденсаторы)Как происходит чтение данных с такой ячейки? Для этого вы подаете высокий уровень на линию строк (см. рис. 11.7), транзистор открывается и заряд, хранящийся на конденсаторе данной ячейки, поступает на вход усилителя, установленного на выходе столбца. Отсутствие заряда на обкладках соответствует логическому нулю на выходе, а его наличие — логической единице. Обратите внимание, что подача высокого уровня на линию строк откроет все транзисторы выбранной строки, и данные окажутся на выходе усилителей по всем столбцам сразу. Естественно, при этом все подключенные конденсаторы почти немедленно разрядятся (если они были заряжены), отчего процедура чтения из памяти обязана заканчиваться регенерацией данных (как оно в действительности и происходит, причем совершенно автоматически).
На практике регенерация в первых IBM PC и заключалась в осуществлении «фиктивной» операции чтения данных каждые 15 мкс с помощью системного таймера. Естественно, в таком решении было много подводных камней. Во-первых, регенерация всей памяти занимает много времени, в течение которого ПК неработоспособен. Потому-то сигнал на регенерацию и подавался с такой большой частотой, ведь каждый раз проверялась всего 1/256 памяти, так что полный цикл восстановления занимал около 3,8 мс. Во-вторых, такое решение потенциально опасно: любая зловредная программа спокойно может попросту остановить системный таймер, отчего компьютер уже через несколько миллисекунд обязан впасть в полный «ступор». И все современные микросхемы DRAM занимаются восстановлением данных самостоятельно, да еще и так, чтобы не мешать основной задаче — процессам чтения/записи.
Впервые принцип DRAM — хранение информации на конденсаторах с периодической регенерацией — применил еще Дж. Атанасов в самом первом электронном компьютере ABC (1941 г.). А зачем вообще нужна регенерация? Ввиду микроскопических размеров и, соответственно, емкости конденсатора в ячейке DRAM записанная информация хранится всего лишь сотые доли секунды. Несмотря на высококачественные диэлектрики с огромным электрическим сопротивлением, заряд, состоящий в рядовом случае всего из нескольких сотен, максимум тысяч электронов, успевает утечь так быстро, что вы и глазом моргнуть не успеете.
Огромный плюс DRAM — простота и дешевизна. В отличие от нее, ячейка SRAM, как вы знаете, представляет собой D-триггер, и содержит много логических элементов, занимая большую площадь кристалла. Потому SRAM много дороже, но зато не требует никакой регенерации. Фирма Dallas (ныне объединенная с MAXIM) одно время выпускала микросхемы энергонезависимой памяти (и некоторые другие устройства на их основе), представлявшие собой обычную SRAM со встроенной прямо в чип литиевой батарейкой.