Немного истории: как компьютеры помнили

Ферритовые кольца

Первым компьютерам нужна была память, которая быстро пишется, быстро читается и не забывает при выключении. В 1953 году в Массачусетском технологическом институте компьютер Whirlwind получил память на ферритовых кольцах (группа Джея Форрестера), и следующие двадцать лет почти все компьютеры помнили именно так.

Кольцо из феррита размером с маковое зерно можно намагнитить по часовой стрелке или против — это и есть бит.

провод X: ½ токапровод Y: ½ токапровод чтения½ + ½ = 1:только здесь кольцоперемагничиваетсяпо часовой = 1, против = 0все три провода — сквозь отверстие кольца
Ферритовое кольцо — один бит: намагничено по часовой стрелке или против. Сквозь отверстие кольца продеты провод X, провод Y и провод чтения. По X и по Y идёт половина тока, нужного для перемагничивания, — перемагнитится только то кольцо, где встретились оба половинных тока. Если кольцо перевернулось, в проводе чтения проскакивает импульс.

Чтобы выбрать одно кольцо из тысяч, придумали совпадение токов: по каждому проводу пускают только половину тока, нужного для перемагничивания. Кольцо перевернётся только там, где встретились два провода.

X0X1X2X3Y0Y1Y2Y3Y4Y5X1 и Y3 — по ½ тока:перемагничено однокольцо из 244 провода X — по строкам,6 проводов Y — по столбцам;сквозь каждое кольцо —один X и один Y
Плоскость памяти: кольца на пересечениях проводов. Провод X прошивает все кольца своей строки, провод Y — все кольца своего столбца. Адрес выбирает один X и один Y — перемагничивается только кольцо на их пересечении. Плоскость 64×64 — 4096 бит. Такие плоскости плели вручную: продевали тонкие провода сквозь кольца размером с маковое зерно.

Чтение разрушало бит: чтобы узнать, что в кольце, его пытались записать в 0 — если в проводе чтения проскакивал импульс, значит, там была 1, и её тут же записывали обратно. Зато при выключении кольца ничего не забывали.

Плоскости памяти плели руками: продевали тонкие провода сквозь кольца под микроскопом. Тысячи часов кропотливой работы на каждый килобайт.

ПЗУ, сплетённое руками

У бортового компьютера «Аполлона», который в 1969 году вёл корабль к Луне, была и постоянная память — тоже на кольцах, но устроенная иначе:

слово1сквозь0мимо1сквозь1сквозь
ПЗУ, сплетённое руками: память программ бортового компьютера «Аполлона». Провод, продетый сквозь кольцо, — это 1, проведённый мимо — 0. Программу не записывали, а вплетали на фабрике; изменить её значило переплести.

Программу не записывали, а вплетали на фабрике. Ошибку в программе исправляли перешиванием.

Память на кристалле

В 1969 году молодая фирма Intel выпускает первые микросхемы памяти: 3101 на 64 бита и 1101 на 256 бит — статическая память (SRAM): каждый бит держат транзисторы, пока есть питание. В 1970 году выходит Intel 1103 — динамическая память (DRAM) на 1024 бита. Бит в ней — это заряд маленького конденсатора; заряд утекает, поэтому память всё время «подзаряжают», перечитывая и перезаписывая. Зато ячейка крошечная, и уже через пару лет 1103 стала самой продаваемой микросхемой в мире — ферритовые кольца ушли.

Ячейку из одного транзистора и конденсатора придумал Роберт Деннард из IBM (1966). Почти вся оперативная память компьютеров и телефонов до сих пор устроена так.

Почему наша ячейка такая большая

кольцомагнит1950–70SRAM6 транзисторовдва инвертораDRAM1 тр. + конденсаторзаряд утекаетнаша22 транзистораDLatch + ANDDLatch
Чем хранят бит. Ферритовое кольцо — намагниченностью. Статическая память (SRAM) — двумя инверторами, держащими друг друга, плюс два ключа: 6 транзисторов. Динамическая (DRAM) — зарядом конденсатора за одним транзистором; заряд утекает, поэтому её постоянно обновляют. Наша ячейка — защёлка из вентилей первого набора и «кран»: 22 транзистора.

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

Поэтому наша ячейка — защёлка из вентилей первого набора плюс «кран» AND: 22 транзистора вместо 6. Она честно хранит бит, работает в любом режиме симулятора и собрана из деталей, которые вы уже знаете. А общий провод данных мы заменим вентилями ИЛИ — почему, станет видно в уроке 2.

А в Game & Watch?

У микроконтроллера Sharp SM5, который стоит в Game & Watch, память тоже статическая и лежит прямо на кристалле, рядом с процессором: несколько десятков байт 4-битных ячеек. Часть ячеек — это сегменты экрана: записал бит — сегмент загорелся. Ровно так устроена и экранная память нашей машины.