ходимо решать четыре, Но Существенно более Простые задачи объеди нения следующих подматриц:
АІЦ> М21, AI31;
м 13, AI22. Af32;
Afi3, AI23, AfS3;
М и , AI24. АГ34.
После объединения и учета распределения сдвигов приходим, ми
нуя объединенную MCA М , к ее подматрицам М и М 2, АІ3, М 4
(табл. 7-24 — 7-27).
Г л а в а в о с ь м а я
ДВА ПРИМЕРА СИНТЕЗА МИКРОПРОГРАММНЫХ АВТОМАТОВ
8-1. Синтез устройства управления арифметического устройства
В данном разделе рассмотрим синтез микропрограммного автомата управ ления арифметическим устройством (АУ) параллельного действия, в котором выполняются операции сложения, вычитания, умножения и деления над л-раз- рядными двоичными числами. Предполагается, что к началу операции операнды уже засланы в арифметическое устройство. Как и любое дискретное устройство, АУ можно представить в виде двух частей: операционного устройства и устрой ства управления. В операционном устройстве под действием сигналов, приходя щих из устройства управления, выполняются микрооперации по передаче слов
и их преобразованию. Операционная часть АУ приведена на рис. |
8-1. В АУ вхо |
дят: накапливающий сумматор (См), два регистра (Рг 1 и Рг2), |
счетчик тактов |
(СчТ) и триггер индикации переполнения (ПП). Число X с фиксированной за |
пятой представляется правильной двоичной дробью вида X = ± |
, хгх2 . . . хп, |
где Xi f {0, 1), і = 1...........п. Знак ■«+» кодируется символом 0, знак «—» — |
символом 1. Алгоритмы выполнения операций с очень небольшими изменениями взяты из работы [13]. ГСА операции сложения изображена на рис. 8-2. Для представления отрицательных чисел при сложении используется модифициро
ванный обратный код, в котором отрицательное число X = —, х^., |
. . . хп имеет |
вид (Х)обр = П. |
• • • хп, где старший разряд целой части кода числа ис |
пользуется для представления знака, а следующий разряд целой |
части — для |
контроля переполнения разрядной сетки сумматора. |
и Ргі. Если |
Перед началом |
операции слагаемые находятся на сумматоре |
знак сумматора положителен (sign См = 0), то сумматор участвует в операции в прямом модифицированном коде, в противном случае (sign См = 1 ) — в об ратном (См: = (См)обр)- То же самое справедливо и для РгІ: если sign Рг 1 = 0, то к сумматору добавляется прямой код Рг1(См: = См + Ргі), если же sign Ргі = 1, то обратный (См: = См + (Ргі)0бр)• В зависимости от знака результата сумма получается также в прямом или обратном коде. Если sign См = 0, то на сумма торе результат находится в прямом коде, если же sign См = 1 — то в обратном, и для получения прямого кода суммы необходимо инвертировать значения каж дого разряда сумматора (См: = (См)0бр)- Если значения знакового разряда и разряда переполнения сумматора равны 01 или 10 (sign См ф См [П ]), то ре зультат переполняет разрядную сетку машины.
ГСА операции вычитания изображена на рис. 8-3. Алгоритм вычитания от личается от сложения лишь тем, что в самом начале операции инвертируется