Блок целочисленной арифметики
Государственный комитет Российской Федерации
по высшему образованию
Казанский
Государственный Технический Университет
имени А. Н. Туполева
----------------------------------------------------------------------------------------------
Кафедра электронно-вычислительных машин
Пояснительная
записка
к курсовой работе
по дисциплине
“Процессоры”
Тема: Блок целочисленной
арифметики.
Студент: Базуев Ю.А.
, гр. 4301
Руководитель:
Бикмухаметов Р.Р.
Оценка______________________
Дата
защиты__________________
Подпись руководителя__________
Казань 1996
Cодержание
1.
Задание................................................................................................3
2.
Алгоритм.............................................................................................4
2.1. Алгоритм
умножения...................................................................4
2.2. Алгоритм
деления.........................................................................4
3. Операционная схема и
микропрограмма выполнения операций......5
4. Функциональная схема
операционной части устройства..................8
5. Функциональная схема
управляющей части....................................11
6. Принципиальная схема
управляющей части....................................13
7. Таблица
микрокоманд......................................................................15
8.
Литература........................................................................................16
2.
Алгоритм операций
2.1.
Алгоритм умножения
Eдоп*Fдоп=Gдоп
Перед началом операции в
RG1=Fдоп ; RG2=0 ; RG3=Eдоп
Знаки сомножителей
участвуют в операции наравне с остальными разрядами, а это значит что Eдоп и
Fдоп перемножаются как обычные (m+1) разрядные целые числа без знака. При этом
знак Едоп участвует для того чтобы СЧП (сумма частичных произведений) в RG2
формировалась в доп. коде. Знак Fдоп участвует для того чтобы произведение
формировалось в двойном формате.
В каждом из (m+1) циклов
умножения производятся действия:
1) Eдоп прибавляется к RG2
если P4=1;
1
2) RG2, RG1, Tзн при
сдвиге вправо необходимо сохранять представление СЧП в доп. коде, а это значит
что слева нужно вводить 0, если число =>0 и 1, если число < 0.
2.2.
Алгоритм деления
Gдоп/Eдоп=Fдоп
а) устанавливаем начальные
значения регистров и триггеров
б) сдвигаем делимое на 1
разряд влево
в) анализируем знаки Gi-1
и E. Если одинаковы то вычитаем E из GR2.
Если разные то + E к RG2
г) анализируем знаки Gi
и E, если одинаковые то цифра частного =1
д) анализируем ТФ, если
ТФ=1 выполняем проверку на ПРС 2-го этапа
е) уменьшаем значение
счетчика циклов
ж) если счетчик не = 0 то
переходим на пункт б)
з) передаем частное в RG1
и) корректируем частное
к) выдаем частное на
выходную шину
3. Операционная схема и
микропрограмма выполнения
операций
В соответствии с
алгоритмом строим ОС (рис. 1) , определяем требуемый набор МО и граф МП (рис.
2) , считая что в RG3 выполняется однотактным способом (по входам D триггеров
RG2) по сигналу у4; в RG1 - двухтактным способом (по входам R и S) по сигналам
у6 и у7.
В ОС на Рис. 1
использованы следующие обозначения:
Тпп - триггер переполнения
Тпер - триггер переноса
Тзн1 - триггер знака
множимого, флаговый триггер при делении
Тзн2 - триггер знака Gi-1
Тзн3 - триггер знака делимого
Х(8:0) - входная шина
Z(8:0) - выходная шина
В МП на Рис. 2 введены 15
осведомительных сигнала:
Р1 =
RG3(8) Р10 = Р1 Å Р3
Р2 = a Р11 = Р3 Å Р1
Р3 = RG2(8) P12 = P6 Å Р5
Р9 = RG2(7) Å RG2(6) P13 = P1 Tзн2 v P1 Tзн2
P4 = 1
(CT=0) P14 = Tпер
Р5 =
RG1(0) Р15 = Тзн1
Р6 = Р1 Tзн2 v
Tзн2 Р1
Р7 = 1 (RG2(8:0)=0)
Р8 = Тзн3
a - внешний сигнал определяющий вид операции
( 0 - умножение ; 1 -
деление )
а также 17 импульсных
управляющих сигналов:
у1: {
RG2=RG2(8:0).RG1(8); у10: Тпп=1
RG1=RG1(7:0).0
} у11: RG2=RG1
y2:
RG2=RG2+RG3+1 y12: RG2=RG2+1
y3:
RG2=RG2+RG3 y13: Z=RG2
y4:
RG3=X y14: { RG1=RG2(0).RG1(8:1);
y5: { RG2=X ; Tзн1=1
} Tзн1=RG1(0) }
y6: { RG1=X; Tзн3=P3;
Tпп=0; y15: RG2=0.RG2(8:1)
СТ=9; Тпер=0;
} y16: RG2=1.RG2(8:1)
y7:
RG1(0)=1 y17: RG2=0
y8: Тзн1=0
у9: СТ=СТ-1
Z(8:0)
у13
Р15
Р5
зн RG1 1
1 Тзн1
8 7
0
у6 у1 у14 у7
Р2
Р3 у18
Тзн2
зн 1
1
8 7 6 RG2 0
у16
у5 у1 у15 ,у16
Р14
Тпер
зн
KSM у2 , у12
8 7
0
P1 у3 у2
зн
8 7 RG3 0
у4
Х(8:0)
Р4 ПРС Р8
СТ Тпп Тзн3
Рис. 1.
начало
2
a
0 1 5
y6
6
y17
1 9
0
0
2 11 3
P5
1
1 10
y3
7
0 0 15
0
P3 P14 1
1 1 1 12
0
8
P1
9
1
0 4
y16, y14, y9
y15, y14, y9 3
1
3 1 1 2
0
P4
7 0
1
8
0
1
P15
2 1 3
1
y2
13
11
8 1 13
y13
1
0
1
12
y11
0 8
0
0 3
1
10
у13
конец
Рис. 2.
4.
Функциональная схема операционной части
устройства
На Рис. 3. представлена
функциональная схема операционной части (ОЧ) на регистрах и мультиплексорах. В
схему из УЧ подаются 15 импульсных управляющих сигналов с длительностью, равной
50 нс, причем часть управляющих сигналов ( у2 , у3 , у12 ) подаются на входы
синхронизации регистров и одновременно участвуют в формировании сигналов на
информационных входах триггеров с помощью различных комбинационных схем.
Следовательно, во-первых, если время задержки упомянутых комбинационных схем
превышает значение 50 нс, то схемой пользоваться нельзя, так как к моменту
переключения триггеров сигналы на их информационных входах не успеют
сформироваться. Например, сигнал у3 должен иметь длительность, достаточную для
того, чтобы успели сработать элементы 2,3 и4 ступеней схемы, иначе в момент
окончания у4 в RG2 зафиксируется неправильный результат. Таким образом, в
данной схеме длительность сигналов МО должна определяться по времени выполнения
самой длительной МО, которое при заданной элементной базе превышает заданное
значение.
Во-вторых, так как сигналы
на входах “С” и “D” триггеров RG2 при выполнении у2 , у3 и у12 оканчиваются
одновременно (без учета задержек сигналов в комбинационных схемах), то триггеры
могут не переключиться требуемым образом из-за возможной “игры фронтов” на
входах “С” и “D”.
Для решения указанных
проблем с целью повышения быстродействия и надежности схемы разобьем все МО на
2 группы.
В первую группу выделим МО
у2 , у3 и у12 , связанные не только с переключением триггеров по входам
синхронизации, но и с формированием сигналов на информационных входах этих
триггеров.
Во вторую все остальные
МО, для выполнения которых достаточны импульсные управляющие сигналы с
длительностью равной 50 нс. Как правило, в эту группу входят действия,
связанные с переключением триггеров по асинхронным входам, либо по входам
синхронизации, если сигналы на информационных входах триггеров при этом не
меняются.
Для выполнения МО 1-ой
группы необходимы дополнительные потенциальные управляющие сигналы (сигналы с
длительностью, не меньшей такта Т) , называемые микроприказами. Тогда
импульсные управляющие сигналы подаются лишь на входы синхронизации триггеров,
а формирование сигналов на информационных входах этих триггеров осуществляется
с помощью микроприказов, которые должны поступать в схему ранее и заканчиваться
позднее сигналов на входах синхронизации триггеров.
В управляющей части с
программируемой логикой микроприказы формируются с помощью разрядов
операционного поля микрокоманы, считываемой из управляющей памяти. Обозначим
эти разряды и соответствующие им микроприказы через МК(j) , где j = 0 , 1 , 2 ,
...
Если использовать три
микроприказа, то схема Рис.3. преобразуется к виду, представленному на Рис.4
(без цепей записи со входной шины, без триггеров Тпп , Тзн3 , счетчика циклов
и цепи выдачи на выходную шину). Здесь: во-первых, отсутствует триггер
переноса, так как при использовании микроприказов сигнал переноса на выходе
KSM становится потенциальным, и необходимость в его запоминании отпадает.
Во-вторых, сигналы у15 ,
у16 , у5 поступающие на один и тот же вход сдвига вправо RG2 , заменен одним
сигналом у5 .
С целью упрощения ОЧ
устройства заменим 2, 3 ступени схемы на Рис. 4. арифметико-логическим
устройством (АЛУ). Тогда количество микроприказов увеличится до 5.
Функциональная схема ОЧ
устройства, в которой применяется АЛУ, представлена на Рис. 5. Здесь АЛУ
используется для выполнения трех действий, определяемых таблицей 1.
Таблица 1.
S3
|
S2
|
S1
|
S0
|
F`
|
0
|
0
|
0
|
0
|
A` + C0
|
0
|
0
|
0
|
1
|
A` + B` + C0
|
0
|
1
|
1
|
0
|
A` - B` - C0
|
В таблице А` и B` -
значения операндов, поступающих в АЛУ, F` - значение результата, формируемого
на входах АЛУ; С0 - значение сигнала на входе переноса младшего разряда АЛУ.
В соответствии с таблицей
1 в схеме Рис 5. использованы пять микроприказов: МК(0) - S0 , MK(1) - S1 , MK
(2) - S2 , MK(3) - C0 , MK(4) - вход данных вдвигаемых при сдвиге вправо на
RG2.
Работа схемы определяется
МП, представленной на Рис. 6. Список используемых импульсных сигналов:
у1: { <RG2=\/
; у10: Тпп=1
<RG1=\/ ; C
Тзн2=/\ } у11: RG2=0
y2: С
RG2=\/ y12: Z=RG2
y3: { >RG2=\/ ;
>RG1=\/ }
y4: RG3=X
y5: RG2=RG1;
y6: { RG1=X; Tзн3=P3;
Tпп=0;
Тзн1=1; СТ=9; }
y7: RG1(0)=1
y8: Тзн1=0
у9: СТ=СТ-1
9
X(8 : 0)
RG3 MS KSM
0 MS D RG2 D RG1
D
0
1 < > 0
< > 0
2 D<
1 D< 1
1 3
y16 D> D>
y17 R 8 y7 S0 8
A
C
y6 C
A0 > y14 >
y4 C
C П9 y5 A1
y1 < y1 <
1
y5
y3
1 D
Tпер у15 D
Tзн2 D Tзн1
y2
C Р14 у16 1
Р2
у6 R у5 у1
С у14 С
1
y12
1
y11
y13 E
<9>
0 ST
1 1
P4
1
2
P7
3 y6 R Тпп
ПРС P3 D Tзн3 P8 ...
y6 ЕI
y9
-1 y10
S y6 С
Рис. 3.
МК(2)
RG3 MS KSM
0 MS D RG2 D RG1
D
0
1 < > 0
< > 0
2 D< 1 D<
1
1 3
МК(3) D> D>
y17 R 8 y7 S0 8
A
У2 C y6 C
A0 У5 > y5 >
y4 C
C П9 y5 A1
y1 < y1 <
Р14
МК(0)
D Tзн2 D Tзн1
МК(1)
1
Р2
у1 С у5 С
у5
Рис. 4.
RG3 S3 АЛУ 0
MS D RG2 D RG1
D MK(2)
S2 F 1 <
> 0 < > 0
MK(1) S1 2 D<
1 D< 1
MK(0)
S0 3 МК(4)
D> D>
A` P14 y11 R
8 y7 S0 8
B` C9 У2
C y6 C
MK(3)
C0 A0 У3
> y3 >
y4
C M y3
A1 y1 < y1 <
y5 1
y3
D Tзн2 D Tзн1
Р2
у1
С у3 С
1
D T
y3
y1 1 C
Рис.
5.
5. Функциональная
схема управляющей части
Функциональная схема УЧ
устройства представлена на Рис. 8 и включает следующие основные части: триггер
запуска (Тзап), управляющую память (УП), регистр адреса МК (RGAMK), схему
формирования управляющих сигналов МО у1 - у12 , основу которой составляет дешифратор
МК (DCMK), мультиплексор логических условий (MS) и триггер ошибки (Тош),
который устанавливается в 1 при обнаружении ошибки в МК, считываемой из УП.
Исходя из количества
вершин в графе МП на Рис. 6 и ее сложности, определим ориентировочно количество
ячеек в УП, равным 3 сегментам по 16 ячеек в каждом. Формат МК, записываемой в
ячейке УП, приведен на Рис. 7.
MK
Y XvSнов A` B
0 1 2 3 4 Q1 Q2 Q3 Q4 W
P к.р
Рис. 7
Здесь старшие 9 разрядов
образуют операционное поле МК. В первых 5 разрядах кодируются горизонтальным
способом микроприказы МК(0 - 4),
начало
4
a
0
1 2
y6
6
y11
1 9
0
0
МК(1,2),2 11 МК(0),2
P5
1 1
10
МК(0),у2
7
0 0 15
0
P3 P14 1
1
1 1 12
0
8
P1
9
1 0
4
МК(4), y3,
y9 y3, y9
3
1
МК(0),2 1 МК(1,2),2
0
P4
7 0
1
8
0
1
P15
МК(1,2),2 1 МК(0),2
1
МК(1,2),
у2
12
5,2
8
1 13
y12
1
0
1
МК(3),2
у2, у5
0 8
1
0 1
1
0 3
1
у12
10
конец
Рис. 6.
в следующих 4-х разрядах (
Q1, Q2, Q3, Q4) кодируются вертикальным способом МО. В них фиксируется номер
совокупности импульсных управляющих сигналов МО, входящих в данную МК. В МП на
Рис. 6 входят 12 таких совокупностей сигналов. Обозначим их как:
Y1=y2 , Y2=y6 , Y3=y1 , Y4=y7 , Y5=y8 , Y6=y9 , Y7={y5 , y2} , Y8=y10 , Y9=y12
, Y10=y4 , Y11=y11 , Y12={y3 , y9}.
Адресное поле МК включает
4-х разрядное поле Х, в котором фиксируется номер логического условия Рi
(i=1-15), и 4-х значное поле адреса МК А=А`В где В - младший разряд адреса.
При формировании адреса
следующей МК значение проверяемого условия Рi подставляется в младший разряд
адреса А.
Также есть разряд W по
которому производится останов МП, и разряд межсегментного перехода Р, при
единичном значении которого производится межсегментный переход, адрес нового
сегмента берется в поле Х.
Последний разряд в МК
является контрольным разрядом проверки на четность.
В целом схема на Рис. 8
работает следующим образом. По сигналу “Запуск” в RGAMK фиксируется начальный
адрес = 0. При этом на выходах УП с задержкой, равной времени чтения информации
из УП, формируются разряды МК, записанной по данному адресу.
Одновременно по сигналу
“Запуск” Тзап устанавливается в 1, и в схему УЧ начинают циклически поступать
сигналы z1 , z2. По сигналу z1 в ОЧ поступают импульсные управляющие сигналы ,
по z2 в регистр RGAMK записывается адрес следующей ячейки памяти.
6. Принципиальная
схема управляющей части
Принципиальная схема
построена на основе общей шины в которую вводятся все входные и выходные
сигналы.
Триггеры Тзап , Тош и Т
реализованы на микросхеме ТВ9, RGAMK и GRSEG на микросхемах ТМ8, MS - на КП1,
схема М2 на 2-х элементах ИП5 и микросхеме ЛП5, схема формирования импульсных
сигналов на дешифраторе ИД3, УП - на пяти элементах ПЗУ РТ4.
ош
ошибка 0 RG
С & S
Тош 1 SEG
0 к.р. ___
Р
1 М2 ОШ
R & C
R
ОШ
A УП ...
запуск
0 RG 0
1 J
Tзап 1 AMK 1
С
C А`` 2 2
остан
K 3 3
сброс
C
R
R
В
0 MS & 1
Р1
1
R Z2
A`` ...
T
& Р15
15 &
D
A
&
C &
C
Z1 Р
остан
0 0 у1
___ 2
DC 1 схема у2
ОШ
4 MK ... формир. ...
8 у1 - у12
MK(4)
15 у12
MK(3)
MK(2) C
MK(1)
MK(0)
Рис. 8.
7. Таблица
микрокоманд
адрес
ячейки
|
МК
|
Q
|
WP
|
XvS
|
A` B
|
Примеч
МК
|
ЛУ
|
00 0000
|
00000
|
1010
|
00
|
0010
|
0010
|
у4
|
Р2
|
0001
|
00000
|
0000
|
00
|
1111
|
1100
|
|
Р15
|
0010
|
00000
|
0010
|
00
|
0000
|
0100
|
у6
|
|
0011
|
00000
|
0001
|
00
|
0000
|
1111
|
у2
|
|
0100
|
00000
|
1010
|
00
|
0101
|
0110
|
у11
|
Р5
|
0101
|
00000
|
0111
|
00
|
0000
|
1110
|
у2, у5
|
|
0110
|
00000
|
0000
|
00
|
0011
|
1000
|
|
Р3
|
0111
|
10000
|
0001
|
00
|
0011
|
1000
|
МК(0), у2
|
Р3
|
1000
|
00000
|
0000
|
00
|
1110
|
1010
|
|
Р14
|
1001
|
00000
|
0000
|
00
|
0001
|
1010
|
|
Р1
|
1010
|
00000
|
1100
|
00
|
0100
|
0000
|
у3, у9
|
Р4
|
1011
|
00001
|
1100
|
00
|
0100
|
0000
|
МК(4),у3,у9
|
Р4
|
1100
|
00000
|
1001
|
00
|
0000
|
0101
|
у12
|
|
1101
|
01100
|
0001
|
00
|
0000
|
1100
|
МК(1,2), у2
|
|
1110
|
00000
|
1001
|
10
|
0000
|
0000
|
у12
|
останов
|
1111
|
00000
|
0010
|
01
|
0001
|
0000
|
у6
|
межс.БП
|
01 0000
|
00000
|
0000
|
00
|
1001
|
0010
|
|
Р9
|
0001
|
|
|
|
|
|
|
|
0010
|
00000
|
0011
|
00
|
1011
|
0100
|
у1
|
Р11
|
0011
|
00000
|
1000
|
10
|
0000
|
0000
|
у10
|
останов
|
0100
|
01100
|
0001
|
00
|
1010
|
0110
|
МК(1,2), у2
|
Р10
|
0101
|
10000
|
0001
|
00
|
1010
|
0110
|
МК(0), у2
|
Р10
|
0110
|
00000
|
0100
|
00
|
0111
|
1000
|
у7
|
Р15
|
0111
|
00000
|
0000
|
00
|
0111
|
1000
|
|
Р15
|
1000
|
00000
|
0110
|
00
|
0100
|
1010
|
у9
|
Р4
|
1001
|
00000
|
0000
|
00
|
1100
|
1100
|
|
Р12
|
1010
|
00000
|
0000
|
00
|
0000
|
0010
|
|
БП
|
1011
|
00000
|
0000
|
00
|
0011
|
1100
|
|
P3
|
1100
|
00000
|
1001
|
01
|
0010
|
0001
|
y12
|
межс.БП
|
1101
|
00000
|
0000
|
00
|
0001
|
1110
|
|
P1
|
1110
|
10000
|
0001
|
01
|
0010
|
0000
|
МК(0),у2
|
межс.БП
|
1111
|
01100
|
0001
|
01
|
0010
|
0000
|
МК(1,2),у2
|
межс.БП
|
10 0000
|
00000
|
0000
|
00
|
0111
|
0010
|
|
Р7
|
0001
|
00000
|
0111
|
00
|
1000
|
1000
|
у5, у2
|
Р8
|
0010
|
00000
|
0000
|
00
|
1000
|
0100
|
|
Р8
|
0011
|
00000
|
|
01
|
0001
|
1100
|
у
|
межс.БП
|
0100
|
00000
|
0000
|
01
|
0001
|
1100
|
|
межс.БП
|
0101
|
00000
|
0000
|
00
|
0001
|
0110
|
|
Р1
|
0110
|
01100
|
0001
|
01
|
0001
|
1100
|
МК(1,2),у2
|
межс.БП
|
0111
|
10000
|
01
|
0001
|
1100
|
МК(0),у2
|
межс.БП
|
1000
|
00000
|
0000
|
00
|
0001
|
1010
|
|
Р1
|
1001
|
00000
|
0000
|
00
|
1101
|
1010
|
|
Р13
|
1010
|
00000
|
0000
|
00
|
1000
|
1100
|
|
Р8
|
1011
|
00010
|
0001
|
00
|
1000
|
1100
|
МК(3), у2
|
Р8
|
1100
|
00000
|
1001
|
10
|
0000
|
0000
|
у12
|
останов
|
1101
|
00000
|
0000
|
00
|
0001
|
1110
|
|
Р1
|
1110
|
00000
|
1001
|
10
|
0000
|
0000
|
у12
|
останов
|
1111
|
00000
|
0000
|
01
|
0011
|
0000
|
|
межс.БП
|
11 0000
|
00000
|
0000
|
00
|
0011
|
0010
|
|
Р3
|
0001
|
|
|
|
|
|
|
|
0010
|
00000
|
1001
|
10
|
0000
|
0000
|
у12
|
останов
|
0011
|
00000
|
1000
|
10
|
0000
|
0000
|
у10
|
останов
|
Литература
1. Курс лекций по предмету
“Процессоры”
2. Карцев М.А. Арифметика
цифровых машин. М. “Наука” 1969
3. Шило В.Л. Популярные
цифровые микросхемы. М. “Радио и связь”
Спецификация
№
|
Обозначение
|
Кол.
|
Адрес
|
1
|
К155ЛИ4
|
1
|
DD1
|
2
|
К155ЛИ6
|
1
|
DD2
|
3
|
К155ЛЛ1
|
1
|
DD3
|
4
|
К155ТВ9
|
2
|
DD4, DD5
|
5
|
К155ТМ8
|
2
|
DD6, DD7
|
6
|
К556РТ4
|
5
|
DD8 - DD12
|
7
|
К155ИП5
|
2
|
DD13, DD14
|
8
|
К155ЛП5
|
1
|
DD15
|
9
|
К155КП1
|
1
|
DD16
|
10
|
К155ЛИ1
|
1
|
DD17
|
11
|
К155ИД3
|
1
|
DD18
|
12
|
К155ЛН1
|
2
|
DD19, DD20
|