
- •Организация и функционирование эвм и систем
- •1. Основные понятия архитектуры и организации эвм
- •1.1. Состав электронных вычислительных машин (эвм)
- •1.2. Виды (классы) эвм
- •1.3. Принцип программного управления и машина фон Неймана
- •1.4. Понятия архитектуры, организации и реализации эвм
- •1.5. Многоуровневая организация эвм
- •1.6. Понятие семантического разрыва между уровнями
- •1.7. Организация аппаратных средств эвм
- •1.8. Типовая структура эвм с шинной организацией
- •2. Организация процессора и основной памяти вм
- •2.1. Типовая структура процессора и основной памяти
- •2.2. Основной цикл работы процессора
- •2.3. Организация процессора и памяти в Intel 8086
- •2.4. Программно доступные регистры процессора
- •2.5. Организация стека в Intel 8086
- •2.6. Распределение оперативной памяти в Intel 8086 для ms dos
- •2.7. Организация выполняемых программ в ms dos
- •2.8. Режимы адресации памяти в процессоре Intel 8086
- •5. Адресация по базе
- •6. Косвенная адресация с масштабированием
- •7. Адресация по базе с индексированием и масштабированием
- •2.9. Краткая характеристика системы команд процессоров Intel 80х86
- •2.11. Организация прерываний в процессоре Intel 80x86
- •2.12. Управление выполнением команд в эвм.
- •2.13. Способы формирования управляющих сигналов
- •2.14. Способы кодирования микрокоманд
- •2.15. Компьютеры с сокращенным набором команд
- •3. Организация памяти в эвм
- •3.1. Назначение и основные характеристики памяти
- •3.2. Основные среды хранения информации
- •3.3. Типы запоминающих устройств
- •3.3.1. Память с произвольной выборкой
- •3.3.2. Постоянные запоминающие устройства
- •3.3.3. Ассоциативные запоминающие устройства (азу)
- •3.4. Иерархическая система памяти
- •3.5. Организация кэш-памяти.
- •3.6. Организация виртуальной памяти
- •3.7. Организация виртуальной памяти в Intel 80386 и более старших моделях.
- •3.8. Защита памяти в процессоре Intel 80386
- •3.9. Организация работы с внешней памятью
- •4. Системные и локальные шины
- •4.1. Общие положения и требования к шинам
- •4.2. Основные виды, характеристики и параметры шин
- •4.3. Стандарты шин
- •5. Организация системы ввода-вывода в эвм
- •5.1. Назначение и основные требования к системе ввода-вывода эвм
- •5.2. Архитектура систем ввода-вывода
- •5.3. Способы выполнения операции передачи данных
- •Рис 5.3
- •5.4. Структуры контроллеров ву для различных режимов передачи данных
- •5.4.2. Контроллер обмена по программному прерыванию (опп)
- •5.5. Программные средства управления вводом-выводом
- •5.6. Состав и реализация устанавливаемого драйвера символьного типа
- •Приложения
- •1. Система команд процессора i80x86
- •1. Команды передачи данных
- •2. Команды арифметических операций над целыми числами
- •3. Логические команды
- •4. Сдвиговые команды
- •5. Команды передачи управления
- •6. Команды обработки строк
- •7. Команды работы с флагами
- •8. Команды математического сопроцессора fpu
- •9. Команды mmx (MultiMedia eXtension) расширения
- •10. Расширение amd 3dNow!
- •2. Краткое введение в программирование на языке Ассемблера
- •1. Директивы задания данных
- •2. Директивы сегментации программы
- •3. Директивы группирования.
- •4. Порядок размещения сегментов.
- •5. Директивы ограничения используемых команд.
- •1 97376, С.-Петербург, ул. Проф. Попова, 5.
5.5. Программные средства управления вводом-выводом
Состав
|
ПСУВВ |
|
| |||||||||||||||
|
|
| ||||||||||||||||
Управление данными |
|
Управление устройствами | ||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||||
Блочно–ориент. I/O |
Записе- ориен. I/O |
FCBдоступ |
FHдоступ |
Распред. ВУ между задачами |
Подсистема буфери-зации |
Драйверы внешних устройств |
|
Рис. 5.11
На рис. 5.11 две основных части: управление данными и устройствами.
Подсистема управления данными обеспечивает:
- блочно-ориентированный ввод-вывод для файлов последовательного доступа;
- записе-ориентированный ввод-вывод для файлов прямого доступа.
Система управления устройствами содержит три подсистемы:
Диспетчеризация устройств между задачами.
Подсистема буферизации загрузки и выгрузки данных
Набор драйверов для управления операциями ввода-вывода в конкретных ВУ.
Основные компоненты процедуры управления ввода-вывода общего вида
Подготовительная (инициализирующая) часть:
Формирование областей для хранения данных и создание указателей на эти области.
Указания типа и логического номера внешнего устройства.
Задание режима передачи данных и направления передачи.
Этот этап обычно реализует процессор, который осуществляет подготовку.
Планирование, проверка готовности и запуск устройства.
Выбор канала.
Выбор внешнего устройства.
Замена логических номеров на физические адреса.
Проверка готовности для выполнения операции.
Запуск устройства для работы.
Выполнение устройством операции ввода-вывода
Для реализации используются драйверы и программы управления данными
Завершение операции ввода-вывода; следовательно освобождаются занимаемые области памяти и устройства, участвовавшие в операции.
5.6. Состав и реализация устанавливаемого драйвера символьного типа
Возможны четыре варианта использования драйвера:
Непосредственно написание драйвера на уровне битов портов ввода-вывода и включение его в собственную программу; используется в случае редко используемых драйверов и специализи-рованных машин (малоперспективно).
Подключение драйвера в оверлейном режиме (сокращение занимаемой области памяти).
Написание драйвера как резидентного обработчика прерываний. Достоинство: доступен всем программам. Недостаток: как правило, доступен только из ассемблера.
Создание устанавливаемого в операционной системе драйвера, который включается в файл конфигурации config.sysс помощью команды типаdevice=path\my_driver
Хорош тем, что драйвер полностью поддерживается средствами операционной системы. Соответственно к нему применимы команды операционной системы вида:
copya:\my_driverc:\drv
Во-вторых, с ним можно работать из языков высокого уровня с помощью операций работы с файлами.
Устанавливаемые драйверы бывают двух типов: блочные и символьные.
Первые используют файловую организацию и передачу данных блоками (обычно применяются для работы с дисковыми накопителями). Вторые используют посимвольную передачу данных (она проще) и применимы к любым внешним устройствам.
Символьный драйвер состоит из следующих элементов:
Заголовок драйвера.
Процедура стратегии.
Буфер запроса.
Обработчик прерываний подключает таблицу функций с набором операций, которые могут выполняться данным устройством.
1.Заголовок драйвера (18 байт)
Адрес следующего драйвера (4 байт).
Атрибуты (2 байт).
Смещение процедуры стратегии (2 байт).
Смещение обработчика прерываний.
И
Заголовок драйвера Буфер запроса
1)Адрес след.драйвера 1)Длина буф. запроса
2)Атрибуты 2)Код ВУ
3)Смещение (3) 3)Код команды Вв/выв
4)Смещ. обр-ка прер. 4)Статус
5)Имя устройства (2) 5)Резерв
Процедура стратегии (4) Данные
(5)
Обработчик прерываний (не найден)
| инициализация
ТаблФ | ввод
| вывод
(6) (7)
ПП инициализац
ПП ввода
(функция вып.команды)
ПП вывода
(8)
RETстатус завершения
возврат
в прикладную
программу
мя устройства (8 байт).
Драйвер обычно записывается как самостоятельный модуль, но без PSP, поэтому не может запускаться самостоятельно.
1. Атрибуты:
15 бит : 1- символьный драйвер
0 – блочный драйвер
14 бит : поддержка IOCTL
13 бит : формат блоков
1 – IBM
0 – любой другой
………
3 бит : 1 – часы
0 – не часы
2 бит : 1 – null
0 – не null
1 бит : 1 – STDOUT(стандарт вывода)
0 - STDIN(стандарт ввода)
2. Процедура стратегии.
Процедура стратегии выполняются только один раз на этапе загрузки и служит для запоминания длинного указателя на буфер запроса, создаваемый для драйвера самой операционной системой.
DEV_STRAT:
mov cs:SEG_PQBF, es ;
mov cs:OFF_PQBF, es ;
ret
SEG_PQBF DW ?
OFF_PQBF DW ?
3. Буфер запроса.
Структура данных, через которые прикладная программа связывается с драйвером (прикладная программа задает вид операции ввода-вывода и место расположения данных, а драйвер возвращает ей свой статус (все идет через буфер запроса)).
Буфер состоит их стандартной части 13 байт, называемой заголовок и последующей части, называемой данные, содержащей различную информацию в зависимости от вида драйвера и исполнительной операции ввода-вывода.
Заголовок запроса.
+0 : длина буфера запроса
+1 : код внешнего устройства
+2 : код команды ввода-вывода
+3 : статус
+5 : резерв
+13d: данные
4. Обработчик прерывания.
Это только процедура, которая таблично вызывает функцию, реализующую команду ввода-вывода; она завершается командой RETи выдачей статуса.
Код обработчика прерываний
dev_intpr: push A
mov ax, SEG_PQBF ;
mov es, ax ;
mov bx, OFF_PQBF ;
mov al, es:[bx+2] ;
shl al, 1 ;
xor ah, ah ; Подготовка и загрузка
lea di, FUN_TAB ; смещения функции
add di, ax ; в таблицу функции
jmp word ptr[DI] ;
FUN_TAB LABEL WORD;
DW INITIALIZE
DW CHECK_MEDIA
. . . . . . .
DW INPUT_DATA
Тринадцать . . . . . . .
функций DW OUPUT_DATA
. . . . . . .
DW OUTPUT_STATUS
. . . . . . .
DW IOCTL_OUT
Определенная функция находится в определенной строке таблицы.
Предположим что драйвер поддерживает только две функции initиout, тогда:
CHECK_MEDIA:
. . . . . .
INPUT_DATA:
. . . . . .
IOCTL_OUT:
or es.word ptr[bx]+3, 8103h
JMP QUIT
INITIALIZE:
lea ax, E_O_P
mov es, word ptr[bx]+14, ax
mov es, word ptr[bx]+16, cs
JMP QUIT
OUTPUT_DATA
QUIT:
OR es:word ptr[bx]+3, 100h
POPA
RET
В поле статус, бит
15 – ошибка
9 – драйвер занят
8 – функция завершена
с 0 – 7 – код ошибки
Пример: 8103hозначает 8 – ошибка , 1 – операция завершена, 03 – неизвестная ошибка.
После разработки драйвера нужно вставить его в config.sys
Надо учесть, что драйвер не прощает ошибок. Так как он скрыт от пользователя, поэтому нельзя пользоваться отладчиком.
Список литературы
Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем: Учебник для вузов. СПб.: Питер, 2004.
Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2002.
Гук М. Аппаратные средства IBM PC. Энциклопедия 2-е изд. СПб.: Питер, 2002.
Зубков С.В. Assembler. Для DOS, Windows и Unix. М.: ДМК, 1999.
Компьютеры на СБИС: В 2 кн. Кн.1 / Пер. с япон.; Мотоока Т., Томита С., Танака Х. и др. М.: Мир, 1988.
Королев Л.Н. Микропроцессоры, микро- и мини-ЭВМ. – М.: Изд-во МГУ, 1988
Дополнительная
Касперски К. Техника оптимизации программ. Эффективное использование памяти. СПб.: БХВ-Петербург, 2003.
Рудометов Е., Рудометов В. Архитектура ПК, комплектующие, мультимедиа. СПб.: Питер, 2000.
Рудаков П.И., Финогенов К.Г. Программируем на языке ассемблера IBM PC. Обнинск: Принтер, 1999.
Фрир Дж. Построение вычислительных систем на базе перспективных микропроцессоров / Пер. с англ. М.: Мир, 1990.
Фролов А.В., Фролов Г.В. Аппаратное обеспечение персонального компьютера. М.: Диалог-МИФИ, 1997 (Библиотека системного программиста; т.33).
Джордейн Р. Справочник программиста ПК типа IBM PC XT и AT / Пер. с англ. М.: Финансы и статистика, 1991.