TemesAC

Tema 1: Fundamentos de diseño y evaluación de computadores

Introducción

  • Importancia de la informática y diseño de computadores en nuestra sociedad actual.

Coste

  • El costo es un factor crítico en el diseño de dispositivos computacionales, considerando tanto la fabricación como la operación.

Rendimiento

  • Rendimiento como clave para la eficiencia de un sistema. Se mide en varias dimensiones.

Consumo

  • Consumo de energía, importante para el desarrollo sostenible de nuevos dispositivos.

Fiabilidad

  • Fiabilidad en un sistema computacional y sus métricas como Tiempo Entre Fallos (MTBF).

Evolución de los computadores

  • Comparación de diferentes generaciones de computadores, desde el CRAY 1 (1976) hasta el iPhone X (2017).

    • CRAY 1: 115,000 W, 8 MB de RAM, $8.86 millones.

    • Lenovo T61: 100 W, 2 GB RAM, €1,500.

    • iPhone X: menos de 5 W, 3 GB RAM, €1,300.

Tipos de computadores

  • Empotrados: Coste de 1-100,000€, usados en dispositivos como electrodomésticos y automóviles.

  • Móviles: 100-1,000€, ejemplos incluyen teléfonos y tablets.

  • Sobremesa: 300-2,500€, utilizados para trabajo y ocio.

  • Servidores: 10K-1M€, adecuados para aplicaciones empresariales.

  • Supercomputadores: Más de 1M€, para aplicaciones científicas complejas.

Medidas

  • Uso de prefijos de medida como kilo (K), mega (M), giga (G), etc., con ejemplos de su aplicación en el contexto de cómputo. Diferencias entre medidas decimales y binarias.

Problemas con medidas

  • Desconocimiento común sobre los sistemas de medida que puede llevar a confusiones. Importancia de la consistencia en el uso de términos como Hertz (Hz) y su relación con ciclos.

Máquina von Neumann

  • Principios básicos que describen cómo las instrucciones son ejecutadas en un computador, incluyendo la secuenciación de ops, la función del PC (Contador de Programa).

Evaluación de un sistema informático

  • Uso de métricas como el coste, rendimiento, consumo de energía y fiabilidad para evaluar sistemas modernos.

Sostenibilidad

  • Repercusiones sociales y ambientales del diseño de sistemas computacionales, incluyendo los costes sociales y humanos.

Tecnología de Fabricación

  • Introducción al proceso de fabricación de chips y estructuras de circuitos avanzados.

Ley de Moore

  • Predicciones sobre el crecimiento de la capacidad de integración de circuitos y el impacto en la industria.

Latencia y Ancho de Banda

  • Definiciones y ejemplos de cómo se relacionan estos conceptos con el rendimiento de los computadores.

Ejemplos de rendimiento

  • Comparaciones entre diferentes sistemas y su desempeño en términos de latencia y ancho de banda.

Comparación de rendimiento

  • Métodos para medir y comparar la eficiencia de varios computadores utilizando el tiempo de ejecución como medida clave.

Límites en la mejora del Rendimiento

  • Introducción a la ley de Amdahl y su relevancia en el diseño de sistemas paralelos.

Top500

  • Listado y análisis de los 500 supercomputadores más potentes del mundo.

Consumo

  • Relación entre el consumo de energía y el rendimiento computacional, con mecanismos para medir el consumo en sistemas actuales.

--

Tema 2: Interfaz Alto Nivel - Ensamblador

Introducción

  • Conceptos fundamentales sobre la interfaz entre el software y el hardware a través del ensamblador.

Tipos de Máquinas

  • Diferentes arquitecturas y sus métodos para acceder a memoria.

Modos de direccionamiento

  • Tipos y ejemplos de modos de direccionamiento utilizados en programación.

    • Ejemplos: Registro, Inmediato, Absoluto, y Base + desplazamiento.

Estudio Cuantitativo del nivel LM

  • Análisis de cómo se utilizan los distintos modos y los tipos de operandos en los programas reales.

RISC vs CISC

  • Comparación de dos arquitecturas con sus respectivas ventajas y desventajas en el diseño de instrucciones.

μprogramación

  • Importancia del μprograma en la simplificación del diseño del hardware y su relación con la ejecución de instrucciones.

--

Tema 3: Jerarquía de Memorias

Introducción a la Jerarquía

  • Conceptos básicos sobre cómo se organizan y utilizan las memorias.

Memorias Cache

  • Función, tipos, y mecánicas de acceso. Estructura de una cache y su importancia para la mejora del rendimiento.

Memoria Virtual

  • Traducción de direcciones, tipos de esquemas de paginación y sus beneficios.

Detección y corrección de errores

  • Efectos de los errores en la memoria y cómo las tecnologías como ECC pueden prevenirlos.

--

Tema 4: Sistemas de Almacenamiento

DMA y Jerarquía

  • Introducción al el acceso directo a memoria y su relevancia en la operación con discos duros.

Discos Duros

  • Construcción, funcionamiento y cálculo de rendimiento de discos duros.

RAID

  • Sistemas de almacenamiento redundante e interdependente y su importancia para la eficacia del almacenamiento.

Discos Ópticos

  • Tipos, características y aplicaciones de los discos ópticos en la tecnología de almacenamiento actual.

--

Tema 5: Diseño del Juego de Instrucciones

Introducción

  • Qué es un juego de instrucciones y la importancia estratégica de su diseño.

Tipos de Máquinas

  • Diferentes arquitecturas y su impacto en la funcionalidad de la unidad de control.

Modos de direccionamiento

  • Cómo se codifican las sugerencias de ejecución en las máquinas modernas.

RISC vs CISC

  • Comparación entre ambas arquitecturas y sus implicancias en el diseño de instrucciones.

Programación

  • Criterios para escribir instrucciones y su rol en la eficiencia del procesador.

--

Tema 6: Segmentación y Paralelismo

Introducción a la Segmentación

  • Cómo se segmentan las instrucciones para mejorar el rendimiento general del sistema computacional.

Paralelismo a Nivel de Instrucciones (ILP)

  • Análisis de segmentación y su implementación en procesadores modernos.

Ejemplos Reales

  • Casos de uso actuales en computación de procesos, GPU y otros sistemas avanzados.