Trataré de explicar en lenguaje sencillo y luego el aspecto técnico de la memoria caché sin bloqueo.
Entonces, digamos que hay una ventana a una tienda y una persona está manejando una solicitud, por ejemplo. Starbucks Ahora, cuando solicita un café, puede haber 2 enfoques para manejar su solicitud de café.
1. El cajero toma su pedido, hace café y le da café. Otras personas detrás de ti deben esperar.
2. El cajero toma su solicitud, la coloca en un contenedor y el trabajador de fondo maneja su solicitud. Y te haces a un lado y la gente detrás de ti puede hacer su pedido.
¿Cuál crees que es mejor?
Ahora reemplace a las personas con solicitudes de fallas que lleguen a un caché de nivel inferior, digamos L2 $ desde L1 $. Ahora, cuando se encuentra una falla, envía una solicitud a L2. Ahora L2 puede manejar, procesar esta solicitud de falta y otras solicitudes de falta deben esperar. Otra forma puede ser que se mantenga una cola que toma los errores y L2 los procesa. Esto se realiza mediante caché sin bloqueo y MSHR (Miss Status Handling Register). Entonces, ahora el caché no bloquea su ventana de solicitud (es por eso que no bloquea). Espero que eso lo aclare.
- USB tipo C vs conector lightning?
- ¿Es factible el concepto de una computadora óptica (una computadora que computa controlando, a diferencia de la electricidad)?
- ¿Qué consejos puede ofrecerle a un estudiante de primer año con especialización en ingeniería informática que no tiene idea de lo que realmente quiere?
- ¿En qué punto las computadoras dejarán de ser más rápidas?
- Estoy en ingeniería informática. Me encanta codificar pero no soy bueno recordando cosas. ¿Qué tengo que hacer?
Tomado de la página en pdx.edu
Caché sin bloqueo:
Jerarquías de caché capaces de atender simultáneamente múltiples solicitudes de memoria
Block No bloquee las referencias de caché que no necesitan los datos faltantes.
Servicio de múltiples solicitudes fallidas a la memoria al mismo tiempo.
MSHR:
Los MSHR facilitan el paralelismo de nivel de memoria sin bloqueo
Se utiliza para rastrear la dirección, los datos y el estado de múltiples errores de caché pendientes.
Debe proporcionar un orden correcto de la memoria, responder a las solicitudes de la CPU y mantener la coherencia de la memoria caché.
En caso de tener dudas específicas, por favor comente.