Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Страничное разбиение памяти



Вначале рассмотрим различие между сегментацией памяти и ее страничным разделением:

1. Сегментация памяти -- более высокоуровневый способ, чем ее страничное разделение. Иначе говоря, сегментация памяти предшествует ее страничному разбиению.

2. В отличие от сегментов, страницы образуют так называемую "виртуальную" память. Основные особенности виртуальной памяти:

o для ее функционирования не обязательно присутствие всех cтраниц в физической памяти. Часть страниц может находиться на внешнем носителе, например, на жестком диске;

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

o благодаря необязательному присутствию всей виртуальной памяти в физической ее объем, как правило, в несколько раз больше.

3. Размер сегмента варьируется в большей степени. чем размер страниц.

4. Границы страниц всегда фиксированы, и они не могут перекрываться.

Так, размер страниц в микропроцессорах с архитектурой x86 фиксирован и равен 4 Кбайт.

Регистры управления страничным разбиением памяти в микропроцессорах i80386 и i486.

Для реализации страничного разбиения памяти в этих микропроцессорах используются регистры управления CR0, CR2 и CR3. При этом в регистре CR0 используется для этой цели бит 31 (PG), разрешающий (PG=1) или запрещающий страничное разбиение памяти.

В регистре CR3 биты 15-31 отводятся для указания физического адреса каталога страниц (таблиц страниц первого уровня) и называется базовым регистром каталога страниц PDBR (см. соответствующий раздел в выпуске "Память"). Кроме того, в нем содержатся биты, запрещающие кэширование страниц PCD и сквозной записи в страницу PWT.

Регистр CR2, доступный только для считывания, служит специально для обработчика особого случая 14 (страничное нарушение). Процессор загружает в него, а обработчик особого случая считывает из него последний 32-х битный линейный адрес, который вызвал страничное нарушение (неприсутствие страницы в физической памяти при обращении к ней).

Регистры управления страничным разбиением памяти в микропроцессорах серии MC680x0.

Уже в системе на микропроцессорах MC68020 стало возможным организовывать страничное разбиение памяти с помощью специализированных микросхем. А уже в системах на микропроцессоре MC68030 этот модуль был включен в сам микропроцессор. Вследствие этого в него были введены следующие регистры:

CRP -- содержит 64-х разрядный дескриптор базового адреса таблицы верхнего уровня (иначе говоря, адрес таблицы).

SRP -- содержит тот же дескриптор для режима супервизора (для некоторых конфигураций).

TCR -- регистр для задания конфигурации страничного разбиения.

TTR1, TTR0 -- регистры "прозрачной" трансляции, позволяющие выделять блоки памяти, выбираемые без страничной адресации.

MMUSR -- регистр "состояния" страничной памяти. В нем устанавливаются биты, позволяющие провести "диагностику" ошибок при работе со страничной памятью.

Вместо использования регистра MMUSR в MC68060 используются два других регистра:

PCR -- регистр конфигурации процессора;

BUSCR -- регистр конфигурации шины.

Конкретную реализацию и функционирование регистров MMU смотри ниже.

Регистры флагов

Помимо регистров данных и адреса в процессорах существуют специальные регистры, в которых отслеживается состояние процессора. в процессорах IBM 360/370 таким регистром служило слово состояния программы (Program Status Word, PSW). Однако с ростом сложности процессоров этих служебных регистров становилось все больше. Хотя в стартовых моделях микропроцессоров корпораций Intel и Motorola присутствовал только один служебный регистр (FLAGS у i8086/88 и SR у MC68000), уже в следующих моделях их число стало большим. Однако именно к этим, впервые появившемся регистрам происходит наиболее частое обращение у программистов. Дело в том, что они создают признаки результата, необходимые в операциях ветвления и циклов. Рассмотрим признаки по-подробнее.

 

Признаки результатов.

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

N -- признак знака. N=0 -- положительные результат выполнения команды с операндами со знаком, N=1 -- отрицательный результат этих операций. Признак знака совпадает с самым старшим (31, 15, 7) знаковым разрядом регистра.

Z -- признак нуля. Z=1 при нулевом результате операции, когда в результате арифметической или логической (но не загрузки или пересылки!) регистр обнулялся.

V -- признак переполнения. Принимает значение V = 1 в случае переполнения разрядной сетки при обработке операций со знаком (иными словами, когда в результате целочисленной операции получилось слишком большое (или слишком малое отрицательное) число, и произошел перенос единицы в самый старший, знаковый байт).

C -- признак переноса. Он принимает значение C=1 при возникновении переноса из самого старшего разряда обрабатываемых операндов. Он "почти" аналогичен признаку V, но происходит при операциях с беззнаковыми данными (типа беззнаковых целых чисел, кодов ASCII и т.д.).

Это -- основные признаки результатов. С ними связаны так называемые мнемокоды операций, применяемых для обозначения операций циклов и ветвлений. Эти мнемокоды приведены в таблице D.4.I.

Таблица D.4.I.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.