Para explicar cómo consiste, tomará un pequeño recordatorio en las diferentes etapas de una instrucción. En el capítulo sobre la micro-arquitectura de un procesador, se ha visto que una instrucción se realiza en varios pasos distintos: la carga, decodificación y varios pasos para ejecutar la instrucción, este último dependiendo del procesador, del procesador. Modo de direccionamiento, o manipulaciones que debe realizar. Sin la tubería, estos pasos se realizan de acuerdo entre sí y una instrucción debe esperar hasta que se complete la anterior antes de comenzar.

Con una tubería, podemos comenzar a ejecutar una nueva instrucción sin esperar hasta que termine la anterior. . Por ejemplo, la siguiente instrucción se puede cargar mientras la instrucción en ejecución se encuentra en el paso de ejecución. Después de todo, estos dos pasos son completamente independientes y utilizan circuitos separados. El principio de la tubería es simple: ejecute varias instrucciones diferentes, cada una en un paso diferente a los demás. Cada instrucción cambia gradualmente de un paso a otro en esta tubería y se carga una nueva instrucción por ciclo en el primer piso. El número total de pasos necesarios para realizar una instrucción (y, por lo tanto, el número de etapas de la tubería) se llama la profundidad de la tubería. Corresponde al número teórico máximo de instrucciones ejecutadas al mismo tiempo en la tubería.

tubeline: Principio.

Para entender lo que significa, compare la ejecución de esta instrucción sin y con tuberías . Por ejemplo, utilizaremos una organización relativamente general, donde cada instrucción pase por los siguientes pasos:

  • Cargando: cobramos nuestra declaración de la memoria;
  • decodificación: decodificación del instrucción;
  • Ejecución: la instrucción se ejecuta;
  • Acceso a la memoria: Acceso a la memoria RAM;
  • Grabación: Si es necesario, el resultado de la instrucción es grabado en la memoria.

Sin tubería, uno debe esperar a que se termine una instrucción para ejecutar lo siguiente. La instrucción ejecuta todos sus pasos, antes de que se inicie la siguiente declaración en el Paso 1.

ejecución de tres instrucciones sin tubería.

Con una tubería, iniciamos una nueva instrucción por ciclo (en condiciones óptimas).

Ejecución de tres instrucciones con tuberías.

El aislamiento de las etapas del tubelinedifier

Diseño Un procesador con una tubería requiere algunas modificaciones de la arquitectura de nuestro procesador. En primer lugar, cada paso de una instrucción debe funcionar independientemente de otros, lo que significa usar circuitos independientes para cada piso. Por lo tanto, es imposible reutilizar un circuito en varios pasos, ya que se realiza en algunos procesadores sin gasoducto. Por ejemplo, en un procesador libre de tuberías, la adder de aluminio se puede usar para actualizar el programa de contador al cargar, calcular las direcciones al acceder a la memoria, las adiciones, etc. Pero en un procesador con una tubería, no podemos pagarlo, lo que hace que cada paso use su propio sumador. De manera similar, la etapa de carga puede entrar en conflicto con otros pisos para acceder a la memoria o el caché, especialmente para las instrucciones de acceso a la memoria. Este conflicto se puede resolver entre la carga del piso y el piso de acceso a la memoria duplicando el caché L1 en un caché de instrucciones y un caché de datos. Y este principio es general: es importante separar los circuitos a cargo de cada paso. Cada circuito dedicado a un paso se llama una etapa de la tubería.

Modificador de tuberías síncrono y asíncrono

La mayoría de las tuberías interponechan registros entre etapas, para aislarlos. Las transferencias entre registros y pisos se pueden sincronizar mediante un reloj, o asíncronamente.

Si la tubería está sincronizada en el reloj del procesador, hablamos de tubería síncrona. Cada piso pone un ciclo de reloj para realizar su trabajo, a saber, leer los contenidos del registro que lo conecta al paso anterior y deducir el resultado para escribir en el siguiente registro. Estas son estas tuberías que se encuentran en los procesadores Intel y AMD más recientes.

tamponado sincrónico de tubería

En otras tuberías, no hay un reloj para sincronizar las transferencias entre los pisos, que son a través de un bus de «bus» asíncrono. Estamos hablando de la tubería asíncrona.

Tubería síncrona y asíncrona.

Las señales de control de las tuberías asíncrona se pueden crear fácilmente con las puertas c.

El PipelinesModir

Vamos a volver un poco sobre las tuberías síncronas. En estos, un piso hace su trabajo en un ciclo de reloj. En una tubería con n etapas, una instrucción pone n ciclos de reloj para ejecutar, contra un solo ciclo en un procesador sin ninguna tubería. Pero, ¿qué bien no ejecuta las instrucciones simultáneamente, si cada vez tiene más tiempo? ¡El tiempo de ejecución de un paquete de instrucciones no se supone que cambie! Excepto que este razonamiento olvida un parámetro importante: una etapa de tuberías tiene un tiempo de propagación más pequeño que un procesador completo; Lo que hace posible aumentar la frecuencia. Esto hace posible multiplicar la frecuencia por un coeficiente más o menos proporcional al número de etapas.

efecto del uso de una tubería en la frecuencia de un procesador.

podemos Formalizar este razonamiento matemáticamente, al posar:

  • t {\ mostrarstyle t}
    t

    La latencia de la instrucción ‘ con tubería en segundos;

  • t {\ mostrarstyle t}
    t

    La latencia de la instrucción sin tubería en segundos;

  • t piso {\ mostrarstyle t _ {\ texto {piso}}}
    {\ mostrarstyle t _ {\ texto {piso}}}

    la latencia de un piso de tubería en segundos;

  • n {\ mostrarstyle n}
    {\ mostrarstyle n}

El número de etapas de la tubería.

Suponga que los circuitos del procesador se pueden cortar en etapas que tienen el La misma latencia, a saber, quién puso al mismo tiempo para hacer su trabajo. El tiempo establecido por un piso para hacer su trabajo es:

t Floor = T N {\ DisplayStyle t _ {\ text {piso}} = {\ frac}} {n}}}

{\ DisplayStyle t _ {\ texto {piso}} = {\ frac {t} {n}}}

En una tubería, una instrucción debe pasar por n {\ DisplayStyle N}

{\ DisplayStyle N}

Etapas para ejecutar. Su tiempo de ejecución total es el producto de la latencia de un piso por su número: t = n × t n {\ displaystyle t = n \ veces {\ frac {t} {n}}}

{\ Displaystyle t = n \ veces {\ frac {t} {n}}}

.

Al simplificar, encontramos:

t = t {\ mostrarstyle t = t}

{\ mostrarstyle t = t}

Dicho de lo contrario, el tiempo de ejecución de una instrucción no cambia: el aumento de la frecuencia compensa el aumento en el número de etapas. Por otro lado, el hecho de que varias instrucciones puedan ejecutar al mismo tiempo aumenta el rendimiento: si la latencia sigue siendo la misma, aumenta la velocidad de flujo del procesador.

ahora, veamos más detalle lo que pasa a la frecuencia. En un procesador libre de tuberías, se supone que la instrucción pone un ciclo de reloj para ejecutarlo (para simplificar). La frecuencia del procesador es, por lo tanto, la inversa del tiempo de ejecución de la instrucción, es decir:

f = 1 t {\ mostrarstyle f = {1 \ sobre t}}

{\ DisplayStyle F = {1 \ sobre t}}

En un procesador con tuberías, el tiempo de latencia de un piso es igual, por definición, a la duración de un ciclo de reloj. La frecuencia es lo opuesto a esta duración, lo que lo hace valor:

f = n t {\ mostrarstyle f = {n \ sobre t}}

{\ mostrarstyle f = { N \ sobre t}}

¡Vemos que la frecuencia se ha multiplicado por el número de pisos con una tubería! Tenemos buena n {\ DisplayStyle N}

{\ DisplayStyle N} div ETAPAS En lugar de una, pero cada piso será N {\ DisplayStyle N}

{\ DisplayStyle N}

veces más rápido, lo que compensa. Una vez más, el aumento de rendimiento proviene del aumento en el IPC.

La influencia de los registros interinstitucionales Modificando

En teoría, el razonamiento anterior nos dice que el tiempo de ejecución de una instrucción es el mismo sin o con una tubería. Sin embargo, se deben tener en cuenta los registros interpuestos entre las etapas de la tubería, que agregan un poco de latencia.Tenemos, por plantear:

  • t {\ t displaystyle}
    t

    latencia con la tubería;

  • t {\ t displaystyle}
    t

    La latencia sin tubería;

  • τ {\ displaystyle \ tau}
    \ tau

    La latencia de un registro entre etapas;

  • n {\ displaystyle n}
    {\ displaystyle N}

    el número de etapas de la tubería.

t = t + τ × n {\ displaystyle t = t + \ tau \ times n }

{\ displaystyle t = t + \ tau \ n veces}

En estas condiciones, la latencia de una etapa de la tubería de la pena Simplemente:

Tetage = tn = t + τ × nn = tn + τ {\ displaystyle t_ {baja} = {\ frac {t} {n}} = {\ frac {t + \ tau \ veces n} {N}} = {\ frac {t} {n}} + \ tau}

{\ mostrarstyle t_ {piso} = {\ frac {t} {n}} = { \ frac {T + \ tau \ times n} {n}} = {\ frac {t} {n}} + \ tau}

la frecuencia del procesador es el opuesto de esta latencia. Por lo tanto, es igual a:

f = 1 t n + τ {\ displaystyle f = {\ frac {1} {{\ frac {t} {n}} + \ tau}}}

{\ displaystyle F = {\ frac {1} {{}} {{n}} + \ tau}}}

El flujo, a saber el número de instrucciones Realizado por segundos se expresa de esta ecuación simplemente. Para un procesador libre de la tubería, este flujo es simplemente igual a 1 t {\ displaystyle 1 \ over t}

{\ displaystyle 1 \ over t}

. La tubería puede ejecutar n {\ displaystyle n}

{\ displaystyle n}

instrucciones al mismo tiempo, lo que multiplica la velocidad de flujo por n {\ displaystyle n}

{\ displaystyle n}

, lo que da: d = nt = n t + τ × n = 1 t n + τ {\ displaystyle d = { \ frac {n} {t}} = {\ frac {n} {T + \ tau \ times n}} = {\ frac {1} {{\ frac {t} {n}} + \ tau}}}

{\ displaystyle D = {\ frac {n} {}} = {\ frac {n} {T + \ tau \ times n}} = {\ frac {1} { {\ Frac {t} {n}} + \ tau}}}}

Esta ecuación nos da el caudal máximo teórico que puede alcanzar una tubería. Es suficiente para esto para que el número de pisos hacia el infinito, lo que da un caudal máximo de 1 τ {\ displaystyle 1 \ sobre \ tau}

{\ displaystyle 1 \ sobre \ tau}

. Por lo tanto, el flujo está limitado por la latencia de los registros. Obviamente, este límite es un límite teórico: ¡la latencia de un piso no puede ser cero!

La heterogeneidad de las latencias entre StagesModifier

SU Los procesadores reales, el razonamiento anterior, sin embargo, es válido, ya que algunos pisos tienen una ruta crítica más larga que otras. Luego estamos obligados a detenernos en el piso más lento, lo que reduce un poco la ganancia. La duración de un ciclo de reloj debe ser mayor que el tiempo de propagación de escenario más lento. Pero en todos los casos, el uso de una tubería permite que lo mejor sea multiplicar la frecuencia por el número de etapas. Esto ha presionado a algunos fabricantes de procesadores para crear procesadores con un número bastante alto de pisos para que trabajen a una frecuencia muy alta. Por ejemplo, se trata de Intel con procesador Pentium 4, cuya tubería hecha de 20 plantas para el Pentium 4 basado en la arquitectura de Willamette y Northwood, y 31 plantas para los basados en Prescott y la arquitectura Cedar Mill..

tubería heterogénea de un circuito

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *