Registro de dirección de memoria (rdm)
Clasificado en Informática
Escrito el en español con un tamaño de 3,6 KB
Segmentación de instrucciones (pipelining).
Estrategia de segmentación.
La segmentación de cauce es una forma particularmente efectiva de organizar el hardware de la CPU para realizar más de una operación al mismo tiempo. Consiste en descomponer el proceso de ejecución de las instrucciones en fases o etapas que permitan una ejecución simultánea. Se hace referencia a segmentación de cauce cuando se aceptan nuevas entradas antes de que algunas entradas aceptadas con anterioridad aparezcan como salidas. En el procesamiento de una instrucción, hay períodos en los que no se accede a memoria principal. Este tiempo podría utilizarse en captar la siguiente instrucción en paralelo con la ejecución de la actual. A esto se llama precaptación de instrucción.
Para conseguir una mayor aceleración, el cauce debe tener varias etapas: Captación de instrucción. Decodificación de instrucción (decodificar la instrucción, calcular operandos, captar operandos). Ejecución de instrucción. Escritura de resultado. Con esta descomposición las diversas etapas tendrán casi igual duración. Sin embargo, este diagrama supone que cada instrucción recorre las seis etapas del cause, cuando no siempre se dará este caso. Por ejemplo, una instrucción de carga no necesita escribir resultados. También supone que todas las etapas pueden funcionar en paralelo y que no hay conflictos de memoria. Sin embargo, la mayoría de los sistemas de memoria no permiten que se acceda simultáneamente a la memoria.
Otra dificultad es la instrucción de bifurcación condicional, que puede invalidar varias captaciones de instrucción. Un último problema, es que la etapa de calcular operandos puede depender del contenido de un registro que podría verse alterado por una instrucción previa que aún esté en el cauce. Hay dos factores que frustran este patrón de diseño de altas prestaciones: En cada etapa del cauce, hay algún gasto extra debido a la transferencia de datos de buffer a buffer, lo que puede prolongar el tiempo de ejecución total de una instrucción aislada. La cantidad de lógica de control necesaria para manejar dependencias de memoria y registros, y para optimizar el uso del cauce aumenta con el número de etapas.
Atascos de un cauce.
Son las situaciones que impiden a la siguiente instrucción que se ejecute en el ciclo que le corresponde.
Riesgos estructurales: son provocados por conflictos por los recursos, cuando dos instrucciones necesitan utilizar el mismo recurso hardware en el mismo ciclo (dos accesos simultáneos a memoria). Las posibles soluciones son la replicación de unidades funcionales y cachés diferenciadas de datos e instrucciones.
Por dependencia de datos: ocurren cuando los operandos fuente o destino de una instrucción no están disponibles en el momento en que se necesitan. Las soluciones son el adelantamiento de operandos o instrucciones NOP y reordenación de código.
Por dependencia de control: necesidad de tomar una decisión basada en los resultados de una instrucción mientras las otras se están ejecutando.