Лекция: Реальный режим работы процессора (ОС)

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

Защищенный режим означает, что параллельное вычисление защищено аппаратно-прогными средствами.

При работе микропроцессора в реальном режиме обращение к памяти, с возможным адресным пространством в одном мегабайт, осуществляется посредством механизма сегментной адресации. Этот механизм был использован для увеличения количества разрядов, участвующих в образовании ячеек памяти с 16 до 20, тем самым увеличения объема памяти. Для определения физического адреса команды, содержимое сегментного регистра умножают на 16, за счет добавления справа 4 нулей, после чего к полученному значению прибавляют содержимое указателя команды, получим 20-и битное значение, которое и позволяет указать любой байт из количества, равного 220.

В защищенном режиме определение физического адреса осуществляется использованием сегментных механизмов для организации виртуальной памяти. При этом адресат задается 32-битным значением, кроме того возможна страничная трансляция адресов с 32-битного значения. При работе в защищенном режиме, к-ый по умолчанию предполагает 32-битный код, возможно использование двоичных команд, созД-х для работы в 16-битном режиме. Для этого введем режим виртуальной машины и 20-битные адреса реального режима, которые транслируются by страничного механизма в 32-битное значение защищенного режима.

это название было дано прежнему способу адресации памяти после появления процессора 80286, поддерживающего защищённый режим. Но только с появлением процессора 80386 можно говорить о защищённом режиме в современном понимании, так как в процессоре 80286 нет страничной адресации памяти. В реальном режиме при вычислении линейного адреса, по которому процессор собирается читать содержимое памяти или писать в неё, сегментная часть адреса умножается на 16 (или, что то же самое, сдвигается влево на 4 бита) и суммируется со смещением (если процессору передаётся не полный адрес из двух 16-битных значений — сегмента и смещения, — а только 16-битное смещение, то сегмент берётся из одного из сегментных регистров). Таким образом, адреса 0400h:0001h и 0000h:4001h ссылаются на один и тот же физический адрес, так как 400h×16+1 = 0×16+4001h.

Такой способ вычисления физического адреса позволяет адресовать 1 Мб + 64 Кб − 16 байт памяти (диапазон адресов 0000h…10FFEFh). Однако в процессорах 8086/8088 всего 20 адресных линий, поэтому реально доступен только 1 мегабайт (диапазон адресов 0000h…FFFFFh), а при адресации выше (в диапазоне 100000h…10FFEFh) происходит «заворот» — старший единичный бит адреса игнорируется и доступ идёт к 64 килобайтам в начальных адресах (0000h…FFEFh).

В процессорах 80286/80288 адресная шина 24-битная (возможна адресация 224 = 16 Мб памяти), поэтому в них переполнения не происходит. Компьютеры IBM PC/AT построены на процессоре Intel 80286, но из соображений совместимости с IBM PC и IBM PC/XT, построенных на Intel 808x, в них был введён логический элемент (вентиль), отключающий 21-й адресный провод (A20) от схемы управления памятью. Этот логический элемент (Gate A20) управляется через контроллер клавиатуры (микросхема Intel 8042) и по умолчанию он включён. В реальном режиме процессоры работали только в DOS. Адресовать в реальном режиме дополнительную память за пределами 1 Мб нельзя (хотя можно использовать драйвера вроде HIMEM.SYS на машинах с процессором 80286 и выше). Несмотря на то, что фирма Intel не предусмотрела возврат процессора из защищённого в реальный режим, она обеспечила совместимость 16-битных программ, введя ещё один специальный режим — режим виртуальных адресов V86. При этом программы получают возможность использовать прежний способ вычисления линейного адреса, в то время как процессор находится в защищённом режиме. Режим V86 позволил организовать работу DOS внутри многозадачных систем вроде OS/2 и Microsoft Windows. Структура адресного пространства IBM PC в реальном режиме

Основная область памяти

В область, называемую основной областью памяти (англ. conventional memory), загружается таблица векторов прерываний, различные данные BIOS, а также могут загружаться 16-битные программы DOS. Основная область памяти занимает 640 Кбайт начиная с адреса 0000:0000.

Upper Memory Area (UMA) занимает 384 Кбайт и используется для размещения информации об аппаратной части компьютера. Область условно делится на три области по 128 Кбайт. Первая область служит для видеопамяти. Через вторую область доступны BIOS адаптеров. Третья область используется системной BIOS, но, как правило, не полностью (обычно остаётся 64 Кбайт). Остальное адресное пространство из верхней области с помощью специальных драйверов (например, EMM386.EXE, EMS.EXE, LIMEMS.EXE и т. п.) и/или устройств расширения может использоваться для доступа к расширенной памяти через спецификацию расширенной памяти (англ. Expanded Memory Specification, EMS).

Дополнительная область памяти

Дополнительная память для 16-битных программ доступна через спецификацию дополнительной памяти (англ. eXtended Memory Specification, XMS). Дополнительная память начинается с адресов выше первого мегабайта и её объём зависит от общего объёма оперативной памяти, установленной на компьютере.

High Memory Area (HMA) — это область дополнительной памяти сразу за первым мегабайтом размером 64 Кбайт минус 16 байт. Её появление обусловлено особенностью процессора 80286, в котором 24 линии адреса и при обращении по адресам выше FFFF:000F обращение идёт ко второму мегабайту памяти (вместо начала первого мегабайта, как в 8086/8088). Таким образом, программы реального режима получили доступ к HMA.

4. Регистры центрального процессора: определение, какие группы регистров выделяются, для чего используются (ОргЭВМ)

Регистрами в схемотехнике называют электронные устройства, в которые можно записать информацию, сохранить ее и, при необходимости, прочитать. При этом регистры, как правило, обеспечивают более быстрый доступ к информации, чем доступ к содержимому ячеек памяти ОЗУ. Это обстоятельство и является причиной оснащения центрального процессора ЭВМ собственной памятью, причем в более поздних разработках микропроцессоров собственная память процессоров только увеличивается.

На рисунке приведена программная модель микропроцессора Intel (Pentium III). Все процессоры Intel имеют как минимум14 регистров:

— универсальные AX, BX, CX, DX;

— сегментные регистры CS, DS, SS, ES;

— регистры смещения IP, SP, BP, SI, DI;

— регистр флагов (регистр состояния) FL.

В процессорах IA-32 универсальными являются регистры ЕAX, ЕBX, ЕCX, ЕDX, добавлены сегментные регистры FS, GS, регистр флагов eflags имеет 32 разряда, его младшие разряды совпадают с FL.

Наиболее часто программист оперирует регистрами общего назначения (РОН). К ним относятся регистры AX, BX, CX, DX, а в процессорах, начиная с Intel 80386 и выше – EAX, EBX, ECX, EDX. Регистры ЕхХ – 32-разрядные, хХ – 16-разрядные. Каждый из последних в свою очередь состоит из двух 8-битовых регистров xL и xH. Нижеприведенный рисунок иллюстрирует общую структуру РОН на примере регистра ЕАХ.

Каждый из этих регистров может использоваться для временного хранения любых данных, при этом можно работать с каждым регистром целиком, а можно отдельно с его составляющими.

Оперативная память, выделяемая программе пользователя, состоит из отдельных программных сегментов. Сегментный регистр хранит стартовый (начальный) адрес памяти, определенный операционной системой для соответствующего сегмента.

Регистры смещений хранят относительный адрес данных в программном сегменте. Их значения являются составными частями физического адреса в виде сегмент: смещение. Эти регистры определяют смещения в строго определенном сегменте: регистр IP – в сегменте команд (определяет относительный адрес текущей команды), регистры SI и DI – в сегменте данных, регистры SP и BP – в сегменте стека.

еще рефераты
Еще работы по информатике