Реферат по теме выпускной работы
1. Исследование существующих форматов представления чисел с плавающей запятой и их особенностей
2. Исследование способов представления вещественных чисел и разработка преобразователя мантиссы числа
3. Программная модель постбинарных форматов
4. Структура программной модели PBinary
5. Разработка преобразователя чисел на ПЛИС
Рисунок 2.1 — Предлагаемые варианты модифицированных форматов чисел с плавающей запятой, для 128-разрядного числа(S, P, M — знак, порядок и мантисса числа, MF, CF — модификатор и формат числа, n — указатель)
Рисунок 2.2 — Предлагаемые варианты модифицированных форматов постбинарных чисел с плавающей запятой, для 128-разрядного числа (S, P, M — знак, порядок и мантисса числа, MF, CF — модификатор и формат числа, n — указатель)
Рисунок 2.3 — Предлагаемые варианты модифицированных форматов постбинарных чисел с плавающей запятой, для 256-разрядного числа.
Рисунок 3.1 — Интерфейс программы PBinary 2. Значения, полученные из pbinaryΩ — точные значения в виде вещественного числа с фиксированной точкой, полученные в десятичном или двоичном виде при «распаковке» полей текущего формата pbinary.
Погрешность. В этом поле вычисляется абсолютная погрешность представления исходного числа в постбинарном формате. Значение погрешности позволяет оценить точность представления исходного числа и выбрать оптимальную точность (от 32 до 256 двоичных разрядов) для его хранения. Данное поле показывает, насколько верно равенство х = y.
Рисунок 3.2 — Представление полей формата pbinary128
Рисунок 3.3 — Вывод точного значения числа в 10 с/с, полученного из формата pbinary128, в простом (а) и экспоненциальном (б) виде
Основу модели PBinary составляют функции реверсивного преобразования чисел десятичной и двоичной систем счисления. Известные алгоритмы таких преобразований в данной концепции неприменимы, поскольку 1) исходное десятичное дробное число невозможно точно представить ни в одном из стандартных вещественных форматов, т. к. десятичная дробь x10 записывается в виде строки цифр ak (0 ≤ ak ≤ 9) c количеством n разрядов целой части и m разрядов дробной части числа . (1) По умолчанию исходная десятичная дробь может быть представлена значением n + m = 1024, однако эту сумму можно увеличить до 10 000. Такие числа в регистрах современных микропроцессоров непредставимы. 2) при преобразовании десятичной дроби в двоичную возникает необходимость представления рационального числа х10 в х2 в виде линейной комбинации (в большинстве случаев бесконечной) степеней числа 2: , (2) где bk и ck — цифры целой части и дробной части (bk, ck ∈ {0, 1}), n — число разрядов целой части. При больших значениях n (например, в формате pbinary256 длина мантиссы равно 219 разрядам) не представляется возможным загрузить такое число в регистры современного микропроцессора. Для преодоления возникшей ситуации было принято решение хранить все числовые значения в строковых форматах и разработать собственные алгоритмы, имитирующие для преобразования 2↔10 с/с сложение, вычитание, умножение и деление «в столбик» строковых чисел. При этом каждая двоичная и десятичная цифра, знаки «+», «–», «,» и «е» являются символами системы Юникод. Данный подход позволил представить числа в виде строк большой длины (до 4 ГБ (для платформы Java), где каждый символ строки равен двум байтам), т. е. фактически модель PBinary в состоянии учитывать до 2∙109 значащих цифр входного числа. Все операции, происходящие после начала преобразования (нажатие кнопки «Старт») можно разбить на несколько этапов (рис. 4.1):
Рисунок 4.1 - Этапы работы преобразователя
(4 кадра, длительностью 2 с., 7 повторений, размер — 62 КБ.)
Этап 1. Инкапсуляция входных данных. Если входное строковое число представлено в нормализованном виде, то оно приводится к простому виду, состоящему из цифр, знакового символа («+» или «–») и разделителя «,». Символ знака определяет знаковый разряд форматов, а модуль числа разбивается на две части, представляющих строковый эквивалент целой и дробной части исходного числа. Этап 2. Получение двоичного числа и заполнение полей постбинарных форматов («упаковка» числа). Функция преобразования 10↔2 с/с реализует два алгоритма, которые выполняют преобразование целой и дробной части строкового числа. На этом этапе дробная часть двоичного числа может оказаться бесконечной, аналогичной (2). В этом случае вычисление происходит до количества двоичных разрядов, необходимых для корректного заполнения мантиссы старшего формата (в данном случае pbinary256). Если происходит преобразование исходного рационального числа, которое можно представить в виде (где q и m — целые числа), то такое число обладает конечной записью в двоичной системе счисления: , (3) где и представляют двоичные записи соответственно частного и остатка от деления q на 2m. Если значение n + m окажется меньше разрядности мантиссы большего постбинарного формата (в данном случае pbinary256), недостающие разряды заполняются незначащими нулями. Полученные части уже двоичного числа вновь собираются в дробный формат и нормализуются. Для каждого формата pbinary рассчитываются значения порядка со смещением, отрабатывается механизм установленного округления мантиссы. Полученные значения записываются в соответствующие поля форматов. Этап 3. «Распаковка» числа из форматов для получения точного значения. Из значений полей каждого постбинарного формата формируется точное двоичное число в нормальном виде. Для этого к значению мантиссы со знаком добавляется старшая «1» (если число принадлежит к области нормализованных чисел), вычисляется значение экспоненты без смещения, определяя тем самым положение запятой, делящей поле мантиссы на целую и дробную части. Далее полученное в нормальном виде двоичное число преобразовывается в точное десятичное. Оба этих числа можно отобразить в соответствующем информационном поле (рис. 3) в нормальном и экспоненциальном виде. Этап 4. Вычисление погрешности представления. Абсолютная погрешность представления чисел Δ представляет собой разность между исходным десятичным числом x и полученным точным десятичным числом y из полей форматов после преобразования: Δ = x – y. Значение Δ выводится отдельно для каждого формата и позволяет судить об эффективности использования постбинарных форматов различной точности для заданного числа. Поскольку модель PBinary не работает с числами, а только с их строковыми эквивалентами, то описанные выше математические операции также проводятся со строковыми типами данных. В таких случаях каждый символ строки представляет цифру определенного разряда числа, и реализация всех математических алгоритмов сводится к имитации работы однобитных сумматора и делителя. Для исследования временных характеристик преобразователя, выбран ряд чисел, которые подавались на вход программы. Принцип проверки времени выполнения программы был основан на замере системного времени в момент нажатия кнопки «старт», до окончания всех преобразований. Результаты исследования представлены на рис. 4.2, где по оси ординат указано время выполнения программы в миллисекундах, а по оси абсцисс — значение экспоненты для каждого числа. Тестирование проводилось на компьютере со следующими параметрами: CPU: Celeron M 1.6 GHz, RAM: 1024 MB, HDD: SATA 80026 MB.
Рисунок 4.2 – Временная диаграмма преобразователя (ось ординат - длительность работи в секуднах, ось абсцисс - длина числа)
По результатам исследования выявлено, что при небольших значениях экспоненты, время работы зависит от количества значащих цифр самого числа, а при больших значениях экспоненты разница между исходными числами не существенна. Анализируя полученные результаты можно предположить, что при отрицательных значениях экспоненты, зависимость времени от ее величины линейная, а при положительных значениях — экспоненциальная. Это явление можно объяснить следующим: при отрицательных значениях экспоненты происходит множественное выполнение операции умножения (фактически, многократное сложение), а при положительных значениях экспоненты — множественные операции деления (фактически, многократное вычитание).
Конечным этапом работы является разработка постбинарного процессора, для реализации на ПЛИС, так как изготовление заказных БИС является очень дорогим и трудоемким. Разработана модель данного устройства на языке HDL, которая позволяет преобразовывать входное число в постбинарный формат, для последующей работы, так как данном процессоре все операции выполняются над постбинарными числами. RB0 и RB1 – буферные регистры. B2PT – преобразователь бинарных чисел в постбинарные P2BT – преобразователь постбинарных чисел в бинарные ALU – арифметико-логическое устройство (АЛУ) RFL – регистр флагов RB0 служит для ввода исходного числа. Разрядность – 64 бита. B2PT преобразовывает входное число из буфера RB0 в формат, необходимый для представления в АЛУ, определяет код формата и модификатор формата для входного числа. В RFL хранятся код и модификатор числа, его тип (бинарный или постбинарный), коды ошибки. Данные из регистра флагов используются при работе АЛУ, а также для преобразования выходных чисел. P2BT – преобразовывает выходное 128-битное число результата из АЛУ в бинарный формат, и записывает его в регистры RB0 и RB1. При этом анализируется значение поле формата числа, и если его можно представить 64 битами, то запись происходит только в регистр RB0, а RB1 заполняется нулями.
При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2012 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.
1. Hammer R., Hocks M., Kulisch U., Ratz D. — Numerical Toolbox for Verified Computing (Pascal-XSC Programs) Springer-Verlag Berlin Heidelberg, 1993, с.8.
2. Аноприенко А.Я., Гранковский В.А., Иваница С.В. Пример Румпа в контексте традиционных, интервальных и постбинарных вычислений // Научные труды Донецкого национального технического университета. Серия «Проблемы моделирования и автоматизации проектирования динамических систем» (МАП-2011). Выпуск 9 (179): Донецк: ДонНТУ, 2011. С. 324–343.
3. Аноприенко А.Я., Иваница С.В., Кулибаба С.В. Особенности представления постбинарных вещественных чисел в контексте интервальных вычислений и развития аппаратного обеспечения средств компьютерного моделирования // Моделирование и компьютерная графика / Материалы IV международной научно-технической конференции – 5-8 октября 2011 г. Донецк, ДонНТУ. – 2011. С. 13-19.
4. Бесплатные программы SoftElectro. Программа IEEE754 — конвертор чисел формата IEEE754 c абсолютной точностью представления результата. Электронный ресурс. Страница доступа: http://www.softelectro.ru/program.html.
5. Аноприенко А.Я., Иваница С.В. Постбинарный компьютинг и интервальные вычисления в контексте кодо-логической эволюции. — Донецк, ДонНТУ, УНИТЕХ, 2011. — 244 с.
6. Loh E., Walster G. Rump’s Example Revisited // Reliable Computing 8: 2002, p. 245–248.
7. Петров Ю.П. Обеспечение надежности и достоверности компьютерных расчетов. — СПб: БХВ-Петербург, 2008. — 160 с.
8. Аноприенко А.Я. Обобщенный кодо-логический базис в вычислительном моделировании и представлении знаний: эволюция идеи и перспективы развития // Научные труды Донецкого национального технического университета. Серия «Информатика, кибернетика и вычислительная техника» (ИКВТ-2005) выпуск 93: – Донецк: ДонНТУ, 2005. C. 289-316.
9. Аноприенко А.Я., Иваница С.В. Особенности постбинарного кодирования на примере интервального представления результатов вычислений по формуле Бэйли-Боруэйна-Плаффа // Научные труды Донецкого национального технического университета. Серия: «Информатика, кибернетика и вычислительная техника» (ИКВТ-2010). Выпуск 11 (164). – Донецк: ДонНТУ, 2010. С. 19-23.
10. Аноприенко А.Я., Иваница С.В. Интервальные вычисления и перспективы их развития в контексте кодо-логической эволюции // Научные труды Донецкого национального технического университета. Серия «Проблемы моделирования и автоматизации проектирования динамических систем» (МАП-2010). Выпуск 8 (168): Донецк: ДонНТУ, 2010. С. 150–160.
11. Moore R.E. Interval analysis. Eiiglewood Cliffs / R.E. Moore — N.J.:Prentic-e-llall, 1966.
12. Иваница С.В., Аноприенко А.Я. Особенности реализации операций тетралогики // Научные труды Донецкого национального технического университета. Серия: «Информатика, кибернетика и вычислительная техника» (ИКВТ-2011). Выпуск 13 (185). – Донецк: ДонНТУ, 2011. С. 134-140.
13. IEEE Standard for Floating-Point Arithmetic (IEEE 754) http://en.wikipedia.org/wiki/IEEE_754-2008