Главная страница
Навигация по странице:

  • Внешнее устройство Базовый адрес Адреса регистров Вектор прерывания

  • 8.6.1. Контроллер клавиатуры

  • Рис. 8.9.

  • Очистить буфер

  • Завершить ввод

  • Учебная модель ЭВМ

  • Десятичное число Команда

  • Метка Команда Примечание

  • Очистить

  • Часть III. Описание архитектуры учебной эвм


    Скачать 2.15 Mb.
    НазваниеОписание архитектуры учебной эвм
    Дата23.12.2022
    Размер2.15 Mb.
    Формат файлаdoc
    Имя файлаЧасть III.doc
    ТипПрактикум
    #861303
    страница2 из 6
    1   2   3   4   5   6

    Учебная модель ЭВМ: внешние устройства


    Модели внешних устройств (ВУ), используемые в описываемой системе, реализованы по единому принципу. С точки зрения процессора они представляют собой ряд программно-доступных регистров, лежащих в адресном пространстве ввода/вывода. Размер регистров ВУ совпадает с размером ячеек памяти и регистров данных процессора — шесть десятичных разрядов.

    Доступ к регистрам ВУ осуществляется по командам INaaОUTaa, где aa — двухразрядный десятичный адрес регистра ВУ. Таким образом, общий объем адресного пространства ввода/вывода составляет 100 адресов, причём адресные пространства памяти и ввода/вывода в этой модели разделены.

    Разные ВУ содержат различное число программно-доступных регистров, каждому из которых соответствует свой адрес, причем нумерация адресов каждого ВУ начинается с 0. При включении ВУ в систему ему ставится в соответствие базовый адрес в пространстве ввода/вывода, и все адреса его регистров становятся смещениями относительно этого базового адреса.

    Если в системе создается несколько ВУ, то их базовые адреса следует выбирать с учетом величины адресного пространства, занимаемого этими устройствами, исключая наложение адресов.

    Если ВУ способно формировать запрос на прерывание, то при создании ему ставится в соответствие вектор прерывания — одноразрядное десятичное число. Разным ВУ должны назначаться различные векторы прерываний.

    Программная модель учебной ЭВМ комплектуется набором внешних устройств, включающим:

    • контроллер клавиатуры;

    • дисплей;

    • блок таймеров;

    • тоногенератор,

    которым по умолчанию присвоены параметры, перечисленные в таблице

    Внешнее устройство

    Базовый адрес

    Адреса регистров

    Вектор прерывания

    Контроллер клавиатуры

    0

    0, 1, 2

    0

    Дисплей

    10

    0, 1, 2, 3

    Нет

    Блок таймеров

    20

    0, 1, 2, 3, 4, 5, 6

    2

    Тоногенератор

    30

    0, 1

    Нет

    При подключении устройства пользователь может изменить назначенные по умолчанию базовый адрес и вектор прерывания.

    В описываемой версии системы не предусмотрена возможность подключения в систему нескольких одинаковых устройств.

    Большинство внешних устройств содержит регистры управления CR и состояния SR, причем обычно регистры CR доступны процессору только по записи, а SR — по чтению.>

    Регистр CR содержит флаги и поля, определяющие режимы работы ВУ, a SR — флаги, отражающие текущее состояние ВУ. Флаги SR устанавливаются аппаратно, но сбрасываются программно (или по внешнему сигналу). Поля и флаги CR устанавливаются и сбрасываются программно при записи кода данных в регистр CR или специальными командами.

    В описываемой модели контроллер ВУ интерпретирует код, записываемый по адресу CR как команду, если третий разряд этого кода равен 1, или как записываемые в CR данные, если третий разряд равен 0. В случае получения командного слова запись в регистр CR не производится, а пятый (младший) разряд слова рассматривается как код команды для ВУ.

    Для подключения ВУ в систему необходимо:

    1. В главном окне Модель учебной ЭВМ выполнить команду Внешние устройства/Менеджер ВУ или нажать кнопку МВУ;

    2. В открывшемся окне Подключаемые устройства выбрать из списка Устройства нужное ВУ, при желании изменить предлагаемые по умолчанию вектор прерывания IRQ  и/или базовый адрес Base_Adr и нажать кнопку Подключить – при этом название устройства появится в списке Подключённые устройства;

    3. Повторить п.2 для каждого из подключаемых устройств. Помните, что любое из ВУ в этой модели может быть подключено в систему только в одном экземпляре.

    4. Закрыть окно Подключаемые устройства.

    Если закрыть окно обозревателя ВУ, оно не будет отключено от системы. Для отключения ВУ следует открыть окно Подключаемые устройства, выделить его в списке Подключённые устройства и нажать кнопку Отключить.

    8.6.1. Контроллер клавиатуры

    Контроллер клавиатуры (рис. 8.9) представляет собой модель внешнего уст­ройства, принимающего ASCII-коды1 от клавиатуры ПЭВМ.

    Символы помещаются последовательно в буфер символов, размер которого установлен равным 50 символам, и отображаются в окне обозревателя (рис. 8.10).

    В состав контроллера клавиатуры входят три программно-доступных регистра:

    • DR (адрес 0) — регистр данных;

    • CR (адрес 1)— регистр управления, определяет режимы работы контроллера и содержит следующие флаги:


    1 Сокр. от American Standard Code for Information Interchange — американский стандартный код обмена информацией.



    • SR (адрес 2) — регистр состояния, содержит два флага:

    • Err — флаг ошибки;

    • Rd — флаг готовности.



    Рис. 8.9. Контроллер клавиатуры



    Рис. 8.10. Окно обозревателя контроллера клавиатуры

    Регистр данных DRдоступен только для чтения, через него считываются ASCII-коды из буфера, причем порядок чтения кодов из буфера соответству­ет порядку их записи в буфер — каждое чтение по адресу 0 автоматически перемещает указатель чтения буфера. В каждый момент времени DR содержит код символа по адресу указателя чтения буфера.

    Флаги регистра управления СК устанавливаются и сбрасываются программно.

    Флаг Е, будучи установленным, разрешает прием кодов в буфер. При Е = 0 контроллер игнорирует нажатие на клавиатуре, прием кодов в буфер не производится. На считывание кодов из буфера флаг Е влияния не оказывает.

    Флаг I, будучи установленным, разрешает при определенных условиях фор­мирование контроллером запроса на прерывание. При I = 0 запрос на прерывание не формируется.

    Флаг S = 1 устанавливает т. н. режим посимвольного ввода, иначе контроллер работает в обычном режиме. Флаг S устанавливается и сбрасывается программно, кроме того, S сбрасывается при нажатии кнопки Очистить буфер в окне Контроллер клавиатуры.

    Условия формирования запроса на прерывание определяются, с одной стороны, значением флага разрешения прерывания I, с другой — режимом работы контроллера. В режиме посимвольного ввода запрос на прерывание формируется после ввода каждого символа (разумеется, при I=1), в обычном режиме запрос будет сформирован по окончании набора строки.

    Завершить набор строки можно, щелкнув по кнопке Завершить ввод в окне Контроллер клавиатуры (см. рис. 8.10). При этом устанавливается флаг готовности Rd (от англ. ready) в регистре состояния SR. Флаг ошибки Err (от англ. error) в том же регистре устанавливается при попытке ввода в буфер 51 -го символа. Ввод 51 -го и всех последующих символов блокируется.

    Сброс флага Rd осуществляется автоматически при чтении из регистра DR, флаг Err сбрасывается программно. Кроме того, оба эти флага сбрасываются при нажатии кнопки Очистить буфер в окне Контроллер клавиатуры; одновременно со сбросом флагов производится очистка буфера— весь буфер заполняется кодами 00h, и указатели записи и чтения устанавливаются на начало буфера.

    Для программного управления контроллером предусмотрен ряд командных слов. Все команды выполняются при записи по адресу регистра управления CR кодов с 1 в третьем разряде.

    Контроллер клавиатуры интерпретирует следующие командные слова:

    • ххх101 — очистить буфер (действие команды эквивалентно нажатию кнопки Очистить буфер);

    • ххх 102 — сбросить флаг Err в регистре SR;

    • ххх 103 — установить флаг S в регистре CR;

    • ххх 104 — сбросить флаг S в регистре CR.

    Если по адресу 1 произвести запись числа ххх0nn, то произойдет изменение 4-го и 5-го разрядов регистра CR по следующему правилу:

    0 – записать 0;

    n= 1 – записать 1; (8.1)

    2, …, 9 – сохранить разряд без изменения.

    Учебная модель ЭВМ: контроллер клавиатуры

    Контроллер клавиатуры представляет собой модель внешнего устройства, принимающего ASCII-коды от клавиатуры ПЭВМ.

    Символы помещаются последовательно в буфер символов, размер которого установлен равным 50 символам, и отображаются в окне обозревателя.



    В состав контроллера клавиатуры входят три программно-доступных регистра:

    • DR (адрес 0) — регистр данных;

    • CR (адрес 1) — регистр управления, определяет режимы работы контроллера и содержит следующие флаги (устанавливаются и сбрасываются программно):

      • Е — флаг разрешения приема кодов в буфер, при Е = 0 контроллер игнорирует нажатие на клавиатуре, прием кодов в буфер не производится. На считывание кодов из буфера флаг Е влияния не оказывает;

      • I — флаг разрешения прерывания, разрешает формирование запроса на прерывание от клавиатуры в момент установки флага готовности Rdy

      • S — флаг режима посимвольного ввода. При S = 0 флаг готовности Rdy формируется только после нажатия кнопки Завершить ввод в окне обозревателя клавиатуры, при S = 1 – после каждого нажатия клавиши;

    • SR (адрес 2) — регистр состояния, содержит два флага, устанавливаемые контроллером «аппаратно»:

      • Err — флаг ошибки устанавливается при вводе в буфер 50-го символа, сбрасывается программно;

      • Rdy — флаг готовности, устанавливается в зависимости от значения флага S, сбрасывается «аппаратно» после выполнения команды ввода из регистра DR – считывание символа из буфера.

    Контроллер клавиатуры выполняет четыре команды при выводе соответствующих кодов по адресу 1:

    Десятичное число

    Команда

    101

    очистить буфер (эквивалентно нажатию кнопки Очистить буфер)

    102

    сбросить флаг Err в регистре SR

    103

    установить в «1» флаг S в регистре CR

    104

    сбросить в «0» флаг S в регистре CR

    Пример программирования контроллера клавиатуры в режиме посимвольного ввода:

    Метка

    Команда

    Примечание

     

    RD #10

    ; установить флаг Е в регистре CR

     

    OUT 1

    ; - включить клавиатуру;

     

    OUT 11

    ; заодно включаем и дисплей

     

    RD #103

    ; передаём в контроллер код команды

     

    OUT 1

    Установить S в «1» (режим посимвольного вода);

    M1:  

    IN 2

    ; проверка нажатия –  флага готовности Rdy

     

    JZ M1

    ; ожидание Rdy  = 1;

     

    IN 0

    ; считывание введённого символа из буфера в аккумулятор;

     

    OUT 10

    ; передача ASCII-кода (например) на символьный дисплей;

     

    JMP M1

    ; возврат к ожиданию следующего нажатия.

    Внимание! Контроллер клавиатуры с установленным битом Е будет реагировать на нажатие клавиш только когда окно обозревателя  Контроллер клавиатуры активно.

    8.6.2. Дисплей

    Дисплей (рис. 8.11) представляет собой модель внешнего устройства, реализующую функции символьного дисплея. Дисплей может отображать символы, задаваемые ASCII-кодами, поступающими на его регистр данных. Дисплей включает:

    • видеопамять объемом 128 слов (ОЗУ дисплея);

    • символьный экран размером 8 строк по 16 символов в строке;

    • четыре программно-доступных регистра:

    • DR (адрес 0) — регистр данных;

    • CR (адрес 1) — регистр управления;

    • SR (адрес 2) — регистр состояния;

    • AR (адрес 3) — регистр адреса.



    Рис. 8.11. Контроллер дисплея

    Через регистры адреса AR и данных DRпо записи и чтению осуществляется доступ к ячейкам видеопамяти. При обращении к регистру DR по записи содержимое аккумулятора записывается в DR и в ячейку видеопамяти, адрес которой установлен в регистре AR.

    Регистр управления CR доступен только по записи и содержит в 4-м и 5-м разрядах соответственно два флага:

    □ А — флаг автоинкремента адреса; при А = 1 содержимое AR автоматически увеличивается на 1 после любого обращения к регистру DR — по записи или чтению.

    Изменить значения этих флагов можно, если записать по адресу CR (по умолчанию— 11) код ххх0nn, при этом изменение 4-го и 5-го разрядов реги­стра CR произойдет согласно выражению (8.1).

    Для программного управления дисплеем предусмотрены две команды, коды которых должны записываться по адресу регистра CR, причем в третьем разряде командных слов обязательно должна быть 1:


    • ххх101 — очистить дисплей (действие команды эквивалентно нажатию кнопки Очистить в окне Дисплей), при этом очищается видеопамять (в каждую ячейку записывается код пробела— 032), устанавливается в 000 регистр адреса AR и сбрасываются флаги ошибки Err и автоинкремента А;

    • ххх 102 — сбросить флаг ошибки Err.



    Рис. 8.12. Окно обозревателя контроллера дисплея

    Регистр состояния SR доступен только по чтению и содержит единственный флаг (в пятом разряде) ошибки Err. Этот флаг устанавливается аппаратно при попытке записать в регистр адреса число, большее 127, причем как в режиме прямой записи в AR, так и в режиме автоинкремента после обращения по адресу 127. Сбрасывается флаг Err программно или при нажатии кнопки Очистить в окне Дисплей (рис. 8.12).

    1   2   3   4   5   6


    написать администратору сайта