Аз O - живот-прог

Има три начина за извършване на входно-изходни операции:

  1. програмируема входно-изходна;
  2. вход-изход с използването на прекъсва;
  3. DMA (директен достъп до паметта - DMA)

Програмируемият вход-изход

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







Членка. Използва се за проверка на състоянието на вход-изход контролер и свързаните с тях периферни устройства.

Transfer. Използва се за четене и / или писане на данни с външни регистри процесора и устройствата и регистрите на процесора и външните устройства.

Фиг. 1.19 е пример използване програмируем IO за четене на данни в блок памет, получена от външно устройство (например запис с магнитна лента). Данните се четат една дума. Когато четете всеки текстов редактор трябва да изпълни статус цикъл проверка, докато той открива, че думата вече е на разположение в данните регистрирате входно-изходен модул. В горния блок диаграма може да се види от основните недостатъци на този метод: процесорът изпълнява голям брой операции, които могат да бъдат избегнати; Тя губи много време.







Входно-изходна прекъсване използване

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

Аз O - живот-прог

Фиг. 1.19. метод на предаване блок данни Три вход

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

От гледна точка на предаване процесорни входни данни, както следва. Процесорът генерира команда READ, а след това съхранява съдържанието на програмата брояч и други регистри, отговарящи на текущата програма, както и приходите от други дейности (например, е по едно и също време може да изпълнява няколко различни програми). В края на всяка инструкция цикъл проверките на процесор за прекъсване (вж. Фиг. 1.7). Когато получите прекъсване от входно-изходни магазини контролер процесорни информацията за понастоящем се изпълнява задачата и изпълнява прекъсне програма за обработка. Когато той чете думите на администратора IO и ги съхранява в паметта. След това той възстановява контекста на програмата, от която IO команда постъпилите и продължава.
Ако използвате въвеждане на данни за четене и изходния блок, прекъсват задвижване, тя е показана на фиг. 1.19,6. Входно-изходен с прекъсвания много по-ефективно, отколкото програмируем вход-изход, тъй като елиминират ненужното чакане. Въпреки това, този процес все още консумира много процесорно време, защото всяка дума, която се прехвърля от паметта на модула или обратното на МО, трябва да мине през процесора.