A method and apparatus for providing a stateless multiplatform instruction
set architecture (ISA) for use in a computer system having a processor and
memory storing a control program for implementing the invention. The
system is used to statelessly execute instructions authored to correspond
to a variety of different ISA's on a unitary platform. The ISA of the
invention uses a very long instruction word (VLIW) architecture with
64-bit instructions, of which several high-order bits are reserved for an
ISA identifier tag. When the processor receives an instruction for
execution, it inspects the instruction to determine from the ISA
identifier tag to which original, native ISA the instruction corresponds.
If the corresponding ISA is the native VLIW ISA for the processor, then
the instruction is routed to the instruction dispatch unit of the
processor, and thence to at least one functional unit for execution. If
the corresponding ISA is not the native VLIW ISA, then the instruction is
routed to one of a plurality of dynamic decode units (DDU's), each DDU
being controlled by a translation routine that translates the instructions
from a non-native ISA to the native VLIW ISA. The translated instructions
are then sent to the instruction dispatch unit, and on to the appropriate
functional unit(s). Any instruction that includes unused bits, such as 64
bit instructions with free higher-order bits, can accommodate the ISA
identifier tag by simply using the unused bits. Instructions that do not
include unused bits, such as 32-bit instructions for non-VLIW
architectures (e.g. the ISA's for SPARC, PowerPC or x86), are appended
with additional bits to bring the total to 64 bits, several of which are
reserved for the ISA tag. The number of bits reserved for the ISA tag
determines the number of non-native ISA's that are recognized by the
system; e.g., three bits allows for the native ISA plus seven non-native
ISA's to be recognized by the system. Incoming instructions corresponding
to a non-native ISA for which no dynamic decode unit is available can be
executed by conventional software emulation. Entire programs written for
non-native ISA's (using, e.g., 32-bit instructions) can be converted to
the format for the native VLIW ISA by appending, at the instruction
loading stage or in a separate process independent of execution, the
additional bits necessary both to fill out the instruction word lengths
and to include the ISA identifier tag bits.
Une méthode et un appareil pour fournir une architecture apatride d'ensemble d'instruction de multiplatform (ISA) pour l'usage dans un système informatique ayant un processeur et une mémoire stockant un programme de gestion pour mettre en application l'invention. Le système est employé pour exécuter statelessly des instructions écrites pour correspondre à une variété d'ISA différent sur une plateforme unitaire. L'ISA de l'invention emploie une architecture très longue du mot d'instruction (VLIW) avec les instructions 64-bit, desquelles plusieurs peu d'ordre élevé est réservé pour une étiquette de marque d'ISA. Quand le processeur reçoit une instruction pour l'exécution, elle inspecte l'instruction de déterminer à partir de l'étiquette de marque d'ISA à laquelle ISA original et indigène l'instruction correspond. Si l'ISA correspondant est le VLIW indigène ISA pour le processeur, alors l'instruction est conduite à l'unité d'expédition d'instruction du processeur, et de là au moins à une unité fonctionnelle pour l'exécution. Si l'ISA correspondant n'est pas le VLIW indigène ISA, alors l'instruction est conduite à une d'une pluralité de dynamique décodent des unités (DDU), chaque DDU commandé par une routine de traduction qui traduit les instructions d'un ISA d'origine étrangère au VLIW indigène ISA. Les instructions traduites sont alors envoyées à l'unité d'expédition d'instruction, et dessus à l'unit(s) fonctionnel approprié. N'importe quelle instruction qui inclut le peu inutilisé, tel que 64 instructions de bit avec le peu évolué libre, peut adapter à l'étiquette de marque d'ISA en employant simplement le peu inutilisé. Des instructions qui n'incluent pas le peu inutilisé, tel que des instructions de 32 bits pour les architectures de non-VLIW (par exemple l'ISA pour SPARC, PowerPC ou x86), sont apposées avec le peu additionnel pour apporter le total à 64 bits, dont plusieurs sont réservés pour l'étiquette d'ISA. Le nombre de peu réservé pour l'étiquette d'ISA détermine le nombre d'ISA d'origine étrangère qui sont identifiés par le système ; par exemple, trois bits tient compte de l'ISA indigène plus sept ISA d'origine étrangère pour être identifiés par le système. Les instructions entrantes correspondant à un ISA d'origine étrangère pour lequel aucun dynamique ne décode unité est disponible peuvent être exécutées par émulation conventionnelle de logiciel. Des programmes entiers écrits pour ISA d'origine étrangère (employant, par exemple, des instructions de 32 bits) peuvent être convertis en format pour le VLIW indigène ISA en apposant, à l'étape de chargement d'instruction ou dans un indépendant séparé de processus d'exécution, le peu additionnel nécessaire pour compléter les longueurs de mot d'instruction et pour inclure le peu d'étiquette de marque d'ISA.