Блок целочисленной арифметики

Блок целочисленной арифметики

Государственный комитет Российской Федерации

по высшему образованию

Казанский Государственный Технический Университет

имени А. Н. Туполева

----------------------------------------------------------------------------

------------------

Кафедра электронно-вычислительных машин

Пояснительная записка

к курсовой работе по дисциплине

“Процессоры”

Тема: Блок целочисленной арифметики.

Студент: Базуев Ю.А. , гр. 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=\/ ; >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

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|1010|00|001|001| у4 | |

|0000 |0 | | |0 |0 | |Р2 |

| |0000|0000|00|111|110| | |

|0001 |0 | | |1 |0 | |Р15 |

| |0000|0010|00|000|010| у6 | |

|0010 |0 | | |0 |0 | | |

| |0000|0001|00|000|111| у2 | |

|0011 |0 | | |0 |1 | | |

| |0000|1010|00|010|011| у11 | |

|0100 |0 | | |1 |0 | |Р5 |

| |0000|0111|00|000|111| у2, | |

|0101 |0 | | |0 |0 |у5 | |

| |0000|0000|00|001|100| | |

|0110 |0 | | |1 |0 | |Р3 |

| |1000|0001|00|001|100|МК(0), | |

|0111 |0 | | |1 |0 |у2 |Р3 |

| |0000|0000|00|111|101| | |

|1000 |0 | | |0 |0 | |Р14 |

| |0000|0000|00|000|101| | |

|1001 |0 | | |1 |0 | |Р1 |

| |0000|1100|00|010|000| у3, у9 | |

|1010 |0 | | |0 |0 | |Р4 |

| |0000|1100|00|010|000|МК(4),у3| |

|1011 |1 | | |0 |0 |,у9 |Р4 |

| |0000|1001|00|000|010| | |

|1100 |0 | | |0 |1 |у12 | |

| |0110|0001|00|000|110|МК(1,2),| |

|1101 |0 | | |0 |0 |у2 | |

| |0000|1001|10|000|000| | |

|1110 |0 | | |0 |0 |у12 |остано|

| | | | | | | |в |

| |0000|0010|01|000|000| |межс.Б|

|1111 |0 | | |1 |0 |у6 |П |

|01 |0000|0000|00|100|001| | |

|0000 |0 | | |1 |0 | |Р9 |

| | | | | | | | |

|0001 | | | | | | | |

| |0000|0011|00|101|010| | |

|0010 |0 | | |1 |0 |у1 |Р11 |

| |0000|1000|10|000|000| | |

|0011 |0 | | |0 |0 |у10 |остано|

| | | | | | | |в |

| |0110|0001|00|101|011|МК(1,2),| |

|0100 |0 | | |0 |0 |у2 |Р10 |

| |1000|0001|00|101|011|МК(0), | |

|0101 |0 | | |0 |0 |у2 |Р10 |

| |0000|0100|00|011|100| у7| |

|0110 |0 | | |1 |0 | |Р15 |

| |0000|0000|00|011|100| | |

|0111 |0 | | |1 |0 | |Р15 |

| |0000|0110|00|010|101| у9| |

|1000 |0 | | |0 |0 | |Р4 |

| |0000|0000|00|110|110| | |

|1001 |0 | | |0 |0 | |Р12 |

| |0000|0000|00|000|001| | |

|1010 |0 | | |0 |0 | |БП |

| |0000|0000|00|001|110| | |

|1011 |0 | | |1 |0 | |P3 |

| |0000|1001|01|001|000| | |

|1100 |0 | | |0 |1 |y12 |межс.Б|

| | | | | | | |П |

| |0000|0000|00|000|111| | |

|1101 |0 | | |1 |0 | |P1 |

| |1000|0001|01|001|000| |межс.Б|

|1110 |0 | | |0 |0 |МК(0),у2|П |

| |0110|0001|01|001|000|МК(1,2),|межс.Б|

|1111 |0 | | |0 |0 |у2 |П |

|10 |0000|0000|00|011|001| | |

|0000 |0 | | |1 |0 | |Р7 |

| |0000|0111|00|100|100| | |

|0001 |0 | | |0 |0 |у5, у2 |Р8 |

| |0000|0000|00|100|010| | |

|0010 |0 | | |0 |0 | |Р8 |

| |0000| |01|000|110| у |межс.Б|

|0011 |0 | | |1 |0 | |П |

| |0000|0000|01|000|110| |межс.Б|

|0100 |0 | | |1 |0 | |П |

| |0000|0000|00|000|011| | |

|0101 |0 | | |1 |0 | |Р1 |

| |0110|0001|01|000|110|МК(1,2),|межс.Б|

|0110 |0 | | |1 |0 |у2 |П |

| |1000|0001|01|000|110|МК(0),у2|межс.Б|

|0111 |0 | | |1 |0 | |П |

| |0000|0000|00|000|101| | |

|1000 |0 | | |1 |0 | |Р1 |

| |0000|0000|00|110|101| | |

|1001 |0 | | |1 |0 | |Р13 |

| |0000|0000|00|100|110| | |

|1010 |0 | | |0 |0 | |Р8 |

| |0001|0001|00|100|110|МК(3), | |

|1011 |0 | | |0 |0 |у2 |Р8 |

| |0000|1001|10|000|000| у12 | |

|1100 |0 | | |0 |0 | |остано|

| | | | | | | |в |

| |0000|0000|00|000|111| | |

|1101 |0 | | |1 |0 | |Р1 |

| |0000|1001|10|000|000| у12 |остано|

|1110 |0 | | |0 |0 | |в |

| |0000|0000|01|001|000| |межс.Б|

|1111 |0 | | |1 |0 | |П |

|11 |0000|0000|00|001|001| | |

|0000 |0 | | |1 |0 | |Р3 |

| | | | | | | | |

|0001 | | | | | | | |

| |0000|1001|10|000|000| у12|остано|

|0010 |0 | | |0 |0 | |в |

| |0000|1000|10|000|000| у10|остано|

|0011 |0 | | |0 |0 | |в |

Литература

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 |