Первые устройства компьютерной памяти

Первые устройства компьютерной памяти

Опубликовано в номере:
PDF версия
Компьютер приобрел свой современный вид лишь после того, как появились быстродействующие устройства памяти произвольного доступа, позволяющие целиком загружать в вычислитель всю программу решаемой задачи.
Александр Микеров, д. т. н., проф. каф. систем автоматического управления СПбГЭТУ «ЛЭТИ»

Александр Микеров,
д. т. н., проф. каф.
систем автоматического управления
СПбГЭТУ «ЛЭТИ»

В первых микропроцессорах, описанных в [1], как и во многих современных компьютерах, используется полупроводниковая память. Однако путь к этим крошечным устройствам был непростым.

Обязательной частью всякого компьютера является оперативное запоминающее устройство (ОЗУ), называемое также памятью произвольного доступа RAM, в котором записаны текущие инструкции выполняемого вычисления и его данные. Большинство компьютеров строятся по так называемой фон-неймановской архитектуре, при которой компьютер на каждом шаге вычислений обращается к ОЗУ в ячейки инструкций или данных, поэтому по быстродействию оно не должно уступать арифметическому устройству. В то же время сама программа вычислений может храниться и вне компьютера в другом постоянном запоминающем устройстве — ПЗУ или ROM, которое может быть медленным, поскольку программа вычислений загружается в ОЗУ весьма редко. В первых компьютерах для этого использовались перфокарты или наборные поля со шнурами. В настоящем обзоре мы не будем касаться этого вида запоминающих устройств, подразумевая под словом «память» только ОЗУ.

Если считать первым компьютером механическую аналитическую машину Чарльза Бэббиджа (Charles Babbage) 1840 г., то в ней память была механической на зубчатых колесах, так же как и в первом релейном компьютере Z-1 немецкого изобретателя Конрада Цузе (Konrad Zuse), построенном в 1937 г. В его другом компьютере — Z-3 (1941) память уже выполнялась на 1400 реле [2, 3]. На реле был построен и первый американский компьютер Mark I, созданный в Гарвардском университете в 1944 г. морским офицером Говардом Эйкеном (Howard Aiken) при поддержке компании IBM.

Следующим логическим шагом был переход к быстродействующим электронным лампам первого электронного компьютера ENIAC, построенного в 1945 г. математиками Джоном Моучли (John Mauchly) и Джоном Эккертом (John Eckert) в Пенсильванском университете по заказу военного ведомства [2, 3, 4]. Моучли имел докторскую степень по физике и был создателем проекта, а Эккерт, с дипломом инженера-электрика, руководил инженерной частью. Позднее он вспоминал: «Физик — это тот, кто занят поиском истины, а инженер — это тот, кто озабочен тем, чтобы было сделано дело» [3]. Позитивную роль сыграл военпред лейтенант Герман Голдстайн (Herman Goldstine), обеспечивший финансирование проекта.

Ввод исходных данных производился с перфокарт, а программа (то есть расчетные формулы) — наборным полем со шнурами. Для промежуточных результатов требуется оперативная память, которая была реализована на триггерах, каждый из которых имеет две лампы. Компьютер использовал десятичную систему счисления и память на 20 десятичных чисел, каждое из которых хранилось в 36 лампах. Очевидно, что этого было совершенно недостаточно для загрузки даже простейшей программы. Общее число ламп превышало 17 000, вес компьютера составлял 30 т.

Желая увеличить размер памяти без нагромождения ламп, которые часто отказывали, Моучли и Эккерт анализировали различные пути, включая электронно-лучевые трубки (ЭЛТ) и ультразвуковые линии задержки, называемые также ртутными трубками. Такие трубки впервые были использованы Уильямом Шокли (William Shockley) в Bell Labs в 1942 г. для задач радиолокации [2 ,3, 4, 5, 6, 7, 8]. Ртутная трубка (рис. 1) содержит стеклянную трубку со ртутью (РТ), закрытую с двух концов пьезоэлектрическими приемником (П) и излучателем (И), на который подаются импульсы 1 или 0 от генератора (Г), подключенного ко входу записи [8].

Ртутная память

Рис. 1. Ртутная память

Приемник (П) через устройство считывания (УС) соединен с выходом, а также через цепь обратной связи и устройство стирания (С) с генератором (Г). На вход подается код сохраняемого двоичного числа, например 1101 (рис. 2а), который через время задержки t (в данном примере 1 мс) прохождения звукового сигнала по трубке поступает через устройство считывания (УС) на выход и одновременно по цепи обратной связи через генератор (Г) на излучатель (И) (рис. 2б).

Сигналы на входе и на выходе ртутной трубки

Рис. 2. Сигналы:
а) на входе;
б) на выходе ртутной трубки

Таким образом в рассматриваемой замкнутой цепи циркулирует бесконечно долго заданный код, который может быть стерт устройством стирания (С), размыкающим цепь обратной связи.

Для понимания действия такой памяти предположим, что трубка имеет длину 1,45 м, тогда при скорости звука в ртути 1450 м/с время задержки будет составлять t = 1 мс, являющееся временем доступа данного ОЗУ. При подаче на вход кода 1101 он будет считываться циклически бесконечно долго через время 1, 2, 3,… мс (рис. 2б).

Ртутная память была запатентована Моучли и Эккертом 1947 г. и практически реализована ими в 1949 г. с участием знаменитого математика Джона фон Неймана (John von Neumann) в модернизированном компьютере ENIAC, известном под именем EDVAC, работающем уже в двоичной системе счисления [2, 4]. Однако пальма первенства в создании компьютера с загружаемой программой на ртутных трубках принадлежит британскому ученому Морису Уилксу (Maurice Wilkes), имевшему докторскую степень по физике и построившему в Кембриджском университете компьютер EDSAC примерно на год раньше EDVAC, после посещения лекций в Пенсильванском университете по проектированию цифровых компьютеров [2, 3, 5, 7]. EDSAC имел 32 ртутные трубки с размером памяти 256 бит каждая при времени доступа 0,22 мс, что оказалось достаточным для загрузки целой программы (рис. 3) [7].

Уилкс с батареей ртутных трубок

Рис. 3. Уилкс с батареей ртутных трубок

Хотя ртутная память оказалась менее громоздкой, более дешевой, надежной и экономичной по сравнению с памятью на лампах, ее эксплуатация вызывала огромные трудности в связи с необходимостью точного поддержания температуры ртути на уровне +40 °C.

В начале 1960-х гг. эти трудности были во многом преодолены благодаря использованию магнито­стрикционных линий задержки [7]. Однако основным недостатком этого вида памяти было то, что считывание всех разрядов кода происходит не одновременно, а с задержкой, то есть доступ к памяти был последовательным, а не произвольным.

Первой памятью с произвольным доступом, позволяющим загружать всю программу, стала память на электронно-лучевой трубке (ЭЛТ), или трубке Вильямса, созданной в 1947 г. британскими учеными Фредди Вильямсом (Frederic Williams) и Томом Килбурном (Tom Kilburn) [3, 6, 7, 9, 10]. Толчком послужил визит профессора Манчестерского университета Вильямса (имеющего также докторскую степень Оксфордского университета) в США, где его подобно Уилксу познакомили с ENIAC и различными идеями расширения оперативной памяти, включая и память на ЭЛТ, изучаемую в Bell Laboratory. Во время войны Вильямс разрабатывал радио­локационные станции, поэтому сразу оценил перспективность идеи и вместе со своим аспирантом Килбурном создал в 1948 г. первый компьютер с электронно-загружаемой памятью SSEM (Baby) с размером памяти 256 кбайт.

Такое ОЗУ (рис. 4) содержит ЭЛТ с системой сканирования по горизонтали и вертикали (СС), устройство модуляции луча (УМ) и устройство считывания (УС), подключенное к металлической пластине считывания (ПС), закрывающей экран ЭЛТ с люминофором [7]. В точке попадания электронного луча на экран люминофор светится, однако поверхность экрана электрически нейтральна. Если же энергия луча увеличивается до некоторого порогового значения, возникает вторичная эмиссия, приводящая к выбиванию электронов и положительному заряду экрана в этой точке, образующей с пластиной (ПС) заряженный конденсатор.

Память на электронно-лучевой трубке

Рис. 4. Память на электронно-лучевой трубке

В режиме записи, модулируя энергию луча значениями высокого 1 и низкого 0 уровней и сканируя его, можно на доли секунды сформировать на экране точки, позитивно или нейтрально заряженные, наподобие перфокарты (рис. 5) [7]. При считывании экран сканируется лучом низкого уровня энергии, который не меняет заряд нейтральных точек, но нейтрализует заряд положительно заряженных точек, поскольку луч есть поток электронов.

Вид экрана ЭЛТ

Рис. 5. Вид экрана ЭЛТ

Это эквивалентно разряду конденсатора (ПС), воспринимаемому устройством считывания (УС) как значение 1. После этого весь экран приобретает нулевой заряд и его необходимо перезаписать повторным сканированием модулированным лучом. Следовательно, данное ОЗУ является динамическим (DRAM). При отключении перезаписи вся информация на экране стирается сама собой. Устройство было применено в первом в мире коммерческом компьютере с электронно-загружаемой памятью Ferranti Mark 1 (1951) [3, 9, 10]. Аналогичное устройство использовалось в одном из первых советских компьютеров М-1 (1952).

В 1946 году знаменитая компания RCA по инициативе фон Неймана начала разработку специальной многоэлектродной лампы Selectron для устройств компьютерной памяти размером от 32 до 512 байт [11]. Работа проводилась инженером Яном Райхманом (Jan Rajchman), выпускником Высшей технической школе в Цюрихе, в лаборатории Владимира Козьмича Зворыкина, имевшего диплом инженера-технолога Петербургского технологического институтаинститута и ставшего одним из создателей телевидения. Однако из-за технологических трудностей эта трубка так и не получила коммерческого применения. Другой выходец из России, имевший докторскую степень Калифорнийского университета Caltech, Андрей Васильевич Гайв создал в 1947 г. в морской исследовательской лаборатории США память на ЭЛТ с иным принципом действия, которая была применена в компьютере Whirlwind [12].

Общим недостатком всех рассмотренных устройств памяти было то, что в обесточенном состоянии они теряют всю информацию. Поэтому для сохранения программы нашла применение память на магнитном барабане, изобретенная в 1932 г. австрийским инженером Густавом Таушеком (Gustav Tauschek) [9, 13, 14]. Он известен своими патентами по счетным машинам с перфокартами и оптическим считыванием текста. Только компании IBM, с которой сотрудничал, он продал 169 патентов. Изобретенное им запоминающее устройство (рис. 6 и заставка к статье) имело размер памяти 62,5 кбайт.

Магнитный барабан

Рис. 6. Магнитный барабан

Оно представляло собой барабан (1), покрытый ферромагнитным материалом, имеющий несколько дорожек (2) для записи и считывания кода с помощью электромагнитных головок (3) [15]. Если предположить, что каждая дорожка имеет четыре перпендикулярно расположенные головки, а барабан вращается со скоростью 1000 об/с, то вид записываемого и считываемого кода аналогичен рис. 2а и б. Таким образом, время доступа к данной памяти будет также 1 мс. Однако реально скорость вращения барабана много ниже.

В конце 1940-х гг., на заре холодной войны, военно-морской флот США озаботился созданием машин для расшифровки советских связных кодов. Для этого американская компания Engineering Research Associates (ERA) спроектировала несколько специализированных вычислителей, для которых была разработана память на магнитном барабане (рис. 7) [9].

Магнитный барабан ERA с открытым корпусом

Рис. 7. Магнитный барабан ERA с открытым корпусом

Она имела барабан с дорожками диаметром 22 см и 200 головок записи и считывания. Электро­мотор на валу барабана со скоростью вращения 3500 об/мин обеспечивал время считывания не более 17 мс. Объем памяти 48 кбайт. Это оказалось достаточным для создания в 1950 г. первого в США компьютера с загружаемой программой Atlas, ставшего затем коммерчески доступным под именем UNIVAC 1101 [2]. В дальнейших модификациях скорость барабана была доведена до 17000 об/мин, а время считывания снижено до 3,4 мс [14].

В 1947 г. Эйкен применил магнитный барабан в компьютере Mark III на 4350 слов взамен релейной памяти Mark I. Магнитные барабаны использовались также и в первых советских компьютерах БЭСМ-1, М-20 и других [14]. Такие компьютеры назывались барабанными.

Идея магнитного барабана реализована также в магнитных кодовых абсолютных датчиках углового положения (энкодерах). Например, такой 9-разрядный датчик имеет девять дорожек, с первой из которых снимается один импульс за оборот барабана, а с последней, девятой, — 128 импульсов.

В качестве ПЗУ магнитные барабаны уступили в дальнейшем место более компактным магнитным дискам, удобным для мобильных приложений, например в бортовом оборудовании. [14]. Что касается ОЗУ, то все рассмотренные виды памяти оказались слишком дорогими и громоздкими и на смену им пришла память на магнитных сердечниках и полупроводниковая память, которые будут рассмотрены в последующих статьях.

Компьютер часто заменяет нам голову. Наполеон Бонапарт сказал: «Голова без памяти — все равно что крепость без гарнизона». Так что память — это важнейшая часть всякого компьютера.

Литература
  1. Микеров А. Г. Первые микропроцессоры // Control Engineering Россия. 2021. № 5.
  2. Казакова И. А. История вычислительной техники. Учебн. пособие. Пенза: Изд-во ПГУ, 2011.
  3. Айзексон У. Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию. М.: Corpus. 2015.
  4. en.wikipedia.org/wiki/ENIAC
  5. en.wikipedia.org/wiki/Delay_line_memory
  6. The Modern History of Computing.
  7. A history of storage media.
  8. Mercury Memory, Vacuum Tubes, & First Transistors — Computer History Museum Tour.
  9. Memory-storage.
  10. en.wikipedia.org/wiki/Storage_tube
  11. The history of computer data storage in pictures.
  12. Screen History: The Haeff Memory and Graphics Tube of 1940s Opened a New Era of Computing.
  13. en.wikipedia.org/wiki/Drum_memory
  14. Кузьминский М. Барабан был плох? // Открытые системы. № 04.
  15. The Electronic Mind — How it Remembers.

Добавить комментарий

Ваш адрес email не будет опубликован.