Одной из важнейших функций компьютера является поддержка устройств ввода-вывода. Благодаря этому оператор, к примеру, может использовать клавиатуру и дисплей для работы с текстом и графикой. Компьютеры применяются для взаимодействия с другими компьютерами через Интернет, а следовательно, предоставляют доступ к информации, находящейся в различных частях земного шара. Роль компьютеров в решении других задач может быть менее заметной, но не менее важной. Компьютеры используются дома, в учебных аудиториях, на производстве, в различных транспортных, банковских и коммерческих системах — разнообразие сфер их применения просто впечатляет. Данные могут поступать в компьютер от самых разных приборов: сенсорных устройств, видеокамер, в том числе цифровых, микрофонов или даже с пультов пожарной сигнализации. Выходными же данными могут служить направляемый в колонки звуковой сигнал или, скажем, закодированная цифровая команда, изменяющая скорость мотора, открывающая вентиль или заставляющая робота выполнить определенное движение. Короче говоря, компьютер должен обладать способностью обмениваться информацией с широким диапазоном устройств в различных окружениях.
В настоящей главе мы подробно рассмотрим разнообразные способы выполнения операций ввода-вывода. Прежде всего, данный вопрос будет проанализирован с точки зрения программиста. Затем речь пойдет о некоторых аппаратных деталях, связанных с шинами и интерфейсами ввода-вывода. Напоследок вы познакомитесь с несколькими наиболее распространенными стандартами шинной архитектуры.
7.1. Доступ к устройствам ввода-вывода
Простейшая схема подключения устройств ввода-вывода к компьютеру заключается в использовании общей шины (рис. 7.1). Все устройства, подключенные к шине, могут обмениваться между собой информацией. Обычно шина состоит из трех наборов линий, предназначенных для передачи адресов, данных и управляющих сигналов. Каждому устройству ввода-вывода присваивается уникальный набор адресов. Когда процессор помещает на адресные линии конкретный адрес, распознавшее этот адрес устройство отвечает на команду, помещенную на управляющие линии. Процессор запрашивает либо операцию чтения, либо операцию записи, и запрошенные данные пересылаются по линиям данных. Такая организация системы ввода-вывода, при которой устройства ввода-вывода и память разделяют одно адресное пространство, называется вводом-выводом с отображением в память.
Рис. 7.1. Архитектура системы с общей шиной
Видео:03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать
Читайте также: Киа рио загорелся значок давления шин
При использовании ввода-вывода с отображением в память любые машинные команды, выполняющие обращение к памяти, могут быть задействованы и для обмена данными с устройствами ввода-вывода. Предположим, DATAIN — это адрес входного буфера, связанного с клавиатурой. Тогда следующая команда считывает данные из DATAIN и помещает их в регистр процессора R0:
Аналогичным образом команда
пересылает содержимое регистра R0 по адресу DATAOUT, который может соответствовать выходному буферу дисплея или принтера.
Технология ввода-вывода с отображением в память применяется в большинстве компьютерных систем. Некоторые процессоры для выполнения операций ввода-вывода поддерживают специальные команды In и Out. Например, процессоры семейства Intel, имеют специальные команды ввода-вывода и отдельное 16-разрядное адресное пространство для устройств ввода-вывода. Создавая компьютерную систему на основе такого процессора, конструктор может либо соединить все устройства ввода-вывода так, чтобы они использовали специальное адресное пространство ввода-вывода, либо подключить их как часть адресного пространства памяти. Второй подход позволяет упростить программное обеспечение, поэтому используется он значительно чаще. Одним из преимуществ наличия отдельного адресного пространства ввода-вывода является то, что соответствующие устройства могут использовать меньшее количество адресных линий. Но имейте в виду, что наличие отдельного адресного пространства ввода-вывода еще не означает, что адресные линии ввода-вывода физически отделены от адресных линий памяти. На тот факт, что запрошенная операция чтения или записи относится к системе ввода-вывода, может указывать передаваемый по шине специальный сигнал. Получив такой сигнал, память игнорирует запрошенную операцию, а устройства ввода-вывода анализируют младшие разряды переданного по шине адреса, чтобы узнать, кому из них направлен запрос.
Аппаратные элементы, необходимые для присоединения устройств ввода-вывода к шине, представлены на рис. 7.2. Когда адрес устройства появляется на адресных линиях, устройство распознает его с помощью дешифратора (декодера) адреса. Данные, которыми устройство обменивается с процессором, хранятся в регистрах данных. Регистр состояния содержит информацию, относящуюся к функционированию устройства ввода-вывода. Регистры данных и состояния соединяются шиной данных, и им присваиваются уникальные адреса. Дешифратор адреса, регистры данных и состояния, управляющие схемы, необходимые для координирования операций ввода-вывода, составляют схему сопряжения, или интерфейс, устройства.
Читайте также: Какое давление качать в шины кроссового мотоцикла
Видео:Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!Скачать
Рис. 7.2. Интерфейс ввода-вывода для устройства ввода
Скорость работы устройств ввода-вывода значительно отличается от скорости работы процессора. Когда оператор вводит с клавиатуры символы, между последовательными нажатиями клавиш процессор может выполнять миллионы команд. Команда, считывающая символ с клавиатуры, должна выполняться только тогда, когда таковой находится во входном буфере интерфейса клавиатуры. Кроме того, необходимо гарантировать, что один и тот же символ не будет прочитан из этого буфера дважды.
В случае входного устройства, подобного клавиатуре, в схему сопряжения в виде одного из разрядов регистра состояния включается флаг состояния SIN. Он устанавливается в 1, если символ вводится с клавиатуры, и сбрасывается в 0, если символ считывается процессором. Таким образом, проверяя значения флага SIN, программное обеспечение гарантирует корректность операции чтения данных. Для этого обычно организуется программный цикл, считывающий регистр состояния и проверяющий состояние флага SIN. Обнаружив, что флаг установлен в 1, программа считывает значение из регистра входных данных. Аналогичным образом может осуществляться управление операциями вывода, но в этом случае применяется флаг состояния SOUT.
Для того чтобы лучше усвоить базовые концепции ввода-вывода, мы рассмотрим простой пример с участием клавиатуры и дисплея. Для операций пересылки данных используются четыре регистра (рис. 7.3). В регистре STATUS содержатся два управляющих флага, SIN и SOUT, хранящие соответственно информацию о состоянии клавиатуры и дисплея. Еще два флага из этого регистра, KIRQ, и DIRQ, используются при обработке прерываний. О флагах KEN и DEN, относящихся к регистру CONTROL, будет рассказано в разделе 7.2. Вводимые с клавиатуры данные помещаются в регистр DATAIN, а данные, отправляемые на дисплей, — в регистр DATAOUT.
Рис. 7.3. Регистры интерфейса клавиатуры и дисплея
Видео:Шины ввода-выводаСкачать
Mov EAX,Offset Buffer Инициализация указателя на память
WAITK TB STATUS,0 Проверка флага SIN
JE WAITK Ожидание ввода символа
Mov BL,DATAIN Чтение символа
WAITD TB STATUS,1 Проверка флага SOUT
JE WAITD Ожидание момента готовности дисплея
Mov DATAOUT,BL Отправка символа на дисплей
Видео:07. Основы устройства компьютера. Ввод-вывод. [Универсальный программист]Скачать
Читайте также: Как сбросить датчик давления шин прадо 150
Mov (EAX),BL Сохранение символа в памяти и увеличение
INC DWORD PTR (EAX) значения указателя
CMP BL,0D Проверка того, введен ли символ возврата каретки
JNE WAITK Если символ возврата каретки не введен,
считывается следующий символ
MOV DATAOUT,0Ah Если символ возврата каретки введен,
Видео:Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать
на дисплей отправляется символ перевода строки
Call PROCESS Вызов подпрограммы для обработки введенной
Рис. 7.4. Программа, которая считывает с клавиатуры одну строку, сохраняет ее в буфере памяти, а затем отображает на дисплее
Программа, приведенная на рис. 7.4 считывает с клавиатуры строку символов и сохраняет ее в памяти, в буфере, начинающемся с адреса LINE. Затем она вызывает подпрограмму PROCESS, выполняющую обработку введенной строки. Каждый вводимый символ отображается на дисплее. Регистр EAX используется как указатель на буфер в памяти. Его содержимое обновляется с применением автоинкрементного режима адресации, благодаря чему последовательно вводимые символы сохраняются в памяти по последовательным адресам.
После ввода каждого символа подпрограмма проверяет, не является ли он символом возврата каретки (шестнадцатеричным ASCII-кодом 0D). Если он таковым является, на дисплей отправляется символ перевода строки (шестнадцатеричный ASCII-код 0А), перемещающий курсор на одну строку вниз. Затем вызывается подпрограмма PROCESS. Если введен любой другой символ, программа переходит на начало цикла и ждет ввода следующего символа.
Данный пример иллюстрирует принцип технологии программно-управляемого ввода-вывода, при котором процессор постоянно проверяет флаг состояния, чтобы синхронизировать свою работу с работой внешнего устройства. Мы говорим, что процессор опрашивает устройство.
Существует еще два распространенных механизма реализации ввода-вывода:
Видео:CAN шина👏 Как это работаетСкачать
Если для управления вводом-выводом используются прерывания, синхронизация достигается за счет того, что устройство ввода-вывода само сообщает о своей готовности, отправляя через шину специальный сигнал. Прямой доступ к памяти является характерным для высокоскоростных устройств ввода-вывода. Эта технология позволяет интерфейсным схемам устройства самостоятельно обмениваться данными с памятью, без постоянного участия процессора. Эти два механизма мы обсудим в следующих разделах, после чего поговорим о необходимых для их реализации аппаратных компонентах — шине процессора и интерфейсах устройств ввода-вывода.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
🔥 Видео
лекция 403 CAN шина- введениеСкачать
Архитектура ЭВМ Лекция 11: Организация ввода вывода. Интерфейсы передачи данных.Скачать
Хитрость с шиной гребёнкойСкачать
лекция 417 Чтение и запись данных на общую шинуСкачать
Подробно про CAN шинуСкачать
Программирование микроконтроллеров: Урок 3. Порт ввода - выводаСкачать
STM32 GPIO. Скорость работы портов ввода-вывода.Скачать
Цифровые интерфейсы и протоколыСкачать
Системная шина процессораСкачать
GPIO STM32 Схемотехника портов ввода-выводаСкачать
Стандартные потоки ввода/вывода в Linux. Урок 12.Скачать
Лекция 322. Atmega 8: Порты ввода-выводаСкачать
Подключая автоматы гребенкой, знай об этомСкачать