EXECUTING PROGRAMS FOR A FIRST COMPUTER ARCHITECTURE ON A COMPUTER OF A SECOND ARCHITECTURE

A computer able to execute programs coded in either of two binary instruction sets. Memory is divided into regions, and each region is marked to indicate which of the two instruction sets are to be used to execute instructions fetched from that region. The native operating system manages contexts so...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: YATES, JOHN, S., JR, ADLER, MICHAEL, C, HOHENSEE, PAUL, H, VAN DYKE, KORBIN, S, SAUND, GURJEET, SINGH, JURICH, DALE, R, RAMESH, T., R, PATKAR, NITEEN, ARAVIND, REESE, DAVID, L, NIJHAWAN, SANDEEP, STORCH, MATTHEW, F, PURCELL, STEPHEN, C, CAMPBELL, PAUL, THUSOO, SHALESH
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:A computer able to execute programs coded in either of two binary instruction sets. Memory is divided into regions, and each region is marked to indicate which of the two instruction sets are to be used to execute instructions fetched from that region. The native operating system manages contexts so that the operating system for the guest instruction set architecture can context switch, even if the process being context-switched out is a process in the native instruction set. Code in the guest instruction set is profiled to determine which portions are most profitably translated into the native instruction set. Circuitry recognizes when execution of a binary in the guest instruction set has reached a flow point for which a translated native equivalent exists. Concurrency controls protect the translated native code against modification by self-modifying code or DMA writes. La présente invention concerne un ordinateur capable d'exécuter des programmes codés dans l'un de deux ensembles d'instructions binaires. La mémoire est divisée en régions, et chaque région est marqué afin d'indiquer lequel des deux ensembles d'instructions est à utiliser pour l'exécution des instructions appelées provenant de cette région. Le système d'exploitation natif gère les contextes de manière à ce qu'il soit possible à ce système de changer de contexte pour l'architecture de l'ensemble d'instructions invité, même si le processus après changement de contexte est un processus en ensemble d'instructions natif. Le code, dans l'ensemble d'instructions invité, est passé en revue afin de déterminer quelles parties sont avantageusement traduites en ensemble d'instructions natif. Les circuits reconnaissent lorsque l'exécution d'un binaire dans l'ensemble d'instructions invité a atteint un point de débit pour lequel un équivalent natif traduit existe. Des commandes d'exécution simultanée protègent le code natif traduit contre une modification à l'aide de code auto-modifiant ou d'écritures d'adresse directe de mémoire (DMA).