Method and apparatus for validating cross-architecture ISA emulation

   
   

A method and an apparatus allows complete and efficient verification of cross-architecture ISA emulation. A random verification framework runs concurrently on two different computer architectures. The framework operates without regard to existing native applications and relies instead on binary instructions in a native ISA. The framework determines emulation errors at a machine instruction level. A random code generator generates one or more sequences of native machine instructions and corresponding initial machine states in a pseudo-random fashion. The native instructions are generated from an entire set of the native ISA. The instructions and the state information are provided to initialize a native computer architecture. The same instructions and state information are provided using standard machine-to-machine languages, such as TCP/IP, for example, to a target computer architecture. A binary emulator then translates the native instructions so that the instructions may be executed on the target computer. Alternatively, the binary emulator may be embodied as a software routine operating on a simulator, which in turn operates on the native computer architecture. The final states of the native and the target computer architectures are gathered, and a verification engine compares the results. Any differences may indicate an emulation error or failure. The random verification framework may be run continuously to test emulation of the complete set of instructions from the native ISA after the testing continues for an infinite length of time.

Un método y un aparato permite la verificación completa y eficiente de la emulación de la cruz-arquitectura ISA. Un marco al azar de la verificación funciona concurrentemente en dos diversas arquitecturas de computadora. El marco funciona sin consideración alguna hacia usos nativos existentes y confía en lugar de otro en instrucciones binarias en un ISA nativo. El marco determina errores de la emulación en un nivel de la instrucción de máquina. Un generador de código al azar genera unas o más secuencias los estados iniciales de máquina de la máquina nativa de las instrucciones y el corresponder en una manera pseudo-random. Las instrucciones nativas se generan de un sistema entero del ISA nativo. Las instrucciones y la información del estado se proporcionan para inicializar una arquitectura de computadora nativa. Las mismas instrucciones e información del estado se proporcionan usando idiomas estándares de la ma'quina-a-ma'quina, tales como TCP/IP, por ejemplo, a una arquitectura de computadora de la blanco. Un emulador binario entonces traduce las instrucciones nativas para poder ejecutarse las instrucciones en la computadora de la blanco. Alternativomente, el emulador binario se puede incorporar como rutina del software que funciona encendido un simulador, que alternadamente funciona encendido la arquitectura de computadora nativa. Los estados finales del natural y las arquitecturas de computadora de la blanco se recolectan, y un motor de la verificación compara los resultados. Cualquier diferencia puede indicar un error o una falta de la emulación. El marco al azar de la verificación se puede funcionar continuamente para probar la emulación del sistema completo de instrucciones del ISA nativo después de que la prueba continúe para una longitud del tiempo infinita.

 
Web www.patentalert.com

< Loop optimization with mapping code on an architecture

< Restructuring of executable computer code and large data sets

> Method and apparatus for software features synchronization between software systems

> Multi-mode speaker operating from either digital or analog sources

~ 00165