§ 7.4  Оптимизация на адресната част на микрокомандата

 

 

      Както в много други случаи, така и сега се прави изводът, че двата теоретични метода за адресиране на микрокомандите (принудителен и естествен), имащи своите достойнства и недостатъци, не намират в чист вид широко практическо приложение.

      Сравнително голямото разнообразие от алгоритмични структури, както и необходимостта от удовлетворяване на различни потребителски изисквания, налагат масовото използуване на структури, в които адресирането е оптимална смес от методи и техники.

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

      Целта на оптимизацията на адресната част на микрокомандата е да позволи лесна и бърза реализация на разнообразни адресни преходи - естествени, безусловни, условни, много алтернативни, циклически, преходи към подпрограми, преходи при прекъсване. Ако и микропрограмите да се характеризират със своята постоянност в микропрограмната памет МПП, не са редки случаите, когато методите за адресиране трябва да осигуряват допълнителни свойства на микропрограмите, като например преместваемост. Това важи особено за микропрограмни управляващи устройства, чиито функции могат да се зареждат в микропрограмната памет МПП от вън. Ето защо, обобщавайки различните практически реализации, известни от литературни източници, може да се посочи следната най-обща класификация на прилаганите методи за адресиране на микрокомандите, представена на фигура 7.4.1.

 

Фиг. 7.4.1.  Класификация на методите за адресиране на микрокоманди

 

      Управляващата мощност на логическата структура на микропрограмния управляващ автомат (МПУА) се определя от способността й да реализира алгоритмичните структури с минимален брой микрокоманди, т.е. с максимална скорост. В най-добрият случай само с една микрокоманда, т.е. като еднотактен преход. В МПУА адресирането на микрокомандите има своите особености, за които ще става дума по-долу.

      Естествената адресация се осигурява от микропрограмен брояч, който във всеки отделен такт подготвя адреса на следващата клетка в микропрограмната памет по закона МПБр.:=(МПБр.)+1. По принцип вторият операнд (+1) в този закон е функция на програмиста, т.е. на микрокомандата, ето защо в логическите структури, използуващи този метод, този операнд се внася в брояча от вън. Искаме да кажем, че модифицирането на съдържанието на МПБр. не автоматично. За целта в микрокомандата се отделя специален разряд за стойността инкрементираща адресния брояч. В случай, че програмистът запише в този разряд стойност нула, то съдържанието на адресния брояч няма да се промени. Това е една от многото възможности за организиране на цикли.

      Принудителната адресация е необходима за изменение на адресния ход със скок, без за това да се губи отделен такт. Както вече отбелязахме няколко пъти, естествената адресация има недостатъка да добавя тактове, които снижават бързодействието. Съчетаването на прехода (условен или безусловен) с изпълнението на микрооперациите, които са функция на операционното устройство, се осигурява чрез едновременното присъствие в структурата на микрокомандата на операционната и адресната й части.

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

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

      Вътрешни и външни източници могат при определени ситуации да формират чрез аритметическа операция (например събиране) адрес за преход, което означава, че в СФАП не е изключено наличието на многоразряден двоичен суматор. Наличието на такъв възел прави възможни такива методи за адресиране, като например относителен или индексен.

      Страничната адресация представлява независима модификация на старшите разряди на адреса. Известно е, че такова структуриране на адреса позволява интерпретация на адресното пространство със странична организация. Средствата за постигане на страничната организация се изразяват в допълнително запомнящо устройство, което съдържа старшата част на базовия адрес на страниците. Изпълнителният адрес най-често се получава чрез конкатениране с отместването. Страничната адресация се прилага най-често в случаите, когато разрядността на адресната част на микрокомандата не е достатъчна за адресиране в микропрограмната памет, а така също и в случаите, когато структурата на СФАП не е проектирана за каскадно нарастване на разрядността на адреса.

      Под функционална адресация се разбира модификация на младшата част на адреса (с изключение на старшите странични разряди). "Функционалното" изчисление на адресната част обикновено се извършва с помощта на средства, намиращи се вън от схемата за формиране на адреса за преход - СФАП. Резултатът се съхранява в допълнително външно запомнящо устройство или регистър. Сглобяването на изпълнителния адрес от основните полета и функционалното поле се извършва в СФАП.

      Ние няма да разглеждаме тук множеството логически структури, предлагани от производителите. За да поясним изказаните до момента съображения, достатъчно ще бъде да разгледаме като един реален пример показаната на фигура 7.4.2 обобщена логическа структура на МПУА и неговата схема за формиране на адреса за преход. Представената логическа структура, с различни малки изменения, е произвеждана от много фирми и по тази причина нейното описание е много популярно и може да се срещне в множество литературни източници.

 

Фиг. 7.4.2.  Логическа структура на МПУА

      Структурата на микропрограмния управляващ автомат съдържа следните основни елементи:

·        Микропрограмна памет МПП ;

·        Регистър на микрокомандата Рг.МК ;

·        Мултиплексор на входните оповестяващи сигнали MUX2 ;

·        Схема за формирана на адреса за преход СФАП ;

·        Допълнителна памет (преобразовател) ДП1 ;

·        Допълнителна памет (преобразовател) ДП2 .

      Структурата на микрокомандата може да се види в регистъра на микрокомандата Рг.МК , в който се съдържат следните полета:

·        ОЧ  -  Операционна част (представя управляващите сигнали {УС} ;

·        МКК  -  Микрокоманден код (определя вида на прехода) ;

·        СР  -  Служебни разряди (всеки отделен бит на това поле има специфични функции) ;

·        Х  -  Код за избор на условие за преход ;

·        А  -  Адрес за преход .

      Както може да се види, адресът на следващата микрокоманда А към микропрограмната памет МПП могат да подадат три различни самоизключващи се източници - допълнителните памети ДП1, ДП2 и СФАП. Ето защо в общия случай адресната шина е с магистрална организация. Основния източник обаче на адрес за преход е адресният мултиплексор МUХ1, който е изходен логически възел на онази част от структурата, която се нарича СФАП. В тази схема влизат всички възли заградени с пунктирана линия.

      Състоянията, в които може да бъде превключена схемата за формиране на адреса за преход СФАП, имаща показаната сложност, са много. Конкретният начин за формиране на адреса за преход се установява от комбинационната схема за управление Сх.У, в зависимост от подавания към нея микрокоманден код МКК. Микрокомандният код МКК е функция на текущата микрокоманда и се съдържа в специално поле на нейната структура. Това означава, че микрокомандата настройва СФАП с помощта на този код. Най-съществения възел при това настройване е адресният мултиплексор МUХ1. Тъй като чрез МКК фактически се управлява СФАП, то на този код се гледа като на основен отличителен белег по който се различават отделните микрокоманди.

      Според смисъла на адресния преход, микрокомандният код МКК може да бъде означаван мнемонично, в пълна аналогия с мнемониката на КОП на машинните команди. Възможните комбинации в полето МКК издигат на по-високо качествено ниво понятието микрокоманда. Тези комбинации са много повече от две, колкото бяха в структурата с чисто естествено адресиране (вижте пункт 7.2.2), което дава значителни възможности при разработване на софтуера.

      Така естествено се стига до понятието микроасемблерен език, който е средството за написване на микропрограмите за МПУА с показаната структура. По същество микрокомандите на структурата от горната фигура остават от вида за управление на прехода.

      Когато микрокомандите са за условен преход, възможният избор на източник, подаващ адрес за преход чрез микрокомандния код МКК, е нееднозначен. За окончателното превключване на адресния мултиплексор МUХ1 се използува кодът на проверяванoто условие КУ. Обикновено МКК при микрокоманди за условен преход само ограничава множеството на възможните източници, като ги свежда обикновено до два. При 4-входов мултиплексор, какъвто е МUХ1, възможните комбинации по входовете му са 6: (1 или 2); (1 или 3); (1 или 4); (2 или 3); (2 или 4); (3 или 4).

      Необходимо е да се отбележи още, че структурата от фигура 7.4.2 има две възможности за проверка на условия. Тези, които се избират чрез кода Х в мултиплексора МUХ2, се наричат външни условия и техният код е означен с КУ1. Освен тях има и едно вътрешно условие, означено с КУ2, което е изпълнено само в случаите, когато съдържанието на регистъра/брояч Рг/Бр е равно на нула. Кодът на това условие - КУ2, се реализира от "нулевия" изход на дешифратора ДШ, включен към изходите на споменатия брояч.

      Когато микрокомандите са за безусловен преход, освен четирите възможни за избор източника от МUХ1, могат да бъдат реализирани и други, каквито са например включените в структурата допълнителни памети ДП1 и ДП2. Допълнителните памети са с произволен достъп и се адресират или от микрокомандата (ДП1) или външно, например от процесора (ДП2). В първия случай паметта ДП1 може да се разглежда като преобразувател на адреса подаван от микрокомандата, а във втория случай паметта ДП2 може да се разглежда като преобразувател на външен векторен адрес a или на някаква кодова комбинация, в начален микропрограмен адрес.

      За постигане на по-универсални възможности за управление, естествената адресация се осъществява с помощта на отделен и независим вход в суматора  +1СМ. Става дума за независимост от кода на външното условие КУ, което в класическата структура взаимодействаше с инкрементната единица (вижте фигура 7.2.2.1).

      Всички източници на адрес за преход (вътрешни и външни) стават достъпни за използуване при подаване на съответния сигнал за разрешение Е. Разрешаващите сигнали в общия случай са функция на микрокомандния код МКК, но в някои случаи могат да бъдат реализирани с помощта на сигнали от полето на служебните разряди СР, където са под управлението на програмиста.

      Въвеждането в структурата на СФАП на стек (запомнящо устройство с последователен достъп от тип LIFO) дава възможност за прилагане на подпрограмна техника, която позволява използуване на модулния принцип при проектиране и написване на микропрограмното осигуряване на управляващия автомат. В стека следва да се съхраняват адресите за връщане от модул (от микроподпрограма). Адресът за връщане, който се запомня в стека автоматично при съответната микрокоманда за преход, се взема от Рг.АМК. Този регистър е във веригата на суматора, ето защо може да се каже, че адресът за връщане от микроподпрограма е следващият по ред адрес.

      Както вече изяснихме тук в глава 4, § 4.3, стековата памет може да бъде реализирана по два начина винаги готова за запис или винаги готова за четене. Тук, за разлика от програмния стек, стекът е от тип винаги готов за четене. Това означава, че водещото разбиране е за осигуряване преди всичко на бърз преход по адрес, който се съхранява в стека. Има и още една особеност на този стек – при четене от върховата клетка не винаги се извършва модификация на стековия указател. Това дава възможност върховата клетка да служи като допълнителен регистър за съхраняване на адрес за преход и нейното съдържание да се чете многократно. Модификацията на стековия указател се извършва автоматично от микрокомандите, реализиращи подпрограмната техника. С конкретен пример – интегрална схема, принципна логическа схема, система микрокоманди, алгоритмични преходи и всичко свързано с проектирането на реален МПУА с програмно закрепена логика читателят може да се запознае тук в следващ раздел.

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

 

1.  Безусловен преход към следващия по ред адрес (БП)

      Този преход следва да се извършва при линейни (последователни) микрооператори в алгоритъма на микропрограмата, каквито са показаните по-долу на фигура 7.4.3A). Алгоритмичните преходи от микрооператор  Oi  към  Oi+1  и в последствие към  Oi+2  и т.н., се превръщат в адресни преходи от адрес a към адрес (a+1) и от адрес (a+1) към адрес (a+2).

 

Фиг. 7.4.3.  Алгоритмични структури с безусловни преходи

 

      Изпълнението на тези преходи се осъществява чрез последователно (естествено) адресиране, за което адресният мултиплексор МUХ1 трябва да бъде превключен към вход 1. Това се постига, когато в тактовете  i, (i+1), (i+2)  микрокомандите подават към СФАП все един и същи микрокод МКК - този на микрокоманда за безусловен преход на следващия по ред БП. При микрокоманда от този тип, съдържанието на полетата Х и А е без значение, както и на някои от разрядите в полето СР.

 

2.  Безусловен преход със скок (БПС)

      При достигане на такъв преход се нарушава естественият ред на адресирането и както е показано на фигура 7.4.3Б), след адреса a на текущата микрокоманда  Оk,  трябва да се адресира микрокоманда  Оp,  намираща се в адрес b. Адресът за преход b може да се съдържа в текущата микрокоманда  Оk,  но може да бъде извлечен от всеки друг източник на адрес, като например Рг./Бр, Стек, ДП1, ДП2 и др., но само не и от Рг.АМК, където е получен адресът (a+1).

      Във връзка с различните възможни източници, микрокомандата  Оk  ще съдържа различен микрокод МКК, т.е. за реализиране на безусловен преход със скок могат да съществуват различни микрокоманди (различието в смисъла ще бъде отразено в МКК).

      В повечето реални логически структури, безусловният преход със скок се реализира чрез модифициране на микрокоманди за условен преход, така че микрокоманди за безусловен преход със скок или въобще няма, или са твърде малко на брой. Типичен пример в този смисъл е микрокоманда за безусловен преход по адрес нула. Такава микрокоманда обикновено се използува за реализиране на преход към изходно състояние и се нарича още от тип RESET, тъй като при подаване на нейния МКК на входа на СФАП, всички възли с памет в последната  (Рг.АМК, Рг./Бр., Стек, СУ)  се нулират, а адресният мултиплексор се превключва към  вход 1, с което в крайна сметка се осигурява достъп до клетка с адрес  А=(Рг.АМК)=0.

      Освен описаната микрокоманда от тип RESET, безусловни преходи в чист вид могат да реализират още микрокоманди, работещи с допълнителните памети. Във всички случаи, когато адресът за преход не се взема от адресното поле на микрокомандата, неговото съдържание е без значение. Това се отнася и до полето за избор на условие Х.

      Безусловният преход със скок може да се реализира и чрез модифицирана микрокоманда за условен преход. Модифицирането се постига с помощта на излишъка на полето Х и мултиплексора МUХ2 или чрез специален служебен разряд от полето СР така, че кодът на привидно избраното условие КУ1, е винаги съответствуващо на истинната стойност (истина; да; 1).

      Безусловният преход със скок може да реализира методите за адресиране, показани на фигура 7.4.19.

      Независимо откъде излиза адресът за преход b, чрез връзката на суматора СМ с мултиплексора МUХ1, винаги се формира следващият по ред адрес (b+1).

 

3.  Условен преход (УП)

      Условният преход е една класическа структура, изразена на фигура 7.4.4.

 

Фиг. 7.4.4.  Алгоритмична структура с условен преход

 

      Условният преход по външно условие, избирано в мултиплексор МUХ2 с помощта на кода за избор Х, може да се реализира с различни микрокоманди, тъй като възможните алтернативни двойки са 6, както беше пояснено по-горе. Алтернативната двойка входове на адресния мултиплексор се определя от МКК, а окончателният избор на източника се осъществява от схемата за управление Сх.У, с помощта на кода на проверяваното условие (КУ1 или КУ2). Кодът на условието за преход е кодиран както следва: КУ = 1, (да, истина);   КУ = 0, (не, лъжа).

      Микрокомандите за условен преход в общия случай предполагат двуадресна структура, но в показаната по-горе на фигура 7.4.2 структура, е предвидено микрокомандата да съдържа само един адрес. В повечето варианти, един от източниците на адрес за преход винаги е Рг.АМК, т.е. разклонението  aÞ(b,g),  показано на фигура 7.4.4, най-често се реализира така:  aÞ(a+1,b).  В такива случаи се говори, че адресът за преход се избира в клона истина (КУ=1), в противен случай се преминава към следващия по ред адрес, т.е. в клона лъжа се върви по естествения ред на адресите. Казаното ни дава право да твърдим, че основен метод за адресиране на микрокомандите в разглежданата структура, е естественият.

      Тъй като в структурата на микрокомандата присъстват и двете й части – операционна и адрес за преход, т.е. смес от двата метода за адресиране, то операционният и условният блокове в рисунката от горната фигура 7.4.4 са реализират от една единствена микрокоманда. Искаме отново да обърнем внимание на тази реализация, за разлика от реализацията й при чисто естественото адресиране, че тя не губи такт и след микрооператор  Oi  следва микрооператор  Оk  или микрооператор  Оp.

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

      В книга [3], раздел 7 читателят може да се запознае с проблема на комплексното условие за преход и предложеното техническо решение.

 

4.  Многоалтернативен условен преход (УПМА)

      Многоалтернативният условен преход най-често се реализира като преход с числов избор. Числовият избор се основава на множеството възможни за проверка кодове на условия {КУ}. В структурата от фигура 7.4.2 възможните кодове са два - КУ1 и КУ2. Тъй като техните числови комбинации са четири: 00=0, 01=1, 10=2, 11=3, то и възможните за избор източници на адрес за преход са четири. Това означава, че в показаната структура може да се реализира само една микрокоманда, която да извършва условен преход към един от 4 възможни адреса. На практика обикновено се реализират микрокоманди, които използуват 3 от възможностите като адресни преходи, а полето А в микрокомандата се използува за поместване на данни.

 

5.  Цикъл с неизвестен брой повторения

      Циклическа структура с неизвестен брой повторения може да се реализира с микрокоманда за условен преход по външно условие КУ1. В този случай, представен на фигура 7.4.5 по-долу, микрокомандата за условен преход трябва да включи източник на адрес, чието съдържание е по-малко по стойност от адреса, в който се намира микрокоманда за условен преход, т.е.  a<b.

      Тъй като изказаното условие е твърде силно, за да не се създават възможности за грешки, микрокомандите за реализиране на цикъл от този вид използуват обикновено адресното поле А (вход 4 на МUХ1), или върховата клетка на стека, който вече обяснихме.

 

Фиг. 7.4.5.  Алгоритмична структура с цикъл по външно условие

 

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

1.      Микрокоманда за безусловен преход към следващия по ред адрес със запис в стека (БПЗС);

2.      Микрокоманда за условен преход с изхвърляне от стека (УПИС).

      Мястото на тези микрокоманди при реализиране на циклически преход е показано на фигура 7.4.6.

 

Фиг.7.4.6.  Алгоритмична същност и място на микрокоманди БПЗС и УПИС

 

      В микропрограми написани за структурата от фигура 7.4.2, микрокомандата за безусловен преход със запис в стека (БПЗС) следва да се употреби непосредствено преди входната точка a в тялото на цикъла, тъй като данновият вход на стека е свързан единствено с кръга на естествената адресация - Рг.АМК, където е подготвен следващият адрес.

      Нормалната работа на затварящият цикъла преход, изисква стекът да бъде от тип "винаги готов за четене". Така от върховата клетка на стека многократно се използва адресът за преход по изхода “не” на условния блок. Както се вижда от блок-схемата по изхода “да” в микодействията на микрокомандата е включено “изхвърляне” на неактуалния вече адрес за преход. Изхвърлянето се реализира чрез декрементна модификация на стековия указател. Обемът на стека определя максималния брой вложени един във друг на цикли.

 

6.  Цикъл с известен брой повторения

      Алгоритмичната структура от този тип е показана по-долу на фигура 7.4.7. За организиране на цикъла се използува изваждащият брояч Рг./Бр., а като условие за край на цикъла - вътрешното условие (Рг./Бр.)=0? чрез сигнала КУ2. За целта е необходима микрокоманда за безусловен преход със запис в брояча - (БПЗБ), която трябва да се употреби преди входната точка a на тялото на цикъла. Тази микрокоманда освен всичко останало трябва да запише в Рг./Бр. начална стойност Тъй като алгоритмичната структура е от вида с пост-условие, то началната стойност, която се записва в брояча трябва да бъде намалена с една единица.

      Цикълът се организира чрез условието за край. За неговата проверка е необходима още една микрокоманда – микрокоманда за условен преход по вътрешното условие КУ2 с автоматична модификация на брояча - (УПМБ). Инкрементната модификация на брояча се извършва при неизпълнено условие за край на цикъла.

 

Фиг. 7.4.7.  Алгоритмична същност и място на микрокоманди БПЗБ и УПМБ

 

      Началната стойност на брояча се зарежда от полето А на Рг.МК при изпълнение на микрокоманда БПЗБ. Адресът за преход се съдържа в адресното поле на микрокомандата за условен преход УПМБ. Тези две микрокоманди могат да съществуват и във вариант, при който се работи и със стека, както беше показано на фигура 7.4.6. В този случай, при излизане от цикъла по условието КУ2=1, микрокомандата УПМБ трябва да изпълни модификацията на стековия указател СУ:=(СУ)-1. Тази модификация се нарича изхвърляне от стека. Така от стека се изхвърля адресът a на входната точка на тялото на цикъла, който вече не е актуален и не е необходимо да стои там, тъй като се реализира изход от цикъла.

 

7.  Удължаване на продължителността на микротакта

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

      Първият начин е чрез използуване на външен оповестяващ сигнал за край на микрооперацията в операционното устройство, т.е. чрез кода КУ1. За целта може да се използува обикновена микрокоманда за условен преход (УП), в която адресът за преход е следващият по ред. Зациклянето (в смисъл на удължаване) на тази микрокоманда се постига по клона лъжа на проверяваното условие (виж фиг. 7.4.5), чрез подаване на нула (0) към суматора СМ, с което не се осъществява нарастване на получаваната от него сума. С други думи, привидното отклонение към следващия по ред адрес в кръга на естественото адресиране не се реализира, тъй като операндът (+1СМ) е подменен с (+0СМ). Това е възможно в случаите, когато микрокомандата, чрез специален бит от полето на служебните разряди, управлява входа +1СМ на СФАП.

      Регистърът на микрокомандата ще поддържа стойностите на управляващите сигнали до момента, когато проверяваното условие се изпълни (КУ1=1). При изпълнено условие ще се извърши преход по адрес, посочен в адресното поле на микрокомандата и тъй като там е записан следващият по ред адрес, микропрограмата ще продължи своя ход. Употребата на микрокоманда за условен преход по този начин се различава от всяко друго нейно използване само по стойността в съответния й служебен разряд.

      Във втория случай е отнапред известно удължаването на продължителността на микрокомандата като число (в брой тактове на тактовия генератор). Тогава реализацията му може да се осъществи чрез циклическа структура от вида с предварително известен брой повторения. За целта може да се използва микрокоманда за условен преход по вътрешното условие КУ2. Броят на тактовете за удължаване се зарежда като начална стойност в изваждащия брояч Рг./Бр., върху чието съдържание се формира условието за край на цикъла, с преход към следващата по ред микрокоманда. Максималният брой повторения се ограничава единствено от дължината на този брояч.

 

8.  Подпрограмна техника

      Наличието на стек в структурата на СФАП на микропрограмния управляващ автомат позволява да бъдат реализирани микрокоманди със специфичните преходи на подпрограмната техника (преход и връщане) показани на фигурите по-долу.

      Разглежданата тук примерна логическа структура дава възможност за реализация на различни видове преходи. Например:

- Безусловен преход към микроподпрограма (БПМПП) - фигура 7.4.8 ;

- Условен преход към микроподпрограма по външно условие (УПМПП) - фигура 7.4.9 ;

- Условен преход към микроподпрограма по вътрешно условие (УПМПП/Ц) - фигура 7.4.10 ;

и още:

- Безусловно връщане от микроподпрограма (БВМПП) - фигура 7.4.8 ;

- Условно връщане от микроподпрограма по външно условие (УВМПП) - фигура 7.4.9 ;

- Условно връщане от микроподпрограма по вътрешно условие (УВМПП/Ц).

      Независимо от това дали преходът към микроподпрограма е безусловен или условен, микрокомандата за преход реализира едновременно микрооперациите в операционното устройство и запис на адреса за връщане в стека. Адресът за връщане е винаги следващият по ред, тъй като е взет от изходите на Рг.АМК, където винаги се намира следващият по ред адрес.

      Изключение може да направи микрокоманда за условен преход по вътрешното условие КУ2, в случай, когато действията в нейната операционна част трябва да се повтарят многократно, заедно с тези от нейното тяло.

 

 

Фиг. 7.4.8.  Безусловен преход към микроподпрограма (БПМПП)

 

 

Фиг. 7.4.9.  Условен преход към микроподпрограма по външно условие (УПМПП)

 

      Микрокомандата от тип УПМПП/Ц – условен преход към микроподпрограма в цикъл, който е от вида с предварително известен брой повторения и се организира с помощта на вътрешното условие КУ2, е представена с блок-схемата на преходите на фигура 7.4.10 по-долу. За нейното изпълнение са предвидени действия по зареждане на началната стойност К в брояча БР; запомняне на адреса за връщане в стека; инкрементна модификация на брояча и проверка на вътрешното условие, като условие за край на цикъла.

 

 

Фиг. 7.4.10.  Условен преход към микроподпрограма по вътрешно условие (УПМПП/Ц)

 

      При такава алгоритмична структура връщането от подпрограмата трябва да бъде не в следващия по ред адрес, а в същия, от който се прави преходът към микроподпрограмата. Веднага трябва да кажем, че този вид преход не може да се реализира в логическата структура от фигура 7.4.2. За да е възможен той, микрокомандата УПМПП/Ц трябва да записва в стека предидущото съдържание на адресния регистър, т.е. своя собствен адрес a. В нашата логическа структура по време на текущия такт (когато в регистъра на микрокомандата се намира разглежданата в момента УПМПП/Ц) в адресния регистър Рг.АМК се съхранява следващият адрес (a+1), а на изхода на суматора СМ стои подготвен по-следващият адрес (a+2). За да се записва в стека необходимият в момента адрес a, последният следва да се възстановява от текущото съдържание на Рг.АМК чрез изваждане на единица или да се взема от допълнителен регистър, съхраняващ адресите с такт закъснение. За да стане това възможно трябва да се преработи схемата за формиране на адрес за преход СФАП, което ние тук не сме направили. Разработването на техническо решение на проблема оставяме на вниманието на читателя.

      Обратно, при връщане от микроподпрограмата, адресът за преход ще се взема от върховата клетка на стека, който ще излиза на изход през вход 2 на адресния мултиплексор MUX2. В случая това ще бъде адресът a. Така при неизпълнено условие за край на цикъла (КУ2=0) микрокоманда УПМПП/Ц ще прави преход към адрес b и микроподпрограмата ще се повтаря. Когато условието се изпълни (КУ2=1), мултиплексор MUX2 ще се превключи на вход 1 и на изход ще излезе следващият адрес (a+1), който се съхранява в адресния регистър. По същото време микрокомандата УПМПП/Ц трябва да извърши изхвърляне на адреса a от стека. Това става чрез автоматична модификация на стековия указател СУ:=(СУ)-1. От описанието на действията свързани с обратния преход се вижда, че в тях няма особености и те могат да се изпълнят с обикновена микрокоманда БВМПП.

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

 

 

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

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