MXPA98003108A - Tecnica de envio de instruccion de almacenamiento con probabilidad de envio aumentada - Google Patents

Tecnica de envio de instruccion de almacenamiento con probabilidad de envio aumentada

Info

Publication number
MXPA98003108A
MXPA98003108A MXPA/A/1998/003108A MX9803108A MXPA98003108A MX PA98003108 A MXPA98003108 A MX PA98003108A MX 9803108 A MX9803108 A MX 9803108A MX PA98003108 A MXPA98003108 A MX PA98003108A
Authority
MX
Mexico
Prior art keywords
instruction
storage
sending
instructions
floating
Prior art date
Application number
MXPA/A/1998/003108A
Other languages
English (en)
Other versions
MX9803108A (es
Inventor
Hans Olson Christopher
Scott Brooks Jeffrey
Original Assignee
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/845,093 external-priority patent/US5878242A/en
Application filed by International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of MX9803108A publication Critical patent/MX9803108A/es
Publication of MXPA98003108A publication Critical patent/MXPA98003108A/es

Links

Abstract

La presente invención se refiere a un sistema y método para enviar una primera instrucción en un procesador. El procesador comprende una unidad de ejecución y proporciona una pluralidad de instrucciones. La primera instrucción depende de la ejecución de una segunda instrucción pero no requiere de otra manera ejecución por la unidad de ejecución. El método primero busca la segunda instrucción. El método entonces envía la primera instrucción mediante la segunda instrucción. Un aspecto del método y sistema de envía una instrucción de almacenamiento en un procesador. La instrucción de almacenamiento tiene una dirección fuente. El procesador proporciona una pluralidad de instrucciones. El método busca una instrucción de punto flotante que se proporciona antes de la instrucción de almacenamiento. La instrucción de punto flotante tiene una dirección objeto. El método entonces determina si la dirección fuente es igual a la dirección objeto. El método envía la instrucción de almacenamiento mediante la instrucción de punto flotante si la dirección fuente es igual a la dirección objeto.

Description

TÉCNICA DE ENVÍO DE INSTRUCCIÓN DE ALMACENAMIENTO CON PROBABILIDAD DE ENVÍO AUMENTADA DESCRIPCIÓN ANTECEDENTES Y CAMPO DE LA INVENCIÓN La presente invención se refiere a un método y a un sistema para enviar instrucciones en una unidad de ejecución de punto flotante y más particularmente a un método y a un sistema para enviar instrucciones donde la probabilidad de que la instrucción será enviada se incremente en forma importante, y los tiempos de retardo se reducen como resultado del envió. Durante el desarrollo continuo de sistemas de computadoras rápidas y más poderosas, se ha utilizado una innovación de microprocesador importante, conocido como un procesador de computadora de establecimiento de instrucción reducida (RISC) . Mayores avances en el campo de los procesadores RISC han conducido al desarrollo de los procesadores superescalares . Los procesadores superescalares como su nombre lo implica, efectúan funciones no encontradas en forma común en los microprocesadores escalares tradicionales. Incluida en estás funciones está la habilidad para ejecutar instrucciones fuera-de-orden con respecto al orden del programa. Aunque las instrucciones ocurren fuera-de-orden, los resultados de las ejecuciones parecen haber ocurrido en el orden del programa, de manera que se mantiene la coherencia de datos. En un procesador superescalar, ciertas instrucciones pueden depender de la ejecución de otra instrucción por una unidad, pero no de otra manera requiere ejecución por parte de la unidad de ejecución. Por ejemplo, una instrucción de almacenamiento de punto flotante frecuentemente depende de una instrucción aritmética de punto flotante previa para proporcionar los datos a ser almacenados . Una vez que se obtienen los datos provenientes de la instrucción aritmética de punto flotante previa, la instrucción de almacenamiento por si misma no requiere que la unidad aritmética de punto flotante sea ejecutada. En vez de esto, el registro fuente para la instrucción de almacenamiento es igual que el registro objeto para la instrucción aritmética de punto flotante. Debido a que la instrucción de almacenamiento depende de la instrucción aritmética, se mantiene la instrucción de almacenamiento hasta que la instrucción aritmética se ha completado. Esto crea una demora, o burbuja, en la tubería de ejecución de punto flotante. Esta demora puede ser una demora multi-ciclos . A fin de resolver de este problema y aumentar la velocidad de la operación de punto flotante, algunos sistemas convencionales envían la instrucción de almacenamiento utilizando la instrucción aritmética. Típicamente, esto se lleva a cabo identificando la instrucción de almacenamiento con una etiqueta única. La etiqueta se añade entonces a la instrucción aritmética sobre que la cual depende la instrucción de almacenamiento. La instrucción de almacenamiento se envía ahí, o se dobla, en, la instrucción aritmética. Una vez el almacenamiento ha sido enviado mediante la instrucción aritmética, la instrucción de almacenamiento se quita de la lista de espera de instrucciones de punto flotante. Cuando se ha completado la ejecución de la instrucción aritmética, la unidad de punto flotante procesa inmediatamente la instrucción de almacenamiento. Así, el sistema escribe al registro de punto flotante y comunica por medio de señales al cache de datos para el acceso de los datos para su almacenamiento. Consiguientemente, se hace innecesaria una instrucción separada. Este método convencional puede enviar una instrucción de almacenamiento. Sin embargo, los sistemas convencionales son capaces solamente de enviar una instrucción de almacenamiento de la entrada más antigua e inferior en la lista de espera de instrucciones de punto flotante en la instrucción aritmética de punto flotante que esta en la primer etapa de la tubería de la unidad de ejecución. De esta manera. La instrucción aritmética de punto flotante sobre la cual depende la instrucción de almacenamiento deberá también preceder inmediatamente a la instrucción de almacenamiento para que se efectúe el envío, por ejemplo, debido a que la instrucción de punto flotante está en la segunda etapa de la tubería, la instrucción de almacenamiento no será enviada. Si la instrucción de almacenamiento se envía en la instrucción aritmética de punto flotante, tal instrucción de almacenamiento será eliminada de la lista de espera de instrucciones de punto flotante. Alguna otra instrucción puede entonces remplazar a la instrucción de almacenamiento. Sin embargo, esto solo puede ocurrir tan pronto como el siguiente ciclo, cuando el almacenamiento debe ser colocado en la primer etapa de tubería. De esta manera, la eliminación de la instrucción de almacenamiento deja la primer etapa de la tubería, la etapa de ejecución detrás de la instrucción a la cual se envía la instrucción de almacenamiento, vacía. Esto provoca un retardo en la unidad de punto flotante. Con lo que se reduce la velocidad de la unidad de punto flotante. Consiguientemente, lo que se necesita es un sistema y un método para enviar instrucciones con una probabilidad de envío aumentada. Además, el método y el sistema deberán reducir las demoras debido a la remoción de la instrucción enviada de la lista de espera de instrucciones de la unidad de ejecución. La presente invención resuelve tal necesidad.
La presente invención proporciona un método y un sistema para enviar una primera instrucción en un procesador. El procesador comprende una unidad de ejecución y proporciona una pluralidad de instrucciones. La primera instrucción depende de la ejecución de una segunda instrucción pero no de otra manera requiere ejecución por parte de la unidad de ejecución. El método primero busca la segunda instrucción. El método entonces envía la primera instrucción por medio de la segunda instrucción. Un aspecto del método y sistema envía una instrucción de almacenamiento en un procesador. La instrucción de almacenamiento tiene una dirección fuente. El procesador proporciona una pluralidad de instrucciones. El método busca una instrucción de punto flotante que se proporciona antes de la instrucción de almacenamiento. La instrucción de punto flotante tiene una dirección objeto. El método entonces determina si la dirección fuente es igual a la dirección objeto. El método envía la instrucción de almacenamiento mediante la instrucción de punto flotante si la dirección fuente es igual a la dirección objeto. De conformidad con el sistema y el método aquí descritos, la presente invención proporciona envío de instrucción con probabilidad de envío aumentada y menores retardos debidos con lo cual se aumenta el desempeño del sistema en general.
Breve descripción de los dibujos La figura 1 es un diagrama de bloques de un procesador convencional de conformidad con la presente invención. La figura 2 es un diagrama de bloques de una unidad de punto flotante, de una unidad de ejecución dual y ejecución fuera-de-orden. La figura 3 es un diagrama de bloques de un diagrama de flujo de datos para una modalidad del método y del sistema. La presente invención se refiere a una mejora en el envío de instrucción. La siguiente descripción se presenta para permitir que una persona con conocimientos medios en la materia haga y utilice la invención y se proporciona dentro del marco de una solicitud de patente y sus requerimientos. Para aquellas personas con conocimientos medios en la materia serán fácilmente evidentes diversas modificaciones a la modalidad preferida y además que los principios genéricos pueden aplicarse a otras modalidades. De esta manera, no se pretende que la presente invención sea limitada a la modalidad mostrada sino que ha de dársele el más amplio alcance consistente con los principios y aspectos aquí descritos. La figura 1 es un diagrama de bloques de algunos componentes relevantes de un sistema procesador 1 para procesar información de conformidad con la presente invención. En la modalidad preferida, el procesador 1 es un solo circuito integral microprocesador superescalar. Consiguientemente, como se discute adicionalmente más adelante, el procesador 1 incluye diversas unidades, registros, memorias intermedias, memorias, y otras secciones, las cuales se forman de circuitería integrada. Como se muestra en la Figura 1, el procesador 1 incluye una pluralidad de componentes de ejecución, incluyendo la unidad de punto flotante 14 y la unidad de número entero 16. La figura 2 describe la unidad de punto flotante 14 en mayor detalle. Las instrucciones a ser ejecutadas se proporcionan a la unidad de punto flotante 14 por medio de la unidad de instrucción extraer/despachar 30. La unidad de instrucción extraer/despachar 30 coloca las instrucciones de punto flotante en la lista de espera de instrucciones de punto flotantes ("FPQ") 34. En una modalidad preferida, la lista de espera de instrucciones de punto flotante 34 es una lista de espera fuera-de-orden y especulativa. El mecanismo de renombre de registro de punto flotante ("FPR") 32 ayuda en el renombre de registros flotantes de punto. Como su nombre lo implica, el mecanismo de renombre 32 permite el renombramiento de memorias intermedias para que una ubicación, tal como un registro de punto flotante, al cual las unidades de ejecución, tal como la unidad de punto flotante 14, escriba resultados, puedan asignarse ubicaciones de valor de renombre para un operando o resultado. El renombramiento de registro de punto flotante se discute más ampliamente en la solicitud de patente de loe Estados Unidos de Norteamérica con No. de serie titulada: "APARATO Y MÉTODO PARA MANTENER BANDERA DE ESTADO Y CÓDIGOS DE CONDICIÓN QUE UTILIZA UNA TÉCNICA DE RENOMBRAR EN UNA UNIDAD DE EJECUCIÓN DE PUNTO FLOTANTE FUERA DE ORDEN" (APPARATUS AND METHOD FOR MAINTAINING STATUS FLAG AND CONDITION CODES USING A RENAMING TECHNIQUE IN AN OUT OF ORDER FLOATING POINT EXECUTION UNIT) y asignada al cesionario de la presente invención. Mediante el renombramiento de registro, una primera instrucción que depende de la ejecución de una segunda instrucción tendrá una dirección física de registro fuente que es igual que la dirección física de registro objeto de la segunda instrucción. Además, ciertas instrucciones dependen de la ejecución de otra instrucción por la unidad pueden no requerir la misma unidad para su ejecución. Por ejemplo, una instrucción de almacenamiento de punto flotante frecuentemente depende de una instrucción aritmética de punto flotante previa para proporcionar los datos a ser almacenados. Esta instrucción de almacenamiento solo requiere de una unidad de ejecución de punto flotante A 38 o de una unidad de ejecución de punto flotante B 40 para ejecutar la instrucción aritmética sobre la que depende la instrucción de almacenamiento.
En el caso de una instrucción de almacenamiento que depende de una instrucción aritmética, la instrucción de almacenamiento se retiene típicamente en la lista de espera de instrucciones de punto flotante 34 hasta que la instrucción aritmética de punto flotante se ha completado. Esto asegura que la instrucción de almacenamiento pueda obtener los datos requeridos para la ejecución. Sin embargo, el retener la instrucción de almacenamiento también crea una demora, o burbuja, en la tubería de ejecución de punto flotante. Dependiendo del tiempo tomado para que la instrucción aritmética se complete, el almacenamiento puede retenerse durante muchos ciclos. Para resolver este problema, algunos sistemas convencionales envían la instrucción de almacenamiento mediante la instrucción aritmética. Típicamente, esta se realiza identificando la instrucción de almacenamiento con una etiqueta única. La etiqueta se añade entonces a la instrucción aritmética. De esta manera la instrucción de almacenamiento se envía, o dobla, en, la instrucción aritmética. La instrucción de almacenamiento se quita entonces de la lista de espera de instrucciones de punto flotante 34. Donde la instrucción de almacenamiento se envía, la unidad de punto flotante 14 procesa inmediatamente la instrucción de almacenamiento cuando la instrucción aritmética se ha terminado. Así, cuando la instrucción aritmética termina, la unidad de punto flotante 14 no solamente escribe al registro de punto flotante sino que también comunica por medio de señales al cache de datos para el acceso de los datos para su almacenamiento. En consecuencia, es superflua una instrucción de almacenamiento separada. Aunque el procesador convencional 1 puede enviar una instrucción de almacenamiento, una persona de conocimientos medios en el campo reconocerá que el procesador convencional 1 solo es capaz de enviar una instrucción de almacenamiento desde la entrada más vieja e inferior en la lista de espera de instrucciones de punto flotante 34 para una instrucción aritmética de punto flotante en la primera etapa de tubería de la unidad de ejecución de punto flotante A 38 o unidad de ejecución de punto flotante B 40. La instrucción aritmética de punto flotante sobre la cual depende la instrucción de almacenamiento debe preceder inmediatamente a la instrucción de almacenamiento para que ocurra el envío. Donde la instrucción aritmética de punto flotante no precede inmediatamente a la instrucción de almacenamiento, la instrucción de almacenamiento no será enviada. Una persona de conocimientos medios en la materia también reconocerá fácilmente que aun si la instrucción de almacenamiento se envía, alguna demora todavía se introducirá en el procesador convencional 1. Cuando una instrucción de almacenamiento se envía en la instrucción aritmética de punto flotante, la instrucción de almacenamiento se quita de la entrada inferior de la lista de espera de instrucciones de punto flotante 32. Otra instrucción puede reemplazar solo al almacenamiento tan pronto como el próximo ciclo, cuando el almacenamiento deba estar en la primera etapa de la tubería. Cuando la instrucción de almacenamiento se quita de la lista de espera de instrucciones de punto flotante 32, la primera etapa de la tubería se deja vacía en el próximo ciclo reloj. Esto crea una demora en la unidad de punto flotante 14. La presente invención proporciona un método y un sistema para enviar una instrucción con probabilidad de envío aumentada y demora reducida. La presente invención se describirá desde el punto de vista de una instrucción de almacenamiento de punto flotante que es dependiente de una instrucción aritmética de punto flotante. Sin embargo, una persona con conocimientos medios en la materia reconocerá fácilmente que este método y el sistema operarán en forma efectiva para cualquier instrucción que dependa de la ejecución de otra instrucción y no requiera de alguna otra ejecución dentro de la unidad particular. La presente invención también se describirá dentro del marco de una unidad de punto flotante dentro de un procesador superescalar.
Sin embargo, una persona de habilidad ordinaria en el campo se dará cuenta de que este método y sistema operarán efectivamente en otros ambientes. El método y el sistema de la presente invención proporcionan el envío de instrucción de almacenamiento con una probabilidad de envío aumentada. Además, el método y el sistema son capaces de enviar una instrucción de almacenamiento en cualquier entrada de la lista de espera de instrucciones de punto flotante 34 en una instrucción aritmética en cualquier otra entrada de la lista de espera de instrucciones de punto flotante 34 o en cualquier etapa de tubería de unidad de ejecución. Para ilustrar más particularmente el método y el sistema de conformidad con la presente invención, nos referiremos ahora a la figura 3 que describe una corriente de datos 100 de una de modalidad de tal sistema. La enésima entrada ("FPQn") 102 en la instrucción de almacenamiento de punto flotante 34 es una instrucción de almacenamiento. FPQn 102 puede ser cualquier entrada en la lista de espera de instrucciones de punto flotante 34. La instrucción de almacenamiento en FPQn 102 depende de una instrucción aritmética de punto flotante para datos. La instrucción de almacenamiento en FPQn 102 es enviada únicamente a la instrucción aritmética sobre la que depende FPQn. En el flujo de datos 100 mostrado en la Figura 3, el método y el sistema buscan la lista de espera de instrucciones de punto flotante 34, una primera etapa de tubería de unidad de ejecución ("El") 130 y la segunda etapa de tubería de unidad de ejecución ("E2") 140 para la instrucción aritmética sobre la que depende la instrucción de almacenamiento. Esto está en contraste con los sistemas convencionales que solamente pueden enviar la instrucción de almacenamiento a la instrucción precedente. En la Figura 3, el remanente de la lista de espera de instrucciones de punto flotante 34, se representa por medio de la exésima (xth) entrada ("FPQx") 104 de la lista de instrucciones de punto flotante 3 . Aunque solamente se describen dos etapas de tubería en la figura 3, el método y el sistema pueden enviar FPQn 102 a cualquier etapa de tubería. Debido a que el método y el sistema buscan la lista de espera de instrucciones de punto flotante 34 y todas las etapas de tubería de unidad de ejecución para una instrucción aritmética para enviar mediante, hay una gran probabilidad de ubicar la instrucción sobre la que depende la instrucción de punto flotante. Por lo tanto, hay una probabilidad más alta correspondiente de envío de instrucción. A fin de determinar la instrucción aritmética sobre la que depende la instrucción de almacenamiento en FPQn 102, se utilizan las direcciones físicas de registro objeto y registro fuente. Debido al renombramiento de registro, la instrucción de almacenamiento en FPQn 102 depende de la instrucción aritmética de punto flotante que tiene una dirección física de registro objeto igual a la dirección física de registro fuente de la instrucción de almacenamiento en FPQn 102. Para determinar si la instrucción de almacenamiento en FPQn 102 depende de la instrucción aritmética en FPQx 104, El 130 ó E2 140, la dirección física de registro objeto de las instrucciones en FPQx 104, El 130, y E2 140 se comparan con la dirección física de registro fuente de FPQn 102 utilizando comparaciones 112, 114, y 116, respectivamente . Las salidas de las comparaciones 112, 114 y 116 se proporcionan a la lógica de control 118. La lógica de control 118 controla los multiplexores ("MUX") 122, 124, 126, 136 y 146. En una modalidad preferida la lógica de control 118 no permitirá que se envíe una instrucción de almacenamiento a otra instrucción de almacenamiento. En forma similar, en una modalidad preferida, la instrucción de almacenamiento en FPQn 102 no será enviada si ya se ha enviado otra instrucción de almacenamiento por medio de la instrucción de almacenamiento que tiene una dirección física de registro objeto la cual coincide con la dirección física de registro fuente de la instrucción de almacenamiento en FPQn 102. En una modalidad preferida, si se proporciona µna pluralidad de instrucciones de almacenamiento que tenga la misma dirección física de registro fuente a la lista de espera de instrucciones de punto flotante 34 sobre el mismo ciclo de reloj, solo se permitirá el envío de una sola instrucción de almacenamiento. Solamente se envía una instrucción de almacenamiento porque en una modalidad preferida una instrucción aritmética solo puede acomodar una etiqueta para una instrucción de almacenamiento. En una modalidad preferida, solo se permite el envío si la instrucción de almacenamiento en FPQn 102 y la instrucción aritmética mediante la cual ha de enviarse la instrucción de almacenamiento son válidas. En una modalidad preferida, la lógica de control 118 también excluye el envío para ciertas instrucciones aritméticas, tal como una instrucción de raíz cuadrada o división. No se permite el envío para estas instrucciones porque ellas tienen resultados intermedios y, por lo tanto, registros objeto intermedios así como también registros objeto finales. Finalmente, en una modalidad preferida, la lógica de control 118 permite el envío de la instrucción de almacenamiento en FPQn 102 solamente si la precisión de la instrucción de almacenamiento en FPQn 102 coincide con la precisión de la instrucción aritmética. Si la lógica de control de la instrucción aritmética en FPQx 104 iguala a la dirección física del registro fuente de la instrucción de almacenamiento en fB 102, la lógica de control 118 ocasiona que los MUXs 122 y 124 se añadan a la etiqueta para FPQn 102 a la instrucción en FPQx 104. El sistema de MUXs 122 y 124 podría usarse para permitir que la instrucción en FPQx 104 sea enviada en la instrucción en FPQn 102 debido a que MUX 126 puede escoger que etiqueta, entre FPQn 102 o FPQx 104, se proporciona a la primera etapa de tubería de ejecución El 130. Si la dirección física de registro de l instrucción aritmética en la etapa de tubería de ejecución El 130 iguala a la dirección física del registro fuente de l instrucción de almacenamiento en FPQn 102, la lógica d control 118 ocasiona que el MUX 136 seleccione la etiquet para FPQn 102. Si la dirección física del registro objeto d la instrucción aritmética en la etapa de tubería de ejecució E2 140 iguala a la dirección física del registro fuente de l instrucción de almacenamiento en FPQn 102, la lógica d control 118 ocasiona que el MUX 146 seleccione la etiquet para FPQn 102. Consiguientemente, donde sea apropiado, l etiqueta se añade a la instrucción aritmética sobre la cua depende la instrucción fuente. La etiqueta entonces sigue l instrucción aritmética mediante la tubería de ejecución. Una vez que la etiqueta que identifica l instrucción de almacenamiento en FPQn 102 se añade a l instrucción apropiada, la instrucción de almacenamiento s quita de la lista de espera de instrucciones de punt flotante 34. Debido a que FPQn 102 no necesita ser l entrada más vieja en la lista de espera de instrucciones d punto flotante 34, la burbuja en la tubería debido a l remoción de la instrucción de almacenamiento puede quitarse. En su lugar, otra instrucción puede comenzar la ejecució mientras que la etiqueta de instrucción de almacenamiento se añade a la instrucción aritmética. Otras instrucciones se avanzan para tomar el lugar de la instrucción de almacenamiento, y se continúa la ejecución de la instrucción aritmética. Cuando la instrucción aritmética termina, la unidad de punto flotante 14 escribe al registro de blanco y comunica por medio de señales al cache de datos para accesar los datos para el almacenamiento. En una modalidad preferida, el procesador 1 tiene dos unidades de ejecución de punto flotante. Refiriéndonos ahora a la figura 2, tanto la unidad de ejecución de punto flotante A 38 y como la unidad de ejecución de punto flotante B 40 pueden ejecutar instrucciones. Consiguientemente, en una modalidad preferida, pueden enviarse dos instrucciones de almacenamiento a dos instrucciones aritméticas y dos instrucciones aritméticas pueden emitirse en lugar de las instrucciones de almacenamiento durante cada ciclo de reloj . Esto puede además incrementar la velocidad del procesador. Se han descrito un método y un sistema para proporcionar envío de instrucciones en donde la probabilidad de que la instrucción sea enviada se incrementa significativamente. Además, se reducen adicionalmente las demoras en la unidad de ejecución. Aunque la presente invención se ha descrito de conformidad con las modalidades mostradas, una persona con conocimientos medios en la materia reconocerá fácilmente que puede haber variaciones a las modalidades y que esas variaciones estarán dentro de la esencia y alcance de la presente invención. Consiguientemente, pueden hacerse muchas modificaciones por parte de una persona de habilidad ordinaria en el campo sin apartarse de la esencia y alcance de las reivindicaciones anexas.

Claims (38)

REIVINDICACIONES
1. Un método para enviar una primer instrucción en un procesador, el procesador además comprende una unidad de ejecución y proporciona una pluralidad de instrucciones, la primer instrucción además dependiendo de la ejecución de una segunda instrucción pero no de otra manera requiere ejecución por parte de la unidad de ejecución, caracterizado porque el método comprende las etapas de: a) buscar la segunda instrucción; y b) enviar la primera instrucción por medio de la segunda instrucción.
2. Un método para enviar una instrucción de almacenamiento en un procesador, teniendo la instrucción de almacenamiento una dirección fuente, el procesador además proporciona una pluralidad de instrucciones, caracterizado porque el método comprende las etapas de: a) buscar una instrucción de punto flotante que se proporciona antes de la instrucción de almacenamiento, teniendo la instrucción de punto flotante una dirección objeto; b) determinar si la dirección fuente es igual a la dirección objeto; y c) enviar la instrucción de almacenamiento mediante la instrucción de punto flotante si la dirección fuente es igual a la dirección objeto.
3. El método de conformidad con la reivindicación 2, caracterizado además porque la dirección fuente es la dirección física del registro fuente; y la dirección objeto es la dirección física del registro objeto.
4. El método de conformidad con la reivindicación 3, caracterizado además porque la instrucción de almacenamiento además comprende una primera precisión; y la instrucción de punto flotante además comprende una segunda precisión.
5. El método de conformidad con la reivindicación 4, caracterizado además porque la etapa (b) además comprende la etapa de: bl) determinar si la primera precisión es igual a la segunda precisión;
6. El método de conformidad con la reivindicación 5, caracterizado además porque la etapa (c) además comprende la etapa de: cl) enviar la instrucción de almacenamiento mediante la instrucción aritmética de punto flotante si la dirección fuente es igual a la dirección objeto y la primera precisión es igual a la segunda precisión.
7. El método de conformidad con la reivindicación 6, caracterizado además porque la etapa (c) además comprende la etapa de: c2) enviar la instrucción de almacenamiento mediante de la instrucción de punto flotante si no se ha enviado anteriormente ninguna instrucción de la pluralidad de instrucciones mediante la instrucción aritmética de punto flotante.
8. El método de conformidad con la reivindicación 7, caracterizado además porque la etapa (c) además comprende las etapas de: c3) proporcionar una etiqueta que identifique la instrucción de almacenamiento; y c4) añadir la etiqueta a la instrucción de punto flotante.
9. El método de conformidad con la reivindicación 8, caracterizado además porque la pluralidad de instrucciones además incluye una pluralidad de instrucciones de almacenamiento proporcionada a la lista de espera de instrucciones al mismo tiempo que la instrucción de almacenamiento, teniendo cada una de la pluralidad de instrucciones de almacenamiento la misma dirección fuente; y la etapa (c) además comprende la etapa de: c5) prevenir que sea enviada la pluralidad de instrucciones de almacenamiento.
10. El método de conformidad con la reivindicación 9, caracterizado además porque el procesador además comprende un reloj; y la etapa (c) además se completa dentro de un solo ciclo de reloj de la instrucción de almacenamiento que entra a la lista de espera de instrucciones.
11. Un método para enviar una instrucción de almacenamiento en un procesador, teniendo la instrucción de almacenamiento una dirección fuente, proporcionando el procesador una pluralidad de instrucciones, caracterizado porque comprende las etapas de: a) buscar la instrucción de almacenamiento; b) buscar una instrucción de punto flotante que se proporciona antes que la instrucción de almacenamiento, teniendo la instrucción de punto flotante una dirección objeto; y c) determinar si la dirección fuente es igual a la dirección objeto; y d) enviar la instrucción de almacenamiento por medio de la instrucción de punto flotante si la dirección fuente es igual a la dirección objeto.
12. El método de conformidad con la reivindicación 11, caracterizado además porque la dirección fuente es la dirección física del registro fuente; y la dirección objeto es la dirección física del registro objeto.
13. El método de conformidad con la reivindicación 12, caracterizado además porque la instrucción de almacenamiento además comprende una primera precisión; y la instrucción de punto flotante además comprende una segunda precisión.
14. El método de conformidad con la reivindicación 13, caracterizado además porque la etapa (c) además comprende la etapa de: cl) determinar si la primera precisión es igual a la segunda precisión.
15. El método de conformidad con la reivindicación 14, caracterizado además porque la etapa (d) además comprende la etapa de: di) enviar la instrucción de almacenamiento mediante de la instrucción aritmética de punto flotante si la dirección fuente es igual a la dirección objeto y la primera precisión es igual a la segunda precisión.
16. El método de conformidad con la reivindicación 15, caracterizado además porque la etapa (d) enviar la instrucción de almacenamiento además comprende la etapa de: d2) enviar la instrucción de almacenamiento mediante la instrucción de punto flotante si no se ha enviado con anterioridad ninguna instrucción de la pluralidad de instrucciones mediante la instrucción aritmética de punto flotante.
17. El método de conformidad con la reivindicación 16, caracterizado además porque la etapa (d) enviar la instrucción de almacenamiento además comprende las etapas de: d3) proveer una etiqueta que identifique la instrucción de almacenamiento; y d4) añadir la etiqueta a la instrucción de punto flotante.
18. El método de conformidad con la reivindicación 17, caracterizado además porque la pluralidad de instrucciones además incluye una pluralidad de instrucciones de almacenamiento proporcionadas a la lista de espera de instrucciones al mismo tiempo que la instrucción de almacenamiento, teniendo cada una de la pluralidad de instrucciones de almacenamiento la misma dirección fuente; y la etapa (d) además comprende la etapa de: d5) prevenir que sea enviada la pluralidad de instrucciones de almacenamiento.
19. El método de conformidad con la reivindicación 18, caracterizado además porque el procesador además comprende un reloj; y la etapa (d) enviar la instrucción de almacenamiento además se completa dentro de un solo ciclo de reloj de la instrucción de almacenamiento que entra a la lista de espera de instrucciones.
20. Un sistema para enviar una primera instrucción en un procesador, el procesador además comprende una unidad de ejecución y proporciona una pluralidad de instrucciones, la primera instrucción dependiendo además de la ejecución de una segunda instrucción pero no de otra manera requiere ejecución por parte de la unidad de ejecución, caracterizado porque el sistema comprende: medios para buscar la segunda instrucción; y medios para enviar la primera instrucción por medio de la segunda instrucción.
21. Un sistema para enviar una instrucción de almacenamiento en un procesador, la instrucción de almacenamiento tiene una dirección fuente y una primera precisión, el procesador además proporciona una pluralidad de instrucciones, caracterizado porque el sistema comprende: medios para buscar una instrucción de punto flotante que se proporciona antes de la instrucción de almacenamiento, teniendo la instrucción de punto flotante una dirección objeto y una segunda precisión; medios para comparar acoplados a los medios para buscar para determinar si la dirección fuente es igual a la dirección objeto; y medios para enviar acoplados a los medios para comparar para enviar la instrucción de almacenamiento mediante la instrucción de punto flotante si la dirección fuente es igual a la dirección objeto.
22. El sistema de conformidad con la reivindicación 21, caracterizado además porque la dirección fuente es la dirección física del registro fuente; y la dirección objeto es la dirección física del registro objeto.
23. El sistema de conformidad con la reivindicación 22, caracterizado además porque la instrucción de almacenamiento además comprende una primera precisión; y la instrucción de punto flotante además comprende una segunda precisión.
24. El sistema de conformidad con la reivindicación 23, caracterizado además porque los medios para comparar además comprenden medios para comparar precisión para determinar si la primera precisión es igual a la segunda precisión.
25. El sistema de conformidad con la reivindicación 24, caracterizado además porque los medios para enviar además comprenden: primeros medios para enviar, para enviar la instrucción de almacenamiento si la primera precisión es igual a la segunda precisión.
26. El sistema de conformidad con la reivindicación 25, caracterizado además porque los medios para enviar la instrucción de almacenamiento además comprenden: segundos medios para enviar acoplados a los primeros medios para enviar, para enviar la instrucción de almacenamiento mediante la instrucción aritmética de punto flotante si no se ha enviado anteriormente ninguna instrucción de la pluralidad de instrucciones mediante la instrucción aritmética de punto flotante.
27. El sistema de conformidad con la reivindicación 26, caracterizado además porque los medios para enviar además comprenden: medios para proporcionar una etiqueta que identifique la instrucción de almacenamiento acoplada a los segundos medios para enviar; y medios para añadir la etiqueta a la instrucción de punto flotante acoplada a los medios para proporcionar la etiqueta.
28. El sistema de conformidad con la reivindicación 27, caracterizado además porque la pluralidad de instrucciones además incluye una pluralidad de instrucciones de almacenamiento proporcionada a la lista de espera de instrucciones al mismo tiempo que la instrucción de almacenamiento, teniendo cada una de la pluralidad de instrucciones de almacenamiento la misma dirección fuente; y los medios para enviar además comprenden: medios de prevención para prevenir que sea enviada la pluralidad de instrucciones de almacenamiento.
29. El sistema de conformidad con la reivindicación 28, caracterizado además porque el procesador además comprende un reloj ; y los medios para enviar la instrucción de almacenamiento además completan el envío dentro de un solo ciclo de reloj de la instrucción de almacenamiento que entra a la lista de espera.
30. Un sistema para enviar una instrucción de almacenamiento en un procesador, teniendo la instrucción de almacenamiento una dirección fuente, el procesador proporciona una pluralidad de instrucciones, caracterizado porque comprende: primeros medios de búsqueda para buscar la instrucción de almacenamiento; segundos medios de búsqueda acoplados a los primeros medios de búsqueda, los segundos medios de búsqueda para buscar una instrucción de punto flotante que se proporciona antes de la instrucción de almacenamiento, teniendo la instrucción de punto flotante una dirección objeto; medios para comparar acoplados a los primeros medios de búsqueda y los segundos medios de búsqueda, los medios para comparar para determinar si la dirección fuente es igual a la dirección objeto; y medios para enviar acoplados a los medios para comparar para enviar la instrucción de almacenamiento mediante la instrucción de punto flotante si la dirección fuente es igual a la dirección objeto.
31. El sistema de conformidad con la reivindicación 30, caracterizado además porque la dirección fuente es la dirección física del registro fuente; y la dirección objeto es la dirección física del registro objeto.
32. El sistema de conformidad con la reivindicación 31, caracterizado además porque la instrucción de almacenamiento además comprende una primera precisión ; y la instrucción de punto flotante además comprende una segunda precisión.
33. El sistema de conformidad con la reivindicación 32, caracterizado además porque los medios para comparar además comprenden medios para comparar precisión para determinar si la primera precisión es igual a la segunda precisión.
34. El sistema de conformidad con la reivindicación 33, caracterizado además porque los medios para enviar además comprenden primeros medios para enviar acoplados a los medios para comparar precisión para enviar la instrucción de almacenamiento si la primera precisión es igual a la segunda precisión.
35. El sistema de conformidad con la reivindicación 34, caracterizado además porque los medios para enviar además comprenden: segundos medios para enviar acoplados a los primeros medios para enviar, los segundos medios para enviar, para enviar la instrucción de almacenamiento mediante la instrucción aritmética de punto flotante si no se ha enviado anteriormente ninguna instrucción de la pluralidad de instrucciones mediante la instrucción aritmética de punto flotante.
36. El sistema de conformidad con la reivindicación 35, caracterizado además porque los medios para enviar además comprenden: medios que proporcionan etiquetas acoplados a los segundos medios para enviar para proporcionar una etiqueta que identifique la instrucción de almacenamiento; y medios para añadir acoplados a los medios para proporcionar una etiqueta para añadir la etiqueta a la instrucción de punto flotante.
37. El sistema de conformidad con la reivindicación 36, caracterizado además porque la pluralidad de instrucciones además incluye una pluralidad de instrucciones de almacenamiento proporcionada a la lista de espera de instrucciones al mismo tiempo que la instrucción de almacenamiento, teniendo cada una de la pluralidad de instrucciones de almacenamiento la misma dirección fuente; y los medios para enviar además comprenden: medios de prevención para prevenir que sea enviada la pluralidad de instrucciones de almacenamiento.
38. El sistema de conformidad con la reivindicación 37, en donde el procesador además comprende un reloj; y caracterizado además porque los medios para enviar además completan el envío de la instrucción de almacenamiento dentro de un solo ciclo de reloj de la instrucción de almacenamiento que entra a la lista de espera.
MXPA/A/1998/003108A 1997-04-21 1998-04-21 Tecnica de envio de instruccion de almacenamiento con probabilidad de envio aumentada MXPA98003108A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/845,093 US5878242A (en) 1997-04-21 1997-04-21 Method and system for forwarding instructions in a processor with increased forwarding probability
US08845093 1997-04-21

Publications (2)

Publication Number Publication Date
MX9803108A MX9803108A (es) 1998-11-30
MXPA98003108A true MXPA98003108A (es) 1999-01-15

Family

ID=

Similar Documents

Publication Publication Date Title
US5611063A (en) Method for executing speculative load instructions in high-performance processors
US5699537A (en) Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
US6728866B1 (en) Partitioned issue queue and allocation strategy
US6349382B1 (en) System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order
US5467473A (en) Out of order instruction load and store comparison
US7392369B2 (en) Decomposing architectural operation into speculative and architectural micro-operations for speculative execution of others and for violation check
US7603543B2 (en) Method, apparatus and program product for enhancing performance of an in-order processor with long stalls
US5870582A (en) Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched
US5867684A (en) Method and processor that permit concurrent execution of a store multiple instruction and a dependent instruction
US7228402B2 (en) Predicate register file write by an instruction with a pending instruction having data dependency
US5559976A (en) System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions
EP0675434B1 (en) Processing system and method of operation
US6463524B1 (en) Superscalar processor and method for incrementally issuing store instructions
US5548738A (en) System and method for processing an instruction in a processing system
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
CA2260541C (en) Apparatus and method for tracking out of order load instructions to avoid data coherency violations in a processor
EP1673692B1 (en) Selectively deferring the execution of instructions with unresolved data dependencies
US5727177A (en) Reorder buffer circuit accommodating special instructions operating on odd-width results
US5860014A (en) Method and apparatus for improved recovery of processor state using history buffer
JP3808314B2 (ja) 長レイテンシ命令に対する命令属性およびステータス情報を示す処理システムおよび方法
US5878242A (en) Method and system for forwarding instructions in a processor with increased forwarding probability
US6240507B1 (en) Mechanism for multiple register renaming and method therefor
US6134645A (en) Instruction completion logic distributed among execution units for improving completion efficiency
EP0778519B1 (en) Multiple instruction dispatch system for pipelined microprocessor without branch breaks
US6442678B1 (en) Method and apparatus for providing data to a processor pipeline