русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Организация памяти


Дата добавления: 2014-12-01; просмотров: 945; Нарушение авторских прав


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

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

Логический адрес называемый так же виртуальным, состоит из селектора (в реальном режиме просто адреса сегмента и смещения). Смещение формируется суммированием компонентов (база, индекс, смещение DISP) в эффективный адрес поскольку каждая задача может иметь до 16К селекторов, а смещение ограниченное размером сегмента может достигать 4Гбайт, логическое адресное пространство для каждой задачи может достигать 64Тбайт. Все это пространство в виртуальной памяти в принципе доступно программисту.

Блок сегментации транслирует логическое адресное пространство в 32 битное пространство линейных адресов. Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом. Базовый адрес сегмента в реальном режиме образуется уменьшением содержимого используемого сегментного регистра на 16. В защищенном режиме базовый адрес загружается из дескриптора хранящегося в таблице по селектору, загруженному в используемый сегментный регистр. Физический 32 битный адрес памяти образуется после преобразования линейного адреса блоком страничной переадресации. В простейшем случае (при отключения последнего) линейный адрес совпадает с физическим, т.е. присутствующем на внешней шине адреса микропроцессора. Включенный блок страничной переадресации осуществляет трансляцию линейного адреса в физический страницами по 4Кбайта. Этот блок может включаться только в защищенном режиме. Как и у 86 для обращения к памяти (совместно с внешней схемой) формируются линейные сигналы MEMWR# и MEMRD# для операции записи и чтения соответственно. Шина адреса в 32 бита позволяет адресовать 4Гбайта физической памяти, но в реальном режиме доступен только 1Мбайт начинающейся с младших адресов. В реальном режиме по адресации памяти обеспечивается совместимость с 86, размер сегмента фиксирован, как и 86 64Кбайтами, попытка использования эффективного адреса выходившего за границу сегмента при 32 битной адресации вызывает исключение типа 13. При 16 битной адресации при вычислении эффективного адреса возможный перенос в разряд А16 игнорируется, и сегмент сворачивается в кольцо, как и в 86. Средства контроля следят за переходом через границу сегмента во время обращения по приграничному адресу. При попытках адресации к словам старшие байты, которых выходят за границы сегмента или выполнения инструкций не изменяется в данном сегменте микропроцессор генерирует исключение 13. При попытке выполнения инструкций ESCAPE с операндом памяти не умещается в сегменте, генерируется исключение 9 (только для 386).



Система команд 32 разрядных микропроцессоров предусматривает 11 режимов адресации операндов, из них только 2 не имеют отношения к памяти:

  • когда операнд содержится в регистре микропроцессора,
  • когда операнд непосредственно содержится в самой команде.

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

  • смещение (DISP)-это 8, 16 или 32 разрядное число включенное в команду;
  • база-это содержание базового регистра обычно используется для указания на начало массива;
  • масштаб-это множитель 1,2,4 или 8 указанный в коде инструкций используется для указания размера элемента массива, доступен только в 32 битном режиме адресации; 4) индекс-это содержимое индексного регистра используется для выбора элемента массива.

Эффективный адрес вычисляется по формуле EA=B+I?S+Disp. Отдельные слагаемые в этой формуле могут отсутствовать.

Микропроцессор может использовать режимы 32 или 16 битной адресации. 16 разрядная адресация соответствует режимам 86 и 286 при этом в качестве компонентов адреса используются младшие 16 бит соответствующих регистров. 32 битная адресация использует расширенные 32 разрядные регистры и имеет дополнительные режимы использующие масштабированные индексы. В реальном режиме по умолчанию используется 16 битная адресация, но с помощью префикса изменения разрядности адреса для текущей инструкции можно переключиться в 32 битный режим, при этом появляются дополнительные возможности адресации (масштабированные, но вычисленное значение ЕА все равно не может преодолеть 64Кбайтный барьер, при такой попытке генерируется исключение 13). В защищенном режиме адресация по умолчанию определяется битом D дескриптора используемого кодового сегмента (D=0 16, D=1 32). Префикс разрядности адреса переключает разрядность для текущей инструкции на противоположную. При обращении к памяти использование сегментных регистров по умолчанию определяется типом обращения на время текущей инструкции, при необходимости для большинства типов обращений возможно использование альтернативного сегментного регистра на что указывает префикс замены сегмента перед кодом инструкции.



<== предыдущая лекция | следующая лекция ==>
Динамическое распределение памяти. Организация виртуальной памяти | Режимы работы памяти


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.49 сек.