<aside> 🧠

La segmentación de instrucciones, disponiendo el proceso de producción puede trabajar sobre los productos en varias etapas simultáneamente. Este proceso es conocido como segmentacion de cauce (pipelining), en un extremo se aceptan nuevas entradas antes de que algunas entradas aceptadas con anterioridad aparezcan como salidas en el otro extremo.

</aside>

Introducción a la segmentación de instrucciones

En los computadores se pueden conseguir mayores prestaciones aprovechando los progresos en la tecnología, tales como una circuitería más rápida. Los avances en la organización del procesador también pueden mejorar las prestaciones.

Estrategia de segmentación

La segmentación de instrucciones es similar al uso de una cadena de montaje en una fábrica. Una cadena de montaje saca partido del hecho de que el producto pasa a través de varias etapas de producción. Disponiendo el proceso de producción como una cadena de montaje se puede trabajar sobre los productos en varias etapas simultáneamente. Este proceso es conocido como segmentación de cauce («pipelining»), porque, como en una tubería o cauce (pipeline), en un extremo se aceptan nuevas entradas antes de que algunas entradas aceptadas con anterioridad aparezcan como salidas en el otro extremo.

Consideremos la subdivisión del procesamiento de una instrucción en dos etapas: captar instrucción y ejecutar instrucción. Hay periodos en la ejecución de una instrucción 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. El cauce tiene dos etapas independientes.

  1. La primera etapa capta una instrucción y la almacena en un buffer. Cuando la segunda etapa está libre, la primera le pasa la instrucción almacenada.
  2. La segunda etapa ejecuta la instrucción, la primera etapa utiliza algún ciclo de memoria no usado para captar y almacenar la siguiente instrucción. Esto se conoce como prebúsqueda/precaptación de instrucción («instruction prefetch») o solapamiento de la captación («fetch overlap»).

Diagrama de segmentación

Consideremos la siguiente descomposición del procesamiento de una instrucción.

  1. Captar instrucción (Fetch Instruction, FI): leer la supuesta siguiente instrucción en un buffer.
  2. Decodificar instrucción (Decode Instruction, DI): determinar el código de operación y los campos de operando.
  3. Calcular operandos (Calculate Operands, CO): calcular la dirección efectiva de cada operando fuente. Esto puede involucrar direccionamiento mediante un desplazamiento, indirecto a través de registro, indirecto, u otras formas de calcular la dirección.
  4. Captar operandos (Fetch Operands, FO): captar cada operando que resida en memoria. Los operandos en registros no tienen que ser captados.
  5. Ejecutar instrucción (Execute Instruction, EI): realizar la operación indicada y almacenar el resultado, si lo hay, en la posición de operando destino especificada.
  6. Escribir operando (Write Operand,WO): almacenar el resultado en memoria.

Untitled

Untitled

Tratamiento de saltos