# data[].attributes.body
Supongamos  que un procesador simple tiene un ciclo de instrucción sencillo consistente solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución de la instrucción. En un procesador sin segmentación del cauce, las dos etapas se realizarían de manera secuencial para cada una de la instrucciones, como lo muestra la siguiente figura.

# data[].attributes.body
Desventaja de esta arquitectura, es que el bus de datos y direcciones  único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria,

obligando a que todos los accesos a esta sean secuenciales. Esto limita el grado de paralelismo.

# data[].attributes.body
Arquitectura Mauchly-Eckert (Von Newman)

# data[].attributes.body
Anteriormente la

secuencia de las operaciones  era dictada por el alambrado de la unidad de control, y cambiarla.

# data[].attributes.body
Arquitectura Harvard

# data[].attributes.body
Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío.

# data[].attributes.body
Completando el ejemplo anterior, en un procesador con segmentación, la unidad de búsqueda

comenzaría buscando el código de la primera instrucción en el primer ciclo de reloj. Durante el

segundo ciclo de reloj, la unidad de búsqueda obtendría el código de la instrucción 2, mientras que la

unidad de ejecución ejecuta la instrucción 1 y así sucesivamente. La siguiente figura muestra este

proceso.

# data[].attributes.body
Diagrama a bloques de la arquitectura Harvard
El hecho de tener un bus separado para el programa y otro para los datos permite que se lea el código de operación de una instrucción, al mismo tiempo se lee de la memoria de datos los operados de la instrucción previa. Así se evita el problema del cuello de botella de Von Newman y se obtiene un mejor desempeño.

# data[].attributes.body
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

# data[].attributes.attachment_link.title
Arquitectura Harvard | Explicación en 3 minutos | 😀👍

# data[].attributes.body
Se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los

códigos de instrucción del programa, como los datos que serán procesados por este.

# data[].attributes.body
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.

# data[].attributes.body
La segmentación es una técnica de implementación, que explota el paralelismo entre las instrucciones de un flujo secuencial. Tiene la ventaja sustancial que, de forma distinta a algunas técnicas de aumento de velocidad, no es visible al programador.