Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Управление внешними устройствами ПК.

Управление внешними устройствами ПК.

Главная функция микропроцессора — это выполнение заданного для него набора команд:

- выполняя последовательность команд (т. е. Программу) он вычисляет, управляет внешними устройствами, рассчитывает зарплату и т. п. , он может выполнять и бессмысленную последовательность своих команд - ему все равно — он автомат (принцип программного управления — мы пишем программу — он исполняет);

- для реализации Главной функции процессор выполняет целый ряд аппаратных функций: формирует адреса для выборки последовательности команд, инициирует на Системном интерфейсе операцию «Чтение команды» и др.;

Главная внешняя функция микропроцессора - это инициирование операций обмена на системном интерфейсе. Выбирая команды, выполняя большинство команд, выполняя аппаратную функцию прерывания процессор инициирует на системном интерфейсе операции обмена: «Чтение команды», «Чтение данных из памяти», «Запись данных в память», «Чтение порта», «Запись в порт», «Чтение дескриптора» и др.

Операцию обмена «Чтение порта» - процессор инициирует выполняя свою команду IN AL,DX — чтение порта, а «Запись в порт» - отрабатывая свою команду OUT DX,AL — запись в порт.

Выполняя, например, команду сложения ADD [1000], BX процессор два раза обратится в ОЗУ:

  • первый раз — для чтения второго слагаемого (из ячейки с адресом 1000),

  • а второй раз - для записи результата сложения содержимого регистра BX со вторым слагаемым (по адресу 1000).

В операциях обмена с одной стороны всегда участвует один из регистров процессора, а с другой стороны - ячейка оперативной памяти (DRAM или ПЗУ BIOS), или регистр контроллера внешнего устройства, или регистр чипсета и других микросхем (исключение — обмен по «прямому доступу»).

А что есть у процессора для управления внешними устройствами (устройствами ввода, вывода, устройствами внешней памяти)? Есть всего две команды: IN и OUT («чтение порта» и «запись в порт»), и есть аппаратная функция «прерывание» (без которой он в принципе может обойтись). Есть еще две команды — INS, OUTS (без которых он в принципе тоже может обойтись).

А что вообще доступно процессору во «внешней среде»? Ему доступны регистры контроллеров внешних устройств (например, видеоадаптера, принтера и др.), регистры чипсета и других микросхем, ячейки оперативной памяти (DRAM или ПЗУ BIOS) для чтения и записи.

Внешние устройства подключаются к локальным шинам системного интерфейса через контроллеры (каждый контроллер имеет свой набор команд, которые он обязан выполнять по отношению к своему внешнему устройству). После «начального сброса» контроллер ждет, что процессор перешлет в его соответствующие регистры команду и информацию необходимую для выполнения операции обмена. Непосредственное управление внешним устройством процессор осуществляет выполняя операции записи и чтения (по командам IN и OUT) по отношению к соответствующим регистрам контроллера этого внешнего устройства. Как минимум, любой контроллер должен иметь хотя бы три доступных процессору регистра:

- регистр данных;

- регистр управления (регистр команд);

- регистр состояния.

«Сложные» контроллеры могут иметь значительно большее число регистров, и каждый из этих регистров имеет свое функциональное назначение: регистр ошибок, регистр номера головки, регистр номера цилиндра и т. д.. Например, контроллер принтера (параллельный порт) имеет три регистра, а видеоадаптер имеет свыше 60 регистров (каждый из которых имеет свое функциональное назначение, отдельные разряды и группы разрядов регистров тоже имеют свое функциональное назначение), уже поэтому управление видеоадаптером на уровне регистров реализуется очень сложно. Эту проблему для нас решают программы BIOS видеосистемы, которые «знают» как управлять на уровне регистров и команд контроллеров. Каждая такая программа BIOS реализует свою элементарную функцию управления, например видеосистемой:

  • INT 10h, функция 00h - Установка видеорежима;

  • INT 10h, функция 02h - Установка позиции курсора;

  • INT 10h, функция 09h - Запись символа и атрибута в позицию курсора;

  • INT 10h, функция 0Сh - Запись пиксела;

  • и т. д..

«Прерывание» по команде INT 10h передает управление программе обслуживания BIOSa видеосистемы, которая по номеру функции (02h, 09h, 0Ch...) запускает соответствующую программу BIOS на исполнение. Используя программы BIOS можно достаточно просто создавать программы для диагностики даже видеосистемы и создавать условия для исследования процессов осциллографом и т. д.


Лицензия