Departamento De Ciencias Exactas, Físicas Y Naturales
Ingeniería en sistemas de información y Licenciatura en sistemas de
información
TRABAJO PRÁCTICO N° 2
Asignatura: Arquitectura Avanzada de Hardware
Equipo de Cátedra: Ing. Juan Esteban Barros
Ing. Matías de la Puente
Alumnos:
Apellido y Nombre Carrera Matricula DNI
Cobresi Manresa, Juan Martin Ing. en Sistemas de EISI961 44.806.764
Información
MINISTERIO DE EDUCACIÓN DE LA NACIÓN
UNIVERSIDAD NACIONAL DE LA RIOJA
Departamento Académico de Ciencias Exactas, Físicas y
Naturales
Trabajo Práctico N°2
1- Enumere, defina brevemente y grafique los cuatro tipo de organización del
computador.
1) Una secuencia de instrucciones y una secuencia de datos (SISD, Single
Instruction Single Data): un único procesador interpreta una única secuencia
de instrucciones para operar con los datos almacenados en una única memoria.
Los computadores monoprocesador caen dentro de esta categoría.
2) Una secuencia de instrucciones y múltiples secuencias de datos (SIMD, de
Single Instruction Múltiple Data): una única instrucción máquina controla
paso a paso la ejecución simultánea y sincronizada de un cierto número de
elementos de proceso. Cada elemento de proceso tiene una memoria
asociada, de forma que cada instrucción es ejecutada por cada procesador con
un conjunto de datos diferentes. Los procesadores vectoriales y los matriciales
pertenecen a esta categoría.
3) Múltiples secuencias de instrucciones y una secuencia de datos (MISD): se
transmite una secuencia de datos a un conjunto de procesadores, cada uno de los
cuales ejecuta una secuencia de instrucciones diferente. Esta estructura
nunca ha sido implementada.
4) Múltiples secuencias de instrucciones y múltiples secuencias de datos
(MIMD): un conjunto de procesadores ejecuta simultáneamente secuencias de
instrucciones diferentes con conjuntos de datos diferentes. Los SMP, los
clusters y los sistemas NUMA son ejemplos de esta categoría.
2. ¿Qué es un procesador supersegmentado? ¿Cuáles son sus
ventajas y desventajas? Realice un diagrama de ejecución con
ciclos de instrucciones de 6 etapas.
Una arquitectura supersegmentada es aquella que utiliza más etapas, y de
grano más fino, en el cauce. Con más etapas puede haber más
instrucciones en el cauce al mismo tiempo, aumentando el paralelismo.
Se trata de arquitecturas monoprocesador que operan con una organización
interna en la que se segmenta la ejecución de las instrucciones a fin de iniciar
una (y finalizar otra) cada ciclo de operación.
Ventajas
✓ Mejora la velocidad de ejecución.
✓ La segmentación de cauce es una forma particularmente efectiva de
organizar la actividad concurrente de un computador.
✓ La segmentación es una técnica que explota el paralelismo entre las
instrucciones en un flujo secuencial de instrucciones. Tiene la ventaja
sustancial de que puede ser invisible al programador.
Desventajas
En la supersegmentación, hay ciertos gastos extra asociados con la
transferencia de instrucciones de una etapa a la siguiente
3. ¿Qué es un procesador superescalar? Indique ventajas y
desventajas. Realice un diagrama representativo con ciclos de
instrucciones de 6 etapas.
Un procesador superescalar es aquél que usa múltiples cauces de
instrucciones independientes. Cada cauce consta de múltiples etapas, de
modo que puede tratar varias instrucciones a la vez. El hecho de que
haya varios cauces introduce un nuevo nivel de paralelismo, permitiendo
que varios flujos de instrucciones se procesen simultáneamente. Saca
provecho de lo que se conoce como paralelismo en las instrucciones, que hace
referencia al grado en que las instrucciones de un programa pueden
ejecutarse en paralelo.
Los procesadores superescalares son multiprocesadores acoplados que
cooperan, comparten el acceso a una memoria global, a veces utilizan una
local llamada caché, comparten las E/S y son controlados por un sistema
operativo.
Ventajas
✓ Ejecutar instrucciones en diferentes cauces de manera independiente y
concurrente.
✓ El procesador puede eliminar algunas dependencias innecesarias
mediante el uso de registros adicionales y el renombramiento de las
referencias a registros del código original.
✓ La mayoría de las máquinas superescalares emplean métodos
tradicionales de predicción de saltos para aumentar su rendimiento.
Desventajas
Dependencia de datos verdadera.
Dependencia relativa al procedimiento.
Conflicto en los recursos.
Dependencia de salida.
Antidependencia.
Sus etapas son:
1. Lectura (fetch).
2. Decodificación (decode).
3. Lanzamiento (dispatch).
4. Ejecución (execute).
5. Escritura (writeback).
6. Finalización (retirement).
4. ¿Qué es la arquitectura multi-procesador o de memoria compartida?
¿Cómo se clasifican? Realice un esquema en bloques e indique
algunos de sus ventajas frente a los mono-procesadores.
La técnica de multiprocesamiento consiste en hacer funcionar varios
procesadores en forma paralela para obtener un poder de cálculo mayor que el
obtenido al usar un procesador de alta tecnología o al aumentar la disponibilidad
del sistema, es decir que se pueden utilizar múltiples CPUs para ejecutar
múltiples hilos dentro de un único proceso.
Cuentan con procesadores fuertemente acoplados y una arquitectura de
memoria compartida. Esto último se refiere a que le ofrecen al programador un
único especio de direcciones de memoria que todos los procesadores
comparten, por lo que todos los procesadores tienen acceso a cualquier parte
de la memoria a través de la carga y almacenamiento.
Ventajas
✓ Datos, sincronización y coordinación usando variables globales.
✓ Modelo simple de programación con un espacio único de memoria.
✓ Una sola copia del sistema operativo que coordina la distribución de los
recursos.
✓ Threads.
✓ Es fácil mover los procesos entre los procesadores.
✓ Menos potencia.
✓ Menos espacio.
✓ Más estable.
Desventajas
Performance de la memoria. La solución para esto es el uso de cache
pero esto genera otro problema, la coherencia de caches.
Acceso a la memoria complicado.
Fácil saturación.
Soporta pocos procesadores (2-16).
Poco escalables.
Estos se clasifican de acuerdo con la estrategia de distribución de memoria
compartida. Hay tres tipos:
1) UMA O SMP: Uniform Memory Access o Symetric Multiprocesor.
2) NUMA: No Uniform Memory Access
3) COMA: Cache Only Memory Architecture.
5. ¿Cuáles son los aspectos clave en el diseño del sistema operativo
de un procesador simétrico o SMP?
❖ Procesos concurrentes simultáneos: Las rutinas del sistema operativo
deben ser reentrantes para permitir que varios procesadores puedan
ejecutar simultáneamente el mismo código IS.
❖ Planificación: La planificación puede realizarla cualquier procesador,
por lo que deben evitarse los conflictos. El planificador debe asignar los
procesos preparados a los procesadores disponibles.
❖ Sincronización: Puesto que hay varios procesos que pueden acceder a
espacios de memoria y a recursos de E/S compartidos, debe
proporcionarse una sincronización efectiva. La sincronización asegura la
exclusión mutua y la ordenación de eventos.
❖ Gestión de memoria: La gestión de memoria en un multiprocesador
debe comprender todos los aspectos propios de los computadores
monoprocesadores, además, el sistema operativo debe explotar el
paralelismo que proporciona el hardware, por ejemplo, las memorias
multipuerto, para obtener mejores prestaciones.
❖ Fiabilidad y tolerancia a fallos: El sistema operativo debería hacer
posible una degradación gradual cuando se produce un fallo en un
procesador. El planificador y otros elementos del sistema operativo
deben reconocer la pérdida de un procesador y reestructurar las tablas
de gestión en consecuencia.
6. ¿Cuáles son las principales ventajas y desventajas de un
computador de tipo NUMA?
Ventajas
✓ La principal ventaja puede proporcionar un nivel de prestaciones efectivo
con mayores niveles de paralelismo que un SMP, sin que se precisen
cambios importantes en el software.
✓ Con varios nodos NUMA, el tráfico del bus en cualquier nodo se limita a
las peticiones que el bus puede manejar. No obstante, si muchos de los
accesos a memoria se producen a nodos remotos, las prestaciones
empiezan a reducirse.
✓ El uso de las cachés L1 y L2 permite reducir los accesos a memoria,
incluyendo los remotos. Si la mayoría del software tiene una localidad
temporal grande, los accesos a memorias remotas no deberían ser
muchos.
✓ Si el software tiene una localidad espacial buena y se utiliza memoria
virtual, los datos que se necesitan en la aplicación residirán en un
número limitado de páginas frecuentemente usadas, que pueden
cargarse en la memoria local de la aplicación que se está ejecutando.
Desventajas
Un computador CC-NUMA no parece tan transparente como un SMP; se
necesitan ciertos cambios en el software para adaptar el sistema
operativo y las aplicaciones desde un SMP a un CC-NUMA.
La disponibilidad. Se trata de una cuestión bastante compleja que
depende de la implementación exacta del CC-NUMA.
7. ¿Qué son los clusters o arquitectura multi-computador? ¿Cómo
se clasifican?Realice un esquema en bloques e indique algunos de
sus beneficios más importantes.
Un cluster es un grupo de computadores completos interconectados y
trabajando juntos como un solo recurso de cómputo, proporcionando la ilusión
de ser una única máquina, conectadas por una tarjeta de red comercial.
Se pueden clasificar por tipo: Centralizados (misma habitación) o
Descentralizados (mismo edificio)
Y también se pueden clasificar si tienen un disco compartido: Clusters con disco
compartido o Clusters sin disco compartido.
Beneficios
▪ Escalabilidad absoluta: es posible configurar clusters grandes que
incluso superan las prestaciones de los computadores independientes
más potentes. Un cluster puede tener decenas de máquinas, cada una de
las cuales puede ser un multiprocesador.
▪ Escalabilidad incremental: un cluster se configura de forma que sea
posible añadir nuevos sistemas al cluster en ampliaciones sucesivas. Así,
un usuario puede comenzar con un sistema modesto y ampliarlo a medida
que lo necesite, sin tener que sustituir el sistema de que dispone por uno
nuevo que proporcione mayores prestaciones.
▪ Alta disponibilidad: puesto que cada nodo del cluster es un computador
autónomo, el fallo de uno de los nodos no significa la pérdida del servicio.
En muchos casos, es el software el que proporciona automáticamente la
tolerancia a fallos.
▪ Mejor relación costo-prestaciones: al utilizar elementos estandarizados,
es posible es posible configurar un cluster con mayor o igual potencia de
cómputo que un computador independiente mayor, a mucho menos costo.
8. ¿Qué consideraciones hay que tener en cuenta en el diseño del
sistema operativo de un cluster?
• Gestión de fallos
➢ Alta disponibilidad
➢ Tolerante a fallos
➢ Transferencia por fallo (failover)
➢ Recuperación después de un fallo (failback)
• Equilibrado de carga
➢ Para satisfacer el escalado incremental
➢ Agregar automáticamente nuevas computadoras en la asignación
de tareas
➢ Los middleware necesitan reconocer los servicios que pueden
aparecer en los distintos miembros del cluster
• Computación paralela
➢ Paralelización mediante el compilador
➢ Paralelización realizada por el programador
➢ Computación paramétrica
9. Indique ventajas y desventajas de los clusters frente a los multi-
procesadores.
Ventajas
✓ Escalabilidad absoluta: es posible configurar clusters grandes que incluso
superan las prestaciones de los computadores independientes más
potentes. Un cluster puede tener decenas de máquinas, cada una de las
cuales puede ser un multiprocesador.
✓ Escalabilidad incremental: un cluster se configura de forma que sea
posible añadir nuevos sistemas al cluster en ampliaciones sucesivas. Así,
un usuario puede comenzar con un sistema modesto y ampliarlo a medida
que lo necesite, sin tener que sustituir el sistema de que dispone por uno
nuevo que proporcione mayores prestaciones.
✓ Alta disponibilidad: puesto que cada nodo del cluster es un computador
autónomo, el fallo de uno de los nodos no significa la pérdida del servicio.
En muchos casos, es el software el que proporciona automáticamente la
tolerancia a fallos.
✓ Mejor relación precio-prestaciones: al utilizar elementos estandarizados,
es posible es posible configurar un cluster con mayor o igual potencia de
cómputo que un computador independiente mayor, a mucho menos costo.
Desventajas
Un SMP resulta más fácil de gestionar y configurar que un cluster.
Un SMP necesita menos espacio físico y consume menos energía que un
cluster.
Los SMP son plataformas estables y bien establecidas.
10. Realice un cuadro comparativo de las 5 supercomputadoras más
potentes del mundo comparando rendimiento, consumo, cantidad
de núcleos y memoria.
Sunway
IBM Sequoia Titan Piz Daint Tianhe-2 TaihuLight
Rendimiento 17.173 Tflop/s 17.590 Tflop/s 19.590 Tflop/s 33.683 Tflop/s 93.014 Tflop/s
Consumo 7.890 kW 8.209 kW 2.272 kW 17.808 kW 15.371 kW
Núcleos 1.572.864 299.008 361.760 3.120.000 10.649.600
Memoria 1.572.864 GB 710.144 GB 340.480 GB 1.024.000 GB 1.310.720 GB
11. Defina rendimiento y describa cómo es posible aumentarlo. Exprese
las ecuaciones comúnmente empleadas.
Es un parámetro que indica el nivel de computación de la máquina y la velocidad
con que produce los resultados. Es directamente proporcional al costo y su
unidad de medida por excelencia es el tiempo.
Rendimiento (Throughput) = número medio de trabajos terminados por periodo
de tiempo, T.
Es posible aumentar el rendimiento incrementando los ciclos de reloj, la
ejecución de instrucciones en un orden diferente al que aparecen en el código
y el inicio de la ejecución de instrucciones que puede que no se tengan que
ejecutar o el procesamiento multihebra (multithreading).
El computador X es A veces más rápido que Y
El computador X es un n% más rápido que Y
Ley de Amdahl
A: Aceleración o mejor del sistema.
f: Fracción de tiempo de uso del subsistema.
k: Factor de mejor del subsistema mejorado.
12. ¿Qué establece la ley de Amdahl?
Llamada así por el arquitecto de ordenadores Gene Amdahl, se usa para
averiguar la mejora máxima de un sistema cuando solo una parte de éste
es mejorada. Establece que: “La mejora obtenida en el rendimiento de un
sistema debido a la alteración de uno de sus componentes está limitada por la
fracción de tiempo que se utiliza dicho componente”. Es decir, afirma que si se
mejora la ejecución de una parte del programa, no se mejora la ejecución
de todo el programa en la misma cantidad.
Lo indicado sería mejorar los procesos más lentos, porque al mejorar los
procesos más rápidos no mejoramos en sí mucho el rendimiento total de la
computadora. Al mejorar el rendimiento de los componentes más lentos
obtenemos la mejor mejora total del equipo.
Como se puede ver al mejorar el proceso más lento “A” obtenemos el mejor
rendimiento.
La fórmula original de la ley de Amdahl es la siguiente:
13. Suponer que estamos considerando una mejora que corra diez
veces más rápida que la máquina original, pero sólo es utilizable el
40% del tiempo. ¿Cuál es laaceleración global lograda al incorporar
la mejora?
La aceleración global lograda es del 56%
14. Supongamos que se quiere mejorar la velocidad de la CPU de
nuestra máquinaen un factor de cinco (sin afectar al rendimiento de
E/S). Supongamos también que la CPU se utiliza el 50% del tiempo,
y que el tiempo restante la CPU está esperando las E/S. ¿Cuál es la
aceleración global lograda al incorporar la mejora?
La aceleración global lograda es del 66%
15. ¿Qué establece la ley de Moore?
En 1965 Gordon Moore, estableció que el número de transistores por centímetro
cuadrado en un circuito se duplicaría cada dos años que se pueden integrar en
un chip.