Estoy tratando de entender los cachés de hardware. Tengo cierta comprensión, y me gustaría preguntar si mi comprensión es correcta.
Entiendo que hay tres tipos de mapeo de caché; Directo, asociativo completo y asociativo conjunto.
Me gustaría saber, ¿el tipo de mapeo implementado con puertas lógicas en hardware y específico para decir algún sistema informático y para cambiar el mapeo, se necesitaría uno para cambiar las conexiones eléctricas?
Mi entendimiento actual es que en la RAM, existe una dirección de memoria para referirse a cada bloque de memoria. Dentro de un bloque contiene palabras, cada palabra contiene una cantidad de bytes. Podemos representar el número de opciones con el número de bits. Entonces, por ejemplo, 4096 ubicaciones de memoria, cada ubicación de memoria contiene 16 bytes. Si tuviéramos que referirnos a cada byte, entonces 2 ^ 12 * 2 ^ 4 = 2 ^ 16 16 bits de la dirección de memoria se requeriría para referirse a cada byte.
El caché también tiene una dirección de memoria, bit válido, etiqueta y algunos datos capaces de almacenar un bloque de memoria principal de n palabras y, por lo tanto, m bytes. Donde m = n * i (bytes por palabra)
Por ejemplo, el bloque de mapeo directo 1 de la memoria principal solo puede estar en una ubicación de memoria particular en el caché. Cuando la CPU solicita algunos datos utilizando una memoria de 16 bits de la memoria RAM, primero verifica la memoria caché. ¿Cómo sabe que esta dirección de memoria de 16 bits en particular solo puede estar en algunos lugares?
Mi opinión es que podría haber alguna conexión eléctrica entre cada dirección de RAM a una dirección de caché. La dirección de 16 bits se puede dividir en partes, por ejemplo, solo compare los 8 bits de la izquierda con cada dirección de memoria caché, luego, si coinciden, compare los bits de bytes, luego los bits de etiquetas y luego los bits válidos
¿Mi entendimiento es correcto? ¡Gracias! Realmente aprecio si alguien leyó este largo post