- •Основные понятия и определения
- •Принципы программного управления Фон Неймана
- •Представление данных в эвм
- •Позиционные системы счисления Перевод чисел из одной системы счисления в другую
- •Структура и форматы команд
- •Типи машинных операций
- •Системы адресации
- •Построение вычислительной машины
- •Регистровое запоминающее устройство
- •Операции умножения и деления в эвм операция умножения чисел с фиксорованной запятой сводится к операциям сложения и сдвига Числа с фиксированной запятой (ф.З.) – правильная дробь со знаком
- •Сдвиг вправо двойного
- •Произведение и множимое хранятся в рзу, множитель – в регистре расширения Умножение чисел со знаком
- •Деление
- •1. Новые алгоритмы
- •2. Построение специализированных схем Два варианта быстрых схем
- •Такая организация каких-либо операций – это основа таблично-алгоритмических методов Память (зу) не является памятью автомата
- •Разобьем число на две части
- •В микрокоманде определяются адреса регистров, выбираемых по умолчанию
- •Кодирование микроопераций
- •Построение управляющего автомата
- •Управляющие автоматы с жесткой логикой
- •Управляющие автоматы с программируемой логикой
- •С хема фам
- •Реализация переходов
- •Условные переходы
- •Реализация оператора ключ (Многоразрядные условия)
- •Конвейер
- •Простейшая машина
- •Управляющий автомат
- •Операционный автомат
- •Системы памяти
- •Классическая четырехуровневая система памяти
- •Типы выборки
- •Предположим, что работаем с одним банком
- •Метод сегментов
- •Если добавить сегмент векторов прерываний, то в сумме объем сегментов будет равен 320 Кб
- •Метод сегментов является развитием метода банков, здесь банки памяти выделяются под каждый тип данных
- •Для каждого типа данных заводить большую физическую память
- •Метод окна
- •Распределение адресного пространства диспетчером памяти
- •Страничная организация памяти
- •Стратегии замещения
- •Физическая память не бесконечна, и по мере ее заполнения нам нужно выбирать, какие страницы мы будем из нее убирать, для этого существуют стратегии замещения.
- •При этом известны два подхода к решению этой проблемы:
- •Б.) При аппаратной реализации требуется определить:
- •Сверхоперативные запоминающие устройства
- •Память с расслоением обращений
- •Где № блока – адрес внутри модуля памяти; № сл. В бл. – адрес (смещение) в блоке;
- •За одно обращение читается весь блок из «к» слов в некоторый буфер
- •Синхронизация процессов обмена
- •Организация гальванической развязки
- •Общая шина
- •Варианты построения схем арбитража
- •Машина, управляемая данными.
- •Основные принципы организации суперЭвм
- •Risc-архитектура
- •Технологический обзор
- •Способы и уровни введения параллелизма
Сдвиг вправо двойного
слова
сдвиг короткого слова осуществляется через перенос
После получения результата в формате двойного слова необходимо дополнительно сдвинуть его на один разряд вправо, чтобы правильно расположить произведение в разрядной сетке.
Произведение и множимое хранятся в рзу, множитель – в регистре расширения Умножение чисел со знаком
Умножение чаще всего производится в допонительном коде
1. Перемножаем числа без знака
старший разряд числовой
переполнение перенос
2. Вещественные числа
Признак переноса не является признаком переполнения
V – признак арифметического переполнения (OVR)
V=1
-
управляемая инверсия
модифицированный
сдвиг
Модифицированный код – под знак отводотся 2 бита; при этом изменяется только младший знаковый разряд, старший остается правильным
B – отрицательное
P = A·Доп(B) = A·(2n – |B| ) = A·2n – A·B = A·2n + Доп(A·|B|)
Pбез bn-1 = A·2n – A·|B| – A·2n-1 = A·2n-1 + Доп(A·|B|) = A (зн. B)· 2n-1 + Доп(A·|B|)
Доп(A·|B|) = Pист = Рбез bn-1 – A·bn-1·2n-1
Умножаем на (n-1) младший разряд множителя с учетом знака множимого.
Из полученного произведения вычитаем множимое, умноженное на знаковый разряд с его весом
P = 0 + A·b0 + A·b1 + … + A·bn-1 + (– A·bn-1)
Деление
Деление – одна из многих обратных операций
Делимое должно быть 2n разрядным; делитель и частное – n-разрядными
Р – делимое
А – делитель
В – частное
Любая обратная операция определяется методом подбора цифр
bn-1·A P
(bn-1 + 1)·A > P
bn-1 = 1
P – A 0
P = P n-1 = P n-2 + pn-1
Произведение Делимое
Частичные суммы остатки (P i )
P n-2 = P n-1 – pn-1
Если остаток 0, то bn-1 = 1,
иначе bn-1 = 0
bi – очередной разряд частного
1) алгоритм деления с восстановлением остатка
Восстанавливаем остаток, если лн меньше нуля
Если очередной остаток (P i – A)< 0, то восстанавливаем его, т.е. заменяем на P i
Пусть (P i – A) – текущий остаток от деления;
Если он отрицательный, то нужно вернуться к прежнему остатку, т.е.
P i – A + A = P i-1 – следующий остаток,
и осуществляется сдвиг делителя вправо – А/2
P
i-1
–A/2 = P
i –
A + A – A/2 = (P
i –
A) + A/2
отрицательный остаток
2) алгоритм деления без восстановления остатка
Если текущий остаток отрицательный, то при подборе следующей цифры прибавляется делитель, сдвинутый на один разряд вправо,
P
i-1
–A/2 = (P
i –
A) + A/2
отрицательный остаток
в очередной разряд частного записываем 0;
если текущий остаток положительный, то при подборе следующей цифры вычитается делитель, сдвинутый на один разряд вправо,
P i-1 –A/2 = (P i – A) – A/2
в очередной разряд частного записываем 1;
Если предыдущая цифра 1 – вычитаем делитель
0 – прибавляем делитель
Если хотим осуществить умножение быстрее, чем за n тактов, то существует 2 варианта:
Новые алгоритмы
Построение специализированных схем
1. Новые алгоритмы
Умножение 16-ти разрядных чисел
Умножаются за 16 тактов – в двоичной системе
за 8 тактов – в восьмеричной системе
Умножение с анализом двух разрядов
Вычисления в четверичной СС
0 00
1 01
2 10
3 100-001 (3=4-1)
qст |
B1 |
b0 |
b-1 |
Действие |
Действие |
q |
0 |
0 |
0 |
0 |
P/4 + 0 |
P/4 + 0 |
q = 0 |
0 |
0 |
1 |
0 |
(P + A)/4 |
(P + A)/4 |
q = 0 |
0 |
1 |
0 |
0 |
(P – 2A)/4 |
(P + 2A)/4 |
q = 0 |
0 |
1 |
1 |
0 |
(P – A)/4 |
(P – A)/4 |
q = 1 |
1 |
0 |
0 |
1 |
(P + A)/4 |
(P + A)/4 |
q = 0 |
1 |
0 |
1 |
1 |
(P + 2A)/4 |
(P + 2A)/4 |
q = 0 |
1 |
1 |
0 |
1 |
(P – A)/4 |
(P – A)/4 |
q = 1 |
1 |
1 |
1 |
1 |
P/4 |
P/4 |
q = 1 |
|
|
qст – признак коррекции предидущего разряда
Рассмотрим один из способов умножения на два разряда множителя, начиная с его младших разрядов (упрощенный алгоритм Бута). В зависимости от результата анализа пары разрядов множителя предусматриваются следующие действия. При 00 производится простой сдвиг на два разряда вправо суммы частичных произведений. При 01 к сумме частичных произведений прибавляется одинарное множимое и сумма частичных произведений сдвигается на два разряда вправо. При 10 прибавляется удвоенное множимое и сумма частичных произведений сдвигается на 2 разряда вправо. При 11 из суммы частичных произведений вычитается одинарное множимое и сумма частичных произведений сдвигается на два разряда вправо. Тогда в первых трех случаях результат получается правильный, а в последнем – неправильный, он должен быть скорректирован на следующем шаге.
Поскольку при 11 из суммы частичных произведений вычитается одинарное множимое вместо прибавления утроенного множимого, для корректировки результата к сумме частичных произведений надо было бы прибавить учетверенное множимое. Но после сдвига на два разряда вправо сумма частичных произведение уменьшается в четыре раза, так что для корректировки его на следующем шаге должно быть прибавлено одинарное множимое.
Это учитывается при обработке следующей пары разрядов. Если следующая пара 00, по она обрабатывается как 01, если 01, то как 10, если 10 то как 11, если 11, то как 00 и фиксируется необходимость коррекции при обработке следующей пары. Удвоенное множимое может быть получено его сдвигом. Признак необходимости коррекции может запоминаться в отдельном триггере коррекции.
Данный метод умножения требует корректировки результата, если старшая пара разрядов множителя 11 или 10 и состояние триггера коррекции является единичным.
