Реальный режим работы компьютера

Реальный режим (или режим реальных адресов; англ. real-address mode ) — режим работы процессоров архитектуры x86, при котором используется сегментная адресация памяти (адрес ячейки памяти формируется из двух чисел: сдвинутого на 4 бита адреса начала сегмента и смещения ячейки от начала сегмента; любому процессу доступна вся память компьютера). Изначально режим не имел названия, был назван «реальным» только после создания процессоров 80286, поддерживающих режим, названный «защищённым» (режим назван «защищённым», так как создавался для «защиты» процессов друг от друга — для того, чтобы не позволить процессам иметь доступ к областям памяти друг друга; но для процессоров 80286 защищённый режим не был по настоящему «защищённым», так как эти процессоры не поддерживали страничную адресацию памяти, впервые реализованную в процессорах 80386).

Содержание

Описание [ править | править код ]

В реальном режиме виртуальный адрес ячейки памяти состоит из двух чисел:

  • сегментной части разрядностью 16 бит , по которой вычисляется физический адрес начала сегмента;
  • смещения разрядностью 16 бит ячейки памяти от начала сегмента.

Для вычисления физического или линейного адреса ячейки памяти процессор вычисляет физический адрес начала сегмента — умножает сегментную часть виртуального адреса на число 16 (или, что то же самое, сдвигает её влево на 4 бита ), а затем складывает полученное число со смещением от начала сегмента:

сегментная_часть × 16 + смещение

Если сегментная часть адреса не указана (в коде инструкции), процессор читает сегментную часть адреса из одного из сегментных регистров (из какого именно — зависит от кода инструкции).

При такой адресации адреса 0400h:0001h и 0000h:4001h (буква «h» означает, что число записано в шестнадцатеричной системе счисления) будут ссылаться на одну и ту же ячейку памяти, так как 400h × 16 + 1 = 0 × 16 + 4001h .

Минимальный адрес: 0000h:0000h ( 0 байт ).

Максимальный адрес: FFFFh:FFFFh ( FFFFh × 16 + FFFFh) = 10FFEFh = 1 114 095 Б = 100000h + 10000h — 11h = 1 МиБ + 64 КиБ — 17 Б ).

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

Процессоры 80286 имеют 24‑битовую адресную шину (возможна адресация 2 24 Б = 16 МиБ памяти), поэтому в них переполнения («заворот») не происходит.

Компьютеры IBM PC/AT построены на процессоре Intel 80286, и для сохранения совместимости с компьютерами IBM PC и IBM PC/XT (построенными на Intel 808x) оснащены логическим элементом (вентилем), управляющим работой 21‑го адресной линии (провода) (обозначаемой «A20») и названным «Gate A20». Этот логический элемент по умолчанию отключен (что соответствует режиму совместимости), и управляется через контроллер клавиатуры (обычно, через микросхему Intel 8042).

Использование [ править | править код ]

После включения питания компьютера или после подачи на процессор сигнала сброса процессор архитектуры x86 начинает работу в реальном режиме. В этом режиме начинается исполнение кода BIOS IBM-PC-совместимого компьютера. В реальном режиме может быть выполнена инициализация некоторой аппаратуры (например, инициализация контроллера ОЗУ чипсета), необходимая для работы программ после переключения процессора в защищённый режим. Если размеры кода и данных программы, выполняющей инициализацию аппаратуры, невелики, эта программа может выполняться в реальном режиме. Так, например, операционная система (ОС) DOS работает в реальном режиме и не пытается перевести процессор в защищённый режим. Ранние версии ОС Microsoft Windows могли работать только в реальном режиме. Даже ОС Windows 3.0 среди трёх режимов работы предусматривала запуск в реальном режиме и могла выполняться на процессоре 8086.

Процессоры 80286 и более новые модели, работая в реальном режиме, в основном, имеют такие же ограничения на размер адресного пространства, как и процессоры 8086. Для использования памяти большего размера программам, разработанным для реального режима, необходимы специальные программные средства. На машинах с процессором 80286 и более новыми моделями, можно, например, использовать драйверы вроде HIMEM.SYS. Существуют также средства, предоставляемые недокументированной командой LOADALL (что, однако, сопряжено с рядом трудностей). В процессорах 80386 и более новых моделях появилась возможность, не документированная фирмой Intel и позволяющая перевести процессор в режим, неофициально названный режимом «unreal». Работая в режиме unreal, программа может, хоть и с некоторыми ограничениями, использовать 32‑битовое физическое адресное пространство ( 2 32 Б = 4 ГиБ ).

Читайте также:  Pixel plus ultra hd

Несмотря на то, что фирма Intel не предусмотрела возможность перехода процессора 80286 из защищённого режима в реальный режим, компьютер IBM PC/AT имеет такую возможность благодаря аппаратным особенностям и поддержке со стороны BIOS. Компьютер IBM PC/AT позволяет программам подавать сигнал сброса на процессор. Код BIOS может различать причины/режимы перезапуска, анализируя содержимое ячейки энергонезависимой памяти CMOS с адресом 0Fh и ячейки ОЗУ с адресом 40h:72h . Любая программа, записав в названные ячейки памяти подходящие значения и подав сигнал сброса на процессор, может заставить процессор перезагрузиться; после перезагрузки процессор начнёт исполнять код BIOS; код BIOS прочитает значения из вышеназванных ячеек памяти, не станет выполнять начальную загрузку, не станет изменять содержимое ОЗУ (в ОЗУ останутся те же данные, что и до перезагрузки процессора), и передаст управление коду, расположенному в ОЗУ по адресу, записанному в ячейку ОЗУ с адресом 40h:67h . Таким образом программа может многократно переключаться между защищённым и реальным режимами, хотя этот способ требует сравнительно большого расхода времени на каждое переключение.

Возможность «нормального» (без ухищрений) программного перехода из защищённого режима в реальный режим была предусмотрена фирмой Intel только в процессорах 80386 и в более новых моделях. Однако в 80386 большую ценность имеет другая новая возможность — режим виртуального 8086 (V86, VM86). В режиме V86 программы могут использовать как бы прежний (сегментный) способ адресации памяти процессора 8086; при этом процессор будет находится в защищённом режиме, а физический (линейный) адрес, вычисленный по правилам 8086, будет подвергаться страничной трансляции. Благодаря режиму V86 появилась возможность создания виртуальных машин. Операционная система может ограничить доступ к той или иной области памяти (см. защита памяти) для каждой виртуальной машины, может выделять для них виртуальную память вместо реальной (физической) и может контролировать обращения к портам ввода-вывода. Перечисленное используется для организации работы ОС DOS под управлением многозадачных ОС вроде OS/2 и Microsoft Windows. При этом каждой виртуальной машине DOS доступен только 1 МиБ адресного пространства, и одновременно могут быть запущены несколько виртуальных машин DOS.

Структура адресного пространства [ править | править код ]

Адресное пространство IBM-PC-совместимого компьютера в реальном режиме делится на четыре части:

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

Область памяти, называемая «верхней» или «upper» (англ. upper memory area , UMA ), занимает 384 КиБ , используется для размещения информации об аппаратной части компьютера, условно делится на три области размером по 128 КиБ каждая. Первая область служит для хранения видеопамяти. Через вторую область доступны BIOS адаптеры. Третья область используется кодом BIOS, но, как правило, не полностью (обычно остаётся 64 КиБ ). Остальное адресное пространство из верхней области с помощью специальных драйверов (например, EMM386.EXE, EMS.EXE, LIMEMS.EXE и т. п.) и/или устройств расширения может использоваться для доступа к расширенной (expanded) памяти согласно её спецификации (англ. expanded memory specification , EMS ).

Область памяти, называемая «дополнительной» доступна для 16-битовых программам согласно её спецификации (англ. extended memory specification , XMS ), начинается с адресов, расположенных выше первого мебибайта, и имеет размер, зависимый от размера установленной на компьютере оперативной памяти.

Область памяти, называемая «high» (англ. high memory area , HMA располагается сразу за первым мебибайтом и занимает 64 КиБ минус 16 байт . Её появление обусловлено особенностью процессора 80286, в котором имеется 24 линии адреса, и при обращении по адресам выше FFFFh:000Fh обращение идёт ко второму мебибайту памяти (вместо начала первого мебибайта, как в 8086/8088).

В 1976 году фирма Intel закончила разработку 16-разрядного микропроцессора i8086. Он имел разрядность регистров 16 бит и системной шины адреса 20 бит, за счет чего мог адресовать до 1 Мбайт оперативной памяти.

В 1982 году был создан i80286. Этот микропроцессор представлял собой улучшенный вариант i8086. Он поддерживал уже несколько режимов работы: реальный, когда формирование адреса производилось по правилам i8086, и защищенный, который аппаратно реализовывал многозадачность и управление виртуальной памятью, i80286 имел также большую разрядность шины адреса — 24 разряда против 20 у i8086, и поэтому он мог адресовать до 16 Мбайт оперативной памяти. Первые компьютеры на базе этого микропроцессора появились в 1984 году.

Читайте также:  Средства просмотра и воспроизведения

В 1985 году фирма Intel представила первый 32-разрядный микропроцессор i80386, аппаратно совместимый снизу вверх со всеми предыдущими микропроцессорами этой фирмы. Он был гораздо мощнее своих предшественников, имел 32-разрядную архитектуру и мог прямо адресовать до 4 Гбайт оперативной памяти. Микропроцессор i386 стал поддерживать новый режим работы — режим виртуального i8086, который обеспечил не только большую эффективность работу программ, разработанных для i8086, но и позволил осуществлять параллельную работу нескольких таких программ.

В настоящее время микропроцессор с 32-битной Intel-архитектурой может работать в одном из четырех режимов:

  • реальный режим
  • системный режим
  • защищенный режим
  • режим виртуального i8086
Реальный режим (Real Mode)

После инициализации (системного сброса) центральный процессор находится в реальном режиме. В реальном режиме центральный процессор работает как очень быстрый i8086 с возможностью использования 32-битных расширений. Механизм адресации, размеры памяти и обработка прерываний (с их последовательными ограничениями) микропроцессор 8086 полностью совпадают с аналогичными функциями других микропроцессоров с 32-битной Intel архитектурой в реальном режиме.

Режим системного управления (System Management Mode).

В новых поколениях микропроцессоров Intel появился режим системного управления. Он предназначен для выполнения некоторых действий с возможностью их полной изоляции от прикладного программного обеспечения и даже от операционной системы. Микропроцессор переходит в этот режим только аппаратно. Никакой программный способ не предусмотрен для перехода в этот режим. Микропроцессор возвращается из режима системного управления в тот режим, при работе в котором был получен соответствующий сигнал по команде RSM. Эта команда работает только в режиме системного управления и в других режимах не распознается, генерируя исключение #6 (недействительный код операции).

Защищенный режим (Protected Mode)

Защищенный режим является основным режимом работы микропроцессора. Ключевые особенности защищенного режима: виртуальное адресное пространство, защита и многозадачность. В защищенном режиме программа оперирует с адресами, которые могут относиться к физически отсутствующим ячейкам памяти, поэтому такое адресное пространство называется виртуальным . Размер виртуального адресного пространства программы может превышать емкость физической памяти и достигать 64Тбайт.

Виртуальный режим i8086 (V86)

В режим V86 процессор может перейти из защищённого режима, если установить в регистре флагов EFLAGS бит виртуального режима (VM-бит, бит 17). Когда процессор находится в виртуальном режиме, его поведение во многом напоминает поведение процессора i8086. В частности, для адресации памяти используется схема , размер сегмента составляет 64 килобайта, а размер адресуемой в этом режиме памяти — 1 мегабайт. Виртуальный режим предназначен для работы программ, ориентированных на процессор i8086 (или i8088). Но виртуальный режим – это не реальный режим процессора i8086, имеются существенные отличия. Процессор фактически продолжает использовать схему преобразования адресов памяти и средства мультизадачности защищённого режима.

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

Обработчики прерываний защищённого режима могут моделировать функции соответствующих прерываний реального режима, что необходимо для правильной работы программ, ориентированных на реальный режим операционной системы MS-DOS.

Состав машинных команд

Современные компьютеры автоматически выполняют несколько сотен различных команд.

Все машинные команды можно разделить на группы по видам выполняемых опе­раций:

· операции пересылки информации внутри компьютера;

· арифметические операции над информацией;

· логические операции над информацией;

· операции над строками (текстовой информацией);

· операции обращения к внешним устройствам компьютера;

· операции передачи управления;

· обслуживающие и вспомогательные операции.

Пояснения требуют операции передачи управления (или, иначе, — ветвления про­граммы), которые служат для изменения естественного порядка выполнения ко­манд. Существуют операции безусловной передачи управления и операции услов­ной передачи управления.

Операции безусловной передачи управления всегда обусловливают выполнение после данной команды не следующей по порядку, а той, адрес которой в явном или неявном виде указан в адресной части команды.

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

Читайте также:  Что такое utp соединения

Вычислительные машины могут выполнять обработку информации в разных ре­жимах (рис. 1):

1) однопрограммном (монопольном) режиме;

2) многопрограммном режиме.

Рисунок 1 Режимы работы ЭВМ

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

Однопрограммный режим имеет и второй вариант — вариант косвенного доступа, при котором пользователь не имеет непосредственного контакта с компьютером. В этом варианте пользователь готовит свое задание и отдает его на обработку. За­дача запускается в порядке очередности, и по мере готовности результаты ее реше­ния выдаются пользователю. Однопрограммный режим непосредственного доступа весьма удо­бен для пользователя, но для него характерен чрезвычайно низкий коэффициент загрузки оборудования — временные простои многих устройств машины и в пери­од подготовки задачи для решения, и непосредственно при решении задачи (при вычислениях в процессоре простаивают внешние устройства, при печати простаи­вают процессор, основная и внешняя память и т. д.).

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

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

Простейшим вариантом многопрограммного режима является режим пакетной обработки. Он в максимальной степени обеспечивает загрузку всех ресурсов ма­шины, но наименее удобен пользователю.

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

Второй частный случай многопрограммного режима — режим разделения време­ни, характерен тем, что на машине действительно одновременно решается несколь­ко задач, каждой из которых по очереди выделяются кванты времени, обычно не­достаточные для полного решения задачи. Условием прерывания решения текущей задачи служит либо истечение кванта выделенного времени, либо обращение к про­цессору какого-либо приоритетного внешнего устройства, например клавиатуры для ввода информации.

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

Режим реального времени — еще один вариант режима с разделением машинного времени. Этот режим используется в основном в динамических системах управленияи диагностики, когда строго регламентируется время ответа системы (выпол­нения задания) на случайно поступающие запросы.

Все режимы разделения машинного времени обеспечивают пользователю работу в режиме «on-line».

Основная нагрузка на реализацию многопрограммных режимов, как уже говори­лось, ложится на операционную систему.

Вопросы для самоконтроля по разделу

1. Приведите примеры программных продуктов, входящих в группу прикладного программного обеспечения.

2. Какова функция системного программного обеспечения?

3. Какова функция аппаратных средств обработки информации.

4. Что такое машинная команда?

5. Перечислите типы машинных команд.

6. Какой тип машинных команд получил наибольшее распространение в ЭВМ?

7. Перечислите основные режимы работы ЭВМ?

8. В чем заключается различие между основными режимами работы ЭВМ?

9. Какова функция режима реального времени работы ЭВМ?

10. Какова функция трансляторов?

Раздел 3 Мультимедийные технологии и

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 9126 — | 7291 — или читать все.

91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно