waqur: (Default)
[personal profile] waqur
В архитектуре amd64 регистры общего назначения, кроме того, что в два раза шире, чем в i386, так ещё и самих регистров в два раза больше (16 против 8).

По идее, вполне достаточно для того, чтобы кросс-эмулятор хранил собственное состояние + состояние виртуальной машины i386 в одних только регистрах. Сюда, конечно, входят не только РОНы, но и теневые дескрипторы сегментных селекторов, CR0 и CR3 виртуальной машины.

Виртуальной памяти тоже "больше", и это значит, что эмуляцию виртуальной памяти можно сделать частично аппаратной, прочитав корневой каталог страниц при перезагрузке гостевого CR3 и отредактировав часть адресного пространства собственного процесса виртуальной машины (это примерно тысяча-две машинных инструкций - ерунда, и происходит только при переключении задач), так чтобы например 0x2`0000`0000 + 0x????`???? (как бы виртуальные адреса) ссылались на настоящие страницы в области 0x1`0000`0000 + 0x????`???? (как бы физические адреса). Доступ к каталогам страниц нижнего уровня, конечно, придётся по-прежнему виртуализировать: в каждой инструкции доступа к памяти - дополнительный уровень неявности, но зато только один, а не два - второй такой уровень неявности - переносится в железо. Конечно, для такого редактирования нужно влезть в ядро хостовой ОС, но это, в принципе, не так уж и сложно.

В общем, идея выглядит неплохо, только реализаций я что-то не вижу. QEMU устроен совсем по-другому, VmWare слишком хитёр, чтобы палить свои секреты. Наверное, есть какой-то подвох? Ну, кроме наличия Intel VT-d и AMD SVM, которые делают саму идею несколько устаревшей? Но ведь есть же iPad'ы, где нет такой аппаратной виртуализации, а тема кросс-эмуляции i386 довольно актуальна.

Date: 2011-07-01 03:56 am (UTC)
From: [identity profile] cd-riper.livejournal.com
причем тут amd64 до iPad и эмуляции? и с чего вдруг в iPad она актуальна? :)

Date: 2011-07-01 06:15 am (UTC)
From: [identity profile] waqur.livejournal.com
ты заголовок постинга читал?

или чукча не читатель, чукча писатель?

Date: 2011-07-01 06:19 am (UTC)
From: [identity profile] cd-riper.livejournal.com
не веришь -- не только заголовок, но и сам текст :)
да, в ARM много регистров, но почему эмуляция x86 для него актуальна я не могу понять :)

Date: 2011-07-01 06:31 am (UTC)
From: [identity profile] waqur.livejournal.com
потому что гладиолус, ёпт!

что, уже все погромисты загрузили XCode и перекомпилировали свой код под arm?

или борщ (bochs) и поделки на его базе (http://habrahabr.ru/blogs/apple/90520/) внезапно начали показывать чудеса производительности на arm'ах?

March 2024

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

На этой странице

Автор стиля

Развернуть

No cut tags
Page generated 2026-03-04 09:32 am
Powered by Dreamwidth Studios