Дымоходы для газовых колонок купить. Большой выбор дымоходов к газовым eksno.ru. Цветы служба Доставки цветов Богучаны dostavka-byketov.ru.
Термином “периферийное устройство” (ПУ) будем называть устройства самой разнообразной природы, которые являются внешними по отношению к вычислительному ядру (процессор + память) и которые по скорости своей работы не согласованы с процессором. Таким естественным образом согласована по скорости работы с процессором основная память. Для лучшего согласования используются дополнительные структурные элементы, такие, как КЭШ-память, дополнительные локальные шины для доступа к памяти и др. (см. более подробно в предыдущих разделах). Как правило, периферийные устройства "работают" медленнее процессора, т.е. передают или принимают данные медленнее, чем это в состоянии делать процессор, обмениваясь по магистрали (например, с памятью). Но, с точки зрения передачи информации по магистрали в рамках упрощенной схемы ЦВМ, периферийное устройство, подключенное к магистрали ОЗУ, мало отличается от памяти.
Приведем два примера простых периферийных устройств персонального компьютера.
1. Таймер. Его основная функция — обеспечить программе возможность, читая содержимое таймера, получать информацию о истекшем времени, подобно тому, как человек получает ее, поглядывая на часы. Таймер в том или ином виде реализован практически в любой вычислительной системе.
Основной элемент таймера — счетчик, на счетный вход которого постоянно поступает последовательность импульсов от генератора стабильной частоты. Вследствие этого, содержимое счетчика таймера постоянно изменяется во времени. Программа может прочитать содержимое счетчика таймера (скопировать это значение в переменную).
Таймер персонального IBM PC-совместимого компьютера содержит три почти одинаковых канала. Счетчик каждого канала имеет 16 двоичных разрядов. Таким образом, программа может считать из канала таймера значение.
2. Последовательный (коммуникационный) интерфейс (иначе называемый COM-портом). Это периферийное устройство на самом деле включает два отдельных независимых узла: передатчик и приемник. Байт, записанный программой в регистр данных передатчика, немедленно после записи начинает бит за битом передаваться через последовательный интерфейс.
Организация взаимодействия и обмена информации в вычислительной информационной системе требует решения целого ряда проблем, среди которых выделим следующие:
Указанные требования решаются за счет:
Интерфейс — это совокупность программных и аппаратных средств, предназначенных для передачи информации между компонентами ЭВМ и включающих в себя электронные схемы, линии, шины и сигналы адресов, данных и управления, алгоритмы передачи сигналов и правила интерпретации сигналов устройствами. Интерфейсы характеризуются следующими параметрами:
Основным назначением интерфейса является унификация внутрисистемных и межсистемных связей и устройств сопряжения с целью эффективной реализации прогрессивных методов проектирования функциональных элементов вычислительных систем.
Основными архитектурами соединений устройств являются:
На интерфейсные схемы модулей возлагаются следующие задачи:
Эти интерфейсные схемы могут быть достаточно сложными и по своим возможностям соответствовать универсальным микропроцессорам. Такие схемы принято называть контроллерами.
Унификация программирования достигается за счет унифицированных форматов команд в ЭВМ и унифицированных форматов регистров ПУ. На уровне операционной системы унификация достигается путем использования драйверов внешних устройств.
Каждое периферийное устройство имеет в своем составе один или несколько регистров, содержимое которых можно прочитать или записать командами программы. Сложные периферийные устройства могут содержать несколько десятков регистров. Таким образом, общее количество регистров периферийных устройств в системе может быть значительным.
Словосочетанием “модель периферийного устройства для программиста” будем называть набор регистров в периферийном устройстве, которые можно прочитать-записать программно.
Простейшая модель для программиста внешнего устройства может содержать довольно мало регистров: — регистр состояния (статуса), регистр управления, регистр (буфер) данных.
Применяют два основных способа доступа к регистрам ПУ:
В первом случае процессор по команде может записать/считать данные в любой регистр ПУ. Если ПУ имеет большое количество регистров, например, более 100, как в sound blaster, используют второй способ. В этом случае ПУ имеет два регистра: индексный регистр и регистр данных. При записи в индексный регистр заносим номер регистра ПУ, в который хотим записать, затем в регистр данных заносим записываемое число.
Адресация регистров внешнего устройства:
В некоторых процессорах доступ к регистрам периферийных устройств осуществляется аналогично доступу к ячейкам памяти. Каждому регистру присвоен адрес в адресном пространстве памяти. В этом случае для обращения к регистрам ПУ можно использовать те же команды, что и для доступа к ячейкам памяти. Такая организация носит название "ввод-вывод, отображаемый на память". Обычно разработчики вычислительной системы выделяют для адресации регистров ПУ какой-либо фиксированный диапазон адресов.
В других процессорах регистры ПУ имеют свою систему адресации, никак не связанную с адресацией ячеек памяти. Для обращения к регистрам ПУ в системе команд имеются специальные команды ввода- вывода. Такая организация обмена с ПУ носит название "изолированный ввод-вывод". Для обозначения программно- доступных регистров периферийных устройств в компьютерной литературе используют термин "порты ввода-вывода".
Пример 1. Нулевой канал таймера имеет порт данных с адресом 40h
и порт управления с адресом 43h.
Пример 2. Приемник последовательного интерфейса COM1 имеет
порт данных с адресом 0378h и порт состояния (статуса) с адресом
03FDh. Младший бит в порте состояния (флаг окончания приема)
устанавливается в 1, если приемник принял извне байт.
Оба вида адресации аппаратно поддержаны со стороны процессора. В первом случае в адресном пространстве процессора выделяется область адресов для ПУ. Адреса из этой области транслируются напрямую, без использования схемы преобразования (логический адрес равен физическому). В процессоре Motorola 68040 этот механизм называется “прозрачная трансляция адресов”. Для указания выделенной области регистров ПУ используются специальные регистры. В этих регистрах дополнительно имеются поля, определяющие разрешение/запрещение КЭШирования, тип доступа r/w и др. На рисунке (см. рисунок ниже) представлена схема страничной трансляции.
Регистры прозрачной трансляции ТТО и ТТ1 (см. рисунок ниже) определяют блоки адресного пространства, которые транслируются прозрачно (прямо): в этих блоках логические адреса являются физическими.
Значения полей регистров ТТО и ТТ1:
LOGICAL ADDRESS BASE — значение А31 — А24, определяют блок прозрачной трансляции;
LOGICAL ADDRESS MASK — игнорируемые разряды А31 — А24;
Е (Enable) — разрешение: определяет возможность прозрачной трансляции (Е=1 разрешена).
Cl (Cashe Inhibit) — КЭШ запрещен: определяет возможность использования КЭШа ( С1=0 означает, что КЭШ используется);
R/W — чтение/запись: определяет тип доступа в транслируемом блоке: (R/W=0 — запись; R/W=1 — чтение);
RWM (Read/Write Mask) — маска чтения-записи: определяет достоверность поля R/W (RWM=0 — поле используется);
FC BASE (Function Code Base) — значение функционального кода блока прозрачной трансляции;
FC MASK (Function Code Mask) — игнорируемые биты функциональною кода.
При изолированном вводе-выводе процессор должен иметь: специальные команды работы с ПУ, специальные сигналы на шине, различающие обращение к памяти и к ПУ.
В процессорах семейства х86 использован изолированный ввод-вывод. На шине процессора имеются специальные сигналы. При обращении к памяти вырабатываются стробы MEMR, MEMW, а к ПУ — стробы I/OR, I/OW. Схема подключения приведена на рисунке (см. рисунок ниже).
В составе системы команд имеются следующие две команды ввода-вывода:
Номер порта операнда-источника в команде in или операнда-приемника в команде out можно задать двумя способами: непосредственной адресацией или косвенно-регистровой с использованием только регистра dx.
!Примеры.
in al,040h; ввести байт в al из порта 40h
mov dx,0378h; записать номер порта 0378h в регистр dx
in al,dx; ввести байт в al из порта 0378h
mov al,049h; записать байт 49h в регистр al
out dx,al; вывести байт из al в порт, номер которого содержится в dx
Кроме того, в системе команд есть две строковые (цепочечные) команды ввода-вывода: