- •Вычислительные машины, системы и сети
- •Тема 1. Введение в предмет
- •Умножение чисел в дополнительных кодах
- •Операция умножения над обратными кодами сомножителей
- •Выполнение операции сложения над числами с плавающей запятой
- •6. Стадии выполнения команды и способы адресации
- •Тема 2. Оcновные архитектурные понятия Лекция 4. Определение понятия "архитектура"
- •Архитектура системы команд. Классификация процессоров (cisc и risc)
- •Лекция 5. Методы адресации и типы данных Методы адресации
- •Типы команд
- •Команды управления потоком команд
- •Типы и размеры операндов
- •Тема 3. Функциональная структура и организация процессора
- •Структура конвейера процессора р6
- •Процессор Pentium Pro
- •Характеристики процессоров р6
- •Характеристики процессоров amd
- •Форматы чисел блоков sse
- •Лекция 12: Сравнительный анализ процессоров с различной архитектурой Особенности процессоров с архитектурой sparc компании Sun Microsystems
- •Процессоры pa-risc компании Hewlett-Packard
- •Процессор mc88110 компании Motorola
- •Особенности архитектуры Alpha компании dec
- •Особенности архитектуры power компании ibm и PowerPc компаний Motorola, Apple и ibm
- •Архитектура power
- •Эволюция архитектуры power в направлении архитектуры PowerPc
- •Тема 4. Структурные модели современных системных плат
- •Тема 5. Организация памяти в эвм
- •2. Постоянные и полупостоянные запоминающие устройства
- •3. Оперативные запоминающие устройства
- •4. Характеристики обмена и типы оперативной памяти
- •7. Сегментация памяти
- •8. Страничная организация памяти
- •Тема 6. Организация ввода-вывода
- •Системные и локальные шины
- •Устройства ввода/вывода Основные типы устройств ввода/вывода
- •2.1. Шины микропроцессорной системы
- •2.2. Циклы обмена информацией
- •2.3. Прохождение сигналов по магистрали
- •Тема 2. Оценка производительности вычислительных систем
- •Тема 5. Многопроцессорные системы Лекция 18: Классификация систем параллельной обработки данных
- •Многопроцессорные системы с общей памятью
- •Многопроцессорные системы с локальной памятью и многомашинные системы
- •Тема 9. Организация микроконтроллеров
- •4.1. Классификация и структура микроконтроллеров
- •4.2. Процессорное ядро микроконтроллера
- •Тема 10. Однокристальные микроконтроллеры серии pic
- •5.1. Основные особенности микроконтроллеров серии pic
- •5.2. Микроконтроллеры подгруппы pic16f8x
- •Тема 11. Проектирование устройств на микроконтроллерах
- •6.1. Разработка микропроцессорной системы на основе микроконтроллера
- •Тема 12. Системы высокой готовности и отказоустойчивые системы
- •Подсистемы внешней памяти высокой готовности
- •Требования, предъявляемые к системам высокой готовности
- •Конфигурации систем высокой готовности
- •Требования к системному программному обеспечению
- •Требования высокой готовности к прикладному программному обеспечению
- •Требования к сетевой организации и к коммуникациям
- •Базовая модель vax/vms кластеров
- •Критерии оценки кластеров Gartner Group
- •Кластеры Alpha/osf компании dec
- •Unix-кластеры компании ibm
- •Кластеры at&t gis
- •Кластеры Sequent Computer Systems
- •Системы высокой готовности Hewlett-Packard
- •Кластерные решения Sun Microsystems
- •Отказоустойчивые решения Data General
- •Список сокращений
Умножение чисел в дополнительных кодах
Если числа в ЭВМ представлены в дополнительных кодах, то операцию умножения можно трактовать в общем виде следующим образом:
- если Х>0 и Y>0, то поскольку [Х>0]Д = Х, [Y>0]Д = Y, специфика выполнения умножения здесь не проявляется (см. гл.I. п.4.1);
- если Х<0, а Y>0, то [Х<0]Д = 2+Х и [Х]Д [Y]Д = 2Y + ХY – получается так называемое псевдопроизведение, и для того чтобы получить правильный результат [ХY<0]Д = 2+ХY, необходимо к псевдопроизведению прибавить 2 и вычесть 2Y;
- если Х>0, Y<0, то [Х]Д [Y]Д = 2Х+ХY, и здесь необходима поправка, равная +2 и -2Х;
- если Х<0 и Y<0, то [Х]Д [Y]Д = (2+Х)(2+Y), а правильный результат ХY, и необходима поправка - 4 - 2Х - 2Y.
Существует несколько способов введения поправок. Рассмотрим способ со сдвигом сумм частичных произведений вправо на примере умножения с младших разрядов множителя, обеспечивающий автоматическое введение поправок при любых знаках перемножаемых чисел. Обозначим дополнительный младший разряд множителя, на который производится умножение через y(n+1-i). По отношению к данному разряду старшим будет y(n‑i). Алгоритм вычисления заключается в следующем:
- если y(n+1-i) = y(n-i), то производится лишь сдвиг частичного произведения A(i-1)·2-1;
- если y(n-i) = 0, а y(n+1-i) = 1, то к A(i-1)·2-1 прибавляется [Х]Д;
- если y(n-i) = 1, а y(n+1-i) = 0, то из A(i-1)·2-1 вычитается [Х]Д или к A(i-1)·2-1 прибавляется [-(Х)Д]Д со сменой знака X.
Для этого алгоритма справедлива следующая рекуррентная формула
A(i) = A(i-1)·2-1 + [(у(n+1-i)-у(n-i))·(Х)]Д.
При этом операция состоит из n+1 такта для i=1,...,n+1. Другими словами, умножение производится и на знаковый разряд множителя y0. После умножения на последнем шаге получаем A(n+1) = [Х]Д [Y]Д = [Z]Д и сдвиг A(n+1) не производится.
Рассмотренная методика применима и к умножению со старших разрядов множителя со сдвигом множимого вправо. Алгоритм выполнения операции имеет следующий вид:
[Х]Д [Y]Д = (у1-у0) [Х]Д + (у2-у1) [Х]Д ·2-1 + ...
+ (уn-уn-1) [Х]Д ·2-n+1 + (уn+1-уn) [Х]Д ·2-n.
Умножим в дополнительном двоичном коде десятичные числа -5 и -6 с фиксированной запятой перед старшим разрядом:
[-5]пр=1.0101, [-5]д=1.1011 (∙2+4,число дробное),
[-6]пр=1.0110, [-6]д=1.1010 (множитель y0. y1 y2 y3 y4∙2+4).
Берем дополнительный разряд множителя y5=0 и вычисляем разность двух старших разрядов множителя на очередном шаге умножения при сдвиге влево с выполнением следующих микроопераций (м/о):
y1-y0=0, (A(0)=0)∙2-1
y2-y1=-1, A(1) +0.ХПР∙2-1
y3-y2=+1, A(2)+[-Х]Д∙2-2
y4-y3=-1, A(3)+(0.ХПР )∙2-3
y5-y4=0, [Z]Д = (A(4)+0)
С учетом сдвига множителя влево и сумм частичных произведений A(i) влево, и с учетом сдвига Х∙2-1 множимого вправо 1.1011 на каждом шаге умножения имеем:
Ш а г |
Со сдвигом A(i) вправо |
|
Со сдвигом Х вправо |
||
ХПР |
0.010100000 |
ХПР |
0.010100000 |
||
[-Х]Д |
1.101100000 |
[-Х]Д |
1.101100000 |
||
м/о |
Сумматор |
м/о |
Сумматор |
||
1 |
(A(0)=0)∙2-1 |
0.000000000 |
(A(0)=0)+0 |
0.000000000 |
|
2 |
SM+0.ХПР |
0.010100000 |
SM+(0.Хп)∙2-1 |
0.001010000 |
|
A(1)∙2-1 |
0.001010000 |
|
|||
3 |
+[-Х]Д |
1.101100000 |
+[-Х]Д∙2-2 |
1.111011000 |
|
SM+[-Х]Д |
1.110110000 |
SM+[-Х]Д∙2-2 |
0.000101000 |
||
[A(2)]Д∙2-1 |
1.111011000 |
|
|||
Ш а г |
Со сдвигом A(i) вправо |
|
Со сдвигом Х вправо |
||
4 |
+0.Хпр |
0.010100000 |
+(0.Хпр)∙2-3 |
0.000010100 |
|
SM+0.Хп |
0.001111000 |
SM+(0.Хпр)∙2-3 |
0.000111100 |
||
A(3)∙2-1 |
0.000111100 |
|
|||
5 |
[Z]Д=A(4)+0 |
0.000111100 |
[Z]Д=A(4)+0 |
0.000111100 |
Для проверки правильности вычислений умножим полученный результат 0.000111100 на коэффициент 2+8 , получим +11110,0 = + (1∙24 + 1∙23 + 1∙22 + 1∙21) = + (16 + 8 + 4 + 2) = + 30. Заметим, что операция умножения со сдвигом сумм частичных произведений выполняется медленнее, чем со сдвигом множимого, так как микрооперации суммирования и сдвига не могут выполнятся одновременно в сумматоре.