Контроллеры - устройства ввода-вывода информации. В соответствии с базовыми техническими понятиями они делятся на два основных вида: блочные и символьные. Первые хранят информацию в блоках с фиксированными размерами, каждый из которых имеет свой отдельный адрес. Вторые принимают или распространяют потоки символов в отсутствии блочной структуры. При этом такие устройства не являются адресуемыми и не могут выполнять поиск. Рассмотрим подробнее.
Вопросы с категориями
Несмотря на стандартную классификацию между контроллерами ввода и вывода информации, часто общую схему считают несовершенной. Это связано с тем, что некоторые из устройств невозможно причислить к блочным или символьным типам. Ярким примером становятся часы, которые не относятся к блок-адресуемой технике. Контроллеры ввода и вывода информации имеют между собой набор отличий в рамках разделения по классам. Принцип разделения базируется на характеристиках:- скорость передачи информации может различаться на несколько порядков;
- применение;
- уровень сложности в управлении;
- единицы для передачи данных;
- способ представления данных;
- природа и условия ошибок.
Конструктивные особенности
Устройство ввода вывода информации контроллер состоит в конструктивном плане из двух составляющих: механическая и электронная. Такая конструкция разработана с целью создания модульного вида. Именно электронная часть и является контроллером или, как часто ее еще называют, адаптером. Механическая часть расположена внутри самого устройства. Плата в большинстве случаев оснащена специальным разъемом, который предназначен для подключения кабеля. Последний элемент ведет к устройству. Сами контроллеры не просто так называются устройствами ввода и вывода информации, ведь они могут подключаться сразу к нескольким идентичным механизмам. Преимуществом становится высокая степень совместимости между компонентами разных разработчиков благодаря стандартизации общего интерфейса. Это означает, что он организован по одному из официальных стандартов: ISO, ANSI, IEEE или каким-либо другим фактическим. Поэтому многие производители разрабатывают жесткие диски с определенными интерфейсами. Довольно часто сам интерфейс между основным контроллером у другим устройством соответствует низкому уровню. Принцип работы подразумевает конвертирование последовательного потока битов в специальный блок байтов, а параллельно происходит коррекция ошибок в случае такой необходимости.Отображаемый ввод-вывод на адресное пространство
Любой контроллер ввода вывода информации включает ряд регистров, которые отвечают за передачу данных за счет CPU. Операционная система (в дальнейшем - ОС) передает команды при помощи записи информации в регистрах. Таким образом устройство может принимать требуемые данные, включаться, выключаться и производить другие простые операции. Еще одним важным компонентом любой такой системы является буфер данных. Он также предоставляет возможность чтения данных, поэтому им также может пользоваться в определенные промежутки времени ОС. Всего существует два способа реализации доступа как к регистрам управления, так и буферам данных, оба из которых являются, по сути, альтернативными друг по отношению к другу. Перечислим:- в данном случае каждому регистру управления происходит назначение номера порта по вводу-выводу. Числовое значение соответствует 8-ому или 16-ому разряду. Выполнение действия происходит за счет специальной команды cPU. Поэтому последняя выполняет запись содержимого своего регистра в регистр устройства путем прохождения через порт. За счет этого организуются адресные пространства ОЗУ и устройства ввода-вывода, которые не способны по схеме пересечься;
- здесь происходит отображение регистров управления от периферийных устройств с передачей напрямую на адресное пространство памяти. Поэтому у каждого управляющего регистра присутствует свой уникальный адрес внутри памяти, который назначается системой. Для регистров устройств в большинстве случаев адреса назначаются на вершинах пространств с адресами. Но встречаются и схемы гибридного формата, где присутствуют в наличии буферы данных.
Принцип работы
Структура контроллера устройства ввода-вывода устроена в обоих вышеперечисленных случаях идентичным образом. Это означает, что при необходимости считывания слов данных CPU, процесс происходит из памяти или порта. Для этого выставляется требуемый адрес на адресной шине, а после выставляется сигнал на управляемую шину. Но стоит учитывать, что схемы обращения имеют преимущества и недостатки при сравнении, поэтому эффективны в разных ситуациях. Обращение к контроллерам устройств с целью обмена данными с ними организуется за счет отображения либо регистров, либо буферов на память. Для реализации этой задачи наиболее эффективным методом используется доступ к памяти, называемый DMA. Поэтому для использования ОС такой схемы необходимо наличие DMA-контроллера. Как правило, такое изделие интегрируется в другие контроллеры устройств. Нередко он располагается внутри дискового устройства и устанавливается на материнской плате. Таким образом, отвечает за обслуживание запросов сразу от нескольких устройств ввода-вывода, которые действуют на конкурентной основе. Вне зависимости от местонахождения DMA-контроллера получение доступа к системной шине происходит независимо от CPU. Это объясняется наличием нескольких регистров для записи и чтения:- регистр с адресом памяти;
- счетчик байтов;
- один или несколько регистров управления.
- считывание с диска блока контроллером последовательным образом до тех пор, пока он полностью не будет находиться внутри буфера.
- проверка контрольной суммы во избежание потенциальной ошибки.
- инициирование прерывания.
- начало работы ОС с чтением блока диска пословно или побайтно с последующим сохранением данных в RAM.
Принципы обеспечения ввода-вывода
Контроллер концентратор ввода-вывода обеспечивает работу с помощью специального программного обеспечения (ПО). Особенности процесса зависят от назначения и поставленных целей, которые должны быть выполнены. Программное обеспечение ввода-вывода реализуется с обязательным соблюдением принципа независимости от устройств. То есть такие виды программ способны получить доступ к любому устройству без указания его точного наименования, и для этого не будут требоваться данные о входном устройстве. Поэтому для удобства концепция подразумевает и единообразное наименование. поэтому имена контроллеров устройств и файлов отображаются в виде текстовой строки или целого численного значения. Такая система может быть произвольно интегрированной внутри иерархии системы файлов. поэтому пользователь не нуждается в запоминании того или иного названия, обращение происходит автоматически. Не менее важным аспектом организации любого ПО для контроллеров устройств ввода-вывода является обработка ошибок. Они обрабатываются максимально близко по отношению к аппаратуре. по возможности контроллеры исправляют ошибки самостоятельно. Если же этого действия не происходит, выполняется повторное чтение данных драйвером, так как многие ошибки носят временный характер. В случае если проблема не оказывается решенной, идет информирование верхнего уровня. Способы переноса данных бывают двух видов:- синхронный;
- асинхронный.