Микропрограммный автомат Уилкса

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:09, 3 мая 2016.

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

Логическую структуру микропрограммного автомата можно описать, выводя ее из уже знакомой структуры управляющего автомата со схемной логикой. Возьмем простейший из вариантов такой структуры – автомат Мура с дешифратором состояний и триггерами D в качестве элементов памяти. Отличительной особенностью микропрограммного автомата с программируемой логикой является наличие памяти микропрограмм. Каждой команде вычислительного устройства в этой памяти соответствует микропрограмма.

Введение

Опыт показал, что разделы электронного компьютера, которые являются самым простыми, являются теми, у которых есть простая логическая структура. Мало того, что эта структура может быть с готовностью принята во внимание инженером по техобслуживанию при поиске отказа, она также позволяет использовать определяющие местоположение отказа программы и протестировать оборудование без использования тщательно продуманного тестового механизма. Именно в разделе управления электронно-вычислительных машин обычно возникает самая большая степень сложности. Это важно, потому как в машине разрабатывали всесторонний код заказа, чтобы сделать его простым и быстрым в работе. В целом для каждого различного порядка в коде некоторое специальное оборудование должно быть обеспечено, и более сложная функция порядка - это более сложное оборудование. В прошлом страх перед незаконным усложнением схемы управления машин препятствовал тому, чтобы разработчики электронных машин предоставили такие услуги, как заказы на операции с плавающей точкой, несмотря на то, что опыт с релейными машинами и с интерпретирующими подпрограммами показал, насколько ценны такие заказы. Эта бумага описывает метод разработки схем управления машиной, которая совершенно логична и которая позволяет изменениям или дополнениям к коду заказа быть сделанными без оперативных изменений к схемам. Схема этого метода была дана одним из нас, Уилксом, на Конференции по Автоматическим Вычислительным машинам в Манчестерском университете в июле 1951. Работа, требовавшаяся единственным порядком машины, может быть разломана на последовательность более элементарных операций; например, смещение числа в аккумуляторе на одно место вправо может включить, во-первых, передачу числа к вспомогательному сдвиговому регистру, и, во-вторых, передачу числа назад к аккумулятору вдоль наклонного пути. Эти элементарные операции будут упоминаться как микрооперации. Основные операции машины, такие как сложение, вычитание, умножение, и т.д., думаются как составляемые из микропрограммы микрооперации, требовавшие микропорядка.

Немного истории о создателе

Уилкс.png

Морис Винсент Уилкс (Maurice Vincent Wilkes, 26.06.1913-29.11.2010). Учился с 1931 по 1934 год в Кембриджском (Англия) университете, в 1936 получил титул доктора философии, написав диссертацию о распространении радиоволн в ионосфере. После этого работал и преподавал в родном университете. В 1945 году стал руководителем компьютерной лаборатории, и оставался на этом посту до 1980 года. В 1951 году М.В. Уилксом было предложено проектировать управляющие автоматы с помощью микроинструкций, которые хранятся в памяти процессора. Такой способ облегчает проектирование автомата и позволяет легко его изменить. Разработка EDSAC - главный конструктор первого компьютера с ПЗУ, которое хранило программный код, а также изобретение микрокода, микропрограмм и использование программных библиотек. Он же основал в 1957 году Британское компьютерное общество (англ.) и был его первым президентом. Морис Уилкс ввел систему мнемонических обозначений для машинных команд, названную языком  ассемблера.

Награды

  • 1956 — почётное членство в Лондонском королевском обществе
  • 1967 — Премия Тьюринга за разработку EDSAC и введение понятия программных библиотек
  • 1968 — Harry H. Goode Memorial Award за вклад в развитие компьютерной техники
  • 1976 — почётное членство в Королевской инженерной академии
  • 1980 — премия Эккерта-Мочли
  • 1997 — Медаль Джона фон Неймана за вклад в развитие компьютерной техники

Структурная схема микропрограммного устройства

Модель микропрограммного управления по Уилксу М. В.

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

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

Другая часть системы управления касается управления последовательности микрокоманд, требуемых выполнить каждый порядок машины, и с работой логических элементов, требуемых для выполнения каждой микрокоманды. Это вызовет микроблок управления; он состоит из дерева декодирования, двух матриц выпрямителя и двух регистров (дополнительный к тем из модуля регистра команд) соединенный, как обозначено на рисунке, который показывает, как импульсы раньше управляли логическими элементами в арифметическом модуле, и модуль регистра команд генерируется. Серия импульсов управления от импульсного генератора применяется к вводу дерева декодирования. Каждый импульс направлен к одной из выходных строк дерева, согласно числу, стоящему в регистре I. Выходные строки передаются в матрицу выпрямителя A и выводы этой матрицы являются импульсами, которые управляют различными логическими элементами, связанными с микрооперациями. Таким образом, одна входная строка матрицы соответствует одной микрокоманде. Адрес микрокоманды - число, которое должно быть помещено в регистр I, чтобы заставить импульс управления быть направленным к соответствующей строке. Выходные строки от дерева также передаются во вторую матрицу B, которому соединили ее выводы, чтобы зарегистрировать II. Эта матрица соединила проводом на нем адрес микрокоманды, которая будет выполняться затем своевременно так, чтобы адрес этой микрокоманды был помещен в регистр II. Непосредственно перед тем, как следующий импульс управления применится к вводу дерева, связь устанавливается между регистром II и регистром I, и адрес микрокоманды, который должен выполняться, передается в регистр I. Таким образом дерево декодирования готово направить следующий входящий импульс управления к корректной выходной строке. Таким образом, приложение импульсов поочередно к вводу дерева и к соединению логического элемента регистрирует I и II причин предопределенная последовательность микрокоманд, которые будут выполняться.

Необходимо иметь средства, посредством чего курс микропрограммы может быть сделан условным выражением на том, является ли данная цифра в одном из регистров арифметического модуля или модуля регистра команд 1 или 0. Средство выполнения этого показано в X на Рис. 1. Двухсторонний переключатель, которым управляет специальный триггер, вызывал условный триггер, вставлен между матрицей A и матрицей B. Условный триггер может быть установлен более ранней микрокомандой с любой цифрой от любого из регистров. Два отдельных адреса соединены проводом в матрицу B, и тот, который передается в регистр I, и таким образом становится адресом следующей микрокоманды, определен установкой условного триггера.

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

При желании два ветвления могут быть вставлены в связи между матрицей A и матрицей B, так, чтобы любой из четырех альтернативных адресов для следующей микрокоманды мог быть выбран согласно настройкам двух условных триггеров. Другая возможность состоит в том, чтобы сделать вывод из ответвления дерева декодирования, прежде чем это введет матрицу так, чтобы природа микрооперации, которая выполняется, зависела от установки условного триггера.

Микропрограмма, соединенная проводом на матрицах, содержит разделы для выполнения операций, требуемых каждым порядком в коде основном команды машины. Чтобы инициировать работу, только необходимо, чтобы управление в микропрограмме было отправлено в корректную точку входа. Это сделано, поместив функциональные цифры порядка в наименее значительной части регистра II, другие цифры в этом регистре, сделанном нулем. Микропрограмма создана так, чтобы, когда это число передаются в регистр I, управление в микропрограмме было отправлено в корректную точку входа.

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

Подобный комментарий применяется в связи со степенью гибкости, которая будет обеспечена при разработке системы коммутации для модуля регистра команд. Если спецификация машины позволяет тому же числу регистров использоваться в арифметических разделах и разделах управления, конструкция этих двух разделов может быть идентичной за исключением дальних, поскольку число цифр затронуто. В новой машине в процессе строительства в Математической Лаборатории, Кембридже, регистры создаются в основных единицах, каждый содержит пять регистров и суммирующе-вычитающее устройство вместе со связанной системой коммутации. Надеются, что будет возможно использовать идентичные модули в арифметическом модуле и в модуле регистра команд.

Пример

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

  • А - Регистр множимого делителя
  • B - Аккумулятор (младшая значащая половина).
  • C - Аккумулятор (старшая значащая половина).
  • D - Сдвиговый регистр.

Регистры в модуле регистра команд следующие:

  • E - Регистр соединялся со схемами доступа хранилища; адрес места хранения, к которому требуется доступ, помещен сюда.
  • F - регистр Управления последовательностью; содержит адрес следующего порядка, который должен выполняться.
  • C - Регистр, используемый для подсчета.

Это было принято при составлении микропрограммы, что было суммирующе-вычитающее устройство в арифметическом модуле с одним вводом, постоянно соединенным с регистром D и подобным суммирующе-вычитающим устройством в модуле регистра команд с одним вводом, постоянно соединенным с регистром G. Для удобства предполагалось, что системы коммутации в каждом случае были достаточно всесторонними, чтобы обеспечить любую требуемую микрооперацию. Далее предполагалось, что арифметический модуль предусмотрел 20 цифр и что номера 0, 1 и 18 могли быть представлены по желанию в один из регистров или сумматор модуля регистра команд. Используются два условных триггера. Все микрооперации включая тех, которые включают доступ к хранилищу, как предполагается, занимают то же количество времени.

Таблица 1 дает коду заказа машины и Таблице 2 микропрограмму. Каждая строка Таблицы 2 относится к одной микрокоманде; первый столбец дает адрес микрокоманды, второй столбец определяет микрооперации, требовавшиеся в арифметическом модуле машины, и третий столбец определяет микрооперации, требовавшиеся в модуле регистра команд. Четвертый столбец показывает, какой условный триггер, если таковые имеются, должен быть установлен и цифра, которая должна использоваться, чтобы установить его; например, (1) сс означает, что триггерный номер 1 установлен разрядом знака числа в регистре C, в то время как (2) Гл означает, что триггерный номер 2 установлен младшей значащей цифрой числа в регистре C. В случае безусловных микрокоманд столбцы 5 и 7 - пробел, и столбец 6 содержит адрес следующей микрокоманды, которая будет выполняться. В случае условных микрокоманд столбец 5 показывает, какой триггер используется, чтобы управлять условным переключателем, и столбцы 6 и 7 дают альтернативные адреса, в которые должно быть отправлено управление, когда условный триггер содержит 0 или 1 соответственно.

Таблица 1

Нотация: Acc = аккумулятор
Acc, старший значащий останов аккумулятора
Acc2 = старшая значащая половина аккумулятора
n = место хранения n
C (X) = содержание X (X = регистр или место хранения)

Таблица 2
Порядок Эффект порядка
A n C(Acc) + C(n) to Acc
S n H C(Acc) - C(n) to Acc C(n)toAcc2
n V n C(Acc2) . C(n) to Acc, where C(n) ≥ 0
T n C(Acc1) to n, 0 to Acc C(Acc1) to n
U n R C(Acc) . 2^(-(n+1)) to Acc
n L n C(Acc) . 2^(n+1) to Acc If C(Acc) < 0, передача контроля
G n если C(Acc) ≥ 0, проигнорируйте (т.е., продолжите последовательно).
I n Подсчет следующего символа на входном механизме в nSend C (n)
O n в nSend C (n), чтобы вывести механизм

Микрокоманды от 0 до 4 касаются экстракции заказов от хранилища. Они служат, чтобы вызвать передачу порядка от хранилища до registerE и затем заставить пять старших значащих цифр порядка быть помещенными в регистр II, так что в итоге управление передано одной из микрокоманд 5 - 15, каждый из которых соответствует ясному приказу в коде заказа машины. Таким образом последовательность микрокоманд должна была выполнить определенную требовавшуюся работу, начат.

Таблица 2

Нотация: A, B, C.. стенд для различных регистров в модулях арифметического и регистра команд.
"C к D" указывает, что схемы коммутации соединяют вывод регистра C к вводу регистра D;
"(D + A) к C" указывает, что вывод регистра A соединен с одним вводом добавляющего модуля (вывод D постоянно соединен с другим вводом), и вывод сумматора, чтобы зарегистрировать C. Числовой символ n в кавычках (например, "n") обозначает источник, вывод которого - номер n в модулях младшей значащей цифры.

Синхронизация микроопераций

Предположение, что все микрооперации занимают тот же отрезок времени для выполнения, маловероятно, что подтверждено на практике. В частности, в параллельной машине может не быть возможно разработать сумматор, в котором время распространения переноса достаточно коротко, чтобы позволить дополнению выполняться в существенно тот же отрезок времени, как тот взятый для простой передачи, будет необходимо, поэтому, расположить, что генератор формы волны, подающий дерево декодирования, должен, когда соответственно стимулировано импульсом от одного из выводов от матрицы A, предоставить несколько более длинный импульс, чем это обычно требуется. Другие операции могут брать много раз так же долго, чтобы выполняться, как обычная микрокоманда; например, доступ к и от хранилища (особенно, если хранилище задержки используется), и работа устройств ввода и вывода машины. Последовательность операций в микропрограмме поэтому должна быть прервана. Способ сделать это состоит в том, чтобы предотвратить импульсы от генератора формы волны, достигающего дерева декодирования в течение времени ожидания. Этот метод, несмотря на то, что кажется достаточно выполнимым, включает просто вид сложности, которой существующая система разработана, чтобы избежать. Более привлекательная система должна заставить машину ожидать на условной микрокоманде, которая возвращает управление себе, если связанный условный триггер не установлен. Установка этого триггера имеет место, когда работа завершена, и управление тогда переходит к следующей микрокоманде в последовательности. Машина находится, таким образом, в условии "динамической остановки" при ожидании работы, которая будет завершена. У этой системы есть преимущество, что никакая сложность не введена в модули, предоставляющие формы волны к дереву декодирования, и что требуемые контрольно-измерительные приборы подобны этому, уже предусмотрело другие цели.

Обсуждение

Будет замечено, что оборудование должно было выполниться, сложный порядок в коде заказа машины имеет ту же форму как требуемый для простого, а именно, выходы от дерева декодирования и диодов в матрицах. Довольно сложные заказы могут, поэтому, быть встроены в машину без труда. В частности арифметические операции на числах, выраженных в плавании двоичной формы и других подобных операций, могут быть микрозапрограммированны, и найдено, что они не включают очень большие количества микрокоманд. Например, для микропрограммы, предусматривающей операции с плавающей точкой дополнения, вычитания и умножения, нужны приблизительно 70 микрокоманд. Система коммутации в арифметическом модуле должна, конечно, быть разработана с этими операциями в поле зрения. Дерево декодирования и матрицы параллельной машины с 40 цифрами в арифметическом модуле и условии для 256 микрокоманд только составили бы приблизительно 15% общего оборудования в машине, так, чтобы казалось, что такой машине можно хорошо предоставить встроенные средства значительной сложности.

Количество микрокоманд, необходимых в сложной микропрограмме, может иногда сокращаться, используя то, что можно было бы вызвать микроподпрограммами. Например, когда два числа должны быть добавлены вместе в плавающей двоичной машине, некоторое смещение одного из них обычно необходимо, прежде чем дополнение сможет иметь место. Заставляя микрокоманды для этой работы смещения служить также, когда умножение требуется, значительное сохранение произведено.

Четыре регистра - абсолютный минимум, необходимый в арифметическом модуле, чтобы позволить основным арифметическим операциям выполняться. Если какое-либо расширение или усовершенствование предоставленных услуг требуются, может быть необходимо увеличить число регистров. Например, четыре регистра не достаточны, чтобы позволить последовательности продуктов быть накопленной без передачи промежуточных результатов к хранилищу, так как аккумулятор должен быть четким в начале умножения. Добавление одного регистра позволяет накоплению продуктов быть предусмотренным в микропрограмме. Если этот регистр связан с выходом от хранилища, это также позволяет части времени ожидания для обращения к памяти быть устраненной. Чтобы сделать это, микропрограмма расположена, чтобы призвать к числу от хранилища, как только известно, что число будет требоваться и продолжать другие необходимые микрооперации перед окончательным продолжением, чтобы использовать число. "Динамическая остановка" произошла бы непосредственно перед тем, как число требуется для использования. Другой способ сэкономить время состоит в том, чтобы расположить, в случае тех заказов, которые разрешают ему для следующего порядка быть извлеченным из хранилища, прежде чем работа, в настоящее время выполняемая, была завершена.

Минимальное число регистров, требуемых в модуле регистра команд машины для самого простого режима работы, равняется трем. Если дополнительные регистры - предоставленные услуги, подобные, обеспеченные B-lines в машине в Манчестерском университете, могут быть включены в микропрограмму.

Микропрограммирование, примененное к последовательным машинам

Все обсуждение, насколько в отношении параллельных машин, потому что метод, описанный в этой газете, больше всего адаптирован к тому типу машины. Однако реально разработать последовательную машину в том же направлении. В параллельном компьютере с асинхронным арифметическим модулем каждый логический элемент требует, чтобы только один вид формы волны управлял им, и синхронизация той формы волны не сильно важна. В последовательной машине, с другой стороны, различные логические элементы требуют различных форм волны, и тот же логический элемент может потребовать различных форм волны в разное время; далее, все эти формы волны должны, он критически рассчитал. Эти сложности могут быть обработаны включением в микроблок управления третья матрица, C, для выбора надлежащей формы волны для каждой микрокоманды. Основная форма волны, направленная деревом декодирования и матрицей A, открывает логический элемент, который питается формой волны, выбранной матрицей C. Это позволяет форме волны корректной продолжительности быть примененной к любому выбранному логическому элементу в арифметических разделах или разделах управления машины.


Источники

  1. Понятие о микропрограммном управлении и микропрограммном устройстве: Материал из Студопедии - общедоступной информация для студентов разных предметных областей : / Статья от 13 марта 2014 // http://studopedia.ru/3_88141_ponyatie-o-mikroprogrammnom-upravlenii-i-mikroprogrammnom-ustroystve.html
  2. Микропрограммирование и проектирование схем управления в электронном цифровом компьютере. M. V. Wilkes / J. B. Stringer
  3. Первые ЭВМ. Рафиков А. Г.