Программное обеспечение вычислительной системы

Автор работы: Пользователь скрыл имя, 16 Декабря 2012 в 12:09, курс лекций

Краткое описание

Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и в непрерывном взаимодействии. Между программами, как и между физическими узлами и блоками существует взаимосвязь – многие программы работают, опираясь на другие программы более низкого уровня. Уровни программного обеспечения (ПО) представляют собой пирамидальную конструкцию. Каждый следующий уровень опирается на программное обеспечение предшествующих уровней (рис.1).

Вложенные файлы: 1 файл

Лекции.doc

— 510.00 Кб (Скачать файл)

                                                   15                                                        0

                               



                  +

 Регистр IP    

                                      

                   =                 15                                                             0

 

 
                                     



Физический

адрес     

                                     19                                                                           0

 

Рис.4. Схема определения  физического адреса для микропроцессоров 8086/88

 

 

Прерывания

 

Микропроцессоры Intel 8086/88 поддерживают 256 прерываний. Каждое из них имеет свой номер и ISR. Адрес точки входа в ISR называется вектором прерываний и хранится в специальной таблице, называемой таблицей векторов прерывания (ТВП). Код ISR может располагаться в любом месте памяти. Поэтому вектор прерывания занимает 4 байта:

  • 2 байта отводится на значение сегмента адреса – значение регистра CS;
  • 2 байта – на  значение смещения, устанавливаемое в регистре IP. 

 

Вся ТВП занимает 256*4 = 1024 байта и хранится в оперативной  памяти, начиная с адреса 0000:0000.

При возникновении прерывания процессор помещает в стек 6 байт:

  • текущее значение регистра CS;
  • текущее значение регистра IP;
  • 2 байта флагов процессора;
  • в CS и IP устанавливаются значения из ТВП, задающие начальный адрес ISR.

Прерыванию «0» соответствует  вектор прерывания по адресу 0000:0000.

Прерыванию «1» соответствует  вектор прерывания по адресу 0000:0004h.

Прерыванию «2» соответствует  вектор прерывания по адресу 0000:00008h.

…………………………………………………………………………………..

В процессе функционирования ПК могут встретиться 4 типа прерываний:

 

  1. Аппаратные.

Они возникают как  результат внешних событий, и  их генерирует специальная микросхема ПК i8259A – программируемый контроллер прерываний (PIC). Она рассчитана на 8 входов запросов прерываний (IR – Interrupt  Request). Сигналы на ней возбуждают внешние устройства: таймер, клавиатура, дисководы и т.д. Выход этой микросхемы подается на специальный вход процессора INTR. Этот вход является маскируемым: если флаг IF равен 1, то процессор реагирует на прерывания по этой линии, флаг IF сброшен в 0, то – нет;

  1. Немаскируемые прерывания.

Процессор, кроме входа INTR, имеет вход немаскируемых прерываний NMI. Сигнал по этому входу не может быть блокирован программным образом и вызывает прерывание с номером «2». Это прерывание имеет более высокий приоритет, чем по входу INTR и используется для организации реакции процессора на критические ситуации.

  1. Программные прерывания.

Осуществляется по программной  инструкции INT(«номер прерывания»).

  1. Исключительные ситуации.

Генерация внутренних прерываний процессором при возникновении  необычных условий при выполнении машинных команд, например «деление на нуль», «пошаговое исполнение»..

Особенности архитектуры  микропроцессоров i80x86

 

Под обозначением i80x86 будем понимать любые 32-битовые микропроцессоры, имеющие такой основной набор команд, как и в первом 32-битовом микропроцессоре Intel 80386.

 

  1. Реальный и защищенный режимы работы процессора

 

Первым микропроцессором, на базе которого была создана 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.

 

  1. Новые системные регистры микропроцессоров i80х86

 

  1. 32-битовый указатель команды EIP , младшие 16 разрядов есть регистр IP микропроцессора i8086/88;
  2. 32-битовый регистр флагов EFLAGS, младшие 16 разрядов есть регистр FLAGS микропроцессора i8086/88;
  3. 32-битовые регистры общего назначения EAX, EBX, ECX, EDX, а также ESP, EBP, ESI, EDI, а их младшие 16 разрядов есть регистры микропроцессора i8086/88:  AX, BX, CX, DX, SP, BP, SI, DI;
  4. 16-битовые сегментные регистры CS, SS, DS, ES, FS, GS. При каждом из этих регистров есть  недоступные никому, кроме собственно микропроцессора, 64-битовые регистры, в которые загружаются дескрипторы соответствующих сегментов;
  5. 16-битовый регистр-указатель на локальную таблицу сегментов текущей задачи – LDTR. При нем также имеется «теневой» (скрытый от программиста) 64-битовый регистр, в который микропроцессор заносит дескриптор, указывающий на таблицу дескрипторов сегментов задачи, описывающих ее локальное виртуальное адресное пространство;
  6. 16-битовый регистр-указатель задачи TR (task register). Указывает на дескриптор в глобальной таблице дескрипторов, позволяющий получить доступ к дескриптору задачи TSS – информационной структуре, которая поддерживает микропроцессор для управления задачами;
  7. 48-битовый регистр GDTR глобальной таблицы GDT (global descriptor table), содержащий как дескрипторы общих сегментов, так и специальные системные дескрипторы;
  8. 48-битовый регистр IDTR таблицы дескрипторов прерываний. Сдержит информацию, необходимую для доступа к таблице прерываний IDT.
  9. 32-битовые управляющие регистры  CRO, CR1, CR2, CR3. Регистр CR0 содержит флаги, определяющие режим работы микропроцессора. Регистр CR1 предназначен для размещения в нем адреса подпрограммы обработки страничного исключения. Регистр CR3 содержит номер физической страницы, в которой располагается таблица каталогов таблиц страниц текущей задачи.

 

  1. Адресация в 32-разрядных микропроцессорах i80х86 при работе в защищенном режиме

 

Для организации эффективной  и надежной работы ПК в мультипрограммном  режиме необходимо, чтобы:

  1. у каждого вычислительного процесса было собственное (локальное) адресное пространство, которое бы не пересекалось с адресными пространствами других задач;
  2. существовало общее (разделяемое) адресное пространство.

Поэтому в микропроцессорах i80х86 реализован сегментный  способ организации распределения памяти. Помимо этого, может быть задействована и страничная трансляция.

Сегментная  организация виртуальной памяти состоит в том, что программа разбивается на логические элементы (например, блоки, процедуры) ─ так называемые сегменты разной длины, которые размещаются в памяти  как до определенной степени самостоятельная единица. Логически обращение к элементам программы будет представляться как указание имени сегмента и смещения относительно начала этого сегмента. Физическое имя сегмента (его порядковый номер) будет соответствовать некоторому адресу, с которого этот сегмент начинается при его размещении в памяти, и смещение должно прибавляться к этому базовому адресу. Таким образом, адрес для этого способа состоит из двух полей: номер сегмента и смещение относительно сегмента. Каждый сегмент, размещаемый в памяти, имеет соответствующую информационную структуру, называемую дескриптором сегмента:

 

Старшее двойное слово дескриптора

31                                 23                                19                                  15                              11                      7                                          0

 

База сегмента

(биты 31-24)

G

D

0

0

Биты 19-16 поля Limit

P

DPL

S

Type

A

     База сегмента

      (биты 23-16)

          Базовый  адрес сегмента (биты 15-0)

     Байт прав доступа

Limit-размер (предел) сегмента (биты 15-0)


31                                                                                                           15                                                                                                       0

Первое  (младшее) двойное слово  дескриптора

Рис.1. Дескриптор сегмента

 

При переключении микропроцессора  в защищенный режим он начинает совершенно другим образом, чем в реальном режиме, вычислять физические адреса команд и операндов. Прежде всего, содержимое сегментных регистров интерпретируется иначе: считается, что там содержится не адрес начала сегмента, а номер соответствующего сегмента. Каждый сегментный регистр (в этом случае его называют селектор сегмента) разбивается на три поля:

    1. поле индекса ─ старшие 13 битов (3-15). Определяют номер сегмента:
    2. поле индикатора таблицы сегмента ─ бит с номером 2. Определяет часть виртуального адресного пространства.
    3. поле уровня привилегий ─ биты 0 и 1. Указывает запрашиваемый уровень привилегий.

Страничная  организация виртуальной памяти состоит в том, что все фрагменты программы, на которые она разбивается произвольным образом, имеют одинаковую длину. Эти одинаковы части называют страницами и говорят, что память разбивается на физические страницы, а программа ─ на виртуальные страницы. Часть виртуальных страниц задачи размещается  в оперативной памяти, а часть ─ во внешней. Величина страницы выбирается кратной степени двойки. Таким образом, вместо одномерного адресного пространства можно говорить о двумерном. Первая координата адресного пространства ─ это номер страницы, а вторая ─ номер ячейки внутри выбранной страницы (его называют индексом). Таким образом, физический адрес определяется парой (Pp,i), а виртуальный адрес ─ парой (Pν,i), где Pν ─ номер виртуальной страницы, Pp ─ номер физической страницы, i ─ индекс ячейки внутри страницы. Количество битов, отводимое под индекс, определяет размер страницы, а количество битов, отводимое под номер виртуальной страницы ─ объем возможной виртуальной памяти, которой может воспользоваться программа. При это нет необходимости ограничивать число виртуальных страниц числом физических, то есть не поместившиеся страницы можно размещать во внешней памяти, которая в этом случае служит расширением оперативной. Для отображения виртуального адресного пространства задачи на физическую память для каждой задачи, как и в случае сегментного способа, необходимо иметь таблицу страниц для трансляции адресных пространств. Для описания каждой страницы диспетчер памяти ОС заводит соответствующий дескриптор.

Информация о работе Программное обеспечение вычислительной системы