Вопросы по теме 'mmu'

Дамп содержимого буфера TLB процессора x86
Можно ли получить список трансляций (с виртуальных страниц на физические) из TLB (резервный буфер трансляции, это специальный кеш в CPU). Я имею в виду современные x86 или x86_64; и я хочу сделать это программным способом, а не с помощью JTAG и...
2303 просмотров
schedule 16.07.2023

Как исправить ошибку сегментации?
Мне нужно прочитать интерфейс асинхронной внешней памяти ( AEMIF ), используя a TMS320DM368 во встроенной среде Linux на пользовательском оборудовании. На самом деле у меня еще нет аппаратного обеспечения, поэтому я тестирую код vala (ниже) на...
1252 просмотров
schedule 04.09.2022

Использование инструкции PLD
У меня есть некоторые сомнения относительно использования инструкции PLD в ARM cortex A8. Поскольку я использую инструкцию внутри цикла, существует возможность доступа к внешней памяти. Я сомневаюсь, что это вызовет ошибку сегментации или нет. Я...
960 просмотров
schedule 23.07.2023

linkscript - другой адрес ссылки и адрес загрузки
Я пишу игрушечную ОС для своего Raspberry Pi и пытаюсь настроить MMU. Я хочу разделить виртуальную память между 3G:1G, поэтому я думаю, что мой код должен быть связан по адресу 0xC0008000, а при выполнении загружаться по адресу 0x8000. (0x8000 — это...
1349 просмотров
schedule 01.05.2022

Таблица страниц в пространстве ядра Linux во время загрузки
Я не понимаю, как управлять таблицами страниц в ядре Linux? В пространстве ядра Linux до включения таблицы страниц. Ядро будет работать в виртуальной памяти с механизмом сопоставления 1-1. После включения таблицы страниц ядро ​​обращается к...
8824 просмотров
schedule 04.03.2022

Как написать тест, проверяющий блокировку и аннулирование TLB?
Я пытаюсь проверить программный MMU. В тестовом примере, который я получил, мне нужно проверить «блокировку и недействительность TLB». Я провел тест и проверил промах TLB, но не смог понять, что именно означают блокировка и аннулирование TLB.
504 просмотров
schedule 09.05.2022

Если pte страницы помечен битом _PAGE_USER равным 0, приведет ли это к сбою страницы или исключению general_protection?
Я пытаюсь понять защиту, обеспечиваемую архитектурой Intel x86 MMU. Я в основном смущен тем, когда MMU вызовет ошибку страницы (page_fault, int 14) и когда ЦП вызовет исключение (ошибка general_protection, int 13). Я знаю, что ЦП обычно вызывает...
244 просмотров
schedule 09.03.2023

Каковы недостатки обновления ARM TTBR (базовый регистр таблицы преобразования)?
Этот вопрос связан с этим: Почему при разветвлении процесса ядро ​​Linux копирует содержимое таблицы страниц ядра для каждого вновь созданного процесса? Я обнаружил, что ядро ​​​​Linux пытается избежать обновления TTBR при переключении между...
1835 просмотров
schedule 01.06.2022

Linux x86: где отображается адресное пространство реального режима в защищенном режиме ядра?
В Linux, работающем на платформе x86, где адресное пространство реального режима отображается в защищенном режиме ядра? В режиме ядра поток может напрямую обращаться к адресному пространству ядра. Ядро находится в нижних 8 МБ, таблица страниц...
1035 просмотров
schedule 10.01.2023

Может ли конкретный MMU работать с 32- и 64-битными виртуальными адресами?
Когда запускается новый процесс, операционная система инициализирует регистры MMU таблицей страниц процесса. При трансляции виртуального адреса MMU получает виртуальный адрес, передает его компараторам и получает физический адрес (пожалуйста,...
168 просмотров

Обработка ошибок трансляции MMU в потоке команд - что происходит с MMU?
Этот вопрос не относится к какой-либо реализации ЦП, но приветствуются ответы, связанные с ЦП. В настоящее время я использую ЦП с полной поддержкой MMU, и возникла простая проблема. Итак, представьте ситуацию, когда происходит простой промах...
764 просмотров
schedule 20.06.2022

Почему у ARM большие страницы размером 64 КБ?
В руководстве пользователя ARM720T упоминаются маленькие и большие страницы. Поскольку ARM 720T требует, чтобы запись таблицы страниц размером 64 КБ дублировалась 16 раз в таблице страниц, почему бы не разместить 16 записей малых страниц (4 КБ) для...
1380 просмотров
schedule 04.06.2023

Относительно MMU и файла компоновщика gcc по умолчанию для статически связанных программ
Это цитата из ARM ARM® Cortex™-A Series, Версия: 4.0, Руководство программиста, стр. 9-1. «MMU позволяет писать задачи или приложения таким образом, чтобы они не знали о карте физической памяти системы или о других программах, которые могут...
281 просмотров
schedule 22.03.2023

Как получить таблицу страниц процесса для MMU DMA в Linux
Как получить таблицу страниц процесса для MMU DMA в Linux? (Для приложения DPDK, пользовательского DMA, пользовательского MMU в FPGA, Zynq-7020/US+, Linux 4.6+, MMU DMA привязан к одному процессу) Task_struct процесса может быть получена модулем...
257 просмотров
schedule 10.12.2023

Почему я получил 1 в зарезервированном бите регистра IA32_MTRRCAP?
Я пытаюсь управлять памятью на xen-4.5.0 и что-то путаю с MTRR (Memory-type-range-register). Пока я пытался получить значение регистра IA32_MTRRCAP, я получил значение 1d0a. Однако в руководстве Intel, выпущенном в декабре 2016 года, все биты...
274 просмотров
schedule 21.12.2022

Размер таблиц страниц и доступные физические адреса
предположим, что у нас есть 4 ГиБ ОЗУ, и мы используем размер таблицы страниц 4 КБ с 32-битными адресами. После моих расчетов у меня получилось: мы можем адресовать не более 2 ^ 32 адресов; каждая таблица страниц имеет всего 2 ^ 20 записей;...
41 просмотров
schedule 05.11.2022

Применение типа носителя в системе виртуальной памяти
Предположим, я разрабатываю программное приложение, для правильной работы которого требуется передача памяти с высокой пропускной способностью и малой задержкой. Моя ОС использует адресацию виртуальной памяти. Есть ли способ принудительно...
69 просмотров
schedule 26.04.2022

Ошибка записи DMA при замене dma_alloc_coherent на dma_map_single
Я экспериментирую с потоком DMA с SMMU и без него на ARM. Для нашего пользовательского приложения требуется адрес ядра, физический адрес и адрес шины. С включенным SMMU мне удалось получить адрес ядра и адрес шины с помощью dma_alloc_coherent() ,...
351 просмотров
schedule 05.09.2022

Логическое адресное пространство больше, чем физическое и резервное хранилище вместе взятые
Когда виртуальное адресное пространство больше, чем физическая память, ОС может использовать подкачку для вытеснения страничных кадров (например, вытеснение LRU). ЦП генерирует ошибку страницы, когда страница, которая находится на диске, выгружается...
1359 просмотров
schedule 19.06.2022

Что такое арена ПММ в контексте ММУ в ядре (циркон/фуксия)
Я пытаюсь понять, как страница Zircon (ядро ОС Fuchsia) размещается в ARM64, поэтому я нашел mmu.cpp https://fuchsia.googlesource.com/fuchsia/+/4277d3203daa0fc5e4dd1625cf96891dd9882f44/zircon/kernel/arch/arm64/mmu.cc#328 Но это просто: if...
71 просмотров
schedule 11.08.2022