- •Основы прикладной теории цифровых автоматов
- •Основы прикладной теории цифровЫх автоматов
- •Оглавление
- •Предисловие
- •Глава 1. Информационные основы цифровых автоматов
- •1.1. Информация и общие принципы ее преобразования
- •1.2. Обмен информацией между различными информационными устройствами
- •1.3. Аппаратные средства хранения и обработки информации
- •1.4. Общие понятия о цифровом автомате и алгоритме
- •Глава 2. Представление числовой информации в цифровом автомате
- •2.1. Системы счисления и понятие кода
- •2.2. Выбор системы счисления
- •2.3. Формальные правила двоичной арифметики
- •2.4. Перевод числа из одной позиционной системы счисления в другую
- •Глава 3. Формы представления чисел в цифровых автоматах
- •3.1. Форма представления двоичных чисел с фиксированной запятой
- •3.2. Представление отрицательных чисел в формате с фиксированной запятой
- •3.3. Форма представление чисел с плавающей запятой
- •3.4. Перевод чисел из формата с фиксированной запятой в формат с плавающей запятой и обратно
- •3.5. Погрешности представления чисел
- •20 [A]ф 2n - 1 для целых чисел
- •Глава 4. Арифметические действия с двоичными числами
- •4.1. Сложение двоичных чисел
- •4.1.1. Алгебраическое сложение чисел, представленных в форме с фиксированной запятой
- •4.1.2. Переполнение разрядной сетки
- •4.1.3. Модифицированный прямой, обратный и дополнительный код
- •4.1.4. Алгебраическое сложение чисел, представленных в форме с плавающей запятой
- •4.2. Умножение двоичных чисел
- •4.2.1. Методы умножения двоичных чисел
- •4.2.2. Умножение чисел, представленных в форме с фиксированной запятой
- •4.2.3. Умножение чисел, представленных в форме с плавающей запятой
- •4.2.4. Ускорение операции умножения
- •4.3. Деление двоичных чисел
- •4.3.1. Деление двоичных чисел, представленных в форме с фиксированной запятой.
- •4.3.2. Деление двоичных чисел, представленных в форме с плавающей запятой.
- •4.4. Оценка точности выполнения арифметических операций
- •4.4.1. Погрешность округления
- •Глава 5. Выполнение операций над десятичными числами
- •5.1. Представление десятичных чисел в д-кодах
- •5.2. Формальные правила поразрядного сложения в д-кодах
- •5.3. Представление отрицательных чисел в д-кодах
- •5.4. Выполнение операций сложения и вычитания в д-кодах
- •5.5. Умножение чисел в д-кодах
- •5.6. Деление чисел в д-кодах
- •5.7. Перевод чисел из д-кода в двоичный и из двоичного в д-код
- •Глава 6 контроль работы цифрового автомата
- •6.1. Основные понятия теории кодирования
- •6.2. Кодирование по методу четности-нечетности
- •6.3. Коды Хеминга
- •6.4. Контроль по модулю
- •6.5. Контроль арифметических операций
- •Глава 7. Основы алгебры логики
- •7.1. Основные понятия алгебры логики
- •7.2. Свойства элементарных функций алгебры логики
- •7.3. Аналитическое представление функций алгебры логики
- •7.4. Совершенные нормальные формы
- •7.5. Системы функций алгебры логики
- •7.6. Числовое и геометрическое представление логических функций
- •Глава 8. Упрощение и минимизация логических функций
- •8.1. Задача минимизации
- •8.2. Метод Квайна и импликантные матрицы
- •8.3. Метод Карно (диаграммы Вейча)
- •Глава 9. Методы анализа и синтеза логических электронных схем
- •9.1. Логические операторы электронных схем или цепей
- •9.1.1. Задачи анализа и синтеза электронных схем
- •9.2. Синтез логических схем с одним выходом
- •9.3. Электронные схемы с несколькими выходами
- •9.4. Временные булевы функции и последовательностные автоматы
- •Глава 10. Введение в теорию автоматов и структурный синтез цифровых автоматов
- •10.1. Основные понятия и определения
- •10.2. Методы структурного синтеза и языки описания цифровых автоматов
- •10.3. Элементарный автомат (триггерный элемент)
- •10.4. Синтез цифрового автомата с памятью
- •Глава 11 алгоритмы реализации арифметических действий в цифровых автоматах
- •11.1. Общие принципы разработки алгоритмов
- •11.2. Алгоритмы реализации арифметических действий с операндами, представленными в форме с фиксированной запятой
- •11.2.1.Сложение и вычитание
- •11.2.2. Умножение
- •11.2.3. Деление
- •11.3 Алгоритмы реализации арифметических действий с операндами, представленными в форме с плавающей запятой
- •11.3.1. Сложение и вычитание
- •11.3.2. Умножение
- •11.3.3. Деление
- •11.4. Блок-схемы регистра накапливающего сумматора
- •11.4.1. Для работы с обратным кодом
- •11.4.2. Для работы с дополнительным кодом
- •11.5. Алгоритм извлечения квадратного корня операнда с плавающей запятой
- •Определения основных понятий и терминов
- •Литература
11.3 Алгоритмы реализации арифметических действий с операндами, представленными в форме с плавающей запятой
Устройство для арифметических действий с числами с плавающей запятой можно представить следующим образом:
Рис. 11.9.
АС - накапливающий сумматор;
SR - запоминающий регистр;
MQ - регистр множителя-частного;
SC - счетчик сдвигов;
CHOV - индикатор переполнения порядка;
CHUN - индикатор исчезновения порядка;
DVOV - индикатор ошибки при делении;
FR - часть регистра, относящаяся к мантиссе (разряды:m 1; 1 _ младший разряд, m - старший);
CH - часть регистра, относящаяся к порядку;
QCH, QFR _ служебные разряды субрегистров AC(CH), AC(FR) соот-ветственно, которые используются для контроля за переполнением разрядной сетки;
L - регистр со значением смещения l.
Напомним, что обычно в формате с плавающей запятой вместо показателя p используют так называемую характеристику ("смещенный порядок"):
r = p + l,
где l - избыток (смещение), значение которого подбирается таким образом, чтобы при изменении значения показателя от некоторого минимального значения -|pmax| до максимального +|pmax|, характеристика r менялась от 0 до rmax\ Следовательно, характеристика не меняет своего знака. Для этого принимается, что
l = 2k-1 ,
где k - число разрядов, выделеных для представления порядка числа в формате с плавающей запятой.
Таким образом, каждый из регистров AC, SR, MQ включает в себя два субрегистра, один из которых предназначен для размещения кода характеристики операнда, а другой для размещения мантиссы. Эти субрегистры могут независимо участвовать в тех или иных арифметических процедурах.
В этом АУ, как и в АУ для операндов с фиксированной запятой, при вычитании содержимого регистра SR из содержимого регистра АС вычитаемое представляется в дополнительном коде непосредственно на входах параллельного сумматора
Субрегистры FC(FR), MQ(FR) объединены в один так называемый "касрегистр" (линия связи 1 и 2) для процедуры сдвига их содержимого вправо или влево. Причем, таким образом, чтобы при каждом таком сдвиге по линии связи 1 очередной младший разряд FC(FR) попадал в старший разряд MQ(FR) и наоборот. По линиии связи 2 содержимое старшего разряда субрегистра FC(FR) передается младшему разряду субрегистра MQ(FR). При активизации одной линии связи другая блокируется.
Здесь так же, как и на рис.11.1 не показан узел управления АУ.
11.3.1. Сложение и вычитание
При сложении складываются содержимое регистров SR и AC. При вычитании вычитаемое размещается в регистре SR, а уменьшаемое - в АС. Результат формируется в регистре АС.
Граф-схема алгоритма алгебраического сложения операндов с плавающей запятой приведена на рис.11.10. В этом алгоритме не учитывается особенность используемого в АУ параллельного сумматора.
Процедура сложения или вычитания состоит из 4 основных частей:
инициализации;
выравнивания порядка, т.е характеристики;
сложения или вычитания мантисс;
нормализации.
Во время инициализации выполняются следующие процедуры.
1. Если в OPCODE код вычитания, то содержимое SR(S) инвертируется, т.е. [SR(S)].
2. 0 MQ.
3. Если AC(FR) = 0, то переход к пункту 5, иначе к пункту 4.
4. Если SR(FR) = 0, то переход к пункту 6, иначе переход к процедуре выравнивания порядков.
5. Если SR(FR) = 0, то переход к пункту 6, иначе [SR] FC и переход к пункту 6.
6. Конец процедуры алгебраического сложения.
Во время выравнивания порядков мантисса операнда с меньшим порядком (характеристикой) сдвигается по разрядной сетке вправо с прибавлением единицы к его характеристике при каждом сдвиге на один разряд. Эта процедура продолжается до тех пор, пока характеристики обоих операндов не станут равными. Полученная таким образом характеристика, одинаковая для обоих операндов, присваивается, как предварительная, результату операции. Значение этой характеристики засылается в субрегистр AC(CH). Граф-схема процедуры выравнивания порядков приведена на рис.11.11 и более подробно на рис.11.12.
Далее осуществляется сложение или вычитание мантисс по правилам, аналогичным правилам для чисел с фиксированной запятой. В этой процедуре использутся субрегистры SR(S, FR), FC(S, QFR, FR).
В этом арифметическом устройстве при выполнении алгебраического сложения мантисса отрицательного операнда также представляется в дополнительном коде. Например, если SR(S) = 1, то SR(FR) := [SR(FR)] + 1, если же AC(S) = 1, то AC(FR) := [AC(FR)] + 1.
Если результат получился в дополнительном коде: AC(S) = 1= то он преобразуется в прямой, т.к. мантисса всегда модуль со знаком. Для этого выполняется следующая процедура: AC(FR) := [AC(FR)] + 1.
После алгебраического сложения выполняется процедура нормализации результата, граф-схема которой приведена на рис.11.13.
1. Если [AC(QFR)] = 1, то мантисса результата сдвигается вправо вместе с этим разрядом, а характеристика результата увеличивается на единицу.
2. Если в процессе нормализации произошло переполнение порядка: AC(QCH) = 1= то единица засылается в регистр CHOV\
3. Если [AC(QFR)] = 0 и старший разряд субрегистра AC(FR) также равен 0, то в счетчик SС загружается число равное числу разрядов, выделенных под мантиссу числа. После этого выполняется сдвиг [AC(FR)] на один разряд влево с вычитанием единицы из [AC(CH)] и SC = [SC] _ 1. Эта процедура продолжается пока в старшем разряде не появится единица или пока не станет [SС] = 0.
4. Если не произошло исчезновение порядка (r < 0), то процедура сложения или вычитания заканчивается. При исчезновении порядка в регистр CHUN засылается единица, а в регистр AС - 0.