1. 1.1 Modelos de arquitecturas de
cómputo.
1.1.1 Clásicas.
1.1.2 Segmentadas.
1.1.3 De multiprocesamiento
INTEGRANTES
SANTOS AMORES JUAN MANUEL - 21321206
SALDAÑ SALMERÓN BRAYAN ALEXIS – 21321192
Vélez Bello Omar – 21321254
Castañeda Molina Fernando – 21320962
Dillanes Cuevas Uciel Antonio - 21320992
2. 1.1.1 Clásicas.
Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de
tubos de vacío. Aun son usadas en procesadores empotrados de gama baja y son la base de
la mayoría de las arquitecturas modernas.
Existen dos modelos que sobresalen en este tipo de arquitecturas:
• Von Newman
• Harvard
3. Arquitectura Von Newman
Esta describe una arquitectura de diseño para un computador digital electrónico con partes
que constan de una unidad de procesamiento que contiene una unidad aritmético lógica y
registros del procesador, una unidad de control que contiene un registro de instrucciones y un
contador de programa, una memoria para almacenar tanto datos como instrucciones,
almacenamiento masivo externo, y mecanismos de entrada y salida. Ejemplos del modelo de
Von Newman
4. Esta arquitectura se basa en dos conceptos básicos:
1) Utilizan sistemas binarios: Simplifica la electrónica y da mayor inmunidad al ruido.
2) Almacena la secuencia de programa en memoria: Da mayor velocidad para
procesar información.
La principal 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 (acciones que se pueden realizar al mismo tiempo) y por lo
tanto, el desempeño de la computadora. Este efecto se conoce como el cuello de botella de
Von Newman.
5. En esta figura se puede observar claramente
la afirmación anterior, ya que tiene un único bus,
surge el famoso cuello de botella.
6. Mas a detalle, el procesador se subdivide en una unidad de control (C.U.), una unidad lógica
aritmética (A.L.U.) y una serie de registros. Los registros sirven para almacenar internamente
datos y estado del procesador. La unidad aritmética lógica proporciona la capacidad de
realizar operaciones aritméticas y lógicas. La unidad de control genera las señales de control
para leer el código de las instrucciones, decodificarlas y hacer que la ALU las ejecute.
Y también se implemento una mejora en los buses ya que se subdividieron
en tres categorías diferentes;
- Bus de control: Líneas desde donde y hacia donde va dirigida la información y la secuencia
de transferencia.
- Bus de datos: Líneas por donde fluye información entre distintas partes de la computadora y
es bidireccional.
- Bus de direcciones: Líneas que permiten seleccionar la localidad de memoria y dirección a
los puertos de E/S.
7. Aquí esta ejemplificado, como fueron
re-definidos los buses
para solucionar el problema de saturación de
datos.
8. Características
•
Usa una única memoria para datos e instrucciones.
• Las instrucciones y los datos viajan por el mismo bus de comunicación.
• Procesamiento secuencial, ejecutando una instrucción a la vez.
• Fácil de programar y económica en hardware.
• Presenta el cuello de botella de Von Neumann, ya que el procesador debe esperar para
acceder a datos e instrucciones.
• Riesgo de sobrescritura de código al tratar datos e instrucciones en la misma memoria.
9. Ventajas:
Diseño más simple y económico → Al utilizar una única memoria para datos e
instrucciones, el hardware es más fácil de diseñar y construir.
Flexibilidad en la programación → Permite modificar los programas almacenados en
memoria sin cambios en el hardware.
Uso eficiente de la memoria → Como todo está en un solo espacio de memoria, no hay
desperdicio de almacenamiento entre datos e instrucciones.
Desventajas:
Cuello de botella de Von Neumann → El procesador debe acceder a la memoria para
obtener tanto instrucciones como datos, lo que ralentiza el sistema.
Riesgo de sobrescribir código → Como los datos y las instrucciones están en la misma
memoria, un error en el código podría modificar accidentalmente las instrucciones del
programa.
Menor velocidad en comparación con Harvard → Debido a la competencia entre
instrucciones y datos por el mismo bus de memoria.
Ventajas y Desventajas
10. Arquitectura Harvard
Esta arquitectura surgió en la universidad del mismo nombre, poco después de que la arquitectura
Von Newman apareciera en la universidad de Princeton. Al igual que en la arquitectura Von Newman,
el programa se almacena como un código numérico en la memoria, pero no en el mismo espacio
de memoria ni en el mismo formato que los datos. Por ejemplo, se pueden almacenar las
instrucciones en doce bits en la memoria de programa, mientras los datos de almacenan en 8 bits en
una memoria aparte.
Este es el
diagrama de
bloques de la
Arquitectura
Harvard.
11. 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.
En la actualidad la mayoría de los procesadores modernos se conectan al exterior de manera
similar a a la arquitectura Von Newman, con un banco de memoria masivo único, pero
internamente incluyen varios niveles de memoria cache con bancos separados en cache de
programa y cache de datos, buscando un mejor desempeño sin perder la versatilidad.
12. Caracteristicas
• Usa memorias separadas para datos e instrucciones.
• Permite el acceso simultáneo a datos e instrucciones, mejorando el rendimiento.
• Mayor seguridad, evitando que los datos sobrescriban el código del programa.
• Usada en microcontroladores, DSP (Procesadores de Señal Digital) y sistemas embebidos.
• Mayor complejidad en el diseño y mayor costo.
• Puede haber desperdicio de memoria, ya que las áreas para datos e instrucciones no se
pueden compartir.
13. Ventajas:
Mayor velocidad de procesamiento → Se pueden acceder a instrucciones y datos al
mismo tiempo gracias a memorias separadas, evitando el cuello de botella.
Mayor seguridad y estabilidad → Al separar las instrucciones de los datos, se reduce el
riesgo de que un error en la memoria modifique el código del programa.
Optimización en el uso de caché → Se pueden tener cachés independientes para datos e
instrucciones, mejorando el rendimiento.
Desventajas:
Mayor complejidad y costo → Requiere dos conjuntos de buses y memorias separadas, lo
que aumenta la dificultad en el diseño y el consumo de recursos.
Menos flexibilidad en la gestión de memoria → No permite reutilizar la memoria destinada
a instrucciones para almacenar datos, lo que puede generar desperdicio.
Mayor consumo de energía → Al requerir más hardware para la separación de memorias y
buses, el consumo energético es mayor.
Ventajas y Desventajas
14. 1.1.2 Arquitectura
Segmentadas
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.
El procesador se divide en varias unidades funcionales independientes y se dividen entre
ellas el procesamiento de las instrucciones. Para comprender mejor esto, 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.
Búsqueda y ejecución en
secuencia de tres
instrucciones en un
procesador sin
segmentación del cause.
15. En un procesador con segmentación del cause, cada una de estas etapas se asigna a una
unidad funcional diferente, la búsqueda a la unidad de búsqueda y la ejecución a la unidad de
ejecución. Estas unidades pueden trabajar en forma paralela en instrucciones diferentes.
Estas unidades se comunican por medio de una cola de instrucciones en la que la unidad de
búsqueda coloca los códigos de instrucción que leyó para que la unidad de ejecución los
tome de la cola y los ejecute. Esta cola se parece a un tubo donde las instrucciones entran
por un extremo y salen por el otro. De esta analogía proviene el nombre en ingles: Pipelining
o entubamiento.
16. 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.
Búsqueda y ejecución en
secuencia de tres
instrucciones en un
procesador con
segmentación del cause.
17. Caracteristicas
Divide el procesamiento en múltiples etapas, permitiendo que varias instrucciones se ejecuten al
mismo tiempo.
Usa una estructura en la que cada etapa realiza una parte del procesamiento y luego pasa la tarea
a la siguiente.
Permite un mayor aprovechamiento del procesador al evitar tiempos muertos entre instrucciones.
Reduce el tiempo de ejecución promedio de las instrucciones.
Puede presentar problemas de dependencia de datos, lo que requiere mecanismos de resolución
como adelantamiento de datos o predicción de saltos.
Se usa en la mayoría de los procesadores modernos para mejorar la velocidad de ejecución.
18. Ventajas y Desventajas
Mayor rendimiento → Se pueden ejecutar varias instrucciones simultáneamente, aumentando la
velocidad de procesamiento.
Mejor aprovechamiento de los recursos → Cada unidad del procesador trabaja en una etapa
específica sin estar inactiva.
Ejecución más rápida sin aumentar la frecuencia del reloj → Reduce la necesidad de mejorar
la velocidad del procesador, lo que ahorra energía.
Uso eficiente en procesadores modernos → Es la base del funcionamiento de los procesadores
RISC y los núcleos modernos de CPU.
Ideal para ejecución en paralelo → Se puede combinar con otras técnicas como la ejecución
superescalar para aumentar aún más el rendimiento.
19. Desventajas
Dependencias entre instrucciones → Algunas instrucciones pueden necesitar datos que aún no
han sido calculados, causando retrasos.
Problemas con saltos y bifurcaciones → Si una instrucción de salto cambia el flujo del
programa, las etapas en proceso pueden volverse inválidas y deben ser descartadas.
Mayor complejidad en el diseño del hardware → Se requieren mecanismos de control
adicionales para evitar conflictos y optimizar el flujo de ejecución.
Dificultad en la depuración y programación → Los errores pueden ser más difíciles de detectar
debido a la ejecución simultánea de instrucciones.
No todas las tareas se benefician del pipelining → En algunos programas con muchas
dependencias de datos o saltos frecuentes, la segmentación puede no ser eficiente.
20. 1.1.3 Arquitectura de
Multiprocesamiento
Cuando se desea incrementar el desempeño más aya de lo que permite la técnica de
segmentación del cauce (limite teórico de una instrucción por ciclo de reloj), se requiere utilizar
más de un procesador para la ejecución del programa de aplicación.
Las CPU de multiprocesamiento se clasifican de la siguiente manera:
● SISO – (Single Instruction, Single Operand ) computadoras independientes
● SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales
● MISO – (Multiple Instruction, Single Operand ) No implementado
● MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters
Procesadores vectoriales – Son computadoras pensadas para aplicar un mismo algoritmo
numérico a una serie de datos matriciales, en especial en la simulación de sistemas físicos
complejos.
21. Caracteristicas
Permite la ejecución simultánea de múltiples tareas o procesos.
Usa varios procesadores que comparten memoria y recursos.
Puede ser simétrico (SMP) o asimétrico (AMP), dependiendo de cómo se distribuyen las tareas.
Mejora la eficiencia en sistemas que requieren alto rendimiento, como servidores y bases de datos
.
Puede reducir el tiempo de procesamiento en comparación con sistemas monoprocesador.
Requiere técnicas avanzadas de sincronización y administración de tareas para evitar conflictos.
22. Ventajas y Desventajas
Mayor rendimiento → Al tener varios procesadores trabajando en paralelo, se pueden ejecutar
más tareas en menos tiempo.
Mayor eficiencia en sistemas multitarea → Es ideal para entornos donde múltiples procesos
deben ejecutarse al mismo tiempo, como servidores y bases de datos.
Reducción del tiempo de respuesta → Permite que las aplicaciones respondan más rápido,
especialmente en sistemas con alta demanda.
Mejor tolerancia a fallos → Si un procesador falla, los demás pueden continuar operando,
aumentando la confiabilidad del sistema.
Aprovechamiento óptimo de recursos → Puede distribuir mejor la carga de trabajo entre los
procesadores disponibles.
23. Desventajas
Mayor complejidad en la programación → Es más difícil programar sistemas multiprocesador
debido a la necesidad de sincronización y comunicación entre procesadores.
Mayor consumo de energía → Al utilizar múltiples procesadores, el consumo de energía y la
generación de calor aumentan.
Costo más elevado → Requiere hardware más avanzado y sistemas operativos capaces de
gestionar múltiples procesadores.
Problemas de escalabilidad → No todos los programas pueden dividirse eficientemente entre
múltiples procesadores, lo que limita la mejora en el rendimiento.
Posibles cuellos de botella → Si la memoria o los buses de datos no son lo suficientemente
rápidos, pueden convertirse en un punto de congestión.