Как эмуляторы обращаются с переводом барьеров памяти (неявный и явный)?

Принятие входной и выходной архитектуры отличается, как эмуляторы эффективно переводят барьеры памяти? Я знаю, что в общих современных эмуляторах будет использовать МОНЕТУ В ПЯТЬ ЦЕНТОВ, чтобы перевести с источника ИЗА к целевому ISA, но знающий то, какой код достижим многократными счетчиками команд и которое не является, кажется довольно хитрым, и затем знающий, который инструкции безопасны переупорядочить (который, возможно, потребовал для МОНЕТЫ В ПЯТЬ ЦЕНТОВ, чтобы произвести что-то эффективное из-за различий ISA), и которые не являются, кажется чрезвычайно хитрым.

Вы, как даже гарантируют, не найдете явный барьер памяти в потоке команд, например, многие люди на x86 полагаются на выровненное слово, пишет, чтобы быть атомным. Эмуляторы консервативно предполагают, что каждый выровненное слово пишет, не может быть переупорядочен? Это походит на потенциально огромное верхнее, которое принуждает меня задаваться вопросом, есть ли какие-либо известные исследования для занятия этим видом проблемы.

5
добавлено
Просмотры: 1
de

Ответов нет

0