Curricula CS-UNI
2.3. Arquitectura y Organización (AR)

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:

1.
Evaluar los impactos ambientales del despliegue de un proyecto dado (por ejemplo, el consumo de energía de CPUs y GPUs, contribución a desechos electrónicos, y efecto de la virtualización de hardware en centros de datos) [Evaluar (valorar)]

¿Encontraste una errata, un curso desactualizado, un enlace roto, o tienes una sugerencia? Cuéntanos.

Escanea para abrir en tu teléfono