
어리석은 질문일지도 모르지만 명확한 답을 찾을 수 없습니다.
호스트 CPU=에뮬레이트된 CPU
펜티엄 프로 200MHz = 286 6MHz
펜티엄 II 350MHz = 386SX 25MHz
펜티엄 III 1.0GHz = 486 66MHz
펜티엄 4 3.0GHz = 펜티엄 133MHz
코어 2 듀오 3.3GHz = 펜티엄 II 300MHz
코어 i5 4xxx 4.0GHz = 펜티엄 III 500GHz
~에 따르면여기
답변1
이는 모두 사용 중인 에뮬레이터에 따라 다릅니다. 그러나 요점은 에뮬레이터가 하드웨어 작업을 수행하기 위해 소프트웨어를 사용한다는 것입니다. 즉, 어셈블리 코드를 하드웨어에서 직접 실행하는 것이 아니라 소프트웨어에서 수행한다는 것입니다.
즉, 단순히 64비트 시스템에서 32비트 코드를 실행하는 것이 아니라(실제로 오버헤드가 없음) 실제로 소프트웨어가 하드웨어인 것처럼 가장하여 실제 하드웨어에서 추상화됩니다.
답변2
에뮬레이션을 위해서는 소프트웨어로 컴퓨터를 만들어야 합니다. 여기에는 가능한 한 실제 하드웨어에 가까운 컴퓨터를 만드는 데 필요한 CPU, 메모리 및 모든 보조 하드웨어가 포함됩니다.
모든 CPU 명령어는 호스트 CPU에서 실행되기 전에 검사를 거쳐 에뮬레이트된 CPU에서 사용되는 언어로 변환됩니다. 그것은호스트 CPU에서 직접 코드를 실행하는 것과는 다릅니다.CPU는 호스트 CPU와 완전히 분리된 소프트웨어 구조이기 때문입니다.
이러한 격리를 통해 에뮬레이트된 컴퓨터는 완전히 다른 CPU 유형을 사용하더라도 다른 시스템으로 이동하는 데 적합합니다. 왜냐하면 에뮬레이트된 컴퓨터는 호스트 CPU와 독립적이고 에뮬레이션 소프트웨어에만 의존하기 때문입니다. 호스트 CPU와 에뮬레이트된 시스템은 매우 다른 CPU를 가질 수 있습니다.
이것은 "단순히" 32비트 시스템처럼 작동하는 64비트 시스템이 아니라 전체 CPU를 실행하는 64비트 시스템입니다.소프트웨어에서실제 CPU 위에.
에뮬레이션의 대안은 가상화입니다. 가상화에서 소프트웨어는 CPU 자체가 아닌 CPU 주변의 하드웨어 및 관련 인터페이스만 에뮬레이트합니다. 코드는 호스트 CPU에서 직접 실행되어 호스트 및 게스트 시스템에 동일한 CPU 아키텍처가 필요하지만 기본 속도에 가깝습니다.