Домен в архитектуре руки означает, что

Когда я отлаживаю MMU в Cortex-A9 MPCore, я всегда вижу регистр контроля доступа к домену, но что означает домен? до 16 доменов? Кто-нибудь может дать мне ссылку, чтобы объяснить это?

1 ответ

Решение

TL;DR DACR не только уменьшает путь кода переключения контекста, но также может ускорить выполнение после того, как произойдет переключение контекста.


Есть несколько ссылок, которые объясняют особенности регистра контроля доступа к домену или DACR. Например , права доступа к памяти ARM и домены. Однако эта страница и многие другие не объясняют, почему вам может понадобиться эта функция; особенно для людей, использующих встроенные приложения.

Предыдущей функцией ARM (архитектура ARM V5) был PID. Причина этой функции такая же, как DACR и домены. Для чего используется MMU?

  • Разделение привилегий - или предоставление некоторым объектам (задачам, потокам и т. Д.) Доступа к памяти и другим ограниченным (только для чтения) или отсутствующим.
  • Перераспределение памяти - виртуальный перевод в физический позволяет разреженной / разделенной памяти стать непрерывной.
  • Пейджинг - обработчик ошибок может поменять память при доступе по менее привилегированному коду.
  • Поведение доступа - MMU может указывать, является ли память кешируемой, для чтения / записи, должна быть буферизована и т. Д.

DACRPID) относятся только к первому (разделение привилегий). При переключении контекста ОС должна управлять этим разделением. В большинстве MMU (исторически в ARM) есть только две привилегии: user и super. Чтобы выполнить несколько задач, код супер MMU должен изменить таблицу MMU. Это сложно, так как ARM имеет TLB и кэш, оба из которых имеют виртуальные адреса и зависят от таблицы MMU.

DACRPID) позволяют изменениям отображения MMU с одной записью регистра. Кроме того, TLB и кэш также имеют информацию о доменеизмененный адрес для PID). Это означает, что эти записи не нужно сбрасывать (и заново заполнять) при переключении контекста. Домены выгодны для PID, поскольку могут существовать несколько профилей доступа. Например, код совместно используемой библиотеки может оставаться доступным при переключении контекста, пока основной двоичный файл задачи / потока отключен.

Сравните работу с DACR и обновление таблиц MMU.

  1. Измените по крайней мере таблицы страниц L1, чтобы отобразить правильный профиль.
  2. очистить / сделать недействительной таблицу L1 и другие в обновлении таблицы страниц (см. ниже).
  3. сделать недействительными записи TLB (скорее всего, все для простоты).
  4. лишить законной силы записи кэша в таблице MMU; вероятно, все снова.

Это против изменения одного регистра. Более того, вы, вероятно, лишите законной силы весь кеш и TLB. С помощью DACR и краткого переключения контекста код / ​​данные могут оставаться в записях таблицы кэша и таблицы MMU в TLB. Например, система с заданием проверки электронной почты и проигрывателем фильмов.

Декодирование аудио / видео требует значительных ресурсов процессора и памяти. Иногда почтовый клиент запрашивает информацию у сетевого сервера. Обычно там ничего нет. Во время этого краткого перехода может потребоваться только небольшой (1-4k) проверочный код электронной почты; одна запись TLB. Кэш-память обычно составляет 32 КБ +, поэтому большая часть аудио / видео-кэша и записей TLB могут оставаться действительными.

Таким образом, DACR не только уменьшает путь кода переключения контекста, но также может ускорить выполнение после переключения контекста.

Другие вопросы по тегам