Программные модели процессоров и управление периферийными устройствами
Сущность и классификация электронно-вычислительных машин. Характеристика программной модели процессора. Основные задачи виртуальной памяти. Особенность назначения и общей схемы подключения кэш-памяти. Организация асинхронного системного интерфейса.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курс лекций |
Язык | русский |
Дата добавления | 13.10.2017 |
Размер файла | 237,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Вопросы и/или темы для самопроверки:
1. Понятие сегментированной памяти.
2. Место хранения базовых адресов сегментов.
3. Термин "линейный адрес" при задании адреса в МП IA.
4. Процедура трансляции сегмента при обращении к памяти в МП IA-16.
5. Структура команд в МП IA-16.
6. Назначение префикса в командах МП IA-16.
7. Назначение постбайта в командах МП IA-16.
8. Поля и назначение SIB-байта в МП IA-32.
5. Система прерывания
Функции системы прерывания и общие решения по реализации
Система прерывания появилась в процессорах ЭВМ второго поколения, которые использовались, в основном, в качестве программных устройств управления различными объектами.
Основными причинами появления системы прерывания являются:
· желание разработчиков уменьшить простои ЭВМ при возникновении внештатных ситуаций в процессоре (попытки деления на ноль, использование несуществующей команды, сбой в устройстве и т.д.),
· желание разработчиков загрузить полезной работой процессор во время, когда он ожидает сигнал от управляемого объекта, т.е. желание реализовать фоновую работу ЭВМ.
Несмотря на то, что система прерывания появилась для разрешения двух разных по сути проблем, в современных ЭВМ используется единый механизм прерывания. Но, несмотря на единый механизм прерывания, различают особенности процедуры обработки прерываний при внештатных ситуациях в процессоре и при приходе сигналов прерывания от внешних устройств.
С переходом на многопрограммные режимы работы система прерывания стала обязательным компонентом всех ЭВМ. Система прерывания - это эффективный способ реализации контрольных и управляющих функций операционной системы для поддержки заданных режимов работы ЭВМ как аппаратно-программного комплекса.
С этой точки зрения система прерывания является интерфейсным слоем между аппаратными и программными средствами ЭВМ.
Процедура прерывания заключается в переходе на подпрограмму обработки прерывания с возможностью возврата в основную программу.
В этом изложении процедура прерывания совпадает с процедурой вызова подпрограммы с возвратом, например при выполнении команды Call. Но эти процедуры имеют существенные различия в реализации возможности возврата в основную программу.
Проблема заключается в том, что команды имеют определенное последействие, которое влияет на выполнение последующих команд. Например, выполнение команды условного перехода может зависеть от результата выполнения предыдущей команды.
Каждая команда (кроме NOP) меняет контекст программы (имеет последействие), записывая результат выполнения в память, РОН или в регистр состояния.
Команды вызова процедуры с возвратом расставляются программистом с учетом такого последействия. Но прерывание - событие, в общем случае, случайное по отношению к программе. Программа обработки прерывания может изменить контекст программы, что может привести к нарушению корректности выполнения последующих команд основной программы.
По этой причине в процедуру прерывания включают этап сохранения контекста программы, а при возращении из процедуры - этап его восстановления.
Сохранение контекста может быть реализовано схемными, программными или схемно-программными способами. Наиболее часто используют схемно-программное сохранение контекста. При этом контекст делится на основную часть и дополнительную.
В основную часть входят коды условий и биты управления, собранные в регистр состояния программы (PSW - Program Status Word или PS). Для МП Intel - это регистр флагов (EFLAGS).
В дополнительную часть входит содержимое РОН и ячеек памяти.
Основная часть контекста сохраняется аппаратно, обычно в стек. Содержимое РОНов сохраняется и восстанавливается программой обработки прерывания, причем сохраняются и восстанавливаются только РОНы, используемые программой обработки прерывания.
Так как адресные пространства программ обработки прерывания и основной программы всегда разделяются, сохранение ячеек памяти в процедуре прерывания не предусмотрено.
В зависимости от причин, прерывания делятся на исключения (ловушки) и собственно прерывания.
Ловушка (Trap)- это реакция системы на появление в работе процессора нештатных ситуаций: попытка деления на ноль, выявление несуществующего адреса и т. д. К ловушкам относятся также специальные команды программируемого прерывания.
Прерывание (Interrupt)- это реакция системы на запрос внешнего устройства (сигнал прерывания) по выполнению процессором определенной процедуры управления.
Таким образом, ловушки выявляются схемами фиксации особых ситуаций в процессоре (штатных или нештатных), требующих контроля со стороны операционной системы. При этом с каждой схемой фиксации особых ситуаций связаны определенные программы обработки прерывания.
Сигналы прерывания - это сигналы от внешних по отношению к процессору устройств в моменты, требующие управляющих действий со стороны операционной системы.
Основными вопросами реализации системы прерывания являются:
· прием сигналов прерывания и ловушек и выделение приоритетного сигнала,
· определение момента выполнения процедуры прерывания,
· выбор процедуры прерывания (модели сохранения контекста и перехода на программу обработки прерывания),
· выбор процедуры возврата из процедуры прерывания (модели восстановления контекста и перехода на основную программу).
Прием сигналов прерывания и ловушек и выделение приоритетного сигнала
Прием сигналов (запросов) прерывания производится для определения конкретной программы обработки прерывания. В большинстве ЭВМ система прерывания предусматривает 256 программ обработки ситуаций, вызвавших запрос на прерывание. Каждая программа обработки прерывания связана с определенным источником прерывания и определяется номером прерывания. На рис.5.1. представлена обобщенная схема приема и приоритетного выделения сигналов прерывания. Выбор сигнала прерывания определяет номер источника прерывания и программу обработки этого прерывания.
Однопроцессорная система не может выполнять программы обработки прерывания одновременно по нескольким запросам. Поэтому используется приоритетное выделение принимаемых сигналов прерывания. Здесь возможны варианты.
Прием сигналов может производиться по общему проводу. В этом варианте, для выявления источников сигналов прерывания производится последовательный опрос процессором всех возможных источников сигнала прерывания.
Последовательность опроса определяет приоритет сигнала прерывания устройства.
При опросе все устройства, пославшие сигналы прерывания, в своих ответах определяют программы обработки прерывания.
Альтернативным способом приоритетного определения источника сигнала прерывания является прием сигналов прерываний от внешних устройств по индивидуальным проводам и фиксация их на отдельном регистре прерывания.
В этом случае в систему прерывания вводится схема приоритетного анализа поступивших сигналов. Для этого используется комбинационная схема, так называемый искатель левой единицы (ИЛЕ).
Эта схема задает жесткий приоритет сигналов прерывания. Но важность первоочередной обработки причин прерываний может меняться. Для этого в систему прерывания вводят регистр маски на те прерывания, приоритеты которых желательно менять. В том случае, изменяя значения бит регистра маски, отмечают сигналы прерываний, видимых искателю левой единицы. Примером может служить система прерывания семейства IBM 360.
В моделях этого семейства сигналы прерываний разделены на 5 классов. В каждом классе имеется своя схема приема и выделения сигналов прерывания, учитывающая специфику причин сигналов прерываний.
В этой схеме производится параллельное определение самого приоритетного источника сигнала прерывания в схемах приема и выделения сигналов прерывания по отдельным классам и между классами. Источник прерывания (номер программы) определяется конкатенацией (сцепление литерных или битовых строк) номера класса прерывания с номером прерывания в выбранном классе прерываний.
Определение момента выполнения процедуры прерывания
Сигнал прерывания, в общем случае, не является сигналом немедленного действия. Обычно сигнал прерывания (от внешних устройств) или ловушки (от схем контроля выполнения операций) просто фиксируется в соответствующем разряде регистра прерывания.
Выполнение перехода на программу обработки ситуации всегда происходит с определенной задержкой (время реакции системы прерывания).
Здесь возможны несколько вариантов в выборе момента начала процедуры прерывания:
· Программы состоят из последовательностей автономных участков (процедур) с минимальным набором передаваемой информации. Обычно это содержимое памяти или РОН. Это точки с минимумом контекста. Программист может отмечать эти точки особыми командами для использования их в качестве команд прерывания. Но это решение значительно увеличивает среднее время реакции системы прерывания.
· Среднее время реакции системы прерывания значительно (в разы) сокращается, если процедуру прерывания производить сразу после окончания текущей команды.
· Имеется еще возможность уменьшения времени реакции системы прерывания, если процедуру прерывания начинать сразу после окончания не команды, а текущей части команды (микрооперации), во время которой появился запрос прерывания. Но при этом приходится дополнительно сохранять результат текущей микрооперации.
В подавляющем большинстве архитектур ЭВМ процедура прерывания производится по окончании текущей команды.
На рис. 5.2 представлена упрощенная схема цикла выполнения команды с фиксацией ловушки (внештатной ситуации) и проверкой сигнала прерывания.
Выполнение команд в процессоре является циклическим. Начинаем рассмотрение с процедуры выборки команды. Это начало цикла. Результатом этого этапа является выборка и анализ полей команды, адресов операндов и результата. Следующим этапом является этап выборки операндов. Последующие этапы производят дешифрацию кода операции и передачу команды в блоки выполнения. Последним этапом является этап сохранения результата и записи признака результата в регистр состояния.
На всех этапах этой микропрограммы работает встроенная аппаратная система непрерывного контроля безошибочности работы аппаратуры. При обнаружении ошибок (сбоев) на любом этапе выполнения команды система производит фиксацию ошибки. Перед началом каждого следующего этапа производится проверка корректности выполнения предыдущего этапа. В случае обнаружения ошибки, она фиксируется в специальном регистре как исключительная ситуация (ловушка), и управление передается (в обход всех последующих этапов) на блок проверки наличия сигналов прерывания или ловушки.
В случае обнаружения прерывания или ловушки производится соответствующая процедура прерывания или ловушки.
Процедура прерывания или ловушки
Процедура прерывания или ловушки заключается в сохранении контекста программы и передаче управления на программу обработки прерывания.
Процедура возврата из прерывания или ловушки
Процедура возврата из прерывания заключается в восстановлении контекста прерванной программы и передаче управления на эту программу.
Вопросы и/или темы для самопроверки:
1. Две причины появления в ЭВМ системы прерывания.
2. Определение процедуры прерывания.
3. Основная часть контекста программы и дополнительная часть контекста программы.
4. Механизм сохранения основной части контекста.и механизм сохранения дополнительной части контекста
5. Основные вопросы реализации системы прерывания.
6. Основные этапы приема и выделения сигналов прерывания.
7. Момент реализации процедуры прерывания.
8. Процедура возврата из прерывания.
6. Организация системы прерывания в PDP 11
Система прерывания моделей семейства PDP 11 предусматривает:
· исключения - возникают при аппаратных сбоях, при выполнении команды прерывания, при установленном флаге пошагового прерывания (четвертый бит "trap" в регистре состояния PS), при страничном промахе механизма виртуальной памяти.
· аппаратные прерывания (прерывания от внешних устройств).
Отличие системы прерывания моделей семейства PDP-11 от системы прерывания МП-IA, заключается в процедуре передачи сигнала прерывания и содержимого вектора прерывания.
Процедура передачи сигнала прерывания в семействе PDP-11 производится по проводам системного интерфейса. В интерфейсе предусмотрено 5 проводов от периферийных устройств к арбитражу.
Это провода для передачи запроса на права доступа к шинам интерфейса (рис.5.5) для:
· запросов на внепроцессорный (прямой) доступ к памяти (ЗВП - запрос с высшим 8-м уровнем приоритета, один провод),
· запросов на прерывание: 4 провода с уровнями приоритета от 7 до 5 (ЗПВ7, ЗПВ6, ЗПВ5, ЗПВ4).
Процессор может иметь переменный уровень приоритета от 7 до 4. Уровень приоритета процессора задается трехбитовым полем приоритета регистра состояния (PS).
Всем внешним устройствам, использующим прямой доступ к памяти или систему прерывания, присваивается высший (8) уровень приоритета на запрос прямого доступа к памяти и один из уровней (от 7 до 4) - по запросам на передачу сигнала прерывания.
На запросы внешних устройств, если приоритет запроса выше уровня приоритета процессора, арбитраж выставляет ответный сигнал разрешения на захват шин интерфейса для прямого доступа к памяти или для передачи вектора прерывания в процессор по одному из четырех проводов разрешения (РП4, РП5, РП6, РП7) захвата (следующего) цикла процессора. Но это приоритетное выделение только уровня запроса, а не конкретного устройства на этом уровне. Для выделения единственного запроса на приоритетном уровне провода разрешения на каждом уровне соединены последовательно в контроллерах периферийных устройств. При этом в контроллере всех периферийных устройств передача сигнала на последующее устройство блокируется. Таким образом, сигнал разрешения захвата цикла процессора доходит только до контроллера одного периферийного устройства. По получении разрешения контроллер выставляет сигнал "Прер" на общий провод подтверждения разрешения. При отсутствии сигнала подтверждения процессор определяет запрос как ложный.
Таким образом, в семействах PDP-11 реализована ортогональная (многоуровневая) схема выделения приоритетов. Маскирование запросов прерывания производится не индивидуально, а по уровням. При этом уровень приоритета задается в регистре состояния (PS), запрос на прямой доступ не маскируется, т.к. запрос на внепроцессорные передачи ( 8 уровень) всегда выше приоритета процессора (от 7 до 4 уровня).
Устройство, получившее разрешение на прерывание, по окончании текущего цикла занимает цикл интерфейса и передает процессору по шине данных адрес вектора прерывания в таблице прерываний, расположенной с начальных адресов памяти. Вектор прерывания состоит из двух слов - адреса программы обработки прерывания (PC - Program counter) и регистра состояния программы (PS - Program status). В процедуре прерывания процессор сохраняет в аппаратном стеке содержимое счетчика команд (PC) и регистра состояния программы (PS). После сохранения контекста программы процессор производит загрузку регистров PC и PS соответствующими компонентами вектора прерывания.
Процедура прерывания семейства моделей PDP-11, в отличие от семейства МП IA-16, заключается в том, что вектор прерывания, кроме адреса программы обработки прерывания, содержит и начальное состояние программы обработки прерывания, и программа обработки прерывания начинает работу в своем контексте, а не в контексте прерываемой программы.
Вопросы и/или темы для самопроверки:
1. Отличия системы прерывания моделей семейства PDP-11 от системы прерывания МП-IA.
2. Процедура передачи сигнала прерывания в семействе PDP-11.
3. Работа арбитража.
4. Механизм маскирования сигналов прерывания.
6. Принцип выделения сигнала приоритетного уровня.
7. Принцип выделения приоритетного сигнала внутри уровня.
8. Особенность передачи вектора прерывания в процессор.
9. Отличия содержимого вектора прерывания в моделях семейства PDP -11.
7. Система прерывания в МП INTEL
Система прерывания в МП IA-16
Архитектура МП IA-16 предусматривает (рис. 5.3) два входа приема сигналов прерывания:
· вход приема немаскируемых сигналов прерывания (NMI),
· вход приема маскируемых сигналов прерывания (INTR).
Кроме этого, схемы процессора могут формировать сигналы исключительных ситуаций (исключений), требующих прерывания текущих программ. Эти сигналы могут быть вызваны определенными событиями и/или специальными командами вызова процедур обработки исключительных ситуаций.
В МП IA прерывания по сигналам на входах NMI и INTR определены как аппаратные прерывания, но по своей сущности сигналы по входу NMI являются исключениями, а по входу INTR - классическими прерываниями.
Кроме этого, в МП IA имеются ряд команд и признак TF в регистре флагов, вызывающие процедуру прерывания. Это программируемые прерывания, которые по своей сущности являются исключениями.
Прерывания по команде INTO вызывает прерывание по флагу переполнения. Команда INT3 используется при отладке программ. Она вызывает процедуру прерывания, которая может распечатать содержимое определенных ячеек памяти или РОН. Это однобайтовая команда, которую можно вписать вместо кода операции любой команды (возможно, с добавкой команд NOP (нет операции)) без нарушения структуры последующих команд.
Прерывания по сигналам прерывания по входу NMI
Это сигналы от схем контроля блока питания, обнаружения ошибок системы памяти, требующих немедленного реагирования. Все программы обработки прерываний этих причин объединены в одну программу с номером (типом) 2 и имеют второй приоритет по обслуживанию. Прерывания по этому входу в процессоре не маскируются и выявляются по переднему фронту сигнала. Это гарантирует однократное реагирование системы прерывания на один запрос.
Прерывания по сигналам прерывания по входу INTR
Запросы на маскируемые сигналы прерываний поступают от отдельных периферийных устройств по индивидуальным проводам запроса. В контроллере прерываний они фиксируются на регистре прерываний, связанном со схемой приоритетного выбора сигнала прерывания. При этом в контроллере прерываний (8259А) формируется выходной сигнал прерывания, поступающий на вход приема маскируемых сигналов прерывания (INTR) и тип (n), где n - номер программы обработки прерывания.
Запросы на маскируемые сигналы прерываний поступают от отдельных периферийных устройств по индивидуальным проводам запроса. В контроллере прерываний они фиксируются на регистре прерываний, связанном со схемой приоритетного выбора сигнала прерывания. При этом в контроллере прерываний (8259А) формируется выходной сигнал прерывания, поступающий на вход приема маскируемых сигналов прерывания (INTR) и тип (n), где n - номер программы обработки прерывания.
По завершении очередной команды производится проверка исключений, в частности, сигнала на входе NMI процессора. Сигнал определяется по переднему фронту. При отсутствии сигнала на входе NMI процессор проверяет значение бита разрешения прерывания в регистре флагов. При IF=0 процессор производит выборку очередной команды текущей программы.
При единичном значении IF процессор реализует процедуру прерывания. Для этого процессор выставляет на шины системного интерфейса в двух смежных тактах сигналы подтверждения прерывания (inta).
В ответ на сигнал inta во втором такте подтверждения прерывания контроллер прерывания выставляет на шины данных тип (n) программы обработки прерывания.
Тип (n) программы обработки прерывания используется в качестве номера строки таблицы прерываний. Таблица прерываний содержит векторы прерываний: IP (адрес входа в программу) и CS (базовый адрес сегмента программы).
В МП Intel, как и во многих ЭВМ, количество программ обработки прерываний ограничено числом 256. В соответствии с этим таблица прерываний содержит не более 256 векторов прерываний по 4 байта. Для МП IA-16 таблица прерываний всегда занимает первый килобайт линейной (оперативной) памяти.
Для сохранения настройки и перехода на программу обработки прерывания процессор производит следующие действия:
· последовательно сохраняет в стеке содержимое CS, IP и регистра флагов (F),
· в регистре флагов сбрасываются флаги разрешения прерываний IF и пошаговой ловушки TF (запрещение прерывания и пошагового режима),
· делает обращение к таблице прерываний и производит последовательное заполнение регистров процессора IP и CS данными из таблицы прерывания по адресу 4n, где n - тип прерывания.
Сохранение содержимого РОН производится программой обработки прерывания.
После сохранения РОН программа обработки прерывания может сбросить флаг разрешения прерывания IF. Сброс флага IF открывает возможность прерывания программы обработки прерывания запросами прерывания с более высоким приоритетом, например, сигналом прерывания по входу NMI.
Программа обработки прерывания заканчивается командами восстановления данных в РОНах и командой IRET. По команде IRET производится восстановление регистров F, IP и CS значениями, сохраненными в стеке.
Особенности системы прерывания в МП IA-32
Основными причинами модификации системы прерывания в МП IA-32 можно считать следующие архитектурные изменения:
· более активное использование взаимодействия аппаратно-программных средств, например, в системе виртуальной памяти,
· переход к использованию симметричных многопроцессорных систем, начиная с МП Pentium Over Drive (Pentium второго поколения).
· использование механизма защиты программ от взаимных помех.
Более активное использование взаимодействия аппаратно-программных средств
В МП IA-32 используется механизм виртуальной памяти, который, в случаях страничных промахов, применяет механизм прерывания для подкачки новой страницы и рестарта прерванной команды. В этих случаях требуется сохранение адреса не следующей команды, а команды, вызвавшей исключение.
По этой причине в системе прерывания различают три случая исключений. Они различаются адресами возврата из исключения, а текущая команда может быть:
· отложена,
· выполнена,
· принудительно (аварийно) прекращена.
В первом случае исключение обнаруживается до начала выполнения текущей команды. Это отказ (fault) - исключение, которое обнаруживается и обслуживается до выполнения текущей команды. В этом случае в процедуре прерывания восстанавливаются первоначальные значения всех регистров, которые были до начала выполнения команды, сохраняется адрес текущей (но невыполненной) команды. Это и есть рестарт команды. Примером такой ловушки является страничный промах при трансляции страниц.
В современных МП, в частности МП IA-32, функционирование счетчика команд (IP) несколько изменено. Для увеличения быстродействия процессора используется опережающая выборка программного кода в буферный регистр кодовой строки.
В МП 80386 емкость буферного регистра кодовой строки составляет 16 байт. Первый байт этой строки всегда содержит код операции команды или префикс, т.е. начало текущей команды. Команда может содержать переменное число байт. Байты команды по очереди сдвигаются к старшим разрядам и поступают на регистр команд, пока не будет выбран последний байт команды. Если при этом освобождаются четыре младших байта буферного регистра кодовой строки, то производится обращение к кодовому сегменту команд для заполнения кодовой строки. Таким образом, счетчик команд не обращается за каждой командой в кодовый сегмент памяти, а производит заполнение кодовой строки по четыре байта.
При прерываниях или исключениях буфер кодовой строки очищается и заполняется кодовой строкой программы обработки исключения. При рестарте вычисляется адрес команды рестарта, производится его запоминание в стеке и после этого производится заполнение регистра кодовой строки командами программы обработки исключения.
Во втором случае исключение обнаруживается после начала выполнения текущей команды. Это ловушка (trap) - исключение, которое обнаруживается и обслуживается после выполнения текущей команды. В процедуре прерывания сохраняется продвинутый адрес основной программы. К классу ловушек относятся все программные прерывания.
В третьем случае - это исключение, при котором невозможно точно установить адрес инструкции, вызвавшей исключение. Это аварийное завершение (abort). Оно используется для сообщения о серьезной ошибке, не допускающей рестарта.
Переход к использованию симметричных многопроцессорных систем
Контроллер прерываний (8259А) не предназначен для работы в симметричных многопроцессорных системах. По этой причине начиная с МП Pentium Over Drive (Pentium второго поколения) в системе прерываний используется новый усовершенствованный контроллер прерываний APIC (Advanced Programmable Interrupt Controller Enable). Для локальных запросов прерываний APIC использует индивидуальные линии LINT0 и LINT1 по одной на процессор. Общие (разделяемые) сигналы прерываний поступают к процессорам по интерфейсу APIC. При этом контроллеры предварительно программируются для определения функций каждого из процессоров по обработке аппаратных прерываний.
Использование механизма защиты программ от взаимных помех
Механизм защиты программ от взаимных помех предусматривает разделение программ по четырем уровням защиты, причем самый нижний уровень защиты предназначен для пользовательских программ. Их защита от взаимных помех обеспечивается операционной системой разделением их адресных пространств и использованием локальных таблиц дескрипторов. Пользовательским программам доступны только сегменты, зафиксированные в их локальных таблицах.
Программы обработки прерываний размещаются на более высоком уровне привилегий. Механизм защиты позволяет использование этих программ только командами перехода с возвратом и только с использованием шлюзов (см. 2.3. Программная модель 32-разрядного микропроцессора).
Кроме этого, механизм защиты позволяет при передачах управления использовать более защищенную процедуру переключения задач.
По этой причине таблица прерываний на каждое прерывание (включая исключения) может содержать:
· дескриптор шлюза прерывания, или
· дескриптор шлюза исключения, или
· дескриптор шлюза задачи.
Максимальное число дескрипторов в таблице - 256.
Структуры шлюзов таблицы прерываний представлены на рис.5.4.
При использовании шлюза прерывания или исключения задается процедура передачи управления с сохранением в стеке адреса возврата и содержимого регистра флагов. По селектору дескриптора шлюза производится обращение к GDT (Глобальной таблице дескрипторов) для определения дескриптора кодового сегмента программы прерывания или исключения, включая проверки по уровням привилегий.
При этом селектор дескриптора шлюза прерывания или исключения записывается в сегментный регистр CS процессора, дескриптор сегмента - в регистр дескриптора процессора, ассоциативно связанный с сегментным регистром CS, и уровень привилегий дескриптора - в поле текущего уровня селектора CS.
Отличие процедуры прерывания от процедуры исключения заключается только в том, что в процедуре прерывания после сохранения в стеке содержимого регистра флага процессор сбрасывает бит разрешения прерывания, а в процедуре исключения - не сбрасывает.
При использовании шлюза TSS переход на программу обработки прерывания и возврат производится с применением процедуры переключения программ.
Вопросы и/или темы для самопроверки:
1. Понятие исключения - отказ (fault). Приведите пример.
2. Понятие исключения - ловушка (trap). Приведите пример.
3. Понятие исключения - аварийное завершение (abort). Приведите пример.
4. Особенности работы контроллера прерывания в симметричных многопроцессорных системах.
5. Содержимое строк таблицы прерывания в защищенном режиме.
6. Отличия в процедуре прерывания при использовании дескрипторов ловушки и прерывания.
8. Теоретические основы операций ввода/вывода
Организация ввода/вывода - это передача данных между оперативной памятью (ОП) и периферийными устройствами (ПУ).
Управление вводом/выводом относится к нижнему физическому уровню управления средствами вычислительных систем. На базе операций этого уровня реализуются процедуры верхнего уровня управления, например, процедуры команд операционных систем и программных оболочек: сохранить файл, загрузить файл, копировать файл и т.д.
Для каждого типа ПУ используется устройство управления (контроллер, адаптер), алгоритмы работы которого учитывают индивидуальные особенности данного типа ПУ.
Организация управления вводом/выводом связана с решением ряда задач. Решения части из этих задач зависят от физики работы конкретных ПУ и реализуются на уровне обмена физическими сигналами (в определенные моменты времени формируются импульсы тока или напряжения определенной амплитуды и длительности). На этом уровне решаются следующие проблемы:
· запись информации во внутреннюю память ПУ и чтение из нее,
· управление адресацией внутренней памяти ПУ,
· передача информации между ПУ и контроллером и, частично, контроль процесса ввода/вывода.
Решения другой части задач не зависят от физики работы отдельных ПУ и реализуются на уровне обмена логическими сигналами. На этом уровне решаются проблемы:
· задания кода операции и адреса блока данных в ПУ,
· передачи данных между ПУ и ОП,
· синхронизации передачи данных,
· контроля процесса ввода/вывода,
· активизации и окончания работы ПУ.
Для организации ввода/вывода в контроллерах устройств ввода/вывода предусмотрены специальные регистры (основными являются регистр данных RD и регистр управления RU), а в системе команд - команды ввода/вывода.
Управление вводом/выводом на этом уровне может быть реализовано двумя способами:
· с использованием средств процессора. Такой ввод-вывод называется программным,
· с использованием специальных устройств управления (процессоров ввода/вывода, устройств прямого доступа к памяти ПДП). Такой ввод-вывод называется аппаратным (внепроцессорным, с занятием цикла, с прямым доступом к памяти).
Программный ввод/вывод
При программном вводе/выводе контроллерами управляет ПР при помощи программы (драйвера) ввода/вывода. Программы этого типа учитывают конструкцию контроллера и используемого в вычислительной системе ПР и обычно входят в базовую систему программ управления вводом/выводом на физическом уровне (в РС - BIOS). Программы BIOS выполняют роль интерфейса между программами операционных систем и используемой аппаратурой вычислительной системы и обеспечивают переносимость операционных систем между ЭВМ с одинаковыми процессорами.
Синхронизация передачи данных при вводе/выводе
Специфика периферийных устройств заключается в том, что их схемы работают несинхронно с тактом работы процессора и, как правило, являются намного менее быстродействующими по сравнению с ПР и ОП.
RD контроллера по отношению к ПР является быстродействующим регистром, который способен производить прием/передачу данных наравне с внутренними регистрами ПР. С другой стороны, RD осуществляет прием/передачу данных от связанного с ним ПУ с той скоростью и в том порядке, которые обусловлены характеристиками данного ПУ.
Поэтому, моменты появления данных на RD контроллера ПУ при вводе, или готовность ПУ принять новые данные при выводе - непредсказуемы. Определение моментов готовности ПУ принять или передать новые данные и передача данных при условии наступления ожидаемых моментов составляют суть условных программных способов ввода/вывода.
В настоящее время известны два условных способа программного ввода/вывода:
· с проверкой готовности,
· с использованием системы прерывания.
В обоих способах синхронизация передачи данных осуществляется при помощи бита RDY ("флага готовности") в специальном программно доступном регистре управления (RU) контроллера ПУ.
Работа RD с использованием бита RDY в процессе ввода или вывода характеризуется чередованием двух фаз:
1. передача данных между RD и ПУ (доступ ПР к RD при этом запрещен);
2. передача данных между RD и ПР (доступ ПУ к RD при этом запрещен).
Закончив свои операции по загрузке RD при вводе или чтению содержимого RD при выводе, ПУ устанавливает бит RDY в состояние 1 - "поднимает флаг готовности". Поднятие флага означает окончание фазы ПУ в работе RD и начало фазы ПР : поднятый флаг разрешает доступ к RD со стороны ПР и запрещает доступ со стороны ПУ.
ПР по окончании своего этапа обмена информацией с RD сбрасывает флаг в нулевое состояние. Сброс флага символизирует окончание фазы ПР и начало фазы ПУ.
Использование системы прерывания при организации ввода/вывода освобождает процессор от непрерывного опроса состояния флага готовности, дает возможность использования процессора в фоновой работе. В этом варианте готовность данных используется для формирования сигнала прерывания фоновой работы и передачи управления программе ввода/вывода с последующим возвратом к фоновой работе.
Рассмотренная процедура передачи данных через буфер (регистр РД) и синхронизации с помощью обоюдно управляемого и тестируемого флага составляет техническую основу всякой передачи данных между устройствами.
Ввод/вывод с использованием системы прерывания
Основное преимущество организации ввода/вывода с использованием системы прерывания заключается в возможности организации фоновой работы, т.е. более эффективное использование функциональных возможностей процессора.
Отличие этого метода организации ввода/вывода заключается в том, что:
· установка бита готовности не проверяется программой процессора, а приводит к формированию сигнала прерывания,
· проверка нарушения тайм-аута производится не программно, а с использованием аппаратных средств процессора или внешних устройств.
В этом варианте программа ввода/вывода делится на части.
Начальная часть программы (передача параметров процедуре ввода/вывода) и заключительная часть исполняются в виде проблемной программы, а программа управления передачей оформляется в виде программы обработки внешнего прерывания.
При использовании программы обработки прерывания возникает ряд проблем. Это передача параметров и сохранение содержимого РОН.
При прерываниях основной контекст программы сохраняется аппаратно, а РОНы - в программе обработки прерывания. Перед выходом из прерывания программа обработки восстанавливает содержимое РОНов. Но фоновая (проблемная) программа может испортить содержимое РОНов, в которых программа управления вводом/выводом хранит текущий адрес оперативной памяти и размер блока вводимых (выводимых) данных. Чтобы этого не случилось, можно или сохранять эти параметры в зарезервированных ячейках оперативной памяти, или, для МП IA-32, в процедуре прерывания использовать механизм переключения задач
Ввод/вывод с использованием устройств прямого доступа к памяти
Изначально прямой доступ к памяти был предназначен для исполнительных устройств обработки данных, т.е. для процессора. Но для более эффективного использования вычислительных средств процессора стали создавать дополнительные, специализированные устройства, ориентированные на выполнение процедур управления операциями ввода/вывода.
В вычислительных системах корпорации CDC используются периферийные процессоры, которые, кроме управления вводом/выводом, могут выполнять ряд вычислительных операций и использоваться для обработки прерываний от внешних устройств. В моделях семейства IBM периферийные процессоры (каналы) более простые. При выполнении операций ввода/вывода они даже для простейших вычислений через систему прерываний используют вычислительные возможности центрального процессора.
В моделях PC IA используют не процессоры, а простейшие устройства ПДП для управления вводом/выводом. Обычно это стандартные устройства управления вводом/выводом на одну операцию. Обычно они рассчитаны на работу с широким кругом периферийных устройств.
Функции процессора в передаче данных с использованием ПДП сводятся к инсталляции устройства и анализу корректности завершения передачи данных.
В этой фазе процессор производит загрузку регистра адреса начальным адресом области ввода ОП, загрузку регистра счетчика передаваемых слов и включает ПДП в работу установкой бита "Пуск" регистра управления RU в единичное состояние.
На этом этап инсталляции ПДП заканчивается, и процессор переключается на выполнение фоновых программ. Одновременно с работой процессора производится операция ввода данных устройством ПДП с занятием циклов процессора.
После активизации устройства ввода/вывода с контроллером ПДП, через определенное время устройство записывает в регистр данных RD передаваемые данные (слово) и устанавливает бит готовности RU в единичное состояние.
Бит готовности запускает процедуру внепроцессорной передачи (передачу с занятием цикла процессора):
· ПУ в очередном цикле процессора по шинам арбитража выставляет запрос шин интерфейса для передачи данных в следующем цикле,
· Процессор уступает шины передачи данных на следующий цикл устройству ПДП, выигравшему арбитражный запрос на занятие цикла процессора.
В следующем цикле шин устройство ПДП вместо процессора занимает шины интерфейса, задавая код операции (для ввода - записать), данные из регистра RD,, адрес ячейки ОП из регистра RA и сигнал начала цикла передачи.
Контроллер оперативной памяти принимает команду ПДП, выполняет запись переданных данных по заданному адресу ОП и выставляет сигнал окончания операции.
По этому сигналу схемы контроллера ПДП производят:
· продвижение адреса данных в регистре адреса ,
· коррекцию счетчика передаваемых данных
· сброс бита готовности в регистре управления (RU),
При значении счетчика> 0, ПДП формирует новые данные и повторяет цикл внепроцессорной передачи.
При значении счетчика= 0 или обнаружении нештатной ситуации, устройство ПДП формирует и передает в процессор сигнал прерывания.
Таким образом, ввод/вывод данных с использованием внепроцессорных передач начинается с программы процессора по настройке устройства ПДП, а заканчивается программой процессора по анализу корректности окончания операции ввода/вывода.
Вопросы и/или темы для самопроверки:
1. Определение операции ввода/вывода.
2. Определение программного ввода/вывода.
3. Ввод/вывод с проверкой готовности.
4. Ввод/вывод с использованием системы прерывания.
5. Основные особенности организации ввода/вывода с использованием системы прерывания.
6. Процедура прямого доступа к памяти.
7. 4. Процедура занятия цикла процессора.
8. 5. Действия контроллера ПДП по завершению цикла ПДП.
9. 6. Окончание процедуры ввода-вывода.
9. Организация виртуальной памяти
Предпосылки появления виртуальной памяти
Виртуальная память появилась для решения проблем многопрограммных пакетных режимов работы и режимов коллективного доступа высокопроизводительных ЭВМ.
Основными требованиями этих режимов являлись: независимость подготовки программ и исключение взаимных помех.
Требование исключения взаимных помех
Требование исключения взаимных помех заключается в том, что возможные конфликты программ должны разрешаться также на уровне операционных систем.
Для этого в пределах программ операционной системы предусмотрен ряд корректно написанных сервисных программ по управлению этими ресурсами. Для их использования предусмотрены стандартные вызовы, например, через команды прерывания.
Основные задачи виртуальной памяти
Основными задачами виртуальной памяти являются реализации:
· динамической переадресации программ,
· организация памяти единого уровня.
Переадресации программ
В соответствии с основной концепцией виртуальной памяти пользователи могут писать программы с использованием любых адресов математической памяти. Переадресация программ заключается в изменении всех адресов обращения к памяти за командами и данными в соответствии с адресами памяти, выделенными операционной системой.
Имеется два способа переадресации программ: программный и аппаратный. Аппаратный способ переадресации используется в механизме виртуальной памяти. Альтернативой ему является программный способ.
Программный способ переадресации программ
Схема программного способа переадресации программ
При статической переадресации исходная программа, возможно разделенная на части, написанная с использованием различных языков программирования, перед выполнением проходит две процедуры преобразования:
· Перевод программы с используемого языка программирования на язык машинных команд (процедура компиляции программы). В результате этой процедуры формируются объектные модули. Объектные модули - это программы в машинных кодах, но не настроенные на "свободные участки адресов физической памяти".
· Дальше используются две программы операционной системы: супервизор памяти (программа выделения свободных участков оперативной памяти) и редактор связей (программа, связывающая отдельные участки программы в единую последовательность команд - исполняемый модуль).
Все эти процедуры преобразования программ необходимы и при однопрограммных режимах работы, когда нет проблемы распределения памяти.
Разница заключается в том, что в многопрограммных режимах при каждом запуске (прогоне) программы нужно повторять преобразование объектного модуля в исполняемый модуль.
Построение памяти единого уровня
В современных ЭВМ используется многоуровневая физическая память: оперативная, энергонезависимая память на основе магнитных дисков и архивная память на основе записи на магнитных лентах. В однопрограммных режимах пользователи имеют возможность напрямую контролировать и управлять передачей данных по уровням памяти. В многопрограммных режимах работы программисту подконтрольна только математическая память (набор адресов, которые можно использовать в программах). Если этого достаточно для управления работой процессора, включая подкачку данных из памяти прямого доступа (свопинг), то говорят о реализации виртуальной памяти.
Таким образом, в понятие виртуальной памяти входят два механизма: динамическая переадресация и построение памяти единого уровня.
Кроме программного способа переадресации программ возможны и аппаратные способы. В этих способах исполняемый модуль формируется только один раз под адреса, назначенные программистом (в расчете на то, что вся оперативная память свободна). Настройка программ с учетом выполнения программы в многопрограммном режиме производится чисто аппаратно схемами процессора. Это динамическая переадресация программ.
Простейшая схема динамической переадресации программ представлена на рис. В этой схеме программа, написанная для определенного участка адресов математической памяти, может быть помещена в произвольное место адресного пространства оперативной памяти без изменения адресов в командах.
Для корректного выполнения программы в аппаратуру процессора вводятся дополнительный регистр (регистр смещения) и сумматор.
При загрузке исполняемого модуля программы супервизор памяти выделяет для нее определенный участок оперативной памяти. Адреса этого участка могут отличаться от адресов, используемых в программе. Для их согласования в регистр смещения заносится число, компенсирующее разницу адресов в выделенном участке физической памяти и математической памяти:
Адрес физической :=адрес математической памяти + смещение.
Величина смещения может иметь любой знак (отрицательный или положительный).
Для запуска программы на регистр указателя команд (счетчик команд) заносится адрес входа в программу, указанный программистом, т.е. адрес математической памяти.
Работа программы начинается с выборки команды по содержимому регистра указателя команд. Но, так как указатель содержит адрес математической памяти, а не физической, производится аппаратная коррекция этого адреса. Она заключается в сложении содержимого регистра указателя команд и регистра смещения.
После выборки и дешифрации команды, если это команда обращения к оперативной памяти, в команде содержится также адрес не оперативной памяти, а математической. Поэтому любой адрес обращения к оперативной памяти перехватывается и проходит процедуру преобразования адресов.
Этот механизм преобразования адресов имеет ряд недостатков. Он предполагает механизм распределения оперативной памяти массивами произвольной размерности, что приводит к дефрагментации памяти. Кроме этого, он не решает проблему построения памяти единого уровня.
В МП IA используется процедура трансляции сегментов, которая частично решает проблемы виртуальной памяти: разделение адресных пространств задач и автоматическое преобразование математического адреса в линейный адрес оперативной памяти. Но это не считается механизмом виртуальной памяти, В защищенном режиме, кроме трансляции страниц, возможно включение механизма классической виртуальной памяти - "процедуры трансляции страниц".
Страничная организации виртуальной памяти
В основе механизма классической виртуальной памяти лежит страничная организация математической оперативной памяти и, частично, памяти прямого доступа (памяти на магнитных дисках).
Страничная организация оперативной и математической памяти заключается в разбиении адресных пространств памяти на страницы, расположенные в целочисленных границах, т.е. размером, кратным степени числа два (основания системы счисления). Это обычная многомерная декартова система координат.
В МП IA-32 размер страницы выбран равным 212 = 4096 байт (4 Кб).
При этом старшие 20 разрядов адреса определяют номер страницы, а младшие 12 разрядов - номер байта в странице. Адресация информации на магнитных дисках имеет свои особенности. Минимальным блоком информации является сектор (на круговой дорожке) в 512 байт. Секторы объединяются в кластеры. Размер кластера зависит от системы разметки. Чаще всего используются кластеры размером в 4 Кб, т.е. равные странице оперативной памяти. В магнитных дисках используется файловая структура поиска. Для поиска информации на дисках имеется специальная FAT-таблица (File Allocation Table - таблица размещения файлов), в которой записаны имена файлов и список адресов расположения последовательностей кластеров на дорожках диска. Диски читаются не отдельными кластерами в произвольном порядке, а последовательно от начального кластера в файле до последнего. Но для организации виртуальной памяти требуется чтение страниц в произвольном порядке.
По этой причине часть дорожек магнитных дисков размечается на страницы с возможностью их чтения в произвольном порядке. То есть для части памяти на магнитных дисках формируют страничную структуру. Это область памяти, которую в технических описаниях обозначают как область ввода, обмена или область виртуальной памяти. По умолчанию операционная система назначает размер этой области равным трехкратной емкости оперативной памяти. Программно можно изменять размеры этой области.
Известны две схемы построения страничной виртуальной памяти:
· на основе таблицы математических страниц,
· на основе таблицы физических страниц.
Виртуальная память на основе таблицы математических страниц
Схема построения виртуальной памяти на основе таблицы математических страниц представлена на рисунке. Это один из первых вариантов виртуальной памяти. Она была использована в ЭВМ "Атлас" (Англия).
ОП - страничная оперативная память, разбитая на страницы от 0 до m.
МП А - программа А, разбитая на страницы.
МП В - программа В, разбитая на страницы,
НМД - дисковая память, поддерживающая страничную структуру данных.
Изначально, программы А и В хранятся на магнитных дисках. При активизации этих программ, часть страниц по мере выполнения программы, переписывается в оперативную память.
Процедура переадресации программ производится следующим образом.
При обращении к памяти номер математической страницы из регистра математического адреса (Рег.МА) поступает в таблицу математических страниц. Таблица математических страниц строится на основе ассоциативной памяти. Входной адрес (из Рег.МА) параллельно сравнивается с содержимым всех строчек. Для представленного на рис. 8.3 примера совпадение фиксируется для первой и третий строчки, т.е. для всех совпадающих значений входного и записанных номеров.
Одновременно со сравнением номеров производится сравнение бита доступности (d). Выбирается строка с d=0.
...Подобные документы
Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.
учебное пособие [1,1 M], добавлен 09.04.2013Динамическое распределение памяти. Анализ виртуальной памяти, алгоритм ее обращения, общие принципы защиты. Страничная организация. Особенности переключения в мультизадачный режим. Режим системного управления. Расширение размера адресного пространства.
презентация [1,3 M], добавлен 14.12.2013Методы расчета, схемотехнического проектирования и конструирования элементов и блоков ЦВМ. Разработка регистра, схемы записи и считывания из оперативной памяти. Применение макроопределений при моделировании устройств и построении принципиальных схем.
курсовая работа [1,1 M], добавлен 12.02.2013Стратегии размещения информации в памяти. Алгоритмы распределения адресного пространства оперативной памяти. Описание характеристик модели и ее поведения, классов и элементов. Выгрузка и загрузка блоков из вторичной памяти. Страничная организация памяти.
курсовая работа [708,6 K], добавлен 31.05.2013Распределение виртуальной памяти. Страничная и сегментная организации виртуальной памяти. Сегментно-страничная организация виртуальной памяти. Преобразование виртуального адреса в физический. Упрощение адресации памяти клиентским программным обеспечением.
курсовая работа [440,7 K], добавлен 04.03.2014Классификация компьютерной памяти. Использование оперативной, статической и динамической оперативной памяти. Принцип работы DDR SDRAM. Форматирование магнитных дисков. Основная проблема синхронизации. Теория вычислительных процессов. Адресация памяти.
курсовая работа [1,5 M], добавлен 28.05.2016Управление взаимодействием всех устройств ЭВМ. История создания и развития производства процессора. Структура центрального процессора. Регистры общего назначения. Обозначения популярных моделей процессоров Intel и AMD. Команды центрального процессора.
реферат [111,2 K], добавлен 25.02.2015Классификация ЭВМ: по принципу действия, этапам создания, назначению, размерам и функциональным возможностям. Основные виды электронно-вычислительных машин: суперЭВМ, большие ЭВМ, малые ЭВМ, МикроЭВМ, серверы.
реферат [22,8 K], добавлен 15.03.2004Описание архитектуры внешних выводов кристалла процессора. Рассмотрение форматов данных для целых чисел со знаком и без знака. Выбор модели памяти и структуры регистровой памяти. Использование кэш прямого отображения. Арифметические и логические команды.
курсовая работа [890,5 K], добавлен 05.06.2015Как изготавливается процессор. Выбор процессора для офисного, игрового и домашнего компьютеров. Как заменить центральный процессор в компьютере. Повышение быстродействия процессоров, тактовой частоты, быстродействия памяти, понижение таймингов.
дипломная работа [1,7 M], добавлен 29.04.2014Особенности нагревания первых электронно-вычислительных машин, первые попытки их охлаждения. История появления водного охлаждения компьютерного процессора. Сущность оверклокерских систем охлаждения для экстремального разгона комплектующих компьютера.
презентация [947,7 K], добавлен 20.12.2009Архитектура компьютеров и возможности операционной системы по управлению памятью. Суть концепции виртуальной памяти. Аппаратно-независимые и аппаратно-зависимые средства управления виртуальной памятью. Сегментно-страничная организации виртуальной памяти.
презентация [355,2 K], добавлен 27.12.2010Память персонального компьютера, основные понятия. Характеристика внутренней и внешней памяти компьютера. Логическое отображение и размещение. Классификация компьютерной памяти по назначению, по удаленности и доступности для центрального процессора.
контрольная работа [1,8 M], добавлен 27.11.2010Память для вычислительных систем ее создание и характеристика особенностей. Создание устройств памяти и основные эксплуатационные характеристики. Функциональные схемы и способ организации матрицы запоминающих элементов. Виды магнитной и флеш памяти.
презентация [184,9 K], добавлен 12.01.2009Объем двухпортовой памяти, расположенной на кристалле, для хранения программ и данных в процессорах ADSP-2106x. Метод двойного доступа к памяти. Кэш-команды и конфликты при обращении к данным по шине памяти. Пространство памяти многопроцессорной системы.
реферат [28,1 K], добавлен 13.11.2009Архитектура многопроцессорных систем с общей шиной и с неоднородным доступом к памяти. Структура кэш памяти. Взаимодействие user space с kernel space. Средства синхронизации ядра Linux. Обход каталогов страниц. Инструментация кода средствами Clang.
дипломная работа [513,7 K], добавлен 14.11.2017Построение современных центральных процессоров на основе циклического процесса последовательной обработки информации. Архитектура двойного конвейера с общим вызовом команд. Основная идея создания кэш-памяти. Характеристика процессоров Core и Phenom.
реферат [1,6 M], добавлен 30.12.2010Классические принципы построения электронных вычислительных машин, их основные блоки: арифметико-логический, устройства управления, ввода-вывода и памяти. Автоматизация перевода информации. Двоичное кодирование и организация оперативной памяти компьютера.
презентация [55,2 K], добавлен 22.02.2015Физическая организация памяти компьютера. Организация структуры обработки потока данных. Степень и уровни параллелизма. Оценка иерархической организации памяти. Динамическая перестройка структуры. Микросхемы запоминающих устройств. Кэш-память процессора.
лекция [2,4 M], добавлен 27.03.2015Типовая структура ПЭВМ. Основные элементы системного блока персонального компьютера, их функциональное назначение. Управление обменом информации. Назначение оперативной памяти ПК, схема и принцип работы. Основные характеристики микросхем памяти.
презентация [1,6 M], добавлен 01.05.2012