- •1. Основные архитектуры эвм и их сравнительная оценка 9неймановская, Гарвардская, risc, cisc и пр.)
- •Принципы фон Неймана
- •Классическая гарвардская архитектура
- •Отличие от архитектуры фон Неймана
- •Гибридные модификации с архитектурой фон Неймана
- •Использование
- •Философия risc
- •Характерные особенности risc-процессоров
- •2. Базовая структура фон-Неймановской архитектуры эвм. Порядок выполнения команды Принцип программного управления и машина фон Неймана
- •Недостатки cisc архитектуры
- •3. Структура и форматы команд эвм
- •Форматы команд эвм
- •4. Основные способы адресации
- •Классификация способов адресации по наличию адресной информации в команде
- •Классификация способов адресации по кратности обращения в память
- •Классификация по способу формирования исполнительных адресов ячеек памяти
- •Относительная адресация
- •Стековая адресация
- •9. Иерархия памяти эвм
- •17. Контроллер прямого доступа к памяти
- •13. Ввод-вывод в программном режиме. Порт ввода-вывода.
- •16. Ввод-вывод в режиме прямого доступа к памяти
- •18. Процессоры гарвардской архитектуры: общие принципы и архитектура микроконтроллера 8051
- •Структурная организация микроконтроллера i8051.
- •2.1.1.Общие характеристики. Микроконтроллер семейства 8051 имеют следующие аппаратные особенности:
- •23. Предсказатель переходов
- •Статическое предсказание
- •Динамическое предсказание
- •24. Основные архитектуры многопроцессорных систем (окод, окмд, мкод, мкмд)
- •26. Системы массового параллелизма и многоядерные процессоры
- •25. Состояние задачи в многопрограммной (в том числе многопроцессорной) системе.
- •26. Система массового параллелизма и многоядерные процессоры: структура, организация взаимодействия.
- •21. Процессоры класса Pentium – общая архитектура, блок подготовки микрокоманд, потоки микрокоманд (на примере Pentium III)
- •12. Ввод-вывод в программном режиме: шинная архитектура, машинный цикл, командный цикл: варианты реализации механизма запрос-ответ.
- •11. Менеджер памяти. Порядок определения физического адреса.
- •8. Cisc-процессоры семейства 80х86. Блок сегментации. Формирование адреса в линейном, действительном и защищенном режимах.
- •7. Cisc-процессоры семейства 80х86. Регистровая структура операционного блока. Способы адресации(используемые в х86!!).
- •6. Cisc-процессоры семейства 80х86. Блок выборки и декорирования команд (бвдк), очередь команд. Взаимодействие бвдк, iu,fpu.
12. Ввод-вывод в программном режиме: шинная архитектура, машинный цикл, командный цикл: варианты реализации механизма запрос-ответ.
Программно-управляемый ввод-вывод означает обмен данными с внешними
устройствами с использованием команд процессора. Передача данных
происходит через регистры процессора и при этом в конечном счете может
реализовываться обмен собственно с процессором, обмен внешнего устройства
с памятью, обмен между внешними устройствами. Прерывания обычно
генерируются устройствами ввода-вывода, которые таким образом хотят
обратить на себя внимание процессора
Функционирование любой вычислительной системы обычно сводится к выполнению двух видов работы: обработке информации и операций по осуществлению ее ввода-вывода.
Содержание понятий "обработка информации" и "операции ввода-вывода" зависит от того, с какой точки зрения мы смотрим на них. С точки зрения программиста, под "обработкой информации" понимается выполнение команд процессора над данными, лежащими в памяти независимо от уровня иерархии – в регистрах, кэше, оперативной или вторичной памяти. Под "операциями ввода-вывода" программист понимает обмен данными между памятью и устройствами, внешними по отношению к памяти и процессору, такими как магнитные ленты, диски, монитор, клавиатура, таймер. С точки зрения операционной системы "обработкой информации" являются только операции, совершаемые процессором над данными, находящимися в памяти на уровне иерархии не ниже, чем оперативная память. Все остальное относится к "операциям ввода-вывода". Чтобы выполнять операции над данными, временно расположенными во вторичной памяти, операционная система, сначала производит их подкачку в оперативную память, и лишь затем процессор совершает необходимые действия.
Данная лекция будет посвящена второму виду работы вычислительной системы – операциям ввода-вывода. Мы разберем, что происходит в компьютере при выполнении операций ввода-вывода, и как операционная система управляет их выполнением. При этом для простоты будем считать, что объем оперативной памяти в вычислительной системе достаточно большой, т. е. все процессы полностью располагаются в оперативной памяти, и поэтому понятие "операция ввода-вывода" с точки зрения операционной системы и с точки зрения пользователя означает одно и то же. Такое предположение не снижает общности нашего рассмотрения, так как подкачка информации из вторичной памяти в оперативную память и обратно обычно строится по тому же принципу, что и все операции ввода-вывода.
Для учета особенностей реализации процессов ввода-вывода и специфики различного типа ПУ используются три режима ввода-вывода информации: программный ввод-вывод, ввод-вывод в режиме прерываний и с прямым доступом к памяти.
Интерфейсы должны учитывать возможность реализации всех 3-х режимов ввода-вывода.
Программный ввод-вывод. Здесь инициализация и управление процессом ввода-вывода
осуществляет процессор. Существует три способа его выполнения (см. рис.1).
Первый способ – прямой, используется для синхронных ПУ, т.е. устройств, которые всегда готовы к работе и циклов ожидания не требуется. Второй – условный с занятием цикла, когда при не готовности ПУ, процессор ждет до тех пор, пока наступит его готовность. Третий – условный с совмещением. В отличие от предыдущего, процессор не ждет готовности ПУ, а переходит к продолжению программы с периодической проверкой готовности ПУ.
Ввод-вывод в режиме прерываний. В этом случае инициатором начала процесса ввода-вывода является ПУ. Оно, когда готово, подает сигнал процессору "запрос на прерывание". Процессор, если ПУ разрешен такой режим, завершает текущую команду и переходит к выполнению процесса ввода-вывода (см. рис. 2). Сначала он осуществляет контекстное переключение, т.е. запоминает свое состояние, чтобы можно было после продолжить программу, идентифицирует ПУ и передает управление драйверу данного ПУ (ПП), который и осуществляет ввод или вывод информации. Идентификация ПУ производится с помощью адреса вектора прерывания, который содержит номер ячейки, где хранится первая команда этого драйвера. Адрес вектора прерывания ПУ передается процессору от контроллера прерываний.
Рис.2. Ввод-вывод в режиме прерывания
Следует отметить два момента. Во-первых, ПУ должно иметь, предварительно установленное, разрешение на работу в режиме прерываний. Во-вторых, возможны коллизии, когда несколько ПУ выставляют процессору запрос прерывания. Эта коллизия разрешается с помощью механизма задания уровня приоритетов для каждого ПУ. Возможна организация вложенных прерываний, когда ПУ с большим приоритетом прерывает работу ПУ с меньшим приоритетом. Все эти моменты должен учитывать стандарт на интерфейс.
Прямой доступ к памяти (см. рис. 3). Этот режим используется для высокоскоростных ПУ. В этом режиме активным устройством является контроллер прямого доступа к памяти (КПДП). Процессор, получив от КПДП заявку на прямой доступ, прерывает свою работу и отключается от интерфейса, передавая его задатчику, т.е. КПДП. Процессор при этом не выполняет контекстного переключения, а может продолжать свою работу, если она не требует интерфейса. Управление интерфейсом переходит к КПДП, который посредством выполнения операций чтения и записи передает информацию между ОЗУ и ПУ с соответствующим заданием адресов памяти. В этом режиме используется механизм задания уровня приоритетов для тех ПУ, которые работают с прямым доступом к памяти. Этот режим также должен быть предусмотрен в интерфейсах.
Как следует из вышеизложенного, канал ввода-вывода (главный контроллер) реализует функции управления общие для всех ПУ, а контроллер внешнего интерфейса учитывает специфику интерфейса, связывающего его с соответствующим ПУ.
В компьютерах, которые работают с малой интенсивностью ввода-вывода, главный контроллер (канал) ввода-вывода обычно отсутствует, а его функции берет на себя процессор. В этом случае процессор работает непосредственно с контроллером ввода-вывода ПУ, что упрощает структуру компьютера.
При работе с высокоскоростным ПУ обычно используется режим прямого доступа к памяти. Для этого режима аппаратно реализуется специальный канал ввода-вывода в виде КПДП.
Рис. 3. Режим прямого доступа к памяти
Назначение программного обеспечения ввода-вывода
Ключевая концепция разработки ПО ввода-вывода — независимость от устройств. Эта концепция означает возможность написания программ, способных получать доступ к любому устройству ввода-вывода без предварительного указания конкретного устройства. Соответственно, программа, читающая данные из входного файла, должна с одинаковым успехом работать с файлом на CD, HDD, Floppy, причем без каких-либо изменений в программе. Например, должна быть возможность выполнить команду вроде sort < input > output
Эта команда должна работать невзирая на то, что именно указано в качестве входного устройства.
Тесно связан с идеей независимости от устройств принцип единообразного именования. Имя файла или устройства должно быть просто текстовой строкой и никоим образом не зависеть от физического устройства.
Другим не менее важным аспектом программного обеспечения ввода-вывода является обработка ошибок. Ошибки должны обрабатываться как можно ближе к аппаратуре. Если контроллер обнаружил ошибку чтения, он должен по возможности исправить эту ошибку сам. Если он не в силах этого сделать, тогда ошибку обязан обработать драйвер устройства, например, попытавшись прочитать блок еще раз.
Программное обеспечение ааода-вывода разбивается на 4 уровня:
Обработчики прерываний.
Драйверы устройств.
Независимый от аппаратуры код ОС.
Пользовательские программы.
