- •Введение
- •Глава 1. Системы элементов эвм
- •§ 1.1 Потенциальная система элементов ттл.
- •§ 1.2 Система элементов мдп (кмдп).
- •§ 1.3 Выходные каскады логических элементов.
- •1. Выход с открытым коллектором
- •2. Открытый эмиттерный выход
- •3. Выход с тремя состояниями
- •§ 1.4 Основные параметры логических элементов.
- •§ 1.5 Соглашения положительной и отрицательной логики.
- •§ 1.6 Особенности базисов современных элементов. Двойственность логических элементов.
- •§ 1.7 Разветвление по входу и выходу.
- •§ 1.8 Гонки.
- •§ 1.9 Гонки по входу.
- •Глава 2. Устройство эвм.
- •§ 2.1 Триггеры.
- •§ 2.2 Классификация триггеров.
- •§ 2.3 Синхронные (статические) rs-триггеры.
- •§ 2.4 D-триггер (dv-триггер).
- •§ 2.5 Класс двухступенчатых триггеров. Jk-триггер.
- •§ 2.6 Дешифраторы, шифраторы.
- •§ 2.7 Преобразователи произвольных кодов.
- •§ 2.8 Мультиплексоры.
- •§ 2.9 Регистры.
- •§ 2.10 Счетчики.
- •§ 2.11 Счетчики с параллельным переносом.
- •§ 2.12 Двоично-кодированные счетчики с произвольным модулем.
- •§ 2.13 Счетчики с недвоичным кодированием.
- •§ 2.14 Полиномиальные счетчики.
- •§ 2.15 Компараторы.
- •Глава 3. Сумматоры
- •§ 3.1 Инкременторы.
- •§ 3.2 Многоразрядные сумматоры с последовательным переносом.
- •§ 3.3 Сумматор с двухколейным переносом.
- •§ 3.4 Сумматоры с параллельным переносом.
- •Глава 4. Алу
- •§ 4.1 Классификация алу. Его назначение.
- •§ 4.2 Языки описания вычитаемых устройств.
- •§ 4.3 Алу для сложения (вычитания) чисел с фиксированной точкой.
- •§ 4.4 Методы умножения двоичных чисел.
- •§ 4.5 Алу для умножения чисел с фиксированной точкой.
- •§ 4.6 Деление целых чисел с фиксированной точкой.
- •§ 4.7 Арифметические операции над десятичными числами (двоично-десятичные сумматоры)
- •§ 4.8 Матричные умножители.
- •§ 4.9 Блок логических операций.
- •§ 4.10 Последовательные умножители.
- •Глава 5. Операции над числами с плавающей точкой.
- •§ 5.1 Сложение и вычитание чисел с плавающей точкой.
- •§ 5.2 Умножение чисел с плавающей точкой.
- •§ 5.3 Деление чисел с плавающей точкой.
- •§ 5.4 Драйверы, шинные приемопередатчики
- •Глава 6. Процессор, его состав
- •§ 6.1 Структурная схема цп
- •§ 6.4 Микропроцессоры
Глава 5. Операции над числами с плавающей точкой.
I. Для представления чисел с фиксированной точкой положение точки фиксируется в определенном месте относительно разрядов модуля числа в разрядной сетке (ячейке).
а) Точка фиксируется перед старшим цифровым разрядом числа
.
В этом случае могут быть представлены числа, по модулю меньше единицы. При занесении числа в ячейку, свободные младшие разряды заполняются нулями. А если число значащих разрядов модуля больше числа (n-1), то младшие разряды теряются, что приводит к погрешности меньшей единицы младшего разряда.
б) Точка фиксируется перед младшим цифровым разрядом
По сложившейся традиции нумерация разрядов сетки в больших машинах ведется слева направо, а в малых – справа налево.
В этом случае модулем числа является только целое число. При занесении числа в ячейку, число разрядов которого превышает число (n-2), теряются старшие разряды, которые могут дать погрешность до 100 %.
II. Числа с плавающей точкой.
В этом случае формат представления числа иной.
Вобщем случае представление числа с плавающей точкой имеет вид:, гдеq 1, SP - характеристика числа, p – порядок числа, S – основание характеристики.
Формат разрядной сетки:
Числа с плавающей точкой могут быть представлены и в других форматах: с основанием 8 и 16.
Число называютнормализованным, если мантисса q удовлетворяет следующему соотношению: 1/S.
В процессе вычисления может получиться ненормализованное число (в старших разрядах появляются нули). Тогда машина автоматически нормализует число.
Например: получен результат, в котором r старших разрядов – нулевые.
Нормализация заключается в сдвиге мантиссы q на r разрядов влево и одновременном уменьшении порядка на r единиц. При этом в младшие r разрядов мантиссы записываются нули. После этой операции число не меняется, а условие нормализации выполняется.
Поскольку арифметическое действие над числами с плавающей точкой требуют отдельных операций над мантиссами и порядками чисел, то операции над порядками сводят к операциям над целыми положительными числами, применяя представление чисел со смещенным порядком. Для этого при записи числа в ячейку памяти к порядку p прибавляется целое число смещения N=2k, где k – число двоичных разрядов, используемых для расположения порядка в разрядной сетке. Тогда смещенный порядок будет равен: pсм=p+N. Этот смещенный порядок всегда будет положительным, и будет при этом занимать то же число разрядов.
Свойство смещенного порядка: если p' > p'', то p'см p''см
Это говорит о том, что смещение порядка не влияет на операции над числами.
§ 5.1 Сложение и вычитание чисел с плавающей точкой.
Сложение и вычитание чисел плавающей точкой производится по формуле:
, пусть x > y
Алгоритм сложения / вычитания:
1) Производится выравнивание порядков чисел:
порядок меньшего по модулю числа принимается равным порядку большего числа, а мантисса меньшего сдвигается влево на S-ичных разрядов, равных разности порядков.
2) Производится сложение / вычитание мантисс, и получается сумма / разность мантисс.
3) Порядок суммы / разности принимается равным порядку большего числа.
4) Полученный результат нормализуется.
Арифметическое действие над порядками и мантиссами выполняется либо отдельными устройствами, либо последовательно одним устройством.
Операция сложения / вычитания состоит из следующих этапов:
1) прием операндов
2) выравнивание порядков со сдвигом мантисс
3) сложение / вычитание мантисс
4) нормализация результата
1) Прием операндов:
Прием слагаемого / вычитаемого х в регистр RG3. Фиксация знака числа (из 0) в триггере знака Тзн1. Установка регистра RG3 в ноль.
Прием второго слагаемого / вычитаемого y в RG1. Фиксация знака в триггере знака Тзн2. Установка регистра RGA в .
2) Операции над порядками:
Значение порядков из разрядов 1 7 регистров RG1 и RG3 подаются в регистры RGC и RGD.
Далее в блоке обработки порядков происходит их сравнение, по результатам которого мантисса с меньшим порядком сдвигается вправо на число разрядов, равное разности порядков. За порядок результата операции принимается больший из порядков.
При сравнении порядков возможны пять случаев их соотношения:
• Px – Py m, где m – число разрядов мантиссы, за результат в этом случае принимается слагаемое х, так как при сдвиге мантиссы слагаемого y все ее разряды примут нулевое значение.
• Py – Px m, за результат принимается мантисса y.
• Px – Py = 0, производится суммирование / вычитание мантиссы.
• Px – Py = K1 (K1 m), мантисса y сдвигается на K1 разрядов.
• Py – Px = K2 (K2 m), мантисса x сдвигается на K2 разрядов.
Процесс сдвига мантиссы заключается в следующем: в счетчик циклов из блока обработки порядков заносится число разрядов K1 или K2, на которые ее надо сдвинуть. По мере сдвига мантиссы содержимое счетчика циклов уменьшается, и когда счетчик циклов становится равным нулю, сдвиг прекращается.
Полученные модули мантисс хранятся в регистрах RG1 и RG3 в разрядах 831, их знаки – в триггерах знака Тзн1 и Тзн2, а принятый порядок хранится в регистре счетчика RGСч1.
3) Сложение / вычитание мантисс:
а) при одинаковых знаках чисел модули мантисс передаются в RGA и RGB и складываются в сумматоре.
Если в сумматоре в разряде 7 окажется единица, то возникло переполнение разрядной сетки, поэтому сумма сдвигается на разряд вправо, а порядок увеличивается на единицу, т.е. RG1 := RGСч1 + 1.
Если окажется, что в сумматоре в разряде 0 находится единица, то произошло переполнение порядка, поэтому вырабатывается сигнал прерывания вычислительного процесса.
Если переполнения порядка нет, то в регистр сумматора в разряды 1 7 заносится порядок из регистра счетчика RGСч1, в разряд 0 в регистр сумматора заносится знак мантиссы, а в разряды сумматора 8 31 заносится мантисса суммы.
Таким образом, в регистре сумматора полностью сформирован результат.
б) при разных знаках мантисс отрицательный из них передается на входной регистр RGA или RGB, в обратном коде производится суммирование с дальнейшим подсуммированием единицы.
Знак результата фиксируется в триггере знака. Если полученный результат нормализован, т.е. в разряде сумматора 8 находится единица, то в регистр сумматора заносится: знак результата – в 0, порядок – в 1 7, модуль мантиссы – в разряды 8 31.
Если результат не нормализован, т.е. в 8 находится ноль, и нет исчезновения мантиссы ([8 31] 0), производится нормализация сдвигом мантиссы влево с одновременным уменьшением порядка.
При отрицательном переполнении порядка, т.е. если RGСч1[0]=1, формируется признак исчезновения порядка, т.е. результат равен нулю.
Если нормализация происходит без исчезновения порядка, то формируется результат из кодов знака, порядка и мантиссы.
Примечание: в операциях с плавающей точкой сложение и вычитание выполняется приближенно, т.к. при выравнивании порядка может происходить потеря младших разрядов одного из слагаемых.
Погрешность в этом случае всегда отрицательна и может доходить до единицы младшего разряда. Поэтому применяется округление результата, для чего используется дополнительный разряд сумматора, в который после суммирования добавляется единица.