Управление оперативной памятью

Центральный процессор и каналы ввода-вывода могут обращаться в ОП независимо и асинхронно. Для сопряжения процессора и каналов с ОП служит блок управления оперативной памятью.

Процессор и каналы по отношению к ОП являются независимыми устройствами и могут формировать свои запросы одновременно. БУ ОП обслуживает эти запросы по принципу «первым пришел — первым обслужен». При одновременном поступлении запросов запрос от канала обладает более высоким приоритетом. При поступлении запроса Б У ОП активизирует ОП, формирует сигналы, определяющие режим работы ОП (запись или чтение), выдает в ОП адрес обращения и обеспечивает прием информации из ОП в режиме чтения либо выдачу информации в ОП в режиме записи. При обслуживании запроса производится контроль с целью обнаружения трех типов программных ошибок; защиты памяти, адресации и спецификации. В состав БУ ОП входят (смотреть статью под номером 53) узел тактовых импульсов (ТИ), узел запросов и очередности (ЗПР 04), узел режимов (РЖ), узел выбора байт (ВБ), регистр информации процессора (РИП), регистр адреса канала (РАК), коммутатор выдачи адреса и информации (КВАИ), узел обнаружения ошибок обращения к оперативной памяти (ООП), узел памяти ключей защиты (ПКЗ).

ЭВМ ЕС1033 может работать с устройствами ОП различного; типа (п. 1.9). В зависимости от типа и количества этих устройств! емкость ОП машины может быть от 256К байт до 2048К байт.1

Цикл работы процессора и каналов составляет 400 не, цикл] работы ОП — в четыре раза больше. Поэтому для синхронизации их работы необходимо выработать последовательность сигналов внутри каждого цикла обращения к ОП, привязанных к спнхросериям машины. Эти же сигналы необходимы и для синхронизации работы всех составных частей БУ ОП (смотреть статью под номером 54).

Узел тактовых импульсов формирует ряд одиночных тактовых импульсов «1» ТИ1* —«1» ТИ4*, И1*—И4*, «1» ТИ2—«1>: ТИ4, И2—И4, жестко привязанных во времени к синхросериям С1 и С2. При поступлении по серии С1 запроса от процессора или от общего канала (сигнал ЗПР) происходит установка по серии С2 в единичное состояние одного из триггеров запроса процессора (ТЗПР), либо триггера общего запроса каналов (ТОЗК). Сигналы с выходов всех этих триггеров поступают в схему приоритета, которая формирует сигнал запроса от процессора (ЗПРП). По времени и форме этот сигнал совпадает с выходным сигналом с ТЗПР или ТОЗК и разрешает по серии С1 запуск тактовой цепочки узла ТИ. Тактовые импульсы поступают во все узлы БУ ОП. Тактовая цепочка не может быть запущена вновь, если она еще не отработала до конца, — для этого служит триггер цикла (ТЦИКЛ).

Формирование запроса к ОП производит узел ЗПР 04 (смотреть статью под номером 55), который содержит четыре триггера — ТЗПР ООО, ТЗПР 001, ТЗПР 011 и ТЗПР 111, предназначенных для запоминания запросов ЦП; триггер общего запроса каналов; триггер цикла (ТЦИКЛ); триггер очередности процессора (ТОЧП); схему приоритета; схему формирования запросов за операндами и триггер аварии питания (TAB ПИТ).

Запросы ЦП объединены в четыре группы: запрос информации формата двойного слова ЗПР 111 и ЗПР 111С; запрос информации однословного формата ЗПР 011 и ЗПР 011С; запрос информации, граница которой совпадает с границей полуслова ЗПР 001 и ЗПР 001С; запрос информации, которая может быть расположена в ОП, начиная с любого байта ЗПР 000 и ЗПР 000С. Такое разделение запросов вызвано необходимостью анализировать правильность спецификации при каждом обращении к ОП. Часть запросов является микропрограммными сигналами: ЗПР111, ЗПР011, ЗПР001, ЗПР000 и запрос выборки ЗПРВ, который при анализе спецификации квалифицируется как запрос за полусловом. Остальные сигналы запросов формируются схемно. ЗПРД вырабатывается в блоке диагностики ЦП. ЗПР ПУ вырабатывается при обращении к ОП с пульта управления. Опережающие запросы ЗПР 111С, ЗПР 011С, ЗПР 001С, ЗПР 000С вырабатываются сигнал приема адреса ПРМА, который поступает в ОП и ининиирует ее внутренний цикл. Код адреса выдается в ОП постоянно, пока обслуживается данный запрос. Если необходимо произвести запись информации в ОП, то вместе с запросом микропрограммно устанавливается триггер записи процессора (ТЗП). При этом узел режимов выдает в ОП признак записи. Информация, подлежащая записи (ЗПС ИНФ), поступает в ОП через коммутатор выдачи адреса и информации из РИП и присутствует на информационных шинах ОП все время, пока поступает код адреса. В случае возникновения ошибки при записи информации ОП переводится из режима записи в режим чтения сигналом блокировки записи БЛК ЗП. Если ТЗП не установлен в единичное состояние, то запрос расценивается как запрос на считывание информации из ОП. В этом случае считанная из ОП информация (СЧ ИНФ) выдается не позднее, чем через 0,7 мкс после окончания сигнала ПРМА. Эта информация микроприказом РИП := ОП принимается в регистр информации процессора.

Если при поступлении очередного запроса от ЦП окажется, что предыдущий запрос от каналов еще не обслужен, то вновь поступивший запоминается в соответствующем триггере. Он будет обслужен, когда подойдет его очередь. О том, что имеется необслуженный запрос от ЦП, сигнализирует триггер процессора ТОЧП. Нормальное состояние его единичное. Он устанавливается в нулевое состояние по сигналу запроса от ЦП при условии, что в данный момент не обслуживается предыдущий запрос ЦП. В единичное состояние ТОЧП вновь устанавливается в цикле обработки запроса ЦП сигналами, формируемыми тактовой цепочкой Б У ОП, тогда, когда считанная из ОП информация будет принята в РИП или произойдет запись информации в ячейку памяти ОП. Состояние ТОЧП может быть проанализировано с помощью микроприказа ТОЧП=+0. Все микропрограммы ЦП построены таким образом, что выработке очередного запроса предшествует проверка наличия необслуженного запроса. Если ТОЧП=0, то это означает, что предыдущий запрос еще не обслужен. В этом случае продвижение микропрограммы приостанавливается (п. 1.6). Ее исполнение возобновляется после того, как

ТОЧП будет установлен в единичное состояние, тем самым разрешая использование находящейся в РИП информации, а также смену адреса обращения, находящегося в РАП, и формирование следующего запроса. Таким образом, ТОЧП совместно с ТЦИКЛ предотвращают наложение друг на друга запросов от ЦП.

Канал выдает свой сигнал запроса ЗПРК вместе с кодом адреса обращения к ОП. Последний поступает по информационным шинам канала из блока коммутации числовой информации ОК. По сигналу ЗПРК происходит запись кода адреса в РАК, после чего ОК производит замену кода адреса на информационных шинах канала записываемой в ОП информацией. Кроме того, по сигналу ЗПРК происходит установка в единичное состояние ТОЗК, ТРАБК и формирование сигнала ЗПРП для запуска тактовой цепочки аналогично тому, как это происходит при обслуживании запроса от ЦП. В конце обслуживания запроса от канала по импульсу ТИЗ происходит сброс ТОЗК, разрешая прием следующего запроса от канала, и по импульсу ТИ4 формируется сигнал очередности канала (ОЧК), информируя канал о том, что его запрос обслужен. Этот сигнал разрешает каналу сменить адрес обращения и выработать следующий запрос, а также разрешает прием в блок коммутации числовой информации ОК, считанной из ОП информации. Последняя поступает в канал из ОП по отдельным шинам.

Триггер аварии питания TAB ПИТ устанавливается в единичное состояние по сигналу из системы питания и блокирует очередной запуск тактовой цепочки БУ ОП. Текущий запрос обслуживается до конца. Сброс этого триггера происходит сигналом СБРОС при нажатии на ПУ кнопки «СБРОС СИСТЕМЫ».

Узел режимов содержит еще ряд триггеров, определяющих режим работы с ОП.

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

Триггер команды (инструкции) ПРОВЕРИТЬ и УСТАНОВИТЬ (ТИПУ) определяет режим записи единиц во все разряды указанного командой байта ОП.

В некоторых микропрограммах бывает необходимо заблокировать возможные программные прерывания в момент обращения к ОП. Этой цели служит триггер фиксированного адреса процессора (ТФАП). Для блокировки программных прерываний во время обращения канала к ОП канал выдает в БУ ОП сигнал «1» ТФАК. ЕГО действие аналогично действию ТФАП при обращении от ЦП.

Триггер блокировки записи ТБЛ ЗП служит для блокировки записи в ОП при наличии какойлибо ошибки (как программной, так и ошибки по четности). Если ТБЛ ЗП установлен в единичное состояние, по сигналу «1» ТИ2* в ОП выдается сигнал БЛ ЗП, который переводит ОП из режима записи в режим чтения.

Для связи ОП и ЦП в режимах чтения и записи информации служит регистр информации процессора РИП (см. смотреть статью под номером 53). Считанная из ОП информация принимается в РИП по сигналу РИП : = ;= ОП. Затем она может быть выдана на любую магистраль по микроприказам Ml 1= РИП, М2 : РИП, МЗ 1= РИП. Инфор; мация для записи в ОП также может быть дана в РИП с любой из магистралей по микроприказам РИП ;= Ml, РИП i = М2, РИП I МЗ.

С магистралью Ml кроме обычной связи РИП связан еще и таким образом, что крайний правый байт Ml [24/31 ] может быть помещен на место любого байта РИП по микроприказу ЛРИП : = i= Ml [24/31 ] и, наоборот, любой байт РИП может быть считан на Ml [24/31 ] по микроприказу Ml [24/31 ! := ЛРИП (смотреть статью под номером 57). Номер нужного байта РИП задается в двоичном коде в буферном регистре сравнения (РСБФ), входящим в состав БФА БОП (п. 3.5), и расшифровывается специальным дешифратором.

Кроме обычной связи с магистралью М2, РИП связан с ней еще и таким образом, что младшее полуслово М2 может быть принято на место старшего полуслова РИП, а старшее полуслово М2 — на место младшего полуслова РИП. Это осуществляется по микроприказу ПРИП := М2. Возможно также чтение на М2 из РИП с взаимно перекрестной заменой полуслов по микроприказу М2 ;=ПРИП (смотреть статью под номером 58). Аппараты ЛРИП и ПРИП широко применяются в микропрограммах ЦП (п. 5.2, 6.1).

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

Адрес и информация выдаются в ОП через коммутатор КВАИ. Адрес может поступать в ОП по любому из трех направлений: из ЦП с регистра адреса процессора, с регистра адреса канала 108 и из блока диагностики ЦП с диагностического регистра микрокоманд РМК6. Информация в ОП поступает либо из РИП, либо из коммутатора числовой информации ОК.

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

Признаки — номера байт могут формироваться двояко: для нескольких подряд расположенных в слове байт и для одного отдельного байта. В первом случае задаются номера начального и конечного байтов. Для записи отдельного байта триггер записи байта (ТЗБ) устанавливается в единичное состояние и задается номер байта в качестве начального: номер конечного байта аппаратурно формируется равным номеру начального.

Номер начального байта при запросе ЦП задается двумя младшими разрядами регистра адреса центрального процессора РАП [22/23], Номер конечного байта задается двумя дополнительными разрядами РАП [24/25]. Информация в РАП [24/25] поступает с магистрали Ml по микроприказу РАП [24/25] : = := Ml [30/31].

При обращении каналов к ОП номера начального и конечного байт поступают из регистра маркеров РМР, находящегося в канале. При этом разряды РМР [0/1] задают номер начального байта, а разряды РМР [2/3] — конечного.

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

Узел обнаружения ошибок обращения к ОП (ООП, смотреть статью под номером 59) выявляет программные ошибки и формирует соответствующие сигналы, посылаемые в блок прерываний. Кроме того, в режиме чтения из ОП сигнал о любой из ошибок приводит к формированию узлом режимов сигнала БЛ ЗП, который посылается в ОП.

Сигнал ошибки защиты (ОШ ЗШ) формируется при обращении к ОП в случае несовпадения текущего ключа защиты с ключом, хранящимся в узле ПКЗ, входящем в состав БУ ОП (см. рис 53). Этот узел предназначен для записи, хранения и выдачи ключей защиты ОП. Вся оперативная память условно разделяется на страницы по 2048 байт. Каждой странице присваивается свой ключ защиты, хранящийся в ПКЗ. Младшие 11 разрядов кода адреса ОП являются адресом информации внутри страницы, а старшие разряды — адресом страницы и, соответственно, адресом ключа защиты. Ключ защиты имеет пять информационных разрядов и один контрольный. Четыре старших разряда являются собственно кодом ключа, а младший — признаком вида защиты.

тельно уменьшить. В управляющем слове используется как кодированное, так и позиционное управление.

Нулевое слово микрокоманды, которое считывается в РМКО (смотреть статью под номером 61), содержит шесть пятиразрядных полей управления чтением информации из регистров ЦП на три информационные магистрали и записью информации в блоки и регистры с магистралей. Два последних разряда не используются. Первые два символа обозначения каждого поля указывают номер магистрали

(Ml—МЗ), адва других

выполняемое действие — чтение или запись. Каждое поле адресует либо 16 .операционных регистров РОП, либо 16 других источников или приемников информации, подключенных своими информационztzs liifff ными полюсами к соответствующей магистрали. Таким образом, по каждой магистрали может быть микропрограммно установлена связь 31 источника с 31 приемником.

Такая система позволяет организовать 312 = = 961 вид прямых контактов источников с приемниками. Одновременно связь может быть установлена по всем трем магистралям независимо, что дает возможность осуществить 961 X 3 = 2883 различных трактов передачи информации между блоками процессора. При выполнении алгоритмических действий нужны различные сочетания таких связей.

В первом слове микрокоманды, которое считывается в РМКЛ, содержится поле базового адреса следующей микрокоманды (РМКП0/10]) и поля ПРВ (РМК1 [11/HJ), А (РМК1 [16/18J и Б (РМК1 [19/24]). Последние три используются в БФА БОП для выбора направления продолжения микропрограммы.

В поле 5 (РМК1 [25/29 ]) содержатся коды, определяющие режимы работы БАЛ и вид выполняемых в нем действий. В БАЛ могут выполняться 15 логических и 30 арифметических микроопераций. Одна комбинация, соответствующая S = D, запрещает выдачу результата из блока на магистраль Ml. Коды поля S для различных микроопераций, выполняемых БАЛ, приведены в смотреть статью под номером 7.

В первом слове кроме поля ПРВ имеются три позиционных поля, наличие единиц в каждом из которых определяет соответствующий микроприказ. РМКП15] (поле ЗП) определяет наличие запроса к ОП за байтом информации. РМКПЗО] содержит микроприказ ТОЧП Ф 0 анализа триггера очередности (пп. 2.1, 3.4). Единичное состояние этого триггера свидетельствует о том| что выставленный процессором запрос к ОП обслужен. Эти микроприказы были обособлены в связи с асинхронностью работы абонентов с ОП. Запрос к ОП на обслуживание может быть выдан ЦП в любой микрокоманде, после чего продолжается выполнение микропрограммы. Когда необходимо использовать данные из ОП или необходимо убедиться, что запись результата в ОП выполнена, в очередной микрокоманде выставляется микроприказТОЧП=0. Поскольку цикл работы ОП в четыре раза больше такта ЦП, запрос выдается обычно за 4—5 тактов до использования данных. Вследствие такого построения микропрограмм микроприказы работы с ОП оказываются слабо связанными с другими микроприказами и поэтому они выделены для позиционного кодирования.

Позиционный микроприказ ВКЛ ПА содержится в поле ПА (РМКП31]) и предназначен для включения режима переадресации РОП (п. 2.3). Этот режим используется при обработке данных переменной длины и разрешает переадресацию РОП не от полей нулевого слова микрокоманды, а от адресного регистрасчетчика.

Второе слово микрокоманды, которое считывается в РМК2, выполнено в традиционной системе кодированного управления и содержит ряд операционных полей В, Г, Д, Е, Ж, Л, И, П, Р, С, Т, УК, УТ, уд.

Третье слово микрокоманды, которое считывается в РМКЗ, отражает особенности магистральной организации ЦП. Все 32 разряда этого слова могут быть представлены как полноразрядная константа и поданы на любую из магистралей ЦП. Таким образом, они могут участвовать в вычислениях наряду с данными, а также записываться в ОП, сверхоперативную память и т. п. Наиболее интенсивно полноразрядная константа используется как маска, накладываемая на информацию, участвующую в вычислениях.

Содержимое третьего слова используется и для непосредственной записи констант в регистры ЦП, т. е. минуя информационные магистрали. Содержимое РМКЗ [1/11] может быть записано в регистр адреса возврата и таким образом использоваться для организации выхода в основную микропрограмму из микроподпрограммы. Два байта (поля РКС и РМС) служат для организации ветвления микропрограмм по анализам сравнения. При этом содержимое поля РКС является эталоном, с которым производится сравнение информации, а содержимое поля РМС — маской, разрешающей поразрядное сравнение. При ветвлении учитывается результат сравнения части эталона и информации, выделенные маской.

РМКЗ [28/31 ] используются для установки значения регистра результата деления в микропрограммах команд с фиксированной и плавающей запятой.

Наличие единицы в поле УК (РМК2 [26]) свидетельствует о том, что содержимое третьего слова следует воспринимать как константу. Нулевое значение поля УК позволяет использовать РМКЗ [1/3] и РМКЗ [4/7] как дополнительные кодированные поля микроприказов X и Ф.

Для считывания микрокоманды в блоки БОПО—БОПЗ (см. смотреть статью под номером 60) подаются код адреса микрокоманды (адрес БОП) и сигналы ЧТ БОП и СТР РИ (п. 1.7). Последний дополнительно стробируется сигналом с единичного выхода триггера приема информации РМК—(ТПРМК). Этот триггер переключается в зависимости от режима работы ЦП (автомат или такт), а также блоком диагностики ЦП". Дешифраторы, вырабатывающие микроприказы от кодов полей микрокоманды, стробируются триггером рабочего состояния (ТРС). Этот триггер устанавливается в зависимости от режима работы ЦП по сигналу ПУСК, вырабатываемому от кнопки «ПУСК» с пульта управления. Сброс этих триггеров происходит по сигналу ОСТАНОВ или по сигналу останова ДОСТ из блока диагностики. Дешифратор поля анализов Б не стробируется (т. е. активизирован постоянно).

В состав БРР входят также следующие схемы: шифратор пульта управления (ШПУ), который формирует адреса начальных микрокоманд микропрограмм обработки прерываний по сигналам прерываний и от кнопки «ПРЕРЫВАНИЕ» с пульта управления (п. 3.2) и адреса начальных микрокоманд пультовых процедур при нажатии соответствующей кнопки (п. 3. 6); схема для передачи адреса микрокоманды, набранного на пульте управления, или адреса микрокоманды ЦП, формируемые блоком диагностики.

На смотреть статью под номером 60 128разрядный РМК показан условно. Выделены лишь операционные поля, подключенные к дешифраторам микроприказов, поле константы, поля ПРВ и Б, принимающие участие в работе аппарата анализа и поле базового адреса следующей микрокоманды.

БФА БОП предназначен для формирования адреса микрокоманды в соответствии с выполняемым алгоритмом и в зависимости от обрабатываемых данных и получаемых результатов [а. с. 613401 (СССР)]. В его состав входят ряд регистров, узел анализа и ветвлений, узел коммутатора адреса. 116

Последний служит для выдачи в память микропрограмм сформированного адреса следующей микрокоманды. В коммутатор адреса код адреса может поступать с нескольких направлений. При нажатии кнопки на пульте управления сигнал от нее поступает в ШПУ, который формирует код адреса соответствующей микропрограммы. Этот код поступает через коммутаторы в блок памяти, из которого начинает выбираться последовательность микрокоманд, осуществляющая заданное с пульта действие (исполняться пультовая микропрограмма). При выполнении процессором программы начальный адрес последовательности микрокоманд определяется кодом команды (кодом операции). При выборке команды ее код операции заносится в регистр дешифрации команды, а при опережающей подвыборке — в регистр хранения команды. По завершению подготовительных действий начальный адрес микропрограммы данной команды, численно равный ее коду операции, подается через коммутаторы на адресные входы БОП. Начинает выбираться микропрограмма данной команды.

При исполнении микропрограммы очередная микрокоманда считывается из БОП и поступает в регистр микрокоманд. Часть ее разрядов, составляющая поле базового адреса, выдается в коммутатор и через него на адресные входы блока памяти. Следующая микрокоманда будет выбрана по адресу, заданному в текущей микрокоманде. Так осуществляется управление в последовательных ветвях микропрограмм.

Последовательность выборки и исполнения микрокоманд может быть изменена при прерывании. Необходимость срочно прервать нормальное течение микропрограммы возникает при различных программных ошибках, таких, как нарушение защиты памяти, обращение в ОП по несуществующему адресу, неверное задание адресов команд и т. п. Сигнал прерывания поступает также в ШПУ. В зависимости от характера прерывания последний вырабатывает тот или иной адрес, который определяет микропрограмму реакции на соответствующую ситуацию. Через коммутаторы адрес поступает в БОП. В этот момент поступление других адресов через коммутаторы блокируете.

При необходимости вызвать с пульта управления какуюлибо микрокоманду из блока памяти ее адрес, набранный на клавиатуре пульта, подается на входы коммутаторов одновременно с управляющим сигналом, и нужная микрокоманда выбирается из блока памяти. Имеется возможность управлять работой центрального процессора с помощью блока диагностики. Задавая адреса микрокоманд процессора, он осуществляет выполнение соответствующей диагностической процедуры (п. 10.4). Для выхода из вспомогательных микропрограмм (микроподпрограмм) в основную используется адрес возврата. В основной микропрограмме он записывается в регистр адреса возврата перед входом в микроподпрограмму. Через коммутатор адрес возврата поступает в БОП. Адрес возврата может быть модифицирован схемами анализа.

Так как адрес следующей микрокоманды может одновременно формироваться в различных блоках и поступать с нескольких направлений, то коммутаторы адреса управляются приоритетной схемой. На выходе коммутатора может быть только один адрес, имеющий высший приоритет из поступающих на вход в данный момент. Адрес с пульта управления имеет наивысший приоритет. Поэтому оператор может вмешиваться в работу машины в любое время. Следующими по приоритету идут: адрес БОП, поступающий из блока диагностики, адреса из ШПУ, РАВ, РХК или РДШК, с магистрали анализов и, наконец, из РМК (базовый адрес):

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

Высокая скорость выполнения операций процессором обусловлена применением компактных и эффективных алгоритмов. Однако небольшая глубина алгоритма требует высокой его разветвленное™ и быстрой реакции на возникшие в процессе вычислений ситуации. В большинстве микрокоманд осуществляется анализ данных и результатов с целью выбора пути продолжения алгоритма. Схемы анализа и ветвлений дают возможность разветвления алгоритма по 16 направлениям. Сложность реализации таких процессов заключается в том, что результат анализа должен быть учтен при формировании адреса следующей микрокоманды, которое заканчивается к началу синхросерии С2 текущего такта. Если к нужному сроку получить результат анализа не удается (например, учесть полученный на выходе БАЛ результат), то принимаются специальные меры для запоминания условий анализа с возможностью последующего использования, а алгоритм строится таким образом, чтобы темп обработки не замедлялся.

В каждом конкретном случае проверяется свой набор условий. Хотя общее число таких проверок для разнообразных условий достаточно велико, набор условий, проверяемых одновременно в одной микрокоманде, ограничен. Это позволило скомпоновать проверяемые условия в стандартные наборы. Результаты их анализа выдаются на четырехразрядную шину, называемую магистралью анализов (МАН). Номер анализа задается полем Б РМК1. Этот номер дешифрируется, и сигнал с выхода дешифратора подключает к МАН выход соответствующей схемы анализа.

Через МАН результат анализа поступает в четыре младших разряда коммутатора адреса, подменяя одноименные 1 разряды базового адреса, приходящего из РМК. Старшие разряды базового адреса выдаются в БОП через коммутатор, не претерпевая изменений. Таким образом возможно разветление на 16 направлений в пределах «страницы» блока памяти (группы ячеек, адресуемых неизменной частью адреса). Однако ветвление каждый раз на 16 направлений нерационально, так как требует большого количества ячеек памяти, информация в которых должна повторяться. Поэтому количество направлений ветвления ограничивается с помощью других разрядов микрокоманды — полем признака ветвления — РМК1111/14]. Наличие единицы в какомлибо разряде этого поля разрешает подключение через схемы совпадения в качестве значения разряда следующего адреса содержимого соответствующего разряда магистрали анализов. Отсутствие признака ветвления в данном разряде блокирует прием разряда адреса с МАН. В этом случае используется значение разряда адреса, поступающего из РМК. При единице в одном разряде поля ПРВ возможно разветвление на два направления, при единицах в двух разрядах — на четыре направления и т. д. Таким образом, использование одного анализа в сочетании с применением признаков ветвления позволяет, по сути дела, выполнять от двух до 15 видов проверок (нулевое значение признака ветвления есть отсутствие анализа).

Группу основных анализов составляют анализы с 16 по 45 (смотреть статью под номером 17). Номер анализа задается кодом поля Б в РМК1. При этом формируется соответствующий микроприказ (например, АН16). По микроприказу анализа в разряды МАН [0/3] считывается либо содержимое разрядов регистра или магистрали, которые указаны в строке анализа, либо в соответствующем разряде МАН устанавливается единица при выполнении условий, указанных в строке анализа.

При выполнении анализов с 16 по 26 на МАН [0/3 ] считывается значение четырех разрядов РДШК, РАВ, счетчика РОН или магистралей Ml, М2 и МЗ. При выполнении анализа 27 на МАН [0 ] выдается значение РДШК [3 ]. На МАН [1 ], МАН [2] и МАШЗ] устанавливаются единицы (МАЩ1] = 1, МАН [2] = 1, МАН [3] = 1), если соответственно значения всех разрядов Ml, М2 и МЗ будут равны нулю. При выполнении анализа 28 МАН [0] и МАН [1 ] равны единице, когда выполняются условия М2[1/7] = = МЗ[1/7] и М2 [0] + М3[0]; МАН[2] принимает значение М3[0], а МАШЗ] — значение переноса сумматора.

Условия остальных анализов аналогичны и указаны в соответствующих строках смотреть статью под номером 17; ниже будут пояснены некоторые из них.

Анализ 33. МАН [1] = 1, если на ПУ нажата клавиша «МУЛЬТИСИСТ»;

Анализ 38. Применяется при выборке команд и, в отличие от остальных, является приоритетным (п. 4.4);

Анализ 40. МАН[1] = 1, если на М2 [24/27] находится код цифры, большей 9; МАН [2] = 1, если на М2 [28/31] находится код знака «плюс» и МАН[2] = 0, если там любой другой код;

запятой. Результат анализа 29 показывает, на сколько тетрад надо нормализовать операнд двойной длины, находящийся на М2 и МЗ, или операнд длиной в слово, находящийся на М2 (п. 7.2). Результат анализа 31 дает сравнительную оценку нормализации двух операндов, расположенных на магистралях М2 и МЗ (пп. 7.3, 7.4). Результат анализа 36 дает возможность анализировать ход деления и обеспечивает своевременный выход из этого цикла (пп. 7.3, 7.4). Результат анализа 37 определяет состояние сомножителей и промежуточного произведения, а также обеспечивает выход из цикла (п. 7.3). Анализ 39 применяется при выборке команд для определения правильности задания команд или данных, для определения неуспешности переходов и для выбора направления ветвления по формату команд (п. 4.4). Анализ 42 используется для определения класса прерываний (пп. 3.2, 4.3).

Анализы 41, 54, 55 и 56 отсутствуют. По соответствующим им микроприказам выполняются следующие действия: АН41 — передача в РА БОП кода операции при выходе на микропрограмму операции после выборки команды; АН54 — передача управления блоку диагностики ЦП при выполнении команды ДИАГНОСТИКА (пп. 10.3, 10.6); АН55 — передача управления каналам ввода-вывода при выполнении . команды ДИАГНОСТИКА (п. 13.5); АН56 — блокировка ошибок защиты памяти при выполнении команд УСТАНОВИТЬ КЛЮЧ ПАМЯТИ и ПРОЧИТАТЬ КЛЮЧ ПАМЯТИ.

Чтобы проиллюстрировать формирование адреса следующей микрокоманды с помощью аппарата анализов, рассмотрим примеры выполнения некоторых из них.

Пример. Допустим, что необходимо произвести ветвление микропрограммы по содержимому РДШК [0/3]. Для этого используется анализ 16 с признаком ветвления, равным 1111, т, е. F. Микроприказ, по которому выполняется этот анализ, записывается так: AH16 (F). Базовый адрес следующей микрокоманды должен быть следующего вида: X.Y.0000, где X и Y — трех и четырехразрядные двоичные коды, а последние четыре модифицируемых разряда должны быть равны нулю. При РДШК [0/3? = KI.MN, где К, L, М и N — любые значения двоичных разрядов, образующие коды от 0 до F, схема модификации адреса будет выглядеть следующим образом.

Пример. Допустим, что необходимо произвести ветвление микропрограммы в зависимости от позиции байта в слове. Адрес байта обычно хранится в РОП15. В микропрограмме производится его считывание из РОП15 на магистраль, например на Ml. Так как код позиции байта оказывается на Ml [30/31], можно использовать микроприказ АН24 (3). При обозначениях, принятых выше, модификация будет выполняться по следующей схеме.

По результатам анализа 18 возможен переход по адресу возврата; при этом последняя его тетрада, находящаяся в РАВ [7/10], может быть модифицирована обычным образом. Возможен также безусловный переход по адресу возврата. Это происходит при наличии в микрокоманде двух микроприказов: АН 18 и ВБАВ (ветвление безусловное по адресу возврата, пп. 4.2, 6.1). Существует еще одна возможность перехода по содержимому РАВ— при использовании анализов сравнением АН СР2.

Табличные регистры анализа ТРА1—ТРА7 (смотреть статью под номером 18) представляют собой шесть четырехразрядных регистров [а. с. 591075 (СССР)]. Регистр ТРА5 для анализа не используется, его применение описано в пп. 2.3 и 3.5. Состояние всех четырех триггеров, входящих в регистр, может быть проанализировано одним из т. е. возможно формирование шестнадцати адресов от X.Y.0000 до X.Y.1111.

Если необходимо произвести ветвление микропрограммы на четыре направления по значению РДШК [1/2], то признак ветвления должен быть равен ОНО, т. е. 6. В этом случае используется микроприказ АН16 (6) Базовый адрес должен быть такого вида: X, Y.P00Q, а значение РДШК[0/3] — Z00Z, Z01Z, Z10Z, или Z11Z, где Р, Q и Z — любые значения двоичных разрядов. По микроприказу АН16 (6) на МАН[0/3] считывается значение РДШК [0/3], микроприказов АН1—АН7 (кроме АН5). При этом разряды МАН принимают значения, соответствующие состояниям триггеров регистра, т. е. происходит чтение содержимого регистра на МАН. В регистры ТРАЗ и ТРА4 объединены системные триггеры. О некоторых из них: ТИПУ, ТФАП, ТЗ ПКЗ упоминалось в п. 3.4. Состояние триггера интервалов времени (ТИВ) анализируется по микроприказу АНЗ (1) в микропрограмме обработки таймера (п. 4.3). Триггер команды ввода-вывода (ТВ/В) анализируется по микроприказу АН4 (2) при выполнении команды ввода-вывода процессором (п. 5.3). Триггер блокировки (ТВ) анализируется по микроприказу АН4 (1) при обработке процессором прерываний от ввода-вывода.

Регистры ТРА6 и ТРА7 объединяют служебные триггеры, которые используются в операциях обработки данных переменной длины (пп. 8.3, 8.4).

Регистры ТРА1 и ТРА2 используются для так называемого отсроченного анализа. Сущность его заключается в том, что какойлибо анализ выполняется в ходе микропрограммы либо заблаговременно, либо в удобный момент (например, когда данные пересылаются через магистрали). При этом результат анализа, который выдается на МАН, для немедленного ветвления не используется, а запоминается в ТРА1 или ТРА2 по микроприказу ТРА1 := МАН (ТРА2 := МАН). В нужный момент времени запомненный результат читается на МАН микроприказом АН1 (X) или АН2 (X), где X = ПРВ, в результате чего происходит соответствующее ветвление микропрограммы (п. 6.2).

В процессоре применяется еще один эффективный метод выполнения проверок — анализы путем сравнения с эталоном с применением маски [а. с. 615538 (СССР)]. Сравнению подвергаются 8разрядные группы информации, поступающие из различных источников (смотреть статью под номером 62). Эталон и маска задаются микропрограммно полями РКС и РМС в такте выполнения анализа. Регистр микрокоманд показан условно в виде операционного поля и поля константы, В операционном поле выделены поля ПРВ и Б; последнее содержит коды анализов. В поле константы выделены поля РКС и РМС.

По одному из микроприказов выполнения анализа сравнением (АН8—АН15, смотреть статью под номером 19) содержимое двух проверяемых 4разрядкых групп в качестве кодов условия поступает в схемы сравнения СХ СР1 и СХ СР2. В схеме сравнения осуществляется поразрядное сравнение кода условия с эталоном, заданным полем РКС. Маска сравнения, заданная полем РМС, разрешает сравнение в тех разрядах, где она содержит единицы. В тех разрядах, где в маске нули, сравнение считается выполненным независимо от значения проверяемого кода и эталона. Имеются два вида анализов путем сравнения. Первый из них — анализ сравнением первый — осуществляет модификацию базового адреса по результату анализа. Если все открытые маской разряды сравнились с эталоном, то по микроприказу АН СР1 схема сравнения СХ СР1 выдает единицы в разряды МАН [0, 2], а схема сравнения СХ СР2 — единицы в разряды МАН [1,3]. Если сравнения не происходит, то соответствующие разряды МАН принимают нулевое значение. Таким образом, в результате анализа первого вида возможно формирование четырех комбинаций последней тетрады адреса БОП: 1010 — когда произошло сравнение только разрядов [0/3] кода условия с. разрядами [0/3] кода сравнения; 0101 — когда произошло сравнение только разрядов [4/7] кода условия с разрядами [4/7] кода сравнения и 1111 либо 0000 — когда сравнение обеих тетрад этих кодов произошло либо не произошло. Разряды, на которые наложена нулевая маска, всегда считаются сравнившимися.

Пример. Выяснить, не является ли код операции в РДШК кодом 1С. Используется анализ 8 вида АН СР1. Код сравнения должен быть 1С, маска сравнения может быть FF или 1С. Для кодов в РДШК, равных 1С, и допустим, 4С (соответственно случаи а и б), формирование кода на МАН происходит по следующей схеме:

код сравнения (поле РКС)   а) 0001 1100, б) 0001 1100, маска сравнения (поле РМС)         1111 1111,      1111 1111, код в РДШК (код условия)    0001 1100,      0100 1 100, МАНЮ/3]           1111;   0101.

В случае а в результате сравнения обеих тетрад на МАН [0/3] формируется, код 1111; в случае б в результате сравнения только правой тетрады на МАН[0/3] формируется код 0101. Один из этих кодов модифицирует младшую тетраду базового адреса БОП, позволяя разветвиться на два направления: РДШК[0/7] — = 1С и РДШК [0/7] Ф 1С.

Пример. На РДШК может находиться один из кодов операции: 1С, 4С, 5С; требуется выяснить наличие кода 4С. Используется анализ 8 вида АНСР1. Так как сравнению подлежит только первая тетрада кода операции, то код сравнения можно выбрать равным 0100, а маска сравнения F0, так как единичное значение маски разрешает сравнение соответствующих разрядов кодов условий и сравнения, а нулевое всегда означает их сравнение при любых значениях этих кодов. Для кодов в РДШК, равных 4С и, допустим, 5С (соответственно случаи а и б), формирование кода на МАН происходит по схеме:

код сравнения (поле РКС)   а) 0100 0000, б) 0100 0000, маска сравнения (поле РМС) 1111 0000,  1111 0000, код в РДШК (код условия) 0100 1 100,      0101 1100.

В случае а произошло сравнение обеих тетрад, в случае б правые тетрады считаются сравнившимися. Один из кодов МАН модифицирует младшую тетраду базового адреса БОП.

Второй вид анализа путем сравнения — анализ сравнением второй — осуществляет по результату анализа условный переход по адресу возврата. В регистр РАВ из поля констант заранее записывается желаемый адрес. При сравнении коца условия с эталоном схемы сравнения СХ СР1 и СХ СР2 формируют сигнал, который по микроприказу АН СР2 поступает в коммутатор адреса. Последний выдает в БОП адрес возврата в качестве адреса следующей микрокоманды. При несравнении в качестве адреса следующей микрокоманды принимается базовый адрес.

Применение анализов АН12 (АН СР1) и АН14 (АН СР2) рассматривается в п. 5.1 АНЮ (АН СР2) — в п. 6.1, АН14 и АН15 — в п. 8.1.

Метод ветвления по результату сравнения широко использован в реализованных алгоритмах. Он удобен для микропрограммирования, так как дает возможность выполнять несколько близких по типу операций по единой микропрограмме. Например, команда умножения полуслов выполняется по микропрограмме умножения полноразрядных слов. Процесс умножения останавливается по достижении счетчиком циклов определенного состояния (п. 6.2). Операции сравнения (где отсутствует запись результата) выполняются по микропрограмме вычитания, ход которой прерывается перед записью результата. Для этого в РАВ заранее заносится адрес начала выборки, а код операции, находящийся в РДШК, подвергается сравнению с эталоном (кодом операции сравнения).

При выполнении анализа путем сравнения в качестве кода условия могут быть приняты код операции в РДШК,. старшие и младшие тетрады слов, находящихся на магистралях М2 и МЗ, содержимое счетчиков СТ РОН и СТЦ, а также набор специальных условий (анализ 14). Особое место занимает регистр РСБФ (анализ 15). В нем сравнению может быть подвержена любая ранее поступившая информация, в том числе и принятая с МАН. Это означает, что сравниваться может результат обычного анализа или даже двух анализов, так как четырехразрядный код с МАН может быть независимо в разных тактах записан в правую или левую половины восьмиразрядного регистра РСБФ либо в обе половины одновременно. Последнее обстоятельство дает возможность осуществлять разветвление по трем направлениям

Применение маски дает возможность проверять не весь байт, а только его часть. Таким образом, например, можно выделять класс команд, проверять знаки результатов и т. п. Один блок сравнения на 8 разрядов обеспечивает 256 X 256 = 64 386 видов проверок путем задания любых из возможных кодов и масок. Этот метод не ограничен какойлибо системой команд или конкретными алгоритмами микропрограмм. Он может быть рекомендован для широкого использования в системах, для которых микропрограммы разрабатываются самими пользователями. Его применение позволяет также значительно экономить ячейки памяти, так как в данном случае всегда имеет место ветвление только на 2 направления: либо по найденному искомому коду, либо по всем остальным кодовым комбинациям, в результате чего занимаются всего 2 ячейки памяти. Применение других методов, например, метода функционального перехода, используемого в моделях IBM/360, ведет к большому расходу ячеек, так как в этом случае в одном из них кодируется реакция на искомый код, а во всех других — одно и то же противоположное действие. Пусть, например, необходимо выполнить одно действие при состоянии счетчика 0101 и другое при всех прочих его состояниях. Если ветвление производится путем модификации адреса присвоением значения счетчика некоторым четырем разрядам кода адреса БОП, то занимается 16 ячеек, из которых 15 служат для организации выполнения одного и того же действия, и только ячейка с адресом Х.Х.0101 предназначена для запланированного.

Схемы микропрограммного управления размещены в стойке процессора следующим образом.

Блок режимов работы: реализован на ТЭЗ дешифратор ДШ— 9 шт.; дешифратор полей ДШП — 2 шт. и частично в ТЭЗ пульт управления ПУ 1, ПУ2, ПУЗ и ПУ4;

Блок формирования адреса БОП: коммутатор адреса БОП реализован на четырех ТЭЗ адрес БОП АБОП; узел анализов и ветвлений на ТЭЗ анализ 1 АН1 —4 шт., анализ 2 АН2 — 1 шт., анализ деления АНД — 4 шт., анализ циклов АНЦ — 1 шт., анализ неуспешной передачи управления АН НПУ — 1 шт., регистр анализов РАН —4 шт., а также часть узлов в ТЭЗ регистр сравнения буферный РСБФ, регистр прерываний РПР регистр дешифрации команды РДШК.

Желательно оставить комментарий, также можно поставить трэкбек со своего блога или сайта.

Написать сообщение

Яндекс.Метрика