2.3. Arquitectura y Organización (AR)
Los profesionales de la informática pasan considerable tiempo escribiendo código eficiente para resolver un
problema particular en un dominio de aplicación. A medida que ocurre el cambio del procesamiento
secuencial al paralelo, se requiere una comprensión más profunda de las arquitecturas de computadoras
subyacentes. La arquitectura ya no puede verse como una caja negra donde los principios de una
arquitectura pueden aplicarse a otra. En cambio, los programadores deben mirar dentro de la caja
negra y usar componentes específicos para mejorar el rendimiento del sistema y la eficiencia
energética.
El área de conocimiento de Arquitectura y Organización (AR) tiene como objetivo desarrollar una comprensión más profunda de los entornos de hardware sobre los cuales se basa casi toda la computación, y las interfaces relevantes proporcionadas a las capas de software superiores. El hardware objetivo comprende desde procesadores de sistemas embebidos de baja gama hasta multiprocesadores empresariales de alta gama.
Los temas en esta área de conocimiento beneficiarán a los estudiantes permitiéndoles apreciar los principios arquitectónicos fundamentales de los sistemas informáticos modernos, incluyendo el desafío de aprovechar el paralelismo para sostener las mejoras de rendimiento y energía en el futuro. Esta KA ayudará a los estudiantes de informática a alejarse del enfoque de caja negra y a ser más conscientes del sistema informático subyacente y las eficiencias que arquitecturas específicas pueden lograr.
| área de Conocimiento (Knowledge Area-KA) (KA) | Core Tier1 | Core Tier2 | Electivo |
| 2.3.1 Lógica Digital y Sistemas Digitales |
|
| No |
| 2.3.2 Representación de Datos a Nivel de Máquina |
|
| No |
| 2.3.3 Organización de Máquina a Nivel de Ensamblador |
|
| No |
| 2.3.4 Jerarquía de Memoria |
|
| No |
| 2.3.5 Interconexión y Comunicación |
|
| No |
| 2.3.6 Organización Funcional |
|
| No |
| 2.3.7 Rendimiento y Eficiencia Energética |
|
| No |
| 2.3.8 Arquitecturas Heterogéneas |
|
| No |
| 2.3.9 Arquitecturas de Procesador Seguras |
|
| No |
| 2.3.10 Arquitecturas Cuánticas |
|
| No |
| 2.3.11 Problemas de Sostenibilidad |
|
| No |
2.3.1. AR/Lógica Digital y Sistemas Digitales
Temas:
Core
-
Lógica combinacional vs secuencial/arreglos de puertas programables en campo (FPGAs):
- 1.
- Lógica combinacional fundamental
- 2.
- Bloque de construcción de lógica secuencial
- Herramientas de diseño asistido por computadora que procesan representaciones de hardware y arquitectura
-
Síntesis de alto nivel:
- 1.
- Notación de transferencia de registros
- 2.
- Lenguaje de descripción de hardware (por ejemplo, Verilog/VHDL/Chisel)
- Flujo de diseño de sistema en chip (SoC)
-
Restricciones físicas:
- 1.
- Retardos de puertas
- 2.
- Fan-in y fan-out
- 3.
- Energía/potencia
- 4.
- Velocidad de la luz
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Discutir la progresión de los componentes de tecnología informática desde tubos de vacío hasta VLSI, desde arquitecturas de computadoras mainframe hasta la organización de computadoras a escala de almacén [Debatir]
- 2.
- Describir el paralelismo y las dependencias de datos entre y dentro de componentes en una arquitectura de computadora heterogénea moderna [Describir]
- 3.
- Explicar la relación entre paralelismo y consumo de energía [Explicar]
- 4.
- Construir el diseño de bloques básicos para una computadora: unidad aritmético-lógica (nivel de puertas), registros (nivel de puertas), unidad central de procesamiento (nivel de transferencia de registros) y memoria (nivel de transferencia de registros) [Crear]
- 5.
- Evaluar bloques básicos simples (por ejemplo, unidad aritmético-lógica, registros, movimiento entre registros) de un diseño de computadora simple [Evaluar]
- 6.
- Analizar el comportamiento de temporización de un procesador segmentado, identificando problemas de dependencia de datos [Analizar]
2.3.2. AR/Representación de Datos a Nivel de Máquina
Temas:
Core
- Visión general e historia de la arquitectura de computadoras
- Bits, bytes y palabras
- Representaciones sin signo, con signo y complemento a dos
-
Representación de datos numéricos y bases numéricas:
- 1.
- Punto fijo
- 2.
- Punto flotante
- Representación de datos no numéricos
- Representación de registros, arreglos y tipos de datos UTF
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Discutir por qué todo en las computadoras son datos, incluyendo instrucciones [Debatir]
- 2.
- Explicar cómo las representaciones numéricas de longitud fija pueden afectar la exactitud y precisión [Explicar]
- 3.
- Describir cómo se almacenan los enteros negativos en representaciones de magnitud con signo y complemento a dos [Describir]
- 4.
- Discutir cómo diferentes formatos pueden representar datos numéricos [Debatir]
- 5.
- Explicar la representación a nivel de bits de datos no numéricos, como caracteres, cadenas, registros y arreglos [Explicar]
- 6.
- Traducir datos numéricos de un formato a otro [Traducir]
- 7.
- Describir cómo un sumador único (sin detección de desbordamiento) puede manejar tanto entrada con signo (complemento a dos) como sin signo (binario) sin "saber"qué formato está usando una entrada dada [Describir]
2.3.3. AR/Organización de Máquina a Nivel de Ensamblador
Temas:
Core
- 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):
- 1.
- Conjuntos de instrucciones de ancho fijo vs variable
- 2.
- Formatos de instrucción
- 3.
- Manipulación de datos, control, E/S
- 4.
- Modos de direccionamiento
- 5.
- Programación en lenguaje de máquina
- 6.
- Programación en lenguaje ensamblador
- 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):
Core:
- 1.
- 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]
- 2.
- 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]
- 3.
- 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)]
- 4.
- Discutir cómo se representan las instrucciones a nivel de máquina y en el contexto de un ensamblador simbólico [Debatir]
- 5.
- Mapear un ejemplo de patrones de lenguaje de alto nivel a notaciones de lenguaje ensamblador/máquina [Mapear/Mapa conceptual]
- 6.
- Contrastar diferentes formatos de instrucción considerando aspectos como direcciones por instrucción y formatos de longitud variable vs longitud fija [Contrastar]
- 7.
- Analizar un diagrama de subrutina para comentar cómo se manejan las llamadas de subrutina a nivel de ensamblador [Analizar]
- 8.
- Describir conceptos básicos de interrupciones y operaciones de E/S [Describir]
- 9.
- Escribir un programa simple en lenguaje ensamblador para procesamiento y manipulación de cadenas/arreglos [Escribir]
2.3.4. AR/Jerarquía de Memoria
Temas:
Core
- 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é:
- 1.
- Mapeo de direcciones
- 2.
- Tamaño de bloque
- 3.
- Política de reemplazo y almacenamiento
- 4.
- Prebúsqueda
- Coherencia de caché multiprocesador
- Memoria virtual (soporte de hardware)
- Manejo de fallas y confiabilidad
-
Confiabilidad:
- 1.
- Codificación de error
- 2.
- Compresión de datos
- 3.
- Integridad de datos
- Procesamiento en Memoria (PIM)
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- 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]
- 2.
- Medir el efecto de la latencia de memoria en el tiempo de ejecución [Evaluar]
- 3.
- Enumerar las funciones de un sistema con gestión de memoria virtual [Enumerar]
- 4.
- 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]
2.3.5. AR/Interconexión y Comunicación
Temas:
Core
-
Fundamentos de E/S:
- 1.
- Protocolo de enlace y almacenamiento en búfer
- 2.
- E/S programada
- 3.
- E/S basada en interrupciones
- 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:
- 1.
- Protocolos de bus
- 2.
- Arbitraje
- 3.
- Acceso directo a memoria (DMA)
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- 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]
- 2.
- Enumerar varios tipos de buses en un sistema informático [Enumerar]
- 3.
- Enumerar las ventajas de los discos magnéticos y contrastarlas con las de los discos de estado sólido [Listar/Enumerar]
2.3.6. AR/Organización Funcional
Temas:
Core
- 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:
- 1.
- Implementación cableada
- 2.
- Realización microprogramada
- Segmentación de instrucciones
- Introducción al paralelismo a nivel de instrucción (ILP)
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Comparar implementaciones alternativas de rutas de datos en arquitecturas de computadoras modernas [Comparar]
- 2.
- Producir un conjunto de señales de control para sumar dos enteros usando implementaciones cableadas y microprogramadas [Producir]
- 3.
- Discutir el paralelismo a nivel de instrucción usando segmentación y los riesgos significativos que pueden ocurrir [Debatir]
- 4.
- Diseñar un procesador completo, incluyendo ruta de datos y control [Diseñar]
- 5.
- Calcular los ciclos promedio por instrucción para una implementación dada de procesador y sistema de memoria [Computar/Calcular]
2.3.7. AR/Rendimiento y Eficiencia Energética
Temas:
Core
- Evaluación de rendimiento-energía (introducción): rendimiento, consumo de energía, costos de memoria y comunicación
- Predicción de bifurcaciones, ejecución especulativa, ejecución fuera de orden, algoritmo de Tomasulo
- Mejoras para procesadores vectoriales y GPUs
-
Soporte de hardware para multihilos:
- 1.
- Condiciones de carrera
- 2.
- Implementaciones de bloqueo
- 3.
- Sincronización punto a punto
- 4.
- Implementación de barreras
- Escalabilidad
- Arquitecturas alternativas incluyendo VLIW/EPIC, aceleradores y otros procesadores de propósito
especial
- Escalado dinámico de voltaje y frecuencia (DVFS)
- Silicio Oscuro
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Discutir métricas de evaluación de rendimiento y eficiencia energética [Debatir]
- 2.
- Analizar un diagrama de ejecución especulativa y escribir sobre las decisiones que se pueden tomar [Analizar]
- 3.
- Crear un diagrama de evaluación comparativa de rendimiento-vatio de GPU [Crear]
- 4.
- Escribir un programa multihilo que sume (en paralelo) elementos de dos vectores enteros [Escribir]
- 5.
- Recomendar un conjunto de decisiones de diseño para arquitecturas de computadoras alternativas [Recomendar]
- 6.
- Enumerar conceptos clave asociados con el escalado dinámico de voltaje y frecuencia [Enumerar]
- 7.
- Medir la mejora en ahorro de energía para una cuantización de entero de 8 bits comparada con una cuantización de 32 bits [Evaluar]
2.3.8. AR/Arquitecturas Heterogéneas
Temas:
Core
- Arquitecturas SIMD y MIMD (por ejemplo, GPUs de Propósito General, TPUs y NPUs)
-
Sistemas de memoria heterogéneos:
- 1.
- Memoria compartida versus memoria distribuida
- 2.
- Memoria volátil vs no volátil
- 3.
- Protocolos de coherencia
-
Arquitecturas Específicas de Dominio (DSAs):
- 1.
- Acelerador de Aprendizaje Automático
- 2.
- Computación en red
- 3.
- Sistemas embebidos para aplicaciones emergentes
- 4.
- Computación neuromórfica
- 5.
- Dispositivos de computación perimetral
- Soluciones de empaquetado e integración como 3DIC y chiplets
-
Aprendizaje automático en diseño de arquitectura:
- 1.
- Algoritmos de IA para análisis de carga de trabajo
- 2.
- Optimización de configuraciones de arquitectura para rendimiento y eficiencia energética
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Analizar un diagrama de sistema con arquitecturas paralelas alternativas, por ejemplo, SIMD y MIMD, e identificar las diferencias clave [Analizar]
- 2.
- 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 [Debatir]
- 3.
- 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 [Diferenciar]
- 4.
- Discutir cómo determinarías cuándo usar un acelerador específico de dominio en lugar de una CPU de propósito general [Debatir]
- 5.
- Enumerar diferencias clave en los principios de diseño arquitectónico entre una unidad de procesamiento basada en vector y basada en escalar [Enumerar]
- 6.
- Enumerar las ventajas y desventajas de una arquitectura PIM [Listar/Enumerar]
2.3.9. AR/Arquitecturas de Procesador Seguras
Temas:
Core
-
Principios de Hardware Seguro:
- 1.
- Análisis de Riesgos de Seguridad, Protección de Activos y Modelo de Amenazas
- 2.
- Aceleración Criptográfica con Hardware
- 3.
- Soporte para virtualización (por ejemplo, aislamiento de SO)
- 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:
- 1.
- Verificación de límites de puntero en tiempo de ejecución (por ejemplo, desbordamiento de búfer)
- 2.
- Protección a nivel microarquitectónico
- 3.
- Protección a nivel de ISA
-
Entorno de Ejecución Confiable (TEE):
- 1.
- Protecciones de Base de Computadora Confiable
- 2.
- Protección de máquinas virtuales
- 3.
- Protección de contenedores
- 4.
- Módulos de software confiables (Enclaves)
- Cifrado homomórfico para procesamiento de datos que preserva la privacidad
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Discutir principios de hardware seguro, explorando un marco para análisis de riesgos y protección de activos [Debatir]
- 2.
- Resumir cómo las Funciones Físicamente No Clonables (PUF) pueden ser un identificador único de dispositivo en aplicaciones de seguridad [Resumir]
- 3.
- Distinguir un generador de números aleatorios con soporte de hardware dedicado de generadores sin hardware dedicado a generar entropía [Distinguir]
- 4.
- Enumerar las ventajas y desventajas de la protección de memoria a nivel de ISA [Listar/Enumerar]
- 5.
- Describir problemas de diseño clave de un entorno de ejecución confiable (TEE) para soportar máquinas virtuales [Describir]
2.3.10. AR/Arquitecturas Cuánticas
Temas:
Core
-
Principios:
- 1.
- El principio de dualidad onda-partícula
- 2.
- El principio de incertidumbre en el experimento de doble rendija
- 3.
- ¿Qué es un Qubit? Superposición, interferencia y medición. Fotones como qubits
- 4.
- Sistemas de dos qubits, Entrelazamiento, estados de Bell, El teorema de No Señalización
- Axiomas de la MC: principio de superposición, axioma de medición, evolución unitaria
- Compuertas de un solo qubit para el modelo de circuito de computación cuántica: X, Z, H
- Compuertas de dos qubits y productos tensoriales, trabajando con matrices
- El Teorema de No Clonación. El protocolo de Teleportación Cuántica
-
Algoritmos:
- 1.
- Algoritmos cuánticos simples: Bernstein-Vazirani, algoritmo de Simon
- 2.
- Implementar Deutsch-Josza con Interferómetros Mach-Zehnder
- 3.
- Factorización cuántica (Algoritmo de Shor)
- 4.
- Búsqueda cuántica (Algoritmo de Grover)
-
Aspectos de implementación:
- 1.
- La implementación física de qubits
- 2.
- Control clásico de una Unidad de Procesamiento Cuántico (QPU)
- 3.
- Mitigación y control de errores, NISQ y más allá
- 4.
- Enfoques de medición
-
Aplicaciones Emergentes:
- 1.
- Cifrado post-cuántico
- 2.
- La Internet Cuántica
- 3.
- Computación cuántica adiabática (AQC) y recocido cuántico
Aprendizaje esperado (Learning Outcomes):
Core:
- 1.
- Discutir cómo un objeto cuántico producido como partícula se propaga como una onda y se detecta como partícula con una distribución de probabilidad correspondiente a la onda [Debatir]
- 2.
- Discutir la naturaleza a nivel cuántico que es inherentemente probabilística [Debatir]
- 3.
- Expresar tu punto de vista sobre el entrelazamiento que puede usarse para crear correlaciones
no clásicas, pero no hay forma de usar el entrelazamiento cuántico para enviar mensajes más
rápido que la velocidad de la luz [Evaluar]
- 4.
- Describir el paralelismo cuántico y el papel de la interferencia constructiva vs destructiva en algoritmos cuánticos dada la naturaleza probabilística de las mediciones [Describir]
- 5.
- Analizar un fragmento de código proporcionando el papel de la transformada cuántica de Fourier (QFT) en el algoritmo de Shor [Analizar]
- 6.
- Escribir un programa para implementar el algoritmo de Shor en un simulador, destacando los componentes clásicos y aspectos del algoritmo de Shor [Escribir]
- 7.
- Enumerar los detalles de cada modalidad de qubit (por ejemplo, ion atrapado, superconductor, espín de silicio, fotónico, punto cuántico, átomo neutro, topológico, centro de color, electrón sobre helio) [Enumerar]
- 8.
- Contrastar AQC con el modelo de compuertas de computación cuántica y los problemas para los que cada uno es más adecuado resolver [Contrastar]
2.3.11. AR/Problemas de Sostenibilidad
Temas:
Non Core
-
Impactos ambientales de decisiones de implementación:
- 1.
- Objetivos de sostenibilidad, consumo de recursos y viabilidad económica
- 2.
- Huella de carbono, desechos electrónicos de hardware
- 3.
- La huella energética de los centros de datos en varias cargas de trabajo (por ejemplo, entrenamiento y uso de modelos de IA)
- 4.
- Directrices para estándares de diseño sostenible
Aprendizaje esperado (Learning Outcomes):
NonCore: