동적 재컴파일

Dynamic recompilation

컴퓨터 과학에서 동적 재컴파일은 일부 에뮬레이터가상 머신의 기능으로, 시스템이 실행 중에 프로그램의 일부를 재컴파일할 수 있습니다.실행 중에 컴파일함으로써 생성된 코드를 프로그램의 런타임 환경을 반영하도록 맞춤화할 수 있으며, 기존 정적 컴파일러가 이용할 수 없었던 정보를 이용함으로써 보다 효율적인 코드를 잠재적으로 생성할 수 있습니다.

사용하다

대부분의 동적 재컴파일러는 런타임에 아키텍처 간에 기계 코드를 변환하는 데 사용됩니다.이는 레거시 게임 플랫폼의 에뮬레이션에서 종종 필요한 작업입니다.다른 경우 시스템은 Java 또는 같은 휴대용 프로그램 표현을 실행하기 위한 적응 최적화 전략의 일부로서 동적 재컴파일을 사용할 수 있다.NET 공용 언어 런타임 바이트 코드.또한 풀스피드 디버거는 동적 재컴파일을 사용하여 대부분의 최적화 기술 및 동적 스레드 마이그레이션 등의 기타 기능에서 발생하는 공간 오버헤드를 줄입니다.

임무들

다이내믹 재컴파일러가 수행해야 하는 주요 작업은 다음과 같습니다.

  • 소스 플랫폼에서 기계 코드 읽기
  • 대상 플랫폼의 기계 코드를 내보내는 중

다이내믹 재컴파일러는 다음과 같은 보조 작업을 수행할 수도 있습니다.

  • 재컴파일된 코드의 캐시 관리
  • 사이클 카운트 레지스터가 있는 플랫폼의 경과 사이클 카운트 업데이트
  • 인터럽트 체크 관리
  • GPU 의 가상화된 지원 하드웨어에 대한 인터페이스 제공
  • 타깃 하드웨어에서 효율적으로 실행되도록 고급 코드 구조 최적화(아래 참조)

적용들

  • 대부분의 Java 가상 시스템은 동적 재컴파일 기능을 제공합니다.
  • x86에 탑재된 Mac OS X용 Apple의 Rosetta는 파워를 발휘합니다.x86 아키텍처에서 실행되는 PC 코드.
  • Power에서 680x0 코드를 실행하기 위해 기존 Mac OS에서 사용Mac 68K 에뮬레이터의 최신 버전PC 하드웨어
  • Python 전용 컴파일러 Psyco.
  • HP Dynamo 프로젝트는 투명한 바이너리 다이내믹 옵티마이저의 예입니다.[1]
  • Dynamo RIO는 ARM, x86-64IA-64(Itanium) 명령 [2][3]집합과 함께 작동하는 Dynamo의 오픈 소스 후계자입니다.
  • Vx32 가상 시스템은 동적 재컴파일을 사용하여 안전한 애플리케이션 플러그인을 위한 OS 독립적인 x86 아키텍처 샌드박스를 생성합니다.
  • PowerPC에서 x86 코드를 실행하기 위해 사용되는 Mac용 Microsoft Virtual PC.
  • FreeKEYB는 많은 조작성을 향상시킨 국제적인 DOS 키보드 및 콘솔 드라이버로 자체 수정 코드와 동적 데드 코드 제거를 사용하여 사용자 구성(일부 기능, 언어, 레이아웃)과 실제 런타임 환경(OS 버전, 로드 드라이버, 기본 하드웨어)에 따라 메모리 내 이미지를 최소화하였습니다.의존관계 자동 해결, 바이트 수준의 세분화에 관한 코드 섹션의 동적 재배치 및 재결합, 소스 코드로 제공되는 의미 정보, 어셈블리 중 특수 도구에 의해 생성된 재배치 정보 및 로드 [4]시 얻은 프로파일 정보에 기반하여 운영 스트링의 최적화를 수행합니다.
  • Xbox 360의 하위 호환성 기능(, 원래 Xbox용으로 작성된 게임 실행)은 동적 재컴파일을 사용하는 것으로 널리 알려져 있습니다.
  • Apple의 Rosetta 2 for Apple silicon은 x86-64 기반 프로세서를 위해 컴파일된 많은 애플리케이션을 Apple silicon에서 실행할 수 있도록 합니다.

에뮬레이터

「 」를 참조해 주세요.

레퍼런스

  1. ^ "HP Labs' technical report on Dynamo".
  2. ^ "Archived copy". Archived from the original on 2019-09-05. Retrieved 2016-04-12.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  3. ^ "DynamoRIO". GitHub. 2021-10-15.
  4. ^ Paul, Matthias R.; Frinke, Axel C. (1997-10-13) [first published 1991], FreeKEYB - Enhanced DOS keyboard and console driver (User Manual) (v6.5 ed.)
  5. ^ "PCSX 2".
  6. ^ petebernert. "GCemu". SourceForge.
  7. ^ "Gameboy Emulator for MSX The New Image". GEM. Retrieved 2014-01-12.
  8. ^ "DeSmuME v0.9.9".
  9. ^ Publicado por Carlos Ballesteros Velasco (2013-07-28). "Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525)". Pspemu.soywiz.com. Retrieved 2014-01-12.
  10. ^ Mupen64Plus
  11. ^ "SH2".
  12. ^ "PPSSPP - PPSSPP - PSP emulator for Android, Windows, Linux, iOS, MacOSX". ppsspp.org. Retrieved 2021-11-17.

외부 링크