1. Canalización aritmética:
una canalización aritmética divide un problema aritmético en varios subproblemas para su ejecución en varios segmentos de canalización. Se utiliza para operaciones de coma flotante, multiplicaciones y otros cálculos. El canal aritmético del proceso o diagrama de flujo para la suma de punto flotante se muestra en el diagrama.
Suma de coma flotante mediante canalización aritmética:
en este caso se realizan las siguientes suboperaciones:
- Compara los exponentes.
- Alinea las mantisas.
- Suma o resta las mantisas.
- Normalizar el resultado
En primer lugar, se comparan los dos exponentes y se elige el mayor de los dos exponentes como el exponente resultante. La diferencia en los exponentes decide cuántas veces debemos desplazar el exponente más pequeño hacia la derecha. Luego, después de cambiar el exponente, ambas mantisas se alinean. Finalmente se realiza la suma de ambos números seguida de la normalización del resultado en el último segmento.
Ejemplo:
Consideremos dos números,
X=0.3214*10^3 and Y=0.4500*10^2
Explicación:
En primer lugar, se restan los dos exponentes para dar 3-2=1. Por lo tanto, 3 se convierte en el exponente del resultado y el exponente más pequeño se desplaza 1 veces a la derecha para dar
Y=0.0450*10^3
Finalmente los dos números se suman para producir
Z=0.3664*10^3
Como el resultado ya está normalizado, el resultado sigue siendo el mismo.
2. Pipeline de instrucciones:
en este se puede ejecutar un flujo de instrucciones mediante la superposición de las fases de obtención, decodificación y ejecución de un ciclo de instrucciones. Este tipo de técnica se utiliza para aumentar el rendimiento del sistema informático. Una canalización de instrucciones lee instrucciones de la memoria mientras se ejecutan instrucciones anteriores en otros segmentos de la canalización. Así podemos ejecutar múltiples instrucciones simultáneamente. El pipeline será más eficiente si el ciclo de instrucción se divide en segmentos de igual duración.
En el caso más general, la computadora necesita procesar cada instrucción en la siguiente secuencia de pasos:
- Obtener la instrucción de la memoria (FI)
- Decodificar la instrucción (DA)
- Calcular la dirección efectiva
- Obtener los operandos de la memoria (FO)
- Ejecutar la instrucción (EX)
- Guarde el resultado en el lugar adecuado
El diagrama de flujo para la canalización de instrucciones se muestra a continuación.
Veamos un ejemplo de canalización de instrucciones.
Ejemplo:
Aquí, la instrucción se obtiene en el primer ciclo de reloj en el segmento 1.
Ahora se decodifica en el siguiente ciclo de reloj, luego se obtienen los operandos y finalmente se ejecuta la instrucción. Podemos ver que aquí las fases de búsqueda y decodificación se superponen debido a la canalización. En el momento en que se decodifica la primera instrucción, la tubería obtiene la siguiente instrucción.
En el caso de la tercera instrucción vemos que es una instrucción bifurcada. Aquí, cuando se está decodificando, la cuarta instrucción se obtiene simultáneamente. Pero como es una instrucción bifurcada, puede apuntar a alguna otra instrucción cuando se decodifica. Por lo tanto, la cuarta instrucción se mantiene en espera hasta que se ejecuta la instrucción bifurcada. Cuando se ejecuta, la cuarta instrucción se vuelve a copiar y las otras fases continúan como de costumbre.