Г Л А В А   3

 

ОПЕРАЦИОННИ  СТРУКТУРИ

OPERATING  STRUCTURES

 

 

 

§ 3.1  Общи положения

General

 

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

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

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

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

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

Таблица 3.1.1  Относителна честота

операция

» %

събиране

28,6

изваждане

22

умножение

17

деление

2,6

логическо изместване

9

логическо ИЛИ

4,5

логическо И

2,1

сравнение

3,7

условен преход

6,8

безусловен преход

2,4

символни операции

1,3

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

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

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

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

·         операции върху числа, представени в двоично-десетична бройна система;

·         специални операции;

·         логически операции;

·         операции върху символни низове.

 

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

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

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

     По-подробно същността на така избраните предпоставки е изложена в книга [2]. Уговарянето на тези предпоставки за всички логически структури, които ще бъдат разгледани, е направено с цел да бъде улеснено разбирането, както и подходите към усложняване на синтеза. Разглеждане на структурите в зависимост от многообразието на градивните елементи и начините за изграждане на връзките между възлите би довело само до разширяване на темата. Това не означава, че получените тук логически структури и микропрограми са единствените, които читателят може да построи.

 

 

 

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

§ 3.2  Операции върху числа с фиксирана запетая   ( Integer Operations )