Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗФ / Вопросы-Ответы (ВМСиС).docx
Скачиваний:
70
Добавлен:
06.11.2017
Размер:
179.04 Кб
Скачать

31. Программная модель контроллера ввода-вывода.

Передача информации с периферийного устройства в ядро ЭВМ называется операцией ввода, а передача из ядра ЭВМ в периферийное устройство - операцией вывода. Связь устройств ЭВМ друг с другом осуществляется с помощью средств сопряжения - интерфейсов. Интерфейс представляет собой совокупность линий и шин, сигналов, электронных схем и алгоритмов, предназначенную для осуществления обмена информацией между устройствами. От характеристик интерфейсов во многом зависят производительность и надежность вычислительной машины. При разработке систем ввода-вывода должны быть решены следующие проблемы:  1) Должна быть обеспечена возможность реализации машин с переменным составом оборудования. 2) Для эффективного использования оборудования ЭВМ должны реализовываться параллельная во времени работа процессора над программой и выполнение периферийными устройствами процедур ввода-вывода. 3) Необходимо стандартизировать программирование операций ввода-вывода для обеспечения их независимости от особенностей периферийного устройства. 4) Необходимо обеспечить автоматическое распознавание и реакцию ядра ЭВМ на многообразие ситуаций, возникающих в ПУ (готовность устройства, различные неисправности и т.п.).  В системах ввода-вывода ЭВМ используются два основных способа организации передачи данных между памятью и периферийными устройствами: программно-управляемая передача и прямой доступ к памяти. Программно-управляемая передача данных осуществляется при непосредственном участии и под управлением процессора, который при этом выполняет специальную подпрограмму процедуры ввода-вывода. Данные между памятью и периферийным устройством пересылаются через процессор. Операция ввода - вывода инициируется текущей командой программы или запросом прерывания от периферийного устройства. При этом процессор на все время выполнения операции ввода-вывода отвлекается от выполнения основной программы. Кроме того при пересылке блока данных процессору приходится для каждой единицы передаваемых данных выполнять несколько команд, чтобы обеспечить буферизацию, преобразование форматов данных, подсчет количества переданных данных, формирование адресов в памяти и т.п. Это сильно снижает скорость передачи данных (не выше 100 Кб/сек), что недопустимо при работе с высокоскоростными ПУ. Между тем потенциально возможная скорость обмена данными при вводе-выводе определяется пропускной способностью памяти. Для быстрого ввода-вывода блоков данных используется прямой доступ к памяти. Прямым доступом к памяти называется способ обмена данными, обеспечивающий независимую от процессора передачу данных между памятью и периферийным устройством.

32. Что такое транзакция?

Транзакция (от английского transaction — сделка) это, в широком смысле, серия операций по обмену информацией, в результате которой в систему вносятся изменения. 

Все обмены (транзакции) по USB состоят из трех пакетов. Каждая транзакция планируется и начинается по инициативе хост-контроллера, который посылает маркер-пакет (т. е. пакет типа token). Он описывает тип и направление передачи, адрес устройства USB и номер конечной точки. В каждой транзакции возможен обмен только между устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных, определенный маркером, передает пакет данных или уведомление об отсутствии данных, предназначенных для передачи. После успешного приема пакета приемник данных посылает пакет подтверждения (т.е. пакет типа Handshake).

Где А - передача данных от хоста, Б - передача данных хосту. Периферийное устройство не может выдавать на шину какую-либо информацию по собственной инициативе и не может самостоятельно посылать запросы прерываний.

Спецификация USB определяет следующие типы транзакций. Передача команды:

  • хост посылает маркер SETUP, содержащий номер функции и номер конечной точки, для которой предназначена команда;

  • хост посылает выбранной конечной точке пакет данных со сброшенным битом синхронизации (т. е. пакет типа Data0), содержащий 8-байтный код команды;

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

Изохронная передача данных:

  • хост посылает маркер OUT, содержащий номер функции и номер конечной точки, для которой предназначены данные;

  • хост посылает выбранной конечной точке пакет данных со сброшенным битом синхронизации (т. е. пакет типа Data0).

Передача данных с подтверждением:

  • хост посылает маркер OUT, содержащий номер функции и номер конечной точки, для которой предназначены данные;

  • хост посылает выбранной конечной точке пакет данных;

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

Изохронный прием данных:

  • хост посылает маркер IN, содержащий номер функции и номер конечной точки, от которой запрашиваются данные;

  • выбранная конечная точка передает хосту пакет данных со сброшенным битом синхронизации (т. е. пакет типа Data0).

Прием данных с подтверждением:

  • хост посылает маркер IN, содержащий номер функции и номер конечной точки, от которой запрашиваются данные;

  • выбранная конечная точка передает хосту пакет данных или пакет подтверждения (NAK - данные не готовы, STALL - сбой);

  • если хост получил пакет данных, он посылает пакет подтверждения.

Соседние файлы в папке ЗФ