Arquitectura 12_ programación dinámica de instrucciones

 El compilador básicamente desenrolla el ciclo cambiando el nombre de los registros en cada iteración del ciclo.

El hardware también puede lograr el mismo efecto mediante el cambio de nombre del registro y la ejecución fuera de orden

Programación dinámica

  -Marcador

  -Algoritmo de Tomásulo

Detección y programación riesgosa

1. Si hay correlación de datos, el mecanismo de detección de hardware hará lo siguiente para conocer la correlación y eliminar la programación dinámica.

   -Pausar instrucción

   -Detener comando buscar y ejecutar comando

2. Programación estática (comenzando en los 60, popular en los 80) para eliminar la programación dinámica

     El software es responsable de programar instrucciones para reducir el ralentí

3. Programación dinámica

     El hardware reordena la ejecución de las instrucciones para reducir el ralentí

     Propósito: Resolver los riesgos que conllevan WAW, WAR y RAW durante la ejecución del programa

     Ventajas: a. Manejo de correlaciones desconocidas durante la compilación, simplificando el compilador b. Puede ejecutarse eficazmente en diferentes canalizaciones

     Desventajas: aumenta enormemente la complejidad del hardware

     Dos técnicas de programación dinámica: a. Cuadro de indicadores b. Algoritmo de Tomasulo

Marcador

1. Cray utilizó el marcador de 1964 para CDC 6600

2. El cuadro de indicadores permite que las instrucciones se ejecuten fuera de orden, siempre que:

    Recursos suficientes, sin datos relacionados

    El marcador resuelve dinámicamente los problemas relacionados con escribir antes de leer.

    Las instrucciones se pueden ejecutar fuera de orden

3. Principios básicos

   a. Cada instrucción pasa por el marcador y registra la información relacionada con los datos entre cada instrucción

   b) Si el marcador considera que una instrucción no se puede ejecutar inmediatamente, detectará cambios de hardware para determinar cuándo se puede ejecutar.

Procesamiento del marcador

1. El segmento de ID de canalización se divide en dos etapas

     a. Instrucciones de análisis de flujo de salida, verifique la estructura relacionada

     b. Leer operando: hasta que no haya correlación de datos, leer el operando

2. Si hay una correlación WAR o WAW, el marcador suspenderá la ejecución de esta instrucción y no continuará hasta que se elimine la correlación.

3. La estructura básica del cuadro de indicadores

Proceso de ejecución del cuadro de indicadores

1. Problema

     a. Vea si los componentes funcionales requeridos por esta instrucción están disponibles

     b. Si el registro de destino utilizado por la instrucción que se está ejecutando es diferente de esta instrucción

        -Ver si WAW es relevante

 Si el componente funcional no está libre, o el registro de destino utilizado por la instrucción que se está ejecutando es el mismo, esta instrucción no puede fluir.

2. Leer operandos

    a. Las instrucciones que fluyeron y aún se están ejecutando no escriben en el registro de operandos de origen de esta instrucción

    b. Una unidad funcional en funcionamiento ha completado la operación de escritura en este registro.

    c. Resolver dinámicamente archivos RAW relacionados

Los dos primeros completaron la función de segmento de identificación original

3. Ejecución (Ejecución)

   a. Empiece después de obtener el operando

   b. Cuando se genere el resultado, modifique el marcador

   c. Los componentes de la tubería FP tomarán varios ciclos

4. Escriba el resultado: marque WAR relacionado

En las siguientes situaciones, la instrucción no puede escribir el resultado:

  -La instrucción anterior no ha leído el operando (relacionado con leer primero y luego escribir)

  -Uno de los registros de operandos de origen es el mismo que el registro de destino de esta instrucción

Estructura del marcador

1. Esencialmente una tabla de estado de componentes funcionales

2. Utilice 9 campos para registrar el estado de cada componente funcional

   Ocupado: indica si la función está funcionando

   Op: operación realizada actualmente por la función

   Fi: número de registro de destino

   Fj, Fk: número de registro de origen

   Qj, Qk: componentes funcionales para escribir resultados en Rj, Rk

   Rj, Rk: indica si Fj, Fk están listos y si se han utilizado

Ejemplo de programa

    

El primer disparo: la primera instrucción: flujo de salida (aplique para usar partes enteras, verifique si F6 y R2 están listos (listos en este momento))

Segundo tiempo: la primera instrucción: obtén el valor de R2 y 36

              La segunda instrucción: juzgue si puede fluir (la instrucción LD necesita usar componentes enteros, verificar el marcador y encontrar que está ocupada y que la primera instrucción la solicita. En este momento, la segunda instrucción está bloqueada en estructura no puede fluir)

 

 

 

 

 

  

El tercer tiempo: la primera instrucción: complete el cálculo de la dirección (agregue el contenido de R2 y 36), y luego suelte R2.

               En este momento, la segunda instrucción no puede fluir, entonces, ¿puede fluir la tercera instrucción?

                -De acuerdo con nuestro acuerdo, las instrucciones anteriores no saldrán ni las siguientes instrucciones, así es como diseñamos la máquina.

Cuarto tiempo: la primera instrucción: obtenga el resultado y escríbalo en F6, y al mismo tiempo suelte la parte entera

Quinto tiempo: Segunda instrucción: flujo de salida

    

Beat 6: la segunda instrucción: leer operando

               La tercera instrucción: salida

Séptimo tiempo: la segunda instrucción: calcula la dirección (R3 + 45) y luego suelta R3

               La tercera instrucción: debido a que debe calcularse a partir del componente entero utilizado en la segunda instrucción, no puede avanzar

               La cuarta instrucción: flujo de salida, (la instrucción de resta requiere el componente de suma (inactivo (listo)) y F8 está libre)

 

    

Octavo tiempo: el primer tiempo de la mitad: el resultado de la segunda instrucción se escribe en F2, en este momento no se puede utilizar directamente para las siguientes instrucciones

              Segunda mitad del tiempo: las siguientes instrucciones (la tercera y la cuarta) obtienen el resultado de F2 (se puede entender que se lee la primera mitad del tiempo y se lee la segunda mitad del tiempo)

              La quinta instrucción: salida

El noveno tiempo: la tercera instrucción, la cuarta instrucción: leer operando

               La quinta instrucción: debido a que el F0 requerido requiere el resultado F0 de la instrucción de multiplicación anterior, el bloqueo

               La sexta instrucción: el componente de suma está ocupado y no puede fluir

El décimo tiempo, el undécimo tiempo: la tercera instrucción, la cuarta instrucción: ejecutar dos tiempos (la resta ejecuta dos tiempos para completar)

 

 

 

               

    

El duodécimo tiempo: la instrucción de resta escribe el resultado de nuevo en F8, liberando el componente de suma

Beat 13: La sexta instrucción: salida

    

Beat 14: la sexta instrucción: leer operando

Beat 15 y Beat 16: realiza dos tiempos

 

 

    

Beat 17: ¿Se puede escribir la instrucción de suma? Compruebe si está relacionado con leer primero y escribir después -Sí

Beat 19: se ejecuta la instrucción de multiplicación

Beat 20: la instrucción de multiplicación escribe el resultado

    

Vigésimo primer tiempo: La instrucción de división obtiene el valor de F0, lee los operandos (F0, F6), en este momento F6 no está ocupado

Latido de veintidós segundos: escribe la instrucción de suma

Hasta el 61 ° tiempo: se ejecuta la división

 

   

Beat 62: escribe el resultado de nuevo y todo el programa se ejecuta hasta su finalización

Se puede ver en la figura que el orden de lectura es secuencial, los operandos de lectura y la ejecución están fuera de orden, y el orden de los resultados de escritura también está fuera de orden.

¿Qué se agrega?

        Es un gran número de conexiones, desde el marcador hasta todos los componentes funcionales, todos los registros.

Supongo que te gusta

Origin blog.csdn.net/weixin_42596333/article/details/104221304
Recomendado
Clasificación