Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Обнаружение ошибок




Еще одной из важнейших функций МВБ является обнаружение ошибок, возника­ющих в процессе ввода/вывода. Центральный процессор следует оповещать о каж­дом случае обнаружения ошибки. Причинами возникновения последних бывают самые разнообразные факторы, которые в первом приближении можно свести к следующим группам:

Источником ошибок может стать и несовершенство системного программного обеспечения (ПО):

  • непредвиденные последовательности команд или кодовые комбинации;
  • некорректное распределение памяти;
  • недостаточный размер буфера ввода/вывода;
  • недостаточно продуманные и оттестированные комбинации системных модулей.

Среди ошибок, порождаемых пользовательским ПО, наиболее частыми явля­ются:

  • нарушение последовательности выполнения программы;
  • некорректные процедуры.

Вероятность возникновения ошибки внутри процессора для современных ЦП оценивается величиной порядка 10-18, в то время как для остальных составляющих ВМ она лежит в диапазоне 10-8 – 10-12.

33. Структура модуля ввода-вывода, описание регистров (привести схему).

34. Методы управления вводом-выводом: программно управляемый ввод/вывод.
Программно управляемый ввод/вывод

Наиболее простым методом управления вводом/выводом является программно управляемый ввод/вывод, часто называемый также вводом /выводом с опросом. Здесь ввод/вывод происходит под полным контролем центрального процессора и реа­лизуется специальной процедурой ввода/вывода. В этой процедуре ЦП с помощью команды ввода/вывода сообщает модулю ввода/вывода, а через него и внешнему устройству о предстоящей операции. Адрес модуля и ВУ, к которому производит­ся обращение, указывается в адресной части команды ввода или вывода. Модуль исполняет затребованное действие, после чего устанавливает в единицу соответ­ствующий бит в своем регистре состояния. Ничего другого, чтобы уведомить ЦП, модуль не предпринимает. Следовательно, для определения момента за­вершения операции или пересылки очередного элемента блока данных про­цессор должен периодически опрашивать и анализировать содержимое регис­тра состояния МВБ.

Иллюстрация процедуры программно управляемого ввода блока данных с уст­ройства ввода приведена на рис. 8.6. Данные читаются пословно. Для каждого читаемого слова ЦП должен оставаться в цикле проверки, пока не определит, что слово находится в регистре данных МВБ, то есть доступно для считывания.

Процедура начинается с выдачи процессором команды ввода, в которой указан адрес конкретного МВБ и конкретного ВУ. Существуют четыре типа команд В/ВЫВ, которые может получить МВБ: управление, проверка, чтение и за­пись.

Команды управления используются для активизации ВУ и указания требуемой операции. Например, в устройство памяти на магнитной ленте может быть выдана команда перемотки или продвижения на одну запись. Для каждого типа ВУ харак­терны специфичные для него команды управления.

Команда проверки применяется для проверки различных ситуаций, возникаю­щих в МВБ и ВУ в процессе ввода/вывода. С помощью таких команд ЦП спосо­бен выяснить, включено ли ВУ, готово ли оно к работе, завершена ли последняя операция ввода/вывода и не возникли ли в ходе ее выполнения какие-либо ошибки. Действие команды сводится к установке или сбросу соответствующих разрядов регистра состояния МВБ.

Команда чтения побуждает модуль получить элемент данных из ВУ и занести его в регистр данных (РД). ЦП может получить этот элемент данных, запросив МВБ поместить его на шину данных.

Команда записи заставляет модуль принять элемент данных (байт или слово) с шины данных и переслать его в РД с последующей передачей в ВУ.

Рис. 8.6.Программно управляемый ввод данных

 

Если к МВБ подключено несколько ВУ, то в процедуре ввода/вывода нужно производить циклический опрос всех устройств, с которыми в данный момент up-. -изводятся операции В/ВЫВ.

Из блок-схемы (см. рис. 8.6) явно виден основной недостаток программно управляемого В/ВЫВ — неэффективное использование процессора из-за ожидания готовности очередной порции информации, в течение которого никаких иных по­лезных действий ЦП не выполняет. Кроме того, пересылка даже одного слова тре­бует выполнения нескольких команд. ЦП должен тратить время на анализ битов состояния МВБ, запись в МВБ битов управления, чтение или запись данных со скоростью, определяемой внешним устройством. Все это также отрицательно ска­зывается на эффективности ввода/вывода.

Главным аргументом в пользу программно управляемого ввода/вывода является простота МВБ, поскольку основные функции по управлению В/ВЫВ берет на себя процессор. При одновременной работе с несколькими ВУ приоритет уст­ройств легко изменить программными средствами (последовательностью опроса). Наконец, подключение к СВВ новых внешних устройств или отключение ранее подключенных также реализуется без особых сложностей.

35. Методы управления вводом-выводом: ввод/вывод по прерываниям.
Ввод/вывод по прерываниям

Как уже отмечалось, основным недостатком программно управляемого В/ВЫВ являются простои процессора в ожидании, пока модуль ввода/вывода выполнит очередную операцию. Альтернативой может быть вариант, когда ЦП выдает команду В/ВЫВ, а затем продолжает делать другую полезную работу. Когда ВУ готово к обмену данными, оно через МВВ извещает об этом процессор с помощью запроса на прерывание. ЦП осуществляет передачу очередного элемента данных, после чего возобновляет выполнение прерванной программы.

Обсудим процесс ввода блока данных е использованием В/ВЫВ по прерываниям (рис. 8.7). Оставим без внимания такие подробности, как сохранение и восстановления контекста, действия, выполняемые при завершении пересылки блока данных, а также в случае возникновения ошибок.

Процедура ввода блока данных по прерываниям реализуется следующим образом. ЦП выдает команду чтения, а затем продолжает выполнение других заданий, например другой программы. Получив команду, МВВ приступает к вводу элемента данных с ВУ. Когда считанное слово оказывается в регистре данных модуля, VIBB формирует на управляющей линии сигнал прерывания ЦП. Выставив зап­рос, МВВ помещает введенную информацию на шину данных, после чего он готов к следующей операции В/ВЫВ. ЦП в конце каждого цикла команды проверяет наличие запросов прерывания. Когда от МВВ приходит такой сигнал, ЦП сохра­няет контекст текущей программы и обрабатывает прерывание. В рассматривае­мом случае ЦП читает слово из модуля, записывает его в память и выдает модулю команду на считывание очередного слова. Далее ЦП восстанавливает контекст прерванной программы и возобновляет ее выполнение.

Рис. 8.7.Ввод данных по прерыванию

 

Этот метод эффективнее программно управляемого В/ВЫВ, поскольку устра­няет ненужные ожидания, однако обработка прерывания занимает достаточно много времени ЦП. Кроме того, каждое слово, пересылаемое из памяти в модуль В/ВЫВ или в противоположном направлении, как и при программно управляе­мом В/ВЫВ, проходит через ЦП.

Реализация ввода/вывода по прерываниям

При реализации ввода/вывода по прерываниям необходимо дать ответы на два вопроса. Во-первых, определить, каким образом ЦП может выяснить, какой из МВВ и какое из подключенных к этому модулю внешних устройств выставили запрос. Во-вторых, при множественных прерываниях требуется решить, какое из них дол­жно быть обслужено в первую очередь.

Сначала рассмотрим вопрос идентификации устройства. Здесь возможны три основных метода:

  • множественные линии прерывания;
  • программная идентификация;
  • векторное прерывание.

Наиболее простой подход к решению проблемы определения источника запро­са — применение множественных линий прерывания между ЦП и модулями вво­да/вывода, хотя выделение слишком большого количества управляющих линий для этих целей нерационально. Более того, даже если присутствует несколько ли­ний прерывания, желательно, чтобы каждая линия использовалась всеми МВБ. при этом для каждой линии действует один из двух остальных методов идентифи­кации устройства.

При программной идентификации, обнаружив запрос прерывания, ЦП перехо­дит к общей программе обработки прерывания, задачей которой является опрос всех МВБ с целью определения источника запроса. Для этого может быть выделе­на специальная командная линия опроса. ЦП помещает на адресную шину адрес опрашиваемого МВВ и формирует на этой линии сигнал опроса. Реакция модуля зависит от того, выставлял он запрос или нет. Возможен и иной вариант, когда каждый МВВ включает в себя адресуемый регистр состояния. Тогда ЦП считыва­ет содержимое PC каждого модуля, после чего выясняет источник прерывания. Когда источник прерывания установлен, ЦП переходит к программе обработки прерывания, соответствующей этому источнику. Недостаток метода программной идентификации заключается в больших временных потерях.

Наиболее эффективную процедуру идентификации источника прерывания обеспечивают аппаратурные методы, в основе которых лежит идея векторного пре­рывания. В этом случае, получив подтверждение прерывания от процессора, выс­тавившее запрос устройство выдает на шину данных специальное слово, называе­мое вектором прерывания. Слово содержит либо адрес МВБ, либо какой-нибудь другой уникальный идентификатор, который ЦП интерпретирует как указатель на соответствующую программу обработки прерывания. Такой подход устраняет необходимость в предварительных действиях с целью определения источника за­проса прерывания. Реализуется он с помощью хранящейся в ОП таблицы векто­ров прерывания (рис. 8,8), где содержатся адреса программ обработки прерываний. Входом в таблицу служит вектор прерывания. Начальный адрес таблицы (база) обычно задается неявно, то есть под таблицу отводится вполне определенная об­ласть памяти.

Наиболее распространены два варианта векторной идентификации источника запроса прерывания: цепочечный опрос и арбитраж шины.

Рис. 8.8.Идентификация запроса с помощью вектора прерывания

При цепочечном методе для передачи запроса прерывания модули ввода/выво­да совместно используют одну общую линию. Линия подтверждения прерывания последовательно проходит через все МВВ. Когда ЦП обнаруживает запрос преры­вания, он посылает сигнал по линии подтверждения прерывания. Этот сигнал дви­жется через цепочку модулей, пока не достигнет того, который выставил запрос. Запросивший модуль реагирует путем выдачи на шину данных своего вектора пре­рывания.

В варианте арбитража шипы МВБ, прежде чем выставить запрос на линии за­проса прерывания, должен получить право на управление шиной. Таким образом, в каждый момент времени активизировать линию запроса прерывания может толь­ко один из модулей. Когда ЦП обнаруживает прерывание, он отвечает по линии подтверждения. После этого запросивший модуль помещает на шину данных свой вектор прерывания.

Перечисленные методы служат не только для идентификации запросившего МВВ, но и для назначения приоритетов, когда прерывание запрашивают несколь­ко устройств. При множественных линиях запроса ЦП начинает с линии, имею­щей наивысший приоритет. В варианте программной идентификации приоритет модулей определяется очередностью их проверки. Для цепочечного метода прио­ритет модулей определяется порядком их следования в цепочке.

36. Методы управления вводом-выводом: прямой доступ к памяти. Прямой доступ к памяти

Хотя ввод/вывод по прерываниям эффективнее программно управляемого, оба этих метода страдают двумя недостатками:

  • темп передачи при вводе/выводе ограничен скоростью, с которой ЦП в состоя­нии опросить и обслужить устройство;
  • ЦП вовлечен в управление передачей, для каждой пересылки он должен вы­полнить определенное количество команд.

Когда пересылаются большие объемы данных, требуется более эффективны;: способ ввода/вывода— прямой доступ к памяти (ПДП). ПДП предполагает на­личие на системной шине дополнительного модуля — контроллера прямого дос­тупа к памяти (КПДП), способного брать на себя функции ЦП по управлению системной шиной и обеспечивать прямую пересылку информации между ОП и ВУ. без участия центрального процессора. В сущности, КПДП — это и есть модуль ввода/вывода, реализующий режим прямого доступа к памяти.

Если ЦП желает прочитать или записать блок данных, он прежде всего должен поместить в КПДП (рис. 8.9) информацию, характеризующую предстоящее дей­ствие. Этот процесс называется инициализацией КПДП и включает в себя занесе­ние в контроллер следующих четырех параметров:

 вида запроса (чтение или запись);

 адреса устройства в в од а/вы во да;

 адреса начальной ячейки блока памяти, откуда будет извлекаться или куда бу­дет вводиться информация;

 количества слов, подлежащих чтению или записи.

Рис. 8.9.Организация прямого доступа к памяти

 

Первый параметр определяет направление пересылки данных: из ОП в ВУ или наоборот. За исходную точку обычно принимается память, поэтому под чтением понимают считывание данных из ОП и выдачу их на устройство вывода, а под записью — прием данных из устройства ввода и запись в ОП. Вид запроса запоми­нается в схеме логики управления контроллера.

К КПДП обычно могут быть подключены несколько ВУ, а адрес УВВ конкре­тизирует, какое из них должно участвовать в предстоящем обмене данными. Этот адрес запоминается в логике управления КПДП.

Третий параметр — адрес начальной ячейки — хранится в регистре адреса (РА) контроллера. После передачи каждого слова содержимое РА автоматически уве­личивается на единицу, то есть в нем формируется адрес следующей ячейки ОП.

Размер блока в словах заносится в счетчик данных (СД) контроллера. После передачи каждого слова содержимое СД автоматически уменьшается на единицу. Нулевое состояние СД свидетельствует о том, что пересылка блока данных завер­шена.

После инициализации процесс пересылки информации может быть начат в лю­бой момент. Инициаторами обмена вправе выступать как ЦП, так и ВУ. Устрой­ство, желающее начать В/ВЫВ, извещает об этом контроллер подачей соответ­ствующего сигнала. Получив такой сигнал, КПДП выдает в ЦП сигнал «Запрос ПДП». В ответ ЦП освобождает шины адреса и данных, а также тс линии шины управления, по которым передаются сигналы, управляющие операциями на шине адреса (IIIА) и шине данных (ШД). К таким, прежде всего, относятся линии ЧтЗУ, ЗпЗУ, Выв, Вв и линия выдачи адреса на 111 А. Далее ЦП отвечает контроллеру сиг­налом «Подтверждение ПДП», который для последнего означает, что ему делеги­рованы права на управление системной шиной и можно приступать к пересылке данных.

Процесс пересылки каждого слова блока состоит из двух этапов.

При выполнении операции чтения (ОП →ВУ) на первом этапе КПДП выстав­ляет на шину адреса содержимое РА (адрес текущей ячейки ОП) и формирует сигнал ЧтЗУ. Считанное из ячейки ОП слово помещается на шину данных. На вто­ром этапе КПДП выставляет на ША адрес устройства вывода и формирует сигнал Выв, который обеспечивает передачу слова с шины данных в ВУ.

При выполнении операции записи (ВУ -> ОП) КПДП сначала выдает на шину данных адрес устройства ввода и формирует сигнал Вв, по которому введенные данные поступают на шину данных. На втором этапе КПДП помещает на ША ад­рес ячейки ОП, куда должны быть занесены данные, и выдает сигнал ЗпЗУ. Этим сигналом информация с ШД записывается в ячейку ОП.

Как при чтении, так и при записи происходит буферизация пересылаемого сло­ва в регистре данных (РД) контроллера. Это необходимо для компенсации разли­чий в скорости работы ОП и ВУ, в силу чего сигналы Выв и Вв формируются кон­троллером лишь при получении от ВУ подтверждения о готовности. Буферизация сводится к тому, что после первого этапа слово с ШД заносится в РД, а перед вто­рым — возвращается из РД на шину данных.

После пересылки каждого слова логика управления прибавляет единицу к со­держимому РА (формирует адрес следующей ячейки ОП) и уменьшает на едини­цу содержимое СД (ведет подсчет переданных слов).

Когда пересылка завершена (при нулевом значении в СД), КПДП снимает сиг­нал «Запрос ПДП», в ответ на что ЦП снимает сигнал «Подтверждение ПДП» и вновь берет на себя управление системной шиной, то есть ЦП вовлечен в про­цесс ввода/вывода только в начале и конце передачи.

Эффективность ПДП зависит от того, каким образом реализовано распределе­ние системной шины между ЦП и КПДП в процессе пересылки блока. Здесь мо­жет применяться один из трех режимов:

  • блочная пересылка;
  • пропуск цикла;
  • прозрачный режим.

При блочной пересылке КПДП полностью захватывает системную шину с мо­мента начала пересылки и до момента завершения передачи всего блока. На весь этот период ЦП не имеет доступа к шине.

В режиме пропуска цикла КПДП после передачи каждого слова на один цикл шины освобождает системную шину, предоставляя ее на это время процессору. Поскольку КПДП все равно должен ждать готовности ПУ, это позволяет ЦП эф­фективно распорядиться данным обстоятельством.

В прозрачном режиме КПДП имеет доступ к системной шине только в тех цик­лах, когда ЦП в ней не нуждается. Это обеспечивает наиболее эффективную рабо­ту процессора, но может существенно замедлять операцию пересылки блока дан­ных. Здесь многое зависит от решаемой задачи, поскольку именно она определяет интенсивность использования шины процессором.

В отличие от обычного прерывания в пределах цикла команды имеется несколь­ко точек, где КПДП вправе захватить шину (рис 8.10). Отметим, что это не преры­вание: процессору не нужно запоминать контекст задачи.

Рис. 8.10.Точки возможного вмешательства в цикл команды при прямом доступе к памяти и при обычном прерывании

 

Механизм ПДП может быть реализован различными путями. Некоторые воз­можности показаны на рис. 8.11.

В первом примере (см. рис. 8.11, а) все ВУ совместно используют общую сис­темную шину. КПДП работает как заменитель ЦП и обмен данными между памя­тью и ВУ через КПДП производит через программно управляемый ввод/вывод. Хотя этот вариант может быть достаточно дешевым, эффективность его невысока. Как и в случае программно управляемого ввода/вывода, осуществляемого процес­сором, каждая пересылка требует двух циклов шины.

Рис.8.11. Возможные конфигурации систем прямого доступа к памяти

 

Число необходимых циклов шины может быть уменьшено при объединении функций КПДП и ВУ. Как видно из рис. 8.11, б, это означает, что между КПДП и одним или несколькими ВУ есть другой тракт, не включающий системную шину. Логика ПДП может быть частью ВУ, либо это может быть отдельный КПДП, уп­равляющий одним или несколькими внешними устройствами. Допустим и еще один шаг в том же направлении (см. рис. 8.11, в) — соединение КПДП с ВУ посредством шины ввода/вывода. Это уменьшает число интерфейсов В/ВЫВ в КПДП и делает такую конфигурацию легко расширяемой. В двух последних ва­риантах системная шина задействуется КПДП только для обмена данными е па­мятью. Обмен данными между КПДП и ВУ реализуется минуя системную шину.


Поделиться:

Дата добавления: 2015-04-18; просмотров: 92; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты