Процессор ЭВМ ЕС-1020. Общая структура и система синхронизации
Общая структура процессора ЕС-2020
Центральная часть ЭВМ ЕС-1020 — процессор ЕС-2020 — включает три стойки, в которых размещаются следующие устройства:
вычислительное устройство (собственно центральный процессор) с двумя селекторными и одним мультиплексным каналами ЕС-2420;
оперативная память ЕС-3220 ёмкостью 64, 128, 192 или 256 Кбайт;
устройство питания ЕС-0821.
Для размещения эти трёх стоек вместе с навешиваемым на процессорную стойку пультом управления и размещаемым перед ней рабочим местом оператора ЭВМ, основной частью которого является стол с электронной пишущей машинкой ЕС-7070, выполняющей роль консольного терминала, требуется место размером 4300×2300 мм.
Помимо процессора и пультовой пишущей машинки, в состав основного комплекта ЕС-1020 входят:
устройство управления (УВУ, т. е. контроллер) накопителями на магнитных дисках (НМД) ЕС-5551 и два подключённых к нему НМД ЕС-5050, ЕС-5052 или ЕС-5056 (ёмкость каждого сменного пакета магнитных дисков составляет порядка 7,25 Мбайт);
УВУ накопителями на магнитной ленте (НМЛ) ЕС-5511 и четыре НМЛ ЕС-5010 или ЕС-5012;
устройство ввода с перфокарт ЕС-6012;
устройство вывода на перфокарты ЕС-7010;
алфавитно-цифровое печатающее устройство (АЦПУ, т. е. принтер) ЕС-7032;
устройство ввода с перфоленты ЕС-6022;
устройство вывода на перфоленту ЕС-7022.
Такая комплектация вполне достаточна для эффективной работы под управлением операционной системы ДОС ЕС — советского клона IBMовской DOS/360. Для работы ОС ЕС, она же OS/360, требуется большее количество дисков, однако для такой слабой машины применение ОС ЕС представляется не очень разумным, хотя и возможным технически. Заметим, что на модели 30 Системы 360, имевшей примерно такую же производительность, запустить OS/360 невозможно, так как «американка» не может иметь больше 64 Кбайт памяти, а OS/360 для нормальной работы требуется не менее 128 Кбайт (на 64 Кбайтах работать может только так называемый стартёр — специально обрезанная однозадачная версия системы, единственным назначением которой является генерация, т. е. сборка из модулей, «нормальной» системы для эксплуатации на данной конкретной машине).
Общая площадь машинного зала, в котором размещается процессор и основной комплект устройств, составляет 20–30 кв. м. Естественно, при подключении дополнительных устройств необходимо увеличить и площадь зала; кроме того, необходимо заботиться о кондиционировании воздуха (один только процессор потребляет порядка 7 кВт энергии).
Основными функциональными блоками процессора ЕС-2020 являются:
блок синхронизации;
блок микропрограммного управления;
блок регистров;
арифметико-логический блок, в литературе называемый «блоком арифметическим» (БА);
блок защиты;
блок прямого управления;
каналы ввода-вывода;
оперативная память;
пульт управления.
Как уже говорилось, оперативная память конструктивно расположена в отдельной стойке. Оборудование каналов ввода-вывода расположено в раме A стойки процессора, рама B занята, главным образом, постоянной памятью, хранящей микропрограммы, а почти всё остальное оборудование, составляющее собственно процессор, находится на раме C.
Общая структура процессора приведена на рисунке.
Структурная схема процессора ЕС-2020, скан из [1]
Система синхронизации
ЕС-2020, как и абсолютное большинство процессоров, является синхронным: все основные операции выполняются в определённые промежутки времени, а их результаты запоминаются в регистрах по соответствующим тактовым импульсам. Длительность такта ЕС-2020 составляет 1 мкс, что соответствует тактовой частоте 1 МГц; она привязана к полуциклу оперативной памяти.
Формируемые синхросигналы
В течение такта блок синхронизации формирует четыре следующих друг за другом основных синхросигнала С1–С4, каждый длительностью 200 нс; интервалы между синхросигналами составляют 50 нс. Имеется упоминание, что в каких-то ситуациях интервал между С1 и С2 увеличивается до 100 нс, а весь такт, соответственно, до 1050 нс, но никаких подробностей об обстоятельствах такого увеличения и его предназначении нет, поэтому в дальнейшем изложении будем считать, что интервалы всегда равны 50 нс.
Диаграмма выработки основных синхроимпульсов, скан из [2]
Сигналы С1–С4 начинают формироваться с момента подачи питания и никогда не останавливаются, но непосредственно для синхронизации практически не используются. Вместо это из них вырабатываются четыре серии рабочих синхроимпульсов: ГИ1–ГИ4, ТИ1–ТИ4, СИ1–СИ4 и ХИ1–ХИ4, совпадающие с импульсами С1–С4, но разрешаемые или запрещаемые по мере необходимости.
Импульсы серии ГИ называются главными и вырабатываются всегда, за исключением случаев, когда процессор в результате возникновения машинной ошибки переходит в состояние так называемого тяжёлого останова, при котором останавливаются все серии синхроимпульсов, кроме основной серии С1–С4 (подробнее о переходе в тяжёлый останов будет сказано при обсуждении работы схем контроля машины; здесь же заметим, что такт, в котором был обнаружен сбой, в любом случае отрабатывает до конца, и синхронизация останавливается после выдачи последнего, четвёртого синхроимпульса). Импульсы ГИ введены больше для удобства, чем из реальной нужды: они используются для синхронизации операций, выполняемых независимо от того, какая из трёх остальных серий синхросигналов активна.
При обычном выполнении микропрограмм, помимо серии ГИ, выдаются сигналы серии ТИ, которые называются просто тактовыми импульсами и управляют почти всеми операциями в процессоре и мультиплексном канале, а также частью операций селекторных каналов.
Если при выполнении микрокоманды возникает какая-либо необычная ситуация, обнаруживаемая аппаратурой (скажем, попытка обращения к несуществующей ячейке памяти или машинный сбой, не приводящий к немедленному тяжёлому останову), в следующем такте выработка серии ТИ блокируется; вместо неё вырабатывается серия ХИ. Сигналы этой серии называются холостыми, хотя аппаратура при этом не совсем уж бездельничает: в течение такта ХИ производится выборка микрокоманды, с которой начинается микропрограмма обработки возникшей ситуации, и выполняются некоторые другие связанные с этим действия. Адреса первых микрокоманд, вызываемых в подобных ситуациях, жёстко фиксированы и определяются исходя из возникшего события. Как правило, после такта ХИ возобновляется генерация серии ТИ и начинается выполнение вызванной в такте ХИ микропрограммы, однако в ситуациях, когда возникает несколько необычных ситуаций, один за другим может быть выполнено несколько тактов ХИ, и в итоге будет вызвана самая приоритетная микропрограмма. Выполнению микропрограмм будет посвящена следующая статья, там эти вопросы будут рассмотрены подробнее.
Наконец, при появлении запроса на выборку или запись данных от одного из селекторных каналов блокируются и серия ТИ, и серия ХИ, и вырабатываются так называемые селекторные синхросигналы серии СИ. По этим сигналам селекторный канал выполняет обращение к основной памяти, а также модифицирует своё внутреннее состояние (адрес памяти, счётчик байтов и т. д.). В зависимости от ситуации для выполнения одного обращения к памяти требуется два или три такта СИ, после чего генерация этих импульсов прекращается, и процессор возвращается к выполнению тактов ХИ или ТИ. Таким образом, серия СИ имеет наивысший приоритет — выше даже, чем у ХИ, которая используется в том числе для вызова микропрограммы обработки аппаратных сбоев. Это необходимо для поддержания максимально возможной скорости обмена через селекторные каналы, что требуется для нормальной работы подключаемых к ним внешних устройств (в первую очередь, магнитных дисков).
Технически все описанные синхросигналы являются инверсными, в прямой вид они преобразуются прямо на ТЭЗах-потребителях.
Помимо перечисленных синхросигналов, в некоторых узлах требуются дополнительные сигналы, несколько задержанные относительно основных; они называются задержанными и носят обозначения вроде СИ2З. Такие сигналы формируются там, где они необходимы, из основных сигналов; о точных временных соотношениях для них абсолютно достоверной информации нет, но есть все основания считать, что задержанный сигнал имеет такую же длительность, как и основной (200 нс), но начинается на 125 нс позже.
Техническая реализация тактового генератора
Почти что принципиальная схема тактового генератора и формирователя серии С1–С4 вместе с временной диаграммой его работы приведена на следующих иллюстрациях.
Схема генератора основных синхроимпульсов, скан из [1]
Временная диаграмма работы генератора синхроимпульсов, скан из [1]
Для начала обратим внимание на обозначения компонентов. Логические элементы, входящие в состав микросхем, как видим, обозначены ПП1–1, ПП2–1 и так далее; почему они носят такие обозначения, я не знаю, — возможно, это соответствует стандартам оформления документации в начале 1970-х годов (позже цифровые микросхемы и их элементы стали обозначать буквами DD). Сами элементы внутри прямоугольников содержат надписи Т150, Т100, Т110 — это ни что иное, как принятое в документации на ЕС ЭВМ обозначение типов микросхем вместо К155ЛР1, ЛА3 и ЛА4 соответственно. Буква «Т» в данном случае означает тип логики — ТТЛ (в схемах на, скажем, ЕС-1035 первой идёт буква «Е» — эта машина была создана, в основном, на микросхемах ЭСЛ 500-й серии). Что означает следующая цифра 1, я не знаю; возможно, ей кодировалась 155-я серия. Наконец, две последние цифры — это две последние цифры обозначения микросхемы-прародителя фирмы TI: в данном случае это SN7450, 00 и 10 соответственно. (Вот интересно, как в документации на ЕС-1033 обозначали К155ХЛ1? — ведь это наша разработка, созданная специально под эту машину…)
Помимо микросхем и дискретных элементов, на схеме видим некий «делитель частоты», какой-то ТПИЧ и, наконец, странный, смахивающий по обозначению на автотрансформатор, элемент ЛЗ.
Назначение элемента ТПИЧ (судя по начальной букве Т, это какой-то триггер), как и функция входа Вх1, мне неизвестны; могу лишь предположить, что он либо управляет длительностью такта (вспомним, что в каких-то случаях первая четверть такта растягивается за счёт увеличения интервала между С1 и С2 с 50 до 100 нм), либо используется для полного останова синхронизации, что может использоваться в процессе наладки машины. При нормальной работе хотя бы один из его выходов, а может, и оба должны выдавать высокий уровень.
Собственно задающий генератор, формирующий частоту 2 МГц (см. временную диаграмму для точки «б», т. е. для выхода элемента ПП2–1: в течение 1 мкс через него проходят два полных импульса), собран на эмиттерных повторителях Т3 и Т4, микросхеме ПП1–1 (К155ЛР1), выполняющей, по сути, роль инвертора, и элемента ЛЗ. Последний, на самом деле, никакой не автотрансформатор, а линия задержки, о чём и говорит её обозначение ЛЗ. О её конструкции в доступных книгах по ЕС-1020 ничего не сказано, но берусь утверждать, что она выполнена в виде примерно 100-метрового отрезка (с кучей промежуточных отводов) коаксиального кабеля ИКМ-2 с нормированной задержкой распространения сигнала 4,5±0,45 нс/м и волновым сопротивлением 100 Ом. Моя уверенность проистекает из того, что именно так устроен тактовый генератор ЕС-1030, о которой я надеюсь подробнее рассказать позже; резонно предположить, что для машин, создававшихся в разных конструкторских бюро, но по идентичным технологиям и в одно и то же время, использовались если не идентичные, то близкие технические решения.
Чтоб лучше понимать работу генератора, необходимо учитывать внутреннее устройство микросхем ТТЛ, а точней, их входных и выходных каскадов. На рисунке приведена схема из документации на микросхему SN7450 (К155ЛР1); поскольку входные и выходные каскады всех стандартных схем ТТЛ устроены одинаково, она годится в качестве иллюстрации и для других типов микросхем.
Принципиальная схема одного элемента микросхемы SN7450 (К155ЛР1); скан даташита TI
Резисторы R1, R2 и R3 (см. схему генератора) должны иметь суммарное сопротивление для параллельного соединения, равное 100 Омам, — они выполняют роль терминаторов для линии задержки, чтобы не допускать переотражения сигнала от её концов, которое полностью нарушило бы всю работу генератора. Заметим также, что на нижний конец линии задержки через параллельно соединённые резисторы R2 и R3 подаётся питающее напряжение 5 В, а верхним концом линия подключена к выходу элемента ПП1–1. Непонятным остаётся лишь, зачем 5 В на кабель подаётся через два резистора R2 и R3, а не один с сопротивлением, равным сопротивлению R1.
Когда на выходе ПП1–1 устанавливается уровень логического нуля, напряжение на верхнем конце линии будет чуть выше земли (нижний транзистор выходного каскада элемента ПП1–1 открыт, верхний — закрыт); постоянное напряжение 5 В, прошедшее через R2 и R3 и линию задержки, этому помешать не может: оно целиком падает на суммарном сопротивлении R2, R3 и кабеля (резисторы в данном случае ещё и ограничивают максимальный ток: если на выход микросхемы ТТЛ, на котором установлен логический нуль, подать питающее напряжение, выходной каскад сгорит — это, возможно, самая распространённая причина выхода из строя микросхем ТТЛ при неаккуратных замерах под напряжением или из-за неправильно собранной схемы; современные микросхемы КМОП в этом плане более «идиотоустойчивы»).
Когда на выходе ПП1–1 устанавливается уровень логической единицы (верхний транзистор выходного каскада ПП1–1 открыт, нижний — закрыт), там должно присутствовать напряжение не менее 2,4 В — это требуется для надёжного переключения элемента ПП2–1. В данном случае мы имеем довольно сложный делитель напряжения: если пренебречь током, стекающим на землю через базы эмиттерных повторителей, подключённых к линии задержки (он мал по сравнению с другими токами), то остаётся подключение средней точки делителя резистором R1 к земле, а верхней точки — к питанию 5 В сразу тремя путями:
через 130-омный резистор внутри элемента ПП1–1, выходной транзистор (на нём упадёт 0,2–0,3 В) и диод (ещё примерно 0,7 В); из-за наличия этих полупроводниковых элементов можно считать, что резистор 130 Ом подключён не к 5 В, а к 4 В;
через кабель и параллельно соединённые резисторы R2 и R3;
через резистор в 4 кОм и pn-переход «база-эмиттер» входного транзистора элемента ПП2–1; поскольку на pn-переходе падает примерно 0,7 В, можно считать, что резистор подключён к напряжению 4,3 В.
Если считать, что R1 имеет сопротивление 200 Ом, а R2 и R3 — по 390 Ом, т. е. в сумме даёт почти те же 200 Ом (точней, 195 Ом — что в сумме с R1 даст требуемые ~100 Ом для терминаторов), плюс какое-то сопротивление имеет и кабель, то получим, что напряжение на выходе ПП1–1 будет примерно равным 3,2 В, что полностью удовлетворяет требованиям к уровням логических сигналов («единица» должна иметь напряжение не ниже 2,4 В). Если игнорировать подключение к питанию через линию задержки и ограничиться только локальными «подтяжками» (R1 и резисторами внутри ПП1–1 и ПП2–1), получим напряжение порядка 2,4 В, что тоже является допустимым, хотя и на нижнем пределе.
Переменные резисторы R7 и R9 в эмиттерных повторителях позволяют регулировать ток заряда конденсаторов C1 и C2 и тем самым влиять на длительность высокого и низкого уровней опорной частоты 2 МГц. Судя по диаграмме, при наладке машины их настраивают таким образом, чтобы получить скважность 2, т. е. равенство длительности высокого и низкого уровней.
Зачем нужны два повторителя, а не один, доподлинно неизвестно. У меня есть две гипотезы: либо для возможности изменения длительности периода синхронизации (тогда ТПИЧ выдаёт единицу на одном из своих выходов и нуль — на другом, что, по сути, включает один из повторителей и отключает другой), либо для возможности дополнительного растяжения импульса (время перехода из 1 в 0 и обратно у логических элементов ТТЛ различается). Более правдоподобным мне кажется первое предположение.
Теперь попробуем понять, как генератор работает. На момент включения питания конденсаторы C1 и C2 разряжены; соответственно, на входе ПП1–1 будет низкий логический уровень. Транзисторы эмиттерных повторителей в этот момент закрыты, поскольку для их открытия необходимо подать на их базы напряжение, превышающее таковое их эмиттерах на, грубо говоря, 0,6 В —, а в условной середине линии задержки в этот момент напряжение пока ещё нулевое (напряжение питания с любого из концов линии «добежит» к точкам подключения баз транзисторов ещё довольно нескоро). Соответственно, конденсаторы C1 и C2 в этот момент могут заряжаться только через базовые резисторы 4 кОм входных каскадов ПП1–1, что будет продолжаться довольно долго из-за большого сопротивления этих резисторов и из-за того, что сему процессу мешают резисторы R6, R7 и R8, R9, «сливающие» часть тока на землю. Как результат, на выходе ПП1–1 сначала установится напряжение, примерно равное 2,4 В, — т. е. уровень логической единицы.
Далее высокое напряжение (2,4 В с выхода ПП1–1 и 5 В от источника питания) начнёт распространяться вдоль линии задержки, пока, в конце концов, не достигнет точек, к которым подключены базы транзисторов Т3 и Т4. Как только это случится, транзисторы откроются и скорость зарядки конденсаторов резко возрастёт: теперь ток на них поступает не только через резисторы внутри ПП1–1, но и от шины питания через транзистор и весьма небольшой переменный резистор (резисторы R6 и R8 по-прежнему будут по мере сил мешать заряду).
Когда заряд конденсаторов достигнет некоего критического уровня (2,4 В, а в реальности ниже, что зависит от индивидуальных свойств элемента ПП1–1; напряжение 2,4 В является лишь нижним пределом, гарантированно воспринимаемым входным каскадом логического элемента как высокий уровень, но тот вправе посчитать, что на него подали единицу, и раньше — лишь бы напряжение было выше 0,8 В, что уже гарантированно считается нулём), элемент ПП1–1 с некоторой задержкой (обычно примерно за 10 нс) переключится: на его выходе установится логический нуль, весьма близкий к реальному нулю. Этот новый уровень начнёт свой «спуск» по линии задержки и в конце концов закроет транзисторы эмиттерных повторителей. Заряженные конденсаторы начнут разряжаться через резисторы R6, R7 и R8, R9 соответственно, теперь в роли «тормозов» этого процесса выступают внутренние резисторы входных каскадов ПП1–1. Когда заряд опустится достаточно, чтобы ПП1–1 снова переключился, процесс начнётся заново, — т. е. мы действительно получили работающий генератор. Частота его определяется задержкой сигнала в линии и элементе ПП1–1, а скважность (соотношение времени высокого и низкого уровней в течение одного периода) — скоростью заряда-разряда конденсаторов.
Остальные элементы схемы служат для формирования четырёх фаз синхросерии С1–С4. Эмиттерные повторители Т1 и Т2 «экранируют» линию задержки от попадания в неё «лишнего» напряжения питания, что произошло бы, если б элементы ПП2–3 и ПП2–5 подключались к ней напрямую. Точки их подключения к линии задержки определяют моменты формирования сигналов на выходах этих элементов, что, в свою очередь, влияет на длительности выходных сигналов. «Делитель частоты» — это обычный счётный триггер, схема реализации которого была мной приведена в одной из предыдущих заметок (причём инвертор тактового сигнала счётного триггера в данном случае является внешним — это элемент ПП2–4); он просто делит поступающую на него частоту на два, а его выходные сигналы (прямой и инверсный) разрешают формирование из остальных исходных сигналов то одной пары выходных сигналов, то другой (см. диаграмму работы).
Заканчивая разговор о тактовом генераторе, укажем, что длительность выходных сигналов обеспечивается им с точностью всего лишь 10% (200±20 нс) — что требует достаточно широких интервалов между импульсами, а вот частота куда стабильней — 1000±3 кГц. Объясняется это тем, что длительность импульсов сильно зависит от времени переключения логических элементов, которое может довольно сильно изменяться в зависимости от температуры и колебаний напряжения источника питания; свою лепту в нестабильность вносят и изменения параметров транзисторов Т3 и Т4, а также значений сопротивлений резисторов — всё это тоже зависит от температуры. А вот частота определяется почти исключительно параметрами линии задержки, которые куда стабильней, — поэтому, один раз подобрав нужную длину кабеля, можно получить весьма точный генератор. Конечно, кварцевый был бы лучше —, но по каким-то причинам в СССР они тогда в вычислительных машинах если и использовались, то редко; IBM применяла кварцы, судя по документации, с первых моделей Системы 360 (в имеющихся документах по модели 30 прямо говорится о кварцевом генераторе), а может, и раньше.
Формирование синхроимпульсов рабочих серий
Формирование рабочих серий тактовых импульсов ГИ, ТИ, ХИ и СИ, как уже говорилось, разрешается или запрещается в зависимости от определённых условий. Чтобы гарантировать правильные разрешение/запрет и при этом в любой ситуации выполнять текущий такт до конца, для каждой из синхросерий используется пара управляющих сигналов — для первой и второй половины такта; они носят обозначения 1ГИ, 2ГИ, 1ТИ, 2ТИ и так далее (не путать с названиями самих синхроимпульсов ГИ1–ГИ4 и т. д.!). Эти сигналы вырабатываются так называемым регистром тактов; в литературе того времени они часто называются «тактовыми потенциалами», поскольку действуют не фронтом (перепадом), а своим уровнем (потенциалом), разрешая или запрещая формирование тактовых сигналов.
Поскольку имеется четыре пары тактовых потенциалов, регистр тактов содержит восемь RS-триггеров управляющими цепями на их входах. Логическая схема регистра тактов приведена на рисунке; от принципиальной она отличается тем, что показывает логику работы узла, но не отражает его фактическое устройство (учитывая скудную элементную базу, принципиальная схема содержит значительно больше элементов). Например, на логической схеме присутствуют элементы 3ИЛИ, 4И и другие, которые отсутствуют среди элементной базы ЕС-2020; очевидно, что соответствующие функции реализованы комбинациями имеющихся элементов. Дефис («минус») перед именами сигналов означает инверсию.
Логическая схема регистра тактов, скан из [2]
Как видно из схемы, триггеры первой половины такта изменяют своё состояние по сигналу С4, то есть в конце предыдущего такта перед началом нового, а триггеры второй половины — по сигналу С2, т. е. в конце первой половины текущего такта. Благодаря такому решению разрешение на генерацию, выданное на первую половину такта, «переползает» на вторую половину независимо от того, какие к тому времени сложились условия: все изменения будут учтены только для следующего такта. Кроме того, заблаговременное формирование тактового потенциала (С2 и С4 заканчиваются за 50 нс до С3 и С1) позволяет подать его на входы разрешения генерации рабочих серий во время «тихого» 50-нс промежутка между тактовыми импульсами и тем самым не нарушить длительность рабочих импульсов — она будет целиком определяться длительностью С1–С4, а не тактовых потенциалов. Наконец, логические схемы, управляющие формированием разрешений, необходимы только для первых триггеров каждой пары, вторые триггеры лишь копируют содержимое первых — этим достигается экономия корпусов микросхем.
Самое простое управление — для серии ГИ. Триггер сигнала 1ГИ устанавливается при отсутствии сигнала тяжёлого останова и сбрасывается при его наличии, чем достигается прекращение генерации главных синхроимпульсов при тяжёлом останове процессора.
Триггер 1СИ устанавливается, если есть сигнал запроса селекторного канала на обмен с основной памятью (в документации на аппаратуру ЕС ЭВМ каналы обычно именовались «бюрократическим» образом: «канал селекторный» и «канал мультиплексный», а не более естественным для русского языка образом, когда прилагательное стоит перед существительным, — отсюда аббревиатура КС), если при этом отсутствует сигнал тяжёлого останова; отсутствие запроса селекторного канала приводит к сбросу триггера. Заметим, что его явного сброса при появлении сигнала тяжёлого останова не предусмотрено: тяжёлый останов блокирует сигнал запроса в самом канале, что приводит к сбросу триггера 1СИ.
Триггер 1ХИ устанавливается, если есть запрос на этот такт (возникла какая-то необычная ситуация, требующая прерывания выполнения текущей микропрограммы и перехода на другую микропрограмму) и при этом нет ни сигнала тяжёлого останова, ни сигнала 1СИ. Сбрасывается этот триггер при отсутствии запроса на ХИ; как и в случае с СИ, возникновение тяжёлого останова блокирует запрос на ХИ.
Наконец, триггер 1ТИ устанавливается при отсутствии тяжёлого останова и сигналов 1СИ, 1ХИ, т. е. если не запрошено выполнение более приоритетного такта; сбрасывается он при наличии любого этих трёх сигналов.
Временная диаграмма работы регистра тактов показана на рисунке.
Временная диаграмма работы регистра тактов, скан из [2]
Дальнейшее вроде бы просто: синхросигналы рабочих серий формируются путём объединения сигналов С1–С4 с тактовыми потенциалами схемой И, в результате будут сформированы только разрешённые серии. Но, как говорится, есть нюанс — и даже два. Первый из них связан с большими габаритами процессора и вытекающим из этого перекосом сигналов по мере их путешествия к потребителям, ну, а вторым является ограниченная нагрузочная способность выходов микросхем. О борьбе с перекосами поговорим позже, а сейчас коснёмся второй проблемы.
Не очень опытные разработчики, имеющие дело только с КМОП-микросхемами, могут забывать про необходимость контроля за нагрузкой на выводы микросхем, а то и вообще не знать о возможных проблемах, — скажем, подросток, мастерящий что-то на «ардуинке», вряд ли столкнётся на практике с такими вещами (разве что попытается подключить прямо к микроконтроллеру целую гирлянду светодиодов), а в как бы учебных «видосиках» об этом обычно даже не упоминают. Однако микросхемы на биполярных транзисторах в этом плане более требовательны к квалификации разработчиков. В случае с ТТЛ дело, в первую очередь, в том, что подача логического нуля на вход такой микросхемы вызывает непрерывное протекание тока через резистор в базовой цепи входного транзистора (4 кОм для 155-серии) и его pn-переход «база-эмиттер» на коллектор нижнего выходного транзистора микросхемы-источника сигнала и через него — на землю. Если к выходу микросхемы подключить слишком много входов других микросхем, через выходной транзистор станет протекать слишком большой ток, и он сгорит. Если говорить о стандартных элементах 155-й серии, то к одному выходу можно подключать не более 10 входов (несколько эмиттеров одного многоэмиттерного входного транзистора рассматриваются как один вход, так как ток поступает на эти эмиттеры через один общий базовый резистор и не зависит от того, сколько именно эмиттеров заземлено). Легко догадаться, что у каждого синхросигнала могут быть сотни потребителей даже в довольно простом процессоре.
Заметим, что эта проблема есть и у КМОП-микросхем, но стоит она далеко не так остро: ток протекает через их входы только в момент смены состояния, заряжая или разряжая затворы входных транзисторов; после завершения переходных процессов ток практически прекращается. Поэтому в КМОП-схемотехнике объединение большого числа входов грозит не столько выходом из строя выходных каскадов источников (сопротивление открытого транзистора очень невелико, и он без последствий способен выдержать довольно большой ток, тем более протекающий крайне ограниченное время), сколько слишком долгим нарастанием-спадом сигнала из-за необходимости заряжать-разряжать большую ёмкость, —, а соответственно, в возникновении лишних задержек и падении скорости переключения.
Очевидно, чтобы не допустить перегрузки источников синхросигналов, необходимо применять буферы. Для этого с ТЭЗа задающего генератора и формирователя сигналов С1–С4, распложенного в раме C, выдаются сразу три «копии» этих сигналов — по одной для каждой из трёх рам процессора. Судя по приводимому рисунку, этот ТЭЗ расположен в левом верхнем углу рамы, в ближайшей точке к оси, на которой она вращается, ведь к этому ТЭЗу подключается несколько кабелей, в том числе линия задержки. Неподалёку от него расположен ТЭЗ регистра тактов, на который подаются сигналы С1–С4 и с которого снимаются потенциалы тактов.
Распределение тактовых импульсов на раме C, скан из [2]
На рамы A и B сигналы С1–С4 подаются с помощью коаксиальных кабелей, что, во-первых, снижает влияние помех; во-вторых, даёт весьма предсказуемую задержку сигналов;, а в-третьих, гарантирует определённое волновое сопротивление линии передачи, что позволяет, применяя резисторы-терминаторы, предотвратить возникновение переотражений. В пределах каждой из рам любые сигналы синхронизации (как С1–С4, так и рабочих серий) разводятся либо согласованными витыми парами (с резисторами-терминаторами), либо, если длина связи невелика, обычными проводниками. Потенциалы тактов, как и прочие сигналы, разводятся аналогичным образом, за исключением того, что между рамами они передаются по согласованным витым парам: для них нет столь жёстких требований по задержкам, как для синхроимпульсов.
Как видно из рисунка, сигналы С1–С4 и потенциалы тактов поступают на специальные ТЭЗы синхронизации (ТС), устанавливаемые в середине каждой полупанели, в которой имеются ТЭЗы, требующие подачи на них синхросигналов рабочих серий. Все ТЭЗы синхронизации являются идентичными, их задача — сформировать сигналы рабочих серий, вероятно, в двух копиях (для ТЭЗов, расположенных правее и левее ТЭЗа синхронизации). Кроме того, потенциально они могут служить для выравнивания перекосов синхросигналов за счёт подстраиваемой в процессе наладки машины задержки поступающих на них сигналов С1–С4. В более поздних ЭВМ, построенных на микросхемах ЭСЛ, такой способ применяется весьма широко, но на них используются компактные линии задержки в интегральном исполнении. Наличие подобных изделий на момент разработки ЕС-1020 и ЕС-1030 вызывает большие сомнения (иначе зачем использовать стометровый кабель для генерации синхросигнала?); кроме того, частота синхронизации этих машин весьма невелика, что, в общем-то, позволяет обойтись без дополнительных мер: вряд ли задержки синхросигналов превышают 15, максимум 20 нс, что не очень заметно по сравнению с длительностью синхросигналов не только для ЕС-1020, но и для ЕС-1030, частота процессора которой лишь в полтора раза больше — период следования синхросигналов составляет 670 нс (для сравнения: в последнем крупносерийном советском мэйнфрейме, ЕС-1130, период синхронизации составляет 160 нс, а в самых высокопроизводительных ЕСках — ещё раза в два меньше).
С ТЭЗов синхронизации рабочие серии синхроимпульсов расходятся по логическим ТЭЗам, ради которых, собственно, они и были сформированы. Однако, поскольку на каждом логическом ТЭЗе обычно имеется несколько логических элементов, использующих синхроимпульсы, входной синхросигнал сначала подаётся на буферный логический элемент, который заодно инвертирует импульс.
Поскольку потребителей сигналов синхронизации много, а ставить множество буферов — дорого, резонно предположить, что в их роли выступают не обычные логические элементы (скажем, К155ЛА3), а элементы 4И-НЕ с повышенной нагрузочной способностью типа К155ЛА6 (SN7440): если для обычного элемента ТТЛ максимальный выходной ток низкого уровня составляет 16 мА, то у ЛА6 — в три раза больше, 48 мА; соответственно, к одному выходу ЛА6 можно подключить до 30 входов. Кроме того, у них несколько меньше резистор в верхнем плече выходного каскада (100, а не 130 Ом), что позволяет быстрее переключаться из низкого уровня в высокий. Заметим, что максимальный выходной ток высокого уровня в данном случае особой роли не играет: в силу особенностей схемотехники ТТЛ, ограничителем нагрузочной способности является именно ток низкого уровня.
Завершая разговор о схемотехнике системе синхронизации, кратко коснёмся элемента задержки, используемого, по всей вероятности, для формирования задержанных импульсов. Два таких элемента, никак не связанных между собой, размещаются вместе на одном ТЭЗе. «Полупринципиальная» схема одного элемента приведена на рисунке. Помимо собственно задержки (125±15 нс), он гарантирует длительность формируемого импульса отрицательной полярности (200±15 нс).