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