- •Вычислительные машины (конспект лекций) однопроцессорные эвм
- •Часть 1
- •1.1. Два класса эвм 5
- •1.1. Два класса эвм
- •1.2. Немного истории
- •1.3. Принципы действия эвм
- •1.4. Понятие о системе программного (математического) обеспечения эвм
- •1.5. Поколения эвм
- •1.6. Большие эвм общего назначения
- •1.6.1. Каналы
- •1.6.2. Интерфейс
- •1.7. Малые эвм
- •Вопросы для самопроверки
- •2. Представление информации в эвм
- •2.1. Позиционные системы счисления
- •2.2. Двоичная система счисления
- •2.2.1. Преобразование двоичных чисел в десятичные
- •2.2.2. Преобразование десятичных чисел в двоичные
- •2.2.3. Двоично-десятичная система счисления
- •2.3. Восьмеричная система счисления
- •2.4. Шестнадцатеричная система счисления
- •2.5. Двоичная арифметика
- •2.5.1. Сложение
- •2.5.2. Вычитание
- •2.5.3. Умножение
- •2.5.4. Деление
- •2.6. Прямой, обратный и дополнительный коды
- •2.6.1. Прямой код
- •2.6.2. Обратный код
- •2.6.3. Дополнительный код
- •2.6.4. Сложение и вычитание в дополнительном коде
- •2.6.5. Признак переполнения разрядной сетки
- •2.6.6. Деление в дополнительном коде
- •2.6.7. Правило перевода из дополнительного кода в десятичную систему
- •2.6.8. Модифицированные коды
- •2.6.9. Арифметика повышенной точности
- •2.7. Представление дробных чисел в эвм. Числа с фиксированной и плавающей запятой
- •2.7.1. Числа с фиксированной запятой
- •2.7.2. Числа с плавающей запятой
- •2.7.3. Сложение (вычитание) чпз
- •2.7.4. Умножение чпз
- •2.7.5. Методы ускорения умножения
- •2.7.6. Деление чисел с плавающей запятой
- •2.8. Десятичная арифметика
- •2.8.1. Сложение двоично-десятичных чисел
- •2.8.2. Вычитание модулей двоично-десятичных чисел
- •2.8.3. Умножение модулей двоично-десятичных чисел
- •2.8.4. Деление модулей двоично-десятичных чисел
- •2.9. Нарушение ограничений эвм
- •2.10. Представление буквенно-цифровой информации
- •2.11. Заключительные замечания
- •Вопросы для самопроверки
- •Контрольные задания к теме 2
- •Форма 1. Ответы на вопросы
- •Форма 2. Выполнение арифметических операций над числами
- •Пример выполнения контрольного задания (форма 2)
- •3. Принципы построения элементарного процессора
- •3.1. Операционные устройства (алу)
- •3.2. Управляющие устройства
- •3.2.1. Уу с жесткой логикой
- •3.2.2. Уу с хранимой в памяти логикой
- •3.2.2.1. Выборка и выполнение мк
- •3.2.2.3. Кодирование мк
- •3.2.2.4. Синхронизация мк
- •Вопросы для самопроверки
- •Контрольные задания к теме 3
3.2.2.3. Кодирование мк
Выбор способа кодирования микрокоманд представляет собой достаточно сложную задачу и зависит от структуры процессора и его целевого назначения, системы команд, быстродействия и т.д. Рассмотрим только основные способы кодирования микрокоманд.
Горизонтальное кодирование(рис. 3.11, а). Это простейший вариант кодирования микрокоманд, при котором каждый разряд поля кода микроопераций однозначно определяет управляющий сигнал для выполнения микрооперации.
Достоинство данного способа состоит в том, что он допускает работу нескольких устройств, т.е. параллельное выполнение ряда МО, что повышает быстродействие.
Недостаток способа – при большом наборе МО (от нескольких десятков до нескольких сотен) возрастает разрядность МК и, следовательно, разрядность ПМК.
Вертикальное кодирование(рис. 3.11, б). Это другой подход к кодированию МК с целью максимального сокращения разрядности поля КМО. В этом случае требуется дешифратор МО, который увеличивает временные задержки и, следовательно, время выполнения МО.
Помимо увеличения времени на МО к недостаткам следует отнести невозможность параллельного выполнения МО.
Смешанное кодирование(рис. 3.11, в). Это кодирование устраняет основные недостатки, присущие горизонтальному и вертикальному кодированиям.
При таком кодировании в отдельных полях кода МО объединяют взаимоисключающие наборы для обеспечения параллельного выполнения МО с разных полей. Данный способ кодирования находит широкое применение в микропрограммных УУ.
Способы 1, 2, 3 – это прямые способы кодирования. Здесь каждое поле КМО формирует определенный набор управляющих сигналов, интерпретируемых всегда одинаковым образом.
Косвенное кодирование(рис. 3.11, г). Этот способ кодирования позволяет еще больше уменьшить разрядность МК. Здесь одно и то же поле можно использовать для формирования СУ для различных блоков, при этом его функции определяются другим полем.
На рис. 3.11 КМО1кодирует одну из четырех групп МО, поле КМО2определяет реализуемую в данной группе операцию.
Пример
00 – микрооперации в АЛУ;
01 – МО в памяти и регистрах контроллеров периферийных устройств;
10 – МО безусловного и условного переходов;
11 – константы для загрузки регистров и счетчиков.
КМО2позволяет выполнить 64 МО в любой из указанных групп оборудования.
Недостатком такого способа кодирования является увеличение объема оборудования и, следовательно, дополнительных задержек при исполнении МО.
Рассмотренные способы кодирования являются одноуровневыми. На практике используют и многоуровневое кодирование (микрокоманды, нанокоманды и т. д.).
3.2.2.4. Синхронизация мк
С этой точки зрения МК делятся на однофазные и многофазные. При этом в МК может быть включен дополнительный разряд, определяющий тип синхронизации.
Достоинством однофазныхМК (рис. 3.12, а) является простота технической реализации.
МногофазныеМК (рис. 3.12, б) позволяют минимизировать число МК в памяти, упрощают выполнение сложных МК и связь между приемником и источником информации. Недостатком является увеличение объема оборудования для формирования многофазных синхросигналов.
Время выполнения некоторых МО бывает существенно меньше рабочего такта процессора (время выполнения одной МК), что позволяет при горизонтальном кодировании в одном такте выполнять не только совместимые, но и ряд несовместимых МО. Для этого рабочий такт процессора делят на подтакты (фазы), в каждом из которых выполняется одно или несколько элементарных действий (МО) по реализации МК.