Las arquitecturas segmentadas o con
segmentación del cauce buscan
mejorar el desempeño realizando
paralelamente varias etapas del ciclo
de instrucción al mismo tiempo.
Generalidades
Un ciclo de instrucción (también llamado
ciclo de fetch-and-execute o ciclo de
fetch-decode-execute en inglés) es el período
que tarda la unidad central de proceso (CPU)
en ejecutar una instrucción de lenguaje
máquina.
Comprende una secuencia de acciones
determinada que debe llevar a cabo la CPU
para ejecutar cada instrucción en un programa.
Cada instrucción del juego de instrucciones
de una CPU puede requerir diferente número
de ciclos de instrucción para su ejecución.
Un ciclo de instrucción está formado
por uno o más ciclos máquina.
La segmentación (pipelining) es una técnica de
implementación por la cual se solapa la
ejecución de múltiples instrucciones. Hoy día, la
segmentación es la técnica de implementación
clave utilizada para hacer CPU rápidas.
La segmentación es como una línea de
ensamblaje: cada etapa de la segmentación
completa una parte de la instrucción.
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.
Tipos de causes
Unifunción: ejecutan un único proceso.
Multifunción: pueden ejecutar varios procesos.
Estáticos: en un instante determinado sólo pueden ejecutar uno.
Dinámicos: pueden ejecutar simultáneamente varios procesos.
Lineal: a cada etapa sólo le puede seguir otra etapa concreta.
No lineal: se pueden establecer recorridos complejos de las etapas.