Особенности функционирования подсистемы ввода-вывода данных современного компьютера
Структура однопроцессорной вычислительной системы, содержащей центральный процессор, оперативную память, северный и южный мост, а также устройства ввода-вывода приведена на рисунке 35. Подсистема ввода-вывода включает в себя соответствующие устройства, мосты и шины. Устройства ввода с клавиатуры и вывода на экран традиционно относят к классу внешних, т.е. к соответствующей подсистеме.
Рисунок 35 – Структура вычислительной системы
Во время ее работы в оперативной памяти находятся системные и прикладные программы. Исполняемая программа и ее данные помещаются в кэш процессора.
Диалоговые и другие программы, требующие ввода данных с клавиатуры, реализуют циклическую последовательность операций процессорной обработки и ввода-вывода и работают следующим образом.
После выполнения начальной части команд происходит прерывание, связанное с необходимостью ввода данных с клавиатуры. Такая операция осуществляется пользователем, причем при однопрограммном режиме процессор в это время простаивает. По окончании ввода процессорная обработка продолжается до следующего прерывания и так далее. Последний этап выполняется процессором и программа завершается.
Если в системе поддерживается мультипрограммный режим, то во время ввода данных для одной из программ выполняется процессорная обработка другой. Таким образом, сокращаются простои процессора.
Ввод информации в ЭВМ с помощью клавиатуры может осуществляться в двух режимах:
a) с одновременным выводом на экран (режим «эхо»);
b) без вывода на экран.
Процесс ввода с клавиатуры и вывода на экран показан на рисунке 36.
Рисунок 36 – Ввод с клавиатуры в режиме «эхо»
Клавиатура состоит из набора переключателей, объединенных в матрицу. При нажатии клавиши микроконтроллер, встроенный в клавиатуру, определяет координаты этой клавиши в матрице. Далее сигнал от контроллера передается в виде так называемого скэн-кода на материнскую плату. Скэн-код — это однобайтное число, которое представляет собой идентификационный номер, присвоенный каждой клавише. На материнской плате для подключения клавиатуры также используется специальный контроллер.
Когда скэн-код поступает в контроллер клавиатуры, инициируется аппаратное прерывание. Процессор прекращает свою работу и выполняет процедуру анализа скэн-кода. Прерывание обслуживается специальной программой, входящей в состав ROM BIOS. При поступлении скэн-кода от клавиш сдвига (<Alt>,<Ctrl>) или переключателя (<Shift>, <CapsLock>) изменение статуса записывается в оперативную память. Во всех остальных случаях скэн-код трансформируется в код символа (коды ASCII или расширенные коды). При этом обрабатывающая процедура сначала определяет установку клавиш и переключателей, чтобы правильно идентифицировать вводимый код ("а" или "А").
Затем введенный код помещается в буфер клавиатуры, представляющий собой область памяти, способную запомнить до 15 вводимых символов, пока прикладная программа не может их обработать. Буфер организован по принципу FIFO (первый вошел — первый вышел).
Таким образом, ввод информации с клавиатуры выполняется по следующему алгоритму:
1) при нажатии на клавишу (или комбинацию клавиш) специальная микросхема, встроенная в клавиатуру, генерирует и выдает скан-код;
2) скан-код поступает в микросхему, выполняющую функции порта клавиатуры;
3) порт клавиатуры через порт 0 южного моста, северный мост и системную шину выдает процессору команду прерывания с фиксированным номером (для клавиатуры номер прерывания – 9);
4) получив прерывание, процессор откладывает текущую работу и по номеру прерывания через северный мост обращается в специальную область оперативной памяти, в которой находится так называемый вектор прерываний. Он представляет собой список адресных данных с фиксированной длиной записи. Каждая запись содержит адрес программы, которая должна обслужить прерывание с номером, совпадающим с номером записи;
5) определив адрес начала программы, обрабатывающей возникшее прерывание, процессор переходит к ее исполнению. Простейшая программа обработки клавиатурного прерывания «зашита» в микросхему ПЗУ;
6) программа-обработчик прерывания направляет процессор к порту клавиатуры, где он находит скан-код, загружает его в свои регистры, а потом под управлением обработчика определяет, какой код символа соответствует данному скан-коду;
7) обработчик прерываний отправляет полученный код символа через системную шину и шину памяти в небольшую область оперативной памяти – буфер клавиатуры и прекращает свою работу, известив об этом процессор;
8) процессор завершает обработку прерывания и возвращается к отложенной задаче.
Введенный символ хранится в буфере клавиатуры до тех пор, пока его не заберет оттуда та программа, для которой он предназначался, например текстовый редактор. Если символы поступают в буфер чаще, чем забираются, возможен эффект переполнения буфера. В таком случае ввод новых символов на некоторое время прекращается. На практике в этот момент при нажатии на клавишу мы слышим предупреждающий звуковой сигнал и не наблюдаем ввода данных.
При вводе информации с одновременным выводом на экран во время выполнения пунктов 6 и 7 алгоритма работает подсистема вывода на монитор. Код введенного символа передается по шинам памяти, системной и графического интерфейса в видеокарту, а оттуда – на монитор.
Видеоадаптер (видеокарта) – устройство, преобразующее графический образ, хранящийся, как содержимое памяти компьютера (или самого адаптера), в форму, пригодную для дальнейшего вывода на экран монитора.
Основными узлами современного видеоадаптера являются:
1) графический процессор (Graphics processing unit, GPU), который занимается построением выводимого изображения, освобождая от этой обязанности центральный процессор. Он производит расчеты для обработки команд трехмерной графики и является основой графической платы. Именно от него зависят быстродействие и возможности видеоадаптера;
2) видеоконтроллер отвечает за формирование изображения в видеопамяти, дает команды RAMDAC на формирование сигналов развертки для монитора и осуществляет обработку запросов центрального процессора. Кроме того, в нем обычно присутствуют контроллеры внешней и внутренней шин данных, а также контроллер видеопамяти;
3) видео-ПЗУ (Video ROM), в которое записаны BIOS видеокарты, экранные шрифты, служебные таблицы и т.п.;
4) видеопамять, которая исполняет роль кадрового буфера для хранения изображения, выводимого на экран монитора. Оно генерируется и постоянно изменяется графическим процессором. В видеопамяти хранятся также промежуточные, невидимые на экране элементы изображения и другие данные;
5) цифро-аналоговый преобразователь RAMDAC (Random Access Memory Digital-to-Analog Converter) служит для преобразования изображения, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на аналоговый монитор.
Все современные видеоподсистемы могут работать в одном из двух основных видеорежимов:
a) текстовом;
b) графическом.
В первом экран монитора разбивается на отдельные символьные позиции, в каждую из которых одновременно может выводиться только один символ. Для преобразования кодов символов, хранимых в видеопамяти адаптера, в точечные изображения на экране служит так называемый знакогенератор, который обычно представляет собой ПЗУ, где хранятся изображения символов. При получении кода символа знакогенератор формирует на своем выходе соответствующий двоичный код, который затем преобразуется в видеосигнал. Текстовый режим в современных операционных системах используется только на этапе начальной загрузки.
В графическом режиме для каждой точки изображения, называемой пикселом, отводится от одного (монохромный) до 32 бит (цветной режим). Максимальное разрешение и количество воспроизводимых цветов конкретной видеоподсистемы, в первую очередь, зависят от общего объема видеопамяти и количества бит, приходящихся на один элемент изображения.
Сначала информация из шины данных попадает в графический процессор, где она обрабатывается. После этого данные через видеоконтроллер поступают в видеопамять, где создается образ изображения, которое должно выводиться на монитор. Затем происходит передача в ЦАП RAMDAC, где изображение преобразуется в аналоговый вид и уже в таком виде поступает на монитор.
Современные ЖК-дисплеи имеют цифровые видеовходы DVI и HDMI и способны работать с видеосигналом без участия RAMDAC. Но пока остаются модели с аналоговыми входами, в целях совместимости, даже новые видеокарты оснащаются ЦАП и поддерживают подключение аналоговых устройств.
Дата добавления: 2015-12-29; просмотров: 1392;