Специализированный процессор для вычисления числа log2 (x), страница 3

В начале вычисления функции log2 x, осуществляемого по рекуррентным формулам (4.1.1.), устанавливаются значения: : x0=X, y0=1 –X, =0(см. рис.1, блок 1). Величина i изменяется через каждые  (в данной задаче =2) итерации (блок 2). Предварительно определяется сдвинутое вправо на i разрядов значение переменной xk (блок 3), которое затем используется в операциях сложения-вычитания (блоки 5 и 6), которыми управляет знак переменой yk. В зависимости от этого и от значения i из ПЗУ выбирается константа Ci=lg(1-i). Переменная , служащая для формирования результата, увеличивается на константу Ci(блок 7). При i=n, т.е. после выполнения n  итераций, значение после перемены знака содержит log2 x. Другие переменные равны: x=1, y=0.

Данный алгоритм , приведенный на рис.1, можно переделать, что приведет впоследствии к уменьшению количества элементов в операционном автомате.

Избавимся от переменной yk в алгоритме, которая необходима только для определения знака , знак же будем определять так:

=-1, если xk>1; =1, если xk<=1

Это вполне допустимо, так как sign()=sign (1-xk). Данное преобразование позволяет избавиться от регистра для хранения yk, сумматора или двух инкрементирующих счетчиков.

Заменим блок 2 на блоки 4 и 5 (см. рис.2), которые предназначены для увеличения i при условии, что к- четное. Данную замену приводим, потому что реализация функции ent(k/2) более сложна, по сравнению с реализацией четности.

Так как log2Mx2px= log2Mx+ log22px = log2Mx +Px, то в алгоритме необходимо учесть, что расчеты будут вестись по мантиссе, которая будет представлена как в случае с фиксированной запятой, а затем для получения конечного решения, результат расчетов с мантиссой будет вычитаться от порядка.

После всех изменений получен алгоритм (см. рис. 2), который в дальнейшем и использовался. Работоспособность данного алгоритма проверена контрольным примером (см. пункт 4.2.)

Рассмотрим теперь особенности и требования к аппаратной реализации устройства.

В формулировке задания существуют два несколько противоположных требования: с одной стороны требуется достигнуть максимального быстродействия, с другой стороны, схему требуется реализовать на базе УТТЛШ(ALS). Это противоречие между потребляемой мощностью и быстродействием разрешимо, если ставить задачу достижения максимального быстродействия для данной серии, оптимизация под данную логику, а не достижение какого-либо максимума вообще.

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

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

Разрядная сетка специального процессора – 24 разряда. Промышленность не выпускается МС общего назначения на такую разрядность как в силу технологических ограничений(например, коэффициент объединения по входу реально достигает 8-12 для ТТЛ,ТТЛШ), так и в силу экономических, эргономических и других требований. Для решения этой проблемы пользуются достаточно простыми наращивания разрядности функционирующих узлов. Например, для увеличения регистра необходимо (если это регистр хранения) объединить у нескольких корпусов вход синхронизации. Если число объединяемых регистров велико, то такое решение проблемы вызовет дополнительные проблемы с увеличением нагрузки на источник управляющих сигналов тактирования, поэтому, вероятно, придется использовать буферный элемент.