Последната актуализация на този раздел е от 2019 година.

 

 

7.2.   Решение  на  проблема

 

 

Тук, като пример, ще бъде разгледана една възможност за решаване на изяснения проблем в структури на микропрограмни управляващи устройства, проектирани на базата на схема Am2910 (фирма AMD). Избираме тази фамилия поради нейната популярност и широко представяне в литературата. Въпреки, че този пример ще бъде разгледан в условията на конкретна елементна база, той ще позволи на читателя да извлече чисто теоретичните изводи за разглеждания тук проблем.

Както е известно, структурата на схемата за формиране на адреса за преход Am2910, е проектирана в съответствие с метода за естествена адресация на микрокомандите. За схемата този метод е основен, но не и единствен – той е допълнен с принудителния метод за адресиране. Микрокомандата в тази структура притежава адресна част, в която може да се съдържа само един от адресите за преход. При условни преходи алтернативният адрес се извлича най-често от микропрограмния брояч или от друг вътрешен за схемата източник, например стека. При това положение много алтернативните преходи от вида показан на фигура 7.1.3 се реализират последователно в микропрограмата, което води до изпълнение, съответстващо на процеса, представен на фигура 7.1.4.

Изпълнението на един конкретен преход от многото възможни (виж фиг. 7.1.3) за един такт не е възможно без допълнителна апаратура. В допълнителната апаратура, която се налага като решение на проблема, следва да се формира един адрес за преход, който е функция на няколко логически условия. Това може да бъде постигнато с помощта на функционално преобразование върху конкретната комбинация от логически условия. Функционалното преобразование може да бъде частично (върху част от адреса) или пълно (върху целия адрес). Функционалното преобразование следва да се реализира за един такт, което изисква комбинационна схема. Функционалното преобразование е детерминирано и еднозначно, тъй като реалният алгоритмичен преход (при всеки отделен проход на микропрограмата) е единствен.

Осъществяването на адресен преход, който е различен от посочените в началото на този пункт, в цитираните структури може да се осъществи чрез специална микрокоманда за безусловен преход "JMAP", имаща микрокоманден код МКК=0010. Характерно за тази микрокоманда е това, че тя генерира разрешаващия сигнал ~MAP_ENABLE, който разрешава изходите на външен източник на адрес за преход. И така микрокоманда JMAP замества всички микрокоманди от фигура 7.1.4 (k-та, k+1-вата, k+2-рата, k+3-тата), като разрешава адресът за преход да излезе от външен източник, както е показано на фигура 7.2.1. По този начин задачата за формиране на адреса за преход се свежда до задача за синтез на този източник.

Този начин за формиране на адреса за преход обаче има съществения недостатък да не е в състояние да гарантира достатъчна дължина на отделните адресни подпространства.

Външният източник (ВИ), управляван от сигнала ~MAP_ENABLE, трябва да има буферирани изходи (изходи, които могат да бъдат поставяни в трето логическо състояние – висок импеданс). При обикновените алгоритмични преходи, при които източник на адреса към микропрограмната памет МПП е самата схема Сх.ФАПр., изходите на външния източник ще бъдат изключени чрез третото логическо състояние на буферите му. При преход чрез микрокоманда JMAP ще се изключва адресната шина, свързваща входа D на схемата за формирана на адреса за преход (Сх.ФАПр.) с регистъра на микрокомандата (РгМК) и ще се подключва външният източник (ВИ), който ще подаде формирания в него адрес за преход, получен като функция на входните условия. Така следващата микрокоманда ще бъде първата от избрания чрез условията съответен клон на алгоритъма. Разположението на микропрограмните участъци в адресното пространство, реализиращи отделните клонове на алгоритъма, зависи от това, колко сложна е реализацията на външния източник (ВИ).

 

Фиг. 7.2.1.  Включване на външен източник в логическата структура на МПУУ

 

Най-евтината реализация е тази, при която ВИ представлява само набор от 12 буфера (Буф) (виж фигура 7.2.2, рисунка А). Старшата част на адреса е константа, която има (12-q) на брой цифри. Така адресът  (Const|0…00)  се явява базов адрес за програмните разклонения. Началният адрес на всеки отделен програмен клон се формира чрез конкатениране на старшата част с младшата му q-разрядна част, която е формирана от стойностите на условията, подлежащи на проверка. Така адресът за преход се формира непосредствено от условията.

 

Фиг. 7.2.2.  Логическа структура на външния източник

 

Това от своя страна изисква специално преподреждане на условията спрямо адресните разряди - задача, която не винаги е решима. Нещо повече, такова решение е алгоритмично зависимо, тъй като алгоритъма определя дължината на всеки програмен клон. Дължината на програмния текст в случая се измерва в брой адресируеми единици.

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

 


Усл. 1

Усл. 2

Усл. 3

Усл. 4

Изход

1

х

х

х

по адрес r

0

0

х

х

по адрес s

0

1

0

х

по адрес t

0

1

1

0

по адрес

0

1

1

1

по адрес

 

Ако последните две условия са в младшата част на адреса:

А3А2А1А0  =  Усл.1 | Усл.2 | Усл.3 | Усл.4

то за програмиране на алгоритмичния клон с начален адрес няма нито една свободна клетка, тъй като следващият адрес b  (b=g+1)  е начало на друг клон. Това положение по принцип не е опасно. То може да се приеме и като цялостно решение, т.е. началните адреси на програмните клонове ще бъдат разположени последователно. В този случай обаче тези адреси няма да бъдат истинските начални адреси на програмните клонове и ще трябва да съдържат микрокоманди за безусловен преход към истинските начални адреси. С други думи всеки условен преход ще бъде допълнително препращан, т.е. ще бъде програмно реализиран като преход с двоен скок. Това решение обаче въвежда закъснение от един такт при изпълнение на всеки един от програмните клонове.

Разположението на условията в адреса освен в младшата част може да бъде на всяко друго място – в старшата, в средната, разпръснато и непоследователно. За това няма никакви формални пречки, достатъчно е проектантът да разполага свободно с адресното пространство и сам да го разпределя. Затруднения могат да се появят, когато желани от него адресни участъци са заети и забранени за използване или не се предвижда тяхната физическа реализация. Изход от такива неразрешими ситуации може да се постигне чрез подходящо схемно функционално преобразуване на комбинацията от стойностите на условията в друга, осигуряваща достатъчна дължина в адресното пространство за съответния програмен клон. На фигура 7.2.2, рисунка Б) е показано как чрез включването на един преобразовател П q-разрядната комбинация от условия може да се преобразува в g-разрядна така, че да се осигури необходимия обем за всеки програмен клон. Преобразуването може да бъде проектирано и така, че константната част от адреса да отсъства.

Преобразователят П в случая е показан като възел без памет, т.е. като комбинационна схема. Това решение обаче има недостатъка да бъде апаратно твърдо и трудно за промяна. Ето защо по-често на това място се поставя памет, за която комбинацията от условия се използува в качеството на адрес за достъп. В достъпните клетки се намират истинските начални адреси на програмните клонове. При такава структура микропрограмното осигуряване е по-гъвкаво, тъй като началните адреси на програмните клонове могат да бъдат променяни лесно без да се променя логическата структура на апаратурата.

 

 

 

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

8.  Синхронизация