В статье есть тяжелые фото, так что убрал под спойлеры.

Введение


Проблема запоминания цифровой информации возникла раньше, чем появились собственно компьютеры. Перед тем, как говорить, о конкретных физических реализациях, введем терминологию.

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

С точки зрения организации доступа к данным память можно разделить на следующие несколько типов:

  • RAM – Random Access Memory, память со произвольным доступом. Можно прочитать или изменить любую ячейку.
  • ROM – Read-Only Memory, память, из которой можно прочитать любую ячейку но нельзя записать (Постоянное запоминающее устройство, ПЗУ).
  • FIFO – First In, First Out, память, в которую можно записать только сверху, а прочитать только снизу (в русских словах очередь).
  • Stack(LIFO) – Last In, First Out, Access память, доступ в которой на чтение и запись возможен только к верхнему элементу (мне очень нравится её советское название, магазин).
  • CAM — Content-addressable memory, память, адресуемая по содержимому (русское название — ассоциативная память).

Узоры на ткани


Впервые задача хранения и считывания данных из памяти была поставлена, а затем успешно решена для управления нитями в ткацком станке.

Ткацкий станок Фалькона
image

Ткацкий станок Фалькона. На переднем плане видны перфокарты, задающие рисунок ткани. Ссылка

Как же это работает? Рассмотрим сначала схему простейшего станка:

image
Ткацкий станок из Википедии

Идея проста, ремизки (c на рисунке) образуют зазор (зев в ткацкой терминологии) между нитями основы, которая подаётся с вала a (навоя), пропускается челнок i, нить из него прижимается при помощи бердо h, затем педалями e ремизки меняются местам и процесс повторяется. Полотно наматывается на товарный вал u. И все бы хорошо, но как быть, если хочется получить узор? Очевидным вариантом является индивидуальный подъём и опускание нитей основы в каждой итерации, при условии, что они разного цвета (например черные и белые). Такую конструкцию и предложил в 1725 году Базиль Бушон, а затем Жаном-Батист Фалькон в 1728 разработал систему автоматической подачи перфокарт. Разберем работу этого механизма на примере более позднего, но схожего по конструкции станка Жаккарда:

image
Схема машины Жаккарда из неплохой статьи про жаккардовы шторы

Вал 8 подаёт и прижимает очередную перфокарту. Иголки, сцепленные с крючками 1 прижимаются к ней, и некоторые попадают в отверстия перфокарты. Таким образом попавшие в отверстия иголки приподнимают соответствующие крючки, и их можно подцепить специальной планкой, тем самым образовав верхнюю ремизку, так как прикрепленные к крючкам нити 3 приподнимают соответствующие им нити основы 4. Те же нити основы, чьи крючки не попали в отверстия, под тяжестью отвесов 5 оказываются ниже, таким образом гравитация играет роль второй ремизки.

Автопортрет Жозефа Мари Жаккара
image

Автопортрет Жозефа Мари Жаккара, выполненный на его ткацком станке. Википедия

Таким образом мы получили первый ROM, который станет неотъемлемой частью первых компьютеров и доживет до начала 80-х годов.

Первые байты


Итак, настал 20-й век, появились первые компьютеры, а в месте с ними и необходимость в RAM. Одними из первых с этой проблемой столкнулись Джон Винсент Атанасов и Клиффорд Берри, когда в 1939 году начали собирать свой ABC, Atanasoff-Berry Computer. Это было одно из первых цифровых электронных вычислительных устройств.

image
Общий вид ABC, утащенный из NYT

Для временного хранения переменных в этом компьютере использовался прадедушка современный оперативной памяти, вращающийся барабан, состоящий из 50 строк по 32 конденсатора. Отрицательный заряд конденсатора задавал логическую единицу, а положительный — логический ноль. Адресовалась такая память временем ожидания прокручивания барабана, причем каждое считывание уничтожало данные, поэтому всякий раз приходилось их перезаписывать.

Оригинальный барабан с ABC
image

Оригинальный барабан с ABC, взято отсюда.

image
Фрагмент реплики барабана ABC оттуда же. Видны контакты и сами конденсаторы

О дальнейшей судьбе такой памяти и её расцвете в наши дни есть статья в Википедии.

Север Кинескопы помнят


В 40-е годы, во время появления первых ЭВМ, еще не существовало, как в наши дни, набора накатанных решений и технологий, что приводило к появлению очень необычных конструкций. Одна из них — трубка Уильямса. Она представляла из себя кинескоп, на люминофоре которого, зависимости от того, какое значение нужно запомнить, «1» или «0», засвечивалось тире или точка. Когда надо было считать значение, электронный пучок направлялся на тоже самое место и по эмиссии электронов, при помощи установленного рядом с кинескопом электрода выяснялось, что было записано.

image
Прототип трубки Уильямса с Википедии

Записанные данные на экране кинескопа трубки Уильямса
image

Записанные данные на экране кинескопа трубки Уильямса с Википедии

Как правило, ячейки памяти в трубках Уильямса были однобитными, и для того, чтобы оперировать многобитными словами, они работали параллельно по числу бит.

image
Блок-схема трубки Уильямса отсюда

Для чтения адрес подавался на ADDRESS REGISTER, затем луч электронной пушки в WILLIAMS TUBE наводился в соответствующее место, происходило считывание и данные через усилитель REGENERATION AMPLIFIER попадали в выходной регистр SHIFT REGISTER, и, если была прочитана единица, обратно в трубку, т.к. нужно было восстановить утерянные данные. Трубки Уильямса прожили короткую, но бурную жизнь, попав во многие первые западные и отечественные ЭВМ. Аналогичный подход использовался в другом ЭЛТ-запоминающем устройстве селектрон, предложенном в 1946 году Жаном Райхманом.

Селектрон
image

Селектрон отсюда

В этой огромной радиолампе информация хранилась в щелях, покрытых люминофором, которые, в зависимости от заряда, пропускали или не пропускали электроны с «читающей» электронной пушки, которые в свою очередь попадали или не попадали в слой фосфора, из которого и выбивали искомые цепями считывания электроны. На тот момент времени это была одна из самых плотных и самая быстрая память, но и её век был недолог.

Ртутью можно не только температуру мерять


Как можно уже догадаться по предыдущей главе, в 40-е годы «помнить» пытались заставить всё что угодно. Не стали исключением и волны в среде. Поскольку чуть раньше компьютеров мощное развитие получили средства радиолокации (о них очень хочу написать отдельную статью), то их элементная база сразу обратила на себя внимание пионеров цифровой эры. Одним из таких устройств стали линии задержки.

В радиолокационных станциях они использовались для фильтрации сигнала от неподвижных объектов. Из ответа на N-й импульс РЛС вычитался задержанный ответ на N-1-й импульс и таким образом не нулевыми оказывались только отклики от движущихся объектов, что позволяло избавиться от шумов, которые создавали отраженные рельефа радиоволны. Но постойте! А что если мы запустим сигнал в линию задержки и замкнем вход на выход? Это же будет память! Примерно такая мысль и пришла в голову Джону Экерту младшему. В качестве линии задержки использовалась колба со ртутью, на концах которой были установлены пьезокристаллы, один для возбуждения колебаний, второй для их считывания.

image
Упрощенная схема ячейки памяти на ртутной линии задержки. Взято отсюда

Очевидно, что таким образом можно хранить не один бит, а целую пачку, чем успешно и пользовались. Однако вскоре и эта память потеряла свою актуальность.

Прямо как магнитом помнит

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

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

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

Запись на такие устройства происходила очень просто. В определённое место подавалось магнитное поле, сила которого кодировала единицу или ноль. Считывание информации происходило при помощи т.н. магнитной головки, в которой, когда она с некоторой скоростью проходила мимо участка с записанными данными, из-за изменения магнитного поля возникал индуцированный ток, сила которого зависела от силы магнитного поля. Аналогичным способом работали и ленточные накопители. Что интересно, современные жесткие диски используют иной принцип запоминания и считывания информации. Какой — повод для отдельной статьи.

В предыдущих главах, о тёплой ламповой памяти, я упоминал, что прожила она недолго. Но кто же пришел ей на смену? И ответ снова магнитная память, на сей раз в виде памяти на ферритовых кольцах. Ферриты обладают очень полезным свойством, гистерезисом намагниченности, т.е. они могли находиться в двух фиксированных состояниях, что нам и надо.

image
Схема блока адресуемой памяти на ферритовых кольцах отсюда

Для записи кольца F в проводники $x_3$ и $y_2$ подаётся ток, который образует поле H/2 вокруг каждого из проводников, при условии, что только величины H достаточно для изменения намагниченности ферромагнитного кольца, а намагниченность попавшихся на пути колец C, D и E после выключения тока вернется к исходным значениям за счет явления гистерезиса намагниченности. Теперь нам нужно считать данные. Для этого на целевое кольцо подаётся ток записи «0». Если была записана единица, то магнитное поле в данном кольце изменит своё направление, в проводнике S наведется импульс тока, а если там и был «0» то тока не будет. Таким образом мы узнали, что было записано. Разумеется, как и в трубке Уильямса, придётся вернуть единицу на место. На долгие годы этот тип памяти будет безраздельно властвовать в компьютерах. По одной из версий именно ему мы обязаны термином «прошивать память», из-за способа производства, ручного прошивания колец проводами как-то так:

Плата ОЗУ
image

Плата ОЗУ, на 11560 бит, разбитых на 20 матриц формата 34х17. Применялась в алфавитно-цифровом терминале с векторным отображением символов РИН-609; производитель — предположительно, одно из предприятий Армении. Оттуда же.

Заключение


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

Комментарии (13)


  1. vital72
    25.09.2019 20:15

    Random Access Memory — память не со случайным доступом, а с произвольным доступом, т.е. мы можем получить доступ к произвольной ячейке, а не случайной.


    1. neonkainside Автор
      25.09.2019 20:53

      Просто привык так переводить, но вы правы, поправлю.


    1. Xobotun
      25.09.2019 20:56

      Да, меня в подобных ситуациях улыбает упоминание «специального инструмента». Как будто есть случайный – надо просверлить стену, берём случайный инструмент, например, люксометр, – и давай сверлить.

      Конечно же, я понимаю, что есть ещё и универсальный инструмент, но всё равно весело. :)


  1. Drobotun
    25.09.2019 21:09
    +1

    На ферритовых кольцах, реализовывалось ОЗУ (RAM), а для ПЗУ (ROM) использовались т. н. БИАКСы dic.academic.ru/dic.nsf/bse/69161/Биакс


    1. neonkainside Автор
      25.09.2019 21:12

      Даже в руках держал такие девайсы от одного советского компьютера, но совершенно забыл, когда писал, надо будет добавить на досуге, спасибо.


    1. Dimsml
      26.09.2019 11:08

      Биаксы от обычных колец отличаются только тем, что информация на кольцах при чтении уничтожается, поэтому её нужно обновлять.


      Биаксы же при чтении не очищаются, но их всё равно можно перезаписать, поэтому это всё-таки не ROM.


      Тем более, отдельно существует ROM на магнитных сердечниках, там они используются как простые трансформаторы, намагниченность не считывается. Они были, например, в бортовых компьютерах "Аполлонов".


  1. Exchan-ge
    25.09.2019 22:45

    Плата ОЗУ


    Мне как-то в нашем ВЦ (в 1988 г.) попалась плата примерно 200х100 мм, на которой были рядами установлены ферритовые кольца с проводами.
    Но, в отличии от вашего фото — кольца были диаметром примерно 8 мм и их на плате было всего несколько десятков.
    Интересно, что это было и частью какого компьютера все это могло быть (предполагаю Минск 22)


  1. eugene_brad
    25.09.2019 23:02

    Резануло

    причем ферриты не простые, а те, которым был свойственен гистерезис намагниченности

    Насколько я знаю, нет ферритов без гистерезиса. Разные марки просто обладают разным по форме и площади гистерезисом.


    1. neonkainside Автор
      26.09.2019 21:28

      Исправил, спасибо.


  1. nochkin
    26.09.2019 02:23

    В статье есть тяжелые фото, так что убрал под спойлеры.

    Фото от этого легче ведь не стали :-)

    А за статью спасибо. Ткацкий станок на «перфокартах» особенно понравился.


    1. neonkainside Автор
      26.09.2019 21:29

      Фото от этого легче ведь не стали :-)

      Но статья без них легче, а все схемы я оставил. Фотки скорее так, для таких же как я любителей всякой древности :)


      1. nochkin
        27.09.2019 02:20

        И статья не легче. Фотки ведь всё равно загружаются.


  1. glowingsword
    26.09.2019 11:46

    Очень люблю старое железо и комплектующие разглядывать. Кто-то в музеи ходит и на картины с полуобнажёнными людьми, природой и зверьками пялится, и что-то там такое видит… А я люблю на артефакты древних технологий пялиться, для меня именно они — настоящее искусство. Спасибо за замечательную статью!