3.8.4  Апаратно насищане

Hardware saturation

 

 

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

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

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

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

 

Фиг. 3.8.4.1.  Множество функционални устройства на пътя на командния поток

 

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

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

      Съществува ли на практика в потребителските алгоритми паралелизъм, от какъв вид е този паралелизъм и какви са възможностите за неговото оползотворяване, това са въпроси, на които в тази книга не се дава изчерпателен отговор. Тази концептуална информация читателят може да намери в книга [5].

 

 

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

§ 3.9  Изчисляване на елементарни функции   ( Calculating elementary functions )