OSDev Wiki
Advertisement

Общие сведения

Архитектура системы защиты памяти (PMSA, Protected Memory System Architecture), основанная на использовании устройства защиты памяти (MPU, Memory Protected Unit), предназначена для реализации простой схемы защиты памяти, не связанной с организацией виртуальной памяти. Главное упрощение PMSA по сравнению с VMSA состоит в отсутствии таблиц переадресации, а также в отсутствии преобразования виртуальных адресов в физические (они всегда равны друг другу).

Для всех вариантов PMSA общими являются следующие особенности:

  • адресное пространство памяти делится на области защиты (protection regions), с каждой из которых связывается набор характеристик: базовый адрес, размер, атрибуты памяти, права доступа;
  • если один и тот же адрес относится к нескольким областям защиты, используются характеристики, заданные для области с наибольшим номером;
  • попытка обращения по адресу, не относящемуся ни к одной из областей, вызывает отказ;
  • поддерживаются как отдельные адресные пространства кода и данных (Гарвардская архитектура), так и единое адресное пространство (архитектура фон Неймана);
  • все используемые адреса являются физическими.

Отличия PMSAv6

При появлении 6-й версии архитектуры ARM была существенно пересмотрена и архитектура системы защиты памяти, причём, в отличие от VMSA, она потеряла программную совместимость с PMSA более ранних версий. Основными изменениями стали:

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