Как мы выяснили в другом треде, штеуд есть зонд. А что если нам сделать свой штеуд? Теоретически 130нм позволяет это сделать как по цене, так и по производительности.
Дело в том, что мну давно уже пилит свой процессор. В том числе я продумал но не до конца систему полубинарной трансляции. Почему полубинарной?
Основная проблема бинарной трансляции х86 например в арм - это несоответсвие адресов команд х86 их аналогам в армокоде. Ввести непосредственно х86 мы не можем ибо патенты. Скотинки предлагают ввести в теоретический процессор систему команд эквивалентную или расширяющую таковую но в других кодах. Этим мы обходим патент.
Физическая реализация такова: адресное пространство программы делится на несколько зон. Одна зона соответствует «обычному» режиму работы. Для х86-32 это 0-4гб. Для х86-64 это канонические адреса.
Еще одна зона используется для адресации транслированного кода. Эта зона лежит в области неканонических адресов х86-64, отличается рядом инвертированных старших битов от соответсвующих канонических адресов, а младшие биты сдвинуты влево на единицу. Таким образом, каждому байту машинного кода х86 соответствуют два байта оттранслированного кода. Процессор в режиме эмуляции х86 обращается не к фактическим адресам A которые получает фактически от программы, а к адресам (A*2) XOR K где K - это маска тех самых инвертированных старших битов. Если этим адресам соответствует страница, производится выборка байт команд из неё. Если нет - происходит исключение.
При записи в адреса, которым соответствуют страницы команд, параллельно производятся теневые записи в фактические страницы транслированных команд. Можно записывать какие-то двухбайтовые константы которые декодер будет воспринимать как признак ошибки декодирования.
Из плюсов: у нас получается своя, непатентованная система команд. При этом система бинарной трансляции именно что простая. 1-в-1 или близко к тому.
Из минусов: я пока не нашел как закодировать все х86 команды, тем более х86-64. Но тут накладывается фишка чисто моей архитектуры, которую я хотел сунуть под низ.
Какие фундаментальные проблемы видны кому-либо на этом этапе?