Почему происходит потеря мощности процессора при эмуляции 32-битных программ на 64-битной системе?

Почему происходит потеря мощности процессора при эмуляции 32-битных программ на 64-битной системе?

Возможно, это глупый вопрос, но я не могу найти на него четкого ответа.

Хост-процессор=Эмулируемый ЦП

Pentium Pro 200 МГц = 286 6 МГц

Pentium II 350 МГц = 386SX 25 МГц

Pentium III 1,0 ГГц = 486 66 МГц

Pentium 4 3,0 ГГц = Pentium 133 МГц

Core 2 Duo 3,3 ГГц = Pentium II 300 МГц

Core i5 4xxx 4.0 ГГц = Pentium III 500 ГГц

в соответствии сэто здесь

решение1

Все зависит от используемого вами эмулятора. Но главное в том, что эмулятор использует программное обеспечение для выполнения работы оборудования, то есть он не запускает ассемблерный код непосредственно на оборудовании, он делает это программно.

Другими словами, это не просто запуск 32-битного кода на 64-битной системе (что на самом деле не имеет накладных расходов), это на самом деле программное обеспечение, притворяющееся оборудованием, которое абстрагировано от реального оборудования).

решение2

Эмуляция требует создания компьютера в программном обеспечении. Это включает в себя ЦП, память и все вспомогательное оборудование, необходимое для создания компьютера, максимально приближенного к реальному оборудованию.

Каждая инструкция ЦП проверяется и преобразуется в язык, используемый эмулируемым ЦП, перед запуском на хост-ЦП.не то же самое, что запуск кода непосредственно на центральном процессорепоскольку ЦП представляет собой программную конструкцию, полностью изолированную от центрального процессора.

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

Это не «просто» 64-битная машина, действующая как 32-битная машина, это 64-битная машина, на которой работает целый ЦП.в программном обеспеченииповерх настоящего процессора.

Альтернативой эмуляции является виртуализация. При виртуализации программное обеспечение эмулирует только оборудование и связанные интерфейсы вокруг ЦП, а не сам ЦП. Код запускается непосредственно на хост-ЦП, что приводит к почти родным скоростям за счет требования одинаковой архитектуры ЦП на хост-машине и гостевой машине.

Связанный контент