- ES Español

- EN English

5.21. Arquitectura de Computadores (Obligatorio)
- Semestre: 4to Sem. Créditos: 4
- Horas del curso: Teoría: 2 horas; Laboratorio: 4 horas;
- Sílabo:
- htmlonly

Español

English - Prerrequisitos:
- CS1D1 Estructuras Discretas (2do Sem) itemize
5.21.1. Justificación ↑ Volver arriba
Una comprensión profunda de la arquitectura de computadoras es esencial para desarrollar software de alto rendimiento y entender la interfaz hardware-software. Este curso explora cómo las computadoras ejecutan instrucciones, gestionan memoria y se comunican con dispositivos externos. Al estudiar la organización interna de los procesadores y la jerarquía de los sistemas de memoria, los estudiantes adquieren la capacidad de optimizar código para arquitecturas de hardware específicas y comprender las compensaciones en el diseño de sistemas modernos.
5.21.2. Objetivos Generales ↑ Volver arriba
- Comprender los principios de la lógica digital y la representación de datos.
- Comprender la organización de la Unidad Central de Procesamiento (CPU).
- Dominar los conceptos básicos del lenguaje ensamblador y la arquitectura del conjunto de instrucciones.
- Analizar la jerarquía de memoria, incluyendo memoria caché y memoria virtual.
- Evaluar mejoras de rendimiento mediante segmentación y paralelismo.
5.21.3. Contribución a los resultados (Outcomes) ↑ Volver arriba
- AG-C09) Diseño y Desarrollo de Soluciones: Diseña, implementa y evalúa soluciones para problemas complejos de computación. (Usage)
- AG-C03) Trabajo Individual y en Equipo: Se desempeña efectivamente como individuo y como miembro o líder en equipos diversos. (Usage)
5.21.4. Contenido ↑ Volver arriba
5.21.4.1. Organización de Máquina a Nivel de Ensamblador (20 horas) [Habilidades AG-C03,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Patterson and Hennessy, 2020; Harris and Harris, 2012)
Temas
- Arquitectura de máquina von Neumann
- Unidad de control: captación, decodificación y ejecución de instrucciones
- Introducción a SIMD vs MIMD y la taxonomía de Flynn
- Organización de multiprocesadores/multinúcleo de memoria compartida
- Arquitectura del conjunto de instrucciones (ISA) (por ejemplo, x86, ARM y RISC-V):
- Conjuntos de instrucciones de ancho fijo vs variable
- Formatos de instrucción
- Manipulación de datos, control, E/S
- Modos de direccionamiento
- Programación en lenguaje de máquina
- Programación en lenguaje ensamblador enumerate
- Mecanismos de llamada y retorno de subrutinas
- E/S e interrupciones
- Segmentos de montículo, estáticos, pila y código
Aprendizaje esperado (Learning Outcomes)
- Discutir cómo las unidades funcionales clásicas de von Neumann se implementan en sistemas embebidos, particularmente en memoria dentro y fuera del chip [Debatir]
- Describir cómo se ejecutan las instrucciones en una máquina von Neumann clásica, con extensiones para hilos, sincronización de multiprocesadores y ejecución SIMD [Describir]
- Evaluar un diagrama de ejemplo con paralelismo a nivel de instrucción y riesgos para describir cómo se manejan en las canalizaciones de procesadores típicos [Evaluar (valorar)]
- Discutir cómo se representan las instrucciones a nivel de máquina y en el contexto de un ensamblador simbólico [Debatir]
- Mapear un ejemplo de patrones de lenguaje de alto nivel a notaciones de lenguaje ensamblador/máquina [Mapear/Mapa conceptual]
- Contrastar diferentes formatos de instrucción considerando aspectos como direcciones por instrucción y formatos de longitud variable vs longitud fija [Contrastar]
- Analizar un diagrama de subrutina para comentar cómo se manejan las llamadas de subrutina a nivel de ensamblador [Analizar]
- Describir conceptos básicos de interrupciones y operaciones de E/S [Describir]
- Escribir un programa simple en lenguaje ensamblador para procesamiento y manipulación de cadenas/arreglos [Escribir]
5.21.4.2. Jerarquía de Memoria (18 horas) [Habilidades AG-C03,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Patterson and Hennessy, 2020; Stallings, 2015)
Temas
- Jerarquía de memoria: la importancia de la localidad temporal y espacial
- Organización y operaciones de memoria principal
- Memoria persistente (por ejemplo, SSD, discos estándar)
- Latencia, tiempo de ciclo, ancho de banda e intercalado
- Memorias caché:
- Mapeo de direcciones
- Tamaño de bloque
- Política de reemplazo y almacenamiento
- Prebúsqueda enumerate
- Coherencia de caché multiprocesador
- Memoria virtual (soporte de hardware)
- Manejo de fallas y confiabilidad
- Confiabilidad:
- Codificación de error
- Compresión de datos
- Integridad de datos enumerate
- Procesamiento en Memoria (PIM)
Aprendizaje esperado (Learning Outcomes)
- Usando un diagrama del sistema de memoria, identificar los principales tipos de tecnología de memoria (por ejemplo, SRAM, DRAM) y su costo y rendimiento relativos [Analizar]
- Medir el efecto de la latencia de memoria en el tiempo de ejecución [Evaluar]
- Enumerar las funciones de un sistema con gestión de memoria virtual [Enumerar]
- Calcular el tiempo promedio de acceso a memoria bajo varias configuraciones de caché y memoria y mezclas de referencias de instrucciones y datos [Computar/Calcular]
5.21.4.3. Interconexión y Comunicación (8 horas) [Habilidades AG-C03,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Patterson and Hennessy, 2020; Tanenbaum and Austin, 2012)
Temas
- Fundamentos de E/S:
- Protocolo de enlace y almacenamiento en búfer
- E/S programada
- E/S basada en interrupciones enumerate
- Estructuras de interrupción: vectorizadas y priorizadas, acuse de recibo de interrupción
- Dispositivos de E/S (por ejemplo, ratón, teclado, pantalla, cámara, sensores, actuadores)
- Almacenamiento externo, organización física y unidades
- Fundamentos de buses:
- Protocolos de bus
- Arbitraje
- Acceso directo a memoria (DMA) enumerate
Aprendizaje esperado (Learning Outcomes)
- Analizar un diagrama de control de interrupciones para comentar cómo se usan las interrupciones para implementar control de E/S y transferencias de datos [Analizar]
- Enumerar varios tipos de buses en un sistema informático [Enumerar]
- Enumerar las ventajas de los discos magnéticos y contrastarlas con las de los discos de estado sólido [Listar/Enumerar]
5.21.4.4. Organización Funcional (8 horas) [Habilidades AG-C03,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Harris and Harris, 2012; Patterson and Hennessy, 2020)
Temas
- Implementación de rutas de datos simples, incluyendo segmentación de instrucciones, detección de riesgos y resolución (por ejemplo, paradas, reenvío)
- Unidad de control:
- Implementación cableada
- Realización microprogramada enumerate
- Segmentación de instrucciones
- Introducción al paralelismo a nivel de instrucción (ILP)
Aprendizaje esperado (Learning Outcomes)
- Comparar implementaciones alternativas de rutas de datos en arquitecturas de computadoras modernas [Comparar]
- Producir un conjunto de señales de control para sumar dos enteros usando implementaciones cableadas y microprogramadas [Producir]
- Discutir el paralelismo a nivel de instrucción usando segmentación y los riesgos significativos que pueden ocurrir [Debatir]
- Diseñar un procesador completo, incluyendo ruta de datos y control [Diseñar]
- Calcular los ciclos promedio por instrucción para una implementación dada de procesador y sistema de memoria [Computar/Calcular]
5.21.4.5. Arquitecturas Heterogéneas (10 horas) [Habilidades AG-C03,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Patterson and Hennessy, 2020; Stallings, 2015)
Temas
- Arquitecturas SIMD y MIMD (por ejemplo, GPUs de Propósito General, TPUs y NPUs)
- Sistemas de memoria heterogéneos:
- Memoria compartida versus memoria distribuida
- Memoria volátil vs no volátil
- Protocolos de coherencia enumerate
- Arquitecturas Específicas de Dominio (DSAs):
- Acelerador de Aprendizaje Automático
- Computación en red
- Sistemas embebidos para aplicaciones emergentes
- Computación neuromórfica
- Dispositivos de computación perimetral enumerate
- Soluciones de empaquetado e integración como 3DIC y chiplets
- Aprendizaje automático en diseño de arquitectura:
- Algoritmos de IA para análisis de carga de trabajo
- Optimización de configuraciones de arquitectura para rendimiento y eficiencia energética enumerate
- Diseño Orientado a Datos (DOD): organización de datos en memoria (arreglo de estructuras vs. estructura de arreglos) para maximizar localidad de caché y aprovechar vectorización SIMD; contraste y complementariedad con el paradigma orientado a objetos.
Aprendizaje esperado (Learning Outcomes)
- Analizar un diagrama de sistema con arquitecturas paralelas alternativas, por ejemplo, SIMD y MIMD, e identificar las diferencias clave [Evaluar]
- Discutir qué problemas de gestión de memoria se encuentran en multiprocesadores que no están presentes en uniprocesadores y cómo estos problemas podrían resolverse [Evaluar]
- Indicar las diferencias entre placa base de memoria, interconexión de memoria del procesador y memoria remota a través de redes, sus implicaciones para la latencia de acceso y su impacto en el rendimiento del programa [Familiarizarse]
- Discutir cómo determinarías cuándo usar un acelerador específico de dominio en lugar de una CPU de propósito general [Evaluar]
- Enumerar diferencias clave en los principios de diseño arquitectónico entre una unidad de procesamiento basada en vector y basada en escalar [Familiarizarse]
- Enumerar las ventajas y desventajas de una arquitectura PIM [Familiarizarse]
- Reestructurar una colección de objetos (AoS) a un diseño DOD (SoA) y medir el impacto en rendimiento [Usar].
5.21.4.6. Arquitecturas de Procesador Seguras (8 horas) [Habilidades AG-C03,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Patterson and Hennessy, 2020; Anderson, 2020)
Temas
- Principios de Hardware Seguro:
- Análisis de Riesgos de Seguridad, Protección de Activos y Modelo de Amenazas
- Aceleración Criptográfica con Hardware
- Soporte para virtualización (por ejemplo, aislamiento de SO) enumerate
- Raíces de confianza en hardware, Funciones Físicamente No Clonables (PUF)
- Generadores de Números Aleatorios por Hardware
- Extensiones de protección de memoria:
- Verificación de límites de puntero en tiempo de ejecución (por ejemplo, desbordamiento de búfer)
- Protección a nivel microarquitectónico
- Protección a nivel de ISA enumerate
- Entorno de Ejecución Confiable (TEE):
- Protecciones de Base de Computadora Confiable
- Protección de máquinas virtuales
- Protección de contenedores
- Módulos de software confiables (Enclaves) enumerate
- Cifrado homomórfico para procesamiento de datos que preserva la privacidad
Aprendizaje esperado (Learning Outcomes)
- Discutir principios de hardware seguro, explorando un marco para análisis de riesgos y protección de activos [Debatir]
- Resumir cómo las Funciones Físicamente No Clonables (PUF) pueden ser un identificador único de dispositivo en aplicaciones de seguridad [Resumir]
- Distinguir un generador de números aleatorios con soporte de hardware dedicado de generadores sin hardware dedicado a generar entropía [Distinguir]
- Enumerar las ventajas y desventajas de la protección de memoria a nivel de ISA [Listar/Enumerar]
- Describir problemas de diseño clave de un entorno de ejecución confiable (TEE) para soportar máquinas virtuales [Describir]
5.21.5. Referencias Bibliográficas ↑ Volver arriba
Patterson, D. A. and Hennessy, J. L. (2020). Computer Organization and Design RISC-V Edition: The Hardware Software Interface. Morgan Kaufmann, 2nd edition.
Harris, D. and Harris, S. (2012). Digital Design and Computer Architecture. Morgan Kaufmann, 2nd edition.
Stallings, W. (2015). Computer Organization and Architecture: Designing for Performance. Pearson, 10th edition.
Tanenbaum, A. S. and Austin, T. (2012). Structured Computer Organization. Pearson, 6th edition.
Anderson, R. J. (2020). Security Engineering: A Guide to Building Dependable Distributed Systems. Wiley, 3rd edition.