Windows on Arm에서 x86 번역은 어떻게 작동하나요?

많은 Windows 애플리케이션이 x86용으로 작성되었지만 Arm CPU에서도 작동할 수 있습니다. 가능한 방법은 다음과 같습니다.

Windows는 항상 다음을 위해 만들어졌습니다. Intel 및 AMD의 x86 CPU하지만 10년 전 스마트폰용 Windows RT가 출시된 이후로 운영 체제는 서서히 사용자에게 친숙해졌습니다. 암 CPU. 현재 Windows 10과 Windows 11 모두 Arm CPU에 대한 완벽한 지원을 제공하지만 문제가 있습니다. 운영 체제 자체는 이러한 CPU에서 제대로 실행되지만 대부분의 응용 프로그램은 Arm 호환 버전을 출시하지 않았습니다. Windows는 Arm 칩에서 실행될 수 있지만 실제로 사용할 프로그램이 거의 없다는 것은 문제가 될 것입니다.

그러나 Microsoft는 다음과 같은 비법을 가지고 있습니다. Arm 기반 시스템에서 x86 앱을 실행하기 위한 에뮬레이터. 이는 2017년 번역기가 나온 이후 Windows on Arm에 추진력을 부여한 핵심 요소입니다. 에뮬레이터의 작동 방식과 Arm PC가 x86 칩용으로 제작된 소프트웨어를 실행하려는 경우 이를 사용해야 하는 이유는 다음과 같습니다.

Arm CPU용 x86 코드를 실시간으로 에뮬레이션

한 종류의 프로세서용으로 작성된 코드를 에뮬레이트하여 다른 종류의 프로세서에서 실행할 수 있다는 아이디어는 새로운 것이 아닙니다. 이것이 바로 게임 에뮬레이션이 작동하는 방식입니다. 이는 오래된 비디오 게임을 다양한 하드웨어를 갖춘 새로운 장치에서 실행하는 데 널리 사용됩니다. Arm PC에서 x86 앱을 실행하면 Windows는 앱 코드 블록을 가져와 Arm 칩에서 실행할 수 있는 것으로 컴파일합니다. 이 작업은 모두 실시간으로 수행되며 Windows는 번역된 모든 코드를 캐시해야 합니다. 즉, 계속해서 다시 번역할 필요가 없습니다.

불행하게도 하드웨어용으로 설계된 코드에 비해 에뮬레이트된 앱의 성능은 더 나빠질 것입니다. 테스트 데이터가 매우 드물기 때문에 Windows에서 에뮬레이트된 코드를 실행하면 성능이 얼마나 저하되는지 말하기는 어렵지만 비교를 위해

Apple의 Rosetta 2 번역기 (x86 앱을 Arm으로 변환하기도 함)은 약 20% 손실됩니다. 그 숫자를 줄이는 것이 가능하지만 일반적으로 에뮬레이션과 변환으로 인해 무슨 일이 있어도 성능이 저하됩니다.

x86 애플리케이션이 에뮬레이션 없이 Arm에서 실행될 수 없는 이유

소프트웨어를 x86, Arm 및 기타 종류의 CPU용으로 특별히 작성해야 하는 이유가 궁금할 것입니다. 그것은 아래로 온다 건축의 차이, 이 경우에는 ISA(명령어 집합 아키텍처)에 대해 이야기하고 있습니다. 이는 프로세서의 가장 기본적인 설계이며 곱셈과 같은 간단한 작업이나 AVX와 같은 복잡한 작업을 기본적으로 수행할 수 있는지 여부를 결정합니다. ISA를 변경하면 소프트웨어가 하드웨어와 상호 작용하는 가장 기본적인 방식(CPU가 읽는 기본 1과 0까지)에 영향을 줍니다.

x86은 역사적으로 Windows가 실행될 수 있는 유일한 CPU였던 Intel 및 AMD CPU의 ISA입니다. 한편 Arm은 주로 스마트폰에 사용되었으며 PC 소프트웨어와 휴대폰 소프트웨어 간의 중복은 거의 없습니다. 당연히 대부분의 프로그램은 x86이나 Arm용으로 만들어졌는데, Windows on Arm의 경우에는 이것이 큰 문제였습니다. 번역은 2020년에 나오지 않았고, Windows RT(Arm을 지원하는 첫 번째 Windows 버전)는 2020년에 나왔습니다. 2012.

Windows가 Arm을 지원하기 시작한 지 약 10년이 지났는데 기본 앱은 모두 어디에 있습니까? 가장 큰 문제는 특히 개발자가 이를 잘 수행하려는 경우 다른 ISA용 소프트웨어를 다시 작성하려면 시간과 전문 지식이 필요하다는 것입니다. 한 ISA에서 다른 ISA로 앱을 이식하는 데 적절한 주의를 기울이지 않는 개발자는 결함과 버그를 초래할 수 있습니다. 이에 대한 좋은 예는 Windows on Arm용 Photoshop입니다. Windows on Arm에서 기본적으로 실행됩니다. 아직 Lenovo Thinkpad X13s에 대한 리뷰에서는, OpenCL 및 OpenGL이 지원되지 않는다는 몇 가지 오류와 경고가 많이 발생했습니다. Windows에서 Arm을 사용하는 사용자 기반이 훨씬 적기 때문에 개발자가 관심을 가질 만한 인센티브가 적습니다.

따라서 개발자가 기본 소프트웨어를 만드는 데 리소스를 투자할 수 없거나 투자하지 않으려는 경우 대안은 에뮬레이션입니다. Windows on Arm용 x86 앱 번역이 완벽하지는 않지만 전혀 작동한다는 점은 인상적이며 때로는 성능이 저하되는 경우 앱이 예상대로 실행된다는 점을 알면 가치가 있습니다. 적어도 Windows on Arm이 개발자가 더 이상 무시할 수 없는 지점에 도달할 때까지 번역 및 에뮬레이션은 하드웨어-소프트웨어 생태계에 꼭 필요한 향상을 제공합니다.