Segmentacion en procesadores(mejora del rendimiento)
Fig. 5. 1 Lavado de 4 cargas sin segmentación.
Ahora, si contamos con los recursos suficientes, tal vez sea posible traslapar algunas tareas, de manera que después de que la carga A se extraiga de la lavadora y pase a lasecadora, la carga B puede introducirse en la lavadora. De manera que al mismo tiempo se tendría trabajando a la lavadora y a la secadora con dos cargas diferentes. En la media hora siguiente, puede doblarse la ropa que corresponde a la carga A, pasar la carga B a la secadora e introducir la carga C en la lavadora. De esta manera se traslaparían diferentes cargas de ropa durante el proceso de lavado ypara el lavado de 4 cargas se requeriría solo de 3.5 horas, esto se muestra en la figura 2. Lo que tenemos es la aplicación de segmentación en el proceso de lavado. Y cada uno de los pasos en los que se dividió el proceso se conoce como una etapa de la segmentación o un segmento.
Fig. 5. 2 Lavado de 4 cargas con segmentación.
Puede notarse en la figura 5.2 que el tiempo invertido para unacarga de ropa sigue siendo de dos horas, lo que se disminuyó fue el tiempo invertido para las cuatro cargas. En otras palabras, la segmentación no disminuye el tiempo de ejecución pero si aumenta la productividad, y de esta manera se aumenta el rendimiento. Un proceso similar se aplicará a la ejecución de las instrucciones. La ejecución de cada instrucción se dividirá en diferentes etapas, conectandocada una a la siguiente, para formar una especie de cauce - las instrucciones entrarán por un extremo, se procesarán a través de las etapas y saldrán por el otro extremo. La productividad de la segmentación está determinada por la frecuencia con que una instrucción salga del cauce. Como las etapas están conectadas entre sí, todas las etapas deben estar listas para proceder al mismo tiempo. Eltiempo requerido para desplazar una instrucción, un paso, a lo largo del cauce es un ciclo de reloj. La duración del ciclo está determinada por el tiempo que necesita la etapa más lenta (porque todas las etapas progresan a la vez). Las etapas en las que se puede dividir la ejecución de las instrucciones MIPS son: 1. Atrapar las instrucciones de la memoria. 2. Leer los registro mientras se decodificala instrucción. 3. Ejecutar la instrucción o calcular una dirección. 4. Accesar un operando en memoria de datos. 5. Escribir el resultado en un registro. Algunas instrucciones no requerirían de todas las etapas de segmentación, a excepción de las instrucciones de carga, las cuales si utilizan todas. Si por ejemplo, ejecutamos 3 instrucciones de carga en una implementación no segmentada (similar auna implementación multiciclos), la ejecución se comportaría como:
Programa lw $1, 100($0) Fetch Reg Tiempo ------------------------------------------------------------------> ALU Data Reg
lw $2, 200($0) lw $3, 300($0)
Fetch
Reg
ALU
Data
Reg Fetch ....
Fig. 5. 3 Tres instrucciones de carga sin segmentación.
Hasta que concluye la primer carga, se continúa con la...
Regístrate para leer el documento completo.