Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книги / ПРОЕКТИРОВАНИЕ ПОВС (последнее).doc
Скачиваний:
77
Добавлен:
01.06.2015
Размер:
36.23 Mб
Скачать

7.4. Построение пакета системных программ для программного обеспечения ивс

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

Рассмотрим построение программы символьного дифференцирования [64].

Функциональные модули ИВС реализуют систему уравнений Шеннона (СУШ) для некоторой негипертрансцендентной функции f(x). Поэтому для любой задачи, решаемой на ИВС, после декомпозиции ее на элементарные функциональные зависимости необходимо получить СУШ для каждого ФМ. Кроме того, в программу выбора операторного базиса необходимо задать в виде начальной информации семейства множеств , представляющих собой решение системы порождающих дифференциальных уравнений Шеннона для всех функций, входящих в исходные аналитические выражения решаемой задачи. Для этой цели в систему ПО ИВС включается программа символьного дифференцирования.

Декомпозиция задачи на элементарные функции и операции производится транслятором системы ПО ИВС. Объектный модуль, образованный транслятором и представляющий собой список тетрад, поступает на вход программы символьного дифференцирования. Основная проблема, встающая на этом этапе, заключается в дифференцировании элементарных функций (тетрад) конечное число раз и получении для них СУШ.

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

Программа символьного дифференцирования используется в системе ПО ИВС следующим образом:

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

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

В качестве примера работы программы символьного дифференцирования построим СУШ для функции: А = cos(c * x). Построим СУШ для функций, входящих в данную инструкцию:

где

,

В программе организован массив BUS (350,4), в котором полученные выше равенства располагаются следующим образом (рис. 7.8). В первую строку записывается: в первый столбец - ноль; во второй – суммарное количество порожденных функций для данной порождающей функции плюс единица; в третий – количество уравнений Шеннона для данной функции, в четвертый – номер строки минус единица (назовем это число поправкой). Аналогично заполним строку 10. Перенумеруем последовательно все ячейки массива BUS слева направо и сверху вниз (рис. 7.8). Закодируем УРБ ИВС следующим образом: 201 – интегратор; 202 – блок инвертирования знака; 203 – блок суммирования (сумматор); 204 – блок умножения на константу. Массив BUS разбился на две части: часть 1 – относится к функции ; часть 2 –относится к функции, гдес = сonst. Для первой части „x впервые встречается в ячейке с номером 6, а затем – в ячейке с номером 10, поэтому в ячейку 6 запишем десятку. Следующий „x" встречается в ячейке с номером 23. Поэтому в ячейку номер 10 запишем число 23 и, наконец, последний „x" для данной части встречается в ячейке с номером 27 – запишем в ячейку с номером 23 – 27, а в ячейку с номером 27 – ноль, т.к. больше x" в данной части не встречается. Такой процесс заполнения массива BUS продолжается и далее. В результате получена библиотека уравнений Шеннона и порождаемых функций.

Рис 7.8. Массив BUS

Программа символьного дифференцирования анализирует очередную тетраду объектного модуля и в соответствии с именем операции или функции из библиотеки СУШ выбирается некоторая область, представляющая собой систему порождающих уравнений Шеннона для данной операции или функции. Полученная информация заносится в массив NUS (512,4), в котором последовательно накапливаются уравнения Шеннона, порождающие и порождаемые функции для решаемой задачи.

В программе организовано также формирование настроечной информации для всех ФМ ИВС по данным, поступающим от компилятора. Для этой цели используется библиотека команд ФМ, представляющая собой трехмерный пассив памяти (рис. 7.9) размерностью (10x5x40), причем каждая страница библиотеки размерностью (10x5) является матрицей коммутации определенного ФМ. На каждой странице также идентифицированы выходы и входы ФМ (рис. 7.10).

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

Программа выбора базиса Т-операторов входит в пакет системных программ ПО ИВС и используется при проектировании модульных ИВС для определения технических параметров ФМ, а также применяется в системе математического обеспечения ИВС и выдает в качестве результата работы с системой базис операторов (массив базисных микропрограмм) для транслятора задач в модульную ИВС· Программа выбора базиса построена на основании машинного алгоритма, приведенного в разделе (4.3), существенно сокращающего время выбора базиса по сравнению с методом полного перебора за счет использования для определения базиса матрицы инциденций семейства множеств .

Программа выбора базиса Т-операторов в операторном -пространстве написана на алгоритмическом языке .

Pис. 7.9. Библиотека команд ФМ ИВС

201

3

2

0

34

201

3

1

0

33

201

о

4

1

502

202

2

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Рис. 7.10. Страница из библиотеки команд ΦМ ИВС

для функции y = ctg x

На основании проведенных статистических исследований построена диаграмма зависимости времени решения задачи выбора базиса в операторной -пространстве в зависимости от числа Т-операторов (рис. 7.11). Время t включает в себя время трансляции программы, время редактирования, загрузки, решения и вывода на печать результатов. На диаграмме видно, что время t растет экспоненциально с увеличением числа операторов n.

Сравним данный алгоритм выбора базиса с методом выбора базиса путем полного перебора Τ-операторов для случая n = 30.

Для данного алгоритма время выбора базиса равно минут. Для метода полного перебора, где 2n – число возможных сочетаний Т-операторов;  производительность ЦВМ II поколения по Гибсону; k = 10 – среднее число операций на одном шаге. Следовательно, .

Таким образом, программа выбора базиса, построенная по данному алгоритму, по крайней мере, на три порядка сокращает время выбора базиса по сравнению с программой, работающей по методу полного перебора.

Программа расчета параметров ФМ ИВС применяется на этапе проектирования решающей части ИВС и предназначена для существенного сокращения времени расчета параметров за счет применения машинной обработки.

Вычислительная часть ФМ имеет два основных параметра: количество решающих блоков в модуле, реализующих базисный оператор; количество операторов, которые могут быть реализованы на данном числе УРБ.

Pиc. 7.11. График зависимости t = f(n)

Рис. 7.12. График – схема зависимости

Разработанная программа определяет параметры ФМ без учета статических характеристик [31].

Программа построена на основе алгоритма определения параметров ФМ ИВС, полученного в разделе (6.4).

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

На первом этапе работы программы на печать выдается семейство множеств ,. Затем для этой системы функцийS строится операторный базис по алгоритму, приведенному выше. Определяются числа JS(i) – количество УРБ в модуле для реализации базисного Т-оператора i-го вида. Исходя из этого определяется числа УРБ, необходимые для реализации максимально сложного базисного оператора - МАХ, и числа УРБ, необходимое для реализации минимально сложного базисного оператора - MIN. Посла этого определяется число операторов в модуле, удовлетворяющее введенному критерию оптимальности:

.

Для ФМ с таким числом УРБ характерно то, что для получения модулей с числом УРБ, равным МАХ или ΜIN, в нем достаточно отключить или подключить соответственно минимальное число УРБ.

В результате расчета программа выдает на печать параметры ФМ в следующем виде:

МАКС. СЛОЖНЫЙ ФМ = , МАХ, УРБ

МИН. СЛОЖНЫЙ ФМ = , ΜIN, УРБ

ФМ. ОПТИМ. СЛОЖНЫЙ = JS(i) УРБ

При работе с программой все функции из системы S кодируются целым числом от 1 до 99 и в таком виде вводятся в машину. Например, ; ; 10 и т.п.

Полученный операторный базис выдается на печать в следующей форме БАЗИС: ,

где i, j, , k – номера базисных операторов, реализующих функции,

закодированные числами i, j, , k.

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

Программа написана на алгоритмическом языке FORTRAN-IV. Этот программный модуль представляет собой программную реализацию алгоритма (5.37).

Требования технического задания, необходимые для расчета, вводятся параметрически в виде следующих данных:

D – допустимая погрешность вычислений на интервале времени решения; TIMEинтервал решения; ND – количество разрядов входного приращения; N – количество шагов по допустимой погрешности вычислений; КТ – количество шагов по времени решения; Ζ – приращение по допустимой погрешности вычислений при переходе от одного шага решения к другому; V – приращение по времени решения при переходе от одного шага решения к другому.

В частности, если УРБ оперируют с одноразрядными приращениями и строятся на основе формулы прямоугольников, то расчет параметров решающей части ИВС по разработанной программе производится в следующем порядка (5.38).

В начале программа рассчитывает количество разрядов Y – регистра из следующего соотношения: . Затем определяется тактовая частота решающей части ИВС из соотношения:,

где  количество разрядов входного приращения;  время обработки входного приращения. Полученная таким образом тактовая частота УРБ должна быть меньше допустимой тактовой частоты, которая определяется используемой элементной базой.

Затем определяется полоса пропускания разрабатываемой ИВС по следующей формуле:.

На следующем этапе вычисляется полоса пропускания при максимально допустимой тактовой частоте элементной базы:

,

где fmax – максимальная тактовая частота выбранной элементной базы.

На печать выводятся следующие параметры решающей части ИВС: количество разрядов Y-регистра; допустимая погрешность решения; интервал времени решения; полоса пропускания; максимально допустимая полоса пропускания; тактовая частота работы УРБ.

Описанная последовательность расчета параметров повторяется затем с другим значением интервала времени решения, равным , где t – приращение времени решения.

После этого заданная последовательность расчета повторяется с другим значением допустимой погрешности вычислений, равной где – приращение допустимой погрешности.

Программа расчета параметров УРБ позволяет с помощью ЦВМ с меньшими затратами времени выбирать параметры решающей части ИВС.

Автоматизация расчета начальных значений для ФМ ИВС (a также внутри ФМ для всех УРБ) является одним из важнейших этапов в процессе подготовки задачи к решению. Возможны следующие два основных подхода к реализации данного этапа подготовки: автономный, когда ИВС производит все необходимые расчеты, используя собственные ресурсы, и совместно с ЦВМ общего назначения, когда для расчета используются ресурсы операционной системы ЦВМ, в частности, библиотеки встроенных функций и подпрограмм.

При первом подходе для расчета начальных условий задачи необходимо хранить в памяти ИВС значения в некоторой точке всего множества функций, которое порождается данным базисным набором T -операторов, т.е., имея базисный набор нужно иметь систему множеств , где порождается Т-оператором для функции fi и для системы множеств Ε иметь значения функций в некоторой . Тогда, если решение будет производиться при начальном значении независимой переменнойхk, после этапа трансляции и загрузки всех ФМ нужными микропрограммами для реализации набора Τ-операторов из , производится передача в ФМ начальных значений всех воспроизводимых в нем функций . Данная операция повторяется для всех ФМ, которые генерируют функциональные зависимости от независимой переменной. В то же время на графе соединений ФМ все связи между ФМ разблокированы. Далее производится отработка ФМ значений функций до тех пор, пока значения аргумента (независимой переменной) не достигнет величины xk. При x = xk во всех работающих ФМ от независимой переменной будет образовано начальное значение генерируемой функции.Для ФМ с зависимым аргументом при достижении независимой переменной значенияxk будет образовано требуемое начальное значение, которое получается по следующей схеме.

Пусть на выходе ФМi образовалось значение некоторой функции , которое является начальным значением аргумента для функции, реализуемой на ФМj. Тогда можно настроить какой-либо ФМk на генерацию такой же зависимости , но уже от независимого аргумента, от значения до . Это будет начальным значением исходной функции(f) в нужной точке . Распространяя данный процесс по всем ФМ, используемым для решения данной задачи, возможно в принципе, рассчитать начальные значения для ФМ ИВС с помощью самой ИВС, имея в памяти таблицу значений набора функций.

Например, дана граф-схема задачи вычисления зависимости (рис.7.12), где t –независимая переменная (рис. 7.12). При выработке значений т.е. значение суммы поступит в следящее устройство. Модуль начнет работать с , генерируя функцию , до. При достижении независимой переменнойt значения следящая схема отключит ключом(Кл) подачу на модуль независимой переменной. На выходе будет образовано значение функции , т.е. начальное значение функции.

Второй подход, как отмечалось, использует операционную систему ЦВМ. На первом шаге после трансляции исходной задачи загрузчик формирует массив начальных значений каждого ФМ - NM. Для этой цели используется список соединений ФМ, полученный из тетрад объектного модуля, а также таблица идентификаторов и констант TS, используемых в исходной программе. Здесь также используется массив , в i-м элементе которого записано начальное значение идентификатора, описанного в i-м элементе таблицы символов S). Расчет осуществляется путем поиска в специальной таблице элемента, соответствующего рассматриваемой операции или функции и перехода на подпрограмму реализации данной операции или функции. На втором шаге рассчитываются начальные значения для всех УРБ, входящих в ФМ, с использованием стандартных подпрограмм вычисления различных функций, предусмотренных в библиотеке встроенных функций.

Максимально допустимое число УРБ в ФМ принимается равным 10. Здесь для расчета также используются множества значений операторов Ei, получаемые на этапе образования СУШ для исходной задачи. Все операции и функции закодированы целыми числами. Информация о том, какая функция генерируется с выхода данного УРБ в ФМ, записана в массиве EI, причем элемент массива FI(I,J) содержит код функции, снимаемый с выхода I -го УРБ. Во всех других случаях FI(I, J) = 0.

При работе программы вначале в таблице КР ищется элемент, равный FI(I,J), а затем осуществляется переход на соответствующую подпрограмму. Ввиду ограниченности набора встроенных функций в ЭВМ, некоторые функции вычисляются с использованием суперпозиции существующих встроенных функций.

Рассчитанное начальное значение заносится в массив Y, при этом элемент массива Y(I,J) содержит начальные значения I-го РБ J-го ФМ. После окончания работы программы подготовки данных массив Y передается в диспетчер, где используется при формировании загрузочного модуля. В табл. 7.3 приведены имена операций и функций, их коды, а также соответствующие им метки в библиотеке стандартных подпрограмм: IP – имена функций или операций; KPкоды операций или функций; MV метки соответствующих встроенных функций и операций.