Курсовая по ЭВМ_Серега (Образцы КП по Организации ЭВМ)
Описание файла
Документ из архива "Образцы КП по Организации ЭВМ", который расположен в категории "". Всё это находится в предмете "организация эвм" из 7 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "организация эвм" в общих файлах.
Онлайн просмотр документа "Курсовая по ЭВМ_Серега"
Текст из документа "Курсовая по ЭВМ_Серега"
Московский Государственный Авиационный Институт
(технический университет)
Кафедра 304
Курсовая работа
ПО КУРСУ
«Архитектура ЭВМ и их
организация»
Принял: Выполнила:
доц., к.т.н. Студент гр. 13-401
Роговцев А.А. Кабанов С.
Оценка: Подпись:
Подпись:
« » 2005г.
Москва 2005
Содержание
Теоретическое обоснование метода 4
Пример выполнения умножения 5
Функциональная схема АЛУ 7
Микропрограмма 8
Алгоритм микропрограммы 9
Вычисление времени выполнения микропрограммы 12
Теоретическое обоснование метода
Из задания видно, что нам необходимо обрабатывать числа без знака.
Представим операцию умножения как Z = X * Y
X – множимое
Y – множитель
Z – произведение
Умножение
Умножение чисел на 2 разряда по методу «Начиная с младшего разряда множителя при неподвижной сумме частичных произведений и сдвиге множимого влево» выполняется следующим образом: анализируются 2 младших разряда множителя и выполняется действие в соответствии с таблицей №1. Далее сдвигается множитель на 2 разряда вправо, а множимое на 2 разряда влево. Повторяются данные операции n/2 раз.
В нашем случае, по заданию, n = 8.
Таблица операций
Признак из пред. 2-х р. | Пара раз- рядов | Операция | Признак в следующие 2 р-да |
0 | 0 0 | 0, П2(Y), Л2(X) | 0 |
0 1 | +X, П2(Y), Л2(X) | ||
1 0 | +2X, П2(Y), Л2(X) | ||
1 1 | -X, П2(Y), Л2(X) | 1 | |
1 | 0 0 | +X, П2(Y), Л2(X) | 0 |
0 1 | +2X, П2(Y), Л2(X) | ||
1 0 | -X, П2(Y), Л2(X) | 1 | |
1 1 | 0, П2(Y), Л2(X) |
Рассмотрим пример умножения чисел на примере четырехразрядного числа:
Нам необходимы:
Регистр Y – 4 разряда
Регистр X – 8 разрядов
Регистр Z – 8 разрядов
Пример X = 5 (0101) множимое
Y = 4 (0100) множитель
Умножение
В соответствии с методом дополним X n(4) нулями слева, получим (00000101), признак из предыдущих 2-х разрядов = 0.
Пр. = 0
Z = 0 (00000000)
X 00000101
Y 0100
Z 00000000
Пр. 0
Анализируем 2 младших разряда множителя, они равны 00, смотрим по таблице №1 операцию, которую надо выполнить. (0, Признак = 0) ничего не делается.
Сдвигаем Y вправо на 2 разряда и X влево на 2 разряд
Анализируем 2 младших разряда множителя, они равны 01, смотрим по таблице №1 операцию, которую надо выполнить. (+X, Признак = 0) Z = Z + X
X 00010100
Y 0001
Z 00010100
Пр. 0
Сдвигаем Y вправо на 2 разряда и X влево на 2 разряд
Мы выполнили 2 итерации и получили результат в Z
Результат = 00010100
Переведем результат в десятичную систему и проверим результат
000101002(пр.код) = 2010
5 * 4 = 20
По результатам вычислений видно, что получен верный результат.
Функциональная схема АЛУ
8 Швх
РгX
РгY
П2
7 0 7 0
Уст.0
Рг2
Л2
15 0
Уст.0
Л1
Рг1
Рг22
15 0 15 0
15 0 15 0
С0 = 0/1
КС
4
СЧ
-1 0 0 Сч 15 0
Тр.Пр.
Рг СМ
0/1
15 0
8 Швых
И спользуемые обозначения:
Швх – Шина входных данных, Швых – Шина выходных данных
Рг См – Регистр суммы комбинационного сумматора
Тр. Пр. – Триггер признака,
КС – Комбинационный сумматор, СЧ – Счетчик цикла
Л2 (П2) – Сдвиг регистра влево (вправо) на 2 разряда
Микропрограмма
-
РгX = Швх; Сч = 4; РгZ = 0;
-
РгY = Швх; Рг1 = 0; Тр.Пр. = 0;
-
Рг2[0 ÷ 7] = РгX; Рг2[8 ÷ 15] = 0;
-
Рг22 = Рг2; С0 = 0;
-
Если Тр.Пр. = 1 идти к 10.
-
Если РгY [0 ÷ 1] = 0 идти к 20.
-
Если РгY [0 ÷ 1] = 1 идти к 16.
-
Если РгY [0 ÷ 1] = 2 идти к 18.
-
идти к 13.
-
Если РгY [0 ÷ 1] = 3 идти к 20.
-
Если РгY [0 ÷ 1] = 0 идти к 16.
-
Если РгY [0 ÷ 1] = 1 идти к 18.
-
С0 = 1; Тр.Пр. = 1;
-
Р гZ = СМ(Рг1; Рг22; С0);
-
идти к 20.
-
Тр.Пр. = 0; РгZ = СМ(Рг1; Рг22; С0);
-
идти к 20.
-
Тр.Пр. = 0; Рг22 = Л1(Рг22);
-
РгZ = СМ(Рг1; Рг22; С0);
-
Рг1 = РгZ; Сч = Сч-1; РгY = П2(РгY); Рг2 = Л2(Рг2);
-
Если Сч <> 0 идти к 4.
-
Швых = РгZ[0 ÷ 7];
-
Швых = РгZ[8 ÷ 15];
-
Конец.
Алгоритм микропрограммы
МК5 p1
МК6 (1-p1)
МК7 p1p2
МК8 (1-p1)p3
МК9 [p1p2p4 + (1-p1)p3 p5]
МК10 p1p2(1-p4)
МК11 (1-p1)p3(1-p5)
МК12 [p1p2(1-p4)p6 + (1-p1)p3(1-p5) p7]
МК13 [p1p2(1-p4)p6 + (1-p1)p3(1-p5) p7]
МК14 [p1p2(1-p4)(1-p6) + (1-p1)p3(1-p5) (1-p7)]
МК15 [p1p2(1-p4)(1-p6) + (1-p1)p3(1-p5) (1-p7)]
Вычисление времени выполнения микропрограммы
Микрокоманды 1 – 3, 17, 18 выполняются по 1 разу
Микрокоманды 4, 16 выполняются n/2 раз
Микрокоманда 5 выполняется n/2 раз с вероятностью p1
Микрокоманда 6 выполняется n/2 раз с вероятностью (1-p1)
Микрокоманда 7 выполняется n/2 раз с вероятностью p1p2
Микрокоманда 8 выполняется n/2 раз с вероятностью (1-p1)p3
Микрокоманда 9 выполняется n/2 раз с вероятностью [p1p2p4 + (1-p1)p3 p5]
Микрокоманда 10 выполняется n/2 раз с вероятностью p1p2(1-p4)
Микрокоманда 11 выполняется n/2 раз с вероятностью (1-p1)p3(1-p5)
Микрокоманда 12, 13 выполняется n/2 раз с вероятностью [p1p2(1-p4)p6 + (1-p1)p3(1-p5) p7]]
Микрокоманда 14, 15 выполняется n/2 раз с вероятностью [p1p2(1-p4)(1-p6) + (1-p1)p3(1-p5)(1-p7)]
Время выполнения микропрограммы:
3 + 2 + [2 + p1 + (1-p1) + p1p2 + (1-p1)p3 + [p1p2p4 + (1-p1)p3 p5] + p1p2(1-p4) + + (1-p1)p3(1-p5) + 2*[p1p2(1-p4)p6 + (1-p1)p3(1-p5) p7]] + 2*[p1p2(1-p4)(1-p6) +
+ (1-p1)p3(1-p5)(1-p7)]] * n/2
n = 8
Принимая во внимание, что значения появляются с равной вероятностью, то:
p1 = p2 = p3= p4 = p5 = p6 = p7 = 0,5
получаем время умножения, равное
3 + 2 + [2 + 0,5 + (1-0,5) + 0,5*0,5 + (1-0,5)* 0,5 + [0,5*0,5*0,5 + (1-0,5)* 0,5*0,5] +
+ 0,5*0,5*(1-0,5) + (1-0,5)* 0,5*(1-0,5) + 2*[0,5*0,5 *(1-0,5*)*0,5 + (1-0,5)* 0,5 *(1-0,5)*
*0,5]] + 2*[0,5*0,5*(1-0,5)(1-0,5) + (1-0,5)* 0,5 *(1-0,5)(1-0,5)]] * 8/2 = 8 + [2 + 0,5 +
+ 0,5 + 0,25 + 0,25 + [0,125 + 0,125] + 0,125 + 0,125 + 2*[0,0625 + 0,0625] +
+ 2*[0,0625 + 0,0625]] * 4 = 5 + 4.5 * 4 = 23
12