En la ingeniería de computadora, la ejecución fuera de servicio, OoOE, es un paradigma usado en la mayoría de los microprocesadores de alto rendimiento para hacer uso de los ciclos que serían perdidos de otra manera por cierto tipo de retardo costoso. La mayoría de los diseños modernos de la CPU incluyen la ayuda para la ejecución fuera de servicio.

Historia

La ejecución fuera de servicio es una forma restricta de cómputo del flujo de datos, que era un comandante área de investigación en la arquitectura de computadora en los años 70 y los años 80 tempranos . La investigación académica importante en este tema fue llevada por el Yale Patt y su simulador de HPSm . Un papel por el James E. Pleszkun, publicado en el 1985 terminó el esquema describiendo cómo el comportamiento exacto de excepciones se podría mantener en máquinas fuera de servicio.

La primera máquina para utilizar la ejecución fuera de servicio era probablemente la CDC 6600 (1964) que utilizaron un marcador para resolver conflictos. Cerca de tres años más adelante IBM 360/91 (1966) introdujo el algoritmo de Tomasulo. IBM también introdujo el primer microprocesador fuera de servicio, el POWER1 (1990) para su RS/6000 . Era el lanzamiento del Pentium favorable de Intel (1995) que trajeron la tecnología a la corriente principal. La mayoría de los otros proveedores también comenzaron a presentar los diseños de OoO: IBM / PowerPC 601 (1992/1993) de Motorola, el Fujitsu /HAL Sparc64 I (1995), el PA-8000 (1996) del HP, las MIPS R-10000 (1996), el K5 (1996) AMD, y la alfa 21264 (1998) de la DEC. Las excepciones notables a esta tendencia son UltraSparc de de Sun, HP /el IA-64 de de Intel, Crusoe de de Transmeta y el POWER6 de de IBM.

La complejidad lógica de los esquemas fuera de servicio era la razón que esta técnica no alcanzó las máquinas de corriente hasta los años 90 mid- . Muchos procesadores bajos significados para los mercados coste-sensibles todavía no utilizan este paradigma debido al área grande del silicio que se requiere para construir esta clase de máquina.

Concepto básico

procesadores de la En-orden

En procesadores anteriores, el proceso de instrucciones se hace normalmente en estos pasos: Alcance de la instrucción .
  • Si los operandos de la entrada están disponibles (en registros por ejemplo), la instrucción se envía a la unidad funcional apropiado. Si uno o más operandos son inasequibles durante el ciclo de reloj actual (generalmente porque se están trayendo de la memoria ), sin embargo, el procesador atasca hasta que estén disponibles.
  • La instrucción es ejecutada por la unidad funcional apropiada.
  • La unidad funcional escribe los resultados de nuevo al archivo de registro .

    Procesadores fuera de servicio

    Este nuevo paradigma rompe para arriba el proceso de instrucciones en estos pasos: Búsqueda de instrucciones.
  • Envío de la instrucción a una coleta de la instrucción (estaciones de la reservación del almacenador intermediario o de instrucción también llamada).
  • La instrucción espera en la coleta hasta que sus operandos de la entrada estén disponibles. La instrucción entonces se permite de dejar la coleta antes de instrucciones anteriores, más viejas.
  • La instrucción se publica a la unidad funcional apropiada y es ejecutada por esa unidad.
  • Se hacen cola los resultados.
  • Solamente después de que todas las más viejas instrucciones tienen sus resultados escritos de nuevo al archivo de registro, después este resultado se escribe de nuevo al archivo de registro. Esto se llama la graduación o retira la etapa.

    El concepto dominante de proceso de OoO es permitir que el procesador evite una clase de paradas que ocurran cuando los datos necesarios para realizar una operación no están disponibles. En el esquema arriba, el procesador de OoO evita la parada que ocurre en el paso (2) del procesador de la en-orden cuando la instrucción no está totalmente lista para ser procesado debido a los datos que falta.

    Los procesadores de OoO llenan este el " slots" a tiempo con otras instrucciones que el es listo, después reordenar los resultados en el extremo para hacer que aparece que las instrucciones fueron procesadas como normal. La manera que las instrucciones se piden en el código de computadora original se conoce como orden del programa del, en el procesador se manejan en la orden de los datos del, la orden en la cual los datos, operandos, están disponibles en los registros del procesador. El trazado de circuito bastante complejo es necesario convertir a partir del uno que ordena al otro y mantener ordenar lógica de la salida; el procesador sí mismo funciona las instrucciones en orden aparentemente al azar.

    La ventaja del proceso de OoO crece mientras que la tubería de la instrucción profundiza y la diferencia de la velocidad entre el de memoria principal (o el memoria ocult0 ) y el procesador ensancha. En las máquinas modernas, el procesador funciona muchas veces más rápidamente que la memoria, así que durante el tiempo que un procesador de la en-orden pasa para datos que esperan para llegar, él habría podido procesar una gran cantidad de instrucciones.

    El envío y la edición que desemparejan permite la edición fuera de servicio

    Una de las diferencias creadas por el nuevo paradigma es la creación de coletas que permite que el paso del envío sea desemparejado del paso de la edición y de la etapa de la graduación que se desemparejarán de la etapa de la ejecución. Un nombre temprano para el paradigma era la arquitectura desemparejada del . En los procesadores anteriores de la en-orden del, estas etapas funcionaron en bastante un Cerradura-paso, manera canalizada.

    Para evitar las dependencias falsas del operando, que disminuirían la frecuencia cuando las instrucciones podrían estar fuera de servicio publicado, se utiliza una técnica llamó el registro que retitulaba . En este esquema, hay registros más físicos que definido por la arquitectura. Se marcan con etiqueta los registros físicos de modo que las versiones múltiples del mismo registro arquitectónico puedan existir al mismo tiempo.

    Ejecutar y el writeback que desempareja permite recomenzar del programa

    La coleta para los resultados es necesaria resolver ediciones como mispredictions y excepciones/trampas de la rama. La coleta de los resultados permite que los programas sean recomenzados después de una excepción, que requiere las instrucciones de ser terminado en orden del programa. La coleta permite que los resultados sean desechado debido a los mispredictions en más viejas instrucciones y excepciones de rama adquiridas más viejas instrucciones.

    La capacidad de publicar instrucciones más allá de las ramas que tienen todavía resolver se conoce como ejecución especulativa .

    opciones Micro-arquitectónicas

    ¿Las instrucciones se envían a una coleta centralizada o a las coletas distribuidas múltiples?
  • los procesadores de PowerPC de IBM l utilizan las coletas que se distribuyen entre las diversas unidades funcionales mientras que otros procesadores fuera de servicio utilizan una coleta centralizada. IBM utiliza las estaciones de la reservación del del término para sus coletas distribuidas.
    ¿

    es allí los resultados reales hace cola o es los resultados escritos directo en un archivo de registro? Para estes 3ultimo, la función de espera es manejada por los mapas del registro que llevan a cabo el registro que retitula la información para cada instrucción en vuelo. los procesadores fuera de servicio tempranos de Intel del

    l utilizan los resultados hacen cola llamado un '' reordenan el almacenador intermediario '', mientras que el registro fuera de servicio último del uso de los procesadores traza.

    Ver también

    Scoreboarding
    Algoritmo de Tomasulo
    Sistema de la respuesta

    .

  • Zenithic
  • Rien que pour ça
    Random links:Time to Live | Leo Moser | Abraham Abramson | James Mugford | La gente unió a la humanidad de ahorro

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">