I. Fundamentos generales
- ¿Cuál es la diferencia entre arquitectura de computadoras, organización de computadoras y microarquitectura?
- ¿Qué define exactamente una ISA y qué queda fuera de su alcance?
- ¿Con qué métricas se mide el éxito de una arquitectura: rendimiento, consumo, área, coste, fiabilidad?
- ¿Cómo limita la Ley de Amdahl las decisiones de diseño arquitectónico?
- ¿Por qué el modelo de Von Neumann sigue siendo central hoy en día y en qué aspectos resulta insuficiente?
II. ISA y diseño a nivel de instrucción
- ¿Sigue siendo relevante la distinción entre RISC y CISC, o es ya parte historia y parte mito de marketing?
- ¿Qué compromisos de diseño existen entre los formatos de instrucción de longitud fija y variable?
- ¿Qué problemas resuelve la arquitectura load-store y qué oportunidades restringe?
- ¿Por qué son críticos los modos de direccionamiento en el diseño de una ISA?
- ¿Cómo influyen el tamaño y la estructura del banco de registros en el diseño de la ISA?
- ¿Cuál es la diferencia entre el diseño basado en códigos de condición/flags y el basado en comparaciones explícitas?
- ¿Es la ortogonalidad una ventaja real en una ISA o un capricho estético que infla el decodificador?
- ¿Cómo se modelan a nivel de ISA los mecanismos de excepción, interrupción y trap?
- ¿Por qué es necesaria la distinción entre instrucciones privilegiadas y no privilegiadas?
- ¿Cuáles son las diferencias filosóficas entre las ISA de x86, ARM y RISC-V?
III. Introducción a la microarquitectura
- ¿Por qué las etapas fetch, decode, execute, memory y write-back constituyen el punto de partida clásico?
- ¿En qué condiciones se prefiere cada uno de los diseños de ciclo único, multiciclo y segmentado?
- ¿Por qué es fundamental la distinción entre datapath y ruta de control en el análisis microarquitectónico?
- ¿Cuál es la diferencia entre control cableado y control microprogramado?
- ¿Cómo determina el camino crítico la frecuencia de reloj de un procesador?
IV. Pipeline
- ¿Por qué el pipeline mejora el rendimiento pero no reduce automáticamente la latencia?
- ¿Cómo se distinguen con precisión los riesgos estructurales, de datos y de control?
- ¿Cómo mejoran la eficiencia del pipeline los mecanismos de forwarding/bypassing?
- ¿Qué representan en la práctica los conceptos de stall y bubble?
- ¿Por qué el riesgo de salto se ha vuelto tan determinante en los procesadores modernos?
- ¿Por qué los algoritmos de predicción de saltos ocupan un lugar central en el éxito arquitectónico?
- ¿En qué diferencias conceptuales se basan métodos como predicción estática, bimodal, gshare y TAGE?
- ¿Qué riesgos introduce la ejecución especulativa a pesar de sus ganancias de rendimiento?
V. Arquitecturas superescalares e ILP
- ¿Qué es el paralelismo a nivel de instrucción (ILP) y cuáles son sus límites inherentes?
- ¿Qué hace "simultáneamente" un procesador superescalar y qué no?
- ¿Cómo funciona la ejecución fuera de orden y por qué tiene un coste tan elevado?
- ¿Cómo elimina el renombrado de registros las dependencias WAR y WAW?
- ¿Para qué sirven el reorder buffer, la reservation station y la issue queue?
- ¿Por qué se sigue enseñando el algoritmo de Tomasulo y dónde pervive hoy?
- ¿Cómo preserva la etapa de commit/retire la visibilidad arquitectónica?
VI. Jerarquía de memoria
- ¿Por qué es imprescindible la jerarquía de memoria y en qué supuesto se basa la localidad?
- ¿Cómo convierten la localidad temporal y espacial el comportamiento del software en una ventaja arquitectónica?
- ¿Cómo se comparan los enfoques de caché de mapeo directo, asociativo por conjuntos y totalmente asociativo?
- ¿En qué contextos destacan las políticas de reemplazo LRU, pseudo-LRU y aleatoria?
- ¿Cuál es la diferencia entre escritura directa y escritura diferida, y entre escritura con asignación y sin asignación?
- ¿Cómo se distinguen los tipos de fallo de caché: obligatorio, por capacidad y por conflicto?
- ¿Por qué la memoria virtual no solo amplía la capacidad sino que también proporciona protección y abstracción?
- ¿Qué es la TLB y por qué puede convertirse en un cuello de botella crítico en el rendimiento de acceso a memoria?
- ¿Cómo afectan a la arquitectura las distintas organizaciones de tablas de páginas y el coste del page walk?
VII. Sistemas multinúcleo
- ¿Por qué se impuso la tendencia hacia múltiples núcleos en lugar de seguir ampliando un único núcleo?
- ¿Cómo se diferencian arquitectónicamente los enfoques de memoria compartida y memoria distribuida?
- ¿Por qué surge el problema de coherencia de caché y en qué se diferencian los protocolos basados en snooping y en directorio?
- ¿Qué problema resuelven los protocolos de coherencia como MESI/MOESI?
- ¿Por qué es importante el modelo de consistencia de memoria tanto para el programador como para el diseñador de hardware?
- ¿Cómo debe replantearse el concepto de "arquitectura de procesadores" en la era de NUMA, chiplets, aceleradores y computación heterogénea?
Hiç yorum yok:
Yorum Gönder