Автор работы: Пользователь скрыл имя, 20 Декабря 2012 в 19:01, лекция
Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и в непрерывном взаимодействии. Между программами, как и между физическими узлами и блоками существует взаимосвязь – многие программы работают, опираясь на другие программы более низкого уровня. Уровни программного обеспечения (ПО) представляют собой пирамидальную конструкцию. Каждый следующий уровень опирается на программное обеспечение предшествующих уровней.
15
+
Регистр IP
=
15
|
Физический
адрес
Рис.4. Схема определения физического адреса для микропроцессоров 8086/88
Прерывания
Микропроцессоры Intel 8086/88 поддерживают 256 прерываний. Каждое из них имеет свой номер и ISR. Адрес точки входа в ISR называется вектором прерываний и хранится в специальной таблице, называемой таблицей векторов прерывания (ТВП). Код ISR может располагаться в любом месте памяти. Поэтому вектор прерывания занимает 4 байта:
Вся ТВП занимает 256*4 = 1024 байта и хранится в оперативной памяти, начиная с адреса 0000:0000.
При возникновении прерывания процессор помещает в стек 6 байт:
Прерыванию «0» соответствует вектор прерывания по адресу 0000:0000.
Прерыванию «1» соответствует вектор прерывания по адресу 0000:0004h.
Прерыванию «2» соответствует вектор прерывания по адресу 0000:00008h.
………………………………………………………………………………
В процессе функционирования ПК могут встретиться 4 типа прерываний:
Они возникают как результат внешних событий, и их генерирует специальная микросхема ПК i8259A – программируемый контроллер прерываний (PIC). Она рассчитана на 8 входов запросов прерываний (IR – Interrupt Request). Сигналы на ней возбуждают внешние устройства: таймер, клавиатура, дисководы и т.д. Выход этой микросхемы подается на специальный вход процессора INTR. Этот вход является маскируемым: если флаг IF равен 1, то процессор реагирует на прерывания по этой линии, флаг IF сброшен в 0, то – нет;
Процессор, кроме входа INTR, имеет вход немаскируемых прерываний NMI. Сигнал по этому входу не может быть блокирован программным образом и вызывает прерывание с номером «2». Это прерывание имеет более высокий приоритет, чем по входу INTR и используется для организации реакции процессора на критические ситуации.
Осуществляется по программной инструкции INT(«номер прерывания»).
Генерация внутренних прерываний
процессором при возникновении
необычных условий при
Особенности архитектуры микропроцессоров i80x86
Под обозначением i80x86 будем понимать любые 32-битовые микропроцессоры, имеющие такой основной набор команд, как и в первом 32-битовом микропроцессоре Intel 80386.
Первым микропроцессором, на базе которого была создана IBM PC, был 16-ти разрядный микропроцессор Intel 8088. Он отличается от первого 16-битового микропроцессора Intel 8086 тем, что у него была 8-битовая шина данных, а не 16-ти битовая как у 8088. Эти микропроцессоры были предназначены для работы в однозадачном режиме, специальных аппаратных средств для поддержки мультипрограммных ОС в них не было. Поэтому для совместимости с первыми компьютерами (программных продуктов было создано уже много) в последующих версиях микропроцессоров была реализована возможность использовать их в двух режимах – реальном (real mode – так назвали режим работы первых 16-битовых микропроцессоров) и защищенном (protected mode – означает, что параллельные вычисления могут быть защищены аппаратно-программными механизмами)
В 16-ти битовых микропроцессорах i80x86 обращение к памяти в 1 Мбайт производилось посредством механизма сегментной адресации. Этот механизм увеличивал количество разрядов, участвующих в указании адреса ячейки памяти, с 16 до 20 и тем самым увеличивал объем адресуемой памяти от 64 Кбайт (216) до 1 Мбайт (220).
В защищенном режиме работы определение физического адреса осуществляется совершенно иначе. Прежде всего используется сегментный механизм для организации виртуальной памяти. При этом адреса задаются 32-битовыми значениями. Для изучения всего этого рассмотрим новые архитектурные возможности микропроцессора i80x86.
Для организации эффективной и надежной работы ПК в мультипрограммном режиме необходимо, чтобы:
Поэтому в микропроцессорах i80х86 реализован сегментный способ организации распределения памяти. Помимо этого, может быть задействована и страничная трансляция.
Сегментная организация виртуальной памяти состоит в том, что программа разбивается на логические элементы (например, блоки, процедуры) ─ так называемые сегменты разной длины, которые размещаются в памяти как до определенной степени самостоятельная единица. Логически обращение к элементам программы будет представляться как указание имени сегмента и смещения относительно начала этого сегмента. Физическое имя сегмента (его порядковый номер) будет соответствовать некоторому адресу, с которого этот сегмент начинается при его размещении в памяти, и смещение должно прибавляться к этому базовому адресу. Таким образом, адрес для этого способа состоит из двух полей: номер сегмента и смещение относительно сегмента. Каждый сегмент, размещаемый в памяти, имеет соответствующую информационную структуру, называемую дескриптором сегмента:
Старшее двойное слово дескриптора
31
База сегмента (биты 31-24) |
G |
D |
0 |
0 |
Биты 19-16 поля Limit |
P |
DPL |
S |
Type |
A |
База сегмента (биты 23-16) |
Базовый адрес сегмента (биты 15-0) |
Байт прав доступа | ||||||||||
Limit-размер (предел) сегмента (биты 15-0) |
31
Первое (младшее) двойное слово дескриптора
При переключении микропроцессора в защищенный режим он начинает совершенно другим образом, чем в реальном режиме, вычислять физические адреса команд и операндов. Прежде всего, содержимое сегментных регистров интерпретируется иначе: считается, что там содержится не адрес начала сегмента, а номер соответствующего сегмента. Каждый сегментный регистр (в этом случае его называют селектор сегмента) разбивается на три поля:
Страничная организация виртуальной памяти состоит в том, что все фрагменты программы, на которые она разбивается произвольным образом, имеют одинаковую длину. Эти одинаковы части называют страницами и говорят, что память разбивается на физические страницы, а программа ─ на виртуальные страницы. Часть виртуальных страниц задачи размещается в оперативной памяти, а часть ─ во внешней. Величина страницы выбирается кратной степени двойки. Таким образом, вместо одномерного адресного пространства можно говорить о двумерном. Первая координата адресного пространства ─ это номер страницы, а вторая ─ номер ячейки внутри выбранной страницы (его называют индексом). Таким образом, физический адрес определяется парой (Pp,i), а виртуальный адрес ─ парой (Pν,i), где Pν ─ номер виртуальной страницы, Pp ─ номер физической страницы, i ─ индекс ячейки внутри страницы. Количество битов, отводимое под индекс, определяет размер страницы, а количество битов, отводимое под номер виртуальной страницы ─ объем возможной виртуальной памяти, которой может воспользоваться программа. При это нет необходимости ограничивать число виртуальных страниц числом физических, то есть не поместившиеся страницы можно размещать во внешней памяти, которая в этом случае служит расширением оперативной. Для отображения виртуального адресного пространства задачи на физическую память для каждой задачи, как и в случае сегментного способа, необходимо иметь таблицу страниц для трансляции адресных пространств. Для описания каждой страницы диспетчер памяти ОС заводит соответствующий дескриптор.
Информация о работе Программное обеспечение вычислительной системы