
- •«Санкт-Петербургский государственный электротехнический университет «лэти» им.В.И.Ульянова (Ленина)» (сПбГэту)
- •Архитектура компьютера
- •Оглавление
- •Основные понятия архитектуры и организации компьютеров.
- •1.1. Состав компьютера
- •1.2. Виды (классы) компьютеров
- •1.3. Принцип программного управления и машина фон Неймана
- •1.4. Понятия архитектуры, организации и реализации компьютера
- •1.5. Многоуровневая организация компьютера
- •1.6. Понятие семантического разрыва между уровнями
- •1.7. Организация аппаратных средств вм
- •Представление и обработка данных в вм
- •Целые числа
- •Представление и обработка вещественных чисел.
- •Логические операции над битовыми наборами
- •Представление и обработка символов.
- •Представление видеоинформации и аудиоинформации.
- •Видеоинформация.
- •Аудиоинформация
- •Организация процессора и основной памяти вм
- •3.1. Типовая структура процессора и основной памяти
- •3.2. Основной цикл работы процессора
- •3.3. Организация процессора и памяти в архитекуре Intel x86.
- •3.3.1. Программно доступные регистры процессора
- •3.3.2. Организация стека в архитектуре Intel х86
- •3.3.3. Организация выполняемых программ в ms dos
- •3.3.4. Режимы адресации памяти в архитектуре Intel х86
- •1. Регистровая адресация
- •2. Непосредственная адресация
- •3. Прямая адресация
- •4. Косвенная адресация
- •7. Индексная адресация с масштабированием
- •8. Адресация по базе с индексированием и масштабированием
- •3.3.5. Краткая характеристика системы команд процессоров Intel х86
- •3.3.6 .Арифметическая обработка чисел с использованием математического сопроцессора
- •Организация прерываний в процессорах Intel x86
- •Эволюция микроархитектуры Intel x86
- •Управление выполнением команд в компьютерах.
- •Аппаратный способ формирования управляющих сигналов
- •Микропрограммный способ формирования управляющих сигналов
- •Компьютеры с сокращенным набором команд
- •Организация памяти в компьютере
- •6.1. Назначение и основные характеристики памяти
- •6.2. Основные среды хранения информации
- •6.3. Методы доступа к данным.
- •6.4. Память с произвольным доступом (ппд)
- •6.5. Блочная организация основной памяти.
- •6.6. Постоянные запоминающие устройства (пзу - rom)
- •6.7. Ассоциативные запоминающие устройства (азу)
- •6.8. Иерархическая система памяти
- •Организация кэш-памяти.
- •Прямое отображение блоков оп на кэш-память
- •Наборно-ассоциативное отображение блоков оп на Кэш-память
- •6.10. Организация виртуальной памяти
- •Организация виртуальной памяти в Intel 80386 и более старших моделях.
- •Защита памяти в процессоре Intel 80386
- •Организация работы с внешней памятью
- •7.1. Типы, виды, свойства дисковых накопителей информации.
- •7.2. Магнитные дисковые накопители.
- •7.3. Основные физические и логические параметры жмд
- •7.4. Контроллеры жестких дисков
- •Логическое хранение и кодирование информации
- •Интерфейсы жестких дисков
- •Работа накопителя
- •Внешняя память на cd и dvd дисках.
- •Принципы организации raid массивов
- •Основные принципы построения raid массивов
- •Одиночные уровни raid
- •Составные уровни raid массивов
- •Сравнительные результаты
- •Системные и локальные шины
- •9.1. Общие положения и требования к шинам
- •9.2. Основные виды, характеристики и параметры шин
- •9.3. Стандарты шин
- •Организация системы ввода-вывода в вм
- •10.1. Назначение и основные требования к системе ввода-вывода вм
- •10.2. Архитектура систем ввода-вывода
- •10.3. Способы выполнения операции передачи данных
- •Синхронная передача данных
- •Ввод-вывод по программному прерыванию
- •Ввод-вывод по аппаратному прерыванию (прямой доступ к памяти)
- •10.4. Структуры контроллеров ву для различных режимов передачи данных
- •Программные средства управления вводом-выводом (пс увв)
- •Состав пс увв
- •11.2. Основные компоненты процедуры управления ввода-вывода общего вида
- •11.3 Состав и реализация устанавливаемого драйвера символьного типа
- •Список литературы
- •Приложения
- •Регистры ммх
- •Типы данных
- •Команды ммх
- •П2. Краткое введение в программирование на языке Ассемблера
- •1. Директивы задания данных
- •2. Директивы сегментации программы
- •3. Директивы группирования.
- •4. Порядок размещения сегментов.
-
Программные средства управления вводом-выводом (пс увв)
-
Состав пс увв
|
ПСУВВ |
|
|||||||||||||||
|
|
||||||||||||||||
Управление данными |
|
Управление устройствами |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Блочно–ориент. I/O |
Записе- ориен. I/O |
FCB доступ |
FH доступ |
Распред. ВУ между задачами |
Подсистема буфери-зации |
Драйверы внешних устройств |
Рис. 11.1
На рис.11.1 показаны две основных части ПС УВВ: управление данными и управление устройствами.
Подсистема управления данными обеспечивает:
- блочно-ориентированный ввод-вывод для файлов последовательного доступа;
- записе-ориентированный ввод-вывод для файлов прямого доступа.
Система управления устройствами содержит три подсистемы:
Диспетчеризация устройств между задачами.
Подсистема буферизации загрузки и выгрузки данных
Набор драйверов для управления операциями ввода-вывода в конкретных ВУ.
11.2. Основные компоненты процедуры управления ввода-вывода общего вида
-
Подготовительная (инициализирующая) часть:
Формирование областей для хранения данных и создание указателей на эти области.
Указания типа и логического номера внешнего устройства.
Задание режима передачи данных и направления передачи.
Этот этап обычно реализует процессор, который осуществляет подготовку.
-
Планирование, проверка готовности и запуск устройства.
Выбор канала.
Выбор внешнего устройства.
Замена логических номеров на физические адреса.
Проверка готовности для выполнения операции.
Запуск устройства для работы.
-
Выполнение устройством операции ввода-вывода
Для реализации используются драйверы и программы управления данными
-
Завершение операции ввода-вывода; следовательно освобождаются занимаемые области памяти и устройства, участвовавшие в операции.
11.3 Состав и реализация устанавливаемого драйвера символьного типа
Возможны четыре варианта использования драйвера:
-
Непосредственно написание драйвера на уровне битов портов ввода-вывода и включение его в собственную программу; используется в случае редко используемых драйверов и специализированных машин (малоперспективно).
-
Подключение драйвера в оверлейном режиме (сокращение занимаемой области памяти).
-
Написание драйвера как резидентного обработчика прерываний. Достоинство: доступен всем программам. Недостаток: как правило, доступен только из ассемблера.
-
Создание устанавливаемого в операционной системе драйвера, который включается в файл конфигурации config.sys с помощью команды типа device = path\my_driver
Хорош тем, что драйвер полностью поддерживается средствами операционной системы. Соответственно к нему применимы команды операционной системы вида:
copy a:\ my_driver c:\drv
Во-вторых, с ним можно работать из языков высокого уровня с помощью операций работы с файлами.
Устанавливаемые драйверы бывают двух типов: блочные и символьные.
Первые используют файловую организацию и передачу данных блоками (обычно применяются для работы с дисковыми накопителями). Вторые используют посимвольную передачу данных (она проще) и применимы к любым внешним устройствам.
Символьный драйвер состоит из следующих элементов:
-
Заголовок драйвера.
-
Процедура стратегии.
-
Буфер запроса.
-
Обработчик прерываний подключает таблицу функций с набором операций, которые могут выполняться данным устройством.
1. Заголовок драйвера (18 байт)
-
Адрес следующего драйвера (4 байт).
-
Атрибуты (2 байт).
-
Смещение процедуры стратегии (2 байт).
-
Смещение обработчика прерываний (Обр_прер).
-
Имя устройства (8 байт).
Заголовок драйвера Буфер запроса
1)Адрес след.драйвера 1)Длина буф. запроса
2)Атрибуты 2)Код ВУ
3)Смещение (3) 3)Код команды Вв/выв
4)Смещ. обр-ка прер. (2) 4)Статус
5)Имя устройства 5)Резерв
Процедура стратегии (4) Данные
(5)
Обработчик прерываний (не найден)
| инициализация
ТаблФ | ввод
| вывод
(6) (7)
ПП инициализации
ПП ввода
(функция выполняемой команды)
ПП вывода
(8)
RET статус завершения
возврат
в прикладную
программу
Драйвер обычно записывается как самостоятельный модуль, но без 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
Надо учесть, что драйвер не прощает ошибок. Так как он скрыт от пользователя, поэтому нельзя пользоваться отладчиком.