Организация на изпълнението на инструкциите в процесорите. Паралелно изпълненеие

Компютърна и комуникационна техника Лекция

2.2. Организация на изпълнението на инструкциите в процесорите. Паралелно изпълнение на инструкциите

Етапи при изпълнение на машинната инструкция

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

Фиг. 1 Първичен организационен алгоритъм (цикъл от инструкции)

Прочитането на инструкцията става от адрес, който се формира автоматично в програмния брояч. Адресът на инструкцията е нейния начален адрес, съдържащ нейния код на операцията (КОП). При доставяне на инструкцията, в зависимост от дължината й, от ширината на данновата шина и от структурата на физическата памет, програмният брояч се модифицира (инкрементно) така, че съдържанието му в края на този етап винаги представлява следващия адрес. Прочитането и доставянето на инструкция или операнд от паметта ще наричаме още извличане. Извличането на инструкцията от оперативната памет в регистъра на инструкцията, при тази първоначална класическа постановка, се осъществява от централното управляващо устройство ЦУУ ().
Очевидно е, че в организационно отношение, изчислителният процес се управлява в един цикъл от безкрайно повтарящи се действия:
…… / доставяне / изпълнение / преход /, / доставяне / изпълнение / преход /,
/ доставяне / изпълнение / преход/, / доставяне / изпълнение / преход/,
и т.н. ......
Този безкраен цикъл представлява основният алгоритъм, по който работи централното управляващо устройство и се нарича цикъл от инструкции. Този безкраен цикъл на доставяне на машинна инструкция, изпълнение на заповяданото от нея действие и преход към следващата инструкция представлява първичния организационен алгоритъм за автоматично функциониране на цифровата машина като универсален изчислител. Този алгоритъм е заложен в централното управляващо устройство като краен управляващ автомат.
В заключение може да се обобщи, че цифровата изчислителна машина се състои основно и задължително от три устройства - аритметично-логическо (АЛУ), запомнящо (ЗУ) и управляващо (УУ), които функционират съвместно според алгоритъма на цикъла от инструкции безкрайно повторение на действията доставяне, изпълнение, преход.
Съвкупността от тези три устройства и тази организация на тяхното съвместно функциониране най-общо формира понятието централен процесор (CPU - central processor unit) или просто процесор. Централният процесор представлява същността на цифровата изчислителна машина. Структурно цифровият процесор се представя, както е показано на фигура 2, а първичният организационен алгоритъм на цикъла от инструкции е представен на фигура 1.

Фиг. 2 Определение за цифров процесор

В края на първия етап, с попадането на инструкцията в регистъра на инструкцията, същата се използва от управляващото устройство за преход към нейната микропрограма и стартиране на същата. Реализацията на този преход често се нарича декодиране на инструкцията, т.е. намиране на нейната микропрограма. За целта се използва информацията от всички полета на инструкцията, които имат отношение към нейния КОП. Тук следва да поясним, че в ЦУУ се съдържат алгоритмите за изпълнение на всички машинни инструкции, т.е. това устройство, като управляващ автомат, е мултифункционално. Изпълнявайки съответната микропрограма, управляващото устройство управлява изпълнението на операцията в операционното устройство. С прехода към съответния алгоритъм управляващото устройство фактически преминава към втория етап в цикъла от инструкции – изпълнението на инструкцията.
По време на изпълнение на типичната машинна инструкция се открояват допълнително следните общи етапи в нейната микропрограма:
Изчисляване на изпълнителния адрес на операндите ;
Прочитане и доставяне (извличане) на операндите от оперативната памет ;
Изпълнение на операцията в операционното устройство (АЛУ);
Фиксиране на резултата и неговите признаци.
Интересно е да погледнем в случая на управляващото устройство като на устройство, съсредоточило в себе си цялата власт, държащо под контрол и управляващо всички процеси в структурата на процесора. Ще изобразим във вид на времедиаграма заетостта на това устройство с останалите устройства в класическата структура на процесора.

Фиг. 3 Заетост на ЦУУ с устройствата на процесора

Колкото и идеалистична да е представата за работата на централното управляващо устройство от фигура 3, безспорно се налага изводът, че то не общува непрекъснато с отделните устройствата, при неговата централизация, то не е в състояние да направи това. Като следствие, в работата на отделните устройства, неизбежно се появяват престои. Този факт е особено неприятен, когато се цели висока производителност на процесора. В съответствие с този вид, първичният организационен алгоритъм на цикъла от инструкции се практикува в процесори с елементарна и непретенциозна архитектура. Ще подкрепим казаното с цикъла от инструкции (обобщен) на серия 8-битови микропроцесори на Motorola МС68 – фигура 4.

Фиг. 4 Цикъл от инструкции на 8-битови микропроцесори Motorola

Разбираме, както се вижда от рисунката, че след включване на захранването се генерира сигнал RESET. Този сигнал се нарича още авторесет. След неговото автоматично снемане, върху адресната шина се генерира фиксиран адрес FFFE и от паметта се прочита 1 байт, който се записва като съдържание на старшата половина на програмния брояч ( PCH:=(FFFE) ). Операция четене се повтаря за младшата половина ( PCL:=(FFFF) ). Така програмният брояч РС се оказва зареден с началния адрес на първата програма. Влизайки с този адрес в цикъла от инструкции, най-напред се проверява наличието на входните сигнали:
#STOP (изключване на шините и тактовия вход). Докато този сигнал се подава, в логическата структура на процесора няма никакви превключвания. Работата продължава след изчезване на сигнала.
Заявка за немаскируемо прекъсване #NMI. Ако такава има, следва незабавно прекъсване на текущата програма. Прекъсването се реализира от микропрограмна процедура.
Заявка за маскируемо прекъсване #IRQ. Ако такава има и не е маскирана (флаг I=0), следва прекъсване.
Следва извличане на първия байт на инструкцията. Тъй като във всички случаи това е кодът на операцията, следват проверките дали това не е:
Команда за програмно прекъсване SWI;
Команда очаквай прекъсване WAI;
Зареждане на акумулатор в регистъра на признаците TAP;
Установяване на маската за прекъсване SEI;
Изчистване на маската за прекъсване CLI;
Връщане от прекъсване RTI.
За тези инструкции, както и за всички останали това е етапът на изпълнение. След изпълнението цикълът от инструкции се затваря.
Допълнителни организационни принципи
За разлика от представеното по-горе, развитите в архитектурно отношение процесори се характеризират с използването на множество допълнителни организационни принципи, които имат за цел оптимизиране на управлението на автоматичния ход на изчислителния процес и повишаване на общата им производителност. Всички тези принципи обаче си приличат по това, че се стремят да реализират на практика под една или друга форма паралелни във времето действия. Възможностите за паралелни във времето действия се съдържат в хода на изчислителния процес, който е структурен процес. Ще подкрепим казаното чрез един обикновен пример: да се изчисли стойността на израза Z=a+b+c-d, в който са записани 3 последователни операции от тип събиране. Ако запишем обаче израза така: Z=(a+b)+(c-d), веднага можем да съобразим, че първата и последната операции могат да се изпълнят едновременно (паралелно във времето), в резултат на което изчислението ще завърши по-бързо.
Положителният ефект от реализацията на различните видове паралелни във времето действия е естествено разбираем и не се нуждае от допълнителни разяснения. Ето защо по-долу ще изброим някои от организационните принципи, прилагани с цел автоматично откриване и реализация на паралелизми:
1. Изхождайки от неефективността на класическата организация, която по-горе бе изяснена, е напълно разбираем отказът от централизираното управление и преход към децентрализирано или още разпределено. Този подход се характеризира с декомпозиране на управляващите алгоритми. Отделно обособените части, имащи самостоятелна роля, се реализират като отделни управляващи автомати, които както териториално, така и функционално, са неразривно свързани (съвместени) с операционните устройства, които управляват. Това превръща съответните операционни устройства в самостоятелни операционни автомати. Главното достойнство на тази организация се състои във възможността за паралелно (във времето) функциониране на тези самостоятелни операционни автомати. Паралелното и асинхронно функциониране води, от една страна до рязко повишаване на производителността при обработка на потока от назначени операции, а от друга страна до нови архитектурни решения относно структурата на съществуващите в процесора устройства, както и до появата на нови такива. Задачата, да бъде стройна “песента” на този “хор”, е поверена на така наречения диспечер. Същността на съвместното функциониране на множеството автомати е воденият между тях “диалог” на ниво сигнали.
Типичен пример за този подход е ранната структура на микропроцесор Intel8086. В този процесор е организирано асинхронно паралелно функциониране на операционното устройство (EU – execution unit) и устройството за управление на интерфейса с оперативната памет (BIU – bus interface unit). Основната задача на устройството BIU е да поддържа командния FIFO-буфер (опашка от извлечени машинни инструкции) винаги пълна. Това то постига, като изпреварващо спрямо хода на изчислителния процес, извлича от оперативната памет машинни инструкции на текущата програма и ги поставя в командния буфер. При завършване изпълнението на текущата инструкция в операционното устройство, по силата на цикъла от инструкции, се заявява следващата инструкция. Тя обаче вече се намира на върха на командния буфер и може непосредствено да бъде декодирана и да започне нейното изпълнение. Докато изпълнителното устройство е заето с новата операция, устройството за управление на интерфейса попълва изпразнената част от командния буфер. Ако по време на изпълнение на операцията на операционното устройст

Преглед на началото - целият файл след изтегляне

Описание

Дисциплина: Компютърни архитектури и организация на компютъра

0 коментара

Все още няма коментари. Бъдете първият, който ще коментира.

За да коментирате, трябва да сте влезли в профила си.

Влезте