ГЛАВА   1

 

Въведение

Introduction

 

 

1.1.   Синхронност и Булева логика

1.2.   Асинхронна логика

1.3.   Протоколи за трансфер

1.4.   Принцип на конвейерна организация

1.5.   Закъснителни модели

1.6.   Конвейерни автомати

1.7.   Съвременни характеристики на асинхронния дизайн

1.8.   Допълнителни аспекти в сравнителния анализ

1.9.   Хардуерна реализация на алгоритмични структури

1.10.   За същността на тази книга

 

 

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

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

 

 

1.1.  Синхронност и Булева логика

 

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

Основното достойнство на синхронните схеми, което ги прави предпочитани, е предвидимият момент на превключване. Занимавайки се с проблемите на изчислимостта още през 1947 година А. Тюринг е обосновал необходимостта от формално тактуване на последователностните схеми. Тактуването прави синтеза на логическите функции по-лесен, тъй като осигурява минималното им аналитично описание. Тактуваните схеми работят в дискретно време. Времето в теорията на крайните автомати се измерва с брой на тактовете. Тактуваните схеми се определят като синхронни. Синхронността се изразява в това, че превключването на даден логически елемент е възможно в точно определен момент – моментът в който се появява тактовият импулс. Внасянето на условие за превключване, чрез тактова последователност, значително облекчава синтеза на логическите системи.

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

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

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

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

За преодоляване на тези недостатъци се разработват все по-нови методи и технологии, но решителен пробив в това направление все още няма.

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

 

 

1.2.  Асинхронна логика

 

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

Основите на теорията на превключвателните схеми и крайните автомати са положени от три публикации:

1.     David A. Huffman. The Synthesis of Sequential Switching Circuits. MIT, 1953. (Метод за асинхронен синтез. Синтезирана е динамична схема, известна като схема на Хуфман, която е в основата на всички съвременни тригери, работещи по фронт).

2.     George H. Mealy. A Method for Synthesizing Sequential Circuits. Bell Labs, 1955. (Метод за синхронен синтез на последователностни логически схеми).

3.     Edward F. Moore. Gedanken-experiments on Sequential Machines. Bell Labs, 1956. (Метод за синхронен синтез).

Към метода на Хуфман за синтез на логически схеми трябва да се добави и синтезът схеми, независими от вътрешните състезания (delay-insensitive circuits) и от скоростта на разпространение на сигналите (speed-independent circuits), разработвани от Дейвид Мюллер (D. E. Muller) от Университета на Илинойс в периода 1955-1963 година.

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

§       Разглеждат се промените само в един вход. Не се разглеждат конкурентни входни промени;

§       Не са дефинирани ограниченията на средата, в която функционира схемата, което е от съществено значение при синтезиране на вериги, които генерират сигнали за край на превключването;

§       Формулират се сложни правила за отчитане на състезания и опасности между елементите на схемите;

§       Полезността на методите е ограничена само в рамките на “малкия дизайн”;

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

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

Пионер в теоретическите изследвания на апаратен обект, който от гледна точка на съвременното обектно ориентирано програмиране има същите свойства, които вече споменахме, е Дейвид Мюллер (David E. Muller), който през 50-те години изследва теорията на асинхронната логика. Първите му публикации за изследвания върху асинхронен дизайн се появяват през 1955 година. През 1959 година той публикува отчет, в който за първи път е представена смосинхронизираща се логическа схема “И”, получила по-късно наименованието Мюлер С-елемент. Приложение обаче схемата намира едва в началото на 90-те години. Тази схема представяме по-долу на фигура 1.2.1.

 

           

Фиг. 1.2.1.  Логическа схема на С-елемент и таблица на истинност

 

Малко по-късно през 1961 година Реймонд Мюллер (Raymond E. Muller) издава книгата “Switching Theory”. Тази книга, съдържа основните резултати в теорията на логическите схеми, функционирането на които не зависи от времето за превключване на съставящите ги логически елементи. Отстраняването на опасностите от състезания в асинхронния дизайн е много сложен проблем. В последователностните вериги, състезанията, които се причиняват от обратните връзки, съществуват независимо от коректността на комбинационната логика. В тези случаи има два вида състезания: от една страна между вторичните сигнали, а от друга между вторичните и първичните сигнали. В годините на развитие на асинхронния дизайн не липсват и съмнения относно ползата от него.

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

§       DI (Delay-insensitive). Логически схеми, които са синтезирани да функционират правилно независимо от закъсненията на сигналите от градивните елементи и връзки между тях;

§       QDI (Quasi-Delay-Insensitive). Логически схеми, които са синтезирани да функционират правилно независимо от закъсненията на сигналите от паралелни схеми;

§       SI (Speed-independent). Логически схеми, които са синтезирани да функционират правилно независимо от закъсненията на сигналите от градивните елементи. Закъсненията във връзките са игнорирани;

§       ST (Self-timed). Схеми, в които елементите или групи от елементи работят в свое относително време, където закъсненията във връзките са игнорирани. На по-високо ниво схемата се синтезира като нечувствителна към времевите разлики.

 

Фиг. 1.2.2.  Йерархия на асинхронните схеми

 

Както се подразбира, интерпретацията е несъществена и не се отразява на дизайна като цяло.

 

1.2.1.  Троична бройна система

В търсене на по-добра логика са провеждани научни изследвания върху тризначни системи и реализиращите ги тризначни елементи. Информационната мощност на кортежи от символи на тризначна система (трити) е около 1,585 (1,585»log2(3)) пъти по-голяма в сравнение с двоичните в двузначна система. Хардуерната реализация на елементи за тризначна логика е постигана в две направления.

Първото направление се основава на BCT-код (Binary Coded Ternary). Като двоичен този код е 2-битов, така че винаги остава една свободна комбинация. В този код са разработени методи за минимизация чрез карти на Карно.

Второто направление се основава на електронни схеми, използващи симетрични захранващи напрежения, така че за изходния сигнал да е възможен тризначният цифров набор (+1, 0, -1).

Задължителни за реализацията на функционалните логически и цифрови възли и устройства са последователностните схеми. Главно място в тези схеми заемат различни запомнящи елементи, т.е. троични тригери. В подкрепа на асинхронната логика има разработки, които представляват тризначен еквивалент на Мюлер С-елемента. В трудовете на Варшавский този тригер е изследван като “Г-тригер” (тригероид). Доналд Кнут го определя като тригер “flip-flap-flop”.

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

В началото на 60-те години в Русия е произвеждан компютър “Сетунь”, който е използвал за представяне и за обработка на данните троична бройна система. Основните характеристики, които определят практическата ценност на троичната бройна система и на тризначната логика според автора му (Брусенцов, Н. П.), са следните:

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

§       Знакът на числото се съдържа (се изразява) чрез най-старшата значеща цифра и не е необходим специален знаков разряд;

§       Числата се сравняват лесно, без да е необходимо да се взема под внимание техния знак;

§       В резултат на това изпълнението на машинна команда за условен преход е два пъти по-бързо в сравнение с двоичната команда;

§       Скъсяването на числото е равносилно на правилното му закръгляне; което двоичната бройна система не осигурява;

§       В троичния суматор преноси възникват в около 33% от случаите на едноразрядно събиране (и по-точно в 8 случая от 27 възможни), докато при двоично събиране в 50% (в 4 от общо 8);

§       Операции умножение и деление имат същата степен на сложност като двоичните. Умножение с (-1) сменя знака на числото;

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

 

1.2.2.  NULL Convention Logic (NCL)

В средата на 90-те години на миналия век е предложен още един подход за синтез на асинхронна логика, наречен NCL-логика (NULL Convention Logic). През 2005 година излезе от печат книгата “Logically Determined Design” на Карл М. Фант (Karl M. Fant), основател на фирмата Theseus Logic, която е изцяло посветена на този подход. За премахване на необходимостта от синхронизация в този подход се предлага интеграция на данните и управлението в един логически поток. В този поток разделителят (null) играе ролята на синхронизираща функция. Информационните (логическите) сигнали се предават парафазно едновременно по два проводника (“1-true”, “0-false”). Стойността на един сигнал се приема за истинна само във времето, когато по паралелния проводник се появи разделителят “null”, в което и се изразява синхронизацията. За целите на синхронизацията се прилагат ключови елементи с хистерезис, чиито изходи могат да бъдат в две състояния – “null” и “data”. Ключовият елемент преминава в състояние “data” само когато на вход всички стойности са “data”, съпроводени от своите разделители “null”.

Съвременен тласък в развитието на методите за синтез на схеми с използване на тази логика представя книгата на Scott Shmith и Jia Di - “Designing Asynchronous Circuits using NULL Convention Logic”.

Според изследователите в тази група, проблемите на Булевата логика могат да обобщят така:

§       Логическите изрази не прилагат функционална зависимост, която да координира превключванията на логическите елементи, с което предизвиква неяснота при решаване на проблема със състезанията;

§       Логическите изрази изразяват функционалните връзки между входните аргументи, но не изразяват координирано поведение на изходните функции, реализиращи тези отношения. С други думи, булевата логика не е символически завършена логическа система (symbolically complete), тъй като тя не съдържа в своя набор такива логически променливи, които да съответстват на нейното завършване;

§       Пълното функциониране на една логическа схема може да се изрази и обясни най-подробно само от нейния създател;

§       Булевата логика не може да отрази състезанията, възникващи по време на функциониране на реалните логически схеми и до установяване на истинните логически нива на техните изходи;

§       Стига се до извода, че логиката на един булев израз е непълна без допълнителните уточнения (ограничения) от нейния създател.

Авторите на този подход са убедени, че е необходима нова логика, която да допълни булевите оператори с прецизна координация на събитията във времето. Двустойностната нулконвенционална логика (2NCL) на Фант дава решение на повечето от проблемите, свързани с Булевата логика, но както авторът сам признава, нейната реализация неимоверно повишава апаратните разходи. На фигура 1.2.3 е показано означението и схемата на логическо “И” като С-елемент.

 

Фиг. 1.2.3.  NCL С-елемент

 

Именно по тази причина, Булевата логика и в частност синхронната се очаква още дълго да доминира в проектирането и производството на електронни схеми.

 

1.2.3.  Концепция за “ръкостискане” (handshake)

Докато в изминалото десетилетие синхронната логика продължава да завладява пазара и масовата необходимост от евтина компютърна техника за автоматизиране на най-разнообразната човешка дейност непрекъснато расте, не много изследователи продължават да бъдат верни на асинхронния модел. Силно влияние този модел оказва лекцията на Айвън Съдърланд, която той изнася при получаване на премията на името на Алан Тюринг, озаглавена кратко: “Микроконвейери”. По същество това е обобщен отчет на научни изследвания, в който е предложен трети вариант за самосинхронизиращия се асинхронен модел. Съдърланд оглавява групата Asynchronous Design Group в Sun Microsystems и получената премията е за приносите му в асинхронния дизайн.

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

Взаимодействието на два обекта (протокол на интерфейса), подчинено на принципа “ръкостискане”, е елементарно и минимално. Общуването на два съседни обекта се осъществява от два типа сигнали: сигнал заявка Req (Request) и сигнал потвърждение Ack (Acknowledgement) – фигура 1.2.4.

 

Фиг. 1.2.4.  Състав на основния интерфейс

 

В диалога участват два обекта: S – обект, предаващ данни (резултати от изчисление) и R – обект, приемащ данните. В общия случай обменът на данни между тези два обекта протича във времеви интервали, чиято продължителност не е зависима от никакви външни фактори и отношения с двойката сигнали (Req, Ack).

След като обект S завърши своите изчисления, поставя готовите данни върху изходната шина Data. Веднага след това обект S изпраща заявката Req към обект R. Обект R приема входните данни когато бъде готов за това, а той е готов ако е завършил своите изчисления и полученият резултат е приет от друг обект, свързан с него. Обект R е готов след като се е освободил от текущия си резултат.

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

 

 

1.3.  Протоколи за трансфер

 

Диалог между обектите по същество е възможен само при наличие на обратна връзка между тях. Гледайки фигура 1.2.4, за обект S сигналът Req е изходен, но в същото време той е входен за обект R. Аналогично съждение може да се направи и за сигнала потвърждение. Ако отделим контролните функции, които свързваме с диалоговите сигнали, можем да направим извода, че връзката между двата обекта е активно управляема. Управлението се постига чрез обратната връзка между тях, в която трябва да бъде поставен управляващия автомат, който се нарича конвейерен автомат PC (Pipeline Controller). Именно този автомат има за аргументи и функции сигналите на диалога и по-конкретно това са две двойки, които спрямо него, се означават така:

§        От автомата към страната на приемащия обект (Reqout, Ackin) ;

§        От автомата към страната на предаващия обект (Reqin, Ackout).

Така въведените означения конкретизират интерфейса, което е пояснено чрез фигура 1.3.1.

 

Фиг. 1.3.1.  Трансферен автомат в състав на интерфейса

 

След тези пояснения ще представим двете основни разновидности на трансферния протокол, които се прилагат от конвейерните автомати. Това са двуфазовият (2-фазов) и четирифазовият (4-фазов) протоколи.

 

1.3.1.  Двуфазов трансферен протокол

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

 

Фиг. 1.3.2.  Двуфазов протокол

 

Този протокол е известен още под името “без връщане в нула” - NRZ (Non-Return-to-Zero).

Активно въздействащите на автомата сигнали са входните Reqin и Ackin. Неговите реакции са означени като изходни Reqout и Ackout. Съществените моменти на протокола във времето са означени върху времедиаграмата и са следните:

§       Момент 1. Завареното състояние на автомата РС е нула. Съобразно функционирането на съседните обекти във времето пристигат новите стойности на сигналите Reqin и Ackin. В изобразения случай най-напред пристига новата заявка Reqin=1, а след нея новото потвърждение Ackin=1. Когато в момент 1 техните стойности съвпаднат (Reqin=Ackin=1), автоматът се превключва в единица, генерирайки сигнал за запис на данни W в приемащия обект;

§       Момент 2. В обекта, в който току що са записани нови данни, стартира изчислителен процес. Този процес е преходен. Момент 2 закъснява спрямо момент 1 на интервал равен на времето за превключване на тригерите във входния регистър на обекта. В момент 2 конвейерният автомат трябва да изпрати потвърждение, че успешно е приел данните. Според логиката на последователно свързаните обекти и техните автомати, потвърждението има инверсна стойност (Ackout=0);

§       Момент 3. В момент 3 изчисленията завършват – резултатът е готов. Изходните данни на приемащия обект са стабилно установени, т.е. те са вече истинни. Този момент се маркира от новата стойност на изходната заявка (Reqout=1). На времедиаграмата закъснението на момент 3 спрямо момент 2 е означено DL(k). Това е интервалът на активните изчисления;

§       Момент 4. След като обяви, че резултатите в обект R са готови конвейерният автомат трябва да изчака същите да бъдат предадени по-нататък в конвейера, защото докато това не стане, обект R не е свободен и не може да бъде стартиран повторно. В това състояние автоматът може да се задържи неопределено дълго време, очаквайки сигнал потвърждение за успешно приети данни, т.е. (Ackin=0). Трябва да поясним, че всички сигнали са потенциални и всяка тяхна фаза е активна. Ето защо следва да се следят моментите на превключване, които са моменти на събитията. Заедно с новото потвърждение трябва да се изчака и новата заявка Reqin (превключване в ниско ниво Reqin=0). Кога ще се появи новата заявка от предаващия обект е непредвидимо.

Следващият работен цикъл започва в момента, в който се изпълни условието (Reqin=Ackin=0). Този момент настъпва, когато предаващият обект е готов с новите резултати и подаде заявка и когато приемащият обект се е освободил от своите резултати и е готов за следващото изчисление. Така във всеки работен цикъл на протокола се наблюдават две фази – фаза Work и фаза Transfer, в които конвейерния автомата се превключва последователно в своите две състояния. Този протокол е наречен 2-фазов, защото във всеки цикъл има по едно превключване на входните сигнали Reqin и Ackin (по едно за всеки сигнал, общо 2). Превключванията се редуват във всеки два последователни цикъла (две единици, две нули и т.н.).

Основният извод, който се налага при анализа на описания протокол се изразява в това, че конвейерният обект трябва да записва нови входни данни при всяко превключване на конвейерния автомат. Израз на това превключване е всеки фронт в състоянието на автомата. Актът на запис осъществява изходния сигнал за запис W (Write), който е функция на конвейерния автомат (фигура 1.3.1).

 

1.3.2.  Четирифазов трансферен протокол

Алтернативният трансферен протокол е 4-фазовият. Този протокол е известен още под името “с връщане в нула” - RZ (Return-to-Zero). Най-характерното за този протокол е, че само едно от превключванията на конвейерния автомат е работно. Другото превключване се определя като установяващо автомата в изходно състояние. От това следва да се разбира, че логиката на ръкостискането, което автоматът трябва да реализира, изисква той да се намира винаги в изходно състояние. Именно в това състояние той очаква активно въздействащата му двойка сигнали Reqin и Ackin.

Аналогично на 2-фазовия протокол ще представим съществените моменти в развитието на 4-фазовия протокол като ги означим върху времедиаграмата, представена на фигура 1.3.3.

 

Фиг. 1.3.3.  Четирифазов протокол

 

Поясненията са изложени според означенията във фигура 1.3.1.

1.     Момент 1. Обект S е завършил изчисленията, за което уведомява конвейерния автомат, като му подава заявката Reqin ;

2.     Момент 2. Когато двата входни сигнала достигнат равенството Reqin=Ackin=1, конвейерният автомат се превключва в единично състояние, при което издава сигнал W за запис на данните в обект R. След записа на новите данни в обект R стартира преходен процес, т.е. започват изчисленията на неговия резултат;

3.     Момент 3. След успешния запис конвейерният автомат се превключва обратно в изходно състояние. От изходно състояние автоматът връща към обект S сигнал потвърждение Ackout., който се установява в единица;

4.     Момент 4. Краткото единично състояние, в което е бил превключен конвейерния автомат, се появява на изхода Reqout при завършване на изчисленията в обект R. Закъснението на предния фронт на този сигнал е означено на времедиаграмата с DL(k). Повторното получаване от обект R на сигнал Ackin като отговор на заявката Reqout ще бъде начало на следващия цикъл изчисления.

Следващият работен цикъл започва в момента, в който отново се изпълни условието (Reqin=Ackin=1). Този момент настъпва, когато предаващият обект е готов с новите резултати и подаде заявка и когато приемащият обект се е освободил от своите резултати и е готов за следващото изчисление. Преди да са завършили така стартираните в обект R изчисления, умишлено е предизвикано превключването на автомата в изходно състояние. Така във всеки работен цикъл на протокола се наблюдават две фази – фаза Work и фаза Transfer, в които конвейерния автомата се превключва последователно в своите две състояния. Този протокол е наречен
4-фазов, защото във всеки цикъл има по две превключвания на входните сигнали Req
in и Ackin (от нула в единица и обратно, по две за всеки сигнал, общо 4). Превключванията са повтарят аналогично във всеки отделен цикъл.

Естествено възниква въпросът: кой протокол е по-добър? Тук следва да се отчетат множество фактори и последствия в цялостния проект. Така например, когато се използва 2-фазов протокол, обектите трябва да могат да записват входни данни при всяко негово превключване, т.е. и при нарастващ и при спадащ фронт. Това означава, че Latch-тригерите, от които ще бъдат изградени входните регистри на обектите, фиксиращи постъпващите данни, трябва да се превключват и по двата фронта, което е затруднително, тъй като такива тригери няма. Така възниква задачата за синтез на специален тригер. Когато се използва 4-фазов протокол, обектите трябва да записват входни данни само по нарастващия фронт. И както пише професор Спарсо (Sparsø, Jens), при подобен анализ, изборът е труден: “.., but often the implementation of circuits responding to events is complex and there is no general answer as to which protocol is best.

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

 

 

1.4.  Принцип на конвейерна организация

 

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

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

Описаната структура е представена на фигура 1.4.1.

 

Фиг. 1.4.1.  Структура на асинхронен микроконвейер

 

На фигурата е изобразена последователност от 3 микроконвейерни звена заедно със съпътстващата ги последователност от конвейерни автомати РС. Задачата на всеки конвейерен автомат е да издаде сигнал за запис W на данни в регистъра фиксатор в нужния момент. Когато той успешно направи това, връща в обратна посока сигнал потвърждение А (Acknowledgement). Всяко конвейерно звено генерира сигнал R (Request) заявка за обслужване. Сигналът R фактически декларира края на изчисленията в звеното, т.е. съобщава на автомата РС на следващото звено, че резултатът е готов. Времевият интервал между сигналите W и R представлява закъснението или още латентността на звеното. Изобразеният на фигура 1.4.1 конвейер е асинхронен.

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

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

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

 

 

1.5.  Закъснителни модели

 

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

 

1.5.1.  Delay  модел

Практическата реализация на закъснението чрез имитацията му с помощта на симетрични закъснителни вериги е представена на фигура 1.5.1. Тя е известна под наименованието Delay-модел.

 

Фиг. 1.5.1.  Структура на асинхронен микроконвейер с Delay-модел на звената

 

Във всяко отделно звено закъснението DL на резултата (както е означено на фигура 1.5.1), измервано спрямо момента на поява на сигнала за запис W на нови данни в регистъра на звеното, е по същество сума от две закъснения

където с  DLR  е означено времето за превключване при запис на данни на регистъра фиксатор, а с DLL е означено максималното време за превключване на операционната логика, която е последователно свързана с регистъра.

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

където с t е означена типичната продължителност на фронта на превключване на един логически елемент, а с k – броят на последователно превключващите се логически елементи в схемата на тригера. Например, за елементарен
D-Latch-тригер това закъснение е
 DLR=3.τ. Ако един фронт се оценява на 0,5 [ns], то тогава времето за превключване на регистъра при запис е равно на 1,5 [ns].

Закъснението, което може да внесе операционната логика, зависи от повече фактори и най-вече от сложността на логическата схема, разрядността на операндите , т.е. от цялостната изчислителна структура на конвейерното звено. След като една логическа схема бъде синтезирана, времето за нейното превключване може да бъде оценено в интервала [tmin, tmax]. Времето за възможно най-дългото превключване се формира като сума от закъсненията, които внасят последователно превключващите се елементи по най-дългата активно образуваща се верига. Активно превключващите се вериги се определят според логическата същност на операцията и съчетанието от конкретни входни данни при нейното изпълнение. За n-разряден двоичен комбинационен суматор с ускорен последователен пренос например (вижте книга [2]), са известни следните оценки:

tmin=3.t  (за n четно)   или   tmin=2.t  (за n нечетно) ;

tmax=(n+2).t  (за n четно)  или  tmax=(n+1).t  (за n нечетно).

Ако приемем, че дължината на двата операнда е 16 [b], а t=0,5 [ns], тогава се получават слените стойности за оценките:

tmin=1,5 [ns]   или   tmin=1 [ns] ;        tmax=9 [ns]   или   tmax=8,5 [ns].

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

  ,

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

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

 

1.5.2.  Completion detection  модел

Това е моделът на фактическото закъснение, което характеризира текущото изчисление в конвейерното звено. Логическата структура на конвейер, представена на фигура 1.4.1, изразява на същността на този модел. Конвейерното звено и по-точно неговата операционната логика, е натоварена с допълнителната задача да формира сигнал, чрез който да комуникира директно с конвейерния автомат. В схемата от фигура 1.5.1 елементът DL се явяваше представител на звеното и от негово име комуникира със следващия конвейерен автомат. В схемата от фигура 1.4.1 звеното се представя само, изработвайки и използвайки сигнал за край на своето превключване CD (Completion Detection), като го свързва директно с конвейерния автомат.

От изложеното по-горе се разбира, че закъснението има променлива стойност, която се намира в интервала [tmin, tmax]. В същото време разликата между двете граници на този интервал може да бъде съществена (в пъти), ето защо е изключително актуален моделът на фактическото закъснение. Той е в състояние да реализира значителна икономия от време, отстранявайки непроизводителните времеви интервали. Нещо повече, в статистически смисъл този модел в пълна степен реализира принципа “колкото повече операции, толкова повече икономия”. Реализацията на този модел може да бъде различна и зависи от вида и от структурата на конвейерното звено.

За реализация върху операционна логика (в еднотактови конвейерни звена) моделът се характеризира с това, че:

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

§     Използва сигнала за край на превключването CD в качеството му на сигнал R (Request) заявка за обслужване;

§     Сигналът CD е възможно да се съдържа в звеното, т.е. да се генерира в него (като част от неговата функционалност) и да е характерен за него;

§     Моделът е инвариантен и толерантен към изкривявания в данните.

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

Автосинхронизиращият се код на данните е известен още като “двойно-релсов” (Dual-rail модел). Неговото приложение е добре представено литературата, но това което остава скрито и за което авторите премълчават, е как трябва да се създава парафазното представителство на аргументите. Предлаганите схеми са работоспособни само в случай, че парафазният код е действително допълнен с трето неактивно състояние, а как постигат това много от авторите оставят в тайна. В същност точно на това се основава NCL логиката.

 

 

1.6.  Конвейерни автомати

 

Конвейерният автомат, за който вече беше казано достатъчно, има две задачи:

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

2.     След като изпълни първата задача автоматът е длъжен веднага да уведоми за това своите съседи, т.е. да разпространи съобщение за събитието, че се е превключил. Това съобщение автоматът следва да се изпрати при условие, че се убедил в надеждното фиксиране на данните в приемащото звено.

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

 

Фиг. 1.6.1.  Схема на 2-фазов конвейерен автомат с DL- модел на обекта

 

Автоматът се управлява от двойката входни сигнали (Reqin, Ackin). Той се превключва в противоположното състояние когато за входните сигнали настъпи някое от равенствата Reqin=Ackin=1 или Reqin=Ackin=0. От своя страна автоматът генерира друга двойка сигнали (Reqout, Ackout). Двойката сигнали (Reqin, Ackout) свързва конвейерния автомат с предходното звено, а двойката (Reqoutt, Ackin) със следващото звено. Следващо е онова конвейерно звено, което реализира следващата операция (микрооперация) според алгоритъма, който конвейера реализира.

Всяко превключване на С-елемента, т.е. на конвейерния автомат, е събитие, което трябва да се възприема като старт за данновия трансфер между две съседни звена. Чрез конвейерния автомат две съседни звена се самосинхронизират. Именно това събитие генерира импулса за запис W. В същото време закъснителният елемент DL разпространява фронта на превключването на С-елемента към изхода си, с което изразява времето необходимо на звеното, управлявано от автомата, да завърши своите изчисления върху новите данни, с които е било заредено по време на трансфера чрез импулса W. Както вече беше отбелязано, същността на изчисленията в обектите, т.е. в конвейерните звена, е без значение за конвейерния автомат. Цялото управление на хода на изчислителния процес, разбиран като движение на междинните резултати от звено към звено до самия изход на конвейера, се осъществява от последователно свързаните конвейерни автомати. Ето защо тяхната последователност (с игнориране на фактическите конвейерни звена), както е показано на фигура 1.6.2, представя микроконвейера.

 

Фиг. 1.6.2.  Условно представяне на 2-фазов асинхронен микроконвейер

 

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

Тъй като тези регистри имат леката задача за временно поддържане на данните, необходими за изчисленията в звеното, те се реализират с най-елементарната тригерна структура, а именно чрез D-Latch тригери. Тригерите със тази структура обаче не са в състояние да извършват запис по двата фронта на управляващия ги сигнал. Нещо повече, това са тригери, които се превключват по ниво. Така се появява проблем, на който са посветени множество публикации, представящи различни схеми на така наречения DEDTFF-тригер (Double Edge D-triggered Flip-Flop), оптимизирани по бързодействие или по ниска консумация. Каквато и да е електронната схема, логиката за функциониране на тези тригерни схеми, от която ние се интересуваме, се постига чрез два пулс-генератора, съответно за преден и за заден фронт, или чрез вграждане на две схеми на Хуфман за работа по пред и по заден фронт.

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

Има автори, които твърдят, че разработените от тях автомати са възможно най-бързите. Подобни твърдения винаги предизвикват известно съмнение. Това е повод да се спрем на този момент като разгледаме процеса на превключване на конвейерния автомат, който във всички случаи започва от момента на съвпадение на входните сигнали (независимо от трансферния протокол, който реализира). Нека в частност приемем за този момент комбинацията  (Reqin=Ackin=1). На фигура 1.6.3 са представени силно изразени закъсненията, с които се превключват отделните елементи по време на разглеждания процес. Това което може да се види във времедиаграмата е, че има две паралелни вериги от последователни превключвания:

§       Превключване на С-елемента (●●●●), последвано от превключване на тригерите при запис на входните данни (●●●●), последвано от превключване на операционната логика (●●●●);

§       Превключване на С-елемента (●●●●), последвано от превключване на елемента, формиращ отговора на автомата (●●●).

Аналогично е развитието на процеса след алтернативното превключване при заден фронт на сигналите  (Reqin=Ackin=0).

 

Фиг. 1.6.3.  Силно изразени закъснения при превключване на конвейерния автомат

 

Без подробни обяснения, изводът, който се налага е, че отговорът Ackout, който превключващият се автомат изпраща към предходния, има закъснението на втората верига, посочена по-горе. И двете закъснения, които я формират са неизбежни, минимални и няма основание за тяхното съкращаване, ето защо твърденията за високи скорости (в логическия смисъл) са неоснователни.

 

 

1.7.  Съвременни характеристики на асинхронния дизайн

 

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

За развитие и приложение на асинхронния дизайн съществуващите CAD инструменти трябва да бъдат обновявани с необходимите скриптове и инструменти, подпомагащи технологичния процес. Само така може да бъдат изявени и оползотворени потенциалните предимства на асинхронния дизайн и преодолени оставащите предизвикателства пред неговото по-широко приемане. Като пример за такъв прецизен дизайн съчетан с динамична CMOS електроника в едно-гигахерцови системи на IBM конструкторите постигат до 100% по-висока производителност в сравнение със статичния вариант за същите системи.

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

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

 

1.7.1.  Мотивация за асинхронен дизайн

Най-съществените мотиви, които насочват към асинхронния дизайн могат да бъдат обобщени така:

§       Това е подход, който притежава методология за надежден синтез;

§       Понякога той е неизбежен и се налага от естеството на събитията (асинхронни интерфейси, арбитри и др.);

§       Придобил е значимост и сила да предопределя избора, тъй като е способен да даде гаранции;

§       Не създава проблеми с разпространение на тактови последователности;

§       Предразполага и осигурява ниска енергийна консумация;

§       Устойчив е към изменения на параметрите по време на функциониране (производствени, технологични, температурни, стареене и др.);

§       Съвместява хардуерен и софтуерен автоматизиран дизайн.

 

1.7.2.  Направления в асинхронния дизайн

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

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

Третото направление се основава на директен синтактичен превод от език на високо ниво, включващи примитиви на ръкостискане. Резултатите от такъв превод са далеч от оптималните и за повишаване на ефективността са необходими форми за оптимизиране на ниско ниво. Разработва се от сътрудници на Philips и се реализира от Handshake Solutions. Асинхронният вариант на микропроцесор ARM (Advanced RISC Machines) конкурира аналогичните синхронни копия.

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

 

1.7.3.  Потенциални предимства на асинхронния дизайн

Асинхронните системи имат потенциални предимства в много аспекти. Техните предимства се проявяват най-вече в посока на:

§       Повишена производителност, която се дължи на спестено време от превключване и възможност за конвейерна организация;

§       Постигане на ниска енергийна консумация;

§       Лекота в прилагането и използването, което се дължи на относителната независимост на отделните блокове;

§       Намаляване на зависимостта от електромагнитните смущения.

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

 

1.7.4.  Производителност

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

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

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

Други предимства относно производителността, специфични за асинхронния дизайн, включват следното:

§       Използване на домино логика. Този вид електронни схеми се използва при напълно автоматизиран синхронен дизайн. Има изследвания дали тези схеми могат да се вложат в стандартна клетка за асинхронен дизайн, като са насочени към намаляване на латентностите на Latch-тригерите и към тригерите с по-сложна структура;

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

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

 

1.7.5.  Енергоефективност

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

 

1.7.6.  Предизвикателства в асинхронния дизайн

Въпреки изложените предимства на асинхронната логика, които са очевидни от известно време, асинхронните схеми едва сега започват да се приемат в промишлеността. Две са предизвикателствата, които могат да променят това положение:

1.     Преодоляване на липсата на CAD инструменти за асинхронен дизайн;

2.     Създаване на инструменти и процедури за тестване и отстраняване на грешки;

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

 

1.7.7.  Какъв да бъде съвременния дизайн – асинхронен или синхронен?

Много автори считат този въпрос за подвеждащ и защитават тезата за разумния компромис. С други думи “най-добрият” дизайн не е нито синхронният, нито асинхронният и поставянето на въпроса за избор е непродуктивен подход. Защитава се разбирането, че в синхронното направление могат постепенно да бъдат въвеждани на отделни етапи и на отделни нива асинхронни техники. Така постепенно може да се постигне изцяло асинхронен проект. Аналогични са позициите и на други автори, които стигат в своите изследвания до завършени методики за разработване на така наречените GALS-системи – глобално асинхронни – локално синхронни системи (Global Asynchronous Local Synchronous).

 

 

1.8.  Допълнителни аспекти в сравнителния анализ

 

Сравнителният анализ между проекти, които са свързани със софтуер и такива, които не са свързани, води до следващите обобщения.

 

Универсални компютърни системи

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

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

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

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

 

Хардуерни системи

1.     Хардуерните системи не могат да бъдат универсални изчислителни системи. Това се дължи на изключително скъпото хардуерно изменение (разбирано като програмиране или като препрограмиране), което е необходимо за да ги постави в съответствие с произволни алгоритми в различни моменти от времето. Това по същество прави невъзможни на този етап универсалните хардуерни изчислителни системи.

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

3.     Хардуерните системи са по-производителни, защото те не изразходват времеви ресурс за обработка на програмен код, реализират в пълна степен икономия на време и по същество са с паралелна форма на организация.

4.     Една хардуерна изчислителна система може да се определи като асинхронна когато е синтезирана:

§     според формалния закъснителен модел;

§     според фактическия закъснителен модел;

§     като апериодично управлявана.

5.     Асинхронните хардуерни системи са по-бързи от синхронните, защото изпълняват всяка отделна микрооперация за време, което е фактически необходимо за преработка на конкретно подадените данни. Така от всяка микрооперация хардуерните системи натрупват спестеното време, изпреварвайки в крайна сметка всяка друга система с равномерен темп на функциониране. Общо спестеното време за еднократно изпълнение на реализирания алгоритъм зависи от началните данни. То е променлива величина, която се оценява със стойности, намиращи се в затворения интервал [tmin, tmax].

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

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

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

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

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

 

 

1.9.  Хардуерна реализация на алгоритмични структури

 

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

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

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

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

Литературните източници, които проучваме от гледната точка на асинхронния дизайн обаче в нищожна степен третират изказания по-горе интерес. Хардуерната реализация на глобални алгоритмични структури на микрооперационнно ниво все още не е в полезрението на изследванията. Можем да твърдим обаче, че асинхронната линейна алгоритмична структура е обширно и задълбочено изследвана и прилагана. Що се отнася до останалите две (разклонена и циклическа) можем да твърдим, че в проучените от нас литературни източници, не се съдържат изследвания, свързани с тяхната реализация в смисъла, който изказахме по-горе. Не се срещат и дисертационни изследвания върху тези проблеми. Времето за това обаче е дошло. Например, дисертационният труд на Mannakkra, C., (Asynchronous Pipeline Controller Based on Early Acknowledgement Protocol) съдържа изследвания на трансферен протокол с изпреварващо потвърждение при условен преход. Анализ на съответната алгоритмична структура обаче не е проведен, не са изявени съпътстващите проблеми и в смисъла, от който се интересуваме, изследването е непълно.

В монографиите на Beerel, P.A., R.O. Ozdag, M. Ferretti (A Designer’s Guide to Asynchronous VLSI) и на Sparsø, Jens (Asynchronous circuit design) също се съдържат елементи на интересуващи ни проблеми. Глобална постановка на проблема с хардуерната реализация на общи алгоритмични структури в тези източници обаче липсва. Липсва структурна декомпозиция на проблема, както и задълбочена анализ, изявяване и формулиране на нови задачи и решения.

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

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

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

За всяко отделно изпълнение ходът на изчислителния процес в такава структура може да бъде уникален, т.е. в съответния момент стойността на кода на условието за преход CJ (Conditional Jump) избира един от възможните пътища за хода му в посока към края. И понеже краят е един единствен, разклонената условна структура неизбежно е свързана с обединяване на разклоненията пред входа на общия за тях елемент. Пред входа на общия елемент (в общата точка) всеки клон по същество може да се определи като отделен конвейер, така че обединяването на краищата на два или повече конвейера представлява един нов и неизследван проблем. Ние обаче сме убедени, че още тук читателят би разбрал и приел твърдението ни, че алтернативните алгоритмични пътища пораждат между последователно стартираните в конвейера задачи, състезания.

 

Фиг. 1.9.1.  Структура на примерен алгоритъм

 

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

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

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

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

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

 

 

1.10.  За същността на тази книга

 

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

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

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

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

1.      Анализ на възможността за синтез и хардуерна реализация на функционално пълна система от алгоритмични структури в условията на конвейерна организация, като алтернатива на микропрограмното управление чрез крайни автомати, с оглед синтеза на нови видове конвейерни звена;

2.      Синтез и изследване на конвейерно организирани реализации на алгоритмични структури с условен преход, с цикъл, с естествен паралелизъм и със суперскаларност. Изявяване, формулиране и решение на задачите, свързани със синтеза и хардуерната реализация на посочените структури в условията на асинхронен метод за управление;

3.      Анализ на конвейерни структури, комбиниращи различни видове конвейерни звена и различни форми на паралелизъм;

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

5.      Обобщено изложение на елементите за асинхронно управление. Реализация на асинхронния подход при синтез на крайни автомати като устройства за управление.