Un emulador duplica (proporciona una emulación de) las funciones de un sistema usar un diverso sistema, de modo que el segundo sistema se comporte como (y aparece ser) el primer sistema. Este foco en la reproducción exacta del comportamiento externo está en contraste con algunas otras formas de la simulación de computadora, que pueden referirse a un modelo abstracto del sistema que es simulado.

Emuladores en de informática

La emulación refiere a la capacidad de un programa de computadora o el dispositivo electrónico al imita otro programa o dispositivo. Diseñan a muchas impresoras, por ejemplo, para emular a las impresoras de LaserJet de Hewlett-Packard porque tanto el software se escribe para las impresoras del HP. Emulando a una impresora del HP, una impresora puede trabajar con cualquier software escrito para una impresora verdadera del HP. " de la emulación; tricks" el software corriente en la creencia de que un dispositivo es realmente un poco de otro dispositivo.

Un emulador del hardware del es un emulador que toma la forma de un dispositivo de hardware. Los ejemplos incluyen emuladores de la impresora dentro de la ROM de la impresora, y el FPGA - emuladores basados del hardware

En un sentido teórico, la tesis de la Iglesia-Turing implica que cualquier condiciones se puede emular dentro de cualquier otra. Sin embargo, en la práctica, puede ser absolutamente difícil, particularmente cuando el comportamiento exacto del sistema que se emulará no se documenta y tiene que ser deducido con la ingeniería reversa . También no dice nada sobre apremios de la sincronización; si el emulador no se realiza tan rápidamente como el hardware original, el software emulado puede funcionar mucho más lentamente que tendría en el hardware original, accionando posiblemente tiempo interrumpe para alterar funcionamiento.

Emulación en la preservación

La emulación es una estrategia en la preservación para los objetos digitales y en la obsolescencia de lucha . La emulación se centra en la reconstrucción del ambiente de computadora original y puede tener desperdiciadora de tiempo y difícil, pero valor debido a su capacidad de mantener una conexión más cercana a la autenticidad del objeto digital.

Nuevo arte de los medios

Debido a su uso primario de formatos digitales, el nuevo arte de los medios confía pesadamente en la emulación como estrategia de la preservación. Los artistas tales como Cory Arcangel se especializan en la resurrección de tecnologías obsoletas en sus ilustraciones y reconocen la importancia de un proceso descentralizado y deinstitutionalized para la preservación de la cultura digital.

En muchos casos, la meta de la emulación en nuevo arte de los medios es preservar un medio digital para poderlo ser ahorrado indefinidamente y reproducirse sin error, de modo que no haya confianza en el hardware que envejece y llega a ser obsoleto. La paradoja es que la emulación y el emulador tienen que ser hechos para trabajar en las computadoras futuras.

Tipos de emuladores

La mayoría de los emuladores apenas emulan a una arquitectura de hardware - si el soporte lógico inalterable o el software del sistema operativo se requiere para el software deseado, debe ser proporcionado también (y puede sí mismo ser emulado). El OS y el software entonces serán interpretado al lado del emulador, algo que siendo funcionado por el hardware nativo. Aparte de este intérprete para la terminología de la informática emulada, un poco de otro hardware (tal como entrada o dispositivos de salida) se debe proporcionar en forma virtual también; por ejemplo, si la escritura a una posición de memoria específica influenciara la pantalla, después éste necesitaría ser emulado.

Mientras que podría la emulación, si estuvo llevada el extremo, ir abajo al nivel atómico, basando su salida en una simulación del trazado de circuito real de una fuente de energía virtual, esto sería una solución alto inusual. Los emuladores paran típicamente en una simulación de las especificaciones documentadas del hardware y de la lógica digital. La suficiente emulación de algunas plataformas de hardware requiere exactitud extrema, abajo al nivel de ciclos de reloj individuales, de características indocumentadas, de elementos análogos imprevisibles, y de insectos de la puesta en práctica. Éste es particularmente el caso con los ordenadores personales clásicos tales como el comodoro 64, cuyo depende software a menudo encendido alto - los trucos programados bajos sofisticados inventados por los programadores y el Demoscene del juego.

En cambio, algunas otras plataformas han tenido muy poco uso de la dirección directa del hardware. En estos casos, una capa simple de la compatibilidad puede ser suficiente. Esto traduce las llamadas de sistema para el sistema emulado a las llamadas de sistema para el sistema huesped.

Los reveladores del software para los sistemas encajados o el diseño de las consolas del juego video su software en especialmente emuladores exactos llamaron a menudo los simuladores antes de intentarlo en el hardware verdadero. Esto es para poder ser producido y probar el software antes de que el hardware final exista en granes cantidades, para poderlo probar sin tardar la época de copiar el programa que se eliminará errores en un bajo sin la introducción de los efectos secundarios de una depuración . En muchos casos, el simulador es producido realmente por la compañía que proporciona el hardware, que aumenta teóricamente su exactitud.

Estructura de un emulador

Típicamente, un emulador se divide en los módulos que corresponden áspero a los subsistemas de la computadora emulada. Lo más a menudo posible, un emulador será compuesto de los módulos siguientes:
un emulador de la CPU o simulador de la CPU (los dos términos son sobre todo permutables en este caso)
un módulo del subsistema de la memoria
varios emuladores de los dispositivos de entrada-salida

Los autobuses no se emulan a menudo, por razones de funcionamiento o simplicidad, y los periférico virtuales comunican directo con la CPU o el subsistema de la memoria.

Subsistema de la memoria

Es posible que la emulación del subsistema de la memoria sea reducida simplemente a un arsenal de elementos cada uno clasificado como una palabra emulada; sin embargo, este modelo cae muy rápidamente tan pronto como ninguna localización en la memoria lógica de la computadora no empareje la memoria física .

Éste es claramente el caso siempre que el hardware emulado permita memoria avanzada gerencia (en este caso, la lógica MMU se puede encajar en el emulador de la memoria, hacer un módulo sus los propios, o integrar a veces en el simulador de la CPU).

Incluso si la computadora emulada no ofrece un MMU, aunque, hay generalmente otros factores que rompen la equivalencia entre la memoria lógica y física: mucho (si no el de la oferta de la mayoría) de la arquitectura Memoria-trazó la entrada-salida ; incluso los que no tienen casi invariable un bloque de memoria lógica trazaron a ROM, así que a ella significan que memoria-poner en orden el módulo debe ser desechado si se va la naturaleza inalterable de la ROM a ser emulada. Las características tales como conmutación de banco o segmentación pueden también complicar la emulación de la memoria.

Consecuentemente, la mayoría de los emuladores ejecutan por lo menos dos procedimientos para escribir a y leer en memoria lógica, y es deber de estos procedimientos para trazar cada acceso a la localización correcta del objeto correcto.

En un Base-límite que trata el sistema de donde está memoria de acceso único en la lectura la memoria del 0 de la dirección tratar el ROMSIZE, mientras que el resto es RAM, algo a lo largo de la línea de los procedimientos siguientes sería típico: ¡ lang=" del WriteMemory vacío (dirección de palabra, valor de la palabra) { palabra RealAddress; RealAddress=Address+BaseRegister; si (RealAddressROMSIZE) Memory=Value; } { RaiseInterrupt (INT_SEGFAULT); } }

lang=" del palabra ReadMemory (dirección de palabra) { palabra RealAddress; RealAddress=Address+BaseRegister; si (RealAddressmemoria de vuelta; } { RaiseInterrupt (INT_SEGFAULT); FALTA DE INFORMACIÓN de vuelta; } }

Simulador de la CPU

El simulador de la CPU es a menudo la parte más complicada de un emulador. Muchos emuladores se escriben usar " pre-packaged" ¡Simulators< de la CPU! --- (véase los acoplamientos de Emulator#External) --->, para concentrar en la emulación buena y eficiente de una máquina específica.

La forma más simple de un simulador de la CPU es un intérprete, que sigue el flujo de la ejecución del código emulado del programa y, porque cada instrucción del código automático encontrada, ejecuta las operaciones en el procesador de anfitrión que son semántico equivalente a las instrucciones originales.

Esto es hecha posible asignando a un variable a cada registro y a la bandera de la CPU simulada. La lógica de la CPU simulada puede entonces ser traducido más o menos directo a los algoritmos del software, creando una re-puesta en práctica del software que refleja básicamente la puesta en práctica de hardware original.

El ejemplo siguiente ilustra cómo la simulación de la CPU se puede lograr por un intérprete. En este caso, las interrupciones están comprobar-para antes de cada instrucción ejecutada, aunque este comportamiento es raro en los emuladores verdaderos por razones de funcionamiento. lang=" del el vacío ejecuta (el vacío) { ¡si (interrupción! =INT_NONE) { SuperUser=TRUE; WriteMemory (++StackPointer, ProgramCounter); ProgramCounter=InterruptPointer; } interruptor (ReadMemory (ProgramCounter++)) { /* * Dirección de cada instrucción válida * va aquí… * defecto: Interrupt=INT_ILLEGAL; } } Los intérpretes son muy populares como simuladores de computadora, pues son mucho más simples ejecutar que soluciones alternativas tiempo-más eficientes, y su velocidad es más que adecuada para emular a las computadoras más que áspero hace de una década en las máquinas modernas.

Sin embargo, la pena de la velocidad inherente en la interpretación puede ser un problema al emular a las computadoras cuya velocidad de procesador está en la misma orden de la magnitud que el ordenador central. Hasta no hace muchos anos, la emulación en tales situaciones era considerada totalmente impráctica por muchos.

Qué permitió el romperse con esta restricción eran los avances en técnicas dinámicas de la recompilación . La traducción a priori del simple de código emulado del programa en el código runnable en la arquitectura del anfitrión es generalmente imposible debido a varias razones:
el código puede ser modificado mientras que en el RAM, incluso si es modificado solamente por el sistema operativo emulado al cargar el código (por ejemplo de disco)
puede no haber una manera de distinguir confiablemente los datos (que no deben ser traducidos) del código ejecutable .

Las varias formas de recompilación dinámica, incluyendo la técnica popular del recopilador apenas a tiempo (JIT), intentan evitar estos problemas esperando hasta que el flujo de control del procesador salte en una localización que contiene código sin traducir, y solamente entonces (" apenas en time") traduce un bloque del código al código del anfitrión que puede ser ejecutado. El código traducido se mantiene un escondrijo del código del, y el código original no se pierde ni se afecta; esta manera, incluso segmentos de datos puede (sin setido) ser traducida por el recompiler, dando por resultado no más que una pérdida de tiempo de la traducción.

Los emuladores de la CPU son populares entre algunos gamers. Algunos juegos de ordenador se diseñan para computadoras más lentas y no trabajarán correctamente en computadoras más nuevas, más rápidas. Algunos emuladores de la CPU, tales como Mo'Slo, pueden retrasar la CPU, o un proceso de un programa, permitiendo que trabaje correctamente.

Algunos más viejos juegos no fueron diseñados con la velocidad de computadoras más rápidas en mente. Un juego diseñado para una PC de 30 megaciclos con un contador de tiempo llano de 300 segundos del juego pudo solamente dar al jugador 30 segundos en una PC de 300 megaciclos. Otros programas, tales como algunos programas del DOS, pueden incluso no funcionar en computadoras más rápidas.

Entrada-salida

La mayoría de los emuladores no hacen, según lo mencionado anterior, emular al autobús de sistema principal ; cada dispositivo de entrada-salida se trata así a menudo como caso especial, y no se proporciona ningún interfaz constante para los periférico virtuales.

Esto puede dar lugar a una ventaja del funcionamiento, puesto que cada módulo de la entrada-salida se puede adaptar a las características del dispositivo emulado; los diseños basados en un estándar, el unificado API de la entrada-salida pueden sin embargo rivalizar tales modelos más simples, si está bien thought-out, y tienen la ventaja adicional del " automatically" proporcionando un servicio enchufable con el cual los dispositivos virtuales de tercera persona se pueden utilizar dentro del emulador.

Una entrada-salida unificada API puede no reflejar necesario la estructura del autobús verdadero del hardware: ¡el diseño del autobús es limitado por varios apremios eléctricos y una necesidad de la concurrencia del hardware gerencia que puede ser no hecha caso sobre todo en una puesta en práctica del software.

Incluso en los emuladores que tratan cada dispositivo como caso especial, hay generalmente una infraestructura básica común para:
el de manejo interrumpe por medio de un procedimiento que fije banderas legibles por el simulador de la CPU siempre que se levante una interrupción, permitiendo la CPU virtual al " encuesta para el interrupts" (virtual);
escribiendo a y leyendo en memoria física, por medio de dos procedimientos similares a los que está que se ocupan de memoria lógica (aunque, contrariamente a estes 3ultimo, el anterior se puede dejar a menudo hacia fuera, y referencias directas a la memoria ponen en orden se emplee en lugar de otro)

Controversia legal el del de

considera el emulador de la consola del artículo - cuestiones legales

Ver también


Esta lista de los emuladores incluye sistemas, las CPU, y las computadoras del juego video.
La simulación de computadora es el campo más grande de modelar fenómeno del mundo real (e. la física y economía) usar las computadoras.
Para reescribir un programa de computadora en un diverso lenguaje de programación, ver el el virar de hacia el lado de babor.
Órdenes de puerta Field-programmable (FPGAs)
Otras aplicaciones del " del término; emulator" en el campo de informática: Emulador de la consola
Emulador del servidor
Terminal emulator
Traducción: Traducción binaria
emulador de la antena
Emulador In-circuit (HIELO)
Máquina virtual

.

  • Zenithic
  • Frederick J. Stephens
    Random links:Condado de Copenhague | Manuel Chaves González | Complejo de la prisión estatal de Arizona - Safford | Juan Lescroart | hinchazón Neutrón-inducida

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">