Please enable JavaScript.
Coggle requires JavaScript to display documents.
Falacias y errores habituales - Coggle Diagram
Falacias y errores habituales
Simulación de Caché
Direccionamiento de byte y tamaño de bloque:
La dirección (por bytes, palabras o bloques).
Ejemplo: En una caché directa de 32 bytes con bloques de 4 bytes, la dirección de byte 36 se asocia al bloque 1.
Olvidar dividir direcciones en campos (bloque, desplazamiento, etc.).
No considerar si las direcciones refieren a números de palabra, byte o bloque.
Impacto de la jerarquía de memoria en el rendimiento
Acceso a memoria en programación:
Optimizar cómo se accede a memoria afecta directamente el rendimiento (e.g., multiplicación de matrices).
Cambiar el orden de los bucles puede reducir significativamente el tiempo de ejecución.
Técnica de agrupación en bloques mejora aún más la eficiencia.
Efectos en programación paralela:
Direcciones mal asignadas pueden causar conflictos en cachés compartidas (e.g., caché L2 con baja asociatividad).
Evaluación incorrecta del tiempo de acceso a memoria
Procesadores fuera de orden:
El tiempo promedio de acceso a memoria no es suficiente para evaluar la jerarquía.
Es necesario simular la interacción entre procesador y memoria.
Espacios de direccionamiento y segmentación
Ampliación de direcciones:
Problema histórico: transitar de 16 bits a 32 bits mediante segmentación.
Desventajas de la segmentación:
Complejidad al usar punteros y parámetros.
Direcciones ocupan más espacio, causando problemas en registros.
Virtualización y arquitecturas no diseñadas para virtualización
Problemas con arquitecturas antiguas:
Instrucciones que no verifican privilegios adecuadamente en modo usuario.
Ejemplos: Instrucciones x86 que acceden a registros de control sin generar excepciones (e.g., SGDT, PUSHFD).
Soluciones propuestas:
Intel VT-x y AMD Pacifica: Extensiones para mejorar la virtualización.
Paravirtualización: Modificar el sistema operativo para evitar instrucciones problemáticas.
Categoría de instrucciones problemáticas para la virtualización
Instrucciones que leen registros sensibles:
Ejemplo: SGDT, SIDT.
Instrucciones que fallan en la protección de la memoria:
Ejemplo: PUSHF, LSL.
Interacciones con registros de segmento:
Ejemplo: POP CS, JMP a nivel de privilegio diferente.