Vous êtes sur la page 1sur 4

Emulador

Emulador

En informtica, un emulador es un software que permite ejecutar programas o videojuegosen una plataforma (sea una arquitectura de hardware o un sistema operativo) diferente de aquella para la cual fueron escritos originalmente. A diferencia de un simulador, que slo trata de reproducir el comportamiento del programa, un emulador trata de modelar de forma precisa el dispositivo de manera que este funcione como si estuviese siendo usado en el aparato original. Un uso popular de los emuladores es el de imitar la experiencia de los videojuegos demquinas recreativas o videoconsolas en computadoras personales, o el poder ser jugados en otras videoconsolas. La emulacin de videojuegos de sistemas antiguos (abandonware) en las modernas computadoras personales y videoconsolas de hoy da resulta generalmente ms cmoda y prctico que en los dispositivos originales. Sin embargo, puede ser requerido a los creadores de emuladores una licencia de software para escribir programas originales que dupliquen la funcionabilidad de la rom y BIOS del hardware original, lo que comnmente se conoce como high-level

emulation oemulacin de alto nivel. En sentido terico, la tesis de Church-Turing implica que cualquier ambiente funcional puede ser emulado dentro de cualquier otro. En la prctica, esto puede resultar realmente difcil, particularmente cuando el comportamiento exacto del sistema emulado no est documentado y debe ser deducido mediante ingeniera inversa. Tampoco se habla en la tesis sobre las diferencias en sincronizacin; si el emulador no acta tan rpidamente como el hardware original, el software de emulacin va a ir ms lento que si fuese el hardware norma de una parte de la base.

Estructura
La mayora de los emuladores solo emulan una determinada configuracin arquitectura de hardware - si el sistema de explotacin ( osistema operativo) tambin se requiere para emular cierto programa entonces ha de ser emulado tambin. Tanto el sistema de explotacin como el programa deben ser interpretados por el emulador, como si estuviese ejecutndose en el equipo original. Aparte de la interpretacin del lenguaje de la mquina emulada, es preciso emular el resto del equipo, como los dispositivos de entrada y salida, de forma virtual: si escribir en una regin

Tercer parcial

Pgina 1

Emulador
especfica de la memoria debe influir en el contenido en pantalla, por ejemplo, esto tambin debe ser emulado. En vez de una emulacin completa del equipo, una compatibilidad superficial puede ser suficiente. Esto traduce las llamadas del sistema emulado a llamadas del sistema anfitrin. Los desarrolladores de programas para mquinas con sistemas computarizados y consolas de videojuego comnmente utilizan emuladores especialmente exactos llamados simuladores antes de ejecutarlos en el equipo real. Esto permite que el programa pueda ser producido y probado antes de que la versin final del equipo para el cual se est desarrollando sea producida en grandes cantidades, de esta forma puede ser probado sin tener que copiar el programa en el equipo, de modo que puedan ser eliminados errores en un nivel bajo sin tener los efectos colaterales de un depurador. Tpicamente, un emulador se divide en mdulos que corresponden de forma precisa a los subsistemas del equipo emulado. Lo ms comn, es que un emulador este compuesto por los siguientes mdulos:


Un emulador de la unidad central de procesamiento. Un mdulo para el subsistema de memoria. Varios emuladores para los dispositivos de entrada y salida.

Lo ms comn es que los buses no sean emulados, por razones de simplicidad y rendimiento, y para que los perifricos virtuales se comuniquen directamente con la UCP y los subsistemas de memoria.

Simulador de CPU
El simulador de la unidad central de procesamiento (CPU) es a menudo la parte ms compleja de un emulador. Muchos emuladores son escritos utilizando simuladores de CPU "preempaquetados", para as poder realizar una emulacin fiel y eficiente de una mquina especfica. El simulador de CPU ms simple sera un intrprete informtico, que sigue el flujo de ejecucin del cdigo de programacin emulado y, por cada instruccin de cdigo de la mquina emulada, ejecuta en el procesador en que se carga, instrucciones semnticamente equivalentes a las originales. Esto es posible asignando una variable a cada registro y flag de la CPU emulada. La lgica de la CPU simulada puede ser ms o menos traducida directamente a algoritmos de software, creando una reimplementacin del software que bsicamente refleja la implementacin original del hardware. El ejemplo siguiente ilustra el modo en que la simulacin de CPU por un intrprete. En este caso, las interrupciones se revisan despus de la ejecucin de cada instruccin, aunque este comportamiento no es usual en los emuladores en la realidad, por razones de rendimiento. void Execute(void) {

Tercer parcial

Pgina 2

Emulador
if(Interrupt!=INT_NONE) { SuperUser=TRUE; WriteMemory(++StackPointer, ProgramCounter); ProgramCounter=InterruptPointer; } switch(ReadMemory(ProgramCounter++)) { // Handling of every valid instruction default: Interrupt=INT_ILLEGAL; } } Los intrpretes son muy populares en el caso de los simuladores de CPU, ya que son ms sencillos de implementar que otras soluciones alternativas de mejor rendimiento, y su velocidad es ms que adecuada para emular computadares de hace ms de una dcada en mquinas modernas. Aun as, la penalizacin de velocidad inherente en la interpretacin puede ser un problema al emular computadores cuya velocidad de procesador est en el mismo orden de magnitud que la mquina husped. Hasta no hace tantos aos, la emulacin en tales situaciones era considerada impracticable. Lo que permite el rompimiento de esta restriccin son las tcnicas avanzadas de recompilacin dinmica. Una translacin simple a priori del cdigo del programa emulado al cdigo que corre en la arquitectura original es usualmente imposible por varias razones:

el cdigo puede ser auto modificable no existe una forma que distinga de forma confiable los segmentos de informacin (que no deben ser traducidos) de los segmentos de texto (segmentos de cdigo)

no existe forma de comunicarse con el sistema operativo emulado para que el emulador reconozca los nuevos cdigos cargados (por ejemplo del disco)

Varias formas de recompilacin dinmica, incluyendo la popular tcnica de compilacin en tiempo de ejecucin (compilacin JIT), trata de bordear estos temas esperando hasta que el proceso de control de flujo se mueva hasta donde esta la parte donde est localizado el cdigo sin traducir, y es solo entonces {"en tiempo de ejecucin") cuando los bloques traducidos del cdigo al cdigo anfitrin pueden ser ejecutados. El cdigo traducido se mantiene en el cdigo cach, y el cdigo original no se pierde ni es afectado; de esta forma, incluso los segmentos de data pueden ser trasladados por el recompilador, resultando solo en un gasto de tiempo de traslado.

Tercer parcial

Pgina 3

Emulador
Dispositivos de entrada y salida
La mayora de los emuladores, como dicho anteriormente, no emulan el sistema principal bus; cada dispositivo de entrada y salida es tratado a menudo como un caso especial, y no existe una interfaz constante para los perifricos virtuales. Esto puede resultar en una ventaja en el funcionamiento, proveyendo que cada mdulo de entrada y salida pueda ser adaptado a las caractersticas del dispositivo emulado; diseos basados en un estndar, entradas y salidas unificadas por medio de API pueden sin embargo proveer modelos ms simples, y adems tienen la ventaja adicional de permitir de forma "automtica" la utilizacin de serviciosplugins para proveer dispositivos virtuales de terceros en el emulador. Las entradas y salidas unificadas por medio de API no necesariamente reflejan la estructura del bus del hardware real: el diseo del bus est limitado por varios parmetros elctricos y la necesidad del manejo de programacin paralela que la mayora de las veces puede ser ignorada en la implementacin del software. An los emuladores que tratan cada dispositivo como un caso especial poseen una infraestructura bsica en comn para ello:

manejando interruptores, por medio de procedimientos que fijen banderas legibles por el simulador del CPU siempre que un interruptor sea levantado, permitiendo al CPU virtual "convertir los interruptores (virtuales)".

escribiendo y leyendo de la memoria fsica, por medio de dos procedimientos similares mientras este lidia con la memoria lgica (contrario a este ltimo, el anterior puede comnmente ser echado a un lado, y en su lugar se emplean las referencias directas al arreglo de memoria)

La Memoria RAM no poden ser iguals que intel ode amd

Sistema de ROM

Los emuladores arrancan imgenes ROM, o sea el contenido de los cartuchos, disquetes o cintas que se usaban con los sistemas antiguos. Fsicamente en las PC las ROM son archivos binarios que se pueden cargar en la memoria. Es decir, el emulador es un programa que hace las funciones de una consola, por ejemplo la Game Boy Advance o una PDA, y la ROM es un archivo que hace de cartucho, CD-ROM, o cinta, por ejemplo Mario Bros..

Tercer parcial

Pgina 4

Vous aimerez peut-être aussi

  • ELSA
    ELSA
    Document2 pages
    ELSA
    nayirube_68
    Pas encore d'évaluation
  • Emu Lad or
    Emu Lad or
    Document4 pages
    Emu Lad or
    nayirube_68
    Pas encore d'évaluation
  • Hibrido
    Hibrido
    Document5 pages
    Hibrido
    nayirube_68
    Pas encore d'évaluation
  • ELSA
    ELSA
    Document2 pages
    ELSA
    nayirube_68
    Pas encore d'évaluation
  • Hibrido
    Hibrido
    Document5 pages
    Hibrido
    nayirube_68
    Pas encore d'évaluation
  • Diseño Del Procesador
    Diseño Del Procesador
    Document1 page
    Diseño Del Procesador
    nayirube_68
    Pas encore d'évaluation
  • Acii
    Acii
    Document6 pages
    Acii
    nayirube_68
    Pas encore d'évaluation
  • Acii
    Acii
    Document6 pages
    Acii
    nayirube_68
    Pas encore d'évaluation
  • ELSA
    ELSA
    Document2 pages
    ELSA
    nayirube_68
    Pas encore d'évaluation
  • Acii
    Acii
    Document6 pages
    Acii
    nayirube_68
    Pas encore d'évaluation
  • Acii
    Acii
    Document6 pages
    Acii
    nayirube_68
    Pas encore d'évaluation
  • Tarea Uno
    Tarea Uno
    Document1 page
    Tarea Uno
    nayirube_68
    Pas encore d'évaluation
  • Acii
    Acii
    Document6 pages
    Acii
    nayirube_68
    Pas encore d'évaluation
  • Acii
    Acii
    Document6 pages
    Acii
    nayirube_68
    Pas encore d'évaluation
  • Instrucciones Aritméticas para 8086/8088
    Instrucciones Aritméticas para 8086/8088
    Document9 pages
    Instrucciones Aritméticas para 8086/8088
    nayirube_68
    Pas encore d'évaluation
  • Acii
    Acii
    Document6 pages
    Acii
    nayirube_68
    Pas encore d'évaluation
  • Efecto Mariposa
    Efecto Mariposa
    Document12 pages
    Efecto Mariposa
    nayirube_68
    Pas encore d'évaluation