OSDev http://osdev.su/ |
|
переключение страничных режимов http://osdev.su/viewtopic.php?f=6&t=857 |
Страница 1 из 1 |
Автор: | dixie [ 23 янв 2014, 12:27 ] |
Заголовок сообщения: | переключение страничных режимов |
Вопрос забавный - никто не пробовал переключаться - между 32битным и PAE страничными режимами "на лету"? Дока гордо сообщает, что "так можно"... Ну вот поставил я бит в CR4 - процессор радостно ломанулся перечитывать CR3 по правилам PAE - т.е. PDPTE оттуда читать - и что? Тройное исключение и ребут? Вопрос, в общем, академический - делал для полуоси драйвер рамдиска в памяти выше 4Gb, но методом "заката солнца вручную" - т.е. cli->выключение 32битных страниц->включение PAE->копирование->тож самое в обратном порядке... И, в общем, оно даже не медленно, но что именно интел имел в виду этим своим "можно"? |
Автор: | 418ImATeapot [ 23 янв 2014, 15:36 ] |
Заголовок сообщения: | Re: переключение страничных режимов |
dixie писал(а): Вопрос забавный - никто не пробовал переключаться - между 32битным и PAE страничными режимами "на лету"? Дока гордо сообщает, что "так можно"... Ну вот поставил я бит в CR4 - процессор радостно ломанулся перечитывать CR3 по правилам PAE - т.е. PDPTE оттуда читать - и что? Тройное исключение и ребут? А смысл? |
Автор: | dixie [ 23 янв 2014, 21:33 ] |
Заголовок сообщения: | Re: переключение страничных режимов |
Что смысл? Переключаться напрямую? Ну так, может, упростить процесс где-ньть можно... Из страничного-то выйти в работающей 32-битной системе - уже процесс интересный... |
Автор: | Himik [ 23 янв 2014, 23:32 ] |
Заголовок сообщения: | Re: переключение страничных режимов |
dixie писал(а): Ну вот поставил я бит в CR4 - процессор радостно ломанулся перечитывать CR3 по правилам PAE - т.е. PDPTE оттуда читать - и что? Тройное исключение и ребут? Наверно подразумевается, что перед установкой бита CR4.PAE ты таблицу PD32 перезапишешь таблицей PDPTE (предварительно сохранив копию PD32 в другом месте). Надо было привести абзац текста, чтобы было понятней о чём там написано. |
Автор: | dixie [ 25 янв 2014, 17:55 ] |
Заголовок сообщения: | Re: переключение страничных режимов |
Угу Цитата: Software can make transitions between 32-bit paging and PAE paging by changing the value of CR4.PAE with MOV to CR4. и всё.Ну, т.е. - записать в первые 8 входов page dir - данные PDPTE и переключать CR4? Это ж переключение надо за пределами 32 мегов держать - на всякий пожарный.... Кривовато оно как-то, мягко говоря ... |
Автор: | phantom-84 [ 26 янв 2014, 10:52 ] |
Заголовок сообщения: | Re: переключение страничных режимов |
...за пределами 32 мег ВАП. С учетом того, что ядро располагается в верхней части ВАП, это нормально. После того, как я отключаю тождественное преобразование в начале ВАП, user space все равно превращается в одну большую "hole" - делай там все, что хочешь (почти). |
Автор: | dixie [ 26 янв 2014, 12:48 ] |
Заголовок сообщения: | Re: переключение страничных режимов |
Ну да, сам драйвер в первые 32 метра линейных не попадёт... Т.е., возможно, в принципе. Но не факт, конечно, что errat-у какую-ньть не огребешь на таком редком методе |
Автор: | phantom-84 [ 26 янв 2014, 17:51 ] |
Заголовок сообщения: | Re: переключение страничных режимов |
Ну, мне пока не приходило в голову использовать такой способ переключения. Для этого в момент переключения должны присутствовать таблицы страниц сразу двух типов dixie писал(а): и всё. Кстати, не все. Я нашел в руководстве схему, подтверждающую возможность такого переключения (в имеющейся у меня версии она находится в п. 4.1.2 Paging-Mode Enabling).
|
Автор: | dixie [ 27 янв 2014, 12:02 ] |
Заголовок сообщения: | Re: переключение страничных режимов |
phantom-84 писал(а): Ну, мне пока не приходило в голову использовать такой способ переключения. Для этого в момент переключения должны присутствовать таблицы страниц сразу двух типов Ну тут задача довольно специфичная и помогает то, что драйвер диска получает буфер для данных в виде списка физ.адресов... Поэтому в PAE намаплено линейно, большими страницами....Цитата: Я нашел в руководстве схему, подтверждающую возможность такого переключения (в имеющейся у меня версии она находится в п. 4.1.2 Paging-Mode Enabling Ага, это из этого же раздела цитата...
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |