Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
Построив модель контроллера и представляя себе, что скрывается за словами «прочитать информацию из порта» и «записать информацию в порт», мы готовы к рассмотрению процесса взаимодействия устройства и процессора. Как и в предыдущих случаях, примером нам послужит команда записи, теперь уже записи или вывода данных на внешнее устройство. В нашей модели для вывода информации, помещающейся в регистр входных данных, без проверки успешности вывода процессор и контроллер должны связываться следующим образом:
Процессор в цикле читает информацию из порта регистра состояний и проверяет значение бита занятости. Если бит занятости установлен, то это означает, что устройство еще не завершило предыдущую операцию, и процессор уходит на новую итерацию цикла. Если бит занятости сброшен, то устройство готово к выполнению новой операции, и процессор переходит на следующий шаг.
Процессор записывает код команды вывода в порт регистра управления.
Процессор записывает данные в порт регистра входных данных.
Процессор устанавливает бит готовности команды. В следующих шагах процессор не задействован.
Когда контроллер замечает, что бит готовности команды установлен, он устанавливает бит занятости.
Контроллер анализирует код команды в регистре управления и обнаруживает, что это команда вывода. Он берет данные из регистра входных данных и инициирует выполнение команды.
После завершения операции контроллер обнуляет бит готовности команды.
При успешном завершении операции контроллер обнуляет бит ошибки в регистре состояния, при неудачном завершении команды – устанавливает его.
Контроллер сбрасывает бит занятости.
При необходимости вывода новой порции информации все эти шаги повторяются. Если процессор интересует, корректно или некорректно была выведена информация, то после шага 4 он должен в цикле считывать информацию из порта регистра состояний до тех пор, пока не будет сброшен бит занятости устройства, после чего проанализировать состояние бита ошибки.
Как видим, на первом шаге (и, возможно, после шага 4) процессор ожидает освобождения устройства, непрерывно опрашивая значение бита занятости. Такой способ взаимодействия процессора и контроллера получил название polling или, в русском переводе, способа опроса устройств. Если скорости работы процессора и устройства ввода-вывода примерно равны, то это не приводит к существенному уменьшению полезной работы, совершаемой процессором. Если же скорость работы устройства существенно меньше скорости процессора, то указанная техника резко снижает производительность системы и необходимо применять другой архитектурный подход. Для того чтобы процессор не дожидался состояния готовности устройства ввода-вывода в цикле, а мог выполнять в это время другую работу, необходимо, чтобы устройство само умело сигнализировать процессору о своей готовности. Технический механизм, который позволяет внешним устройствам оповещать процессор о завершении команды вывода или команды ввода, получил название механизма прерываний.
В простейшем случае для реализации механизма прерываний необходимо к имеющимся у нас шинам локальной магистрали добавить еще одну линию, соединяющую процессор и устройства ввода-вывода – линию прерываний. По завершении выполнения операции внешнее устройство выставляет на эту линию специальный сигнал, по которому процессор после выполнения очередной команды (или после завершения очередной итерации при выполнении цепочечных команд, т. е. команд, повторяющихся циклически со сдвигом по памяти) изменяет свое поведение. Вместо выполнения очередной команды из потока команд он частично сохраняет содержимое своих регистров и переходит на выполнение программы обработки прерывания, расположенной по заранее оговоренному адресу. При наличии только одной линии прерываний процессор при выполнении этой программы должен опросить состояние всех устройств ввода-вывода, чтобы определить, от какого именно устройства пришло прерывание (polling прерываний!), выполнить необходимые действия (например, вывести в это устройство очередную порцию информации или перевести соответствующий процесс из состояния ожидание в состояние готовность) и сообщить устройству, что прерывание обработано (снять прерывание).
В большинстве современных компьютеров процессор стараются полностью освободить от необходимости опроса внешних устройств, в том числе и от определения с помощью опроса устройства, сгенерировавшего сигнал прерывания. Устройства сообщают о своей готовности процессору не напрямую, а через специальный контроллер прерываний, при этом для общения с процессором он может использовать не одну линию, а целую шину прерываний. Каждому устройству присваивается свой номер прерывания, который при возникновении прерывания контроллер прерывания заносит в свой регистр состояния и, возможно, после распознавания процессором сигнала прерывания и получения от него специального запроса выставляет на шину прерываний или шину данных для чтения процессором. Номер прерывания обычно служит индексом в специальной таблице прерываний, хранящейся по адресу, задаваемому при инициализации вычислительной системы, и содержащей адреса программ обработки прерываний – векторы прерываний. Для распределения устройств по номерам прерываний необходимо, чтобы от каждого устройства к контроллеру прерываний шла специальная линия, соответствующая одному номеру прерывания. При наличии множества устройств такое подключение становится невозможным, и на один проводник (один номер прерывания) подключается несколько устройств. В этом случае процессор при обработке прерывания все равно вынужден заниматься опросом устройств для определения устройства, выдавшего прерывание, но в существенно меньшем объеме. Обычно при установке в систему нового устройства ввода-вывода требуется аппаратно или программно определить, каким будет номер прерывания, вырабатываемый этим устройством.
- Лекция 1. Базовые понятия информации Введение
- Информация, энтропия и избыточность при передаче данных
- Информационные процессы
- Основные структуры данных
- Обработка данных
- Способы представления информации и два класса эвм
- Представление данных в эвм.
- Вопросы и задания
- Лекция 2. Компьютер – общие сведения
- Центральное процессорное устройство
- Устройства ввода/вывода
- Классификация запоминающих устройств
- Оперативная память
- Основные внешние устройства компьютера
- Основные характеристики персональных компьютеров
- Вопросы и задания
- Лекция 3. Многоуровневая компьютерная организация
- Архитектура компьютера
- Классическая структура эвм - модель фон Неймана
- Особенности современных эвм
- Специальное
- Библиотеки стандартных программ и ассемблеры
- Высокоуровневые языки и системы автоматизированного программирования
- Диалоговые ос и субд
- Прикладные программы и case – технологии
- Компьютерные сети и мультимедиа
- Операционные системы
- Лекция 5.Вычислительные системы - общие сведения Введение
- Общие требования
- Классификация компьютеров по областям применения
- Персональные компьютеры и рабочие станции
- Суперкомпьютеры
- Увеличение производительности эвм, за счет чего?
- Параллельные системы
- Использование параллельных вычислительных систем
- Закон Амдала и его следствия
- Назначение процессора и его устройство
- Устройство управления
- Микропроцессорная память
- Основная (оперативная) память - структура адресной памяти
- Интерфейсная часть мп
- Тракт данных типичного процессора
- Команды уу
- Базовые команды
- Трансляторы
- Архитектура системы команд и классификация процессоров
- Микроархитектура процессора Pentium II
- 512 Кбайт
- Вопросы и задания
- Лекция 6 Структурная организация эвм - память Общие сведения
- Верхняя
- Верхняя память (Upper Memory Area) – это 384 Кбайт, зарезервированных у верхней границы системной памяти. Верхняя память разделена на несколько частей:
- Первые 128 Кбайт являются областью видеопамяти и предназначены для использовании видеоадаптерами, когда на экран выводится текст или графика, в этой области хранятся образы изображений.
- Видеопамять
- Иерархия памяти компьютера
- Оперативная память, типы оп
- Логическая организация памяти
- Связывание адресов
- Функции системы управления памятью
- Тэг Строка Слово (байт)
- Способы организации кэш-памяти
- 1. Где может размещаться блок в кэш-памяти?
- 2. Как найти блок, находящийся в кэш-памяти?
- 3. Какой блок кэш-памяти должен быть замещен при промахе?
- 4. Что происходит во время записи?
- Разновидности строения кэш-памяти
- Вопросы и задания
- Лекция 7 Логическая организация памяти Введение
- Адресная, ассоциативная и стековая организация памяти
- Стековая память
- Сегментная организация памяти.
- Косвенная адресация
- Операнд 407 суммируется с
- Типы адресов
- Понятие виртуальной памяти
- Страничное распределение
- Свопинг
- Вопросы и задания
- Лекция 8 Внешняя память компьютера Введение
- Жесткий диск (Hard Disk Drive)
- Конструкция жесткого диска
- Основные характеристики нмд:
- Способы кодирования данных
- Интерфейсы нмд
- Структура хранения информации на жестком диске
- Кластер
- Методы борьбы с кластеризацией
- Магнито-оптические диски
- Дисковые массивы и уровни raid
- Лазерные компакт-диски cd - rom
- Вопросы и задания
- Лекция 9 Основные принципы построения систем ввода/вывода
- Физические принципы организации ввода-вывода
- Интерфейс
- Магистрально-модульный способ построения эвм
- Структура контроллера устройства
- Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- Организация передачи данных
- Прямой доступ к памяти (Direct Memory Access – dma)
- Логические принципы организации ввода-вывода
- Структура системы ввода-вывода
- Буферизация и кэширование
- Заключение
- Структура шин современного пк
- Мост pci
- Вопросы и задания
- Лекция 10. Bios и его настройки Введение
- Начальная загрузка компьютера
- Вход в bios и основные параметры системы
- Общие свойства – стандартная настройка параметров
- Свойства bios
- Свойства других чипсетов
- Свойства интегрированных устройств
- Свойства слотов pci
- Управление питанием
- Лекция 11 Особенности архитектуры современных вс
- Область применения и способы оценки производительности мвс
- Классификация архитектур по параллельной обработке данных
- Вычислительные Системы
- Параллелизм вычислительных процессов
- Параллелизм на уровне команд – однопроцессорные архитектуры
- Конвейерная обработка
- Суперскалярные архитектуры
- Мультипроцессорные системы на кристалле Технология Hyper-Threading
- Многоядерность — следующий этап развития
- Многопроцессорные архитектуры – параллелизм на уровне процессоров
- Векторные компьютеры
- Использование параллельных вычислительных систем
- Закон Амдала и его следствия
- Вопросы и задания
- Лекция 12 Архитектура многопроцессорных вс Введение
- Smp архитектура
- Mpp архитектура
- Гибридная архитектура (numa)
- Организация когерентности многоуровневой иерархической памяти.
- Pvp архитектура
- Кластерная архитектура
- Проблемы выполнения сети связи процессоров в кластерной системе.
- Лекция 13 Кластерные системы
- Концепция кластерных систем
- Разделение на High Avalibility и High Performance системы
- Проблематика High Performance кластеров
- Проблематика High Availability кластерных систем
- Смешанные архитектуры
- Лекция 14 Высокопроизводительные процессоры
- Ассоциативные процессоры
- Конвейерные процессоры
- Матричные процессоры
- Клеточные и днк процессоры
- Клеточные компьютеры
- Трансгенные технологии
- Коммуникационные процессоры
- Процессоры баз данных
- Потоковые процессоры
- Нейронные процессоры
- Искусственные нейронные сети
- Нейрокомпьютеры
- Процессоры с многозначной (нечеткой) логикой
- Лекция 15 Многомашинные системы – вычислительные сети Введение
- Простейшие виды связи сети передачи данных
- Связь компьютера с периферийным устройством
- Связь двух компьютеров
- Многослойная модель сети
- Функциональные роли компьютеров в сети
- Одноранговые сети
- Сети с выделенным сервером
- Гибридная сеть
- Сетевые службы и операционная система
- Лекция 16. Файловая система компьютера Введение
- Общие сведения о файлах
- Типы файлов
- Атрибуты файлов
- Организация файлов и доступ к ним
- Последовательный файл
- Файл прямого доступа
- Другие формы организации файлов
- Операции над файлами
- Директории. Логическая структура файлового архива
- Разделы диска. Организация доступа к архиву файлов.
- Операции над директориями
- Защита файлов
- Контроль доступа к файлам
- Списки прав доступа
- Заключение
- Лекция 17. Сети и сетевые операционные системы Введение
- Для чего компьютеры объединяют в сети
- Сетевые и распределенные операционные системы
- Взаимодействие удаленных процессов как основа работы вычислительных сетей
- Основные вопросы логической организации передачи информации между удаленными процессами
- Понятие протокола
- Многоуровневая модель построения сетевых вычислительных систем
- Проблемы адресации в сети
- Одноуровневые адреса
- Двухуровневые адреса
- Удаленная адресация и разрешение адресов
- Локальная адресация. Понятие порта
- Полные адреса. Понятие сокета (socket)
- Проблемы маршрутизации в сетях
- Связь с установлением логического соединения и передача данных с помощью сообщений
- Синхронизация удаленных процессов
- Заключение
- Лекция 18. Система счисления и архитектура эвм Введение
- Системы счисления и их роль в истории компьютеров
- «Золотое сечение» и компьютер Фибоначчи
- Геометрическое определение "золотого сечения"
- Алгебраические свойства золотой пропорции
- Рассмотрим теперь "золотую пропорцию"
- Фибонччи и компьютеры
- "Троичный принцип" Николая Брусенцова.
- Список литературы: