§ 2.2   Същност на структурния подход

Essence of the structural approach

 

            А)  Организационна йерархия на изчислителния процес

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

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

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

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

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

      Организацията на изчислителния процес на това ниво е най-многообразна, като се имат предвид езиковите и архитектурните средства за повишаване на производителността на процесорите, разработени до момента.

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

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

      Най-ниското ниво е нивото на логическите елементи. На това ниво изчислителният процес е вече логически процес на превключване. Проектирането на логическите схеми е свързано с използуваните производствени технологии. Освен известните електронни схеми за реализация на операциите в алгебрата на логиката, в полупроводниковите технологии масово се прилагат регулярни (еднородни) структури като програмируеми логически матрици, повтарящи се структури на елементарни процесори и прочие. Проектирането и реализирането на изчислителния процес на това ниво се осъществява с помощта на специално създадени комплексни системи за автоматизирано проектиране и производство. Съществуват две основни технологии за производство – МОП-технология и ТТЛ-технология, както и редица непрекъснато развиващи се техни модификации. Основните цели, които преследват интегралните технологии са две – максимално бързодействие и максимално уплътняване.

            Б)  Йерархия на структурните елементи

      Автоматичното реализиране (изпълнение) на организирания изчислителен процес е възможно само върху реално техническо средство, ето защо в основата стоят неговите градивните елементи, които са разгледани по-долу.

      Градивните елементи, от които образно може да се разбира че е построена цифровата изчислителна машина, се определят от степента на детайлизация при разглеждане на нейната същност. Мястото им може лесно да се разбере чрез пирамидата, показана на фигура 2.2.1.

      В основата на тази пирамида естествено са положени цялата теория, концепциите и организационните принципи, според които ще се реализира една изчислителна машина. Ясно е например, че ако е прието машината да бъде електронна, то и градивните й елементи – възли, устройства и т.н. ще бъдат електронни. Естествено, в съвременните компютри е възможно да съжителстват противоречиви принципи.

 

Фиг. 2.2.1.  Пирамида на структурните понятия

 

      На най-ниско ниво в пирамидата от фигура 2.2.1 стоят първичните реални градивни елементи, които по своето функционално предназначение се обединяват в три групи:

1. Логически елементи – това са конструктивно завършени електронни схеми, които реализират определени логически функции или системи от логически функции.

2. Запомнящи елементи – това са конструктивно завършени изделия от електронни и логически елементи, предназначени да съхраняват във времето логически стойности (например тригер).

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

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

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

1. Потенциални елементи – кодират логическите стойности чрез непроменящи се във времето стойности на някаква физическа величина (напрежение, ток, светлина и др.).

2. Импулсни елементи – кодират логическите стойности чрез наличие или отсъствие в определен момент на импулсно изменение на стойността на физическата величина.

3. Импулсно-потенциални елементи – използват и двата метода за кодиране, което най-често се налага от желанието за по-висока надеждност на елементите.

      Елементите могат да бъдат определяни още като:

- пасивни и активни;

- дискретни и интегрални;

- аналогови и цифрови;

- бавни и бързи;

- синхронни и асинхронни и прочие.

     Логически елементи са технически средства, реализиращи основните логически функции. Най-удобното представяне на логическите функции е аналитичното. Аналитичният вид на логическите функции е необходим за построяване на логическата им схема.

      Градивните елементи могат да бъдат изобразявани с помощта на условни графични означения. Условните графични означения се дефинират чрез нормативен акт – Български Държавен Стандарт (БДС) и всеки чертеж, изразяващ принципна логическа или електрическа схема, следва да бъде изпълнен при спазване на правилата, определени чрез БДС. Правилата на БДС, за представяне на логическите градивни елементи, достатъчно подробно са изложени в книга [2]. Тъй като процесът на логическо проектиране в някои свои етапи е осигурен с автоматизирани системи за проектиране, читателят реално може да се сблъска с условни графични означения, изпълнени според изискванията на различни стандарти. Във всички случаи, когато следва да се изобрази логически елемент, това става чрез неговото условно графично означение по БДС. Например:

 

Фиг. 2.2.2.  Условни графични означения на логически елементи

 

      На следващото ниво от пирамидата на структурните понятия се намират функционалните възли.

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

      Вида на възлите зависи от предназначението им и от средствата с които са реализирани. Тук ще се ограничим, като ще имаме предвид възли, които се изграждат с помощта на горе посочените градивни елементи, т.е. такива, които са преди всичко логически. Възлите също като градивните елементи притежават функционална и конструктивна завършеност. Логическите възли представляват логически схеми с много входове и много изходи. Последните най-често са обединени от една обща абстрактна интерпретация, като например “код на символ” или “число”. Логическите възли много често се характеризират с голяма повторяемост на едни и същи градивни елементи, т.е. характеризират се с хомогенност на вътрешната си структура, причина за което е разрядната повторяемост в информационните полета, в частност в разрядната мрежа. В логическите възли са вградени точно определени потребителски функции, които са свързани с преработката на логическата информация. Потребителските функции са свързани с необходимост от запомняне, преместване, превключване, откриване, разпознаване, събиране и т.н. В много от възлите са вградени повече от една функции и като следствие от това възниква необходимост от управление на избора на функция, което се постига с помощта на допълнителни логически сигнали за инициализация (входове).

      В зависимост от градивните си елементи възлите се класифицират в две основни групи:

·        възли без памет.

·        възли с памет;

Възли без памет (комбинационни схеми)

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

      В идеализирания случай на интерпретация логическата функция на изходите на комбинационните схеми получава нова логическа стойност в същия момент, в който постъпи нова входна информация (съответстваща на нейното превключване). Практически обаче превключването на комбинационните схеми е процес, който протича във времето и характеризира тяхното бързодействие. Закъснението (латентността), което внасят възлите без памет, трябва да се взема под внимание, когато се синтезират устройства с повишено бързодействие. На тези проблеми са посветени редица раздели в книга [1] и книга [2]. Към логическата функция на някаква свързана съвкупност от възли тяхното превключване обаче няма отношение.

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

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

      Структурното представяне на логическите възли е свързано най-вече с тяхната потребителска функция. Общо прието е логическите възли без памет да се изобразяват чрез трапец, както е показано на фигура 2.2.3.

 

Фиг. 2.2.3.  Структурно представяне на възли без памет

 

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

Възли с памет

      Тези логически възли се характеризират с това, че притежават една способност, която не може да им бъде отнета способността да съхраняват стабилно във времето (при определени условия) на своите изходи логическите стойности, които се съдържат в тях, независимо от промените в стойностите на своите входове, т.е. те помнят възникналата в тях информация в предходни моменти. Тази им характеристика се дължи на факта, че те обикновено се изграждат чрез запомнящи градивни елементи (вижте книга [2]). Актът на задействане на тази основна функция на възлите с памет (т.е. актът на запис) може да бъде контролиран и неконтролиран, което ги определя като синхронни и асинхронни. Много често възлите с памет притежават и други функции, които еднозначно определят стойностите на изходите по определен за всяка функция начин. Такива функции са например изместване, броене, събиране, нулиране, зареждане и др. В тази връзка са и наименованията на тези възли регистри, броячи, акумулатори, буфери и т.н.

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

      Логическите възли с памет също могат да бъдат изобразявани със стандартни условни графични обозначения. Това се прави в принципните логически схеми (вижте примерите в книга [2], както и в книга [3]). Когато обаче логическият възел се представя в структурна схема, той се изобразява структурно. Общо прието е логическите възли с памет да се изобразяват чрез правоъгълник, както е показано на фигура 2.2.4.

 

Фиг. 2.2.4.  Структурно представяне на възли с памет

 

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

      Описание на функционирането на възлите е трудно да бъде направено по начина, по който се описват градивните елементи. В повечето случаи логическите функции на възлите са по-сложни, с поразрядна повторяемост, свързани с много вътрешни условия, в резултат на което се оказват непрактични и неподходящи. Самият факт, че възлите са на по-високо ниво в структурната пирамида (вижте фигура 2.2.1), изисква специални езикови средства за описание на техните функции. Такива средства са създадени в структурно-функционалните езици. В съвременни условия се практикуват няколко такива езика, наречени най-общо HDL (Hardware Description Language).

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

Под устройство тук ще се разбира едно събирателно понятие от две части:

          1.  логическа структура ;

          2.  алгоритъм за функциониране.

      Логическата структура на едно устройство се изгражда от логически възли и връзки между тях. Една съвкупност от логически възли не може да се приеме за логическа структура на едно устройство, ако не са известни връзките между възлите. Както съставът на възлите в дадена структура, така и връзките между тях, се определят като напълно мотивирани, оправдани, логични и необходими, тъй като са подбрани и обединени според изискванията на алгоритъма, чиято реализация представляват. Връзките между възлите са логически и могат да бъдат определени още като еднофазни, двуфазни, паралелни, последователни, прави, инверсни, буферирани, еднопосочни, двупосочни и т.н. Определянето на връзките най-често е в контекста на функциите на възлите, които свързват. При разработване на логическите структури съществуват два основни метода за организиране на връзките – произволна организация и магистрална организация. В повечето случаи в практиката те се използват комбинирано. Произволна организация на връзките означава, че при синтез на логическата структура на едно устройство е позволено между логическите възли да се изграждат връзки на принципа “всеки с всеки”. В същото време при магистрална организация на връзките в сила влиза принципът “един с всички”. Стандартното изобразяване на връзките в принципните схеми е представено в книга [2]. В структурните схеми изобразяването на връзките се характеризира с по-голяма свобода.

      Алгоритъмът за функциониране на дадено устройство се реализира в логическата му структура чрез подаване към възлите на съответно подредени във времето и осмислени управляващи сигнали. Изпълнението на алгоритъма представлява реализация на функцията на устройството.

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

      В този естествен ход на разсъждения се стига до схващането, че всяко завършено техническо средство от тип автомат може да бъде разчленено на две устройства – операционно (решаващо, преработващо) устройство (ОУ) и управляващо устройство (УУ). Това схващане е прието в теорията на крайните автомати като принцип за декомпозиция (принцип на Глушков), тъй като то в значителна степен облекчава анализа и синтеза на логическите устройства. Същността на понятието автомат, на неговите две части и споменатия принцип са илюстрирани на фигура 2.2.5.

      На фигурата е представено как в автомата влизат входни данни (най-общо казано материали) и излизат изходни резултати (най-общо казано готови продукти). Изходните резултати се получават от операционното устройство, в което се реализира предвидената за тях преработка. В този смисъл ние имаме разбирането, че потребителската функция на автомата е вложена в операционното устройство. Операционното устройство работи под управлението на управляващото устройство, т.е. имаме разбирането, че синтезираният управляващ алгоритъм е вложен в управляващото устройство (в управляващия автомат). Управлението се постига чрез множеството управляващи сигнали – {УСj}, които възбуждат в логическите възли на операционното устройство съответните микрооперации. По време на изпълнение на управляващия алгоритъм, операционното устройство изпраща обратно към управляващото устройство множеството оповестяващи сигнали – {Xk}, които се изискват от алгоритъма за управление, в качеството им на признаци (условия). След изпълнение на управляващия алгоритъм, т.е. след реализиране на потребителската функция, автоматът съобщава за окончателното получаване на изходните резултати чрез сигнал “Готов”. Всяко поредно стартиране на автомата се постига чрез външен сигнал “Пуск”.

 

Фиг. 2.2.5.   Логическа структура на понятието автомат

 

      Изпълнението на функцията (като процес на превключване във времето) се осигурява от двигател. Двигателят най-често е последователност от тактови импулси, осигурявани от тактов генератор ТГ. Процесът на преработка на входната информация до получаване на изходните резултати представлява една последователност от временни интервали (тактове), по време на които в отделните възли на логическата структура на операционното устройство се изпълняват възбудените от управляващите сигнали микрооперации.

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

 

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

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

     Последователността от микрокоманди, с които е описан алгоритъмът на функциониране на автомата, се нарича микропрограма.

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

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

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

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

      Например, в аванс можем да кажем, че всяка цифрова изчислителна машина е съвкупност от три основни устройства – операционно (АЛУ), запомнящо (ОП) и управляващо (УУ). Но тази съвкупност от устройства не би била машина, ако не бе подчинена, обоснована в своята същност от следните три основни принципа:

·         принцип на програмно управление;

·         принцип на запомнената в паметта програма;

·         принцип за електронна реализация.

      Тези и още някои допълнителни принципи и произлизащите от тях понятия и концепции водят до следните няколко системи в цифровата машина, които обхващат основната съвкупност от устройства и които ще бъдат обект на нашето внимание по-нататък:

·         система машинни команди;

·         система за прекъсване;

·         входно-изходна система;

·         запомняща система.

      За да се изясни например системата от машинни команди на даден процесор следва да се изясни смисъла на принципа за програмно управление. От него произлизат понятията машинна команда, машинен език, програма, първичен организационен алгоритъм, наречен команден цикъл и др. Машинната команда има строго определени задачи и своя структура. Системата машинни команди трябва например да притежава свойството функционална пълнота. Изпълнението на една машинна команда по същество е изпълнение на нейната микропрограма. Микропрограмата от своя страна реализира определен алгоритъм, което е свързано с издаване на съответната последователност от управляващи сигнали, които задействат апаратни превключвания и т.н. Системата машинни команди има свои собствени характеристики. Например за нея говорим, че е едноадресна или двуадресна, че е редуцирана (RISC) или комплексна (CISC). Без да имаме за цел до край да изясним сега тази система, казаното току що следва да се разбира като пояснение към даденото по-горе определение за понятието система и йерархичното ниво на системите.

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

 

 

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

§ 2.3   Език на микрооперациите   ( Microoperations language )