Использование простейших микросхем в конструкции ранних ЕС ЭВМ

в 12:34, , рубрики: ЕС ЭВМ, история вычислительной техники, применение микросхем ТТЛ, схемотехника

Серия статей Дмитрия Руднева (эта и др.) натолкнула меня на мысль написать заметку о реальном использовании простых микросхем 155-й серии в отечественных вычислительных машинах начала 1970-х годов — в первую очередь, ЕС-1020 (1971 год), по которой имеется довольно подробная литература.

Практически вся логическая часть процессора этой машины, как и создаваемой одновременно с ней более мощной ЕС-1030, была построена всего на девяти типах только-только освоенных производством микросхем 155-й серии, в те годы (первая половина 1970-х) носивших обозначения К1ЛБ551, К1ЛБ552, К1ЛБ553, К1ЛБ554, К1ЛБ556, К1ЛБ557, К1ЛР551, К1ЛР553 и К1ЛП551. В 1975-м году была принята новая система обозначений, используемая с некоторыми расширениями и доработками до сих пор; перечисленным старым обозначениям соответствуют К155ЛА1, ЛА2, ЛА3, ЛА4, ЛА6, ЛА7, ЛР1, ЛР3 и ЛД1. В дальнейшем я буду использовать только привычные новые обозначения, для краткости опуская обозначение серии.

Триггеры

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

RS-триггеры и полярность входных сигналов

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 1

Простейший асинхронный RS-триггер, описанный в упомянутых выше статьях, состоит из двух элементов 2И-НЕ, т. е. из половины микросхемы ЛА3, в состав которой входит четыре таких элемента. Отличительной особенностью этого триггера является использование инвертированных входных сигналов: переключение состояния происходит, когда на один из входов подаётся низкий уровень (логический нуль), а при подаче на оба входа высокого уровня (единицы) триггер сохраняет своё состояние.

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 2

Иногда желательно, чтобы активным уровнем сигнала был высокий; соответственно, требуется триггер с неинвертированными входами. Самым очевидным и прямолинейным решением было бы добавить инверторы к инвертированным входам RS-триггера. Один инвертор можно получить из элемента И-НЕ с любым числом входов, просто объединив входы между собой; соответственно, на одной микросхеме ЛА3 можно построить либо два RS-триггера с инвертированными входами, либо один с неинвертированными. Однако наличие инверторов увеличивает время переключения триггера: сигналу требуется пройти ещё один уровень логики. Довольно часто такие дополнительные «тормоза» роли не играют, но, очевидно, бывают случаи, когда лишние задержки нежелательны. В этом случае можно было бы собрать RS-триггер из двух элементов 2ИЛИ-НЕ, однако на тот момент соответствующие микросхемы (ЛЕ1) ещё не производились, поэтому в роли элементов 2И-НЕ использовались элементы 2,2И-2ИЛИ-НЕ (ЛР1), у которых оба входа каждого из элементов И объединены. Заметим, что оба способа реализации RS-триггера с неинвертирующими входами требуют одинакового числа корпусов микросхем (одна штука; в ЛР1 имеется два элемента).

Несколько управляющих сигналов

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 3

Иногда триггер должен устанавливаться или сбрасываться не единственным сигналом, а одним из нескольких альтернативных, т. е. должен иметь несколько входов сброса и/или установки. Несколько сигналов можно объединить в один, поступающий на триггер, с помощью дополнительных элементов; если используется уже готовая микросхема триггера, почти всегда так и приходится делать (и увеличивать время задержки за счёт лишних слоёв логики). Однако, собирая триггер из логических элементов, имеется и другой путь: вместо элементов 2И-НЕ можно применять элементы с большим числом входов. Например, соединив вместе элемент 8И-НЕ (ЛА2) и 2И-НЕ, можно получить триггер, переводимый в одно из состояний только одним сигналом, а в другое — любым из семи.

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 4

В случае триггера с неинвертированными входами аналогичный эффект, очевидно, достигается использованием элементов 2,2,2,3И-4ИЛИ-НЕ (ЛР3): каждый элемент позволяет организовать три управляющих входа. Однако имеется и альтернативный, более экзотический вариант, позволяющий ещё больше увеличить число входов: применение микросхемы расширителя ЛД1. Она может быть подключена как к единственному элементу микросхемы ЛР3, так и к одному из двух элементов ЛР1 (второй элемент не имеет входов расширения). По своей логической сути расширитель — это дополнительный элемент 4И, подключаемый к элементу ИЛИ-НЕ внутри ЛР1 или ЛР3 (на схемотехническом уровне это, однако, не готовый логический элемент, а лишь его входной каскад, сравните схемы элементов ЛР1 и ЛД1). Если бы транзисторы и соединительные линии были идеальными, расширитель позволял бы неограниченно увеличивать число входов элемента ИЛИ-НЕ, однако реальность куда более сурова, поэтому максимальное количество элементов расширения, подключаемых к одному базовому элементу ЛР1 или ЛР3, ограничено, если не изменяет память, восемью.

Управление управлением

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 5

Использование для построения RS-триггера элементов И-ИЛИ-НЕ вместо И-НЕ даёт возможность бесплатно (без дополнительных элементов) расширить возможности управления триггером: поскольку сигнал сброса или установки поступает на элемент ИЛИ-НЕ не прямо, а через «встроенный» элемент 2И (либо 4И, если используется ЛД1), остальные входы элемента И можно не соединять с первым, «упраздняя» тем самым элемент И как таковой, а использовать их для разрешения или блокирования действия управляющего сигнала (если на втором входе удерживается логический нуль, состояние первого входа будет безразличным). Для триггеров на базе элементов И-НЕ потребуются дополнительные элементы, что влечёт увеличение времени срабатывания и, к тому же, превратит управляющие входы в неинвертирующие. Оба способа реализации триггеров со входом разрешения позволяют легко реализовать наряду с синхронными (блокируемыми сигналом разрешения) и асинхронные сигналы сброса и установки, причём последние будут инвертированными независимо от того, на каких элементах построен триггер.

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

D-триггеры

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 6

RS-триггеры весьма широко используются для хранения состояний и управляющей информации, однако для хранения обычных данных не всегда неудобны, поскольку для установки и сброса RS-триггера используются разные сигналы. Эта проблема решается с помощью D-триггеров типа «защёлка» (latch по-английски). При активном значении синхросигнала C такой триггер передаёт на свои выходы состояние входа данных D (т. е., если состояние линии D меняется при активном уровне на C, состояния выходов триггера тоже меняются), а при переходе синхросигнала в неактивное состояние происходит «защёлкивание» установленной в этот момент на линии данных информации. Схемотехнически такой триггер обычно собирается либо из четырёх элементов 2И-НЕ, либо из одного элемента 2,2И-2ИЛИ-НЕ и пары инверторов, в свою очередь, собранных, как правило, из элементов 2И-НЕ. По расходу места на печатной плате оба варианта потенциально равнозначны (половина микросхемы ЛР1 и половина ЛА3 против одной целой микросхемы ЛА3).

DV-триггеры

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 7

Название «DV-триггер» встречается нечасто, хотя в 1970-х в отечественной литературе оно было весьма популярно. За ним скрывается обычный триггер-защёлка, имеющий дополнительный вход V, разрешающий изменение его состояния. По сути, вход разрешения V ничем не отличается от тактового входа C: изменение состояния триггера происходит, когда оба этих входа активны. Схемотехнически такой триггер получается заменой в обычном D-триггере двух входных элементов 2И-НЕ на 3И-НЕ (ЛА4). На основе доступных на тот момент элементов И-ИЛИ-НЕ построить подобный триггер столь же эффективным способом было невозможно: для него требуется трёхвходовые элементы И, а в наличии были только двухвходовые. Конечно, совместно с ЛР1 можно использовать расширитель ЛД1 с его четырьмя входами, но такое решение требует большего числа корпусов микросхем.

Счётные триггеры

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 8

Счётный триггер меняет своё состояние на противоположное при каждом перепаде тактового импульса; он является основой счётчика. Технически такой триггер собирается из двух последовательно включённых тактируемых RS- или D-триггеров, что в англоязычной литературе раньше именовалось совершенно неполиткорректным термином «master-slave» (в отечественной литературе — «мастер-помощник», «ведущий-ведомый», «основной-вспомогательный»). Пока «хозяин» меняет своё состояние на противоположное при высоком уровне на входе C, «раб» удерживает свои выходы в стабильном состоянии, поскольку на него подаётся инвертированный сигнал C. При смене уровня синхросигнала триггеры меняются ролями: «хозяин» хранит запомненное обновлённое состояние, а «раб» — переходит в него. Счётные триггеры одинаково легко (и с одинаковыми затратами корпусов микросхем: два корпуса на собственно два триггера плюс ещё четверть ЛА3 в качестве инвертора) собираются и на элементах И-НЕ, и на элементах И-ИЛИ-НЕ.

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 9

Регистры и счётчики

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 10

Дешевизна (в смысле меньшего количества необходимых логических элементов) RS-триггеров по сравнению с триггерами других типов побуждала конструкторов как можно более широко использовать именно их. Типичный регистр, принимающий данные с некоторой шины, в собранных на «рассыпухе» машинах состоит не из «современных» D-триггеров, принимающих информацию со входа D по фронту синхросигнала (общепринятое русское название для них так и не придумали, обычно называя просто D-триггерами, а сейчас нередко используют английское — flip-flop; такие триггеры, конечно, не являются современным изобретением — в 1960-х они уже точно встречались, но довольно редко в силу своей относительной сложности) и даже не из защёлок, а из «честных» тактируемых RS-триггеров.

«Секрет» заключается в том, что в ранних машинах информация по шинам очень часто передавалась с использованием так называемых парафазных сигналов, внешне напоминающих современные дифференциальные пары: если по одному проводу передаётся высокий уровень, то по второму — низкий, и наоборот. Сходство, однако, чисто внешнее: если логическое значение дифференциального сигнала (1 или 0) определяется разностью напряжений на передающих его линиях, а напряжения каждой из линий пары сами по себе безразличны (в разумных пределах, конечно), то в случае парафазного сигнала обе образующих его линии технически являются совершенно независимыми сигналами с обычными логическими уровнями, просто один из них всегда инвертирован по отношению к другому. Благодаря этому парафазные сигналы могут напрямую управлять RS-триггерами, а их формирование, как правило, не требует дополнительных аппаратных затрат: на вход одного регистра зачастую поступает информация с выхода другого регистра, а соответственно, прямое и инверсное значения каждого бита уже имеются.

Дополнительным бонусом от использования парафазных сигналов являются расширенные возможности контроля правильности передачи информации: если на момент приёма данных обе линии парафазного сигнала имеют одинаковое значение, значит, что-то где-то сломалось. Впрочем, организация аппаратного контроля работы машины — отдельная тема.

Довольно остроумно решается и проблема приёма и хранения данных, считываемых из памяти, с минимальными затратами оборудования. Регистр данных тоже строится на RS-триггерах, причём на сей раз самых простых — даже без входа тактирования. В начале цикла считывания все триггеры регистра сбрасываются в нуль (сигналом сброса в данном случае может служить сигнал занесения адреса в регистр адреса памяти, с чего начинается обращение к ней). Считывание единичного бита из некоторого разряда ячейки памяти вызывает появление импульса на входе усилителя считывания, который усиливает его и при необходимости растягивает во времени, после чего передаёт на вход установки соответствующего триггера регистра данных. Как следствие, триггеры регистра данных для тех разрядов ячейки памяти, которые хранили единицы, устанавливаются, а остальные триггеры остаются сброшенными.

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 11

Сдвиговый регистр тоже собирается на слегка модифицированных RS-триггерах. Как видно на схеме, первый каскад образован элементами 2,2И-2ИЛИ-НЕ, на каждый из входных элементов И которых подаётся свой управляющий сигнал П или Л, вызывающий соответственно сдвиг вправо или влево. Кстати, насчёт обозначений П и Л: в документации на ранние машины действительно используется русско-английская смесь, где П и Л соседствуют с R и D — благо, ватманы с кульманами, в отличие от многих САПР, всё стерпят.

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 12

Счётчики создаются на основе счётных триггеров. В качестве примера показана схема 3-разрядного однонаправленного счётчика со входом сброса на основе элементов 2,2И-2ИЛИ-НЕ. Каждый его разряд требует две микросхемы ЛР1; кроме того, требуется ещё один инвертор на весь счётчик.

                                                                                                         

Комбинационные схемы

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 13

Вполне ожидаемо, что «ископаемые» дешифраторы по своему устройству, по большому счёту, не отличаются от более современных. Единственным заметным отличием является то, что в состав «рассыпных» схем обычно не включаются инверторы, необходимые для формирования обратных значений исходных сигналов: поскольку почти всегда входная информация подаётся с регистров, а те выполнены на триггерах, имеющих и прямой, и инверсный выходы, совершенно естественно пользоваться их «услугами». В качестве примера показаны схемы так называемых линейного импульсного дешифратора на 8 выходов («импульсный» в данном случае означает наличие дополнительного входа управления, разрешающего или запрещающего работу дешифратора, благодаря чему на одной из выходных линий можно в нужный момент времени сформировать импульс) и прямоугольного дешифратора на 16 выходов. Как видим, выходы у них всегда инвертированные; если нужно получить результат в прямом виде, приходится ставить инверторы.

Использование простейших микросхем в конструкции ранних ЕС ЭВМ - 14

Мультиплексоры в явном виде как отдельные законченные функциональные блоки в конструкции ранних машин не выделялись, хотя они, конечно, были. Собственно выбор одного из входных сигналов и передача его на выход осуществляется элементом И-ИЛИ-НЕ на нужное число входов (два у ЛР1 и четыре у ЛР3, при необходимости они дополняются расширителями ЛД1). Какой именно из элементов И будет открыт, определяется управляющими сигналами, поступающими с дешифратора, а последний в типичном случае управляется выходами некоего регистра. Таким образом, мультиплексор в современном понимании оказывается «размазан» между: 1) выходами регистра, содержащего код источника (оттуда поступают прямые и инверсные значения разрядов кода), 2) дешифратором кода источника, 3) инверторами на выходах дешифратора (поскольку с него поступают инвертированные сигналы, а управлять они должны элементами И — т. е. быть прямыми) и 4) схемой выбора одного из входных сигналов на элементах И-ИЛИ-НЕ.

Вот устройство самой сложной комбинационной схемы ранних машин — АЛУ — заметно отличается от, например, классической микросхемы К155ИП3, в девичестве SN74181. Впрочем, эта тема весьма обширна и заслуживает отдельной статьи.

Литература

  1. В. В. Пржиялковский и др. Электронная вычислительная машина ЕС-1020. Под общей редакцией А. М. Ларионова. — М., «Статистика», 1975

  2. Р. М. Асцатуров и др. Процессор ЭВМ ЕС-1020. Под общей редакцией А. М. Ларионова. — М., «Статистика», 1975

  3. Р. И. Абражевич и др. Каналы ввода-вывода ЭВМ ЕС-1020. Под общей редакцией А. М. Ларионова. — М., «Статистика», 1975

  4. А. Т. Кучукян и др. Электронная вычислительная машина ЕС-1030. Под общей редакцией А. М. Ларионова. — М., «Статистика», 1977

Автор: Иван Савватеев

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js