RISC-V привилегированный ISA классифицирует физическую память на три типа: основную память, ввод-вывод и пустую.
Пустые области также классифицируются как области ввода-вывода, но с атрибутами , указывающими, что обращения не поддерживаются.
В документе говорится, что вопреки основной памяти (которая всегда поддерживает R/W) область ввода-вывода и, следовательно, область «Пусто», может указывать, какой доступ поддерживается.
Области ввода-вывода могут указывать, какие комбинации для чтения, записи или выполнения доступа к которым поддерживаются ширины данных .
Каждый регион имеет один или несколько атрибутов физической памяти (PMA), которые указывали, что регион кэширован, поддерживает атомарные операции, упорядочен и размер данных поддерживается.
Устройство PMA из региона должны быть проверены на аппаратном уровне, и если любое ограничение нарушается капкан или прерывание сообщается:
ПМА проверяются на наличие какого-либо доступа к физической памяти, в том числе доступов, претерпевших преобразование виртуальной в физическую память. Чтобы помочь в отладке системы, мы настоятельно рекомендуем, чтобы, по возможности, процессоры RISC-V точно захватывали доступ к физической памяти, которые не выполняли проверки PMA. Точные прерывания PMA могут быть не всегда возможны, например, при анализе архитектуры устаревшей шины, которая использует отказы доступа как часть механизма обнаружения. В этом случае сообщения об ошибках от подчиненных устройств будут сообщаться как неточные прерывания по шине.
Спецификация не накладывает никаких PMA на пустых областях и не определяет значение РМЫ, он прямо заявляет, что
Как ПМО тесно связан с организацией данной физической платформы , многие детали по своей сути зависят от платформы, равно как и - средства, с помощью которых программное обеспечение может узнать значения PMA для платформы.
Что происходит, когда несуществующий адрес RAM доступ остается конкретной микроархитектуры определенной реализацией.
Обычно на шине памяти имеются подтягивающие/выдвижные резисторы. В таком случае чтение из несуществующего адреса приведет к тому, что слово из одних или нулей и запись будут проигнорированы.
В зависимости от аппаратного обеспечения результатом может быть любое, даже исключение, сигнализирующее о неудачной транзакции на шине.
Привилегированная спецификация RISC-V также определяет MMU, и этот случай также влияет на MMU. В этом случае необходимо четко указать, что должно произойти, иначе это может привести к проблемам безопасности. – fsasm
@fsasm Спасибо за указание привилегированных спецификаций ISA. Если я не понял вопрос, я не думаю, что это связано с MMU, поскольку физическая память доступна после всех операций MMU. Проверка спецификаций также, похоже, подтверждает мои утверждения: аппаратное обеспечение требуется для проверки PMA, но PMA являются специфичными для платформы, и таким образом можно сообщать о неудачной проверке PMA. Прерывание также четко указано как возможный результат доступа к Пустому региону. Я не вижу, какие проблемы безопасности могут возникнуть при доступе к пустым регионам. –
В случае несогласованных адресов процессору необходимо получить доступ к двум последовательным словам данных. Если это неправильно обрабатывается, программа может получить доступ к байтам, которые он не должен. Теперь представьте, что вы можете получить доступ к первым байтам таблицы страниц или другим критическим структурам данных. – fsasm