Contenidos
Módulo 1. Historia
- Historia de las computadoras
- Métricas de rendimiento
- Ley de Amdahl
Módulo 2: Modelo de programación
- Diagrama procesador memoria, organización de la memoria
- Endianess. Instrucciones lw y sw Ejemplo leer de memoria endianess.
- Tipos de instrucciones R, I y J
- Instrucciones Aritméticas
- Instrucciones load y store, extensión de signo en las instrucciones load parciales
- Instrucciones Lógicas, bitwise, xor como detector de paridad, desplazamientos a la derecha e izquierda como multiplicación y división de 2^n
- Máscaras Y, OR, XOR. Ejercicios con Máscaras (primeros pasos a programación)
- Código no es solo secuencial (Saltos condicionales, incondicionales y comparaciones)
- Ejemplo de ensamblado, cálculo del salto condicional
- Ejemplo while, for, do while, if-else, switch. Del lenguaje de alto nivel a ensamblador.
- Ejemplos de programación (Sustituir sub por add, Contar palabras pares, Código ASCII, Cambiar Minúsculas por mayúsculas, palíndromo)
- Subrutinas
- Programa simulador
- Concepto de desborde
- Excepciones
- Manejo de excepciones
- Subrutina determinar Desborde en código para números sin signo.
- Multiplicación
- División
- Concepto de múltiple precisión (MP) desde el concepto de dígitos. Almacenamiento de números en MP en la memoria. Ejemplos de suma, CA2 y desplazamientos. (Estudio Individual)
- Punto Flotante (IEEE 754). Ejemplos punto flotante, multiplicación de matrices, mapeo en memoria de una matriz. Ejemplo diseño de programa completo. Función cuadrática (Estudio Individual)
Módulo 3. Microarquitectura
- Datapath en un procesador RISC.
- Diseño de banco de registros repaso muxes, decodificador binario, latches y Flip Flops
- Diseño de una ALU
- Diseño de data path monociclo a partir de una instrucción tipo R
- Completar el datapath agregando instrucciones de carga de datos y saltos condicionales
- Realizar el control del datapath como lógica combinacional
- Concepto de segmentación, segmentación de un sumador de rizado.
- Del procesador monociclo al segmentado
- Riesgos de datos (RAW, WAR, WAW), control y estructurales
- Creación de una unidad de anticipación y detección de riesgos
- Paralelización a nivel de instrucciones
- Procesadores “multiple issue” y super escalares, concepto de “loop unrolling”
Módulo 4. Sistemas de almacenamiento, Jerarquías de Memoria: Caché.
- Concepto de Jerarquía de memorias, necesidad y objetivo de esta.
- Conceptos relacionados con memorias: volatilidad, permanencia, modos de acceso, medio de almacenamiento.
- Celdas de memoria: ideal, SRAM, DRAM y Flash
- Memoria cache, acceso asociativo, mapeo directo, asociativo y asociativo por conjuntos, cálculo del offset, index y tag para cada caso.
- Políticas de reemplazo: Bélády, FIFO, LIFO, LRU y SRRIP
- Ejecución de accesos a memoria con caches, cálculo de las tasas de fallos y aciertos.
- Implementación de una cache en memoria.
- Cache multinivel
- Concepto de atomicidad de las escrituras, consistencia y coherencia en cache, protocolo snooping, directorio (MSI).
- Memoria Virtual, tabla de páginas, TLB.
Módulo 5. Entrada y salida.
- Acceso a periféricos por polling, interrupciones y DMA.
Competencias
POR DEFINIR