7 декабря 2018 года в 18:28

История оперативной памяти

Мы давно привыкли к тому, что модуль оперативной памяти выглядит как небольшая плата с микросхемами. Но так, конечно же, было далеко не всегда. На заре компьютерной эры существовало множество видов оперативной памяти, совершенно не похожих друг на друга                                    




Достаточно сказать, что за время перехода от первого поколения ЭВМ (на электронных лампах) ко второму (на транзисторах) сменилось не менее пяти технологий ОЗУ. Из этого поста вы узнаете, какие причудливые формы порой принимала такая вроде бы знакомая вещь, как "оперативка"    


Конденсаторы
Создателем первого компьютера в современном понимании этого слова принято считать немецкого инженера Конрада Цузе. Ещё в 30-е годы, работая в одиночку, он сумел спроектировать и построить в гостиной родительского дома устройство, способное автоматически выполнять различные вычисления по заданной программе. Машина, получившая название Z1, была электромеханической и потому не фигурирует в списках первых ЭВМ (электронных вычислительных машин). При этом она работала в двоичной системе счисления, как и современные компьютеры, а не в двоично-десятичной, как знаменитый ENIAC, созданный почти десятью годами позже    


Оперативная память Z1 была организована на конденсаторах, причём не покупных, а разработанных самим изобретателем. Конструкция, в которой чередовались слои стекла и металлические пластины, позволяла хранить 64 вещественных числа, каждое из которых состояло из 14 бит мантиссы и 8 бит, отводившихся под знак и порядок.
Стоит отметить, что эта вычислительная машина работала ненадёжно из-за низкой точности изготовления деталей, и последующие свои конструкции (Z2-Z4) Цузе создавал на базе выпускавшихся промышленностью телефонных реле.
В 1987-1989 гг. пожилой Цузе воссоздал компьютер Z1, утраченный во время войны, и теперь его рабочая копия выставлена в Немецком техническом музее. По ссылке доступна интерактивная панорама, позволяющая рассмотреть компьютер со всех сторон    


Электронные лампы
Первые ЭВМ, например, вышеупомянутый ENIAC или отечественная БЭСМ, использовали электронные лампы как для вычислений, так и для промежуточной записи команд и операндов. Чтобы хранить один бит данных, нужна была одна запоминающая ячейка (триггер), собранная на двух триодах. В ЭВМ ставили двойные триоды, у которых в одном баллоне размещались, по сути, две независимые электронные лампы, поэтому можно упрощённо говорить, что для хранения N бит информации требовалось N электронных ламп (без учёта обвязки).
Неудивительно, что эти машины имели огромный размер и потребляли колоссальное количество энергии. БЭСМ содержала около 4000 электронных ламп, а ENIAC - почти
18 000. Дело в том, что, в отличие от чисто двоичной БЭСМ, ENIAC использовал весьма своеобразную двоично-десятичную систему представления чисел. Младшие 5 битов в ней кодировали число от 0 до 4 в унитарной системе счисления (когда значение определяет номер позиции, на которой в коде стоит единица, - скажем, 01000 означает 3, а 00001 - 0), а два старших бита определяли определяли, нужно ли прибавлять к этому числу пятёрку (10 - да, 01 - нет)
В итоге запоминающая ячейка ENIAC всего лишь на одну десятичную цифру (правда, объединённая со счётчиком) выглядела вот так:    


Запоминающая ячейка БЭСМ на 1 бит тоже особой компактностью не отличалась:    


Есть подозрение, что подпись к этой фотографии из музея(ИТМиВТ) неверна, и на ней - тоже не просто запоминающая, а суммирующая ячейка. Дело в том, что у БЭСМ были и двухламповые ячейки, которые, скорее всего, как раз представляли собой просто триггеры    


"Трубка Уильямса"
Очень любопытный тип памяти, впервые использованный в английском компьютере SSEM (Manchester Small-Scale Experimental Machine, "Манчестерская малая экспериментальная машина". Хотя правильнее будет сказать, что это компьютер SSEM был построен для тестирования памяти на "трубке Уильямса"    


Созданный в 1948 году, он оказался первым в мире электронным компьютером, построенным по принципу совместного хранения данных и программ в памяти (фон-неймановская архитектура). Также это была первая универсальная ЭВМ в Великобритании (созданный ранее компьютер Colossus, хотя и имел ограниченные возможности программирования, всё-таки предназначался для одной узкой задачи - взлома немецкого шифра Lorenz SZ).
"Трубка Уильямса" - это, по сути, обычная электронно-лучевая трубка, на экране которой рисуется двумерный массив из точек или тире. В зависимости от того, какой элемент был нарисован, на люминофоре образуются разные заряды. Чтобы прочитать информацию, на участки экрана, соответствующие ячейкам массива, нужно снова направить электронный луч. Все ячейки получат положительный заряд, но изменение заряда будет разным для точек и тире. Электрод на внешней стороне экрана позволяет отследить эту разницу и получить значение прочитанного бита. Если информацию не нужно менять, при следующем проходе луча по ячейкам их значения восстанавливают. Таким образом, трубка Уильямса представляет собой динамическую (постоянно обновляемую) память    


Что интересно, на такую трубку, в принципе, можно было выводить изображения, в том числе движущиеся, если последовательно записывать в память соответствующие значения. "Разрешение" составляло 32 x 32 элемента (1024 бит памяти).
В 1998 году с использованием оригинальных компонентов была построена реплика компьютера SSEM, которую теперь можно увидеть в Манчестерском музее науки и промышленности    


Декатроны
Harwell Dekatron, или WITCH, единственный компьютер первого поколения, сохранившийся до наших дней в рабочем состоянии. Он использует чисто десятичную систему счисления, и для хранения информации в нём используются декатроны - газоразрядные десятичные счётчики    


Колба декатрона заполнена инертным газом (обычно - неоном, поэтому при работе они светятся оранжево-красным светом). Вокруг центрального дискового анода расположены десять изолированных индикаторных катодов, а между каждой парой соседних индикаторных катодов - два так называемых подкатода. Подавая в нужном порядке на анод и подкатоды импульсы напряжения, можно заставлять разряд либо "перескакивать" с катода на катод (что соответствует увеличению/уменьшению хранимого значения на 1, или операции записи), либо переходить с катода на анод (что соответствует операции чтения).
Поскольку разработчики компьютеров почти сразу отказались от десятичной системы счисления, оперативная память на декатронах быстро стала достоянием истории, хотя в других областях декатроны использовались ещё много лет    


Ртутные линии задержки
Это, пожалуй, самая брутальная технология из всех, что будут рассмотрены в этом посте. Такую линию задержки можно представить себе как длинную заполненную ртутью колбу, на концах которой расположены пьезоэлементы - передатчик и приёмник. Передатчик возбуждает акустические колебания в ртути, и по ней бегут волны, как от камня, брошенного в воду. Когда колебания достигают приёмника, они усиливаются, при необходимости изменяются и вновь подаются на вход той же линии. Таким образом получается, что по линии задержки постоянно циркулирует пакет данных, представленный в виде цепочки волн. Память на линиях задержки не является дискретной и может хранить как цифровую, так и аналоговую информацию, что использовалось, например, в первых радарах    


Ртуть была выбрана благодаря тому, что её удельное акустическое сопротивление почти равно акустическому сопротивлению пьезокристаллов, а скорость распространения звуковых волн в ней выше, чем в других жидкостях.
Такая память была сложна в производстве, требовала тонкой настройки, представляла опасность в случае повреждения, нуждалась в системах поддержания постоянной температуры, а главное - предполагала только последовательный доступ (то есть приходилось ждать, пока на выходе линии задержки появится нужная информация). Почему же при таком огромном наборе недостатков её использовали? Всё дело в экономичности и надёжности. Одна ртутная линия задержки могла хранить несколько сотен бит информации (скажем, 576 бит в компьютере EDSAC). Чтобы реализовать такой же объём памяти на триггерах, понадобилось бы больше тысячи электронных ламп, которые занимали бы больше места и потребляли бы больше энергии, а главное - регулярно бы перегорали. Ртутные же линии, при всей их сложности, после грамотной настройки работали очень долго    


На фотографии запечатлён один блок "ртутной" памяти компьютера UNIVAC I (1951 г., США). Этот барабан содержал 18 трубок, по каждой из которых постоянно циркулировало 120 бит данных, а всего барабанов было 7. Время доступа к памяти составляло 222 мкс.
В 1953 г. оперативная память на ртутных трубках объёмом 1024 слова (по 39 бит в каждом) появилась и у отечественной БЭСМ    


Селектроны
Если трубка Уильямса и ртутные линии задержки считаются прототипами динамической памяти (DRAM), то следующее устройство можно назвать одним из прототипов статической памяти (SRAM).
Это - селектрон, особая электронная лампа, разработанная компанией RCA (кстати, под руководством небезызвестного В. К. Зворыкина) в конце 40-х - начале 50-х годов. На фоне памяти на триггерах, где одна электронная лампа была способна хранить в лучшем случае один бит данных, возможности этого устройства казались фантастическими: один селектрон мог иметь внутри матрицу ёмкостью до 4096 бит! Время доступа к информации при этом было на порядок меньше, чем у ртутной памяти (называлась цифра в 16 мкс)    


Селектрон сочетает в себе признаки электронно-лучевой трубки и обычной электронной лампы: у него есть покрытый люминофором экран и управляющие сетки, точнее решётки из скрещённых узких металлических полосок с отверстиями, образующих ряд "окон". Окно, к которому подводится напряжение, открывается для прохождения электронного луча к фосфорному экрану для записи или чтения информации.
Впечатление о компактности памяти на селектронах всё-таки немного обманчиво. Им требовалась довольно громоздкая обвязка, и на фотографии можно увидеть, как выглядело запоминающее устройство на 256-битных селектронах    


Магнитные барабаны
Магнитные барабаны являются прародителями современных жёстких дисков, только информация в них записывается не на основание, а на боковую поверхность цилиндра. Вы можете спросить, что же они тогда делают в списке технологий оперативной памяти. Действительно, мы привыкли к тому, что магнитные накопители используются для долговременного хранения данных. Тем не менее, в некоторых ранних компьютерах (особенно относившихся к "бюджетному" классу малых ЭВМ) магнитные барабаны использовались и в качестве оперативки. Первым таким компьютером, судя по всему, был узкоспециализированный "Atlas" производства ERA, разработанный в 1950 г. В дальнейшем память на магнитном барабане встречалась в IBM 650, Univac Scientific 1103, а также первой крупносерийной отечественной ЭВМ "Урал"    


На фотографии из Политехнического музея - как раз тот самый барабан. Он позволял хранить всего 1024 36-разрядных слова, что в 10 раз меньше, чем у американского "Атласа". Ёмкость была принесена в жертву быстродействию: за счёт высокой скорости вращения (100 оборотов в секунду) и крупного формата записи удалось получить среднее время обращения на уровне 8 мс. Впрочем, это всё равно было в разы больше, чем у других видов памяти - что поделаешь, ограничение системы с подвижными деталями. Поэтому в высокопроизводительных ЭВМ память на магнитных барабанах никогда не использовалась в качестве оперативной. Обычно ей отводилась роль буфера между оперативной и долговременной памятью    


Ферритовые сердечники
Появление памяти на магнитных сердечниках, или ферритовой памяти, ознаменовало наступление новой эпохи. Идею такого ОЗУ предложил Джон Преспер Экерт (один из разработчиков ENIAC) в 1945 г., а первые практические реализации появились в начале 50-х. Патент на ферритовую память получили американские инженеры китайского происхождения Ван Ань и Во Вайдун в 1955 г.
Внешне память на магнитных сердечниках представляет собой матрицу из ферритовых элементов (обычно колец), пронизанных проволочками    


Принцип её работы основан на свойствах ферромагнитного материала, который может находиться в двух устойчивых состояниях намагниченности - +B и -В. Чтобы перемагнитить такой элемент, необходимо в проводниках, на пересечении которых он находится, возбудить магнитное поле величиной не менее H. Для этого в "вертикальном" и "горизонтальном" проводниках возбуждается поле величиной H/2. Оно не может изменить состояние какого-либо иного элемента строки или столбца, кроме того единственного, который находится на пересечении этих проводников и для которого величина магнитного поля складывается, давая H.
Для считывания информации используется третий провод, который змейкой проходит через все сердечники    



Чтобы прочитать содержимое ячейки, в проводниках нужно возбудить отрицательное поле величиной -H/2. Тогда кольцо, находившееся в состоянии +В, перемагнитится в состояние
-В, и на считывающем проводе наведётся ЭДС, соответствующая значению "1". А кольцо, находившееся в состоянии -В, не перемагнитится, и на считывающем проводе никакого сигнала не появится, что компьютер истолкует как значение "0". Таким образом, чтение информации из памяти на ферритовых кольцах - разрушающее, то есть после считывания какой-либо ячейки требуется её регенерация
По сравнению со всеми предшественниками ферритовая память была колоссальным шагом вперёд в плане простоты, компактности и энергоэффективности. Неудивительно, что она "прописалась" в компьютерах на добрых два десятилетия, а в отдельных системах, где требовалась стойкость к воздействию радиации (например, в космосе), применялась до 1990-х годов.
Вытеснила её уже привычная нам память на микросхемах, но это - уже совсем другая история.....    
Автор:BootSect    

Чтобы оставить комментарий, необходимо авторизоваться:


Смотри также

Трейлер фильма Шутки и мемы 02.01.2023 Нищебродам не место в ресторанах! Кресло из картона своими руками Старейший тарантул в мире отбросил ноги не самым лучшим образом Отечественные двойники голливудских звезд: кто они и чем занимаются Как жил харизматичный, обаятельный советский актер Борислав Брондуков Пользовательница Твиттера придумала, как заменить отчество Еще один новый российский плацкарт: какой он? Можно ли прокормить обыкновенную ящерицу дома? Кошка