Последната актуализация на този раздел е от 2020 година.

 

5.5.2  Организация на входно-изходния обмен

 

 

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

1.        С непосредствени връзки;

2.        С разделни връзки или още с канални връзки.

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

      В система с непосредствени връзки, входно-изходните операции са изпълними и в командната система на процесора са реализирани с машинни команди от вида "Въведи" и "Изведи".

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

Системи с непосредствени връзки

      Системите с непосредствена организация на входно-изходния обмен са илюстрирани на следващата фигура.

 

Фиг. 5.5.2.1.  Система с демултиплексирана шина и система с мултиплексирана шина

 

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

      В дясната колонка Б) е представена система с мултиплексни шини и времедиаграмите за изпълнение по тези шини на основните операции в оперативната памет и във входно-изходно устройство. В такива системи адресната шина (или части от нея) се мултиплексира (превключва) с данновата, което се прави с цел намаляване на изводите на интегралните схеми. Това налага реализацията на външен регистър за адреса на паметта и заедно с това специален сигнал за запис на адреса в този регистър, какъвто е показания на времедиаграмите ALE (Address Latch Enable). Фиксирането на адреса става по задния фронт на този сигнал. Този тип шини се наричат още Q-bus – разработка на фирма DEC.

      Показаните времедиаграми са графичен израз на микропрограмите на машинните команди от типа LOAD, STORE, INPUT и OUTPUT.

      В случай, че процесорът е с Харвардска архитектура, т.е. с разделни памети за програмен код и за данни, допълнително се въвежда още един цикъл за изпълнение на операция “Четене на команда”:

 

Фиг. 5.5.2.2.  Времедиаграма на операция “Четене от паметта за команди”

 

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

 

Фиг. 5.5.2.3.  Времедиаграма на операция “Четене” с вмъкнати тактове на очакване

 

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

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

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

 

Фиг. 5.5.2.4.  Въвеждане на данни със запитване

 

      Съществуват четири типа команди за вход-изход, които контролера за вход-изход може да получи: команда “Управление”, команда “Проверка”, команда “Запис” и команда “Четене”.

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

      Команда от тип “Проверка" използват за проверка на различни ситуации, които могат да възникнат в контролера и в устройството за вход-изход. В помощта на такива команди може да се установи дали ВУ е включено, дали е готово за следващата операция, дали тя е завършила, и не са ли възникнали някакви грешки. Действието на тези команди се свежда до установяване или до нулиране на определени разряди в регистрите на състоянието в КВ/И.

      Команда от тип “Четене" активизира контролера за получаване на порция данни от ВУ и да я запише в регистъра за данни. Процесорът от своя страна може да получи тези данни, ако поиска от контролера да ги постави върху шината за данни.

      Команда от тип “Запис" заставя контролера за вход-изход да приеме в регистъра за данни порция данни, която процесорът е изпратил по данновата шина, и той от своя страна да я предаде във външното устройство.

      Ако към КВ/И са подключени няколко ВУ, то в алгоритъма на процедурата за В/И е необходимо да се извършва циклическа проверка на всички устройства, изпълняващи някакви входно-изходни операции за процеса и състоянието им.

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

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

      Развитието на архитектурата на системите за вход-изход и стремежът към по-висока ефективност на компютърните системи водят към създаването на специализирани контролери, които реализират алгоритмите на машинните команди за вход-изход апаратно и вън от процесора. Целта на този подход е ясен – да се освободи входно-изходната система от процесора като посредник в процеса на трансфер на данни и неговото управление да поема специализирана схема. Организираният от тази схема непосредствен обмен на данни между оперативната памет и външното устройство се нарича апаратно управляван, а създаваният поток от данни – канал за пряк достъп до паметта. Самата схема се нарича контролер на каналите за пряк достъп до паметта – DMA (Direct Memory Access).

Системи с канални връзки

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

 

Фиг. 5.5.2.5.  Входно-изходна система с канална организация

 

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

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

 

Фиг. 5.5.2.6.  Селекторен канал

 

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

 

Фиг. 5.5.2.7.  Мултиплексен канал

 

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

Понятие за интерфейс

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

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

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

 

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

 

      Както се вижда, и в двете устройства се съдържа апаратура, която се отнася към интерфейса и която осигурява на ответната страна, необходимата съвместимост. Съвместимостта трябва да бъде осигурена като:

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

·        Логическата структура на интерфейсната част на всяко устройство ;

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

·        Метода за кодиране на данните и техния формат, командите, адресната информация и информацията за състоянието ;

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

2.        Електрическа съвместимост. Това означава съгласуваност между статическите и динамическите параметри на електрическите сигнали с отчитане на пространствените ограничения при техническата реализация на елементите в интерфейсната част на устройствата. Условията на електрическата съвместимост определят:

·        Типа на приемно-предаващите елементи ;

·        Съотношенията между логическите и електрическите сигнали и границите на тяхното изменение ;

·        Коефициентите за натоварване по изход и по вход на приемно-предаващите елементи и допустимите стойности на активното и на реактивното товарно съпротивление в линиите за свързване на устройствата ;

·        Схемата за съгласуване на линиите, тяхната допустима пределна дължина и подредбата им в съединителните елементи (съединители) ;

·        Изискванията към захранването, към защитата от шум и към заземяването.

3.        Конструктивна съвместимост. Това означава съгласуваност между конструктивните елементи на интерфейса, които са предназначени да осигурят механическия контакт на електрическите съединения, както и механическата подмяна на схемни елементи и блокове в устройствата, ако такава се предвижда. Условията за конструктивна съвместимост определят:

·        Типа на съединителните елементи ;

·        Конструкцията на печатната платка, на носещата рамка и на стойката за монтиране ;

·        Конструкцията на кабелното съединение.

Интерфейсът се проектира така, че да осигурява:

1.       Работа със стандартизирани формати на данните ;

2.       Работа със стандартизирано множество от управляващи сигнали ;

3.       Независимост от командната система на процесора ;

4.       Независимост от принципа за представяне на информацията във външното устройство.

      Интерфейсът на външното устройство се определя от физическия принцип на запаметяване и характера на използвания носител на информация. В този смисъл интерфейсите са:

·          За последователно предаване (бит след бит). Това предаване се характеризира с това, че физическата даннова връзка представлява един проводник. Като пример за реални интерфейси организирани на този принцип това са комуникационните интерфейси тип COM, тип USB, тип FireWire и интерфейсите на локалните и на глобалните компютърни мрежи ;

·          За паралелно предаване, например, 8 бита (1 байт) едновременно, т.е. физическата връзка е реализирана чрез множество паралелно положени проводници. Типичен пример  паралелният интерфейс за присъединяване на принтер (LPT-порт, 8 бита) и още интерфейс от тип АТА (16 битов), SCSI (8 или 16 бита), интерфейс на PCI-шина (32 или 64 битова).

И още:

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

·          Синхронни. Синхронни са онези системи, които освен логическите стойности на предаваните битове използват някаква система от сигнали, с чиято помощ ги “опаковат” и пренасят. Опаковането на данните с цел синхронизация на предаването и тяхното правилно прочитане в приемната точка се нарича модулиране. Характерно за този тип интерфейси е, че данните се предават на големи блокове (няколко хиляди бита).

      Интерфейсите се определят още като

·         Вътрешни. Вътрешните са известни под името системни или комуникационни шини, или просто шини.

·         Външни. Външните носят наименованието на съответния стандарт – например RS-232, SCSI (Small Computer Systems Interface), USB (Universal Serial Bus), FireWare (стандарт IEEE 1394) и др.

      Според режима за предаване на информацията интерфейсите се определят:

·         С еднопосочно предаване ;

·         С двупосочно редуващо се по една обща връзка предаване ;

·         С двупосочно едновременно предаване.

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

Методи за управление на обмена

      Вече споменахме, че според организационните особености на входно-изходната система се различават:

1.        Програмно управляван входно-изходен обмен;

2.        Апаратно управляван входно-изходен обмен.

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

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

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

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

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

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

Програмно управляван нефорсиран входно-изходен обмен

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

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

      Когато предаването на данни изисква предварителна проверка на готовността на ВУ, обменът се нарича асинхронен.

      Общото състояние на външното устройство обикновено се декларира чрез логическа стойност (флаг) в определен разряд от регистъра на състоянието на външното устройство (вижте фигура 5.5.1.1). Флагът “Готов” (Ready) може да се допълва с интерпретацията “Зает” (Busy) съвместно или разделно. Интерпретацията на тези флагове за различните външни устройства най-често е различна. Така например флагът “Готов” в едно устройство за въвеждане означава наличие или отсъствие на нови данни в регистъра за въвеждане. В такова устройство с този флаг се работи по следния алгоритъм:

·         Програмата за инициализация на външното устройство нулира този флаг (“Готов”:=0) ;

·         След зареждане на входния регистър на външното устройство с нови данни флагът се установява автоматично (“Готов”:=1) ;

·         След фиксиране на тези данни в паметта, този флаг се нулира отново (“Готов”:=0).

      Когато външното устройство е за извеждане, флагът “Готов”се интерпретира по следния начин: “Готов”=0 означава, че регистърът за извеждане е недостъпен за процесора, т.е. още не се е освободил от старите данни. Обратното, “Готов”=1 означава, че този регистър е достъпен за зареждане с нови данни. Общият алгоритъм за работа с такова устройство е следния:

·          Програмата за инициализация на външното устройство установява този флаг (“Готов”:=1) ;

·          След като процесорът зареди нови данни в регистъра за извеждане, този флаг се нулира автоматично (“Готов”:=0) ;

·          След пренасяне на данните върху носителя на информация (например магнитен диск), флагът отново се установява (“Готов”:=1).

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

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

Програмно управляван форсиран входно-изходен обмен

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

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

      Тъй като въвеждането или извеждането на поредната порция данни в този случай се осъществява от специализирана програма за обслужване на прекъсването, то в програмата за управление на входно-изходния обмен остават само контролните функции. За да не се губи време от многократно изпълнявани прекъсвания, такива устройства се проектират за обмен на големи по обем блокове от данни. Обменът по блокове (символни низове) често се означава PIO (Programmed Input-Output) и в архитектурата IA-32 се реализира се реализира чрез повторение съответно на една от командите (специално създадени):  REP INS   или   REP OUTS , (както и техните модификации за различни формати на данните – INSB, INSW, INSD, OUTSB, OUTSW, OUTSD.

      За тези команди се задават:

1.        Началният адрес в оперативната памет ;

2.        Дължината на блока ;

3.        Адрес на порта ;

4.        Посока на разположение на порциите данни в паметта (+1 напред от указания начален адрес, -1 назад от указания начален адрес).

      Обменът в режим PIO се прилага за устройства с интерфейси ATA (IDE) и LPT. Блочният обмен може да има различни режими, в които се постига различна максимална скорост – от 3,3[MiB/s] за PIO Mode_0, до 22,2[MiB/s] за PIO Mode_4. При работа в тези режими готовността за обмен на външното устройство се проверява само веднъж преди предаването на блока.

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

 

 

 

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

 

5.5.2  Канал за пряк достъп до паметта (DMA). Шинно-мостова организация на системата за вход-изход – Продължение 1