Arquitectura de Computadoras
Arquitectura de Computadoras
Arquitectura de Computadoras
ARQUITECTURA DE COMPUTADORAS
1. OBJETIVOS
1) Manejar medidas de performance que permitan comparar diversos sistemas de Computadora.
2) Emplear criterios para diseñar un set de instrucciones y describir un set para un procesador RISC.
3) Evaluar ventajas y desventajas de la arquitectura RISC frente a la CISC.
4) Dimensionar el sistema de Entrada/Salida de una computadora y definir para casos concretos de
E/S la disminución de performance del CPU debido a ella.
5) Calcular el factor de aceleración, rendimiento y tiempos de ejecución de sistemas que incorporan
paralelismo y pipelining.
6) Evaluar cuantitativamente las mejoras que se obtienen con nuevas arquitecturas de memoria:
entrelazado de memoria, memoria virtual y caché.
7) Partiendo de tres modelos distintos de CPU, realizar los cambios necesarios para la implementación
de nuevas instrucciones: Uniciclo, Multiciclo y Pipelining.
8) Plantear distintos diseños que permitan reducir el consumo de procesadores.
9) Describir los principales problemas que se deben solucionar al pasar de una computadora basada
en un único procesador a otra con multiprocesamiento.
10) Calcular el factor de aceleración de un programa que se ejecuta con multiprocesamiento.
2. CONTENIDOS
1) INTRODUCCIÓN A LA ESTRUCTURA DE COMPUTADORAS
Conceptos Básicos. Jerarquía de Memorias. Concepto de Sistema Operativo. Modos Usuario /
Supervisor. Ejemplos de aplicación. Modelo Jerárquico por Capas.
2) COSTO Y RENDIMIENTO
Costo de los Circuitos Integrados. Definición de Rendimiento. Productividad. Tiempo de Respuesta
y de CPU. Métricas de Rendimiento: Ciclos por Instrucción, Ciclo de Reloj, Instrucciones por
programa. Relación con los niveles de organización del computador. Criterios de mejora y de
selección. Ejemplos. Benchmarks. Ley de Ahmdal.
3) PARALELISMO Y SEGMENTACIÓN
Conceptos: inicialización, estado de régimen, finalización. Características de los trabajos. Perfil del
trabajo. Eficiencia. Tiempo de ejecución. Productividad. Latencia. Ejemplos de aplicación: el ciclo
de máquina, Sumador, Memory Interleaving y Fast RAM. Sistemas Reales: etapas con distintos
tiempos de ejecución - el concepto de cuello de botella, pipeline con trabajos no iguales.
Coordinación y Validez del modelo. Doagrama de precedencias y riesgos.
4) ARQUITECTURA DEL SET DE INSTRUCCIONES (ISA)
Tipos de Instrucciones. Distintas arquitecturas de Set de Instrucciones. Registros. Modos de
Direccionamiento. Ejemplos. Lenguajes de alto nivel. Errores y Debugging. Registro de Estado. Pila.
Ejemplos de Implementación. Subrutinas.
5) DISEÑO DE UN ISA
Mejora de Performance de Cache: tiempo de acierto, tasa de fallos, penalidad por fallos. Cache de
Nivel 2. Ejemplos: Pentium y Power PC.
13) MEMORIA VIRTUAL
Introducción. Definición. Nomenclatura. Ventajas. Mapeo. Protecciones. Unidad de manejo de
memoria (MMU). Tamaño de páginas. Tablas de Páginas. Tabla de traducción rápida de direcciones
(TLB). Funcionamiento de Cache y TLB en paralelo. Protecciones. Algoritmos de reemplazo de
páginas. Ejemplos de implementación en procesadores modernos.
14) ENTRADA / SALIDA (E/S)
Rol del Sistema Operativo. Métodos de E/S: Programa Principal, Interrupciones, Acceso Directo a
Memoria, Procesadores de E/S. Performance de sistemas de E/S. Métricas. Modelo Productor-
Servidor. Características de las E/S a disco según las aplicaciones: Supercomputadores,
Transacciones, Sistema de Archivos. Discos Magnéticos. Tendencias Tecnológicas. Confiabilidad y
Disponibilidad. Arreglos de Discos. Memoria Flash. Ejemplos.
15) BUSES
Concepto. Características esenciales. Clasificación. Organización. Buses paralelos vs buses seriales.
Tendencias. Sistema de Buses. Buses Sincrónicos y Asincrónicos. Ejemplo de validación de un
sistema de computador con buses.
16) DISEÑO PARA BAJO CONSUMO
Energía de Conmutación. Corrientes de Pérdida. Alternativas para reducción de consumo. Mejoras
en la fabricación: disminuir distancias, adaptación al producto. Múltiples núcleos Vs. Potencia.
Ejemplos: IBM PS3, Intel Dual Core, Ipod. Transistores para apagar la lógica. Caminos no críticos a
menor frecuencia. Alimentación con diferentes tensiones en el chip.
a) PROCESAMIENTO PARALELO
Los principales problemas que detienen la evolución de los procesadores: Consumo, brecha
con Memoria, aprovechamiento de paralelismo a nivel de instrucción (ILP). Multiprocesadores:
ventajas y desventajas. Clasificación. Escalabilidad. Multihilo Vertical, Multihilo multichip,
Multihilo simultáneo. Memoria de Acceso Uniforme (UMA). El problema de coherencia en el
cache. Falsa Incoherencia. Otras arquitecturas: NUMA, pasaje de mensajes, Clusters. Ejemplos.
Multiprocesamiento para aplicaciones Embebidas, ejemplos. Aceleración y Eficiencia.
3. BIBLIOGRAFÍA
D. A. Patterson, J. L. Hennessy. Computer Organization and Design, 5th Edition. Morgan Kauffman.
2014.
D. A. Patterson, J. L. Hennessy. Estructura y Diseño de Computadores. Reverté. 2011.
V. Heuring, H. F. Jordan. Computer Systems Design and Architecture. Addison-Wesley. 1997.
4. METODOLOGÍA DE ENSEÑANZA
5. EVALUACIÓN
Para regularizar la asignatura, se deben cumplir los siguientes requisitos:
6. CARGA HORARIA
7. OTRA INFORMACIÓN
Articulación: Para cursar esta asignatura se requiere haber regularizado el curso “Sistemas con
Microprocesadores y Microcontroladores”, y haber aprobado los cursos “Materiales y Dispositivos
Electrónicos” y “Probabilidad y Estadística”.
Pre-Conceptos: Se ha notado que los alumnos ingresan al curso con una serie de pre-conceptos
obtenidos de su experiencia personal con computadoras, desde su niñez hasta el presente. Estos pre-
conceptos generalmente no son correctos y resultan muy difíciles de cambiar. Por tal razón se realiza
una primera actividad en que se da a los estudiantes recién ingresados al curso un cuestionario que
deben contestar en función de su conocimiento previo al cursado – sin que cuente en la calificación. Se
configura así una base sobre la cual trabajar durante el cursado.
Actividades entre Pares: La cátedra viene realizando, desde hace varios años, actividades entre pares.
Cada actividad consiste en una serie de situaciones que plantean varias soluciones posibles, los
estudiantes realizan una primera votación la cual se registra. A continuación discuten en grupo durante
unos minutos y votan nuevamente. En general la segunda votación se inclina mayoritariamente por la
solución correcta: los estudiantes se enseñan entre sí. El profesor completa la explicación para casos en
que no se verifique una amplia mayoría por la respuesta correcta. Los estudiantes han manifestado en
encuestas luego de cada actividad, su gran entusiasmo y valoración del método.