Задание: Синтезировать операционный автомат IM-типа. Арифметическая операция ex, где x=sum(ai).
Решение: 1) Анализ функции: Заданная функция имеет следующий вид:
Ряд, в который данная функция разлагается, принимает вид:
31 30 23 22 ЗН ПОРЯДОК МАНТИССА
Так как аргумент синтезируемой функции по условию задания выбирается произвольно, то в качестве интервала вычисления заданной функции, выбираем положительную область аргумента. Данный факт отражен на формате мантиссы, предоставленной на рисунке, где нет бита, определяющего знак. Для написания алгоритма возьмем первые шесть членов ряда:
Алгоритм функционирования (вычисления заданной функции), предоставлен на рисунке. Более подробно вставки, как функция тестирования, так и вычисления промежуточных членов ряда разлагаемой функции рассмотрены на следующих рисунках:
2) Синтез IM–автомата: Для вычислений требуется следующее количество регистров: RG A (RG1) – приращение аргумента RG Sum (RG2) – аргумент функции RG (Cnt) (RG3) – счетчик количества членов ряда заданной функции RG K (RG4) – весовые коэффициенты членов ряда RG ST (RG5) – степень аргумента RG EXP (RG6) – промежуточная сумма вычисления значения функции RG FLAG (RG7) – флаг окончания вычисления промежуточной суммы RG SS (RG8) – промежуточная сумма вычисления произведения с весовым коэффициентом RG Mt (RG9) – множитель RG Mn (RG10) – множимое RG S (RG11) – промежуточная сумма вычисления произведения RG I (RG12) – счетчик промежуточных сумма произведения
В соответствии со структурой IM–автомата, использующей три шины данных, которые не-посредственно передают операнды АЛУ, необходимо распределить между используемыми в ав-томате регистрами. То есть множество операций разобьется на унарные и бинарные. Регистры ис-пользуемые в бинарных операциях распределяются на шины ШД1 и ШД2, а регистры, используе-мые в унарных операциях распределятся на шину ШД3.
Таблица 1. ШД1 ШД2 ШД3 RG Sum RG A RG Cnt RG EXP RG S RG K RG Mn RG ST RG FLAT RG SS RG I RG Mt
Максимальная разрядность шин данных будет определяться разрядностью формируемых чисел (в нашем случае 8 бит мантиссы и 4 бита порядка). То есть очевидно, что каждая из шин ШД1, ШД2 и ШД3 будет содержать по 12 линий. На следующей этапе микрокомандам ГСА ставятся в соответствие операторы присваивания АЛУ. В соответствии с алгоритмами ГСА, приведенными на рисунках, получаем таблицы 2 и таблицы 3.
Таблица 2.
Ym Операторы АЛУ2 Прием Обозн.
RG
Y1 D = 0.01 RG A
Y2 D = 0 RG Cnt
Y3 D = 0 RG Sum
Y4 D = 0 RG K
Y5 D = 0 RG ST
Y6 D = 1 RG S
Y7 D = 1 RG K
Y8 D = 0 RG ST
Y9 D = A1 RG S
Y10 D = 1/2 RG K
Y11 D = 2 RG ST
Y12 D = 1/6 RG K
Y13 D = 3 RG ST
Y14 D = 1/24 RG K
Y15 D = 4 RG ST
Y16 D = 1/120 RG K
Y17 D = 5 RG ST
Y20 D = 0 RG Cnt
Y21 D = 0 RG EXP
Y22 D = 0 RG Sum
Y24 D = 0 RG FLAG
Y25 D = A1 RG SS
Y27 D = A2 RG SS
Y28 D = A1 RG Mn
Y29 D = A1 RG Mt
Y30 D = 1 RG FLAG
Y31 D = A2 RG Mn
Y32 D = A2 RG Mt
Y33 D = 0 RG I
Y34 D = 0 RG S
Y37 D = A1[n+1, 1] RG S
Таблица 3 Ym Операторы АЛУ2 Прием Обозн.
RG
Y18 D = A1+A2 RG EXP
Y19 D = 1+A3 RG Cnt
Y23 D = A1+A2 RG Sum
Y26 D = A1+Д[1] RG ST
Y35 D = A1+Д[1] RG ST
Y36 D = A2+A1 RG S
Y38 D = A2+1 RG I
Теперь можно закодировать микрооперации наборами управляющих сигналов.
Таблица 4. Источники операндов Сигналы управления ШД1 ШД2 ШД3 ai bi ci RG Sum – – a2 – – RG EXP RG S – a2 b11 – RG Mn RG S – a10 b11 – – – RG Cnt – – c3 – RG A – – b1 – – – RG ST – – c5 – – RG K – – c4 – – RG SS – – c8 – – RG Mt – – c10 – – RG I – – c12 – – RG FLAG – – c7
А теперь обобщим таблицы: Таблица 6. Ym ai bi ci di ei
Y1 – b1 – d1 –
Y2 – – c3 – e3
Y3 a2 – – d2 –
Y4 – – c4 – e4
Y5 – – c5 – e5
Y6 – b11 – d11 –
Y7 – – c4 – e4
Y8 – – c5 – e5
Y9 – b11 – – e4
Y10 – – c4 – e4
Y11 – b11 – d11 –
Y12 – – c4 – e4
Y13 – b11 – d11 –
Y14 – – c4 – e4
Y15 – b11 – d11 –
Y16 – – c4 – e4
Y17 – b11 – d11 –
Y18 a6 b11 – d6 –
Y19 – – c3 – e3
Y20 – – c3 – e3
Y21 a6 – – d6 –
Y22 a2 – – d2 –
Y23 a2 b11 – d2 –
Y24 – – c7 – e7
Y25 a2 – – – e8
Y26 – – c5 – e5
Y27 – b11 – – e8
Y28 – – c4 d6 –
Y29 a2 – – d10 –
Y30 – – – – e7
Y31 – – c8 d6 –
Y32 – – c10 d10 –
Y33 – – – – e12
Y34 – – – d11 –
Y35 – – c5 – e5
Y36 a10 b11 – d10 –
Y37 – b11 – d11 –
Y38 – – c12 – e12
С целью оптимизации в комбинаторном АЛУ множество операторов { } разбиваем на классы {k1, . . ., kS} эквивалентных операторов, реализующих однотипные операции.
Преобразуем класс операторов k2 к виду, где первые два члена операнды сумматора, а тре-тий перенос из предыдущих разрядов.
Тогда
В соответствии с полученными классами строим АЛУ, реализующие функции, заложенные в классах. На рисунке А предоставлен АЛУ для класса k2, а на рисунке Б – k3
На рисунках В и Г предоставлены АЛУ для классов k4 и k5 соответственно:
На рисунке Д предоставлен АЛУ для класса k6
Выше приведены схемы АЛУ для различных классов, которые необходимо разбить на две группы (унарный и бинарный АЛУ), и по принципу суперпозиций объединить функции однотипных АЛУ. Тогда общая схема АЛУ для унарных операций будет включать в себя классы k1 и k2, а для бинарных операций – k3 и k4, k6 и k5. Их схемы представлены на рисунках Е и Ж соответственно:
Общая схема бинарных операций:
В соответствии с правилами построения IM–автоматов, строим полную схему синтезируе-мого автомата: