OSDev Wiki
Advertisement

Сопроцессор управления системой (CP15) управляет работой всех системных механизмов, таких, как кэш-память или виртуальная память. Некоторые механизмы имеют также другие средства управления; например виртуальная память управляется также с помощью таблиц переадресации.

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

CP15 содержит шестнадцать 32-разрядных регистров, описанных в отдельных подразделах. На самом деле, однако, каждый регистр может быть группой регистров, поэтому для обращения к конкретному регистру применяется двухкомпонентный адрес: номер группы и номер регистра в группе. В том случае, если в группе содержится всего один регистр, его внутригрупповой номер всегда будет равен нулю.

Основным, но не единственным средством доступа к ним являются инструкции MCR и MRC. В версиях до ARMv6 они являются привилегированными и не могут быть выполнены в режиме пользователя. В версиях, начиная с ARMv6, они могут использоваться и в пользовательском режиме, но для ограниченного круга задач, связанных с барьерами памяти.

Назначение регистров и их групп частично зависит от оснащённости процессора различными дополнительными средствами, например, устройством управления памятью или устройством защиты памяти.

  • Регистр управления системой SCTLR
  • Регистр базового адреса векторов VBAR
  • Регистр базового адреса векторов монитора MVBAR
  • Регистр конфигурации безопасности SCR
Advertisement