GeeksforGeeks
Para mejorar el rendimiento de una CPU tenemos dos opciones:
1) Mejorar el hardware introduciendo circuitos más rápidos.
2) Organice el hardware de manera que se pueda realizar más de una operación al mismo tiempo.
Dado que hay un límite en la velocidad del hardware y el costo de los circuitos más rápidos es bastante alto, tenemos que adoptar la segunda opción.
Canalización : La canalización es un proceso de disposición de elementos de hardware de la CPU de tal manera que se incrementa su rendimiento general. La ejecución simultánea de más de una instrucción tiene lugar en un procesador canalizado.
Veamos un ejemplo de la vida real que funciona en el concepto de operación canalizada. Considere una planta de envasado de botellas de agua. Deje que haya 3 etapas por las que una botella debe pasar, Insertando la botella(I), Llenando el agua en la botella(F) y Sellando la botella(S). Consideremos estas etapas como etapa 1, etapa 2 y etapa 3, respectivamente. Deje que cada etapa tome 1 minuto para completar su operación.
Ahora, en una operación no canalizada, primero se inserta una botella en la planta, después de 1 minuto se mueve a la etapa 2 donde se llena el agua. Ahora, en la etapa 1 no está pasando nada. Del mismo modo, cuando la botella se mueve a la etapa 3, tanto la etapa 1 como la etapa 2 están inactivas. Pero en operación por tuberías, cuando la botella está en la etapa 2, se puede cargar otra botella en la etapa 1. De manera similar, cuando la botella está en la etapa 3, puede haber una botella cada una en la etapa 1 y la etapa 2. Así que, después de cada minuto, obtenemos una botella nueva al final de la etapa 3. Por lo tanto, el tiempo medio empleado para la fabricación de 1 botella es :
Sin canalización = 9/3 minutos = 3m
I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)
Con la canalización = 5/3 minutos = 1.67 m
I F S | || I F S || | I F S (5 minutes)
por Lo tanto, canalizado operación, aumenta la eficiencia de un sistema.
Diseño de una canalización básica
- En un procesador canalizado, una canalización tiene dos extremos, el extremo de entrada y el extremo de salida. Entre estos extremos, hay múltiples etapas / segmentos de tal manera que la salida de una etapa se conecta a la entrada de la siguiente etapa y cada etapa realiza una operación específica.Los registros de interfaz
- se utilizan para mantener la salida intermedia entre dos etapas. Estos registros de interfaz también se llaman latch o buffer.
- Todas las etapas de la canalización junto con los registros de la interfaz están controladas por un reloj común.
Ejecución en un procesador segmentado
La secuencia de ejecución de instrucciones en un procesador segmentado se puede visualizar utilizando un diagrama espacio-temporal. Por ejemplo, considere un procesador con 4 etapas y deje que se ejecuten 2 instrucciones. Podemos visualizar la secuencia de ejecución a través de los siguientes diagramas espacio-temporales:
Ejecución no superpuesta:
Stage / Cycle | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
S1 | I1 | I2 | ||||||
S2 | I1 | I2 | ||||||
S3 | I1 | I2 | ||||||
S4 | I1 | I2 |
Total time = 8 Cycle
Overlapped execution:
Stage / Cycle | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
S1 | I1 | I2 | |||
S2 | I1 | I2 | |||
S3 | I1 | I2 | |||
S4 | I1 | I2 |
Total time = 5 Ciclo
Etapas de canalización
El procesador RISC tiene canalización de instrucciones de 5 etapas para ejecutar todas las instrucciones del conjunto de instrucciones RISC. Las siguientes son las 5 etapas de la canalización RISC con sus respectivas operaciones:
- Etapa 1 (Obtención de instrucciones)
En esta etapa, la CPU lee instrucciones de la dirección de la memoria cuyo valor está presente en el contador de programas. - Etapa 2 (Decodificación de instrucciones)
En esta etapa, se decodifica la instrucción y se accede al archivo de registro para obtener los valores de los registros utilizados en la instrucción. - Etapa 3 (Ejecución de instrucciones)
En esta etapa, se realizan operaciones ALU. - Etapa 4 (Acceso a la memoria)
En esta etapa, los operandos de memoria se leen y escriben desde/hacia la memoria que está presente en la instrucción. - Etapa 5 (Volver a escribir)
En esta etapa, el valor calculado/obtenido se vuelve a escribir en el registro presente en las instrucciones.
Rendimiento de un procesador canalizado
Considere una canalización de segmento ‘ k ‘con tiempo de ciclo de reloj como ‘Tp’. Deje que haya’ n ‘ tareas que completar en el procesador canalizado. Ahora, la primera instrucción va a tomar ciclos’ k ‘para salir de la tubería, pero las otras instrucciones’ n-1 ‘solo tomarán un ciclo’ 1 ‘cada una, es decir, un total de ciclos’ n – 1′. Por lo tanto, el tiempo necesario para ejecutar ‘n’ instrucciones en un procesador segmentado:
ETpipeline = k + n – 1 cycles = (k + n – 1) Tp
En el mismo caso, para un procesador no segmentado, el tiempo de ejecución de ‘n’ instrucciones será:
ETnon-pipeline = n * k * Tp
Así, el aumento de velocidad del procesador segmentado sobre el procesador no segmentado, cuando ejecutado en el mismo procesador es:
S = Performance of pipelined processor / Performance of Non-pipelined processor
a Medida que el rendimiento de un procesador es inversamente proporcional al tiempo de ejecución, tenemos,
S = ETnon-pipeline / ETpipeline => S = / S = /
Cuando el número de tareas ‘n’ son significativamente mayores que k, es decir, n >> k
S = n * k / n S = k
donde » k » es el número de etapas en la tubería.
También, Efficiency = Given speed up / Max speed up = S/Smax
Sabemos que, Smax = k
So, Efficiency = S/k
Throughput = Número de instrucciones/Tiempo total para completar las instrucciones
So, Throughput = n/(k + n – 1) * Tp
Nota: El valor de ciclos por instrucción (CPI) de un procesador canalizado ideal es 1
2 para Dependencias y Peligro de Datos y Conjunto 3 para Tipos de canalización y Estancamiento.