- •Основы прикладной теории цифровых автоматов
- •Основы прикладной теории цифровЫх автоматов
- •Оглавление
- •Предисловие
- •Глава 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. Алгоритм извлечения квадратного корня операнда с плавающей запятой
- •Определения основных понятий и терминов
- •Литература
1.4. Общие понятия о цифровом автомате и алгоритме
Необходимость формального описания компьютера и его отдельных частей в процессе его проектирования требует применения специального математического аппарата, который необходим при любых разработках различных методов обработки информации, при синтезе и анализе любых информационных процессов. Для этого вводится понятие абстрактного цифрового автомата.
Устройства, предназначенные для обработки, преобразования цифровой информации называются цифровыми автоматами. Наиболее распространенным в настоящее время видом цифровых автоматов являются электронные цифровые вычислительные машины с программным управлением, т.е. компьютеры.
Введем другое определение понятия цифрового автомата.
Цифровой автомат это устройство, характеризующееся набором некоторых внутренних состояний A = {a1(t), a2(t), ..., an(t)}= в которые оно попадает под воздействием входных сигналов и команд программы решения задачи.
Пусть имеется автомат с одним входом и одним выходом:
z(t) (t)
Рис.1.3. Цифровой автомат
Тогда математической модель. цифрового автомата является некоторый абстрактный автомат, заданный следующим образом: в начальный момент времени t = t0 автомат находится в состоянии a(t0) = a1 и остается в нем до момента t = t1, когда появляется входной сигнал z(t1). Под воздействием сигнала z(t1) автомат переходит из состояния a1 в состояние a(t1) = a2. При этом возникает выходной сигнал (t1) = 1, определяемый как функция
(t1) = [a(t1), z(t1)]. Таким образом можно принять, что при подаче произвольного сигнала z(t) = zf автомат переходит из состояния a(t) в состояние a(t+1), которое есть функция a(t+1) = [a(t), z(t)], и в результате вырабатывает выходной сигнал (t).
Выходные сигналы могут вырабатываться при каждом переходе автомата из состояния a(t) в состояние a(t+1) или только при определенных сочетаниях входного сигнала и состояний автомата.
Понятие состояния автомата используется для описания систем, выходы которых зависят не только от входных синалов в данный момент времени, но и от некоторой предыстории, т.е. сигналов, которые поступали на входы системы ранее. Состояние автомата соответствует некоторой памяти о прошлом, позволяя устранить время как явную переменную и выразить выходные сигналы как функцию состояний и входных сигналов.
Таким образом абстрактный автомат можно описать с помощью следующих параметров:
a1 - начальное состояние автомата;
A = {a1, a2,..., am } - множество внутренних состояний;
Z = {z1, z2,..., zf } - множество входных сигналов;
W = {1, 2,..., h } - множество выходных сигналов;
= {1, 2, ..., n } - совокупность функций перехода из одного состояния в другое;
= {1, 2,..., p } - совокупность функций выходов.
Следовательно, абстрактный автомат реализует некоторе отображение множества слов входного алфавита Z в множество слов выходного алфавита W.
Цифровые автоматы могут быть объединены между собой для фор-мирования более сложного устройства обработки цифровой информации. Существует несколько способов соединения автоматов. Например, параллельное соединение автоматов ЦА1 и ЦА2 (рис.1.4 а), последовательное соединение (рис.1.4. б) и соединение с обратной связь. (рис.1.4. в).
Y1
X Y = (Y1, Y2)
Y2
а) X Y1 Y
X X1 Y1 б)
Y2
в)
Рис. 1.4.
В первом случае устройство объединяет выходы двух автоматов и тем самым получается новый атомат, у которого Y = (Y1, Y2).
Во втором случае выходной алфавит первого автомата является входным для второго. В третьем случае имеется некоторый преобразователь , являющийся автоматом без памяти, который реализует отображение
| X Y2 X1, т.е. X1 = (X, Y2). Очевидно, что во всех этих случаях в итоге формируется некий цифровой автомат с новыми характеристиками.
Совокупность правил перехода автомата из одного состояния в другое в зависимости от входной информации и внутренних состояний автомата называется алгоритмом преобразования (переработки) информации. Вообще алгоритмом называется конечная совокупность точно сформулированных правил решения какойто задачи.
Можно привести еще одно определение понятия алгоритма. Алгоритм - это строго формальное описание конечной последовательности некоторых "элементарных" действий или процедур, которую надо выполнить над исходными данными и над промежуточными результатами, возникшими в ходе выполнения этих операций, для того чтобы прийти к информации, являющейся результатом обработки исходных данных. Подробное описание принципов разработки алгоритмов и их блок-схем приведено в Главе 11.
Перечисленные, в этой главе понятия относятся к абстрактной теории цифровых автоматов, в которой рассматриваются автоматы, имеющие один вход и один выход. Поэтому применить все это к ЭВМ можно только в самом общем виде, ограничивая круг рассматриваемых устройств устройствами, входящими в состав процессора, или же в случае когда рассматривается вообще некоторый узел ЭВМ, предназначенный для достаточно элементарной обработки цифровой информации. В самом деле, в зависимости от команд, подаваемых устройством управления процессора, арифметическо-логическое устройство осуществляет соответствующие действия (изменение внутренних состояний) с выдачей необходимых результатов. Однако изменение внутренних состояний всей ЭВМ в целом носит настолько сложный характер, что этот процесс невозможно отобразить в аналитическом виде. Поэтому понятие цифрового автомата целесообразно использовать применительно к алгоритмам, реализующим некотору. программу или последовательность операций. При этом каждая операция представляется как элементарное действие, осуществляемое в процессе переработки информации.
И все-таки в дальнейшем, если это не будет специально оговорено, всегда под понятием "цифровой автомат" будем иметь в виду компьютер без детализации о каком из его узлов идет речь, или же вообще прямо будем использовать термин "компьютер".