Universidad de Costa Rica

IE0321 Estructuras de Computadoras Digitales I

Créditos:
3
Departamento:
Automática
Curso:
Troncal
Tipo:
0 - Teórico
Horas:
4h: 3h T, 0h L, 1h P, 0h T/P
Requisitos:

Contenidos

Módulo 1. Historia

  1. Historia de las computadoras
  2. Métricas de rendimiento
  3. Ley de Amdahl

Módulo 2: Modelo de programación

  1. Diagrama procesador memoria, organización de la memoria
  2. Endianess. Instrucciones lw y sw Ejemplo leer de memoria endianess.
  3. Tipos de instrucciones R, I y J
  4. Instrucciones Aritméticas
  5. Instrucciones load y store, extensión de signo en las instrucciones load parciales
  6. Instrucciones Lógicas, bitwise, xor como detector de paridad, desplazamientos a la derecha e izquierda como multiplicación y división de 2^n
  7. Máscaras Y, OR, XOR. Ejercicios con Máscaras (primeros pasos a programación)
  8. Código no es solo secuencial (Saltos condicionales, incondicionales y comparaciones)
  9. Ejemplo de ensamblado, cálculo del salto condicional
  10. Ejemplo while, for, do while, if-else, switch. Del lenguaje de alto nivel a ensamblador.
  11. Ejemplos de programación (Sustituir sub por add, Contar palabras pares, Código ASCII, Cambiar Minúsculas por mayúsculas, palíndromo)
  12. Subrutinas
  13. Programa simulador
  14. Concepto de desborde
  15. Excepciones
  16. Manejo de excepciones
  17. Subrutina determinar Desborde en código para números sin signo.
  18. Multiplicación
  19. División
  20. 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)
  21. 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

  1. Datapath en un procesador RISC.
  2. Diseño de banco de registros repaso muxes, decodificador binario, latches y Flip Flops
  3. Diseño de una ALU
  4. Diseño de data path monociclo a partir de una instrucción tipo R
  5. Completar el datapath agregando instrucciones de carga de datos y saltos condicionales
  6. Realizar el control del datapath como lógica combinacional
  7. Concepto de segmentación, segmentación de un sumador de rizado.
  8. Del procesador monociclo al segmentado
  9. Riesgos de datos (RAW, WAR, WAW), control y estructurales
  10. Creación de una unidad de anticipación y detección de riesgos
  11. Paralelización a nivel de instrucciones
  12. Procesadores “multiple issue” y super escalares, concepto de “loop unrolling”

Módulo 4. Sistemas de almacenamiento, Jerarquías de Memoria: Caché.

  1. Concepto de Jerarquía de memorias, necesidad y objetivo de esta.
  2. Conceptos relacionados con memorias: volatilidad, permanencia, modos de acceso, medio de almacenamiento.
  3. Celdas de memoria: ideal, SRAM, DRAM y Flash
  4. Memoria cache, acceso asociativo, mapeo directo, asociativo y asociativo por conjuntos, cálculo del offset, index y tag para cada caso.
  5. Políticas de reemplazo: Bélády, FIFO, LIFO, LRU y SRRIP
  6. Ejecución de accesos a memoria con caches, cálculo de las tasas de fallos y aciertos.
  7. Implementación de una cache en memoria.
  8. Cache multinivel
  9. Concepto de atomicidad de las escrituras, consistencia y coherencia en cache, protocolo snooping, directorio (MSI).
  10. Memoria Virtual, tabla de páginas, TLB.

Módulo 5. Entrada y salida.

  1. Acceso a periféricos por polling, interrupciones y DMA.

Competencias

POR DEFINIR

© 2020 Escuela de Ingeniería Eléctrica, Universidad de Costa Rica.