7.2.1  Микропрограмен автомат с принудителна адресация

 

 

      Като се изхожда от типичните алгоритмични структури, които ще трябва да реализират микрокомандите, а така също и от същността на метода за принудителна адресация на преходите, се определя следната структура на микрокомандата:

 

Оп. Част

X

A1

A2

 

      Микрокомандата се състои от две части - операционна и адресна. Последната съдържа три подполета. В две от тях се съдържат адреси за преход - А1 и А2. Когато микрокомандата реализира безусловен преход, какъвто е преходът към следващата микрокоманда в линеен участък на алгоритъма, тогава полето А1 се използува за посочване на адреса за преход, а съдържанието на полето А2, е без значение.

      Когато преходът е условен, тогава се използват и двете адресни полета. За да се направи избор на адрес за преход трябва да се провери стойността на оповестяващ сигнал, който изразява условието за преход. За целта в структурата на микрокомандата се съдържа полето Х, в което се посочва код за избор на условие. Ако проверяваното условие е изпълнено, преходът е по адрес А2, ако не е изпълнено - по адрес А1.

      За функциониране на управляващия автомат според структурата на неговата микрокоманда може да се приложи следната примерна логическа структура:

 

Фиг. 7.2.1.1.  Логическа структура на МПУА с принудителна адресация

 

      Вариантът, който предлага горната фигура, се различава принципно от общата структура, която беше предложена в предидущия параграф (вижте фигура 7.2.1). Настоящата структура се характеризира с двуфазното тактуване (сигнали С1 и С2), което е предложено тук умишлено като една алтернатива, която говори за богатството от идеи и същевременно е поучителна със своето различие. Използването на два регистъра – за фиксиране на микрокомандата и на адреса на следващата микрокоманда дава възможност тези регистри да бъдат реализирани с обикновени Latch-тригери.

      Логическата структура работи по следния начин. При всеки импулс на тактовия сигнал C1 в регистъра на микрокомандата Рг.МК се записва новата микрокоманда, подготвена предварително на изхода на микропрограмната памет МПП. От този момент нататък, по време на текущия такт, протичат два паралелни процеса – единият в операционната част на устройството, където се разпространяват управляващите сигнали от новата микрокоманда, а другият в самия управляващ автомат. Както може да се види от рисунката, двата адреса, съдържащи се в полетата А1 и А2 на Рг.МК, се разпространяват до мултиплексора MUX1, а кода за избор на условие от полето Х – до мултиплексора MUX2. В резултат на избор на сигнал от множеството {U}, на изхода на MUX2 се появява актуалната логическа стойност на кода на условието КУ. Кодът на условието се интерпретира по следния начин:

      Кодът на условието от своя страна управлява адресния мултиплексор MUX1 по вече изказаното по-горе правило:

if   (КУ)   then   GO TO  A2

else   GO TO  A1

end if

      Броят на кодовите комбинации, възможни за полето Х, трябва да са с излишък по отношение на броя на проверяваните условия. Така се осъществява възможността за безусловни преходи, реализирани като условни с предварително гарантирана стойност на кода на условието, т.е. преходи винаги по адрес А1, тъй като КУ=0.

      С превключването на мултиплексор MUX1, на неговия изход се установява адресът на следващата микрокоманда, който с появата на тактовия импулс С2 се записва в адресния регистър Рг.АМК. Прочитането на съдържанието на клетката от микропрограмната памет по установения адрес трябва да стане до появата на следващия тактов импулс С1, след който описаните вече действия се повтарят.

      Според описаната логическа структура с принудителна адресация, всеки алгоритъм може да бъде запрограмиран с микрокоманди от един единствен вид, описан в началото. Двуадресната структура на микрокомандата позволява изключително ефективно използване на адресното пространство. При принудителния метод на адресиране следващата микрокоманда може да се намира в произволна клетка, а това позволява максимално уплътняване на паметта. За съжаление наличието на два адреса в структурата на микрокомандата не винаги е необходимо. В случаите, когато тя реализира безусловен алгоритмичен преход например, съдържанието на полето А2 е без значение. В този смисъл, микрокомандата неефективно използува клетката в която се намира, тъй като полезната информация заема само част от нея. В това се състои недостатъкът на описаната структура.

      За отстраняване на посочения недостатък се търси подход, който позволява изваждане на непостоянния адрес от структурата на микрокомандата. Така обикновено се стига до едноадресна структура, при която вторият адрес не присъства в микрокомандата, а когато е необходим се изчислява като функция на първия: А2=f(A1). Една от най-лесните за апаратна реализация функционални зависимости е следната:

където адресът за преход  Апр е равен на А1 при безусловен преход, тъй като тогава КУ=0, или е равен на сумата (А1+1), тъй като тогава КУ=1. Прилагането на зависимостта (7.2.1.1) води до логическата структура, показана на фигура 7.2.1.2:

 

Фиг. 7.2.1.2.  Логическа структура на МПУА с едноадресна принудителна адресация

 

      Както може да се види от горната рисунка, микрокомандата съдържа само един адрес - А1, с което значително се намалява дължината на микрокомандата, а от там и обемът на запомнящия масив. В логическата структура на микропрограмния управляващ автомат мултиплексорът MUX1 от фигура 7.2.1.1 е заменен с броячната схема ½СМ, която реализира зависимостта (7.2.1.1). По този начин, когато микрокомандата е за безусловен преход, адресът за преход А1 преминава през "прозрачния" полусуматор и достига адресния регистър на микропрограмната памет. Прозрачността се осигурява чрез полето Х на микрокомандата така, че кодът на условието КУ в този случай винаги да има гарантираната стойност нула (КУ=0).

      Когато микрокомандата е за условен преход, чрез полето Х в мултиплексора на оповестяващите сигнали МUХ, се избира за проверка съответният оповестяващ сигнал. Ако последният не е активен, то КУ=0 и тогава според (7.2.1.1) адресът за преход е Апр=А1. Ако сигналът е активен, то КУ=1 и Апр=(А1+1).

      Тази конструктивна реализация означава, че когато при програмиране се употребява микрокомандата за условен преход, в адресното пространство е необходима свободна двойка съседни клетки. Ако в адресното пространство не могат да се намерят два съседни свободни адреса, условният преход не може да бъде реализиран.

      След всичко казано до момента ще представим и пример. За демонстрация на реализацията на микропрограма в описаната от фигура 7.2.1.1 логическа структура, ще разгледаме микропрограмата за събиране и изваждане от фигура 3.2.1.5, представена по-долу като кодирана и с добавен начален чакащ блок. Ще се абстрахираме от всичко казано за тази блок-схема и ще гледаме на нея като на схема, описваща определена последователност от управляващи сигнали.

 

Фиг. 7.2.1.3.  Блок-схема на управляващ алгоритъм

 

      Анализирайки дадената по-горе блок-схема, виждаме че управлението на операционното устройство се постига чрез 8 управляващи сигнала. По нататък правим следните изводи: тъй като броят на управляващите сигнали е 8, то операционната част на микрокомандата ще има дължина максимум 8 бита, които еднозначно ще бъдат предназначени да носят стойностите на управляващите сигнали. По-внимателното разглеждане изявява факта, че управляващ сигнал с номер 5 не се среща в блок-схемата. В случая това би ни дало възможността да намалим с един бит дължината на операционната част на микрокомандата, но ние няма да се възползваме от нея тук.

      Условията, които се проверяват в алгоритъма, са две, което означава, че кодът за избор Х, с осигурен излишък, ще бъде двуразряден.

      Общият брой операционни блокове в блок-схемата е 7, което означава, че с известен излишък може да се приеме обемът на адресното пространство на микропрограмната памет да бъде 8 клетки. При това за тяхното адресиране ще бъде достатъчен 3-битов адрес. Така в крайна сметка се получава следния формат на микрокомандата:

 

УС

X

A1

A2

8                             1

2     1

3                     1

3                     1

 

      Според този формат от 16 разряда следва, че: размерите на паметта на автомата са минимално необходимите 8х16; дължината на Рг.МК е 16 бита; дължината на Рг.АМК е 3 бита.

      Форматът на микрокомандата определя и структурата на мултиплексорите както следва: МUХ1 ще бъде (2х3) към (1х3), а МUХ2 ще бъде 4 към 1. Входовете на МUХ2 и съответните им комбинации ще разпределим по следния начин:

Х=00 : “Пуск” ;         Х=01 : КОП ;          Х=10   и   Х=11 : Нула.

      Кодът (текстът) на съставената по алгоритъма от фигура 7.2.1.3 микропрограма е изразен, както обикновено за машинен код, в табличен вид:

Таблица 7.2.1.1  Микропрограма

 

 

Съдържание на МПП

 

 

 

Управляващи

сигнали

Х

А1

А2

 

Адрес

8 7 6 5 4 3 2 1

2 1

3 2 1

3 2 1

Коментар на микрокомандата

0

000

0 0 0 0 0 0 0 0

0 0

0 0 0

0 0 1

Ако “Пуск”=0, то преход по А1   -  очакване ;

Ако “Пуск”=1, то преход по А2   -  старт .

1

001

0 1 0 0 0 0 1 0

1 1

0 1 0

- - -

Безусловен преход по А1, сигнали УС2, УС7.

2

010

0 0 0 0 0 0 0 1

0 1

0 1 1

1 1 0

Ако КОП=0, то преход по А1, сигнал УС1 ;

Ако КОП=1, то преход по А2, сигнал УС1 .

3

011

0 0 0 0 0 1 0 0

1 1

1 0 0

- - -

Безусловен преход по А1, сигнал УС3,  (+).

4

100

0 0 0 0 0 0 0 0

1 1

1 0 1

- - -

Безусловен преход по А1, празен такт.

5

101

0 1 1 0 0 0 0 0

1 1

0 0 0

- - -

Безусловен преход по А1, сигнали УС6, УС7.

6

110

0 0 0 0 1 0 0 0

1 1

1 1 1

- - -

Безусловен преход по А1, сигнал УС4.  (-).

7

111

1 0 0 0 0 0 0 0

1 1

1 0 1

- - -

Безусловен преход по А1, сигнал УС8

 

      Обърнете внимание на факта, че при изпълнение на условния преход по условие “КОП”, няма загуба на такт, т.е след управляващия сигнал УС1 веднага следва УС3 или УС4. Този факт илюстрира много силното достойнство на метода с принудително адресиране да реализира управляващия алгоритъм с максимално бързодействие.

      Означението (- - -) в полето А2 означава, че неговото съдържание е без значение.

      По-долу ще представим в табличен вид микропрограмата за същия алгоритъм, но отнасяща се за едноадресната логическа структура на управляващия автомат от фигура 7.2.1.2. Структурата на микрокомандата за този автомат има следния вид:

 

УС

X

A1

 8                             1

2     1

3                     1

 

      Както се вижда, тя е с три бита по-къса, което променя размерите на микропрограмната памет до минимално необходимите 8х13. Входовете на мултиплексора MUX ще запазим подключени по същия начин към входните сигнали, което означава, че ще работим със същите комбинации за полето Х, които декларирахме по-горе.

Таблица 7.2.1.2  Микропрограма

 

 

Съдържание на МПП

 

 

 

Управляващи

сигнали

Х

А1

 

Адрес

8 7 6 5 4 3 2 1

2 1

3 2 1

Коментар на микрокомандата

0

000

0 0 0 0 0 0 0 0

0 0

0 0 0

Ако “Пуск”=0, то преход по А1   -  очакване ;

Ако “Пуск”=1, то преход по А1+1   -  старт .

1

001

0 1 0 0 0 0 1 0

1 1

0 1 0

Безусловен преход по А1, сигнали УС2, УС7.

2

010

0 0 0 0 0 0 0 1

0 1

0 1 1

Ако КОП=0, то преход по А1, сигнал УС1 ;

Ако КОП=1, то преход по А1+1, сигнал УС1 .

3

011

0 0 0 0 0 1 0 0

1 1

1 1 0

Безусловен преход по А1, сигнал УС3,  (+).

4

100

0 0 0 0 1 0 0 0

1 1

1 0 1

Безусловен преход по А1, сигнал УС4.  (-).

5

101

1 0 0 0 0 0 0 0

1 1

1 1 1

Безусловен преход по А1, сигнал УС8

6

110

0 0 0 0 0 0 0 0

1 1

1 1 1

Безусловен преход по А1, празен такт.

7

111

0 1 1 0 0 0 0 0

1 1

0 0 0

Безусловен преход по А1, сигнали УС6, УС7.

 

 

 

Следващият раздел е:

http://www.tyanev.com/home.php?s=397&lang=bg&mid=18&mod=1&b=12