A microarchitecture for dynamically expanding and executing microcode routines is provided. According to one aspect of the present invention, a mechanism expands a generic instruction into specific instructions at run-time, which may be employed to execute a computer program. These generic instructions use a special class of micro-ops (uops), called "super-uops" (or "Suops)" which are expanded into a variable number of regular (i.e., simple) uops. In one embodiment, the computer of the present invention utilizes a two-level decode scheme. The first-level decoder converts macro-instructions into either simple uops or one or more Suops, which represent a sequence of one or more simple uops. A second-level decoder is responsible for converting the Suops into the appropriate uop sequence based upon an indicator associated with the macro-instruction. An execution unit within the computer then executes the flow of uops generated by the first and second decoding units. The two-level decoding scheme of the present invention is advantageous in many ways. First, common microcode sequences, such as a packed add and a scalar add, can be collapsed into a single Suop. Depending upon how many uops are collapsed and how common the sequence is, the overall savings in silicon die area and microcode size can be very significant. By using a single Suop to represent both flows, and inserting the appropriate flow dynamically at decode time (based on the indicator associated with the macro-instruction), the total number of microcode flows which is written and stored within the computer is reduced considerably.

Un microarchitecture para dinámicamente ampliar y ejecutar rutinas del microcódigo se proporciona. Según un aspecto de la actual invención, un mecanismo amplía una instrucción genérica en instrucciones específicas en el tiempo de pasada, que se puede emplear para ejecutar un programa de computadora. Estas instrucciones genéricas utilizan una clase especial de micro-ops (los uops), llamada "estupenda-uops" (o de "Suops)" que se amplíen en un número variable (es decir, simple) de uops regulares. En una encarnación, la computadora de la actual invención utiliza un de dos niveles descifra esquema. El decodificador de primer nivel convierte macroinstrucciones en o uops simples o un o más Suops, que representa una secuencia de unos o más uops simples. Un decodificador del segundo-nivel es responsable de convertir el Suops en la secuencia apropiada del uop basada sobre un indicador asociado a la macroinstrucción. Una unidad de la ejecución dentro de la computadora entonces ejecuta el flujo de los uops generados por las primeras y segundas unidades el descifrar. El esquema de dos niveles el descifrar de la actual invención es ventajoso de muchas maneras. El primeros, secuencias comunes del microcódigo, tales como embalado agregan y un escalar agrega, se puede derrumbar en un solo Suop. Dependiendo de se derrumban cuántos uops y cómo es el campo común la secuencia, los ahorros totales en área del dado del silicio y el tamaño del microcódigo puede ser muy significativo. Usando un solo Suop para representar flujos, e insertando el flujo apropiado en descifre dinámicamente el tiempo (basado en el indicador asociado a la macroinstrucción), el número total de los flujos del microcódigo se escribe que y almacenado dentro de la computadora se reduce considerablemente.

 
Web www.patentalert.com

< Interactive employee training system and method

< Binary program conversion apparatus, binary program conversion method and program recording medium

> Method and apparatus for dynamically translating program instructions to microcode instructions

> Storage apparatus system and method of data backup

~ 00075