В 1970 году МОП-микросхемы памяти только начинали набирать популярность, но всё ещё стоили очень дорого. Годом ранее Intel выпустила свой первый продукт — микросхему статического ОЗУ (SRAM) 3101 на 64 бита.[примеч.1] За эту микросхему (памяти в ней хватило бы, чтобы сохранить слово «aardvark») пришлось бы заплатить 99,50 доллара.[примеч.2] Чтобы избежать таких астрономических цен, некоторые компьютеры использовали более дешёвую альтернативу: память на регистрах сдвига. Микросхема сдвигового регистра Intel 1405 обеспечивала 512 бит хранения, то есть в 8 раз больше, чем их микросхема ОЗУ, и по заметно более низкой цене.[примеч.3][примеч.4] В памяти на регистре сдвига биты бесконечно «ходят по кругу», и в каждый момент времени доступен только один бит. Главный недостаток в том, что нужно ждать, пока «подъедет» нужный бит, и это может занять до половины миллисекунды.
Один из компьютеров, где использовалась память на регистрах сдвига, — Datapoint 2200. (Это очень интересная машина: процессор 8008 создавался для неё, следуя архитектуре, заданной Datapoint, но это тема для отдельной статьи.) В Datapoint 2200 на каждой плате памяти стояло 32 регистра сдвига, что давало 2 Кбайт хранения. На процессорной плате использовался счётчик, который отслеживал текущую позицию в регистре сдвига, и обработка останавливалась до тех пор, пока не становились доступны нужные биты. (Похоже на промах кэша в современных процессорах.)
Я раздобыл плату дисплея от Datapoint 2200[примеч.5], где для памяти дисплея применяются регистры сдвига Intel 1405. На этой плате установлено 14 регистров сдвига, и она хранит 896 байт.[примеч.6] Память на регистрах сдвига хорошо подходила для платы видеовывода, поскольку логике нужно было последовательно обращаться к каждому символу, чтобы вывести его на экран.

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

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

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

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

На изображении ниже показаны ячейки регистра сдвига при большом увеличении. Слева — реальная фотография кристалла, справа подписаны его элементы. Биты движутся вправо через нижнюю половину изображения, а затем возвращаются влево через верхнюю половину.
Большие U-образные фигуры внизу — это транзисторы (красные «T»), которые формируют инверторы (показаны жёлтым). Между каждым инвертором находится проходной транзистор, который управляет передачей битов от одного инвертора к следующему. Первый «T» подключён к такту 1 и позволяет биту перейти от первого инвертора ко второму, когда активируется такт 1. Следующий «T» подключён к такту 2 и продвигает бит ещё на один шаг при такте 2. Когда тактовые линии с��абатывают по очереди, биты шаг за шагом проходят через регистр сдвига.
Микросхема использует технологию кремниевого затвора. Это было важное нововведение в проектировании микросхем, разработанное в 1968 году в Fairchild Федерико Фаджином (он также разработал Z80), и позже ставшее одной из ключевых технологий Intel. В этой технологии в качестве затворов транзисторов используется поликремний, а не алюминий, как в более ранних МОП-микросхемах. По ряду причин это сделало микросхемы значительно быстрее и упростило их производство.
На изображении ниже поликремний отмечен синим. Там, где он перекрывает лежащий под ним легированный кремний, образуется транзистор (красная «T»). Горизонтальные серые линии — это металлический слой с линиями питания и тактовыми сигналами. Кружками отмечены соединения между разными слоями.[примеч.7]

Драйвер тактовых сигналов
На плате дисплея ниже установлено 14 регистров сдвига в круглых металлических корпусах. Но справа видна огромная металлическая «банка» — что это за микросхема? Оказывается, это драйвер, который формирует тактовые сигналы для регист��ов сдвига, и внутри он устроен довольно интересно.
Для сдвига данных регистрам требуются два чередующихся тактовых сигнала. Эти сигналы не должны перекрываться, иначе данные собьются. Кроме того, из-за старой технологии регистрам сдвига нужны тактовые импульсы уровнем до 30 В. Наконец, чтобы раскачать все микросхемы, тактовым сигналам требуется большой ток (500 мА). Чтобы соблюсти эти требования, для генерации тактовых сигналов используется специальная микросхема-драйвер. Это Fairchild SH0013-C «Двухфазный МОП-драйвер тактовых сигналов».[примеч.8]

Я ожидал увидеть внутри микросхемы драйвера тактовых сигналов кристалл с крупными транзисторами, но вскрытие показало совсем другое. Внутри находится гибридная интегральная схема, собранная из восьми отдельных кремниевых кристаллов, установленных на миниатюрную печатную плату и соединённых золотыми дорожками и золотыми проволочками. Кроме того, на плату нанесены толстоплёночные резисторы — это чёрные элементы в форме «E» на изображении ниже.
Интерактивный просмотр
Изображение и принципиальная схема[примеч.8] ниже позволяют интерактивно изучить драйвер тактовых сигналов SH0013. Нажмите на компонент, чтобы увидеть, где он расположен на плате и на схеме (выделение появится на обоих). В поле ниже будет приведено описание выбранного компонента.
Заключение
Сегодня использовать регистры сдвига в качестве памяти кажется странным, но в 1970 году это был экономичный способ реализовать хранение данных. Взгляд внутрь микросхемы сдвигового регистра показывает, как они работают и почему их можно было сделать дешевле, чем ОЗУ. Для формирования мощных тактовых сигналов требовалась специальная микросхема-драйвер, которая, как выясняется, представляет собой гибридную сборку с миниатюрными полупроводниками и резисторами на печатной плате внутри большого металлического корпуса микросхемы.
Примечания и ссылки
[1] Разумеется, Intel не изобрела микросхему памяти. В 1960-х микросхемы памяти выпускали многие компании. Например, Texas Instruments объявила о биполярной микросхеме памяти SN5481 в 1966 году (Electronics, V39 #1, стр. 151), а у Transitron были 16-битные ОЗУ TMC 3162 и 3164 (Electrical Design News, том 11, стр. 14). В 1968 году RCA сделала 72-битные КМОП-память для ВВС США (документ, фото). Ли Бойсел в 1968 году собрал в Fairchild 256-битные динамические ОЗУ, а в 1969 году в Four Phase Systems — динамические ОЗУ на 1K бит (1970 — MOS Dynamic RAM Competes with Magnetic Core Memory on Price и презентация Бойсела). Подробнее об истории технологий памяти см. «1966 — Semiconductor RAMs Serve High-speed Storage Needs» и «History of Semiconductor Engineering», стр. 215. Ещё один источник по истории памяти — «To the Digital Age: Research Labs, Start-up Companies, and the Rise of MOS Technology», стр. 193.
[2] Изначально микросхемы памяти были очень дорогими, но цены быстро снижались. В журнале Computer Design, том 9, стр. 28 (1970) сообщалось о снижении цены на 3101 с 99,50 до 40 долларов при небольших объёмах. В Electrical Design News, том 15 (1970) приводилась стартовая цена 1405: 13,30 доллара при партии 100 штук. Иронично, но сегодня Intel 3101 стала коллекционной вещью и на eBay стоит намного дороже исходной цены — сотни долларов за нужный вариант корпуса.
[3] Даташит на регистр сдвига 1405A доступен на Intel-vintage.info или в каталоге данных Intel за 1976 год (на archive.org).
[4] Микросхемы памяти на регистрах сдвига выпускали многие компании. Например, в 1969 году Philco (производитель электроники, принадлежавший Ford Motor Company) заявлял, что у неё самый длинный коммерчески доступный регистр сдвига на 256 бит (Electronic Design, том 17, стр. 251). Дополнительную информацию о памяти на регистрах сдвига см. в статье Дона Ланкастера за декабрь 1974 года в Radio-Electronics: «How it works: IC MOS shift registers».
[5] Плату дисплея Datapoint я купил на eBay у Zuigadrummer, которая сейчас также продаёт другие платы Datapoint. Она очень помогла мне, и я могу её рекомендовать.
[6] Дисплей Datapoint 2200 выводил 12 строк по 80 символов. Память дисплея хранила 1024 7-битных ASCII-символа. Пара регистров сдвига обеспечивала 1024 бита хранения, всего использовалось 7 таких пар.
[7] Для тех, кто хочет разобраться в деталях топологии… Символы резисторов на самом деле не резисторы, а транзисторы предзаряда, тактируемые сигналом, которые подтягивают выходы инверторов к высокому уровню. Через несколько лет в МОП-микросхемах вместо них стали использовать транзисторы обеднённого типа.
Металлические прямоугольники образуют соединения между слоем кремния и слоем поликремния. Вскоре этот приём вытеснили «скрытые контакты», которые соединяли два слоя напрямую, без использования металлического слоя. Это упрощало топологию, поскольку металлический слой можно было использовать для межсоединений, не «разрывая» его такими контактами.
Серые пятна показывают нелегированный кремний, который можно считать непроводящим. Легированный кремний проводит ток, кроме мест, где его перекрывает поликремний и образуется транзистор. Легированный и нелегированный кремний на фотографии кристалла сложно различить, но граница между ними видна как слабая чёрная линия. Поликремний на фотографии заметен гораздо лучше: он оранжевый, а там, где образует транзистор, красный. Эти цвета обусловлены толщиной слоёв.
[8] Даташит на тактовый драйвер SH0013 есть в каталоге Fairchild «Linear Integrated Circuits Data Catalog» за 1973 год, стр. 6-126. Даташит на эквивалент MH0013 приведён в справочнике National «MOS Integrated Circuits» за 1972 год, стр. 123.
Читайте другие выпуски:
Невидимая оборона 386: как защищены входы и выходы процессора
Как сделать реверс-инжиниринг аналоговой микросхемы: FM-радиоприёмник TDA7000
Схемотехника стека сопроцессора Intel 8087 для чисел с плавающей запятой: реверс-инжиниринг
Два бита на транзистор: ПЗУ микрокода повышенной плотности в FPU-сопроцессоре Intel 8087

Если хочется понимать такие кристаллы и платы глубже, полезно собрать своё устройство руками. На курсе «Разработчик встраиваемых систем (Embedded Developer)» разбираем ядра, память, прерывания и периферию, работаем с FreeRTOS и шинами I2C/SPI/UART, доводя прототип до отладки и платы. Чтобы узнать, подойдет ли вам программа курса, пройдите вступительный тест.
Для знакомства с форматом обучения и экспертами приходите на бесплатные уроки:
10 марта, 20:00. «ESP32: Инженерный детектив — расследуем мифы трассировки. Можно ли гнуть под 90°?». Записаться
17 марта, 20:00. «Выравнивание данных в C++: как память влияет на скорость и эффективность программ». Записаться
24 марта, 20:00. «/proc, /sys, /dev: как Linux превращает железо и процессы в файлы». Записаться
