КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Линейная, сегментная и селекторная адресацияЦентральный процессор (ЦП) — процессор машинных инструкций, часть аппаратного обеспечения компьютера или программируемого логического контроллера, отвечающая за выполнение арифметических операций, заданных программами операционной системы, и координирующий работу всех устройств компьютера. Современные ЦП, выполняемые в виде отдельных микросхем (чипов), реализующих все особенности, присущие данного рода устройствам, называют микропроцессорами. С середины 1980-х последние практически вытеснили прочие виды ЦП, вследствие чего термин стал всё чаще и чаще восприниматься как обыкновенный синоним слова «микропроцессор». Тем не менее, это не так: центральные процессорные устройства некоторых суперкомпьютеров даже сегодня представляют собой сложные комплексы больших (БИС) и сверхбольших (СБИС) интегральных схем. С момента изобретения первого микропроцессора (1971 год) и по настоящее время фирмой Intel выпущено достаточное количество различных моделей и модификаций микропроцессоров. Каждый из них по-своему уникален и сыграл достаточно весомую роль в развитии микропроцессорной техники. Тем не менее, все микропроцессоры фирмы INTEL по алгоритму формирования физического адреса для обращения к памяти (режиму трансляции адресов) можно разделить на четыре класса: 1. С линейной адресацией. 2. С сегментной адресацией. 3. С селекторной адресацией. 4. Со страничной адресацией. К первому из них относят широко распространённые в 70-80-е года однокристальные микропроцессоры I8080 и I8085. В этих микропроцессорах для формирования 16 разрядного адреса используется 16 разрядный регистр или 8 разрядная регистровая пара. В результате содержимое этих регистров и является физическим адресом (Рис. 3).
Рис. 3. Линейная адресация.
Видно, что максимальное возможное пространство, которое может обслуживать компьютер на базе МП I8080 (I8085) равно 216 или 16 Кбайт. В микропроцессорах с сегментацией памяти, к которым относятся микропроцессоры, устанавливаемые в первых моделях IBM совместимых ПК I8088 и I8086, формирование физического адреса осуществляется с помощью двух 16 разрядных регистров: сегментного регистра и регистра смещения. Вычисление физического адреса осуществляется по следующей схеме: содержимое сегментного регистра сдвигалось влево на 4-ре бита с заполнением младших бит нулями и к нему добавлялось (суммировалось) 16 разрядное смещение (Рис. 4). Именно поэтому первый ПК фирмы IBM, который увидел свет в сентябре 1981 года, имел адресное пространство до 1 Мбайт (просто необыкновенно огромная емкость памяти для 1981 года). Однако отход от линейной адресации привёл к тому, что непрерывная область памяти для программ оказалась ограниченная 64 Кбайтами.
Рис. 4. Сегментная адресация.
Превышение этого размера неизбежно требовало модификации сегментного регистра. Кроме того, любое приложение (прикладная программа) имело доступ ко всей области адресного пространства и могло “разрушить” ядро ОС. По-видимому, данное обстоятельство и легло в основу для последующей аппаратной реализации защищенного режима следующего семейства 16 разрядных микропроцессоров I80286. При работе в защищённом режиме вычисление физического адреса осуществлялось посредством дескрипторных таблиц – специальных 32 разрядных регистров расположенных внутри микропроцессора. Правда в I80286 реально использовалось только 24 младших разряда этих регистров, совокупность которых составляла таблицу дескрипторов. При этом следует различать глобальные (GTD) и локальные (LTD) дескрипторные таблицы. Информация в дескрипторных таблицах формировалась исключительно операционной системой и прикладные программы не в состоянии были изменить их самостоятельно. Кроме того, был предусмотрен механизм защиты, с помощью которого ОС предотвращала доступ прикладных программ к системной памяти и памяти других приложений. В результате появилась возможность аппаратной реализации режима многозадачности с высокой степенью защиты. Появилось понятие “логического” адреса, т.е. совокупности содержимого сегментного регистра (16р) и регистра смещения (16р). Однако сегментный регистр получил название селектора. Селектор служил путеводителем по таблице дескриптора, содержащего базовый адрес. Кроме того, вместе с 24 разрядным базовым адресом дескриптор также содержит такие необходимые характеристики, как размер сегмента и поле доступа. Для получения 24 разрядного физического адреса базовый адрес из таблицы дескрипторов складывался с 16 разрядным смещением (Рис. 5).
Рис. 5. Селекторная адресация.
Рассматриваемая схема адресации памяти существенно лучше той, что использовалась в DOS. Однако и она не лишена недостатков. В первую очередь это связано с тем, что максимальный размер сегмента, по-прежнему остаётся 64 Кбайт. Тем не менее, данная схема адресации была использована в ранних версиях таких операционных систем, как IBM OS/2 и в стандартном режиме работы Windows. Защита ОС от некорректной работы приложений обеспечивалось наличием GDT и совокупности LTD. Создавая дескрипторные таблицы, ОС описывает в них размер оперативной памяти, и, если приложение выходит за его приделы, то выполнение программы останавливается. Кроме того, в системных сегментах памяти прикладные программы вообще не в состоянии внести какие либо изменение. Поскольку в системе может быть только одна GDT и несколько LDT, то при работе в многозадачном режиме каждому приложению выделяется своя LDT.
|