Проектирование принципиальной схемы устройства вычисляющего экспоненциальную функцию EXP(x), страница 3

Каждый этап выполнения выполняется за n шагов и представляет собой процесс, состоящий в последовательности: ui=f(ui-1). Обозначив разность между двумя соседними членами последовательности  - шаг итерации. Каждая итерация первого этапа состоит в определении значения оператора  ξi на основании знака δi. На каждой итерации второго этапа определяется очередной член последовательности ui, сходящийся к вычисляемой функции.

Для проведения двух указанных этапов необходимо выполнение двух типов операции: алгебраического сложения и сдвига [1,2].

Описание алгоритма

При рассмотрении рекуррентных соотношений вычисления функции EXP(x), введём следующие обозначения:

где Q0,X0 - начальные значения итерационных последовательностей.  

В случае синхронной организации i=ent(k/a)+1   k=0,1,2,...m , m=n*a.

Начальные значения Q0 = X, X0 = 1.

Конечные значения  Qкон = 0, Xкон = EXP(x).   а - основание системы счисления (2). разрядность операндов (16) [1].

Описание числа

В связи с тем, что разрядная сетка процессора – 16 разрядов с фиксированной запятой: то выберем под целую часть 4 бита, а под дробную часть – 12 разрядов.

      Формат представления числа с фиксированной запятой

Описание блок-схемы

В начале вычисления функции EXP(x) устанавливаются значения Q0 = X,

X0 = 1, k=0 (рис.1, блок 1). Величина i меняется через каждые две итерации (блок 2). Предварительно определяется сдвинутое вправо на i разрядов значение переменной XK (блок 3), которое затем используется в операциях сложения-вычитания (блоки 5,6), которыми управляет знак переменной Qk. Также знак Q  управляет выборкой константы Сi, вычитаемой из Qk  для получения новой Qk+1. Переменная Qk увеличивается на константу Сi (блок 7). При i=n, т.е. после выполнения 2n итераций, значение X2n содержит EXP(x). Другая переменная Q2n=0. Затем идёт проверка на окончание  (блок 8), и в случае продолжения производим следующую итерацию с наращиванием счётчика итераций (блок 9) [1].

Блок схема алгоритма.

Подпись: Рисунок 1. Структура регистрового устройства

Описание регистрового устройства

Подпись: Рисунок 2. Структура регистрового устройстваВычисление  функции exp(x) начинается с установки начальных значений: в SM1 и RG1 засылается аргумент X, в SM2 – единица, в сумматор результата SM3  - нуль. В счетчик символов CT1 записывается n. Затем производится вычисление величины 1 – Х и запись ее в SM2 микрооперацией А7. В счетчик CT4 записывается основание системы счисления α. Затем двумя микрооперациями А9 и А10 производится занесение числа i в счетчик CT3 для выполнения сдвигов. Микрооперации А11 и А12 совместно с логическим условием Р1 обеспечивают вычисление значения  и запись его в RG1. После анализа знака yk, находящегося в SM2, производится счет по рекуррентным соотношениям

, с помощью микроопераций А13, А17 и А16, А17, А18. При этом, если знак SM2 – положительный, то содержание счетчика CT2 соответствует константе вида log(1+α-i), а при отрицательном знакеSM2 из содержимого CT2 предварительно вычитается единица (А14) для получения нечетного адреса, соответствующего константе log(1-α-i). Затем для восстановления содержимого CT2 выполняется микрооперация А19. После этого производится пересылка нового значения Xk+1 в RG1 и вычитание единицы из счетчика CT4. После выполнения α итераций содержимое CT4 становится равным нулю и выполняется переход к новому значению i, при этом содержимое CT2 увеличивается на два, что соответствует переходу к следующей паре констант log(1±α-(i+1)), а из счетчика циклов CT1 вычитается единица. Итерационный процесс заканчивается после достижения i значения n.

Регистровая блок-схема

На основе регистрового устройства и по приведенному выше алгоритму составим регистровую блок-схему для вычисления функции EXP(x). 

Операционный автомат