АРИФМЕТИЧЕСКИЙ ВЫЧИСЛИТЕЛЬ

Заявляемая полезная модель относится к области вычислительной техники и может быть использована при проектировании цифровых процессов, обладающих повышенной точностью вычислений и позволяющих производить основные арифметические вычисления с любой заданной точностью.
Известно арифметическо-логическое устройство, описанное в патенте Российской Федерации №2035064 G06F 7/38 1990 г. Это устройство содержит два узла обращения, сумматор, дешифратор, сдвигатель, формирователь маски, логический блок, блок управления, узел управления, формирователь признака результата, формирователь прерываний, выходной коммутатор, выходной регистр, три коммутатора, формирователь выходных стробов, блок сравнения, два формирователя переносов, формирователь знака и цифр частного, семь коммутаторов, два регистра, дополнительный выходной коммутатор, формирователь знака результата, формирователь конца операций, дополнительный узел обращения, дополнительный сумматор, формирователь значений грубого сдвига, формирователь значений точного сдвига. Недостатком этого устройства является недостаточная точность вычислений, ограниченные функциональные возможности.
Наиболее близким по технической сущности является арифметический вычислитель, описанный в патенте Российской Федерации №2292580 G06F 7/57 2004 г.
Арифметический вычислитель содержит блок ввода чисел и кода операции, блок управления, блок операций с фиксированной запятой, блок операций с плавающей запятой, блок хранения результатов, причем информационный выход блока ввода чисел и кода операции соединен с информационным входом блока операций с фиксированной запятой, информационный выход блока ввода чисел и кода операции соединен с информационным входом блока операций с плавающей запятой, управляющий вход блока операций с плавающей запятой соединен с первым управляющим выходом блока управления, третий управляющий вход блока управления соединен с управляющим выходом блока операций с плавающей запятой, информационный выход блока с плавающей запятой соединен с первым информационным входом блока хранения результатов, второй управляющий выход блока управления соединен с управляющим входом блока операций с фиксированной запятой, управляющий выход блока операции с фиксированной запятой соединен с четвертым управляющим входом блока управления, информационный выход блока операций с фиксированной запятой соединен со вторым информационным входом блока хранения результатов, первый и второй управляющие входы "СБРОС и "ПУСК" блока управления являются внешними входами арифметического вычислителя.
Недостатком известного арифметического вычислителя является то, что устройство позволяет обрабатывать числа с числом разрядов не более 64, что приводит к накоплению вычислительной погрешности (погрешности округления), что в свою очередь приводит к снижению точности конечного результата и ограничивает функциональные возможности устройства.
На практике при создании современных автоматизированных систем боевого управления предъявляются высокие требования к точности и устойчивости вычислений. Одним из источников погрешности вычислений является вычислительная погрешность (погрешность округлений), которая возникает в результате выполнения в вычислительной системе арифметических операций с конечным числом значащих цифр. Поэтому применение известного арифметического вычислителя не всегда может обеспечить требуемую точность, что ограничивает область его применения.
Целью заявленного технического решения является расширение области возможного применения арифметического вычислителя.
Указанная цель достигается за счет того, что в арифметический вычислитель, содержащий блок ввода чисел и кода операции, входом связанный с первым выходом блока управления, второй выход которого связан с первым входом блока выдачи результатов, введены блок ввода кода точности, блок адаптации параметров, блок кода операции, блок кода точности, программный модуль, блок вычислительных регистров, блок памяти, блок округления результатов, причем программный модуль взаимосвязан с блоком адаптации параметров, с блоком кода операции, с блоком вычислительных регистров, с блоком памяти, с блоком округления результатов, с блоком управления, а первым выходом связан со входом блока кода точности, вторым выходом со вторым входом блока выдачи результатов, блок ввода кода точности входом связан с блоком управления, а выходом с входом блока кода точности, блок кода операции входом связан с блоком ввода чисел и кода операции, блок адаптации параметров входом связан с блоком ввода чисел и кода операции, блок округления результатов первым входом связан с выходом блока кода точности, а вторым входом с третьим выходом блока управления.
На чертеже представлена структурная схема арифметического вычислителя.
Арифметический вычислитель содержит блок ввода чисел и кода операции 1, блок ввода кода точности 2, блок адаптации параметров 3, блок кода операции 4, блок кода точности 5, программный модуль 6, блок вычислительных регистров 7, блок памяти 8, блок округления результатов 9, блок управления 10, блок выдачи результатов 11.
Блок ввода чисел и кода операции 1 управляющим входом соединен с первым выходом блока управления 10, а первым выходом - со входом блока адаптации параметров 3, вторым выходом - со входом блока кода операции 4 и может быть выполнен на микропроцессоре любой серии с АЦП (аппаратно-цифровым преобразователем) и включать в себя клавиатуру и индикаторное устройство для взаимодействия с оператором. Блок ввода кода точности 2 управляющим входом соединен с первым выходом блока управления 10, а выходом со входом блока кода точности 5 и может быть выполнен на микропроцессоре любой серии с АЦП (аппаратно-цифровым преобразователем) и включать в себя клавиатуру и индикаторное устройство для взаимодействия с оператором. Блок адаптации параметров 3, взаимосвязанный с программным модулем 6 может быть выполнен на базе микросхем серии М 1533. Блок кода операции 4, взаимосвязанный с программным модулем 6 может быть выполнен на базе микросхемы серии М 1533. Блок кода точности 5 выходом связанный с первым входом блока округления результатов 9, первым входом с блоком ввода кода точности 2, а вторым входом с программным модулем 6, может быть выполнен на базе микросхемы серии М 1533. Программный модуль 6 первым выходом связанный с блоком кода точности 5, а вторым выходом с блоком выдачи результатов 11, а так же взаимосвязанный с блоком вычислительных регистров 7, с блоком округления результатов 9, с блоком памяти 8, с блоком управления 10 может быть выполнен на базе микросхем серии М 1533. Блок вычислительных регистров 7 и блок памяти 8 могут быть выполнены на базе микросхемы К541РТ. Блок округления результатов 9 вторым входом связанный с блоком управления 10, может быть выполнен на базе микросхемы 533СП1.
Выполнение и функционирование блока управления 10 вторым выходом соединенного с первым входом блока выдачи результатов 11, а третьим выходом соединенный со вторым входом блока округления результатов 9, а так же блок выдачи результатов 11 аналогичны прототипу.
Арифметический вычислитель работает следующим образом.
Внешними входами арифметического вычислителя являются управляющие входы блока управления 10 «СБРОС» и «ПУСК». По сигналу «СБРОС» вычислитель устанавливается в исходное состояние. По сигналу «ПУСК» блок управления 10 передает управляющие сигналы на входы блока ввода чисел и кода операции 1, блока ввода кода точности 2, блока выдачи результатов 11, блока округления результатов 9.
Числа в десятичной системе и код операции с пульта блока ввода чисел и кода операции 1 поступают на вход блока адаптации параметров 3, где преобразуются из формата «с плавающей точкой» в одномерный массив целых положительных чисел.
Код операции (сложение, вычитание, умножение, деление) передается на вход блока кода операции 4. Информация о точности вычислений вводится с пульта блока ввода кода точности 2 и поступает на вход блока кода точности 5. Информация задается в виде способа округления: «до ближайшего», «до ближайшего четного», «усечение мантиссы» а так же задается количество разрядов мантиссы аргументов и результатов операции. Вся цифровая информация задается в десятичной системе счисления.
По сигналу от блока управления 10 активизируется работа программного модуля 6.
По запросу программного модуля 6 из блока кода операции 4 считывается код операции (сложение, вычитание, умножение, деление). В зависимости от кода операции программный модуль 6 запрашивает соответствующую программу, хранящуюся в блоке памяти 8. Программы предназначены для обеспечения выполнения арифметических операций над числами, представленными в виде одномерных массивов целых положительных чисел, поступившими на вход программного модуля от блока адаптации параметров 3. Примерами такой программы могут быть «Программные модули оценки «устойчивости» вычислительного алгоритма к округлению данных» (модуль «сложение/вычитание» регистрационный №2011610118 от 21.09.2010 г.), (модуль «умножение» регистрационный №2011610119 от 21.09.2010 г.), (модуль «деление» регистрационный №2011610120 от 21.09.2010 г.). Кроме того, программный модуль 6 выдает управляющий сигнал на вход блока кода точности 5, по которому из блока точности 5 на вход блока округления результатов 9 подается признак метода округления: «до ближайшего», «до ближайшего четного», «усечение мантиссы» а так же заданное оператором с пульта блока ввода кода точности 2 количество разрядов мантиссы аргументов и результата операции. При работе программы все результаты вычислений, включая промежуточные, поступают на вход блока округления результатов 9, где проверяются на точность округления. Промежуточные результаты хранятся в блоке вычислительных регистров 7. Конечные результаты вычислений программный модуль 6 выдает на вход блока выдачи результатов 11.
Введение в арифметический вычислитель блока адаптации параметров, входом подключенным к блоку вода чисел и кода операции и взаимосвязанного с программным модулем, преобразовывает числа, представленные в формате «с плавающей точкой», в одномерные массивы целых положительных чисел, что позволяет осуществлять выполнение арифметических операций в десятичной системе счисления. Введение блока кода операции, входом подключенного к выходу блока ввода чисел и кода операции и взаимосвязанного с программным модулем, обеспечивает ввод в программный модуль признака кода операции введенного с пульта блока ввода чисел и кода операции. Введение блока ввода кода точности входом связанного с блоком управления, а выходом со входом блока кода точности, обеспечивает ввод способа округления «до ближайшего», «до ближайшего четного», «усечение мантиссы» а так же обеспечивает задание требуемого количества разрядов мантиссы аргументов и результата операции. Введение блока кода точности одним входом связанного с выходом блока ввода кода точности вторым входом с выходом программного модуля а выходом связанного с блоком округления результатов обеспечивает, в зависимости от способа округления и количества значащих разрядов мантиссы аргументов и результата операции, границы округления. Введение блока памяти 8 взаимосвязанного с программным модулем обеспечивает хранение программ обеспечивающих выполнение требуемых арифметических действий. Введение блока округления результатов, одним входом связанного с выходом блока кода точности, вторым входом связанного с выходом блока управления и взаимосвязанного с программным модулем, позволяет производить контроль вычислений на заданную точность. Введение блока вычислительных регистров, взаимосвязанного с программным модулем обеспечивает хранение промежуточных и конечных результатов арифметических операций. Введение программного модуля, взаимосвязанного с блоком адаптации параметров, с блоком кода операции, с блоком вычислительных регистров, с блоком управления, с блоком округления результатов, с блоком памяти, а выходом связанным с блоком кода точности и с блоком выдачи результатов обеспечивает выполнение арифметических операций. В совокупности, указанные признаки обеспечивают выполнение арифметических операций с любым заданным количеством разрядов мантиссы числа и с любым заданным способом округления результата арифметической операции с любым количеством значащих разрядов мантиссы аргументов.
Технический эффект от использования предлагаемого арифметического вычислителя заключается в том, что возможно его использование для проектирования цифровых процессов, предъявляющих повышенные требования к точности вычислений и позволяющих производить основные арифметические вычисления с любой заданной точностью, что особенно востребовано в области астрономии, навигации, астронавтики, в космических технологиях, нанотехнологиях и т.д.
Это позволяет расширить область применения арифметического вычислителя и обеспечить выполнение арифметических вычислений с любой требуемой степенью точности.