Блок защиты памяти (MPU) - это аппаратный блок компьютера, обеспечивающий защиту памяти. Обычно он реализуется как часть центрального процессора (ЦП). MPU - это урезанная версия блока управления памятью (MMU), обеспечивающая только поддержку защиты памяти. Обычно это реализуется в процессорах с низким энергопотреблением, которые требуют только защиты памяти и не нуждаются в полноценной функции модуля управления памятью, такой как управление виртуальной памятью.
MPU позволяет привилегированному программному обеспечению определять области памяти и назначать права доступа к памяти и атрибуты памяти для каждой из них. В зависимости от реализации процессора количество поддерживаемых областей памяти будет варьироваться. MPU на процессорах ARMv8-M поддерживает до 16 регионов. Атрибуты памяти определяют порядок и поведение слияния этих регионов, а также атрибуты кэширования и буферизации. Атрибуты кэша могут использоваться внутренними кэшами, если они доступны, и могут быть экспортированы для использования системными кэшами.
MPU отслеживает транзакции, включая выборку инструкций и доступ к данным от процессора, что может вызвать исключение сбоя при обнаружении нарушения доступа. Основная цель защиты памяти - предотвратить доступ процесса к памяти, которая ему не была выделена. Это предотвращает влияние ошибки или вредоносного ПО в процессе на другие процессы или саму операционную систему.