Данному образовательному сайту пришлось несколько раз менять свое имя. С 2022 года доступ к нему обеспечивается по URL
emc.orgfree.com

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-2021) ==> emc.orgfree.com (2022-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)
"S9PU" (parallel)

Модели (hardware):






Награды сайта
Награды сайта 2005

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

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

Доступ к регистрам ВУ осуществляется по командам IN a, OUT a, где a - семиразрядный двоичный адрес регистра ВУ. Таким образом, общий объем адресного пространства ввода/вывода составляет 27 = 128 адресов. Следует помнить, что адресные пространства памяти и ввода/вывода в этой модели разделены.

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

Диспетчер внешних устройств

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

Пользователь может произвольно изменить предлагаемые по умолчанию параметры. При этом надо учитывать, что базовый адрес ВУ в пространстве ввода/вывода всегда должен быть кратным 16, поэтому в окне диспетчера можно задать только старшую цифру шестнадцатеричного базового адреса в диапазоне от 0 до 7. При выборе вектора прерывания следует учитывать, что вектор 0 зарезервирован за сигналом RESET и определяет точку старта программы, а остальные вектора от 1 до 7 могут назначаться ВУ произвольно.

Не следует назначать разным устройствам одинаковые базовые адреса и вектора прерывания!

Подключение ВУ осуществляется нажатием кнопки с соответствующим именем в окне диспетчера. Отключение подключённых ВУ в процессе работы fN8 не предусмотрено.

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

Подсистема прерываний

В модели fN8 предусмотрен механизм векторных внешних прерываний. Внешние устройства формируют запросы на прерывания, которые поступают на входы контроллера прерываний. При подключении ВУ, способного формировать запрос на прерывание, ему ставится в соответствие номер входа контроллера прерываний - вектор прерывания, принимающий значение в диапазоне [1..7].

Контроллер передает вектор, соответствующий запросу, процессору, который начинает процедуру обслуживания прерывания.

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

Механизм прерываний, реализованный в fN8, поддерживает таблицу векторов прерываний, которая создается в оперативной памяти, может содержать до 8 векторов и располагается по адресам 00 .. 0F нулевого сегмента. Каждый вектор занимает 2 байта памяти и содержит 10-разрядный адрес начала обработчика соответствующего события. Вектор 0 (ячейки 00 и 01) зарезервирован за точкой старта программы по кнопке Запуск.

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

Дисциплина обслуживания прерываний поддерживается флагом I разрешения прерывания в регистре PSW процессор и флагами разрешения формирования запросов в источниках прерываний.

Флаг I после сброса процессора так же сброшен (I=0) и все прерывания запрещены. Устанавливается флаг I программно командой EI, а сбрасывается – командой DI При переходе на обработчик прерывания флаг I автоматически сбрасывается, в этом случае прервать обслуживание одного прерывания другим прерыванием нельзя. По команде IRET значение флагов восстанавливается, в том числе вновь устанавливается I = 1, следовательно в основной программе прерывания опять разрешены. Если требуется разрешить прерывания (другие!) в обработчике прерывания, достаточно в нём выполнить команду EI.

Флаги разрешения формирования запросов, сброшенные по умолчанию, могут устанавливаться и сбрасываться программно в любое время, что позволяет реализовать гибкую систему приоритетов обработчиков прерываний.

Номенклатура ВУ fN8

Открытая архитектура fN8 позволяет расширять состав ВУ по мере их разработки. Ограничено только количество ВУ, одновремено подключённых к ядру fN8 – не более 8 и не более 7 используемых векторов прерывания. В настоящее время с ядром fN8 могут работать следующие ВУ:

  • Контроллер клавиатуры позволяет использовать клавиатуру компьютера для ввода ASCII-кодов символов. Контроллер включает буфер кодов (64 символа).Возможно выбрать режим ввода при каждом нажатии клавиши (формируется флаг готовности и может формироваться запрос на прерывание) или ввода накопившейся в буфере информации при нажатии специальной клавиши.
  • Символьный дисплей отображает символы, соответствующие ASCII-кодам на экране в 8 строк X 16 символов в строке. Возможен последовательный вывод символов или вывод очередного символа в произвольную позицию экрана.
  • Таймер-2 представляет собой 16-разрядный двоичный счётчик, на вход которого подаётся тактовая частота процессора через программируемый предделитель. Включает дополнительно 16-разрядный регистр захвата/автозагрузки и управляющие регистры. Может работать в нескольких режимах: простой счёт, сравнение, сброс по совпадению, захват, автозагрузка. В зависимости от режима формируются разные флаги событий: переполнение, сравнение, захват. Все события могут вызывать запросы на прерывания по общему для Таймера-2 вектору.
  • Таймер-5 обладает расширенным функционалом относительно Таймера-2. Включённые в его состав отдельные регистры сравнения и захвата позволяют реализовывать функции захвата в рамках реализации других режимов работы. Наличие формирователя выходного сигнала позволяет реализовать широтно-импульсную модуляцию. В разных режимах формируются разные флаги событий, но всем событиям соответствует общий вектор прерывания.
  • Контроллер матричной клавиатуры и 7-сегментной динамической индикации предназначен для управления динамической 7-сегментной индикацией и матричной клавиатурой.
    Схема управления 7-сегментной индикацией может выводить различные символы на блок индикаторов (от 2 до 8 разрядов, устанавливается в настройках), 7- сегментные коды которых хранятся во внутренней памяти, доступ к ней имеет программа.
    Блок матричной клавиатуры (в настройках можно выбрать конфигурацию 3 X 3, 3 X 4, 4 X 4 или вовсе его отключить) генерирует 4-разрядный двоичный код нажатой клавиши. Этот код помещается в 8-уровневый буфер с дисциплиной «Очередь». При непустом буфере формируется соответствующий флаг и может быть запрос на прерывание.
  • Цветной графический дисплей Основные параметры:
    • Размер графического экрана – 128 X 64 пиксела модели.
    • Размер пикселя модели - 4 X 4 пиксела экрана.
    • Количество цветов текущей палитры – 16.
    • Объём видеопамяти – 4096 байта (8192 пиксела).
    • Метод формирования цвета – ARGB (4 байта на цвет).
    • Объём памяти палитры – 64 байта.
    Изображение на экране дисплея (128 X 64 пиксела) определяется содержимым видеопамяти и памяти палитры. Каждый байт видеопамяти содержит номера цветов текущей палитры для двух соседних пикселей, причем младшая тетрада байта соответствует пикселу с меньшим номером.
    Палитра по умолчанию загружается при подключении дисплея к fN8. Она включает 16 цветов, причём цвет под номером 0 всегда используется как цвет фона экрана. Каждый цвет задаётся четвёркой байт, первый из которых определяет уровень насыщенности цвета, а остальные три – уровни базовых цветов RGB (красный, зелёный, синий). Все уровни задаются целыми шестнадцатеричными числами от 0x00 до 0xFF.
    Видеопамять и память палитры допускают редактирование содержимого в «ручном режиме» путем изменения значений в ячейках. Содержимое видеопамяти и/или палитры можно сохранять в виде файлов, а так же загружать из файлов.

© Жмакин Анатолий Петрович (Курский государственный университет). anatoly.zhmakin@gmail.com

Оформление Web-страницы - Е.А.Еремин, 2022


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com


Free Web Hosting