Zbirka - Projektovanje Upravljacke
-
Upload
anonymous-mbz8dv1 -
Category
Documents
-
view
227 -
download
3
description
Transcript of Zbirka - Projektovanje Upravljacke
ДОДАТНИ ЗАДАЦИ ЗА ВЕЖБАЊЕ
(СА ПОСТУПКОМ РЕШАВАЊА И КОМЕНТАРИМА)
Београд 2013.
i
i
САДРЖАЈ
САДРЖАЈ ..............................................................................................................................................................I
1 УРЕЂАЈИ ...................................................................................................................................................... 3
1.1 СУМА СА ИНКРЕМЕНТИРАЊЕМ - ADDINC .............................................................................................. 3 1.2 ПРОИЗВОД - MULINT ............................................................................................................................ 11 1.3 СУМА И ПРОИЗВОД - MULADD ............................................................................................................ 17 1.4 МОДУО АПСОЛУТНИХ ВРЕДНОСТИ - MODABS .................................................................................... 24 1.5 СУМА И ПРОИЗВОД - SMUL ................................................................................................................... 31 1.6 СУМА АПСОЛУТНИХ ВРЕДНОСТИ - SABS .............................................................................................. 37 1.7 МИНИМУМ ВЕЛИЧИНА БЕЗ ЗНАКА - MIN4 ............................................................................................. 43 1.8 МАКСИМУМ ВЕЛИЧИНА БЕЗ ЗНАКА - MAX4 ......................................................................................... 50 1.9 МИНИМУМ АПСОЛУТНИХ ВРЕДНОСТИ - MIN2 ...................................................................................... 54 1.10 МАКСИМУМ АПСОЛУТНИХ ВРЕДНОСТИ - MAX2 .................................................................................. 60 1.11 МАКСИМУМ АПСОЛУТНИХ ВРЕДНОСТИ РАЗЛИКЕ И ЗБИРА - MAX2DS ................................................. 64 1.12 БРОЈ ЈЕДИНИЦА - NOONES ................................................................................................................... 71 1.13 СЕЛЕКТИВНО САБИРАЊЕ - CSR ............................................................................................................. 78 1.14 AND ...................................................................................................................................................... 85 1.15 НЕГАЦИЈА - NEG ................................................................................................................................... 92 1.16 ФАКТОРИЈЕЛ - NFAK ........................................................................................................................... 101 1.17 MNK .................................................................................................................................................... 107 1.18 SUM .................................................................................................................................................... 113 1.19 SMS ..................................................................................................................................................... 118 1.20 SC ........................................................................................................................................................ 123
2 ЛИТЕРАТУРА ......................................................................................................................................... 129
ii
1 УРЕЂАЈИ
1.1 СУМА СА ИНКРЕМЕНТИРАЊЕМ - ADDINC
На слици 1.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R1, R2 и R3 дужине n разреда налазе се бинарне вредности које треба
интерпретирати као целобројне вредности без знака. Микрооперације које се реализују
у јединици ALU су дате у табели 1.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе ADDINC која израчунава
R1+R2+R3+1
суму садржаја регистара R1, R2 и R3 увећану за 1, а резултат смешта у регистар R4.
Фаза извршавања наредбе започиње уколико сигнал ADDINC има вредност 1. Садржаји
регистара R1, R2 и R3 морају да остану неизмењени. Претпоставити да се у регистрима
R1, R2 и R3 налазе вредности које омогућавају да се извршавање наредбе реализује
коректно и да се добије вредност која може да се смести у регистар R4.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
R3LD
CLK
n
CL
ldR3
clR3CLK
S3
0
MP2 S0
1
n
R2LD
CLK
n
CL
ldR2
clR2CLKR1
LDCLK
n
CL
ldR1
clR1CLK
n
S2
0
MP1 S0
1
n
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
R4LD
CLK
n
CL
ldR4
clR4CLK
n
n nMn n
ALD
CLKCLrdA clA
CLKldA
nn
Слика 1.a Структурна шема дела операционе јединице
S0 S1 F0 0 0 AC0
0 1 A+B+C0
1 0 B+C0
1 1 AB
Табела 1 Микрооперације у јединици ALU
Решење:
a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 1.б.
Израчунавање израза се реализује на следећи начин. Кроз мултиплексере MP1 и MP2
се на улазе A и B јединице ALU пропусте садржаји регистара R1 и R3, у јединици ALU
изврши њихово сабирање са инкрементирањем и добијена вредност са излаза ALU
4
јединице упише у регистар A. Затим се добијена вредност из регистра А пребаци у
регистар R4. Потом се кроз мултиплексере MP1 и MP2 на улазе A и B јединице ALU
пропусте садржаји регистара R2 и R4, у јединици ALU изврши њихово сабирање и
добијена вредност са излаза ALU јединице упише у регистар A. На крају се добијена
вредност из регистра А пребаци у регистар R4.
K0
A<=R1+R3+1
K1
ADDINC1
0
K2
R4<=A
K3
A<=R2+R4
R4<=A
K4
K0
ldA, S1, C
0
K1
ADDINC1
0
K2
ldR4, rdA
K3
ldA, S2, S
3, S
1
ldR4, rdA
K4
Слика 1.б Дијаграми тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала ADDINC и у зависности од тога да ли
сигнал ADDINC има вредност 0 или 1 остаје у кораку K0 или на сигнал такта прелази на
корак K1.
У кораку K1 сигнали S2 и S3 имају вредност 0 па садржаји регистара R1 и R3 пролазе
кроз мултиплексере MP1 и MP2 и појављују на улазима A и B јединице ALU, сигнали S1
и C0 имају вредност 1 па се на излазу јединице ALU јавља сума садржаја регистара R1 и
R3 увећана за 1, која се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A.
На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра R4 и вредношћу 1 сигнала ldR4 на сигнал такта уписује у регистар R4. На исти
сигнал такта се прелази на корак K3.
У кораку K3 сигнали S2 и S3 имају вредност 1 па садржаји регистара R2 и R4 пролазе
кроз мултиплексере MP1 и MP2 и појављују на улазима A и B јединице ALU, сигнал S1
има вредност 1 па се на излазу јединице ALU јавља сума садржаја регистара R2 и R4,
која се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал
такта се прелази на корак K4.
У кораку K4 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра R4 и вредношћу 1 сигнала ldR4 на сигнал такта уписује у регистар R4. На исти
сигнал такта се прелази на корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 1.в.
CLKCLK
D QK
0
Q
ADDINC
CLK CLK
D QK
1
QRd
Sd
CLK CLK
D QK
2
QRd
CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLK CLK
Слика 1.в Структурна шема управљачке јединице
Управљачка јединица се састоји од флип-флопова K0, K1, K2, K3 и K4 додељених
операционим блоковима у корацима K0, K1, K2, K3 и K4 у дијаграму тока
5
микрооперација и управљачких сигнала (слика 1.б) и једног пара I елемената додељеног
условном блоку са сигналом логичког услова ADDINC у дијаграму тока
микрооперација и управљачких сигнала.
На почетку извршавања наредбе ADDINC јединица се налази у флип-флопу K0 и
нуле у осталим флип-флоповима, што одговара кораку K0 из дијаграма тока
микрооперација и управљачких сигнала. Стога ни један од од управљачких сигнала
нема вредност 1. Све време док сигнал ADDINC има вредност 0 јединица остаје у флип-
флопу K0 и нуле у осталим флип-флоповима. Када сигнал ADDINC постане 1, на сигнал
такта се уписује јединица у флип-флоп K1 и нула у флип-флоп K0, док нуле остају у
осталим флип-флоповима.
Јединица у флип-флопу K1 и нуле у осталим флип-флоповима, што одговара кораку
K1 из дијаграма тока микрооперација и управљачких сигнала, дају вредност 1 сигнала
ldA, S1 и C0. На сигнал такта се уписује јединица у флип-флоп K2 и нула у флип-флоп
K1, док нуле остају у осталим флип-флоповима.
Јединица у флип-флопу K2 и нуле у осталим флип-флоповима, што одговара кораку
K2 из дијаграма тока микрооперација и управљачких сигнала, дају вредност 1 сигнала
ldR4 и rdA. На сигнал такта се уписује јединица у флип-флоп K3 и нула у флип-флоп K2,
док нуле остају у осталим флип-флоповима.
Јединица у флип-флопу K3 и нуле у осталим флип-флоповима, што одговара кораку
K3 из дијаграма тока микрооперација и управљачких сигнала, дају вредност 1 сигнала
ldA, S2, S3 и S1. На сигнал такта се уписује јединица у флип-флоп K4 и нула у флип-
флоп K3, док нуле остају у осталим флип-флоповима.
Јединица у флип-флопу K4 и нуле у осталим флип-флоповима, што одговара кораку
K4 из дијаграма тока микрооперација и управљачких сигнала, дају вредност 1 сигнала
ldR4 и rdA. На сигнал такта се уписује јединица у флип-флоп K0 и нула у флип-флоп K4,
док нуле остају у осталим флип-флоповима. Овим се реализује враћање у почетно
стање.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
S2 = K3
S3 = K3
S1 = K1 + K3
C0 = K1
ldA = K1 + K3
rdA = K2 + K4
ldR4 = K2 + K4
у којима K0, K1, K2, ..., K4 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 1.б). Сви остали
управљачки сигнали имају вредност 0.
Дискусија 1:
У тексту задатка је назначено да треба претпоставити да се у регистрима R1, R2 и R3
налазе вредности које омогућавају да се извршавање наредбе реализује коректно и да се
добије вредност која може да се смести у регистар R4. Напомена је наведена, јер су
вредности у регистрима целобројне величине без знака и дужина регистара је n бита, па
се у неким случајевима може добити збир који се приказује са више од n бита и на тај
начин се не добија коректан резултат. На пример максимална величина која се може
налазити у регистрима је 2n-1. За збир 2
n-1+2
n-1 потребно је n+1 бит, ако би се дати збир
још једном повећао за 2n-1 било би потребно n+2 бита. У задатку збир се памти у
регистру дужине n бита, па се добија некоректан резултат.
6
Дискусија 2:
Функционисање и операционе и управљачке јединице је дато уз следеће две
претпоставке. Прво, користе се секвенцијалне мреже реализоване са ивичним флип-
флоповима који мењају стање сагласно вредностима улазних сигнала само у тренутку
промене вредности сигнала такта са вредности 0 на вредност 1. Друго, флип-флопови
уносе одређено кашњење, па се вредност на излазу флип-флопа појављује нешто
касније у односу на тренутак промене вредности сигнала такта са вредности 0 на
вредност 1. Као последица овога сигнали имају временске облике као на слици 1.г.
CLK
ADDINC
S2
S3
S0
S1
C0
ldA
rdA
ldR4
K0
K1
K2
K3
K4
K0
1 2 3 4 5 6 7
K0
K1
K3
K4
K2
Слика 1.г Временски облици сигнала
Због кашњења које уносе флип-флопови, флип-флоп K1 и сигнали S1, C0 и ldA се
постављају на вредност 1 са кашњењем у односу на тренутак промене сигнала такта
CLK означеног са 3 са вредности 0 на вредност 1. Из истих разлога флип-флоп K1 и
сигнали S1, C0 и ldA се постављају на вредност 0 са кашњењем у односу на тренутак
7
промене сигнала такта CLK означеног са 4 са вредности 0 на вредност 1. Вредности 1
сигнала S1 и C0 и вредности 0 сигнала S2, S3 и S0 у временском периоду између сигнала
такта CLK означених са 3 и 4, омогућавају да кроз комбинационе мреже, које чине
мултиплексери MP1 и MP2 и јединица ALU, прођу садржаји регистара R1 и R3 и да се
на улазу регистра A формира сума садржаја регистара R1 и R3 увећана за 1. Вредност 1
сигнала ldA у временском периоду између између сигнала такта CLK означених са 3 и 4
омогућава да се при промени сигнала такта CLK означеног са 4 са вредности 0 на
вредност 1 садржај формиран на улазу регистра A упише у регистар A. Треба уочити да
због кашњења са којим сигнал ldA постаје најпре 1 на сигнал такта CLK означен са 3 и
затим 0 на сигнал такта означен са 4, нема уписа у регистар A на промену сигнал такта
CLK означеног са 3 са вредности 0 на вредност 1, већ на промену сигнала такта
означеног са 4 са вредности 0 на вредност 1. Такође због кашњења са којим сигнали S1
и C0 постају најпре 1 на сигнал такта CLK означен са 3 и затим 0 на сигнал такта
означен са 4, као и због пропагације кроз комбинационе мреже које чине мултиплексери
MP1 и MP2 и јединица ALU, сума садржаја регистара R1 и R3 увећана за 1 је присутна
на улазима регистра A у тренутку када се при промени сигнала такта CLK означеног са
4 са вредности 0 на вредност 1 врши упис у регистар A.
Слична је ситуација и са сигналима ldR4 и rdA који имају вредност 1 у временском
периоду између сигнала такта CLK означених са 4 и 5. Вредност 1 сигнала rdA
омогућује да садржај регистра A прође кроз комбинационе мреже које чине бафери са
три стања и појави се на линијама магистрале M и улазима регистара R1, R2, R3 и R4.
Вредност 1 сигнала ldR4 у временском периоду између сигнала такта CLK означених са
4 и 5, омогућује да се при промени сигнала такта CLK означенog са 5 са вредности 0 на
вредност 1 садржај присутан на линијама магистрале M упише у регистар R4. Треба
уочити да због кашњења са којим сигнал ldR4 постаје најпре 1 на сигнала такта CLK
означен са 4 и затим 0 на сигнал такта означен са 5, нема уписа у регистар R4 на
промену сигнала такта означен са 4 са вредности 0 на вредност 1, већ на промену
сигнала такта означеног са 5 са вредности 0 на вредност 1. Такође због кашњења са
којим сигнал rdA постаје најпре 1 на сигнал такта CLK означен са 4 и затим 0 на сигнал
такта означен са 5, као и због пропагације кроз комбинациону мрежу коју чини бафер са
три стања, садржај регистра A је присутан на линијама магистрале M и улазима
регистра R4 у тренутку када се при промени сигнала такта CLK означеног са 5 са
вредности 0 на вредност 1 врши упис у регистар R4.
Периода сигнала такта CLK је одређена временом пропагације кроз комбинационе
мреже и мора да буде нешто већа од највеће пропагације. У посматраном случају
постоји пропагација садржаја регистара R1, R2, R3 и R4 кроз комбинационе које чине
мултиплексери MP1 и MP2 и јединица ALU и пропагација садржаја регистра A кроз
бафер са три стања. Пропагација кроз комбинационе које чине мултиплексери MP1 и
MP2 и јединица ALU је дужа од пропагације кроз бафер са три стања, па се на основу
ње одређује периода сигнала такта CLK.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 1.б) и дата на слици
1.д.
8
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3
K0 (000) / K0 (000) ADDINC 0 b 0 b 0 b
K1 (001) ADDINC 0 b 0 b 1 b
K1 (001) ldA, S1, C0 K2 (011) 1 0 b 1 b b 0
K2 (011) ldR4, rdA K3 (010) 1 0 b b 0 b 1
K3 (010) ldA, S3, S2, S1 K4 (110) 1 1 b b 0 0 b
K4 (110) ldR4, rdA K0 (000) 1 b 1 b 1 0 b
Слика 1.д.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=000, K1=001, K2=011, K3=010, K4=110,
а за реализацију стања секвенцијална прекидачка мрежа користе се флип-флопови Q1,
Q2 и Q3 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
S2 = K3
S3 = K3
S0 = 0
S1 = K1 + K3
C0 = K1
ldA = K1 + K3
rdA = K2 + K4
ldR4 = K2 + K4
у којима K0, K1, K2, K3 и K4 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K3
K1 = K4
J2 = K1
K2 = K4
J3 = K0 ∙ADDINC
K3 = K2
С обзирома на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q
K1= 1Q ∙ 2Q ∙Q3
K2= 1Q ∙Q2∙ Q3
K3= 1Q ∙Q2∙ 3Q
K4= Q1∙Q2∙ 3Q
9
Дискусија 3:
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа може да се састоји и од флип-флопове Q1, Q2 и Q3 типа D, T или SR.
Без обзира на то који се тип флип-флопа користи, стања секвенцијалне прекидачке
мреже кодирана су на исти начин као и у случају реализације са JK флип-флоповима, а
сигнали декодованих стања секвенцијалне прекидачке мреже и управљачки сигнали
операционе јединице се генеришу према истим изразима као и у случају реализације са
JK флип-флоповима. Разлика је само у изразима за сигнале побуда флип-флопова.
Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са D флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 1.б) и дата на слици
1.ђ.
Q Z Q(t+1) X D1 D2 D3
K0 (000) / K0 (000) ADDINC 0 0 0
K1 (001) ADDINC 0 0 1
K1 (001) ldA, S1, C0 K2 (011) 1 0 1 1
K2 (011) ldR4, rdA K3 (010) 1 0 1 0
K3 (010) ldA, S3, S2, S1 K4 (110) 1 1 1 0
K4 (110) ldR4, rdA K0 (000) 1 0 0 0
Слика 1.ђ.Таблица стања, прелаза/излаза и побуда флип-флопова
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа D и комбинационе
прекидачке мреже која генерише сигнале побуда D флип-флопова према следећим
изразима:
D1 = K3
D2 = K1 + K2 + K3
D3 = K0 ∙ADDINC+ K1
Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са T флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 1.б) и дата на слици
1.e.
Q Z Q(t+1) X T1 T2 T3
K0 (000) / K0 (000) ADDINC 0 0 0
K1 (001) ADDINC 0 0 1
K1 (001) ldA, S1, C0 K2 (011) 1 0 1 0
K2 (011) ldR4, rdA K3 (010) 1 0 0 1
K3 (010) ldA, S3, S2, S1 K4 (110) 1 1 0 0
K4 (110) ldR4, rdA K0 (000) 1 1 1 0
Слика 1.e.Таблица стања, прелаза/излаза и побуда флип-флопова
10
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа T и комбинационе
прекидачке мреже која генерише сигнале побуда T флип-флопова према следећим
изразима:
T1 = K3 + K4
T2 = K1 + K4
T3 = K0 ∙ADDINC+ K2
Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са SR флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 1.б) и дата на слици
1.ж.
Q Z Q(t+1) X S1 R1 S2 R2 S3 R3
K0 (000) / K0 (000) ADDINC 0 b 0 b 0 b
K1 (001) ADDINC 0 b 0 b 1 0
K1 (001) ldA, S1, C0 K2 (011) 1 0 b 1 0 b 0
K2 (011) ldR4, rdA K3 (010) 1 0 b b 0 0 1
K3 (010) ldA, S3, S2, S1 K4 (110) 1 1 0 b 0 0 b
K4 (110) ldR4, rdA K0 (000) 1 0 1 0 1 0 b
Слика 1.ж.Таблица стања, прелаза/излаза и побуда флип-флопова
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа SR и комбинационе
прекидачке мреже која генерише сигнале побуда SR флип-флопова према следећим
изразима:
S1 = K3
R1 = K4
S2 = K1
R2 = K4
S3 = K0 ∙ADDINC
R3 = K2
11
1.2 ПРОИЗВОД - MULINT
На слици 2.a је приказана структурна шема дела операционе јединице процесора. У
регистрима M и X дужине n разреда налазе се бинарне вредности које треба
интерпретирати као целобројне вредности без знака. Микрооперације које се реализују
у јединици ALU су дате у табели 2.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MULINT која израчунава
XM
производ садржаја регистара X и M, а резултат смешта у регистар X. Претпоставити да
се у регистрима X и M налазе вредности које омогућавају да се извршавање наредбе
реализује коректно и да се добије вредност која може да се смести у регистар X.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
ALU
S0
S1
S0
S1
C0 C
0
B
n n
A
Cn
Cn
n
S2
0
MP S0
1
n
F
ALD
CLKCL clA
CLKldA
n
n
n
MLD
CLK
n
CL
ldM
clMCLK X
LDCLK
n
CL
ldX
clXCLK
X0nn nn
Слика 2.a Структурна шема операционе јединице
S0 S1 F0 0 0 A+B
0 1 A+C0
1 0 AC0
1 1 AB
Табела 2 Микрооперације у јединици ALU
Решење:
a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 2.б.
Израчунавање производа целобројних вредности без знака у регистрима M и X се
реализује на следећи начин. У регистар A се најпре упише вредност нула, па се после
тога сабирају садржаји регистара A и M и резултат уписује у регистар A. Ово се
понавља онолико пута колико је садржај регистра X. Због тога се после сваког сабирања
регистара A и M врши декрементирање садржаја регистра X. Уколико садржај регистра
X није постао нула, сабирање се понавља, док се у супротном случају завршава са
сабирањем и последња добијена сума, која представља производ садржаја регистара M
и X, пребацује из регистра А у регистар X.
12
Садржај регистра X је потребно у свакој итерацији декрементирати. Овај регистар
нема сигнал за декремент, па је ту операцију потребно извршити помоћу јединице ALU.
Вредност регистра се помоћу мултиплексера MP доводи на улаз A јединице ALU, па се
извршава операција AC0, са вредношћу 1 сигнала C0. и добијена вредност уписује у
регистар X.
K0
A<=0
K1
MULINT1
0
X01
X0
0
K2
X<=X1
K3
A<=A+M
0
1
X<=A
K4
K0
clA
K1
MULINT1
0
X01
X0
0
K2
S2, S
0, C
0, ldX
K3
ldA
0
1
S2, ldX
K4
Слика 2.б Дијаграми тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала MULINT и у зависности од тога да ли
сигнал MULINT има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта
прелази на корак K1.
У кораку K1 се вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A. У
кораку K1 се и проверава вредност сигнала X0 и у зависности од тога да ли сигнал X0
има вредност 0 или 1 на сигнал такта прелази или на корак K2 или на корак K4.
У кораку K2 се вредношћу 1 сигнала S2 кроз мултиплексер MP на улаз A јединице
ALU пропушта садржај регистра X, вредностима 1 сигнала S0 и C0 се на излазу
јединице ALU формира садржај регистра X умањен за 1, који се вредношћу 1 сигнала
ldX на сигнал такта уписује у регистар X. На исти сигнал такта се прелази на корак K3.
У кораку K3 се вредношћу 0 сигнала S2 кроз мултиплексер MP на улаз A јединице
ALU пропушта садржај регистра M док је на улазу B јединице ALU све време присутан
садржај регистра A, вредностима нула сигнала S0, S1 и C0 се на излазу јединице ALU
формира сума садржаја регистара M и A, која се вредношћу 1 сигнала ldA на сигнал
такта уписује у регистар A. У кораку K3 се и проверава вредност сигнала X0 и у
зависности од тога да ли сигнал X0 има вредност 0 или 1 на сигнал такта прелази или
на корак K2 или на корак K4.
У кораку K4 се вредношћу 1 сигнала S2 кроз мултиплексер MP на улаз A јединице
ALU пропушта садржај регистра X, који је декрементирањем дошао до вредности 0,
док је на улазу B јединице ALU све време присутан садржај регистра A, вредностима 0
сигнала S0, S1 и C0 се на излазу јединице ALU формира сума садржаја регистара X и A,
која због тога што је садржај регистра X нула представља садржај регистра A, која се
вредношћу 1 сигнала ldX на сигнал такта уписује у регистар X. На исти сигнал такта се
прелази на корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 2.в
13
CLKCLK
D QK
0
Q
MULINT
CLK CLK
D QK
1
QRd
Sd
CLK CLK
D QK
2
QRd
CLK
D QK
3
QRd
X0 X0
CLK
D QK
4
QRd
Слика 2.в Структурна шема управљачке јединице
Управљачка јединица се састоји од флип-флопова K0, K1, K2, K3 и K4 додељених
операционим блоковима у корацима K0, K1, K2, K3 и K4 из дијаграма тока
микрооперација и управљачких сигнала и три пара I елемената додељених условном
блоку са сигналом логичког услова MULINT у кораку K0 и условним блоковима са
сигналом логичког услова X0 у корацима K1 и K3 из дијаграма тока микрооперација и
управљачких сигнала.
На почетку извршавања наредбе MULINT јединица се налази у флип-флопу K0 и
нуле у осталим флип-флоповима, што одговара кораку K0 из дијаграма тока
микрооперација и управљачких сигнала, па ни један од управљачких сигнала нема
вредност 1. Све време док сигнал MULINT има вредност 0 јединица остаје у флип-
флопу K0 и нуле у осталим флип-флоповима. Када сигнал MULINT постане 1, на сигнал
такта се уписује јединица у флип-флоп K1 и нула у флип-флоп K0, док нуле остају у
осталим флип-флоповима.
Јединица у флип-флопу K1 и нуле у осталим флип-флоповима, што одговара кораку
K1 из дијаграма тока микрооперација и управљачких сигнала, дају вредност 1 сигнала
clA. На сигнал такта се, у зависности од тога да ли сигнал X0 има вредност 0 или 1,
уписује јединица у флип-флоп K2 или K4 и нула у флип-флоп K1, док нуле остају у
осталим флип-флоповима.
Јединица у флип-флопу K2 и нуле у осталим флип-флоповима, што одговара кораку
K2 из дијаграма тока микрооперација и управљачких сигнала, дају вредност 1 сигнала
S2, S0, C0 и ldX. На сигнал такта се уписује јединица у флип-флоп K3 и нула у флип-
флоп K2, док нуле остају у осталим флип-флоповима.
Јединица у флип-флопу K3 и нуле у осталим флип-флоповима, што одговара кораку
K3 из дијаграма тока микрооперација и управљачких сигнала, дају вредност 1 сигнала
ldA. На сигнал такта се, у зависности од тога да ли сигнал X0 има вредност 0 или 1,
уписује јединица у флип-флоп K2 или K4 и нула у флип-флоп K3, док нуле остају у
осталим флип-флоповима.
Јединица у флип-флопу K4 и нуле у осталим флип-флоповима, што одговара кораку
K4 из дијаграма тока микрооперација и управљачких сигнала, дају вредност 1 сигнала
S2 и ldX. На сигнал такта се уписује јединица у флип-флоп K0 и нула у флип-флоп K4,
док нуле остају у осталим флип-флоповима. Овим се реализује враћање у почетно
стање.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
S2 = K2 + K4
S0 = K2
C0 = K2
ldX = K2 + K4
ldA = K3
у којима K0, K1, K2, ..., K4 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 2.б). Сви остали
управљачки сигнали су 0.
14
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 2.б) и дата на слици
2.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3
K0 (000) / K0 (000) MULINT 0 b 0 b 0 b
K1 (001) MULINT 0 b 0 b 1 b
K1 (001) clA K2 (011) 0X 0 b 1 b b 0
K4 (110) X0 1 b 1 b b 1
K2 (011) ldX, S0, S2, C0 K3 (010) 1 0 b b 0 b 1
K3 (010) ldA K2 (011) 0X 0 b b 0 1 b
K4 (110) X0 1 b b 0 0 b
K4 (110) ldX, S2 K0 (000) 1 b 1 b 1 0 b
Слика 2.г.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=000, K1=001, K2=011, K3=010, K4=110,
а за реализацију стања секвенцијална прекидачка мрежа користе се флип-флопови Q1,
Q2 и Q3 типа JK
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
S2 = K2 + K4
S0 = K2
C0 = K2
ldX = K2 + K4
ldA = K3
у којима K0, K1, K2, ..., K4 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже придружених операционим блоковима у дијаграму тока
управљачких сигнала (слика 2.б). Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K1∙X0 + K3∙X0
K1 = K4
J2 = K1
K2 = K4
J3 = K0∙MULINT+ K3∙ 0X
K3 = K1∙X0 + K2
С обзирома на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
15
K0= 1Q ∙ 2Q ∙ 3Q
K1= 1Q ∙ 2Q ∙Q3
K2= 1Q ∙Q2∙ Q3
K3= 1Q ∙Q2∙ 3Q
K4= Q1∙Q2∙ 3Q
Дискусија 1:
У тексту задатка је назначено да треба претпоставити да се у регистрима M и X
налазе вредности које омогућавају да се извршавање наредбе реализује коректно и да се
добије вредност која може да се смести у регистар X. Напомена је наведена, јер су
вредности у регистрима целобројне величине без знака и дужина регистара је n бита, па
се у неким случајевима може добити производ који се приказује са више од n бита и на
тај начин се не добија коректан резултат. На пример максимална величина која се може
налазити у регистрима је 2n-1. За производ (2
n-1)*(2
n-1) потребно је 2n бита. У задатку
производ се памти у регистру дужине n бита, па се добија некоректан резултат.
Дискусија 2:
У кораку K2 извршава се декрементирање регистра X, а затим се у кораку K3
сабирају садржаји регистара A и M и испитује се да ли је вредност у регистру X једнака
0. Операције декрементирања регистра X и сабирање регистара A и M је могуће
извршити у једном кораку, али декрементирање регистра и испитивање да ли је
вредност у том регистру 0 није могуће извршити у истом кораку. Зато се операција
декрементирања извршава у кораку K2, а испитивање садржаја регистра X у наредном
кораку K3.
Дискусија 3:
Ако се изврши анализа добијених дијаграма тока микрооперација и управљачких
сигнала може се уочити следеће да се исти сигнал логичког услова X0 проверава и у
кораку K1 и у кораку K3. Такође у оба корака, у случају вредности 1 сигнала X0
извршавање се наставља кораком K4, а у случају вредности 0 сигнала X0 извршавање се
наставља кораком K2. Може се извести закључак да су провере у корацима K1 и K3 исте
и извршити оптимизација добијених дијаграма токова тако што би се исти условни блок
користио за испитивање вредности сигнала логичког услова X0 и из корака K1 и из
корака K3. Оптимизовани дијаграм тока микрооперација и управљачких сигнала и
одговарајућа структурна шема управљачке јединице су дати на сликама 2.д и 2.ђ.
K0
A<=0
K1
MULINT1
0
K2
X<=X1
K3
A<=A+M
X01
0
X<=A
K4
K0
clA
K1
MULINT1
0
K2
S2, S
0, C
0, ldX
K3
ldA
X01
0
S2, ldX
K4
Слика 2.д. Дијаграми тока микрооперација и управљачких сигнала
16
CLKCLK
D QK
0
Q
MULINT
CLK CLK
D QK
1
QRd
Sd
X0
CLK
D QK
2
QRd
CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLKCLK CLK
Слика 2.ђ Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу на исти начин као и у случају
решења управљачке јединице са слике 2.в.
Ако се упореде структурне шеме са слика 2.в и 2.ђ може се приметити да је у првом
случају употребљено 6 I елемената и 3 ILI елемента, док је у другом случају
употребљено 4 I елемента и 2 ILI елемента.
17
1.3 СУМА И ПРОИЗВОД - MULADD
На слици 3.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R1, R2, R3 и SC дужине n бита налазе се бинарне вредности које треба
интерпретирати као целобројне вредности без знака. Микрооперације које се реализују
у јединици ALU су дати у табели 3.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MULADD која израчунава
SC(R1+R2+R3)
производ садржаја регистра SC и суме садржаја регистара R1, R2 и R3, а резултат
смешта у регистар A. Фаза извршавања наредбе започиње уколико сигнал MULADD
има вредност 1. Садржаји регистара R1, R2 и R3 морају да остану неизмењени.
Претпоставити да се у регистрима R1, R2, R3 и SC налазе вредности које омогућавају
да се извршавање наредбе реализује коректно и да се добије вредност која може да се
смести у регистар A.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
n
R3CLK
n
CLKR2CLK
n
CLKR1CLK
n
CLK
rdR2
n
rdR3
n
LD ldR1 LD ldR2 LD ldR3
n n
rdR1
n
n
n
L1CLKCLKLD
CL
ldL1
clL1
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
ALD
CLKCL clA
CLKldA
n
SCCLKCLK
n
n
LD ldSC
SC0n nnn
rdAn
n
nn
S2
0
MP S0
1
n
nM
Слика 3.a Структурна шема операционе јединице
S0 S1 F0 0 0 AB
0 1 BC0
1 0 B+C0
1 1 A+B
Табела 3 Микрооперације у јединици ALU
Решење:
a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 3.б.
Израчунавање израза се реализује тако што се најпре израчуна сума целобројних
вредности без знака из регистара R1, R2 и R3 и смести у регистар L1, па се затим
израчуна производ целобројних вредности без знака у регистрима L1 и SC и резултат
смести у регистар A.
18
Израчунавање суме целобројних вредности без знака из регистара R1, R2 и R3 и
смештање у регистар L1 се реализује на следећи начин. Садржај регистра R1 се најпре
упише у регистар L1, а затим се садржај регистра L1 сабере са садржајем регистра R2 и
добијена вредност упише у регистар A. У наставку сабирања се садржај регистра R3
упише у регистар L1, а затим се садржај регистра L1 сабере са садржајем регистра A и
добијена вредност упише у регистар A.
Израчунавање производа целобројних вредности без знака у регистрима A и SC се
реализује на следећи начин. У регистар L1 се најпре пребаци претходно добијени
садржај регистра A, па се после тога сабирају садржаји регистара A и L1 и резултат
упише у регистар A. Ово се понавља онолико пута колико је садржај регистра SC. Због
тога се са сваким сабирањем садржаја регистара A и L1 врши декрементирање садржаја
регистра SC. Уколико садржај регистра SC није постао нула, сабирање се понавља, док
се у супротном случају завршава са сабирањем, а последња добијена сума у регистру A
представља производ садржаја регистара L1 и SC.
Покривене су и ситуације када је садржај регистра SC нула или један. На почетку се
у регистар A уписује нула, па уколико је садржај регистра SC нула завршава се
извршавање и у регистру A остаје нула. Уколико садржај регистра SC није нула
израчунава се сума садржаја регистара R1, R2 и R3 и уписује у регистар A. Затим се
декрементира садржај регистра SC, па уколико је садржај регистра SC постао нула,
завршава се извршавање и у регистру A остаје сума R1, R2 и R3. Овим су покривене
ситуације када је SC једнако нула или један.
Садржај регистра SC је потребно у свакој итерацији декрементирати. Овај регистар
нема сигнал за декремент, па је ту операцију потребно извршити помоћу јединице ALU.
Вредност регистра се помоћу мултиплексера MP доводи на улаз B јединице ALU, па се
извршава операција BC0, са вредношћу 1 сигнала C0.
K0
A<=0
K1
MULADD1
0
SC0
SC<=SC1
K8
0K2
L1<=R1
K3
A<=L1+R2
K4
L1<=R3
K5
A<=A+L1
K6
SC<=SC1
SC01
0
K7
L1<=A
SC01
0
K9
A<=A+L1
1
K0
clA
K1
MULADD1
0
SC0
ldSC, S1, C
0, S
2
K8
0K2
ldL1, rdR1
K3
ldA, S0, S
1, rdR2
K4
ldL1, rdR3
K5
ldA, S0, S
1, rdA
K6
ldSC, S1, C
0, S
2
SC01
0
K7
ldL1, rdA
SC01
0
K9
ldA, S0, S
1, rdA
1
Слика 3.б Дијаграм тока микрооперација и управљачких сигнала
19
У кораку K0 се проверава вредност сигнала MULADD и у зависности од тога да ли
сигнал MULADD има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта
прелази на корак K1.
У кораку K1 се вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A. У
кораку K1 се и проверава вредност сигнала SC0 и у зависности од тога да ли сигнал SC0
има вредност 0 или 1 на сигнал такта прелази или на корак K2 или на корак K0.
У кораку K2 се вредношћу 1 сигнала rdR1 садржај регистра R1 преко бафера са три
стања пушта на линије магистрале M и преко њих доводи на улаз регистра L1 и
вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. На исти сигнал такта
се прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала rdR2 и вредношћу 0 сигнала S2 садржај регистра
R2 преко бафера са три стања пушта на линије магистрале M и са њих преко
мултиплексера MP доводи на улаз B јединице ALU, на улазу A јединице ALU је стално
присутан садржај регистра L1, па се вредностима 1 сигнала S0 и S1 на излазу јединице
ALU формира сума садржаја регистара L1 и R2, која се вредношћу 1 сигнала ldA на
сигнал такта уписује у регистар A. На исти сигнал такта се прелази на корак K4.
У кораку K4 се вредношћу 1 сигнала rdR3 садржај регистра R3 преко бафера са три
стања пушта на линије магистрале M и преко њих доводи на улаз регистра L1, па се
вредношћу 1 сигнала ldL1 на сигнал такта се дати садржај уписује у регистар L1. На
исти сигнал такта се прелази на корак K5.
У кораку K5 се вредношћу 1 сигнала rdA и вредношћу 0 сигнала S2 садржај регистра
A преко бафера са три стања пушта на линије магистрале M и преко њих доводи на B
јединице ALU, на улазу A јединице ALU је стално присутане садржај регистра L1, па се
вредностима 1 сигнала S0 и S1 на излазу јединице ALU формира сума садржаја
регистара L1 и A, која се активном вредношћу сигнала ldA на сигнал такта уписује у
регистар A. На исти сигнал такта се прелази на корак K6.
У кораку K6 се вредношћу 1 сигнала S2 преко мултиплексера MP на улаз B јединице
ALU доводи садржај регистра SC, вредностима 1 сигнала S1 и C0 се на излазу јединице
ALU формира садржај регистра SC умањен за 1, који се вредношћу 1 сигнала ldSC на
сигнал такта уписује у регистар SC. На исти сигнал такта се прелази на корак K7.
У кораку K7 вредношћу 1 сигнала rdA на линије магистрале M пропушта садржај
регистра A, који се вредношћу 1сигнала ldL1 на сигнал такта уписује у регистар L1. У
кораку K7 се проверава и вредност сигнала SC0 и у зависности од тога да ли сигнал SC0
има вредност 0 или 1 на сигнал такта се прелази или на корак K8 или на корак K0.
У кораку K8 вредношћу 1 сигнала S2 преко мултиплексера MP на улаз B јединице
ALU доводи садржај регистра SC, вредностима 1 сигнала S1 и C0 се на излазу јединице
ALU формира садржај регистра SC умањен за 1, који се вредношћу 1 сигнала ldSC на
сигнал такта уписује у регистар SC. На исти сигнал такта се прелази на корак K9.
У кораку K9 се се вредношћу 1 сигнала rdA и вредношћу 0 сигнала S2 садржај
регистра A преко бафера са три стања пушта на линије магистрале M и преко њих
доводи на B јединице ALU, на улазу A јединице ALU је стално присутане садржај
регистра L1, па се вредностима 1 сигнала S0 и S1 на излазу јединице ALU формира сума
садржаја регистара L1 и A, која се активном вредношћу сигнала ldA на сигнал такта
уписује у регистар A. У кораку K9 се проверава и вредност сигнала SC0 и у зависности
од тога да ли сигнал SC0 има вредност 0 или 1 на сигнал такта се прелази или на корак
K8 или на корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 13.в.
20
CLKCLK
D QK
0
Q
MULADD
CLK CLK
D QK
1
QRd
Sd
SC0
CLKCLKCLK
D QK
5
Q
CLK
D QK
6
QRd
CLKCLK
D QK
7
QRd
SC0
CLK
D QK
8
QRd
CLK
D QK
9
QRd
SC0
CLKCLKCLK
Rd
CLKCLK
D QK
2
QRd
CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLK CLK CLK
Слика 3.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
S2 = K6 + K8
S0 = K3 +K5 +K9
S1 = K3 +K5 +K6+K8 +K9
C0 = K6 + K8
ldL1 = K2 + K4+ K7
ldA = K3+ K5+ K9
ldSC = K6+ K8
rdA = K5+ K7+ K9
rdR1 = K2
rdR2 = K3
rdR3 = K4
у којима K0, K1, K2, ..., K9 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 3.б). Сви остали
управљачки сигнали имају вредност 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова је дата на слици 3.г.
21
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) MULADD 0 b 0 b 0 b 0 b
K1 (0001) MULADD 0 b 0 b 0 b 1 b
K1 (0001) clA K0 (0000) SC0 0 b 0 b 0 b b 1
K2 (0011) 0SC 0 b 0 b 1 b b 0
K2 (0011) ldL1, rdR1 K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) ldA, S0, S1, rdR2 K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) ldL1, rdR3 K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) ldA, S0, S1, rdA K6 (0101) 1 0 b b 0 b 1 b 0
K6 (0101) ldSC, S1, C0, S2 K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) ldL1, rdA K0 (0000) SC0 0 b b 1 0 b 0 b
K8 (1100) 0SC 1 b b 0 0 b 0 b
K8 (1100) ldSC, S1, C0, S2 K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) ldA, S0, S1, rdA K0 (0000) SC0 b 1 b 1 0 b b 1
K8 (1100) 0SC b 0 b 0 0 b b 1
Слика 3.г.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
S2 = K6 + K8
S0 = K3 +K5 +K9
S1 = K3 +K5 +K6+K8 +K9
C0 = K6 + K8
ldL1 = K2 + K4+ K7
ldA = K3+ K5+ K9
ldSC = K6+ K8
rdA = K5+ K7+ K9
rdR1 = K2
rdR2 = K3
rdR3 = K4
у којима K0, K1, K2, K3 и K4 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
22
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7∙ 0SC
K1 = K9∙SC0
J2 = K3
K2 = K7∙SC0 + K9∙SC0
J3 = K1∙ 0SC
K3 = K5
J4 = K0∙MULADD + K4 + K8
K4 = K1∙SC0 + K2 + K6 + K9
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4,
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
Дискусија 1:
Претпоставити да се у регистрима R1, R2, R3 и SC налазе вредности које
омогућавају да се извршавање наредбе реализује коректно и да се добије вредност која
може да се смести у регистар A. Погледати дискусију у задацима 1 и 2.
Дискусија 2:
У кораку K6 извршава се декрементирање садржаја регистра SC, а затим се у кораку
K7 садржај регистра A уписује у регистар L1 и провером вредности сигнала SC0
утврђује да ли је садржај регистра SC као резултат декрементирања у кораку К6 постао
0. Микрооперацију декрементирања садржаја регистра SC и микрооперацију уписа
садржај регистра A у регистар L1 је могуће извршити у истом кораку. Међутим,
микрооперација декрементирања садржаја регистра SC и проверa вредности сигнала
SC0, морају да се реализују у два посебна корака. Зато се микрооперација
декрементирања садржаја регистра SC извршава у кораку K6, а проверa вредности
сигнала SC0 у кораку К7. Усвојено је да се микрооперација уписа садржај регистра A у
регистар L1 реализује у кораку К7 иако би могла да се реализује и у кораку К6.
Погледати дискусију 2 у задатку 2.
Дискусија 3:
Могуће је извршити оптимизацију дијаграма тока, јер се у корацима K7 и K9 користи
иста провера сигнала SC0. Погледати дискусију 3 у задатку 2. Оптимизовани дијаграм
тока микрооперација и управљачких сигнала и одговарајућа структурна шема
управљачке јединице су дати на сликама 3.д и 3.ђ.
23
K0
A<=0
K1
MULADD1
0
SC00K
2
L1<=R1
K3
A<=L1+R2
K4
L1<=R3
K5
A<=A+L1
K6
SC<=SC1
K7
L1<=A
1
K0
clA
K1
MULADD1
0
SC00K
2
ldL1, rdR1
K3
ldA, S0, S
1, rdR2
K4
ldL1, rdR3
K5
ldA, S0, S
1, rdA
K6
ldSC, S1, C
0, S
2
K7
ldL1, rdA
1
SC01
SC<=SC1
K8 0
K9
A<=A+L1
SC01
ldSC, S1, C
0, S
2
K8 0
K9
ldA, S0, S
1, rdA
Слика 3.д Дијаграм тока микрооперација и управљачких сигнала
CLKCLK
D QK
0
Q
MULADD
CLK CLK
D QK
1
QRd
Sd
SC0
CLK CLKCLK
D QK
2
QRd
CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLKCLK
CLKCLKCLK
D QK
5
Q
CLK
D QK
6
QRd
CLKCLK
D QK
7
QRd
CLKCLK
Rd
CLK
D QK
8
QRd
CLK
D QK
9
QRd
CLK
SC0
Слика 3.ђ Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу на исти начин као и у случају
решења управљачке јединице са слике 3.в.
24
1.4 МОДУО АПСОЛУТНИХ ВРЕДНОСТИ - MODABS
На слици 4.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R1 и R2 дужине n бита налазе се садржаји које треба интерпретирати као
целобројне вредности са знаком. Микрооперације које се реализују у јединици ALU су
дати у табели 4.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MODABS која израчунава
|R1|mod|R2|
модуо апсолутних вредности садржаја регистара R1 и R2, а резултат смешта у регистар
S. Фаза извршавања наредбе започиње уколико сигнал MODABS има вредност 1.
Претпоставити да је садржај регистра R2 различит од 0. Садржаји регистара R1 и R2
морају да остану неизмењени.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
LD ldS
n
SCLK
n
CLKR2CLK
n
CLKR1CLK
n
CLK
rdR2
n
rdS
n
LD ldR1 LD ldR2
n n
rdR1
n
n M n
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
L2CLKCLKLD
CL
ldL2
clL2
n
n
An-1
Cn
CCLKCLK LD ldC
C
ACL clA
CLKCLK
n n nrdA
LD ldA
n
Слика 4.a Структурна шема операционе јединице
S0 S1 F0 0 0 A+B
0 1 AB
1 0 B
1 1 AC0
Табела 4 Микрооперације у јединици ALU
Решење:
a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 4.б.
Израчунавање израза се реализује тако што се у регистар S упише апсолутна
вредност садржаја регистра R1, а у регистар L2 се упише апсолутна вредност садржаја
регистра R2, а затим се израчуна модуо садржаја регистара S и L2.
Упис апсолутних вредности садржаја регистара R1 и R2 у регистре S и L2 се
реализује на следећи начин. Прво се садржај регистра R1 упише у регистре L2 и S.
Затим се израчуна –L2 и упише у регистар A. Провери се најстарији бит регистра A,
25
како би се одредио знак целобројне вредности која се налази у регистру A. Ако је
најстарији разред регистра A једнак нула, садржај регистра A који представља |R1| се
уписује у регистар S, а ако је једнак један, то значи да се у регистру S већ налази |R1|, па
се наставља даље са радом. Садржај регистра R2 упише се у регистар L2. Затим се
израчуна –L2 и упише у регистар A. Провери се најстарији бит регистра A, како би
одредили знак целобројне вредности која се налази у регистру A. Ако је најстарији
разреда регистра A једнак нула, садржај регистра A који представља |R2| се уписује у
регистар L2, а ако је једнак један, то значи да се у регистру L2 већ налази |R2|, па се
наставља даље са радом.
Сада, када се у регистру S налази апсолутна вредност садржаја регистра R1 а у
регистру L2 апсолутна вредност садржаја регистра R2, од садржаја регистра S одузима
се садржај регистра L2 и све док је резултат одузимања већи од нуле новодобијена
вредност се уписује у регистар S. Када резултат одузимања постане мањи од нуле
вредност која је последња уписана у регистар S представља резултат наредбе
|R1|mod|R2|.
K0
K1
MODABS1
0
L2<=R1, S<=R1,
A<=(L2)
K2
K3
K4
S<=A
An-1
0
1
K5
L2<=R2
K6
A<=(L2)
K7
K8
L2<=A
An-1
0
1
K9
A<=(SL2), C<=Cn
K10
K11
S<=A
C0
1
K0
K1
MODABS1
0
ldL2, ldS, rdR1,
ldA, S0
K2
K3
K4
ldS, rdA
An-1
0
1
K5
ldL2, rdR2
K6
ldA, S0
K7
K8
ldL2, rdA
An-1
0
1
K9
ldA, ldC, S1, rdS
K10
K11
ldS, rdA
C0
1
Слика 4.б Дијаграм тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала MODABS и у зависности од тога да ли
сигнал MODABS има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта
прелази на корак K1.
26
У кораку K1 се вредношћу 1 сигнала rdR1 преко бафера са три стања на линије
магистрале M пропушта садржај регистра A, који се вредношћу 1 сигнала ldL2 и ldS на
сигнал такта уписује у регистре L2 и S. На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала S0 на излазу јединице ALU формира вредност
супротног знака од садржаја регистра L2, која се вредношћу 1 сигнала ldA на сигнал
такта уписује у регистар A. На исти сигнал такта прелази се на корак K3.
У кораку K3 се проверава вредност сигнала An-1, који вредношћу 0 указује да је
садржај регистра А позитиван а вредношћу 1 да је негативан, и у зависности од тога да
ли сигнал An-1 има вредност 0 или 1 на сигнал такта се прелази или на корак K4 или на
корак K5.
У кораку K4 се вредношћу 1 сигнала rdA преко бафера са три стања на линије
магистрале M пропушта садржај регистра A, који се вредношћу 1 сигнала ldS на сигнал
такта уписује у регистар S. На исти сигнал такта се прелази на корак K5.
У кораку K5 се вредношћу 1 сигнала rdR2 преко бафера са три стања на линије
магистрале M пропушта садржај регистра R2, који се вредношћу 1 сигнала ldL2 на
сигнал такта уписује у регистар L2. На исти сигнал такта се прелази на корак K6.
У кораку K6 се вредношћу 1 сигнала S0 на излазу јединице ALU формира вредност
супротног знака од садржаја регистра L2, која се вредношћу 1 сигнала ldA на сигнал
такта уписује у регистар A. На исти сигнал такта прелази се на корак K3.
У кораку K7 се проверава вредност сигнала An-1, који вредношћу 0 указује да је
садржај регистра А позитиван а вредношћу 1 да је негативан, и у зависности од тога да
ли сигнал An-1 има вредност 0 или 1 на сигнал такта се прелази или на корак K8 или на
корак K9.
У кораку K8 се вредношћу 1 сигнала rdA преко бафера са три стања на линије
магистрале M пропушта садржај регистра A, који се вредношћу сигнала ldL2 на сигнал
такта уписује у регистар L2. На исти сигнал такта се прелази на корак K9.
У кораку K9 се вредношћу 1 сигнала rdS садржај регистра S преко бафера са три
стања пропушта на линије магистрале M и води на улаз A јединице ALU, на улазу B
јединице ALU све време је присутан садржај регистра L2, вредношћу 1 сигнала S1 се на
излазу јединице ALU формира разлика садржаја регистара S и L2 а на излазу Cn
позајмица, који се вредношћу 1 сигнала ldA и ldC на сигнал такта уписују у регистар A
и регистар C, респективно. На исти сигнал такта прелази се на корак K10.
У кораку K10 се проверава вредност сигнала позајмице C. Вредност 0 сигнала
позајмице C указује да је садржај регистра S већи од садржаја регистра L2 и да треба
продужити са одузимањем садржаја регистра L2 од садржаја регистра S, док вредност 1
сигнала позајмице C указује да је садржај регистра S мањи од садржаја регистра L2 и
да треба завршити са одузимањем садржаја регистра L2 од садржаја регистра S, при
чему садржај регистра S представља тражени модуо апсолутних вредности садржаја
регистара R1 и R2. Због тога се у зависности од тога да ли сигнал C има вредност 0 или
1 на сигнал такта прелази или на корак K11 или на корак K0.
У кораку K11 се вредношћу 1 сигнала rdA преко бафера са три стања на линије
магистрале M пропушта садржај регистра A, који се вредношћу 1 сигнала ldS на сигнал
такта уписује у регистар S. На исти сигнал такта се прелази на корак K9.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 4.в
27
CLKCLKCLK
D QK
0
Q
MODABS
CLK CLK
D Q
QRd
Sd
K1
CLKCLK
D QK
2
QRd
CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLK
D QK
6
QRd
CLKCLK
D QK
7
QRd
An-1
CLK CLK
D QK
11
QRd
C
CLK
D QK
9
QRd
CLK
D QK
10
QRd
CLK
D QK
8
QRd
An-1
CLK
D QK
5
QRd
CLKCLKCLK
CLK CLK CLKCLK CLK
Слика 4.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
S0 = K2 + K6
S1 = K9
ldL2 = K1 + K5 + K8
ldS = K1 + K4 + K11
ldA = K2 + K6 +K9
ldC = K9
rdR1 = K1
rdR2 = K5
rdA = K4 + K8+ K11
rdS = K9
у којима K0, K1, K2, ..., K11 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 4.б). Сви остали
управљачки сигнали имају вредност 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова је дата на слици 4.г.
28
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) MODABS 0 b 0 b 0 b 0 b
K1 (0001) MODABS 0 b 0 b 0 b 1 b
K1 (0001) ldL2, ldS, rdR1 K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldA, S0 K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) / K4 (0110)
1nА 0 b 1 b b 0 0 b
K5 (0111) An-1 0 b 1 b b 0 1 b
K4 (0110) ldS, rdA K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) ldL2, rdR2 K6 (0101) 1 0 b b 0 b 1 b 0
K6 (0101) ldA, S0 K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) / K8 (1100)
1nА 1 b b 0 0 b 0 b
K9 (1101) An-1 1 b b 0 0 b 1 b
K8 (1100) ldL2, rdA K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) ldA, ldC, S1, rdS K10 (1111) 1 b 0 b 0 1 b b 0
K10 (1111) / K0 (0000) C b 1 b 1 b 1 b 1
K11 (1110) C b 0 b 0 b 0 b 1
K11 (1110) ldS, rdA K9 (1101) 1 b 0 b 0 b 1 1 b
Слика 4.г.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111, K11=1110,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
S0 = K2 + K6
S1 = K9
ldL2 = K1 + K5 + K8
ldS = K1 + K4 + K11
ldA = K2 + K6 +K9
ldC = K9
rdR1 = K1
rdR2 = K5
rdA = K4 + K8+ K11
rdS = K9
у којима K0, K1, K2, ..., K11 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
29
J1 = K7
K1 = K10∙C
J2 = K3
K2 = K10∙ C
J3 = K1 + K9
K3 = K5 + K10∙ C + K11
J4 = K0∙MODABS + K3∙An-1 + K4 + K7∙An-1 + K8+ K11
K4 = K2 + K6 + K10
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
K11= Q1∙Q2∙ 3Q ∙ 4Q
Дискусија 1:
У оквиру задатка се извршава претварање негативних целобројних величина са
знаком у целобројне величине без знака. Знак је добар критеријум код одузимања
целобројних вредности са знаком, под условом да нема прекорачења. У овом случају
знак је добар критеријум да ли треба инвертовати или не. Изузетак је највећи негативан
број -2n-1
који као знак даје 1, што значи да не треба инвертовати, а треба јер је
негативан. Ово је случај када је дошло до прекорачења. Међутим то није грешка јер се
негативна вредност од -2n-1
као целобројна вредност без знака представља на исти
начин.
Дискусија 2:
У другом делу задатка извршава се операција одузимања целобројних вредности без
знака. У аритметици целобројних величина појам знака броја се не може узимати као
валидан параметар, већ вредности преноса односно позајмице бита има ту улогу. Треба
напоменути да је приликом операције одузимања излаз Cn аритметичко лoгичке
јединице једнак вредности позајмице, па је вредност на излазу Cn тражени параметар.
Вредност 0 сигнала позајмице Cn указује да је резултат одизимања позитиван број, док
вредност 1 сигнала позајмице Cn указује да је резултат одизимања негативан број.
Дискусија 3:
У тексту задатка је напоменуто да вредност регистра R2 мора бити различита од 0,
јер резултат операције “по модулу 0” није дефинисан. Регистар R1 може имати и
30
вредност 0. Тада је и резултат операције 0, а петља на крају задатка се извршава само
једном и задатак се завршава.
31
1.5 СУМА И ПРОИЗВОД - SMUL
На слици 5.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R1 и R2 дужине n разреда налазе се бинарне вредности које треба
интерпретирати као целобројне величине без знака. Микрооперације које се реализују у
јединици ALU су дате у табели 5.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе SMUL која израчунава
R1(R1+R2)
производ садржаја регистра R1 и суме садржаја регистара R1 и R2, а резултат смешта у
регистар R1. Фаза извршавања наредбе започиње уколико сигнал SMUL има вредност 1.
Садржаји регистра R2 мора да остане неизмењен. Претпоставити да се у регистрима R1
и R2 налазе вредности које омогућавају да се извршавање наредбе реализује коректно и
да се добије вредност која може да се смести у регистар R1.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
n
n
L1CLKCLKLD
CL
ldL1
clL1
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
n
BRLD
CLKDEC decBR
CLKldBR
n
ACLKCLK
n
n
LD ldA
nn
n
nBR0
n
CL clA
nrdArdBR
n
F
R2CLK
n
CLKR1CLK
n
CLK
rdR2
n
LD ldR1 LD ldR2
n
rdR1
n
n
n
M
Слика 5.a Структурна шема операционе јединице
S0 S1 F0 0 0 B
0 1 BC0
1 0 B+C0
1 1 A+B
Табела 5 Микрооперације у јединици ALU
Решење: a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 5. б.
32
Израчунавање израза се реализује тако што се најпре израчуна сума целобројних
вредности без знака из регистара R1 и R2 и упише у регистар L1, док се у регистар BR
упише садржај регистра R1. Производ целобројних вредности без знака у регистрима
L1 и BR се рачуна тако што се у регистар A најпре упише вредност нула, па се после
тога сабирају садржаји регистара A и L1 и резултат уписује у регистар A. Ово се
понавља онолико пута колико је садржај регистра BR. Због тога се после сваког
сабирања регистара A и L1 врши декрементирање садржаја регистра BR. Уколико
садржај регистра BR декрементирањем није постао нула, сабирање се понавља, док се у
супротном случају завршава са сабирањем и последња добијена сума, која представља
производ садржаја регистара L1 и BR, пребацује из регистра А у регистар R1.
K0
SMUL0
BR01
0
BR<=R1, L1<=R1
K1 1
A<=L1+R2
K2 1
L1<=A, A<=0
K3 1
K4
BR0
A<=A+L1, BR<=BR1,
K5
1
0
K6
R1<=A
K0
SMUL0
BR01
0
ldBR, ldL1, rdR1
K1 1
ldA, S0, S
1, rdR2
K2 1
ldL1, rdA, clA
K3 1
K4
BR0
ldA, S0, S
1, rdA, decBR
K5
1
0
K6
ldR1, rdA
Слика 5.б Дијаграм тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала SMUL и у зависности од тога да ли
сигнал SMUL има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази
на корак K1.
У кораку K1 се вредношћу 1 сигнала rdR1 садржај регистра R1 преко бафера са три
стања пропушта на линије магистрале M и преко њих води на улаз регистра L1 и на
улаз B јединице ALU, вредностима 0 сигнала S0 и S1 се на излаз јединице ALU
пропушта садржај регистра R1 са улаза B јединице ALU, па се вредношћу 1 сигнала
ldBR и ldL1 на сигнал такта уписује садржај са излаза ALU у регистар BR и садржај са
линија магистрале M у регистра L1, респективно. На исти сигнал такта прелази се на
корак K2.
У кораку K2 се вредношћу 1 сигнала rdR1 садржај регистра R2 преко бафера са три
стања пропушта на линије магистрале M и преко њих води на улаз B јединице ALU, на
улазу A јединице ALU увек је присутан садржај регистра L1, вредностима 1 сигнала S0
и S1 се на излазу јединице ALU формира сума садржаја регистара L1 и R1, која се
вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал такта се
прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала rdA садржај регистра A преко бафера са три
стања пропушта на линије магистрале M и вредношћу 1 сигнала ldL1 на сигнал такта
уписује у регистар L1. Поред тога у кораку K3 се вредношћу 1 сигнала clA на сигнал
такта уписује нула у регистар A. У кораку K3 се проверава и вредност сигнала BR0 и у
33
зависности од тога да ли сигнал BR0 има вредност 0 или 1 на сигнал такта прелази или
на корак K4 или на корак K6.
У кораку K4 се вредношћу 1 сигнала rdA садржај регистра A преко бафера са три
стања пропушта на линије магистрале M и преко њих води на улаз B јединице ALU, на
улазу A јединице ALU све време је присутан садржај регистра L1, вредностима 1
сигнала S0 и S1 се на излазу јединице ALU формира сума садржаја регистара L1 и A,
која се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. У кораку K4 се
вредношћу 1 сигнала decBR садржај регистра BR декрементира. На исти сигнал такта
се прелази на корак K5.
У кораку K5 се проверава вредност сигнала BR0 и у зависности од тога да ли сигнал
BR0 има вредност 0 или 1 на сигнал такта прелази или на корак K4 или на корак K6.
У кораку K6 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих, између осталог, води на улазе
регистра R1 и вредношћу 1 сигнала ldR1 на сигнал такта уписује у регистар R1. На исти
сигнал такта се прелази на корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 5.в.
CLKCLK
D QK
0
Q
SMUL
CLK CLK
D Q
QRd
Sd
K1
CLKCLK
D QK
2
QRd
CLK
CLK
D QK
3
QRd
BR0
CLK CLK
D QK
4
QRd
CLK
D QK
5
QRd
BR0
CLK
D QK
6
QRd
CLK
CLK
CLK
Слика 5.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима
clA = K3
S0 = K2 + K4
S1 = K2 + K4
ldL1 = K1 + K3
ldR1 = K6
ldA = K2 + K4
ldBR = K1
rdR1 = K1
rdR2 = K2
rdA = K3 + K4+ K6
decBR = K4
у којима K0, K1, K2, ..., K6 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 5.б). Сви остали
управљачки сигнали имају вредност 0.
.
34
в) Таблица стања, прелаза/излаза и побуда флип-флопова је дата на слици 5.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3
K0 (000) / K0 (000) SMUL 0 b 0 b 0 b
K1 (001) SMUL 0 b 0 b 1 b
K1 (001) ldBR, ldL1, rdR1 K2 (011) 1 0 b 1 b b 0
K2 (011) ldA, S0, S1, rdR2 K3 (010) 1 0 b b 0 b 1
K3 (010) ldL1, rdA, clA K4 (110) 0BR 1 b b 0 0 b
K6 (101) BR0 1 b b 1 1 b
K4 (110) ldA, S0, S1, rdA, decBR K5 (111) 1 b 0 b 0 1 b
K5 (111) / K4 (110) 0BR b 0 b 0 b 1
K6 (101) BR0 b 0 b 1 b 0
K6 (101) ldR1, rdA K0 (000) 1 b 1 0 b b 1
Слика 5.г.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=000, K1=001, K2=011, K3=010, K4=110, K5=111, K6=101,
а за реализацију стања секвенцијална прекидачка мрежа користе се флип-флопови Q1,
Q2 и Q3 типа JK
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K3
S0 = K2 + K4
S1 = K2 + K4
ldL1 = K1 + K3
ldR1 = K6
ldA = K2 + K4
ldBR = K1
rdR1 = K1
rdR2 = K2
rdA = K3 + K4+ K6
decBR = K4
у којима K0, K1,..., K6, представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K3
K1 = K6
J2 = K1
K2 = K3∙BR0 + K5∙BR0
J3 = K0∙SMUL + K3∙BR0 + K4
K3 = K2 + K5∙ 0BR + K6
35
С обзирома на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q
K1= 1Q ∙ 2Q ∙Q3
K2= 1Q ∙Q2∙Q3
K3= 1Q ∙Q2∙ 3Q
K4= Q1∙Q2∙ 3Q
K5= Q1∙Q2∙Q3
K6= Q1∙ 2Q ∙Q3
Дискусија 1:
У тексту задатка је назначено да треба претпоставити да се у регистрима R1 и R2
налазе вредности које омогућавају да се извршавање наредбе реализује коректно и да се
добије вредност која може да се смести у регистар R4. Погледати дискусије у задацима
1 и 2.
Дискусија 2:
У кораку K5 је празан операциони блок. Погледати дискусију у задатку 2.
Дискусија 3:
Могуће је извршити оптимизацију дијаграма тока, јер се у корацима K3 и K5 користи
иста провера услова BR0. Погледати дискусију 3 у задатку 2. Оптимизовани дијаграм
тока микрооперација и управљачких сигнала и одговарајућа структурна шема
управљачке јединице су дати на сликама 5.д и 5.ђ.
K0
SMUL0
BR<=R1, L1<=R1
K1 1
A<=L1+R2
K2 1
L1<=A, A<=0
K3 1
K4
A<=A+L1, BR<=BR1,
K5
K0
SMUL0
ldBR, ldL1, rdR1
K1 1
ldA, S0, S
1, rdR2
K2 1
ldL1, rdA, clA
K3 1
K4
ldA, S0, S
1, rdA, decBR
K5
BR01
0
K6
R1<=A
BR01
0
K6
ldR1, rdA
Слика 5.д Дијаграм тока микрооперација и управљачких сигнала
36
CLKCLK
D QK
0
Q
SMUL
CLK CLK
D Q
QRd
Sd
K1
CLKCLK
D QK
2
QRd
CLK
CLK
D QK
3
QRd
BR0
CLK CLK CLK
D QK
4
QRd
CLK
D QK
5
QRd
CLK
CLK
D QK
6
QRd
CLK
Слика 5.ђ Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу на исти начин као и у случају
решења управљачке јединице са слике 5.в.
37
1.6 СУМА АПСОЛУТНИХ ВРЕДНОСТИ - SABS
На слици 6.a је приказана структурна шема дела операционе јединице процесора. У
меморији MEM капацитета 2m
речи дужине n бита налазе се бинарне вредности које
треба интерпретирати као целобројне величине са знаком, док се у регистру CN дужине
m разреда налази бинарна вредност коју треба интерпретирати као целобројну вредност
без знака. Микрооперације које се реализују у јединици ALU су дате у табели 6.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе SABS која израчунава
CNi
0i
i |A|
суму апсолутних вредности елемената низа Ai који се налазе у меморији M, а резултат
се смешта регистар S. Фаза извршавања наредбе започиње уколико сигнал SABS има
вредност 1. Претпоставити да се у меморији MEM налазе вредности које омогућавају
да се извршавање наредбе реализује коректно и да се добије вредност која може да се
смести у регистар S.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
LD ldS
n
SCLK
n
CLK
rdMEM
n
rdS
n
n nn
n
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
L2CLKCLKLD
CL
ldL2
clL2
n
A(m-1)...0
MEM
DO(n-1)...0
m
n
CNCLK
m
CLK
m
LD ldCN
DEC decCN
mCN0
m
F
n F(n-1)...0F
n-1
NCLKCLK LD ldN
N
A
n
CL clACLKCLK
n
F(n-1)...0
n nrdA
LD ldA
M
Слика 6.a Структурна шема операционе јединице
S0 S1 F0 0 0 A+B
0 1 AB
1 0 B
1 1 AC0
Табела 6 Микрооперације у јединици ALU
Решење: a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 6. б.
Израчунавање израза се реализује на следећи начин. У регистар A се најпре упише
вредност нула. У регистру CN се чува адреса локације којој се приступа у меморији. На
38
садржај регистра A се додаје или одузима садржај из меморије са локације MEM[CN] у
зависности да ли је тај садржај већи или мањи од нуле.
То се реализује тако што се у регистар L2 упише садржај меморијске локације
MEM[CN], а у једноразредни регистар N упише се бит највеће тежине садржаја
меморијске локације MEM[CN]. На основу провере да ли садржај једноразредног
регистра N има вредност 0 или 1, утврђује се да ли је садржај регистра L2 позитиван
или негативан, респективно. У случају када је N једнако нула, садржаји регистра A и L2
се сабирају, а у случају када је N једнако један, од садржаја регистра A одузима се
садржај регистра L2 и у оба случаја резултат се уписује у регистар A. Након тога се
проверава садржај регистра CN. Уколико није постао нула, садржај регистра CN се
декрементира и сабирање или одузимање се понавља све док садржај регистра CN не
постане нула. Када садржај регистра CN постане нула тада се садржај регистра A, који
представља резултат извршења тражене наредбе, уписује у регистар S.
K0
A<=0
K1
SABS1
0
L2<=MEM[CN],
N<=MEM[CN]n-1
K3
A<=A+L2
K5
A<=AL2
K2
K4
N0
1
CN00
1
CN00
1
K6
CN<=CN1
K7
S<=A
K0
clA
K1
SABS1
0
ldL2, rdMEM,
ldN, S0, S
1
K3
ldA, rdA
K5
ldA, S1, rdA
K2
K4
N0
1
CN00
1
CN00
1
K6
decCN
K7
ldS, rdA
Слика 6.б Дијаграм тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала SABS и у зависности од тога да ли
сигнал SABS има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази
на корак K1.
У кораку K1 се вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A.
На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала rdMEM садржај меморијске локације MEM[CN]
преко бафера са три стања пропушта на линије магистрале M и преко њих води на улаз
регистра L2 и на улаз A јединице ALU, вредностима 1 сигнала S1 и S2 и вредношћу 0
сигнала C0 се садржај меморијске локације MEM[CN] са улаза A јединице ALU
пропушта на излаз јединице ALU, вредношћу 1 сигнала ldN на сигнал такта се највиши
бит садржаја меморијске локације MEM[CN] са излаза Fn-1 јединице ALU уписује у
једноразредни регистар N и вредношћу 1 сигнала ldL2 на сигнал такта се садржај
меморијске локације MEM[CN] са линија магистрале M уписује у регистар L2. На исти
сигнал такта се прелази на корак K3.
39
У кораку K3 се проверава вредност сигнала N и у зависности од тога да ли сигнал N
има вредност 0 или 1 на сигнал такта прелази или на корак K4 или на корак K5.
У кораку K4 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води на на улаз A јединице ALU,
садржај регистра L2 је све време присутан на улазу B јединице ALU, вредностима 0
сигнала S0 и S1 се на излазу јединице ALU формира сума садржаја регистара A и L2,
која се активном вредношћу сигнала ldA на сигнал такта уписује у регистар A. У кораку
K4 се проверава и вредност сигнала CN0 и у зависности од тога да ли сигнал CN0 има
вредност 0 или 1 на сигнал такта се прелази или на корак K6 или на корак K7.
У кораку K5 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води на улаз A јединице ALU,
садржај регистра L2 је све време присутан на улазу B јединице ALU, вредношћу 1
сигнала S1 на излазу јединице ALU формира разлика садржаја регистара A и L2, која се
вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. У кораку K5 се
проверава и вредност сигнала CN0 и у зависности од тога да ли сигнал CN0 има
вредност 0 или 1 на сигнал такта прелази или на корак K6 или на корак K7.
У кораку K6 се вредношћу 1 сигнала decCN на сигнал такта садржај регистра CN
декрементира. На исти сигнал такта се прелази на корак K2.
У кораку K7 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих, између осталог, води на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 6.в.
CLKCLK
D QK
0
Q
SABS
CLK CLK
D QK
1
QRd
Sd
CLKCLK
D QK
2
QRd
CLK
D QK
3
QRd
CLK CLK
N
CLK CLKCLK
D QK
4
QRd
CN0
CLKCLK
D QK
5
QRd
CN0
CLK
CLK
K6
CLK
D Q
QRd
CLK
D QK
7
QRd
CLK
Слика 6.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
ldL2 = K2
ldN = K2
ldA = K4 + K5
ldS = K7 S0 = K2
40
S1 = K2 + K5
rdMEM = K2
rdA = K4 +K5 + K7
decCN = K6
у којима K0, K1, K2, ..., K7 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 6.б). Сви остали
управљачки сигнали имају вредност 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова је дата на слици 6.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3
K0 (000) /
K0 (000) SABS 0 b 0 b 0 b
K1 (001) SABS 0 b 0 b 1 b
K1 (001) clA K2 (011) 1 0 b 1 b b 0
K2 (011) S0, S1, ldL2, ldN, rdMEM K3 (010) 1 0 b b 0 b 1
K3 (010) / K4 (110) N 1 b b 0 0 b
K5 (111) N 1 b b 0 1 b
K4 (110) ldA, rdA K6 (101) 0CN b 0 b 1 1 b
K7 (100) CN0 b 0 b 1 0 b
K5 (111) S1, ldA, rdA K6 (101) 0CN b 0 b 1 b 0
K7 (100) CN0 b 0 b 1 b 1
K6 (101) decCN K2 (011) 1 b 1 1 b b 0
K7 (100) ldS, rdA K0 (000) 1 b 1 0 b 0 b
Слика 6.г.Таблица стања, прелаза/излаза и побуде флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=000, K1=001, K2=011, K3=010, K4=110, K5=111, K6=101, K7=100,
а за реализацију стања секвенцијалнe прекидачкe мрежe користе се флип-флопови Q1,
Q2 и Q3 типа JK
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
ldL2 = K2
ldN = K2
ldA = K4 + K5
ldS = K7 S0 = K2
S1 = K2 + K5
rdMEM = K2
rdA = K4 +K5 + K7
decCN = K6
у којима K0, K1,..., K7, представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
41
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K3
K1 = K6 + K7
J2 = K1 + K6
K2 = K4 + K5
J3 = K0∙SABS + K3∙N + K4∙ 0CN
K3 = K4 + K5∙CN0
С обзирома на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q
K1= 1Q ∙ 2Q ∙Q3
K2= 1Q ∙Q2∙Q3
K3= 1Q ∙Q2∙ 3Q
K4= Q1∙Q2∙ 3Q
K5= Q1∙Q2∙Q3
K6= Q1∙ 2Q ∙Q3
K7= Q1∙ 2Q ∙ 3Q
Дискусија 1:
У тексту задатка је назначено да треба претпоставити да се у меморији МЕМ налазе
вредности које омогућавају да се извршавање наредбе реализује коректно и да се добије
вредност која може да се смести у регистар S. Погледати дискусије у задацима 1 и 2.
Дискусија 2:
У кораку K2 садржај меморијске локације MEM[CN] се пропушта на линије
магистрале M и са њих води на улаз регистра L2 и преко улаза A јединице ALU
пропушта на излаз јединице ALU. Зато је могуће у оквиру корака K2 и садржај
меморијске локације MEM[CN] уписати у регистар L2 и знак целобројне величине са
знаком представљене садржајем меморијске локације MEM[CN] уписати у
једноразредни регистар N.
Дискусија 3:
Могуће је извршити оптимизацију дијаграма тока, јер се у корацима K4 и K5 користи
иста провера услова BR0. Погледати дискусију 3 у задатку 2. Оптимизовани дијаграм
тока микрооперација и управљачких сигнала и одговарајућа структурна шема
управљачке јединице су дати на сликама 6.д и 6.ђ.
42
K0
A<=0
K1
SABS1
0
L2<=MEM[CN],
N<=MEM[CN]n-1
K3
A<=A+L2
K2
K4
N0
1
K5
A<=AL2
CN01
K6
CN<=CN1
K7
S<=A
0
K0
clA
K1
SABS1
0
ldL2, rdMEM,
ldN, S0, S
1
K3
ldA, rdA
K2
K4
N0
1
K5
ldA, S1, rdA
CN01
K6
decCN
K7
ldS, rdA
0
Слика 6.д Дијаграм тока микрооперација и управљачких сигнала
CLKCLK
D QK
0
Q
SABS
CLK CLK
D QK
1
QRd
Sd
CLKCLK
D QK
2
QRd
CLK
D QK
3
QRd
CLK CLK
N
CLK CLKCLK
D QK
4
QRd
CN0CLKCLK
D QK
5
QRd
CLK
CLK
K6
CLK
D Q
QRd
CLK
D QK
7
QRd
CLK
Слика 6.ђ Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу на исти начин као и у случају
решења управљачке јединице са слике 6.в.
43
1.7 МИНИМУМ ВЕЛИЧИНА БЕЗ ЗНАКА - MIN4
На слици 7.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R[0], R[1], R[2] и R[3] дужине n разреда се налазе бинарне вредности које
треба интерпретирати као целобројне величине без знака. Микрооперације које се
реализују у јединици ALU су дате у табели 7.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MIN4 која израчунава
MIN(R[0], R[1], R[2], R[3])
минимум садржаја регистара R[0], R[1], R[2] и R[3] и у регистар A смешта резултат.
Фаза извршавања наредбе започиње уколико сигнал MIN4 има вредност 1. Садржаји
регистара R[0], R[1], R[2] и R[3] морају да остану неизмењени.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
nn
R[1]CLK
n
CLKR[0]CLK
n
CLK
rdR[1]
n
LD LD
n
rdR[0]
n
n
R[3]CLK
n
CLKR[2]CLK
n
CLK
rdR[3]
n
LD LD
n
rdR[2]
n
n
2 2BR0
BRLD
INC incBR
ldBR
2
CLKCLK
CLclBR
3
2
2 1 0
DC E RD
n
n
L1CLKCLKLD
CL
ldL1
clL1
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
F
n
CCLKCLK LD ldC
C n n nrdA
ACLKCLK
n
LD ldA
CL clA
M
rdR[0]rdR[1]rdR[2]rdR[3]
ldR[0] ldR[1] ldR[2] ldR[3]
Слика 7.a Структурна шема операционе јединице
S0 S1 F0 0 0 AB
0 1 AC0
1 0 A+C0
1 1 A
Табела 7 Микрооперације у јединици ALU
Решење: а) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 7.б.
Израчунавање израза се реализује тако што се прво садржај регистра R[0] упише у
регистар L1. Затим се садржај регистра L1 пореди са садржајем регистра R[1]. Уколико
је садржај регистра L1 мањи од садржаја регистра R[1], садржај регистра L1 остаје
непромењен, док се у супротном случају садржај регистра R[1] као мањи уписује у
регистар L1. Потом се садржај регистра L1 пореди са садржајем регистра R[2]. Уколико
44
је садржај регистра L1 мањи од садржаја регистра R[2], садржај регистра L1 остаје
непромењен, док се у супротном случају садржај регистра R[2] као мањи уписује у
регистар L1. На крају се садржај регистра L1 пореди са садржајем регистра R[3].
Уколико је садржај регистра L1 мањи од садржаја регистра R[3], садржај регистра L1
остаје непромењен, док се у супротном случају садржај регистра R[3] као мањи уписује
у регистар L1. У регистру L1 је на крају најмањи садржај од садржаја у регистрима
R[0], R[1], R[2] и R[3].
K0
BR<=0
K1
MIN41
0
L1<=R[BR]
K2
BR<=BR+1
K3
K4
A<=L1
K5
BR01
0
K6
C<=Cn, L1R[BR]
K7
L1<=R[BR]
K8
C0
1
K0
clBR
K1
MIN41
0
ldL1, RD
K2
incBR
K3
K4
ldA, S1
K5
BR01
0
K6
ldC, S0, S
1, RD
K7
ldL1, RD
K8
C0
1
Слика 7.б Дијаграм тока микрооперација и управљачких сигнала
Током израчунавања овог израза постоји потреба да се садржаји регистара R[0], R[1],
R[2] и R[3] редом преко својих бафера са три стања пуштају на линије магистрале M.
Регистар R[0] се пушта на линије магистрале M да би се преко њих уписао у регистар
L1. Регистри R[1], R[2] и R[3] се пуштају на линије магистрале M да би се преко њих
доводили на улаз B јединице ALU. С обзиром да је на улазу А јединице ALU све време
присутан садржај регистра L1, довођењем садржаја регистара R[1], R[2] и R[3] на улаз
B јединице ALU и реализацијом одузимања садржаја са улаза B од садржаја са улаза А,
на основу резултата одузимања се утврђује да ли је садржај регистра L1 мањи од
садржаја регистра R[1], R[2] или R[3].
Усвојено је решење да се на линије магистрале M прво посебно пусти садржај
регистра R[0], а да се после пуштање садржаја регистара R[1], R[2] и R[3] реализује у
петљи кроз коју се пролази три пута. Прво се вредношћу 1 сигнала rdR[0] пушта
регистар R[0], а после у првом проласку кроз петљу се вредношћу 1 сигнала rdR[1]
пушта R[1] и тако редом до трећег проласка у коме се вредношћу 1 сигнала rdR[3]
пушта регистар R[3]. Генерисање вредности 1 сигнала rdR[0], rdR[1], rdR[2] и rdR[3] се
реализује помоћу декодера DC на основу садржаја инкрементирајућег бројача BR по
модулу четири онда када сигнал RD има вредност 1. У регистар BR се на почетку
упише вредност нула, па када сигнал RD има вредност 1 и сигнал rdR[0] има вредност
45
1. Садржај регистра BR се на почетку првог проласка кроз петљу инкрементира, па када
при првом проласку кроз петљу сигнал RD има вредност 1 и сигнал rdR[1] има
вредност 1. На сличана начин се формирају и вредности 1 сигнала rdR[2] и rdR[3] при
другом и трећем проласку кроз петљу, респективно.
Садржај бројача BR се користи и за формирање сигнала логичког услова BR0 који
вредностима 0 и 1 одређује да треба остати у петљи или изаћи из петље, респективно.
При сваком уласку у петљу садржај бројача BR се инкрементира и проверава да ли је
садржај регистра BR инкрементирањем са вредности 3 дошао на вредност 0.
Поређење садржаја регистара R[0], R[1], R[2] и R[3] се врши на следећи начин. У
регистар L1 се упише садржај регистра R[0]. Од садржаја регистра L1 одузме се
садржај регистра R[1]. Резултат одузимања се не уписује у регистар A, већ се само
сигнал позајмице Cn из ALU јединице уписује у једноразредни регистар C. Сигнал C
има вредност 1 уколико је садржај регистра L1 мањи је од садржаја регистра R1, па тада
садржај регистра L1 остаје непромењен. Сигнал C има вредност 0 уколико је садржај
регистра L1 већи од садржаја регистра R[1], па се тада у регистар L1 уписује садржај
регистра R[1]. Ово се понавља још два пута са регистрима R[2] и R[3]. Када садржај
регистра BR инкрементирањем дође са вредности 3 на вредност 0, упоређивање
садржаји регистара R[0], R[1], R[2] и R[3] је завршено и у регистру L1 се налази
минимална вредност садржаја регистара R[0], R[1], R[2] и R[3]. Садржај регистра L1 се
на крају уписује у регистар A као резултат извршења дате наредбе.
У кораку K0 се проверава вредност сигнала MIN4 и у зависности од тога да ли сигнал
MIN4 има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се вредношћу 1 сигнала clBR на сигнал такта уписује нула у регистар
BR. На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала RD формира вредност 1 сигнал rdR[BR] којом
се садржај регистра R[BR] пропушта на линије магистрале M и преко њих води на улаз
регистра L1 у који се вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1.
На исти сигнал такта се прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала incBR на сигнал такта садржај регистар BR
инкрементира. На исти сигнал такта се прелази на корак K4.
У кораку K4 се проверава вредност сигнала BR0 и у зависности од тога да ли сигнал
BR0 има вредност 0 или 1 на сигнал такта прелази или на корак K6 или на корак K5.
У кораку K5 се вредношћу 1 сигнала S1 на излаз јединице ALU пропушта садржај
регистра L1, који се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На
исти сигнал такта се прелази на корак K0.
У кораку K6 се вредношћу 1 сигнала RD формира вредност 1 сигнала rdR[BR], којим
се садржај регистра R[BR] преко бафера са три стања пропушта на линије магистрале
M и преко њих води на улаз B јединице ALU, док је на улазу A јединице ALU све време
присутан садржај регистра L1, вредношћу 1 сигнала S0 и S1 се на излазу јединице ALU
формира разлика садржаја регистара L1 и R[BR] са којом се ништа не ради и на излазу
Cn јединице ALU формира сигнал позајмице који се вредношћу 1 сигнала ldC на сигнал
такта уписује у једноразредни регистар C. На исти сигнал такта прелази се на корак K7.
У кораку K7 се проверава вредност сигнала C и у зависности од тога да ли сигнал C
има вредност 1 или 0 на сигнал такта се прелази или на корак K3 или на корак K8.
У кораку K8 се вредношћу 1 сигнала RD формира вредност 1 сигнала rdR[BR] којом
се садржај регистра R[BR] преко бафера са три стања пропушта на линија магистрале
M и са њих води на улаз регистра L1 у који се вредношћу 1 сигнала ldL1 на сигнал
такта и уписује у регистар L1. На исти сигнал такта се прелази на корак K0.
46
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 7.в.
CLKCLK
D QK
0
Q
MIN4
CLK
Sd
CLK
CLKCLK
D QK
3
QRd
CLK
D QK
4
QRd
CLK CLK
BR0
CLK
D QK
1
QRd
CLK
D QK
2
QRd
CLK
D QK
5
QRd
CLK
CLKCLK
D QK
6
QRd
CLK
D QK
7
QRd
CLK
D QK
8
QRd
C
CLK CLK
CLK
Слика 7.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clBR = K1
S0 = K6
S1 = K5 + K6
ldL1 = K2 + K8
ldC = K6
ldA = K5
RD = K2 + K6 + K8
incBR = K3
у којима K0, K1, K2, ..., K8 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 7.б). Сви остали
управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 7.д) и дата на слици
7.г.
47
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) /
K0 (0000) 4MIN 0 b 0 b 0 b 0 b
K1 (0001) MIN4 0 b 0 b 0 b 1 b
K1 (0001) clBR K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldL1, RD K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) incBR K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) / K6 (0101) 0BR 0 b b 0 b 1 1 b
K5 (0111) BR0 0 b b 0 b 0 1 b
K5 (0111) ldA, S1 K0 (0000) 1 0 b b 1 b 1 b 1
K6 (0101) ldC, S0, S1, RD K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) / K3 (0010) C 0 b b 1 1 b 0 b
K8 (1100) C 1 b b 0 0 b 0 b
K8 (1100) ldL1, RD K3 (0010) 1 b 1 b 1 1 b 0 b
Слика 7.г.Таблица стања, прелаза/излаза и побудa флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clBR = K1
S0 = K6
S1 = K5 + K6
ldL1 = K2 + K8
ldC = K6
ldA = K5
RD = K2 + K6 + K8
incBR = K3
у којима K0, K1, K2, ..., K8 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7∙ C
K1 = K8
J2 = K3
K2 = K5 + K7∙C+ K8
J3 = K1 + K7∙C+ K8
48
K3 = K4∙ 0BR + K5
J4 = K0∙MIN4 + K4
K4 = K2 + K5 + K6
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
Дискусија 1:
Могуће је извршити оптимизацију добијених дијаграма токова ако се у кораку K7 за
вредност C = 0 прелази на корак K2, а не на корак K8. Оптимизовани дијаграм тока
микрооперација и управљачких сигнала и одговарајућа структурна шема управљачке
јединице су дати на сликама 7.д и 7.ђ.
K0
BR<=0
K1
MIN41
0
L1<=R[BR]
K2
BR<=BR+1
K3
K4
A<=L1
K5
BR01
0
K6
C<=Cn, L1R[BR]
K7
C0
1
K0
clBR
K1
MIN41
0
ldL1, RD
K2
incBR
K3
K4
ldA, S1
K5
BR01
0
K6
ldC, S0, S
1, RD
K7
C0
1
Слика 7.д Дијаграм тока микрооперација и управљачких сигнала
49
CLKCLK
D QK
0
Q
MIN4
CLK
Sd
CLK
CLK
D QK
1
QRd
CLK
CLKCLK
D QK
6
QRd
CLK
D QK
7
QRd
C
CLK
CLKCLK
D QK
3
QRd
CLK
D QK
4
QRd
CLK CLK
BR0
CLK
D QK
2
QRd
CLK
D QK
5
QRd
CLK
Слика 7.ђ Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clBR = K1
S0 = K6
S1 = K5 + K6
ldL1 = K2
ldC = K6
ldA = K5
RD = K2 + K6
incBR = K3
у којима K0, K1, K2, ..., K7 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 7.б). Сви остали
управљачки сигнали су 0.
50
1.8 МАКСИМУМ ВЕЛИЧИНА БЕЗ ЗНАКА - MAX4
На слици 8.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R[0], R[1], R[2] и R[3] дужине n разреда се налазе бинарне вредности које
треба интерпретирати као целобројне величине без знака. Микрооперације које се
реализују у јединици ALU су дате у табели 8.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MAX4 која израчунава
MAX(R[0], R[1], R[2], R[3])
максимум садржаја у регистрима R[0], R[1], R[2] и R[3], а резултат смешта у регистар
A. Фаза извршавања наредбе започиње уколико је MAX4 има вредност 1. Садржаји
регистара R[0], R[1], R[2] и R[3] морају да остане неизмењени.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
nn
R[1]CLK
n
CLKR[0]CLK
n
CLK
rdR[1]
n
LD LD
n
rdR[0]
n
n
R[3]CLK
n
CLKR[2]CLK
n
CLK
rdR[3]
n
LD LD
n
rdR[2]
n
n
2 2BR0
BRLD
INC incBR
ldBR
2
CLKCLK
CLclBR
3
2
2 1 0
DC E RD
n
n
L1CLKCLKLD
CL
ldL1
clL1
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
F
n
CCLKCLK LD ldC
C n n nrdA
ACLKCLK
n
LD ldA
CL clA
M
rdR[0]rdR[1]rdR[2]rdR[3]
ldR[0] ldR[1] ldR[2] ldR[3]
Слика 8.a Структурна шема операционе јединице
S0 S1 F0 0 0 A
0 1 AC0
1 0 A+C0
1 1 AB
Табела 8 Микрооперације у јединици ALU
Решење: a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 8.б.
Израчунавање израза се реализује тако што се прво садржај регистра R[0] упише у
регистар L1. Затим се садржај регистра L1 пореди са садржајем регистра R[1]. Уколико
је садржај регистра L1 већи од садржаја регистра R[1], садржај регистра L1 остаје
непромењен, док се у супротном случају садржај регистра R[1] као већи уписује у
регистар L1. Потом се садржај регистра L1 пореди са садржајем регистра R[2]. Уколико
51
је садржај регистра L1 већи од садржаја регистра R[2], садржај регистра L1 остаје
непромењен, док се у супротном случају садржај регистра R[2] као већи уписује у
регистар L1. На крају се садржај регистра L1 пореди са садржајем регистра R[3].
Уколико је садржај регистра L1 већи од садржаја регистра R[3], садржај регистра L1
остаје непромењен, док се у супротном случају садржај регистра R[3] као већи уписује
у регистар L1. У регистру L1 је на крају највећи садржај од садржаја у регистрима R[0],
R[1], R[2] и R[3].
Извршавање операције MAX4 се реализује на сличан начин као и извршавање
операције MIN4. Разлика је у кораку К0 у коме се проверава вредност сигнала MAX4
уместо сигнала MIN4. Разлика је и у кораку К7 у коме се за операцију MAX4 у
зависности од тога да ли сигнал C има вредност 0 или 1 прелази или на корак К3 или на
корак К8, док је у случају операције MIN4 било обрнуто, што је последица тога да се у
операцији MAX4 тражи максимум а у операцији MIN4 минимум.
K0
BR<=0
K1
MAX41
0
L1<=R[BR]
K2
BR<=BR+1
K3
K4
A<=L1
K5
BR01
0
K6
C<=Cn, L1R[BR]
K7
L1<=R[BR]
K8
C1
0
K0
clBR
K1
MAX41
0
ldL1, RD
K2
incBR
K3
K4
ldA, S1
K5
BR01
0
K6
ldC, S0, S
1, RD
K7
ldL1, RD
K8
C1
0
Слика 8.б Дијаграм тока микрооперација и управљачких сигнала
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 8.в
52
CLKCLK
D QK
0
Q
MAX4
CLK
Sd
CLK
CLKCLK
D QK
3
QRd
CLK
D QK
4
QRd
CLK CLK
BR0
CLK
D QK
1
QRd
CLK
D QK
2
QRd
CLK
D QK
5
QRd
CLK
CLKCLK
D QK
6
QRd
CLK
D QK
7
QRd
CLK
D QK
8
QRd
C
CLK CLK
CLK
Слика 8.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clBR = K1
S0 = K6
S1 = K5 + K6
ldL1 = K2 + K8
ldC = K6
ldA = K5
RD = K2 + K6 + K8
incBR = K3
у којима K0, K1, K2, ..., K8 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 8.б). Сви остали
управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 8.б) и дата на слици
8.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) /
K0 (0000) 4MAX 0 b 0 b 0 b 0 b
K1 (0001) MAX4 0 b 0 b 0 b 1 b
K1 (0001) clBR K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldL1, RD K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) incBR K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) / K6 (0101) 0BR 0 b b 0 b 1 1 b
K5 (0111) BR0 0 b b 0 b 0 1 b
K5 (0111) ldA, S1 K0 (0000) 1 0 b b 1 b 1 b 1
K6 (0101) ldC, S1, S0, RD K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) / K3 (0010) C 0 b b 1 1 b 0 b
K8 (1100) C 1 b b 0 0 b 0 b
53
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K8 (1100) ldL1, RD K3 (0010) 1 b 1 b 1 1 b 0 b
Слика 8.г.Таблица стања, прелаза/излаза и побудa флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clBR = K1
S0 = K6
S1 = K5 + K6
ldL1 = K2 + K8
ldC = K6
ldA = K5
RD = K2 + K6 + K8
incBR = K3
у којима K0, K1, K2, ..., K8 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7∙C
K1 = K8
J2 = K3
K2 = K5 + K7∙C + K8
J3 = K1 + K7∙C + K8
K3 = K4∙ 0BR + K5
J4 = K0∙MAX4 + K4
K4 = K2 + K5 + K6
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
54
1.9 МИНИМУМ АПСОЛУТНИХ ВРЕДНОСТИ - MIN2
На слици 9.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R1 и R2 дужине n разреда налазе се бинарне вредности које треба
интерпретирати као целобројне величине са знаком. Микрооперације које се реализују у
јединици ALU су дате у табели 9.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MIN2 која израчунава
MIN(|R1|, |R2|)
минимум апсолутних вредности садржаја регистара R1 и R2, а резултат смешта у
регистар S. Фаза извршавања наредбе започиње уколико сигнал MIN2 има вредност 1.
Садржаји регистара R1 и R2 мора да остану неизмењени.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
LD ldS
n
SCLK
n
CLKR2CLK
n
CLKR1CLK
n
CLK
M
n
rdS
n
LD ldR1 LD ldR2
n n
rdR1
n
nn
n
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
L2CLKCLKLD
CL
ldL2
clL2
n
n
F
An-1
CCLKCLK LD ldC
C
ALD ldA
CL clACLKCLK
nn n
rdA
rdR2
Слика 9.a Структурна шема операционе јединице
S0 S1 F0 0 0 AB
0 1 A
1 0
1 1 AC0
Табела 9 Микрооперације у јединици ALU
Решење: a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 9.б.
Израчунавање минимума апсолутних вредности садржаја регистара R1 и R2 и
уписивање у регистар S се реализује тако што се најпре у регистар S упише апсолутна
вредност садржаја регистра R1, а у регистар L2 апсолутна вредност садржаја регистра
R2. Садржаји регистара S и L2 се пореде. Уколико је садржај регистра S мањи од
садржаја регистра L2, у регистру S се већ налази апсолутна вредност садржаја
55
регистара R1 и ништа не треба радити. Уколико је садржај регистра L2 мањи од
садржаја регистра S, садржај регистра L2 у коме се налази апсолутна вредност садржаја
регистра R2 се уписује у регистар S.
K0
K1
MIN21
0
L2<=R1, S<=R1, A<=R1
K2
K3
A<=L2
An1
1
0
K4
S<=A
K5
L2<=R2, A<=R2
K6
An-1
0
K7
A<=L2
1
K10
K11
S<=A
C0
1
K8
L2<=A
K9
C<=Cn, SL2
K0
K1
MIN21
0
ldL2, ldS, ldA, S0, S
1, rdR1
K2
K3
ldA, S0
An1
1
0
K4
ldS, rdA
K5
ldL2, ldA, S0, S
1, rdR2
K6
An-1
0
K7
ldA, S0
1
K10
K11
ldS, rdA
C0
1
K8
ldL2, rdA
K9
ldC, S1, rdS
Слика 9.б Дијаграм тока микрооперација и управљачких сигнала
Формирање апсолутних вредности садржаја регистара R1 и R2 се реализује на
следећи начин. Уколико је садржај регистра R1 позитивна величина, што је одређено
вредношћу 0 најстаријег разреда регистра R1, тада садржај регистра R1 представља
|R1|. Уколико је садржај регистра R1 негативна величина, што је одређено вредношћу 1
најстаријег разреда регистра R1, тада негативна вредност садржај регистра R1, која се
добија као - R1, представља |R1|. На исти начин се на основу садржаја регистра R2
формира и |R2|.
Најстарији разреди регистара R1 и R2 нису доступни, већ је доступан само
најстарији разред An-1 регистра A. Због тога се мора садржај регистра R1 пребацити у
регистар A и на основу тога да ли је у разреду An-1 вредност 0 или 1 утврдити да ли је
садржај регистра R1 позитивна или негативна величина, респективно. Уколико је у
разреду An-1 вредност 0, садржај регистра R1 је позитивна величина, па треба садржај
регистра R1 уписати у регистар S. Уколико је у разреду An-1 вредност 1, садржај
регистра R1 је негативна величина, па треба формирати -R1 и уписати у регистар S.
Формирање вредности -R1 је могуће једино коришћењем јединице ALU. Потребно је
најпре R1 пребацити у L2. Вредностима 1 и 0 сигнала S0 и S1, респективно, на излазима
56
јединице ALU се добија негативна вредност садржаја регистра L2 са улаза B јединице
ALU, која се најпре уписује у регистар А, а затим из регистра А пребацује у регистар S.
На сличан начин се формира и |R2| и уписује у регистар L2. Најпре се ради провере
знака садржај регистра R2 пребацује у регистар A. Поред тога садржај регистра R2 се
пребацује и у регистар L2. Уколико се ради о позитивној величини, садржај регистра R2
се већ налази у регистру L2. Уколико се ради о негативној величини, вредностима 1 и 0
сигнала S0 и S1, респективно, на излазима јединице ALU се добија негативна вредност
садржаја регистра L2 са улаза B јединице ALU, која се најпре уписује у регистар А, а
затим из регистра А пребацује у регистар L2. Треба уочити да у регистру А остаје
апсолутна вредност садржаја регистра R2.
Од садржаја регистра S у коме се налази апсолутна вредност садржаја регистра R1
одузима се садржај регистра L2 у коме се налази апсолутна вредност садржаја регистра
R2. Резултат одузимања се не уписује у регистар A, па у њему остаје претходно
формирана апсолутна вредност садржаја регистра R2, већ се само позајмица Cn из
јединице ALU уписује у једноразредни регистар C. Ако сигнал C има вредност 1, значи
да је вредност садржаја регистра S мања од вредности садржаја регистра L2 и да се у
регистру S већ налази апсолутна вредност садржаја регистра R1 као резултат извршења
тражене наредбе. Међутим, ако сигнал C има вредност 0, значи да је вредност садржаја
регистра S већа од вредности садржаја регистра L2, па се у регистар S уписује садржај
регистра A, у коме се налази апсолутна вредност садржаја регистара R2, као резултат
извршења тражене наредбе.
У кораку K0 се проверава вредност сигнала MIN2 и у зависности од тога да ли сигнал
MIN2 има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се вредношћу 1 сигнала rdR1 садржај регистра R1 преко бафера са три
стања пушта на линије магистрале M и по њима води на улазе регистара L2 и S и улаз A
јединице ALU, вредностима 1 сигнала S0 и S1 се на излаз јединице ALU пропушта
садржај регистра R1 са улаза A јединице ALU, вредношћу 1 сигнала ldA на сигнал такта
се садржај регистра R1 са излаза јединице ALU уписује у регистар A и вредностима 1
сигнала ldL2 и ldS на сигнал такта се садржај регистра R1 са линија магистрале M
уписује у регистре L2 и S. На исти сигнал такта се прелази на корак K2.
У кораку K2 се проверава вредност сигнала An-1 и у зависности од тога да ли сигнал
An-1 има вредност 0 или 1 на сигнал такта се прелази или на корак K5 или на корак K3.
У кораку K3 се вредношћу 1 сигнала S0 на излаз јединице ALU пропушта вредност
супротног знака од вредности садржаја регистра L2 са улаза B јединице ALU, која се
вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал такта се
прелази на корак K4.
У кораку K4 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K5.
У кораку K5 се вредношћу 1 сигнала rdR2 садржај регистра R2 преко бафера са три
стања пушта на линије магистрале M и по њима води на улаз регистра L2 и на улаз A
јединице ALU, вредностима 1 сигнала S0 и S1 се на излаз јединице ALU пропушта
садржај регистра R2 са улаза A јединице ALU, вредношћу 1 сигнала ldA на сигнал такта
се садржај регистра R2 са излаза јединице ALU уписује у регистар A и вредношћу 1
сигнала ldL2 на сигнал такта се садржај регистра R2 са линија магистрале M уписује у
регистар L2. На исти сигнал такта се прелази на корак K6.
У кораку K6 се проверава вредност сигнала An-1 и у зависности од тога да ли сигнал
An-1 има вредност 0 или 1 на сигнал такта прелази или на корак K9 или на корак K7.
57
У кораку K7 се вредношћу 1 сигнала S0 на излаз јединице ALU пропушта вредност
супротног знака од вредности садржаја регистра L2 са улаза B јединице ALU, која се
вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал такта се
прелази на корак K8.
У кораку K8 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L2 и вредношћу 1 сигнала ldL2 на сигнал такта уписује у регистар L2. На исти
сигнал такта се прелази на корак K9.
У кораку K9 се вредношћу 1 сигнала rdS садржај регистра S пропушта преко бафера
са три стања на линије магистрале M и преко њих води на улаз A јединице ALU, на
улазу B јединице ALU све време је присутан садржај регистра L2, вредношћу 1 сигнала
S1 се на излаз јединице ALU пропушта разлика садржаја регистара S и L2 са којом се
ништа не ради и на излаз Cn пропушта позајмица, која се вредношћу 1 сигнала ldC на
сигнал такта уписује у једноразредни регистар C. На исти сигнал такта прелази се на
корак K10.
У кораку K10 се проверава вредност сигнала C и у зависности од тога да ли сигнал C
има вредност 0 или 1 на сигнал такта се прелази или на корак K11 или на корак K0.
У кораку K11 се вредношћу 1 сигнала rdA садржај регистра A пропушта на линије
магистрале M и преко њих води, између осталог, на улаз регистра S и вредношћу 1
сигнала ldS на сигнал такта уписује у регистар S. На исти сигнал такта се прелази на
корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 9.в.
CLKCLK
D QK
0
Q
MIN2
CLK CLK
D Q
QRd
Sd
K1
CLKCLK CLK
D QK
4
QRd
CLK
D QK
2
QRd
CLK
D QK
3
QRd
An1
CLK CLK CLK
D QK
5
QRd
CLK
D QK
8
QRd
CLK CLK
D QK
9
QRd
CLK
D QK
6
QRd
CLK
D QK
7
QRd
An1
CLK CLK
D QK
10
QRd
CLK
D QK
11
QRd
C
CLKCLK CLK CLK
Слика 9.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
S0 = K1 + K3 + K5 + K7
S1 = K1 + K5 + K9
ldL2 = K1 + K5 + K8
ldS = K1 + K4 + K11
ldA = K1 +K3 + K5 + K7
ldC = K9
rdR1 = K1
rdR2 = K5
rdA = K4 + K8 + K11
rdS = K9
58
у којима K0, K1, K2, ..., K11 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 9.б). Сви остали
управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 9.б) и дата на слици
9.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) 2MIN 0 b 0 b 0 b 0 b
K1 (0001) MIN2 0 b 0 b 0 b 1 b
K1 (0001) ldL2, ldS, ldA, S0, S1, ldR1 K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) /
K5 (0111) 1nА 0 b 1 b b 0 b 0
K3 (0010) An-1 0 b 0 b b 0 b 1
K3 (0010) ldA, S0 K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) ldS, rdA K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) ldL2, ldA, S0, S1, rdR2 K6 (0101) 1 0 b b 0 b 1 b 0
K6 (0101) / K9 (1101)
1nА 1 b b 0 0 b b 0
K7 (0100) An-1 0 b b 0 0 b b 1
K7 (0100) ldA, S0 K8 (1100) 1 1 b b 0 0 b 0 b
K8 (1100) ldL2, rdA K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) ldC, S1, rdS K10 (1111) 1 b 0 b 0 1 b b 0
K10 (1111) / K0 (0000) C b 1 b 1 b 1 b 1
K11 (1110) C b 0 b 0 b 0 b 1
K11 (1110) ldS, rdA K0 (0000) 1 b 1 b 1 b 1 0 b
Слика 9.г.Таблица стања, прелаза/излаза и побудa флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111, K11=1110,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
S0 = K1 + K3 + K5 + K7
S1 = K1 + K5 + K9
ldL2 = K1 + K5 + K8
ldS = K1 + K4 + K11
ldA = K1 + K3 + K5 + K7
ldC = K9
rdR1 = K1
rdR2 = K5
rdA = K4 + K8 + K11
rdS = K9
59
у којима K0, K1, K2, ..., K11 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K6∙ 1nA + K7
K1 = K10∙C+ K11
J2 = K2∙ 1nA + K3
K2 = K10∙C+ K11
J3 = K1 + K9
K3 = K5 + K10∙C + K11
J4 = K0∙MIN2 + K4 + K8
K4 = K2∙An-1 + K6∙An-1 + K10
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
K11= Q1∙Q2∙ 3Q ∙ 4Q
60
1.10 МАКСИМУМ АПСОЛУТНИХ ВРЕДНОСТИ - MAX2
На слици 10.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R1 и R2 дужине n разреда налазе се бинарне вредности које треба
интерпретирати као целобројне величине са знаком. Микрооперације које се реализују у
јединици ALU су дате у табели 10.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MAX2 која израчунава
MAX(|R1|, |R2|)
максимум апсолутних вредности садржаја регистара R1 и R2, а резултат смешта у
регистар S. Фаза извршавања наредбе започиње уколико сигнал MAX2 има вредност 1.
Садржаји регистара R1 и R2 морају да остану неизмењени.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
LD ldS
n
SCLK
n
CLKR2CLK
n
CLKR1CLK
n
CLK
rdR2
n
rdS
n
LD ldR1 LD ldR2
n n
rdR1
n
nn
n
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
L2CLKCLKLD
CL
ldL2
clL2
n
n
F
An-1
CCLKCLK LD ldC
C
ALD ldA
CL clACLKCLK
nn n
rdA
M
Слика 10.a Структурна шема операционе јединице
S0 S1 F0 0 0 AB
0 1 A
1 0
1 1 AC0
Табела 10 Микрооперације у јединици ALU
Решење: a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 10.б.
Извршавање операције MAX2 се реализује на сличан начин као и извршавање
операције MIN2. Разлика је у кораку К0 у коме се проверава вредност сигнала MAX2
уместо сигнала MIN2. Разлика је и у кораку К10 у коме се за операцију MAX2 у
зависности од тога да ли сигнал C има вредност 0 или 1 прелази или на корак К0 или на
корак К11, док је у случају операције MIN2 било обрнуто, што је последица тога да се у
операцији MAX2 тражи максимум а у операцији MIN2 минимум.
61
K0
K1
MAX21
0
L2<=R1, S<=R1, A<=R1
K2
K3
A<=L2
An1
1
0
K4
S<=A
K5
L2<=R2, A<=R2
K6
An-1
0
K7
A<=L2
1
K10
K11
S<=A
C1
0
K8
L2<=A
K9
C<=C8, SL2
K0
K1
MAX21
0
ldL2, ldS, ldA, S0, S
1, rdR1
K2
K3
ldA, S0
An1
1
0
K4
ldS, rdA
K5
ldL2, ldA, S0, S
1, rdR2
K6
An-1
0
K7
ldA, S0
1
K10
K11
ldS, rdA
C1
0
K8
ldL2, rdA
K9
ldC, S1, rdS
Слика 10.б Дијаграм тока микрооперација и управљачких сигнала
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 10.в.
CLKCLK
D QK
0
Q
MAX2
CLK CLK
D Q
QRd
Sd
K1
CLKCLK CLK
D QK
4
QRd
CLK
D QK
2
QRd
CLK
D QK
3
QRd
An1
CLK CLK CLK
D QK
5
QRd
CLK
D QK
8
QRd
CLK CLK
D QK
9
QRd
CLK
D QK
6
QRd
CLK
D QK
7
QRd
An1
CLK CLK
D QK
10
QRd
CLK
D QK
11
QRd
C
CLKCLK CLK CLK
Слика 10.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
62
S0 = K1 + K3 + K5 + K7
S1 = K1 + K5 + K9
ldL2 = K1 + K5 + K8
ldS = K1 + K4 + K11
ldA = K1 +K3 + K5 + K7
ldC = K9
rdR1 = K1
rdR2 = K5
rdA = K4 + K8 + K11
rdS = K9
у којима K0, K1, K2, ..., K11 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 10.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и функција побуде флип-флопова је дата на слици
10.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) 2MAX 0 b 0 b 0 b 0 b
K1 (0001) MAX2 0 b 0 b 0 b 1 b
K1 (0001) ldL2, ldS, ldA, S0, S1, ldR1 K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) /
K5 (0111) 1nА 0 b 1 b b 0 b 0
K3 (0010) An-1 0 b 0 b b 0 b 1
K3 (0010) ldA, S0 K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) ldS, rdA K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) ldL2, ldA, S0, S1, rdR2 K6 (0101) 1 0 b b 0 b 1 b 0
K6 (0101) / K9 (1101)
1nА 1 b b 0 0 b b 0
K7 (0100) An-1 0 b b 0 0 b b 1
K7 (0100) ldA, S0 K8 (1100) 1 1 b b 0 0 b 0 b
K8 (1100) ldL2, rdA K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) ldC, S1, rdS K10 (1111) 1 b 0 b 0 1 b b 0
K10 (1111) / K0 (0000) C b 1 b 1 b 1 b 1
K11 (1110) C b 0 b 0 b 0 b 1
K11 (1110) ldS, rdA K0 (0000) 1 b 1 b 1 b 1 0 b
Слика 10.г.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111, K11=1110,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
S0 = K1 + K3 + K5 + K7
S1 = K1 + K5 + K9
63
ldL2 = K1 + K5 + K8
ldS = K1 + K4 + K11
ldA = K1 +K3 + K5 + K7
ldC = K9
rdR1 = K1
rdR2 = K5
rdA = K4 + K8 + K11
rdS = K9
у којима K0, K1, K2, ..., K11 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K6∙ 1nA + K7
K1 = K10∙C + K11
J2 = K2∙ 1nA + K3
K2 = K10∙C + K11
J3 = K1 + K9
K3 = K5 + K10∙C + K11
J4 = K0∙MIN2 + K4 + K8
K4 = K2∙An-1 + K6∙An-1 + K10
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
K11= Q1∙Q2∙ 3Q ∙ 4Q
64
1.11 МАКСИМУМ АПСОЛУТНИХ ВРЕДНОСТИ РАЗЛИКЕ И ЗБИРА
- MAX2DS
На слици 11.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R1 и R2 дужине n разреда налазе се бинарне вредности које треба
интерпретирати као целобројне величине са знаком. Микрооперације које се реализују у
јединици ALU су дате у табели 11.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MAX2DS која израчунава
MAX(|R1R2|, |R1+R2|)
максимум апсолутних вредности разлике и збира садржаја регистара R1 и R2, а
резултат смешта у регистар S. Фаза извршавања наредбе започиње уколико сигнал
MAX2DS има вредност 1. Садржаји регистара R1 и R2 морају да остану неизмењени.
Претпоставити да се у регистрима R1 и R2 налазе вредности које омогућавају да се
извршавање наредбе реализује коректно и да се добије вредност која може да се смести
у регистар S.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
LD ldS
n
SCLK
n
CLKR2CLK
n
CLKR1CLK
n
CLK
rdR2
n
rdS
n
LD ldR1 LD ldR2
n n
rdR1
n
nn
n
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
n
L2CLKCLKLD
CL
ldL2
clL2
n
n
F
M
An-1
CCLKCLK LD ldC
C
ALD ldA
CL clACLKCLK
nn n
rdA
Слика 11.a Структурна шема операционе јединице
S0 S1 F0 0 0 AB
0 1 A
1 0
1 1 AC0
Табела 11 Микрооперације у јединици ALU
Решење: a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 11.б.
Израчунавање израза се реализује тако што се у регистар S упише апсолутна
вредност разлике садржаја регистара R1 и R2, а у регистар L2 се упише апсолутна
65
вредност збира садржаја регистара R1 и R2. Садржаји регистара S и L2 се пореде.
Уколико је садржај регистра S већи од садржаја регистра L2 ништа се не ради, док у
случају када је садржај регистра L2 већи од садржаја регистра S, садржај регистра L2 се
уписује у регистар S.
K0
MAX2DS0
K4
L2<=A
An1
1
0
K5
A<=L2
K6
S<=A
K7
K1
An-1
0
K10
L2<=A
1
K11
A<=L2
K3
1
L2<=R2
K2
A<=R1L2
K9
L2<=R2
K8
A<=R1+L2
K12
L2<=A
K13
C<=Cn, SL2
K14
K15
S<=A
C1
0
K0
MAX2DS0
K4
ldL2, rdA
An1
1
0
K5
ldA, S0
K6
ldS, rdA
K7
K1
An-1
0
K10
ldL2, rdA
1
K11
ldA, S0
K3
1
ldL2, rdR2
K2
ldA, S1, rdR1
K9
ldL2, rdR2
K8
ldA, rdR1
K12
ldL2, rdA
K13
ldC, S1, rdS
K14
K15
ldS, rdA
C1
0
Слика 11.б Дијаграми тока микрооперација и управљачких сигнала
Упис апсолутне вредности разлике и збира садржаја регистара R1 и R2 у регистре S
и L2 се реализује на следећи начин. У регистар L2 се упише садржај регистра R2. Затим
се од садржаја регистра R1 одузме садржај регистра L2 и резултат упише у регистар A.
Уколико бит највеће тежине садржаја регистра A има вредност 0, разлика је позитиван
број, па се садржај регистра A упише у регистар S. Уколико бит највеће тежине
садржаја регистра A има вредност 1, разлика је негативан број, па треба прво
израчунати негативну вредност садржај регистра A и затим добијену вредност уписати
66
у регистар S. Стога се садржај регистра A прво упише у регистар L2, затим се израчуна
вредност –L2 и упише у регистар A и на крају се садржај регистра A упише у регистар
S. У регистру S се сада налази апсолутна вредност разлике садржаја регистара R1 и R2.
На сличан начин се, уз једину разлику да се уместо разлике садржаја регистара R1 и R2
рачуна њихов збир, израчуна и апсолутна вредност збира садржаја регистра R1 и R2 и
из регистра A упише у регистар L2. При томе у регистру A остаје апсолутна вредност
збира садржаја регистра R1 и R2
Затим се врши упоређивање садржаја регистара S и L2. У том циљу се од садржаја
регистра S одузме садржај регистра L2. Резултат одузимања се не уписује у регистар A
већ у њему остаје апсолутна вредност збира садржаја регистра R1 и R2, а позајмица Cn
из јединице ALU се уписује у регистар C.
У случају када сигнал позајмице C има вредност 0, садржај регистра S је већи од
садржаја регистра L2, па не треба ништа радити јер се у регистру S већ налази
апсолутна вредност разлике као већа вредност. У случају када сигнал позајмице C има
вредност 1, садржај регистра S је мањи од садржаја регистра L2, па би у регистар S
требало као већа вредност да се упише апсолутна вредност збира из регистра L2.
Уписивање апсолутне вредности збира из регистра L2 у регистар S је сложено, па се
уместо тога у регистар S уписује садржај регистра A у коме је остала апсолутна
вредност збира садржаја регистара R1 и R2.
У кораку K0 се проверава вредност сигнала MAX2DS и у зависности од тога да ли
сигнал MAX2DS има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта
прелази на корак K1.
У кораку K1 се вредношћу 1 сигнала rdR2 садржај регистра R2 пропушта преко
бафера са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L2 и вредношћу 1 сигнала ldL2 на сигнал такта уписује у регистар L2. На исти
сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала rdR1 садржај регистра R1 пропушта преко
бафера са три стања на линија магистрале M и преко њих води на улаз A јединице ALU,
на улазу B јединице ALU све време је присутан садржај регистра L2, вредношћу 1
сигнала S1 се на излазу јединице ALU формира разлика садржаја регистара R1 и L2,
која се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал
такта се прелази на корак K3.
У кораку K3 се проверава вредност сигнала An-1 и у зависности од тога да ли сигнал
An-1 има вредност 0 или 1 на сигнал такта се прелази или на корак K6 или на корак K4.
У кораку K4 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L2 и вредношћу 1 сигнала ldL2 на сигнал такта уписује у регистар L2. На исти
сигнал такта се прелази на корак K5.
У кораку K5 се вредношћу 1 сигнала S0 на излазу јединице ALU формира вредност
супротног знака од садржаја регистра L2, која се вредношћу 1 сигнала ldA на сигнал
такта уписује у регистар A. На исти сигнал такта се прелази на корак K6.
У кораку K6 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K7.
У кораку K7 се вредношћу 1 сигнала rdR2 садржај регистра R2 пропушта преко
бафера са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L2 и вредношћу 1 сигнала ldL2 на сигнал такта уписује у регистар L2. На исти
сигнал такта се прелази на корак K8.
67
У кораку K8 се вредношћу 1 сигнала rdR1 садржај регистра R1 пропушта преко
бафера са три стања на линија магистрале M и преко њих води на улаз A јединице ALU,
на улазу B јединице ALU све време је присутан садржај регистра L2, вредностима 0
сигнала S0 и S1 на излазу јединице ALU се формира збир садржаја регистара R1 и L2,
који се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал
такта се прелази на корак K9.
У кораку K9 се проверава вредност сигнала An-1 и у зависности од тога да ли сигнал
An-1 има вредност 0 или 1 на сигнал такта прелази или на корак K12 или на корак K10.
У кораку K10 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L2 и вредношћу сигнала ldL2 на сигнал такта уписује у регистар L2. На исти
сигнал такта се прелази на корак K11.
У кораку K11 вредношћу 1 сигнала S0 на излазу јединице ALU формира вредност
супротног знака од садржаја регистра L2, која се вредношћу 1 сигнала ldA на сигнал
такта уписује у регистар A. На исти сигнал такта се прелази на корак K12.
У кораку K12 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L2 и вредношћу 1 сигнала ldL2 на сигнал такта уписује у регистар L2. На исти
сигнал такта се прелази на корак K13.
У кораку K13 се вредношћу 1 сигнала rdS садржај регистра S пропушта преко бафера
са три стања на линије магистрале M и преко њих води на улаз A јединице ALU, на
улазу B јединице ALU све време је присутан садржај регистра L2, вредношћу 1 сигнала
S1 се на излазу јединице ALU формира разлика садржаја регистара S и L2 која се никуда
не уписује и сигнал позајмице Cn јединице ALU који се вредношћу 1 сигнала ldC на
сигнал такта уписује у једноразредни регистар C. На исти сигнал такта прелази се на
корак K14. У кораку K14 се проверава вредност сигнала C и у зависности од тога да ли сигнал C
има вредност 0 или 1 на сигнал такта прелази или на корак K0 или на корак K15.
У кораку K15 се вредношћу сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 11.в.
68
CLK CLK CLK
D QK
6
QRd
CLK CLK
D QK
5
QRd
CLK
D QK
3
QRd
CLK
D QK
4
QRd
An1
CLK CLKCLK
D Q
QRd
K1
CLK
D Q
QRd
K2
CLK
CLK
D Q
QRd
K7
CLK
D QK
12
QRd
CLK CLK
D QK
11
QRd
CLK
D QK
9
QRd
CLK
D QK
10
QRd
An1
CLK CLKCLK
D Q
QRd
K8
CLK
CLK
D QK
14
QRd
CLK
D QK
15
QRd
C
CLKCLK
D Q
QRd
K13
CLK
CLK CLK
CLK
CLKCLK
D QK
0
Q
MAX2DS
Sd
Слика 11.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
ldA = K2 + K5 + K8 + K11
ldL2 = K1 + K4 + K7 + K10+ K12
ldC = K13
ldS = K6 + K15
S0 = K5 + K11
S1 = K2 + K13
rdA = K4 + K6 + K10 + K12+ K15
rdS = K13
rdR1 = K2 + K8
rdR2 = K1 + K7
у којима K0, K1, K2, ..., K4 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 11.б). Сви
остали управљачки сигнали имају вредност 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 11.б) и дата на
слици 11.г.
69
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) DS2MAX 0 b 0 b 0 b 0 b
K1 (0001) MAX2DS 0 b 0 b 0 b 1 b
K1 (0001) ldL2, rdR2 K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldA, S1, rdR1 K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) / K4 (0110) An-1 0 b 1 b b 0 0 b
K6 (0101) 1nА 0 b 1 b b 1 1 b
K4 (0110) ldL2, rdA K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) ldA, S0 K6 (0101) 1 0 b b 0 b 1 b 0
K6 (0101) ldS, rdA K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) ldL2, rdR2 K8 (1100) 1 1 b b 0 0 b 0 b
K8 (1100) ldA, rdR1 K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) / K10 (1111) An-1 b 0 b 0 1 b b 0
K12 (1010) 1nА b 0 b 1 1 b b 1
K10 (1111) ldL2, rdA K11 (1110) 1 b 0 b 0 b 0 b 1
K11 (1110) ldA, S0 K12 (1010) 1 b 0 b 1 b 0 0 b
K12 (1010) ldL2, rdA K13 (1011) 1 b 0 0 b b 0 1 b
K13 (1011) ldC, S1, rdS K14 (1001) 1 b 0 0 b b 1 b 0
K14 (1001) / K0 (0000) C b 1 0 b 0 b b 1
K15 (1001) C b 0 0 b 0 b b 0
K15 (1001) ldS, rdA K0 (0000) 1 b 1 0 b 0 b b 1
Слика 11.г.Таблица стања, прелаза/излаза и функција побуде флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111, K11=1110, K12=1010, K13=1011, K14=1001, K15=1000,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
ldA = K2 + K5 + K8 + K11
ldL2 = K1 + K4 + K7 + K10+ K12
ldC = K13
ldS = K6 + K15
S0 = K5 + K11
S1 = K2 + K13
rdA = K4 + K6 + K10 + K12+ K15
rdS = K13
rdR1 = K2 + K8
rdR2 = K1 + K7
70
у којима K0, K1, K2, ..., K15 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7
K1 = K14∙C + K15
J2 = K3
K2 = K9∙ 1nA + K11
J3 = K1 + K9
K3 = K3∙ 1nA + K5 + K13
J4 = K0∙MAX2DS + K3∙ 1nA + K4 + K8 + K12
K4 = K2 + K6 + K9∙ 1nA + K10 + K14∙C + K15
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
K11= Q1∙Q2∙ Q3∙ 4Q
K12= Q1∙ 2Q ∙Q3∙ 4Q
K13= Q1∙ 2Q ∙Q3∙ Q4
K14= Q1∙ 2Q ∙ 3Q ∙Q4
K15= Q1∙ 2Q ∙ 3Q ∙ 4Q
Дискусија 1:
У тексту задатка постоји напомена да су у регистрима R1 и R2 вредности такве да се
добије коректан резултат. Разлог напомене је могућност да се у аритметици
целобројних величина са знаком догоди прекорачење и добије некоректан резултат.
71
1.12 БРОЈ ЈЕДИНИЦА - NOONES
На слици 12.a је приказана структурна шема дела операционе јединице процесора. У
регистру N дужине 16 бита налази се бинарна вредност. Микрооперације које се
реализују у јединици ALU су дате у табели 12.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе NOONES која израчунава број јединица бинарне вредности у регистру N, а
резултат смешта у регистар S. Фаза извршавања наредбе започиње уколико сигнал
NOONES има вредност 1. Садржај регистара N мора да остане неизмењен.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
SCLK
16
CLKNCLK
16
CLK
rdS
16
LD ldN LD ldS
16
rdN
16
16
16
16
16
L1CLKCLKLD
CL
ldL1
clL1
16
1616
16
16
S2
1
MP S0
0
16
ALU
S0
S1
S0
S1
C0 C
0
A
16 16
B
C16
C16
F
16
16A15
AIL 0
SL slA
16
16 16rdA
16 16rdALU
CLKCLK
LDldACLclA
16 16
SC
16
CLKCLK LD ldSC
SC016
1616
Слика 12.a Структурна шема операционе јединице
S0 S1 F0 0 0 A+C0
0 1 AC0
1 0 A+B
1 1 AB
Табела 12 Микрооперације у јединици ALU
Решење: a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 12.б.
На почетку се у регистре L1, SC и A уписују почетне вредности.
Регистар L1 служи за смештање броја јединица бинарне вредности која се налази у
регистру N. Стога се на почетку у регистар L1 уписује вредност 0, а касније садржај
регистра L1 увећава за 1 кад год се открије јединица у бинарној вредности која се
налази у регистру N. Како регистар L1 нема могућност инкрементирања, увећавање
садржаја регистра L1 за 1 се реализује довођењем садржаја регистра L1 кроз
72
мултиплексер MP на улаз А јединице ALU, реализацијом микрооперациојe A+C0 са
вредношћу 1 сигнала C0 јединице ALU и уписивањем добијене вредности у регистар
L1.
Бројање јединица се реализује у петљи у 16 итерација, јер је дужина регистра N у
коме се налази бинарна вредност 16 разреда. За бројање итерација се користи регистар
SC. Стога се на почетку у регистар SC уписује вредност 16, а касније при крају петље
садржај регистра SC умањује за 1 и проверава његов садржај. Уколико је садржај
различит од 0 остаје се у петљи, а у супротном случају излази из петље. Уписивање
вредности 16 у регистар SC се реализује следећим поступком. Најпре се у регистар A
уписује вредност 1. То се реализује довођењем садржаја регистра L1 кроз мултиплексер
MP на улаз А јединице ALU, реализацијом микрооперациојe A+C0 са вредношћу 1
сигнала C0 и уписивањем добијене вредности са излаза јединице ALU у регистар A.
Како је на почетку у регистру L1 вредност 0 и како сигнал C0 има вредност 1, вредност
1 се добија на излазу јединице ALU и уписује у регистар А. Затим се садржај регистра A
четири пута помера за једно место улево, чиме се реализује множење са 16, и добијена
вредност 16 уписује у регистар SC. Како регистар SC нема могућност декрементирања,
умањење садржаја регистра SC за 1 се реализује довођењем садржаја регистра SC кроз
мултиплексер MP на улаз А јединице ALU, реализацијом микрооперациојe A-C0 са
вредношћу 1 сигнала C0 јединице ALU и уписивањем добијене вредности у регистар
SC.
За реализован начин бројање јединица бинарне речи потребно је на почетку
пребацити садржај регистра N у регистар A. Пребацивање се реализује тако што се
садржај регистра N доведе на улаз B јединице ALU и садржај регистра L1 који је 0 на
улаз A јединице ALU. Над садржајима са улаза A и B јединице ALU реализује се
микрооперациојe A+B која, због тога што се у регистру L1 налази вредност 0, на излазу
даје садржај регистра N који се уписује у регистар A.
Број јединица бинарне вредности која се сада налази у регистру A се рачуна на
следећи начин. Проверава се најстарији разред A15 регистра A. Уколико је у разреду A15
вредност 1, садржај регистра L1 се инкрементира, а уколико је вредност 0, садржај
регистра L1 остаје непромењен. Садржај регистра SC се декрементира и проверава се
вредност сигнал SC0. Ако сигнал SC0 има вредност 0 то значи да је садржај регистра
SC различит од нуле, па се садржај регистра A помера за једно место у лево и понавља
претходно описани поступак провере најстаријег разреда A15 регистра A. Ако сигнал
SC0 има вредност 1, то значи да је испитан сваки бит бинарне вредности и да се у
регистру L1 налази укупан број јединица.
Садржај регистра L1, који представља резултат наредбе, треба напре пребацити у
регистар A, а затим садржај регистра A пребацити у регистар S. Пребацивање садржаја
регистра L1 у регистар А се реализује довођењем садржаја регистра L1 кроз
мултиплексер MP на улаз А јединице ALU, реализацијом микрооперациојe A+C0 са
вредношћу 0 сигнала C0 јединице ALU и уписивањем добијене вредности са излаза
јединие ALU у регистар А. Пребацивање садржаја регистра А у регистар S се реализује
по линијама магистрале M.
73
K0
NOONES0
K1 1
L1<=0
K2
A<=L1+1
A15...0
<=A14...0
.0
K3
A15...0
<=A14...0
.0
K4
A15...0
<=A14...0
.0
K5
A15...0
<=A14...0
.0
K6
K7
SC<=A
K15
S<=A
A15
0
K10
L1<=L1+1
1
K11
SC<=SC1
K9
K8
A<=N
SC01
K13
A15...0
<=A14...0
.0
0
K12
K14
A<=L1
K0
NOONES0
K1 1
clL1
K2
ldA, C0
slA
K3
slA
K4
slA
K5
slA
K6
K7
ldSC, rdA
K15
ldS, rdA
A15
0
K10
ldL1, rdALU, C0
1
K11
ldSC, rdALU, S2, S
1, C
0
K9
K8
ldA, S0, rdN
SC01
K13
slA
0
K12
K14
ldA
Слика 12.б Дијаграми тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала NOONES и у зависности од тога да ли
сигнал NOONES има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта
прелази на корак K1.
У кораку K1 се вредношћу 1 сигнала clL1 на сигнал такта уписује нула у регистар L1.
На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 0 сигнала S2 садржај регистра L1 пропушта кроз
мултиплексер MP на улаз A јединице ALU, вредностима 0 сигнала S0 и S1 и вредношћу
1 сигнала C0 се на излазу јединице ALU формира садржај регистра L1 увећан за 1, који
се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал такта
се прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала slA на сигнал такта садржај регистра A помера
за једно место улево. На исти сигнал такта се прелази на корак K4.
У кораку K4 се вредношћу 1 сигнала slA на сигнал такта садржај регистра A помера
за једно место улево. На исти сигнал такта се прелази на корак K5.
У кораку K5 се вредношћу 1 сигнала slA на сигнал такта садржај регистра A помера
за једно место улево. На исти сигнал такта се прелази на корак K6.
У кораку K6 се вредношћу 1 сигнала slA на сигнал такта садржај регистра A помера
за једно место улево. На исти сигнал такта се прелази на корак K7.
74
У кораку K7 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и са њих води, између осталог, на улаз регистра
SC и вредношћу 1 сигнала ldSC на сигнал такта уписује у регистар SC. На исти сигнал
такта се прелази на корак K8.
У кораку K8 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, вредношћу 0 сигнала S2 се садржај регистра L1 који је 0 пропушта кроз
мултиплексер MP на улаз A јединице ALU, вредношћу 1 сигнала S0 се на излазу
јединице ALU формира сума садржаја са улаза A и B јединице ALU, која је, због тога
што се у регистру L1 налази вредност 0, једнака садржају регистра N и која се
вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал такта се
прелази на корак K9.
У кораку K9 се проверава вредност сигнала A15 и у зависности од тога да ли сигнал
A15 има вредност 0 или 1 на сигнал такта прелази или на корак K11 или на корак K10.
У кораку K10 се вредношћу 0 сигнала S2 садржај регистра L1 пропушта кроз
мултиплексер MP на улаз A јединице ALU, вредностима 0 сигнала S0 и S1 и вредношћу
1 сигнала C0 се на излазу јединице ALU формира садржај регистра L1 увећан за 1,
вредношћу 1 сигнала rdALU се садржај са излаза ALU пропушта преко бафера са три
стања на линије магистрале M и са њих води, између осталог, на улаз регистра L1 и
вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. На исти сигнал такта
се прелази на корак K11.
У кораку K11 се вредношћу 1 сигнала S2 садржај регистра SC пропушта кроз
мултиплексер MP на улаз A јединице ALU, вредностима 1 сигнала S1 и C0 се на излазу
јединице ALU формира садржај регистра SC умањен за 1, вредношћу 1 сигнала rdALU
се садржај са излаза ALU пропушта преко бафера са три стања на линије магистрале M
и са њих води, између осталог, на улаз регистра SC и вредношћу 1 сигнала ldSC на
сигнал такта уписује у регистар L1. На исти сигнал такта се прелази на корак K12.
У кораку K12 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 на сигнал такта прелази или на корак K13 или на корак K14.
У кораку K13 се због вредношћу 1 сигнала slA на сигнал такта садржај регистра A
помера за једно место у лево. На исти сигнал такта се прелази на корак K8.
У кораку K14 се вредношћу 0 сигнала S2 садржај регистра L1 пропушта кроз
мултиплексер MP на улаз A јединице ALU, вредностима 0 сигнала S0 и S1 се на излаз
јединице ALU прослеђује садржај регистра L1, који се вредношћу 1 сигнала ldA на
сигнал такта уписује у регистар A. На исти сигнал такта се прелази на корак K15.
У кораку K15 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
а три стања на линије магистрале M пропушта и са њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S.
б) Структурна шема управљачке јединице реализоване помоћу D флип-флопова
приказана је на слици 12.в.
75
CLKCLK
D QK
0
Q
NOONES
CLK
Sd
CLK CLK
D QK
3
QRd
CLKCLK
D Q
QRd
K1
CLK
D Q
QRd
K2
CLK CLK
D QK
6
QRd
CLK CLK
D QK
5
QRd
CLK
D QK
4
QRd
CLK CLK
D QK
7
QRd
CLK CLK
CLK
CLK
D QK
8
QRd
CLK
D QK
9
QRd
CLK
D QK
10
QRd
A15
CLK CLK
D QK
11
QRd
CLK
D QK
12
QRd
CLK
D QK
13
QRd
SC0
CLK
CLK
D QK
15
QRd
CLK
D Q
QRd
K14
CLK
CLK CLK CLK CLK
Слика 12.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clL1 = K1
ldA = K2 + K8 + K14
slA = K3 + K4 + K5 + K6 + K13
ldL1 = K10
ldSC = K7 + K11
ldS = K15
rdN = K8
S2 = K11
S1 = K11
S0 = K8
C0 = K2 + K10 + K11
rdALU = K10 + K11
rdA = K7 + K15
у којима K0, K1, K2, ..., K15 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 12.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 13.б) и дата на
слици12.г.
76
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) NOONES 0 b 0 b 0 b 0 b
K1 (0001) NOONES 0 b 0 b 0 b 1 b
K1 (0001) clL1 K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldA, C0 K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) slA K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) slA K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) slA K6 (0101) 1 0 b b 0 b 1 b 0
K6 (0101) slA K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) ldSC, rdA K8 (1100) 1 1 b b 0 0 b 0 b
K8 (1100) ldA, S0, rdN K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) / K10 (1111) A15 b 0 b 0 1 b b 0
K11 (1110) 15А b 0 b 0 1 b b 1
K10 (1111) ldL1, rdALU, C0 K11 (1110) 1 b 0 b 0 b 0 b 1
K11 (1110) ldSC, rdALU, S2, S1, C0 K12 (1010) 1 b 0 b 1 b 0 0 b
K12 (1010) / K13 (1011) 0SC b 0 0 b b 0 1 b
K14 (1001) SC0 b 0 0 b b 1 1 b
K13 (1011) slA K9 (1101) 1 b 0 1 b b 1 b 0
K14 (1001) ldA K15 (1001) 1 b 0 0 b 0 b b 0
K15 (1001) ldS, rdA K0 (0000) 1 b 1 0 b 0 b b 1
Слика 12.г.Таблица стања, прелаза/излаза и побудa флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111, K11=1110, K12=1010, K13=1011, K14=1001, K15=1000,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clL1 = K1
ldA = K2 + K8 + K14
slA = K3 + K4 + K5 + K6 + K13
ldL1 = K10
ldSC = K7 + K11
ldS = K15
rdN = K8
S2 = K11
S1 = K11
S0 = K8
C0 = K2 + K10 + K11
rdALU = K10 + K11
77
rdA = K7 + K15
у којима K0, K1, K2, ..., K15 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7
K1 = K15
J2 = K3 + K13
K2 = K11
J3 = K1 + K9
K3 = K5 + K12∙SC0 + K13
J4 = K0∙NOONES + K4 + K8 + K12
K4 = K2 + K6 + K9∙ 15A + K10 + K15
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4,
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
K11= Q1∙Q2∙ Q3∙ 4Q .
K12= Q1∙ 2Q ∙Q3∙ 4Q
K13= Q1∙ 2Q ∙Q3∙ Q4
K14= Q1∙ 2Q ∙ 3Q ∙Q4
K15= Q1∙ 2Q ∙ 3Q ∙ 4Q
78
1.13 СЕЛЕКТИВНО САБИРАЊЕ - CSR
На слици 13.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R[0], R[1], R[2] и R[3] дужине n разреда налазе се целобројне вредности без
знака. У регистру V3..0 дужине 4 разреда налазе се битови 4-битне бинарне речи SUM3..0
придружени регистрима R[3], R[2], R[1] и R[0], респективно. У регистру V3..0 доступан
је само разред V3 у коме се налази бит SUM3. Микрооперације које се реализују у
јединици ALU су дате у табели 13.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе CSR која израчунава суму садржаја регистара R[3], R[2], R[1] и R[0], при чему
у суму улазе садржаји само оних регистара R[3], R[2], R[1] и R[0] чији придружени
битови бинарне речи SUM3..0 имају вредност 1. Добијени резултат се смешта у регистар
A. Фаза извршавања наредбе започиње уколико сигнал CSR има вредност 1. Садржаји
регистара R[0], R[1], R[2] и R[3] морају да остану неизмењени. Претпоставити да се у
регистрима R[0], R[1], R[2] и R[3] налазе вредности које омогућавају да се извршавање
наредбе реализује коректно и да се добије вредност која може да се смести у регистар
A.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
nn
R[1]CLK
n
CLKR[0]CLK
n
CLK
n
LD ldR0 LD ldR1
n
n
n
R[3]CLK
n
CLKR[2]CLK
n
CLK
n
LD ldR2 LD ldR3
n
n
n
2 2BR0
BRLD
DEC decBR
ldBRCLKCLK
CLclBR
2
DC E RD
n
n
L1CLKCLKLD
CL
ldL1
clL1
ALU
S0
S1
S0
S1
C0 C
0
A
n n
B
Cn
Cn
n
F
n n
ACLKCLK
n
LD ldA
CL clA
n
VIL
SHL shlV
4
CLKCLK
LDldV
1
V3
1
nM
3 2 1 0
rdR[0]rdR[1]rdR[2]rdR[3]
rdR[0] rdR[1] rdR[2] rdR[3]
0
Слика 13.a Структурна шема операционе јединице
S0 S1 F0 0 0 AB
0 1 AC0
1 0 A+C0
1 1 A+B
Табела 13 Микрооперације у јединици ALU
Решење: a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 13.б.
79
Израчунавање израза се реализује тако што се прво у регистар А упише вредност 0.
Потом се проверава садржај разреда V3 у коме се налази бит SUM3. Уколико је у разреду
V3 вредност 1 то значи да бит SUM3 има вредност 1, па се садржај регистра R[3] сабира
са садржајем регистра А и добијена сума смешта у регистар А. Уколико је у разреду V3
вредност 0 то значи да бит SUM3 има вредност 0, па се садржај регистра R[3] не сабира
са садржајем регистра А.
Затим би требало садржај регистра R[2] додати или не додати на садржај регистра А
у зависности од тога да ли бит SUM2 има вредност 1 или 0, респективно. Међутим, бит
SUM2 се налази у разреду 2 регистра V3..0 који није доступан. Стога је потребно
померити садржај регистра V3..0 за једно место улево. Као резултат у разредима V3, V2,
V1, и V0 налазе се битови SUM2, SUM1, SUM0 и 0, респективно. Провером доступног
разреда V3 се сада проверава бит SUM2, па се садржај регистра R[2] додаје или не
додаје на садржај регистра А у зависности од тога да ли разред V3 има вредност 1 или
0, респективно.
На исти начин се поступа и са регистрима R[1] и R[0]. Поновним померањем
садржаја регистра V3..0 за једно место улево се сада у разредима V3, V2, V1, и V0 налазе
битови SUM1, SUM0, 0 и 0, респективно. Провером доступног разреда V3 се сада
проверава бит SUM1, па се садржај регистра R[1] додаје или не додаје на садржај
регистра А у зависности од тога да ли разред V3 има вредност 1 или 0, респективно.
Још једним померањем садржаја регистра V3..0 за једно место улево се сада у разредима
V3, V2, V1, и V0 налазе се битови SUM0, 0, 0 и 0, респективно. Провером доступног
разреда V3 се сада проверава бит SUM0, па се садржај регистра R[0] додаје или не
додаје на садржај регистра А у зависности од тога да ли разред V3 има вредност 1 или
0, респективно. Тиме се добија коначна сума.
Током израчунавања овог израза постоји потреба да се садржаји регистара R[3], R[2],
R[1] и R[0] редом преко својих бафера са три стања пуштају на линије магистрале M и
преко њих уписују у регистар L1. С обзиром да је на улазу B јединице ALU све време
присутан садржај регистра А, уписивањем садржаја регистара R[3], R[2], R[1] и R[0] у
регистар L1 који је све време присутан на улазу А јединице ALU и реализацијом
саабирања садржаја са улаза А и садржаја са улаза B јединице ALU, добија се тражена
вредност суме.
Усвојено је решење да се пуштање садржаја регистара R[1], R[2] и R[3] и R[3] на
линије магистрале M реализује у петљи кроз коју се пролази четири пута. При првом
проласку кроз петљу се вредношћу 1 сигнала rdR[3] пушта R[3] и тако редом до
четвртог проласка у коме се вредношћу 1 сигнала rdR[0] пушта регистар R[0].
Генерисање вредности 1 сигнала rdR[3], rdR[2], rdR[1] и rdR[0] се реализује помоћу
декодера DC на основу садржаја декрементирајућег бројача BR по модулу четири онда
када сигнал RD има вредност 1. У бројач BR се на почетку упише вредност три, па када
сигнал RD има вредност 1 и сигнал rdR[3] има вредност 1. Садржај бројач BR се на
крају првог проласка кроз петљу декрементира, па када при другом проласку кроз
петљу сигнал RD има вредност 1 и сигнал rdR[2] има вредност 1. На сличана начин се
формирају и вредности 1 сигнала rdR[1] и rdR[0] при трећем и четвртом проласку кроз
петљу, респективно.
Садржај бројача BR се користи и за формирање сигнала логичког услова BR0 који
вредностима 0 и 1 одређује да треба остати у петљи или изаћи из петље, респективно. У
бројач BR се на почетку пре уласка у петљу упише вредност три. При крају сваког
проласка кроз петљу проверава се да ли је садржај бројача BR декрементирањем са
вредности 3 дошао на вредност 0. Уколико јесте, излази се из петље. Уколико није,
садржај бројача BR се декрементира, па се враћа на почетак петље.
80
K0
CSR0
K1 1
A<=0, BR<=3
V3
0
K3
L1<=R[BR]
1
K4
A<=A+L1
K2
BR01
K6
BR<=BR-1, V3...0
<=V2...0
.0
0
K5
K0
CSR0
K1 1
clA, ldBR
V3
0
K3
ldL1, RD
1
K4
ldA, S0, S
1
K2
BR01
K6
decBR, shlV
0
K5
Слика 13.б Дијаграм тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала CSR и у зависности од тога да ли сигнал
CSR има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A и
вредношћу 1 сигнала ldBR на сигнал такта уписује бинарна вредност 11 у бројач BR. На
исти сигнал такта се прелази на корак K2.
У кораку K2 се и проверава вредност сигнала V3 и у зависности од тога да ли сигнал
V3 има вредност 0 или 1 на сигнал такта се прелази или на корак K5 или на корак K3.
У кораку K3 се вредношћу 1 сигнала RD формира вредност 1 сигнала rdR[BR] којом
се садржај регистра R[BR] пропушта на линије магистрале M и преко њих води на улаз
регистра L1 и вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. На исти
сигнал такта се прелази на корак K4.
У кораку K4 на улазу A јединице ALU је присутан садржај регистра L1, а на улазу B
јединице ALU присутан је садржај регистра A. Вредностима 1 сигнала S0 и S1 се на
излазу јединице ALU формира сума садржаја регистара L1 и A, која се вредношћу 1
сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал такта се прелази на
корак K5.
У кораку K5 се проверава вредност сигнала BR0 и у зависности од тога да ли сигнал
BR0 има вредност 0 или 1 на сигнал такта прелази или на корак K6 или на корак K0.
У кораку K6 се вредношћу 1 сигнала decBR садржај бројача BR декрементира и
вредношћу 1 сигнала shlV садржај регистра V помера за једно место улево. На исти
сигнал такта се прелази на корак K2.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 13.в.
81
CLKCLK
D QK
0
Q
CSR
CLK
Sd
CLK
D QK
1
QRd
CLK CLK
D QK
2
QRd
V3
CLK CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLKCLK CLK
D QK
5
QRd
CLK
D QK
6
QRd
BR0
CLK
Слика 13.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
ldA = K4 ldL1 = K3
ldBR = K1
S0 = K4
S1 = K4
decBR = K6
shlV = K6
RD = K3
у којима K0, K1, K2, ..., K6 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 13.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 13.б) и дата на
слици 13.г.
Q Z Q(t+1) CSR J1 K1 J2 K2 J3 K3
K0 (000) / K0 (000) CSR 0 b 0 b 0 b
K1 (001) CSR 0 b 0 b 1 b
K1 (001) clA, ldBR K2 (011) 1 0 b 1 b b 0
K2 (011) / K3 (010) V3 0 b b 0 b 1
K5 (111) 3V 1 b b 0 b 0
K3 (010) ldL1, RD K4 (110) 1 1 b b 0 0 b
K4 (110) ldA, S0, S1 K5 (111) 1 b 0 b 0 1 b
K5 (111) / K0 (000) BR0 b 1 b 1 b 1
K6 (101) 0BR b 0 b 1 b 0
K6 (101) decBR, shlV K2 (011) 1 b 1 1 b b 0
Слика 13.г.Таблица стања, прелаза/излаза и побуда флип-флопова
82
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=000, K1=001, K2=011, K3=010, K4=110, K5=111, K6=101,
а за реализацију стања секвенцијална прекидачка мрежа користе се флип-флопови Q1,
Q2 и Q3 типа JK
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
ldA = K4 ldL1 = K3
ldBR = K1
S0 = K4
S1 = K4
decBR = K6
shlV = K6
RD = K3
у којима K0, K1,..., K6, представљају сигнале декодованих стања секвенцијалне
прекидачке мреже. Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K2∙ 3V + K3
K1 = K5∙BR0 + K6
J2 = K1 + K6
K2 = K5
J3 = K0∙CSR + K4
K3 = K2∙V3 + K5∙BR0
С обзирома на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q
K1= 1Q ∙ 2Q ∙Q3
K2= 1Q ∙Q2∙Q3
K3= 1Q ∙Q2∙ 3Q
K4= Q1∙Q2∙ 3Q
K5= Q1∙Q2∙Q3
K6= Q1∙ 2Q ∙Q3
Дискусија 1:
Дијаграми тока микрооперација и управљачких сигнала би могли да се реализују и
на начин приказан на слици 13.д. У кораку K5 се на исти сигнал такта на основу
вредности сигнала BR0 прелази у корак K2 или K0 и врши декрементирање садржаја
бројача BR. Ово је могуће урадити јер у тренутку када се проверава вредност сигнала
BR0 још увек садржај бројача није декрементиран. Стога се, што је коректно, прелазак
врши на основу старе, а не нове вредности бројача BR.
83
K0
CSR0
K1 1
A<=0, BR<=3
V3
0
K3
L1<=R[BR]
1
K4
A<=A+L1
K2
BR<=BR-1, V3...0
<=V2...0
.0
BR01
0
K5
K0
CSR0
K1 1
clA, ldBR
V3
0
K3
ldL1, RD
1
K4
ldA, S0, S
1
K2
decBR, shlV
BR01
0
K5
Слика 13.д Дијаграми тока микрооперација и управљачких сигнала
Структура шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима према дијаграму тока управњачких сигнала са слике 13.д је дата на
слици 13.ђ.
CLKCLK
D QK
0
Q
CSR
CLK
Sd
CLK
D QK
1
QRd
CLK CLK
D QK
2
QRd
V3
CLK CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLKCLK CLK
D QK
5
QRd
BR0
Слика 13.ђ Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
ldA = K4 ldL1 = K3
ldBR = K1
S0 = K4
S1 = K4
decBR = K5
shlV = K5
RD = K3
у којима K0, K1, K2, ..., K5 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 13.д). Сви
остали управљачки сигнали имају вредност 0.
84
Дискусија 2:
Дијаграм тока микрооперација и управљачких сигнала би могли да се реализују и на
начин приказан на слици 13.е. У кораку K2 се проверава вредност сигнала V3. Уколико
сигнал V3 има вредност 0 прелази се на корак K3. Уколико сигнал V3 има вредност 1
проверава се и вредност сигнала BR0 и прелази на корак K0 или K6 у зависности од тога
да ли сигнал BR0 има вредност 1 или 0. Вредност сигнала BR0 се проверава и из корака
K4 и прелази на корак K0 или K6 у зависности од тога да ли сигнал BR0 има вредност 0
или 1.
K0
CSR0
K1 1
A<=0, BR<=3
V3
0
K3
L1<=R[BR]
1
K4
A<=A+L1
K2
K0
CSR0
K1 1
clA, ldBR
V3
0
K3
ldL1, RD
1
K4
ldA, S0, S
1
K2
BR01
BR<=BR-1, V3...0
<=V2...0
.0
0K5
BR01
decBR, shlV
0K5
Слика 13.е Дијаграми тока микрооперација и управљачких сигнала
Структура шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима према дијаграму тока управљачких сигнала са слике 13.е је дата на
слици 13.ж.
CLKCLK
D QK
0
Q
CSR
CLK
Sd
CLK
D QK
1
QRd
CLK CLK
D QK
2
QRd
V3
CLK CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLK
BR0
CLK
D QK
5
QRd
CLK
Слика 13.ж Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу на исти начин као и у случају
решења управљачке јединице са слике 13.ђ.
85
1.14 AND
На слици 14.a је приказана структурна шема дела операционе јединице процесора. У
регистрима R0 и R1 дужине 16 разреда налазе се бинарне вредности. Микрооперације
које се реализују у јединици ALU су дате у табели 14.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе AND која израчунава
R1 and R2
логички производ садржаја регистара R1 и R2 и резултат смешта у регистар R1. Фаза
извршавања наредбе започиње уколико сигнал AND има вредност 1. Садржај регистра
R2 мора да остане неизмењен.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
R2CLK
16
CLKR1CLK
16
CLK
M
16
LD ldR1 LD ldR2
16
rdR1
16
16
16
16
16
L1CLKCLKLD
CL
ldL1
clL1
16
1616
16
16
1616
ALU
S0
S1
S0
S1
C0 C
0
A
16 16
B
C16
C16
F
16
16 A0
ACLK CLK
CL clA
16
16 16rdA
16 16rdALU
IR
SHRshrALD ldA
0 1
S2
0
MPS0
1
5 5
SC
5
CLKCLK
CL clSC
SC0
LDldSC
DEC decSC
10000
rdR2
F0
Слика 14.a Структурна шема операционе јединице
S0 S1 F0 0 0 A+C0
0 1 B+C0
1 0 A0.A15...1
1 1 AB
Табела 14 Микрооперације у јединици ALU
Решење: а) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 14.б
Израчунавање логичког производа садржаја регистара R1 и R2 се реализује тако што
се најпре у регистар SC упише вредност шеснаест, а садржаји регистара R1 и R2 се
упишу у регистре A и L1. Докле год је садржај регистра SC различит од нуле понавља
се провера најмлађих разреда регистара A и L1. У случају када је бар један од њих
једнак 0 садржај регистра A се помера за једно место у десно, а на бит највеће тежине се
уписује 0, садржај регистра L1 се ротира за једно место у десно, а садржај регистра SC
се декрементира. У случају када су оба бита једнака 1 садржај регистра A се помера за
86
једно место у десно, а на бит највеће тежине се уписује 1, садржај регистра L1 се
ротира за једно место у десно, а садржај регистра SC се декрементира. Када садржај
регистра SC постане нула у регистру A се налази логички производ садржаја регистара
R1 и R2. На крају се садржај регистра A уписује у регистар R1.
K0
AND0
A0
0
K3
K1 1
SC<=16, A<=R1
K2
A15...0
<=1.A15...1
,
L115...0
<=L10.L1
15...1,
SC<=SC1
K5
1
1
A15...0
<=0.A15...1
,
L115...0
<=L10.L1
15...1,
SC<=SC1
K6
K4 1
F0
0
K7
SC00
1
L1<=R2
1
R1<=A
K8
K0
AND0
A0
0
K3
K1 1
ldSC, ldA, S1, rdR1
K2
shrA, S2,
ldL1, rdALU, S0,
decSC
K5
1
1
shrA,
ldL1, rdALU, S0,
decSC
K6
K4 1
F0
0
K7
SC00
1
ldL1, rdR2
1
ldR1, rdA
K8
Слика 14.б Дијаграми тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала AND и у зависности од тога да ли сигнал
AND има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 вредношћу 1 сигнала rdR1 се садржај регистра R1 пропушта преко
бафера са три стања на линије магистрале M и преко њих води, између осталог, на улаз
B јединице ALU, вредношћу 1 сигнала S1 се на излаз јединице ALU пропушта садржај
регистра R1 са улаза B јединице ALU, који се вредношћу 1 сигнала ldA на сигнал такта
се уписује у регистар A. У кораку K1 се вредношћу 1 сигнала ldSC на сигнал такта
уписује бинарно 10000 у регистар SC. На исти сигнал такта прелази се на корак K2.
У кораку K2 се вредношћу 1 сигнала rdR2 садржај регистра R2 пропушта преко
бафера са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L1 и вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. На исти
сигнал такта се прелази на корак K3.
У кораку K3 се проверава вредност сигнала A0 и у зависности од тога да ли сигнал A0
има вредност 0 или 1 на сигнал такта прелази или на корак K6 или на корак K4.
У кораку K4 се проверава вредност сигнала F0 на излазу јединице ALU који, због тога
што сигнали S0, S1 и C0 имају вредност 0 и тиме кроз ALU пропуштају садржај са улаза
А, представља најмлађи разред садржаја регистра L1 и у зависности од тога да ли
сигнал F0 има вредност 0 или 1 на сигнал такта прелази или на корак K6 или на корак
K5.
87
У корак K5 се једино долази уколико сигнали A0 и F0 имају вредност 1. Вредношћу 1
сигнала shrA на сигнал такта садржај регистра A се помера за једно место удесно, при
чему се, вредношћу 1 сигнала S2 кроз мултиплексер MP пропушта и преко улаза IR у
разред А15 уписује вредност 1. Вредношћу 1 сигнала S0 се на излаз јединице ALU
пропушта садржај регистра L1 са улаза А јединице ALU ротиран за једно место у десно,
који се даље вредношћу 1 сигнала rdALU преко бафера са три стања пропушта на
линије магистрале M и преко њих води, између осталог, на улаз регистра L1 и
вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. Вредношћу 1 сигнала
decSC на сигнал такта садржај регистра SC се декрементира. На исти сигнал такта
прелази се на корак K7.
У корак K6 се долази уколико један или оба сигнал A0 и F0 имају вредност 0.
Вредношћу 1 сигнала shrA на сигнал такта садржај регистра A се помера за једно место
удесно, при чему се, вредношћу 0 сигнала S2 кроз мултиплексер MP пропушта и преко
улаза IR у разред А15 уписује вредност 0. Вредношћу 1 сигнала S0 се на излаз јединице
ALU пропушта садржај регистра L1 са улаза А јединице ALU ротиран за једно место
удесно, који се даље вредношћу 1 сигнала rdALU преко бафера са три стања пропушта
на линије магистрале M и преко њих води, између осталог, на улаз регистра L1 и
вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. Вредношћу 1 сигнала
decSC на сигнал такта садржај регистра SC се декрементира. На исти сигнал такта
прелази се на корак K7.
У кораку K7 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 на сигнал такта прелази или на корак K3 или на корак K8.
У кораку K8 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и са њих води, између осталог, на улаз регистра
R1 и вредношћу 1 сигнала ldR1 на сигнал такта уписује у регистар R1. На исти сигнал
такта се прелази на корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 14.в.
CLKCLK
D QK
0
Q
AND
CLK
Sd
CLK
D QK
1
QRd
CLK
D QK
6
QRd
CLK
D QK
2
QRd
CLK
D QK
5
QRd
F0
CLKCLK
D QK
4
Q
CLK CLK
D QK
3
QRd
A0
CLK
Rd
CLK CLK
D QK
7
QRd
SC0
CLK
K8
CLK
D Q
QRd
CLK
CLK
Слика 14.в Структурна шема управљачке јединице
88
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
ldA = K1
shrA = K5 + K6
ldL1 = K2 + K5 + K6
ldSC = K1
ldR1 = K8
S0 = K5 + K6
S1 = K1
S2 = K5
rdALU = K5 + K6
rdA = K8
rdR1 = K1
rdR2 = K2
decSC = K5 + K6
у којима K0, K1, K2, ..., K8 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 14.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 14.б) и дата на
слици14.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) AND 0 b 0 b 0 b 0 b
K1 (0001) AND 0 b 0 b 0 b 1 b
K1 (0001) ldSC, ldA, S1, rdR1 K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldL1, rdR2 K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) / K4 (0110) A0 0 b 1 b b 0 0 b
K6 (0101) 0А 0 b 1 b b 1 1 b
K4 (0110) / K5 (0111) F0 0 b b 0 b 0 1 b
K6 (0101) 0F 0 b b 0 b 1 1 b
K5 (0111) shrA, S2, ldL1, rdALU, S0, decSC K7 (0100) 1 0 b b 0 b 1 b 1
K6 (0101) shrA, ldL1, rdALU, S0, decSC, K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) / K3 (0010) 0SC 0 b b 1 1 b 0 b
K8 (1100) SC0 1 b b 0 0 b 0 b
K8 (1100) ldR1, rdA K0 (0000) 1 b 1 b 1 0 b 0 b
Слика 14.г.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
89
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
ldA = K1
shrA = K5 + K6
ldL1 = K2 + K5 + K6
ldSC = K1
ldR1 = K8
S0 = K5 + K6
S1 = K1
S2 = K5
rdALU = K5 + K6
rdA = K8
rdR1 = K1
rdR2 = K2
decSC = K5 + K6
у којима K0, K1, K2, ..., K8 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже придружених операционим блоковима у дијаграму тока
управљачких сигнала (слика 14.б). Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7∙SC0
K1 = K8
J2 = K3
K2 = K7∙ 0SC + K8
J3 = K1 + K7∙ 0SC
K3 = K3∙ 0A + K4∙ 0F + K5
J4 = K0∙AND + K3∙ 0A + K4∙ 0F
K4 = K2 + K5 + K6
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
Дискусија 1:
Корак K4 није неопходан, па се добијају дијаграми тока микрооперација и
управљачких сигнала као на слици 14.д. Сада се из корака K3 у зависности од вредности
90
сигнала A0 и F0 прелази на корак K4 или K5, а из њих на корак K6. Из корака K6 се
уколико сигнал SC0 има вредност 1 прелази на корак K7, а уколико сигнал SC0 има
вредност 0 се у зависности од вредности сигнала A0 и F0 прелази на корак K4 или K5.
K0
AND0
K3
K1 1
SC<=16, A<=R1
K2 1
L1<=R2
ldSC, ldA, S1, rdR1
K0
AND0
K3
K1 1
K2 1
ldL1, rdR2
A0
0
1
A15...0
<=1.A15...1
,
L115...0
<=L10.L1
15...1,
SC<=SC1
K5
1
1
A15...0
<=0.A15...1
,
L115...0
<=L10.L1
15...1,
SC<=SC1
K6
K4
F0
0
K7
SC00
1
R1<=A
A0
0
1
shrA, S2,
ldL1, rdALU, S0,
decSC
K5
1
1
shrA,
ldL1, rdALU, S0,
decSC
K6
K4
F0
0
K7
SC00
1
ldR1, rdA
Слика 14.д Дијаграми тока микрооперација и управљачких сигнала
Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици слици 14.ђ.
CLKCLK
D QK
0
Q
AND
CLK
Sd
CLK
D QK
1
QRd
CLK
D QK
2
QRd
CLK
CLK
CLK CLK
D QK
5
QRd
CLK
D QK
4
QRd
F0
CLK CLK CLK
D QK
6
QRd
SC0
CLK
A0
CLK
D QK
3
QRd
K7
CLK
D Q
QRd
Слика 14.ђ Структурна шема управљачке јединице
91
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
ldA = K1
shrA = K4 + K5
ldL1 = K2 + K4 + K5
ldSC = K1
ldR1 = K7
S0 = K4 + K5
S1 = K1
S2 = K4
rdALU = K4 + K5
rdA = K7
rdR1 = K1
rdR2 = K2
decSC = K4 + K5
у којима K0, K1, K2, ..., K7 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 13.д). Сви
остали управљачки сигнали су 0.
92
1.15 НЕГАЦИЈА - NEG
На слици 15.a је приказана структурна шема дела операционе јединице процесора. У
регистру N дужине 16 разреда налази се целобројна вредности са знаком, представљена
у другом комплементу. Микрооперације које се реализују у јединици ALU су дате у
табели 15.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе NEG која израчунава
N
негацију целобројне вредности са знаком у регистру N и резултат смешта у регистар S.
Фаза извршавања наредбе започиње уколико сигнал NEG има вредност 1. Садржај
регистра N мора да остане неизмењен.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
SCLK
16
CLKNCLK
16
CLK
rdS
16
LD ldN LD ldS
16
rdN
16
16
16
1616
16 16
SC
16
CLKCLK
IL 0
SC0
LDldSC
SHL shlSC
16
L1CLKCLKLD
CL
ldL1
clL1
16
16
S2
1
MPS0
0
16
ALU
S0
S1
S0
S1
C0 C
0
A B
C16
C16
F
16
16 A0
ACLK CLK
CL clA
16
16 16rdA
16 16rdALU
IR
SHRshrALD ldA
A0
S3
0
MPS0
1
A0
16
16
16
16
16
16
16
16
M
Слика 15.a Структурна шема операционе јединице
S0 S1 F0 0 0 A+B
0 1 AC0
1 0 A+C0
1 1 B+C0
Табела 15 Микрооперације у јединици ALU
Решење 1:
a) Дијаграми тока микрооперација и управљачких сигнала дати су на слици 15.б.
Израчунавање негације N другог комплемента целобројне вредности са знаком се
реализује тако што се најпре формира њен први комплемент и затим дода 1. У том циљу
се најпре садржај регистра N пребацује у регистар A. Затим се садржај регистра A
помера удесно и при томе по линији IR у најстарији разред регистра A убацује
93
инвертована вредност разреда A0. После 16 померања удесно у регистру A се налази
комплементарни садржај оригиналног садржаја регистра A. На крају се садржај
регистра A пропушта кроз ALU уз додавање 1 и добијена вредност уписује у регистар
A. Померање садржаја регистра A удесно се реализује све време док сигнал SC0 има
вредност 0. Сигнал SC0 има вредност 0 уколико се барем у једном од 16 разреда
регистра SC налази јединица. У том циљу на почетку се јединица уписује у најмлађи
разред регистра SC и помера улево сваки пут када се садржај регистра A помера удесно.
После 16 померања улево јединица излази из регистра SC и у регистру SC се појављују
све нуле. Тада сигнал SC0 постаје 1. Јединица се уписује у регистар SC тако што се
најпре 0 уписује у регистар L1, па се садржај регистра L1 пропушта кроз ALU уз
додавање 1 и добијена вредност уписује у регистар SC.
K0
NEG0
A<=N
K3
K4
SC15...0
<=SC14...0
.0,
A15...0
<=A0.A
15...1
1
K5
SC00
K1 1
L1<=0
K2
SC<=1
K6 1
A<=A+1
K7
S<=A
K0
NEG0
ldA, S0, S
1, rdN
K3
K4
shlSC,
shrA
1
K5
SC00
K1 1
clL1
K2
ldSC, rdALU, S0, C
0
K6 1
ldA, S0, C
0, rdA
K7
ldS, rdA
Слика 15.б Дијаграми тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала NEG и у зависности од тога да ли сигнал
NEG има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се вредношћу 1 сигнала clL1 на сигнал такта у регистар L1 уписује
вредност 0. На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредностима 1 сигнала S0 и C0 на излазу јединице ALU појављује
садржај регистра L1 увећан за један, па ће се, пошто је у претходном кораку у регистар
L1 уписана вредност 0, на излазу јединице ALU формирати вредност 1, која се,
вредношћу 1 сигнала rdALU пропушта преко бафера са три стања на линије магистрале
M и вредношћу 1 сигнала ldSC на сигнал такта са линија магистрале M уписује у
регистар SC. На исти сигнал такта се прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и са њих вредношћу 0 сигнала S2 пропушта кроз
мултиплексер MP на улаз B јединице ALU, вредностима 1 сигнала S0 и S1 се даље
пропушта на излаз јединице ALU и вредношћу 1 сигнала ldA на сигнал такта уписује у
регистар A. На исти сигнал такта се прелази на корак K4.
У кораку K4 се вредношћу 1 сигнала сhlSC на сигнал такта садржај регистра SC
помера за једно место улево. Вредношћу 1 сигнала shrA на исти сигнал такта се и
садржај регистра A помера за једно место удесно, при чему се вредношћу 0 сигнала S3
94
на излазима мултиплексера MP појављује и по линији IR регистра А у разред А15
уписује комплемент А0. На исти сигнал такта се прелази на корак K5.
У кораку K5 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 на сигнал такта прелази или на корак K4 или на корак K6.
У кораку K6 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и са њих вредношћу 0 сигнала S2 пропушта кроз
мултиплексер MP на улаз B јединице ALU, вредностима 1 сигнала S0 и C0 на излазу
јединице ALU се формира садржај регистра A увећан за 1, који се вредношћу 1 сигнала
ldA на сигнал такта уписује у регистар A. На исти сигнал такта се прелази на корак K7.
У кораку K7 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и са њих вредношћу 1 сигнала ldS на сигнал такта
уписује у регистар S. На исти сигнал такта се прелази на корак K0.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 15.в.
CLKCLK
D QK
0
Q
NEG
CLK
Sd
CLK
D QK
1
QRd
CLK
D QK
2
QRd
CLK CLK
D QK
3
QRd
CLK
CLK CLKCLK
D QK
5
QRd
SC0
CLKCLK
D QK
4
QRd
CLK
D QK
6
QRd
CLK
D QK
7
QRd
CLK
Слика 15.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clL1 = K1
ldA = K3 + K6
ldSC = K2
ldS = K7
S0 = K2 + K3 + K6
S1 = K3
C0 = K2 + K6
rdA = K6 + K7
rdALU = K2 rdN = K3
shlSC = K4
shrA = K4
у којима K0, K1, K2, ..., K7 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 15.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 15.б) и дата на
слици 15.г.
95
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3
K0 (000) / K0 (000) NEG 0 b 0 b 0 b
K1 (001) NEG 0 b 0 b 1 b
K1 (001) clL1 K2 (011) 1 0 b 1 b b 0
K2 (011) ldSC, rdALU, S0, C0 K3 (010) 1 0 b b 0 b 1
K3 (010) ldA, S0, S1, rdN K4 (110) 1 1 b b 0 0 b
K4 (110) shlSC, shrA K5 (111) 1 b 0 b 0 1 b
K5 (111) / K4 (110) 0SC b 0 b 0 b 1
K6 (101) SC0 b 0 b 1 b 0
K6 (101) rdA, S0, C0, ldA K7 (100) 1 b 0 0 b b 1
K7 (100) ldS, rdA K0 (000) 1 b 1 0 b 0 b
Слика 15.г.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=000, K1=001, K2=011, K3=010, K4=110, K5=111, K6=101, K7=100,
а за реализацију стања секвенцијалнe прекидачкe мрежe користе се флип-флопови Q1,
Q2 и Q3 типа JK
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clL1 = K1
ldA = K3 + K6
ldSC = K2
ldS = K7
S0 = K2 + K3 + K6
S1 = K3
C0 = K2 + K6
rdA = K6 + K7
rdALU = K2 rdN = K3
shlSC = K4
shrA = K4
у којима K0, K1, K2, ..., K7 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже придружених операционим блоковима у дијаграму тока
управљачких сигнала (слика 15.б). Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флопове Q1, Q2 и Q3 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K3
K1 = K7
J2 = K1
K2 = K5∙SC0
J3 = K0∙NEG + K4
K3 = K2 + K5∙ 0SC + K6
96
С обзирома на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q
K1= 1Q ∙ 2Q ∙Q3
K2= 1Q ∙Q2∙Q3
K3= 1Q ∙Q2∙ 3Q
K4= Q1∙Q2∙ 3Q
K5= Q1∙Q2∙Q3
K6= Q1∙ 2Q ∙Q3
K7= Q1∙ 2Q ∙ 3Q
Решење 2:
Дијаграми тока микрооперација и управљачких сигнала дати су на слици 15.д.
Израчунавање негације N другог комплемента целобројне вредности са знаком се
реализује према правилу до кога се долази уколико се посматра нека целобројна
вредност са знаком
10110000
и њена негација
01010000.
Када се крене од најмлађег ка старијим разредима уочава се да све док су у оригиналној
вредности нуле и у негацији су нуле. Када се у оригиналној вредности први пут појави
јединица и у негацији је јединица, али се надаље у негацији појављују нуле уколико су у
оригиналној вредности јединице и обрнуто. У том циљу се најпре садржај регистра N
пребацује у регистар A. Затим се садржај регистра A помера удесно и при томе по
линији IR у најстарији разред регистра A убацује A0 све док је A0 нула, затим се убацује
A0 када се први пут појави A0 јединица и до краја се убацује инвертована вредност
разреда A0. После 16 померања удесно у регистру A се налази негација оригиналног
садржаја регистра A. Померање садржаја регистра A удесно се реализује све време док
сигнал SC0 не постане 1. Уписивање вредности 1 у регистар SC и њено померање улево
се реализују на идентичан начин као и у претходном решењу.
97
K0
NEG0
K1 1
L1<=0
K2
SC<=1
SC15...0
<=SC14...0
.0,
A15...0
<=A0.A
15...1
K7
K4
A0
1
SC15...0
<=SC14...0
.0,
A15...0
<=A0.A
15...1
0
K6
1
K5
SC00
K8
SC01
SC15...0
<=SC14...0
.0,
A15...0
<=A0.A
15...1
0K9
A<=N
K3
S<=A
K10
K0
NEG0
K1 1
clL1
K2
ldSC, S0, C
0, rdALU
shlSC,
shrA, S3
K7
K4
A0
1
shlSC,
shrA, S3
0
K6
1
K5
SC00
K8
SC01
shlSC,
shrA
0K9
ldA, S0, S
1, rdN
K3
ldS, rdA
K10
Слика 15.д Дијаграми тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала NEG и у зависности од тога да ли сигнал
NEG има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се вредношћу 1 сигнала clL1 на сигнал такта уписује нула у регистар L1.
На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала S0 и C0 на излазу јединице ALU појављује
садржај регистра L1 увећан за један за 1, па ће се, пошто је у претходном кораку у
регистар L1 уписана 0, на излазу јединице ALU формирати вредност 1, која се
вредношћу 1 сигнала ldSC на сигнал такта уписује у регистар SC. На исти сигнал такта
се прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и са њих вредношћу 0 сигнала S2 пропушта кроз
мултиплексер MP на улаз B јединице ALU, вредностима 1 сигнала S0 и S1 се даље
пропушта на излаз јединице ALU и вредношћу 1 сигнала ldA на сигнал такта уписује у
регистар A. На исти сигнал такта се прелази на корак K4.
У кораку K4 се проверава вредност сигнала A0 и у зависности од тога да ли је сигнал
A0 неактиван или активан на сигнал такта се прелази или на корак K5 или на корак K7.
У кораку K5 се вредношћу 1 сигнала shlSC на сигнал такта садржај регистра SC
помера за једно место у лево. У кораку K4 се вредношћу 1 сигнала shrA на сигнал такта
садржај регистра A помера за једно место у десно, а због вредности 0 сигнала S3 у
разред највеће тежине се уписује најнижи бит садржаја регистра A. На исти сигнал
такта се прелази на корак K6.
98
У кораку K6 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 на сигнал такта се прелази или на корак K10 или на корак K4.
У кораку K7 се вредношћу 1 сигнала shlSC на сигнал такта садржај регистра SC
помера за једно место улево. У кораку K4 се вредношћу 1 сигнала shrA на сигнал такта
садржај регистра A помера за једно место удесно, а због вредности 0 сигнала S3 у разред
највеће тежине се уписује најнижи бит садржаја регистра A. На исти сигнал такта се
прелази на корак K8.
У кораку K8 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 на сигнал такта се прелази или на корак K9 или на корак K8.
У кораку K9 се вредношћу 1 сигнала shlSC на сигнал такта садржај регистра SC
помера за једно место улево. У кораку K4 се вредношћу 1 сигнала shrA на сигнал такта
садржај регистра A помера за једно место удесно, а због вредности 0 сигнала S3 у разред
највеће тежине се уписује комплемент најнижег бита садржаја регистра A. На исти
сигнал такта се прелази на корак K5.
У кораку K10 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и са њих вредношћу 1 сигнала ldS на сигнал такта
уписује у регистар S. На исти сигнал такта се прелази на корак K0.
Структурна шема управљачке јединице реализоване помоћу D флип-флопова
приказана је на слици 15.ђ.
CLKCLK
D QK
0
Q
NEG
CLK
Sd
CLK
D QK
1
QRd
CLK
D QK
2
QRd
CLK CLK
D QK
3
QRd
CLK
CLK
CLKCLK
D QK
5
QRd
CLK
D QK
4
QRd
A0
CLK
D QK
6
QRd
SC0
CLK
D QK
9
QRd
CLK
D QK
8
QRd
SC0
CLK
D QK
7
QRd
CLK CLK
D QK
10
QRd
CLK
CLK CLK
CLK
Слика 15.ђ Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clL1 = K1
ldA = K3 ldSC = K2
ldS = K10
S0 = K2 + K3 S1 = K3
99
C0 = K2
S3 = K5 + K7 rdA = K10
rdALU = K2 rdN = K3
shlSC = K5 + K7 + K9
shrA = K5 + K7 + K9
у којима K0, K1, K2, ..., K10 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 13.д). Сви
остали управљачки сигнали су 0.
Дискусија 1:
Дијаграми тока микрооперација и управљачких сигнала дати су на слици 15.е.
Из корака K6 се у случају када је сигнал SC0 нула не мора да иде на корак K4 и да се
из корака K4 проверава вредност сигнала A0 и прелази на корак K5 или K7. Уместо тога
из корака K6 се у случају када је сигнал SC0 нула одмах проверава вредност сигнала A0
и прелази на корак K5 или K7.
K0
NEG0
K1 1
L1<=0
K2
SC<=1
K4
A<=N
K3
K0
NEG0
K1 1
clL1
K2
ldSC, S0, C
0, rdALU
K4
ldA, S0, S
1, rdN
K3
SC15...0
<=SC14...0
.0,
A15...0
<=A0.A
15...1
K7
A0
1
SC15...0
<=SC14...0
.0,
A15...0
<=A0.A
15...1
0
K6
1
K5
SC00
K8
SC01
SC15...0
<=SC14...0
.0,
A15...0
<=A0.A
15...1
0K9
S<=A
K10
shlSC,
shrA, S3
K7
A0
1
shlSC,
shrA, S3
0
K6
1
K5
SC00
K8
SC01
shlSC,
shrA
0K9
ldS, rdA
K10
Слика 15.е Дијаграм тока микрооперација и управљачких сигнала
Структурна шема управљачке јединице реализоване помоћу D флип-флопова
приказана је на слици 15.ж.
100
CLKCLK
D QK
0
Q
NEG
CLK
Sd
CLK
D QK
1
QRd
CLK
D QK
2
QRd
CLK CLK
D QK
3
QRd
CLK
CLK
A0
SC0
CLK
D QK
9
QRd
CLK
D QK
8
QRd
SC0
CLK
D QK
7
QRd
CLK CLK
D QK
10
QRd
CLK CLK
CLK CLK
D QK
4
QRd
CLKCLK
D QK
5
QRd
CLK
D QK
6
QRd
CLK
Слика 15.ж Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу на исти начин као и у случају
решења управљачке јединице са слике 15.ђ.
101
1.16 ФАКТОРИЈЕЛ - NFAK
На слици 16.a је приказана структурна шема дела операционе јединице процесора. У
регистру N дужине 16 разреда налази се бинарна вредност коју треба интерпретирати
као целобројну величину без знака n (n0). Микрооперације које се реализују у
јединици ALU су дате у табели 16.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе NFAK која израчунава факторијел целобројне вредности из регистра N и
резултат смешта у регистар S. Фаза извршавања наредбе започиње уколико сигнал
NFAK има вредност 1. Претпоставити да се у регистру N налази вредност која
омогућава да се извршавање наредбе реализује коректно и да се добије вредност која
може да се смести у регистар S.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
rdS
1616
1616 M 16
rdN
16
SCLK
16
CLKNCLK
16
CLK
16
LD ldNLD ldS
16
16
SC
16
CLKCLKLD ldSC
DEC decSC DEC decN
1616SC0
16
16
L1CLKCLKLD
CL
ldL1
clL1
16
16 16
ALU
S0
S1
S0
S1
C0 C
0
A
16 16
B
C16
C16
F
16
16
ACL clA
16 16rdA
LD ldACLKCLK
Слика 16.a Структурна шема операционе јединице
S0 S1 F0 0 0 B+C0
0 1 BC0
1 0 A+B
1 1 AB
Табела 16 Микрооперације у јединици ALU
Решење: a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 16.б.
Израчунавање факторијела n се реализује на следећи начин. Почетни парцијални
факторијел је n и он се сабира (n-1) пута и тиме добија нови парцијални факторијел
n(n-1). Новодобијени парцијални факторијел n(n-1) се сабира (n-2) пута и тиме добија
нови парцијални факторијел n(n-1)(n-2). Описани поступак се понавља укупно (n-1)
пута док се не добије парцијални факторијел n(n-1)(n-2)...21 који је и тражени
факторијел n.
102
K0
NFAK0
K1
K2
1
A<=0, SC<=N, S<=N
A<=A+1
S<=A
K4
SC00
K3 1
K5 1
K0
NFAK0
K1
K2
1
clA, ldSC, ldS, rdN
ldA, C0, rdA
ldS, rdA
K4
SC00
K3 1
decSC
K5 1
SC01
0
N<=SC
K7
L1<=S, A<=0
K8
K10
K11 1
S<=A
K12
SC<=N
SC00
A<=A+L1, SC<=SC1
K9
SC01
0
ldN, rdSC
K7
ldL1, rdS, clA
K8
K10
K11 1
ldS, rdA
K12
ldSC, rdN
SC00
ldA, S0, rdA, decSC
K9
SC<=SC1
K6
K6
Слика 16.б Дијаграм тока микрооперација и управљачких сигнала
Почетни и сваки новодобијени парцијални факторијел се увек чува у регистру S, а
информација колико још пута треба рачунати парцијалне факторијеле у регистру N. Код
сваког израчунавања парцијалног факторијела најпре се садржај регистра N смањи за
један и уколико је добијена вредност нула завршава са радом, док се у супротном
случају прелази на израчунавање новог парцијалног факторијела. Стога се на почетку
рада у регистар S уписује вредност n, а у регистар N вредност (n-1). Затим се n које
представља садржај регистра S пребацује у регистар L1 и сабира (n-1) пута колико је
садржај регистра N, чиме се добија нови парцијални факторијел n(n-1). Нови
парцијални факторијел n(n-1) се смешта у регистар S, а садржај регистар N
декрементира. Уколико је добијена вредност у регистру нула завршава се са
срачунавањем, док се у супротном случају прелази на срачунавање новог парцијалног
факторијела. За одбројавање колико пута треба сабирати садржај регистра L1 се
користи регистар SC у који се на почетку сваког сабирања уписује декрементирана
вредност регистра N. На почетку се још обезбеђује да се, уколико је N = 0, као вредност
103
факторијела у регистар S уписује 1. S друге стране, уколико је N = 1, факторијел је 1 и
ова вредност се добија у регистру S пребацивањем садржаја регистра N у регистар S.
У кораку K0 се проверава вредност сигнала NFAK и у зависности од тога да ли
сигнал NFAK има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази
на корак K1.
У кораку K1 се вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A. У
кораку K1 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера са
три стања на линије магистрале M и преко њих, између осталог, води на улазе регистара
SC и S и вредношћу 1 сигнала ldSC и ldS на сигнал такта уписује у регистре SC и S. На
исти сигнал такта се прелази на корак K2.
У кораку K2 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 прелази или на корак K5 или на корак K3.
У кораку K3 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, вредностима 0 сигнала S0 и S1 и вредношћу 1 сигнала C0 на излазу
јединице ALU се формира садржај регистра A увећан за 1, који се вредношћу 1 сигнала
ldA на сигнал такта уписује у регистар A. На исти сигнал такта се прелази на корак K4.
У кораку K4 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и са њих води, између осталог, на улаз регистра S
и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти сигнал такта
се прелази на корак K0.
У кораку K5 се вредношћу 1 сигнала decSC на сигнал такта садржај регистра SC
декрементира. На исти сигнал такта се прелази на корак K6.
У кораку K6 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 на сигнал такта се прелази или на корак K7 или на корак K0.
У кораку K7 се вредношћу 1 сигнала rdSC садржај регистра SC пропушта преко
бафера са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра N и вредношћу 1 сигнала ldN на сигнал такта уписује у регистар N. На исти
сигнал такта се прелази на корак K8.
У кораку K8 се вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A. У
кораку K8 се вредношћу 1 сигнала rdSC садржај регистра SC пропушта преко бафера са
три стања на линије магистрале M и са њих води, између осталог, на улаз регистра N и
вредношћу 1 сигнала ldN на сигнал такта уписује у регистар N. На исти сигнал такта се
прелази на корак K9.
У кораку K9 се вредношћу 1 сигнала decSC на сигнал такта садржај регистра SC
декрементира. У кораку K9 се вредношћу 1 сигнала rdA садржај регистра A пропушта
преко бафера са три стања на линије магистрале M и преко њих води, између осталог,
на улаз B јединице ALU, на улазу A јединице ALU присутан је садржај регистра L1,
вредношћу 1 сигнала S0 на излазу јединице ALU се формира сума садржаја регистра L1
и A, која се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти
сигнал такта се прелази на корак K10.
У кораку K10 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 на сигнал такта прелази или на корак K9 или на корак K11.
У кораку K11 се вредношћу 1 сигнала rdA на линије магистрале M пропушта садржај
регистра A, који се вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На
исти сигнал такта се прелази на корак K12.
У кораку K12 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра SC и вредношћу 1 сигнала ldSC на сигнал такта уписује у регистар SC. На
исти сигнал такта се прелази на корак K5.
104
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 16.в.
CLKCLK
D QK
0
Q
SC0
CLK
Sd
CLK
D QK
1
QRd
CLK
D QK
2
QRd
CLKCLK
D QK
3
QRd
CLK
CLK
CLK
D QK
4
QRd
CLK
CLK
D QK
6
QRd
SC0
CLKCLK
D QK
5
QRd
NFAK
CLK CLK
D QK
10
QRd
SC0
CLKCLK
D QK
9
QRd
CLK
D QK
7
QRd
CLK
D QK
8
QRd
CLK
D QK
11
QRd
CLK
D QK
12
QRd
CLK
CLKCLKCLK
Слика 16.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1 + K8
ldA = K3 + K9 ldN = K7
ldSC = K1 + K12
ldS = K1 + K4 + K11
ldL1 = K8
S0 = K9
C0 = K3
rdA = K3 + K4 + K9 + K11
rdN = K1 + K12
rdS = K8
rdSC = K7
decSC = K5 + K9
у којима K0, K1, K2, ..., K12 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 16.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 16.б) и дата на
слици 16.г.
105
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) NFAK 0 b 0 b 0 b 0 b
K1 (0001) NFAK 0 b 0 b 0 b 1 b
K1 (0001) clA, ldSC, ldS, rdN K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) / K3 (0010) SC0 0 b 0 b b 0 b 1
K5 (0111) 0SC 0 b 1 b b 0 b 0
K3 (0010) ldA, C0, rdA K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) ldS, rdA K0 (0000) 1 0 b b 1 b 1 0 b
K5 (0111) decSC K6 (0101) 1 0 b b 0 b 1 b 0
K6 (0101) / K0 (0000) SC0 0 b b 1 0 b b 1
K7 (0100) 0SC 0 b b 0 0 b b 1
K7 (0100) ldN, rdSC K8 (1100) 1 1 b b 0 0 b 0 b
K8 (1100) ldL1, rdS, clA K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) ldA, S0, rdA, decSC K10 (1111) 1 b 0 b 0 1 b b 0
K10 (1111) K9 (1101) 0SC b 0 b 0 b 1 b 0
K11 (1110) SC0 b 0 b 0 b 0 b 1
K11 (1110) ldS, rdA K12 (1010) 1 b 0 b 1 b 0 0 b
K12 (1010) ldSC, rdN K5 (0111) 1 b 1 1 b b 0 1 b
Слика 16.г.Таблица стања, прелаза/излаза и побудa флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111, K11=1110, K12=1010,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1 + K8
ldA = K3 + K9 ldN = K7
ldSC = K1 + K12
ldS = K1 + K4 + K11
ldL1 = K8
S0 = K9
C0 = K3
rdA = K3 + K4 + K9 + K11
rdN = K1 + K12
rdS = K8
rdSC = K7
decSC = K5 + K9
106
у којима K0, K1, K2, ..., K12 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже придружених операционим блоковима у дијаграму тока управљачких
сигнала (слика 16.б). Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7
K1 = K12
J2 = K2∙ 0SC + K3 + K12
K2 = K4 + K6∙SC0 + K11
J3 = K1 + K9
K3 = K4 + K5 + K10∙ 0SC
J4 = K0∙NFAK + K8 + K12
K4 = K2∙SC0 + K6 + K10∙SC0
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
K11= Q1∙Q2∙Q3∙ 4Q
K12= Q1∙ 2Q ∙Q3∙ 4Q
107
1.17 MNK
На слици 17.a је приказана структурна шема дела операционе јединице процесора. У
регистру N и K дужине 16 разреда налази се бинарне вредности које треба
интерпретирати као целобројне вредности без знака n и k, респективно (nk и k0).
Микрооперације које се реализују у јединици ALU су дате у табели 17.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе MNK која израчунава производ
n(n-1)(n-2)...(n-(k1))
и резултат смешта у регистар S. Фаза извршавања наредбе започиње уколико сигнал
MNK има вредност 1. Претпоставити да се у регистрима N и K налазе вредности које
омогућавају да се извршавање наредбе реализује коректно и да се добије вредност која
може да се смести у регистар S.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
16
L1CLKCLKLD
CL
ldL1
clL1
16
16 16
ALU
S0
S1
S0
S1
C0 C
0
A
16 16
B
C16
C16
F
16
1616
16
rdN
16
rdSC
16
NCLK
16
CLKLD ldN
16
16
SC
16
CLKCLKLD ldSC
DEC decSC DEC decN
1616SC0
16
rdS
16
SCLK
16
CLK
16
LD ldS
rdK
16
KCLK
16
CLK
16
LD ldK
16
16
ACL clA
16 16rdA
LD ldACLKCLK
M
Слика 17.a Структурна шема операционе јединице
S0 S1 F0 0 0 B+C0
0 1 BC0
1 0 A+B
1 1 AB
Табела 17 Микрооперације у јединици ALU
Решење: a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 17.б.
Израчунавање израза n(n-1)(n-2)...(n-(k1)) се реализује на сличан начин као
израчунавање n факторијела n(n-1)(n-2)...21. Почетни парцијални производ је n и он
се сабира (n-1) пута и тиме добија нови парцијални производ n(n-1). Новодобијени
парцијални производ n(n-1) се сабира (n-2) пута и тиме добија нови парцијални
производ n(n-1)(n-2). Ово се понавља (k-1) пута док се не добије парцијални производ
108
n(n-1)(n-2)...(n-(k1)) који је и тражени производ. Почетни и сваки новодобијени
парцијални производ се увек чува у регистру S, информација колико пута се парцијални
производ треба сабирати се чува у регистру N и информација колико још пута треба
срачунавати парцијалне производе у регистру K. Код сваког срачунавања парцијалног
производа најпре се садржај регистра K смањи за један и уколико је добијена вредност
нула завршава са срачунавањем, док се у супротном случају прелази на срачунавање
новог парцијалног производа. Поред тога, на почетку срачунавања производа у регистар
S уписује се вредност n, а у регистар N вредност (n-1). Затим се n које представља
садржај регистра S пребацује у регистар L1 и сабира (n-1) пута колико је садржај
регистра N, чиме се добија нови парцијални производ n(n-1). Нови парцијални
производ n(n-1) се смешта у регистар S, а садржај регистар K декрементира. Уколико је
добијена вредност у регистру нула завршава се са срачунавањем, док се у супротном
случају прелази на срачунавање новог парцијалног производа. За одбројавање колико
пута треба сабирати садржај регистра L1 се користи регистар SC у који се на почетку
сваког сабирања уписује декрементирана вредност регистра N. Регистар K нема
могућност декрементирања, па се декрементирање садржаја регистра K реализује тако
што се садржај регистра K пребаци у регистар SC, изврши декрементирање и добијена
вредност врати у регистар K. Том приликом се на основу вредности сигнала SC0
утврђује да ли је овим декрементирањем добијена вредност нула и уколико јесте
завршава са срачунавањем парцијалних производа, док се у супротном случају прелази
на срачунавање новог парцијалног производа.
K0
MNK0
K5
K<=SC, N<=N1
SC<=N, A<=0
K7
SC01
K6 0
K1 1
S<=N
K2 1
L1<=S
K3 1
SC<=K
K4 1
SC<=SC1
K9
K10 1
S<=A
SC00
A<=A+L1, SC<=SC1
K8
K0
MNK0
K5
ldK, rdSC, decN
ldSC, rdN, clA
K7
SC01
K6 0
K1 1
ldS, rdN
K2 1
ldL1, rdS
K3 1
ldSC, rdK
K4 1
decSC
K9
K10 1
ldS, rdA
SC00
ldA, S0, rdA, decSC
K8
Слика 17.б Дијаграм тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала MNK и у зависности од тога да ли сигнал
MNK има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
109
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала rdS садржај регистра S пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L1 и вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. На исти
сигнал такта се прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала rdK садржај регистра K пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра SC и вредношћу 1 сигнала ldSC на сигнал такта уписује у регистар SC. На
исти сигнал такта се прелази на корак K4.
У кораку K4 се због вредности 1 сигнала decSC на сигнал такта декрементира
садржај регистра SC. На исти сигнал такта се прелази на корак K5.
У кораку K5 се проверава вредност сигнала SC0 и у зависности од тога да сигнал SC0
има вредност 0 или 1 прелази или на корак K6 или на корак K0.
У кораку K6 се вредношћу 1 сигнала rdSC садржај регистра SC пропушта преко
бафера са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра K и вредношћу 1 сигнала ldK на сигнал такта уписује у регистар K. У кораку
K6 се и вредношћу 1 сигнала decN на сигнал такта декрементира садржај регистра SC.
На исти сигнал такта се прелази на корак K7.
У кораку K7 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M пропушта и преко њих води, између осталог, на
улаз регистра SC и вредношћу 1 сигнала ldSC на сигнал такта уписује у регистар SC. У
кораку K7 се и вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A. На
исти сигнал такта се прелази на корак K8.
У кораку K8 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M пропушта и преко њих води, између осталог, на
улаз B јединице ALU, на улазу A јединице ALU присутан је садржај регистра L1,
вредношћу 1 сигнала S0 се на излазу јединице ALU формира сума садржаја регистара
L1 и A, која се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти
сигнал такта се прелази на корак K9.
У кораку K9 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 прелази или на корак K8 или на корак K10.
У кораку K10 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K2.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 17.в.
110
CLKCLK
D QK
0
Q
CLK
Sd
CLK
D QK
1
QRd
CLK
MNK
CLK
D QK
2
QRd
CLK CLK
D QK
3
QRd
CLK
D QK
4
QRd
SC0
CLK
D QK
5
QRd
CLK
CLK
D QK
7
QRd
CLK
D QK
6
QRd
CLK
D QK
8
QRd
CLKCLKCLK CLK CLK
D QK
10
QRd
CLK
D QK
9
QRd
SC0
Слика 17.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K7
ldA = K8 ldSC = K3 + K7
ldS = K1 + K10
ldL1 = K2
ldK = K6
S0 = K8
rdA = K8 + K10
rdN = K1 + K7
rdS = K2
rdSC = K6
rdK = K3
decSC = K4 + K8
decN = K6
у којима K0, K1, K2, ..., K10 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 17.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 17.б) и дата на
слици 17.г.
111
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) MNK 0 b 0 b 0 b 0 b
K1 (0001) MNK 0 b 0 b 0 b 1 b
K1 (0001) ldS, rdN K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldL1, rdS K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) ldSC, rdK K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) decSC K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) / K0 (0000) SC0 0 b b 1 b 1 b 1
K6 (0101) 0SC 0 b b 0 b 1 b 0
K6 (0101) ldK, rdSC, decN K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) ldSC, rdN, clA K8 (1100) 1 1 b b 0 0 b 0 b
K8 (1100) ldA, S0, rdA, decSC K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) / K8 (1100) 0SC b 0 b 0 0 b b 1
K10 (1111) SC0 b 0 b 0 1 b b 0
K10 (1111) ldS, rdA K2 (0011) 1 b 1 b 1 b 0 b 0
Слика 17.г.Таблица стања, прелаза/излаза и побудa флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K7
ldA = K8 ldSC = K3 + K7
ldS = K1 + K10
ldL1 = K2
ldK = K6
S0 = K8
rdA = K8 + K10
rdN = K1 + K7
rdS = K2
rdSC = K6
rdK = K3
decSC = K4 + K8
decN = K6
у којима K0, K1, K2, ..., K10 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже придружених операционим блоковима у дијаграму тока
управљачких сигнала (слика 17.б). Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
112
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7
K1 = K10
J2 = K3
K2 = K5∙SC0+ K10
J3 = K1 + K9∙SC0
K3 = K5
J4 = K0∙MNK + K4 + K8
K4 = K2 + K5∙SC0 + K6 + K9∙ 0SC
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
113
1.18 SUM
На слици 18.a је приказана структурна шема дела операционе јединице процесора. У
регистру N дужине 16 разреда налази се бинарна вредност коју треба интерпретирати
као целобројну величину без знака n (n0). Микрооперације које се реализују у
јединици ALU су дате у табели 18.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе SUM која израчунава суму
n
0i2
)1i(i
и резултат смешта у регистар S. Фаза извршавања наредбе започиње уколико сигнал
SUM има вредност 1. Претпоставити да се у регистру N налази вредност које омогућује
да се извршавање наредбе реализује коректно и да се добије вредност која може да се
смести у регистар S.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
rdS
1616
1616 M 16
rdSC
16
SCLK
16
CLKNCLK
16
CLK
16
LD ldNLD ldS
16
16
SC
16
CLKCLKLD ldSC
DEC decSC DEC decN
1616SC0
16
16
L1CLKCLKLD
CL
ldL1
clL1
16
16 16
ALU
S0
S1
S0
S1
C0 C
0
A
16 16
B
C16
C16
F
16
16
ACLK CLK
LD ldA
16 16rdA
SHRshrA
CLclAIR0
rdN
Слика 18.a Структурна шема операционе јединице
S0 S1 F0 0 0 AC0
0 1 B+C0
1 0 BC0
1 1 A+B
Табела 18 Микрооперације у јединици ALU
Решење: a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 18.б.
Решење описане операције је слично решењу претходна два задатка. Разлика је у
потреби реализације дељења са 2. Операција дељења се обавља у регистру A
померањем садржаја овог регистра за једно место у десно и уписом вредности 0 на
место најстаријег разреда.
114
K0
SUM0
K1 1
A<=0
K2 1
SC<=N, L1<=N
K3
1
S<=A, A<=0
K4 0
SC<=SC1
SC0
K5
SC01
0
K7
SC00
A<=A+L1, SC<=SC1
K6
K8 1
A15...0
<=0.A15...1
, L1<=S
K9
A<=A+L1, N<=N1
K0
SUM0
K1 1
clA
K2 1
ldSC, ldL1, rdN
K3
1
ldS, rdA, clA
K4 0
decSC
SC0
K5
SC01
0
K7
SC00
ldA, S0, S
1, rdA, decSC
K6
K8 1
shrA, ldL1, rdS
K9
ldA, S0, S
1, rdA, decN
Слика 18.б Дијаграми тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала SUM и у зависности од тога да ли сигнал
SUM има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се због вредности 1 сигнала clA на сигнал такта уписује нула у регистар
A. На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улазе
регистара SC и L1 и вредношћу 1 сигнала ldSC и ldL1 на сигнал такта уписује у
регистре SC и L1. На исти сигнал такта се прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. У кораку K3
се и вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A. У кораку K3 се
и проверава вредност сигнала SC0 и у зависности од тога да ли сигнал SC0 има
вредност 0 или 1 на сигнал такта прелази или на корак K4 или на корак K0.
У кораку K4 се вредношћу 1 сигнала decSC на сигнал такта декрементира садржај
регистра SC. На исти сигнал такта се прелази на корак K5.
У кораку K5 се проверава вредност сигнала SC0 и у зависности од тога да сигнал SC0
има вредност 0 или 1 прелази или на корак K6 или на корак K0.
У кораку K6 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, на улазу A јединице ALU присутан је садржај регистра L1, вредностима
1 сигнала S0 и S1 се на излазу јединице ALU формира сума садржаја регистара L1 и A,
која се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. У кораку K6 се и
вредношћу 1 сигнала decSC на сигнал такта декрементира садржај регистра SC. На
исти сигнал такта се прелази на корак K7.
115
У кораку K7 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1 на сигнал такта прелази или на корак K6 или на корак K8.
У кораку K8 се вредношћу 1 сигнала rdS садржај регистра S пропушта на линије
магистрале M и преко њих води, између осталог, на улаз регистра L1 и вредношћу 1
сигнала ldL1 на сигнал такта уписује у регистар L1. У кораку K8 се и вредношћу 1
сигнала shrA на сигнал такта садржај регистра A помера за једно место удесно. На исти
сигнал такта се прелази на корак K9.
У кораку K9 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, на улазу A јединице ALU присутан је садржај регистра L1, вредностима
1 сигнала S0 и S1 се на излазу јединице ALU формира сума садржаја регистара L1 и A,
која се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. У кораку K9 се и
због вредности 1 сигнала decN на сигнал такта декрементира садржај регистра N. На
исти сигнал такта се прелази на корак K2.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 18.в.
CLKCLK
D QK
7
QRd
CLK
D QK
6
QRd
CLK
D QK
8
QRd
CLKCLKCLK CLK
D QK
9
QRd
SC0
CLK CLKCLK
D QK
2
QRd
CLK
SC0
CLK
D QK
3
QRd
CLK
D QK
4
QRd
CLK
SC0
CLK
D QK
5
QRd
CLKCLK
D QK
0
Q
CLK
Sd
CLK
D QK
1
QRd
SUM
Слика 18.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1 + K3
ldA = K6 + K9 ldSC = K2
ldS = K3
ldL1 = K2 + K8
S0 = K6 + K9
S1 = K6 + K9
rdA = K3 + K6 + K9
rdN = K2
rdS = K8
decSC = K4 + K6
decN = K9
shrA = K8
116
у којима K0, K1, K2, ..., K11 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 18.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 18.б) и дата на
слици 18.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) SUM 0 b 0 b 0 b 0 b
K1 (0001) SUM 0 b 0 b 0 b 1 b
K1 (0001) clA K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldSC, ldL1, rdN K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) ldS, rdA, clA K0 (0000) SC0 0 b 0 b b 1 0 b
K4 (0110) 0SC 0 b 1 b b 0 0 b
K4 (0110) decSC K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) / K0 (0000) SC0 0 b b 1 b 1 b 1
K6 (0101) 0SC 0 b b 0 b 1 b 0
K6 (0101) ldA, S0, S1, rdA, decSC K7 (0100) 1 0 b b 0 0 b b 1
K7 (0100) / K6 (0101) 0SC 0 b b 0 0 b 1 b
K8 (1100) SC0 1 b b 0 0 b 0 b
K8 (1100) shrA, ldL1, rdS K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) ldA, S0, S1, rdA, decN K2 (0011) 1 b 1 b 1 1 b b 0
Слика 18.г.Таблица стања, прелаза/излаза и побуда флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1 + K3
ldA = K6 + K9 ldSC = K2
ldS = K3
ldL1 = K2 + K8
S0 = K6 + K9
S1 = K6 + K9
rdA = K3 + K6 + K9
rdN = K2
rdS = K8
decSC = K4 + K6
decN = K9
shrA = K8
117
у којима K0, K1, K2, ..., K9 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже придружених операционим блоковима у дијаграму тока
управљачких сигнала (слика 18.б). Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7∙SC0
K1 = K9
J2 = K3∙ 0SC
K2 = K5∙SC0+ K9
J3 = K1 + K9
K3 = K3∙SC0+ K5
J4 = K0∙SUM + K4 + K7∙ 0SC + K8
K4 = K2 + K5∙SC0+ K6
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
118
1.19 SMS
На слици 19.a је приказана структурна шема дела операционе јединице процесора. У
регистру N дужине 16 разреда налази се бинарна вредност коју треба интерпретирати
као целобројну вредности без знака n (n0). Микрооперације које се реализују у
јединици ALU су дате у табели 19.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе SMS која израчунава израз
n
0i
i2i
у коме је n (n0) целобројна вредност из регистра N и резултат смешта у регистар S.
Фаза извршавања наредбе започиње уколико сигнал SMS има вредност 1.
Претпоставити да се у регистру N налази вредност која омогућује да се извршавање
наредбе реализује коректно и да се добије вредност која може да се смести у регистар S.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
1616
16
L1CLKCLKLD
CL
ldL1
clL1
16
16 16
ALU
S0
S1
S0
S1
C0 C
0
A
16 16
B
C16
C16
F
16
SC
16
CLKCLKLD ldSC
DEC decSC
1616SC0
rdS
1616
rdN
16
SCLK
16
CLKNCLK
16
CLK
16
LD ldNLD ldS
16
16
DEC decN
16
ASHL shlA
CL clA
16 16rdA
LD
CLKCLKIL 0
ldA
16A0
Слика 19.a Структурна шема операционе јединице
S0 S1 F0 0 0 A+C0
0 1 B+C0
1 0 A+B
1 1 BC0
Табела 19 Микрооперације у јединици ALU
Решење: a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 19.б.
Израчунавање парцијалног члана i2i се обавља тако што се вредност и памти у
регистру N и на почетку израчунавања парцијалног члана упише у регистре SC и A.
Затим се у свакој итерацији вредност регистра A помери за једно место улево и
вредност регистра SC се смањи за 1. Испитује се да ли је у регистру SC добијена
119
вредност 0, јер то представља тренутак када је првобитна вредност регистра A
помножена са вредношћу 2i. Сабирање парцијалних чланова се обавља на идентичан
начин као и у претходним примерима.
K0
SMS0
K1 1
A<=0
K2
S<=A
K3
A<=N, SC<=N
K4
SC01
0
K6
SC00
A15...0
<=A14...0
.0, SC<=SC1
K5
S<=A
K10
A<=N1
K11
N<=A, SC<=A
K8
A<=S+L1
K9
K7 1
L1<=A
K0
SMS0
K1 1
clA
K2
ldS, rdA
K3
ldA, ldSC, S1, rdN
K4
SC01
0
K6
SC00
shlA, decSC
K5
ldS, rdA
K10
ldA, S0, S
1, C
0, rdN
K11
ldN, ldSC, rdA
K8
ldA, S0, rdS
K9
K7 1
ldL1, rdA
Слика 19.б Дијаграм тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала SMS и у зависности од тога да ли сигнал
SMS има вредност 0 или 1 или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A.
На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K3.
У кораку K3 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра SC и улаз B јединице ALU, вредношћу 1 сигнала S1 се у јединици ALU
реализује микрооперација B+C0 и на излаз јединице ALU пропушта садржај регистра N,
вредношћу 1 сигнала ldSC се на сигнал такта садржај регистра N са линија магистрале
M уписује у регистар SC и вредношћу 1 сигнала ldA на сигнал такта се садржај
регистра N са излаза јединице ALU уписује у регистар A. На исти сигнал такта се
прелази на корак K0.
У кораку K4 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или 1, на сигнал такта прелази или на корак K5 или на корак K0.
120
У кораку K5 се вредношћу 1 сигнала shlA на сигнал такта садржај регистра A помера
за једно место улево. У кораку K5 се и вредношћу 1 сигнала decSC на сигнал такта
садржај регистра SC декрементира. На исти сигнал такта се прелази на корак K6.
У кораку K6 се проверава вредност сигнала SC0 и у зависности од тога да ли сигнал
SC0 има вредност 0 или1, на сигнал такта прелази или на корак K5 или на корак K7.
У кораку K7 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L1 и вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. На исти
сигнал такта се прелази на корак K8.
У кораку K8 се вредношћу 1 сигнала rdS садржај регистра S пропушта на линије
магистрале M и преко њих води, између осталог, на улаз B јединице ALU, на улазу A
јединице ALU је све време присутан садржај регистра L1, вредношћу 1 сигнала S0 се на
излазу јединице ALU формира сума садржаја регистара L1 и S, која се вредношћу 1
сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал такта се прелази на
корак K9.
У кораку K9 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K10.
У кораку K10 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, вредностима 1 сигнала S0, S1 и C0 се у јединици ALU реализује
микрооперација BC0 и на излазу јединице ALU добија садржај регистра N умањен за 1,
који се вредношћу 1 сигнала ldA на сигнал такта уписује у регистар A. На исти сигнал
такта се прелази на корак K11.
У кораку K11 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M преко њих води, између осталог, на улазе
регистара N и SC и вредностима 1 сигнала ldN и ldSC на сигнал такта уписује у
регистре N и SC. На исти сигнал такта се прелази на корак K4.
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 19.в.
CLKCLK
D QK
0
Q
CLK
Sd
CLK
D QK
1
QRd
SMS
CLK
D QK
2
QRd
CLK CLK
D QK
3
QRd
CLKCLK
D QK
6
QRd
CLK
D QK
5
QRd
CLK
D QK
7
QRd
CLKCLKCLK
SC0
SC0
CLK
D QK
4
QRd
CLK
D QK
8
QRd
CLK
D QK
9
QRd
CLK
D QK
10
QRd
CLK
D QK
11
QRd
CLK CLK
CLK CLK
Слика 19.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
ldL1 = K7
ldS = K2 + K9
ldSC = K3 + K11
121
ldA = K3 + K8 + K10
ldN = K11
S0 = K8 + K10
S1 = K3 + K10
C0 = K10
rdA = K2 + K7 + K9 + K11
rdS = K8
rdN = K3 + K10
shlA = K5
decSC = K5
у којима K0, K1, K2, ..., K11 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 19.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 19.б) и дата на
слици 19.г.
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) SMS 0 b 0 b 0 b 0 b
K1 (0001) SMS 0 b 0 b 0 b 1 b
K1 (0001) clA K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldS, rdA K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) ldA, ldSC, S1, rdN K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) / K0 (0000) SC0 0 b b 1 b 1 0 b
K5 (0111) 0SC 0 b b 0 b 0 1 b
K5 (0111) shlA, decSC K6 (0101) 1 0 b b 0 b 1 b 0
K6 (0101) / K5 (0111) 0SC 0 b b 0 1 b b 0
K7 (0100) SC0 0 b b 0 0 b b 1
K7 (0100) ldL1, rdA K8 (1100) 1 1 b b 0 0 b 0 b
K8 (1100) ldA, S0, rdS K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) ldS, rdA K10 (1111) 1 b 0 b 0 1 b b 0
K10 (1111) ldA, S0, S1, C0, rdN K11 (1110) 1 b 0 b 0 b 0 b 1
K11 (1110) ldN, ldSC, rdA K4 (0110) 1 b 1 b 0 b 0 0 b
Слика 19.г.Таблица стања, прелаза/излаза и побудa флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111, K11=1110,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према изразима
clA = K1
ldL1 = K7
122
ldS = K2 + K9
ldSC = K3 + K11
ldA = K3 + K8 + K10
ldN = K11
S0 = K8 + K10
S1 = K3 + K10
C0 = K10
rdA = K2 + K7 + K9 + K11
rdS = K8
rdN = K3 + K10
shlA = K5
decSC = K5
у којима K0, K1, K2, ..., K11 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже придружених операционим блоковима у дијаграму тока
управљачких сигнала (слика 19.б). Сви остали управљачки сигнали су 0.
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7
K1 = K11
J2 = K3
K2 = K4∙SC0
J3 = K1 + K6∙ 0SC + K9
K3 = K4∙SC0 + K5
J4 = K0∙SMS + K4∙SC0 + K8
K4 = K2 + K6∙SC0 + K10
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
K11= Q1∙Q2∙ 3Q ∙ 4Q
123
1.20 SC
На слици 20.a је приказана структурна шема дела операционе јединице процесора. У
регистру N дужине 16 разреда налази се бинарна вредност коју треба интерпретирати
као целобројну вредности без знака n (n0). Микрооперације које се реализују у
јединици ALU су дате у табели 20.
a) Нацртати дијаграме тока микрооперација и управљачких сигнала фазе извршавања
наредбе SC која израчунава n-ti елемент низа који је задат рекурентном формулом
An = 2∙An1+3∙An-2 за n2 и A1 = 2 и A0 = 1
у којој је n целобројна вредност из регистра N и резултат смешта у регистар S. Фаза
извршавања наредбе започиње уколико сигнал SC има вредност 1. Претпоставити да се
у регистру N налази вредност које омогућава да се извршавање наредбе реализује
коректно и да се добије вредност која може да се смести у регистар S.
б) Нацртати структурну шему управљачке јединице реализоване као "шетајућа
јединица" са D флип-флоповима.
в) Нацртати структурну шему управљачке јединице реализоване као стандардна
секвенцијална прекидачка мрежа са JK флип-флоповима.
1616
rdS
16
rdN
16
SCLK
16
CLKNCLK
16
CLK
16
LD ldN LD ldS
16
16
16
L1CLKCLKLD
CL
ldL1
clL1
16
16 16
ALU
S0
S1
S0
S1
C0 C
0
A
16 16
B
C16
C16
F
16
16
ASHL shlA
CL clA
16 16rdA
LD
CLKCLKIL 0
ldA
16A0
16
Слика 20.a Структурна шема операционе јединице
S0 S1 F0 0 0 B+C0
0 1 BC0
1 0 A+B
1 1 A
Табела 20 Микрооперације у јединици ALU
Решење: a) Дијаграм тока микрооперација и управљачких сигнала дати су на слици 20.б.
Израз An = 2∙An1+3∙An-2 се претвара у An = 2∙(An1+An-2) + An-2 и рачуна се по овој
формули. У регистру S привремено ће се чувати међурезултат An1, док ће се у регистру
L1 чувати An-2.
124
K0
SC0
K1 1
A<=0
K2
A<=A+1
K5
A01
K3
S<=A
K4
A<=N
0
L1<=S, A<=S+1
K6
A01
A15...0
<=A14...0
.0
K13
A<=A+L1
K14
L1<=S
K11
A<=S+L1
K12
K10 0
N<=A
K7
S<=A
K8
A<=N1
K9
K0
SC0
K1 1
clA
K2
ldA, C0, rdA
K5
A01
K3
ldS, rdA
K4
ldA, rdN
0
ldL1, ldA, C0, rdS
K6
A01
shlA
K13
ldA, S0, rdA
K14
ldL1, rdS
K11
ldA, S0, rdS
K12
K10 0
ldN, rdA
K7
ldS, rdA
K8
ldA, S1, C
0, rdN
K9
Слика 20.б Дијаграм тока микрооперација и управљачких сигнала
У кораку K0 се проверава вредност сигнала SC и у зависности од тога да ли сигнал
SC има вредност 0 или 1, или остаје у кораку K0 или на сигнал такта прелази на корак
K1.
У кораку K1 се вредношћу 1 сигнала clA на сигнал такта уписује нула у регистар A.
На исти сигнал такта се прелази на корак K2.
У кораку K2 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, вредностима 0 сигнала S0 и S1 и вредношћу 1 сигнала C0 се у јединици
ALU реализује микрооперација B+C0 и на излазу јединице ALU добија садржај
регистра A увећан за 1 који се вредношћу 1 сигнала ldA на сигнал такта уписује у
регистар A. На исти сигнал такта се прелази на корак K2.
У кораку K3 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K4.
125
У кораку K4 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, вредностима 0 сигнала S0, S1 и C0 се у јединици ALU реализује
микрооперација B+C0 и на излазу јединице ALU добија садржај регистра N, који се
вредношћу 1 сигнала ldA, на сигнал такта уписује у регистар A. На исти сигнал такта се
прелази на корак K5.
У кораку K5 се проверава вредност сигнала A0 и у зависности од тога да ли сигнал
A0 има вредност 0 или 1 на сигнал такта прелази или на корак K6 или на корак K0.
У кораку K6 се вредношћу 1 сигнала rdS садржај регистра S пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L1 и улаз B јединице ALU, вредностима 0 сигнала S0 и S1 се у јединици ALU
реализује микрооперација B+C0 и на излазу јединице ALU добија садржај регистра S
увећан за 1, вредношћу 1 сигнала ldL1 се на сигнал такта садржај регистра S са линија
магистрале M уписује у регистар L1 и вредношћу 1 сигнала ldA на сигнал такта се
садржај регистра S увећан за 1 са излаза јединице ALU уписује у регистар A. На исти
сигнал такта се прелази на корак K2.
У кораку K7 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра S и вредношћу 1 сигнала ldS на сигнал такта уписује у регистар S. На исти
сигнал такта се прелази на корак K8.
У кораку K8 се вредношћу 1 сигнала rdN садржај регистра N пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, вредностима 1 сигнала S1 и C0 се у јединици ALU реализује
микрооперација BC0 и на излазу јединице ALU добија на излазу јединице ALU добија
садржај регистра N умањен за 1, који се вредношћу 1 сигнала ldA на сигнал такта
уписује у регистар A. На исти сигнал такта се прелази на корак K9.
У кораку K9 се проверава вредност сигнала A0 и у зависности од тога да ли сигнал
A0 има вредност 0 или 1 на сигнал такта прелази или на корак K10 или на корак K0.
У кораку K10 се вредношћу 1 сигнала rdA садржај регистра A проушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра N и вредношћу 1 сигнала ldN на сигнал такта уписује у регистар N. На исти
сигнал такта се прелази на корак K11.
У кораку K11 се 1 вредношћу сигнала rdS садржај регистра S пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, на улазу A јединице ALU присутан је све време садржај регистра L1,
вредношћу 1 сигнала S0 се у јединици ALU реализује микрооперација A+B и на излазу
јединице ALU добија сума садржаја регистра L1 и S, која се вредношћу 1 сигнала ldA,
на сигнал такта уписује у регистар A. На исти сигнал такта се прелази на корак K12.
У кораку K12 се вредношћу 1 сигнала shlA на сигнал такта садржај регистра A помера
за једно место улево. На исти сигнал такта се прелази на корак K13.
У кораку K13 се вредношћу 1 сигнала rdA садржај регистра A пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз B
јединице ALU, на улазу A јединице ALU присутан је све време садржај регистра L1,
вредношћу 1 сигнала S0 се у јединици ALU реализује микрооперација A+B и на излазу
јединице ALU добија сума садржаја регистра L1 и A, која се вредношћу 1 сигнала ldA,
на сигнал такта уписује у регистар A. На исти сигнал такта се прелази на корак K14.
У кораку K14 се вредношћу 1 сигнала rdS садржај регистра S пропушта преко бафера
са три стања на линије магистрале M и преко њих води, између осталог, на улаз
регистра L1 и вредношћу 1 сигнала ldL1 на сигнал такта уписује у регистар L1. На исти
сигнал такта се прелази на корак K7.
126
б) Структурна шема управљачке јединице реализоване као "шетајућа јединица" са D
флип-флоповима приказана је на слици 20.в.
CLK
CLK
CLK
D QK
9
QRd
SC0
CLKCLK
D QK
7
QRd
CLK
D QK
6
QRd
CLK
D QK
8
QRd
CLK CLK
CLK
D QK
10
QRd
CLKCLK
D QK
11
QRd
CLK
D QK
12
QRd
CLK
D QK
13
QRd
CLK
D QK
14
QRd
CLK CLKCLK
CLK
CLK
D QK
1
QRd
CLK
D QK
2
QRd
CLK CLK
D QK
3
QRd
CLK
A0
CLK
D QK
5
QRd
CLK
D QK
4
QRd
CLK CLK
CLKCLK
D QK
0
Q
Sd
SC
Слика 20.в Структурна шема управљачке јединице
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
ldA = K2 + K4 + K6 + K8 + K11 + K13
ldL1 = K6 + K14
ldS = K3 + K7
ldN = K10
S0 = K11 + K13
S1 = K8
C0 = K2 + K6 + K8
rdN = K4 + K8
rdA = K2 + K3 + K7 + K10 + K13
rdS = K6 + K11 + K14
shlA = K12
у којима K0, K1, K2, ..., K14 представљају сигнале са излаза флип-флопова придружених
операционим блоковима у дијаграму тока управљачких сигнала (слика 20.б). Сви
остали управљачки сигнали су 0.
в) Таблица стања, прелаза/излаза и побуда флип-флопова за управљачку јединицу
реализовану као стандардна секвенцијална прекидачка мрежа са JK флип-флоповима
формирана је на основу дијаграма тока управљачких сигнала (слика 20.б) и дата на
слици 20.г.
127
Q Z Q(t+1) X J1 K1 J2 K2 J3 K3 J4 K4
K0 (0000) / K0 (0000) SC 0 b 0 b 0 b 0 b
K1 (0001) SC 0 b 0 b 0 b 1 b
K1 (0001) clA K2 (0011) 1 0 b 0 b 1 b b 0
K2 (0011) ldA, C0, rdA K3 (0010) 1 0 b 0 b b 0 b 1
K3 (0010) ldS, rdA K4 (0110) 1 0 b 1 b b 0 0 b
K4 (0110) ldA, rdN K5 (0111) 1 0 b b 0 b 0 1 b
K5 (0111) / K0 (0000) A0 0 b b 1 b 1 b 1
K6 (0101) 0А 0 b b 0 b 1 b 0
K6 (0101) ldL1, ldA, C0, rdS K7 (0100) 1 0 b b 0 0 b 0 1
K7 (0100) ldS, rdA K8 (1100) 1 1 b b 0 0 b 0 b
K8 (1100) ldA, S1, C0, rdN K9 (1101) 1 b 0 b 0 0 b 1 b
K9 (1101) / K0 (0000) A0 b 1 b 1 0 b b 1
K10 (1111) 0А b 0 b 0 1 b b 0
K10 (1111) ldN, rdA K11 (1110) 1 b 0 b 0 b 0 b 1
K11 (1110) ldA, S0, rdS K12 (1010) 1 b 0 b 1 b 0 0 b
K12 (1010) shlA K13 (1011) 1 b 0 0 b b 0 1 b
K13 (1011) ldA, S0, rdS K14 (1001) 1 b 0 0 b b 1 b 0
K14 (1001) ldL1, rdS K7 (0100) 1 b 1 1 b 0 b b 1
Слика 20.г.Таблица стања, прелаза/излаза и побудa флип-флопова
Стања секвенцијалне прекидачке мреже кодирана су на следећи начин
K0=0000, K1=0001, K2=0011, K3=0010, K4=0110, K5=0111, K6=0101, K7=0100,
K8=1100, K9=1101, K10=1111, K11=1110, K12=1010, K13=1011, K14=1001,
а за реализацију стања секвенцијалне прекидачке мреже користе се флип-флопови Q1,
Q2, Q3 и Q4 типа JK.
Управљачки сигнали операционе јединице се генеришу према следећим изразима:
clA = K1
ldA = K2 + K4 + K6 + K8 + K11 + K13
ldL1 = K6 + K14
ldS = K3 + K7
ldN = K10
S0 = K11 + K13
S1 = K8
C0 = K2 + K6 + K8
rdN = K4 + K8
rdA = K2 + K3 + K7 + K10 + K13
rdS = K6 + K11 + K14
shlA = K12
у којима K0, K1, K2, ..., K14 представљају сигнале декодованих стања секвенцијалне
прекидачке мреже придружених операционим блоковима у дијаграму тока
управљачких сигнала (слика 20.б). Сви остали управљачки сигнали су 0.
128
Структурна шема управљачке јединице реализоване као стандардна секвенцијална
прекидачка мрежа се састоји од флип-флоповa Q1, Q2, Q3 и Q4 типа JK и комбинационе
прекидачке мреже која генерише сигнале побуда JK флип-флопова према следећим
изразима:
J1 = K7
K1 = K9∙A0 + K14
J2 = K3 + K14
K2 = K5∙A0 + K9∙A0 + K11
J3 = K1 + K9∙ 0A
K3 = K5 + K13
J4 = K0∙SC + K4 + K8 + K12
K4 = K2 + K5∙A0 + K6 + K9∙A0 +K10 + K14
С обзиром на усвојени начин кодирања стања секвенцијалне прекидачке мреже,
сигнали декодованих стања секвенцијалне прекидачке мреже добијају се према
изразима:
K0= 1Q ∙ 2Q ∙ 3Q ∙ 4Q
K1= 1Q ∙ 2Q ∙ 3Q ∙Q4
K2= 1Q ∙ 2Q ∙ Q3∙Q4
K3= 1Q ∙ 2Q ∙Q3∙ 4Q
K4= 1Q ∙Q2∙Q3∙ 4Q
K5= 1Q ∙Q2∙Q3∙Q4
K6= 1Q ∙Q2∙ 3Q ∙Q4
K7= 1Q ∙Q2∙ 3Q ∙ 4Q
K8= Q1∙Q2∙ 3Q ∙ 4Q
K9= Q1∙Q2∙ 3Q ∙Q4
K10= Q1∙Q2∙Q3∙Q4
K11= Q1∙Q2∙ Q3∙ 4Q
K12= Q1∙ 2Q ∙Q3∙ 4Q
K13= Q1∙ 2Q ∙Q3∙ Q4
K14= Q1∙ 2Q ∙ 3Q ∙Q4
129
2 ЛИТЕРАТУРА 1. B. Lazić, Logičko projektovanje računara, Nauka—Elektrotehnički fakultet, Beograd,
1994.
2. D. Živković, M. Popović, Impulsna и digitalna elektronika, Nauka—Elektrotehnički
fakultet, Beograd, 1992.
3. J. Djordjevic, A. Milenkovic, N. Grbanovic, “An Integrated Educational Environment
for Teaching Computer Architecture and Organisation, ” IEEE MICRO, May 2000.pp. 66-74.
4. J. Djordjevic, M. R. Barbacci, B. Hosler, A PMS Level Notation for the Description and
Simulation of Digital Systems, The Computer Journal, Vol. 28, No. 4, pp. 357-365, 1985.
5. S. Miladinović, J. Đorđević, A. Milenković, Programski sistem за grafički opis и
simulaciju digitalnih sistema, Zbornik radova ETRAN 1997, Zlatibor, Jugoslavija, Jun 1997.
6. N. Grbanovic, J. Djordjevic, B. Nikolić, The Software Package for an Educational
Computer System, International Journal он Electrical Engineering Education, Vol. 40, No. 4,
Oct 2003, pp. 270-284.
7. J. Djordjevic, A. Milenkovic, I. Todorovic, D. Marinov, “CALKAS: A Computer
Architecture Learning and Knowledge Assessment System, ” IEEE TC Computer Architecture
Newsletter, March 1999.
8. J. Đorđević, Priručnik из arhitekture računara, Elektrotehnički fakultet, Beograd, 1997.
9. J. Đorđević, Priručnik из arhitekture и organizacije računara, Elektrotehnički fakultet,
Beograd, 1997.
10. J. Đorđević, Arhitektura računara, Edukacioni računarski sistem, Arhitektura и
organizacija računrskog sistema, Elektrotehnički fakultet, Beograd, 2002.
11. J. Đorđević, N. Grbanović, B. Nikolić, Z. Radivojević, Arhitektura računara,
Edukacioni računarski sistem, Priručnik за simulaciju са zadacima, Elektrotehnički fakultet,
Beograd, 2004.
12. J. Djordjevic, B. Nikolic, A. Milenkovic, “Flexible Web-based Educational System for
Teaching Computer Architecture and Organization, ” IEEE, Transactions он Education, Vol.
48, No. 2, 2005.
13. J. Djordjevic, B. Nikolic, M. Mitrovic, “A Memory System for Education, ” Computer
Journal, (to appear)