tipos sirve qué que pasa para mis memoria los informatica fotos donde datos caracteristicas caché cache bueno borro borrar borran aloja almacenados memory caching embedded

memory - sirve - tipos de memoria cache



¿Por qué una región de memoria se marcará como no almacenada en caché? (6)

En una aplicación integrada, tenemos una tabla que describe los diversos rangos de direcciones que son válidos en el tablero de destino. Esta tabla se usa para configurar la MMU.
El rango de direcciones de RAM se marca como cacheable, pero otras regiones están marcadas como no almacenables. ¿Porqué es eso?


¿Quizás se usa para E / S mapeadas en memoria?


Algunas áreas, como Flash, se pueden leer en un ciclo, por lo que no necesitan almacenarse en caché.


Cualquier región de memoria utilizada para DMA u otras interacciones de hardware no debe almacenarse en caché.


Esto se hace para que el procesador no utilice valores obsoletos debido al almacenamiento en caché. Cuando accede a la RAM en caché (regular), el procesador puede "recordar" el valor al que accedió. La próxima vez que vea la misma ubicación de memoria, el procesador devolverá el valor que recuerda sin mirar en la RAM. Esto es el almacenamiento en caché.

Si el contenido de la ubicación puede cambiar sin que el procesador lo sepa como podría ser el caso si tiene un dispositivo mapeado en la memoria (un FPGA que devuelve algunos paquetes de datos, por ejemplo), el procesador podría devolver el valor "recordado" de la última vez, que estaría mal.

Para evitar este problema, marque ese espacio de direcciones como no cacheable. Esto asegura que el procesador no intente recordar el valor.


Los controladores modernos pueden usar caché L2 para DMA, lo que significa que conservan la coherencia de la región de memoria en caché utilizada para los accesos DMA. Esto también se denomina "transacciones de memoria fisionable" realizada por el controlador (a través de DMA).


Si tanto el hardware como el software acceden simultáneamente a una región de memoria (por ej., Registro de configuración de hardware o lista de recopilación de dispersión para DMA), esta región debe definirse como no almacenada en caché. Para DMA real, el búfer de memoria puede definirse como almacenado en caché, y en la mayoría de los casos es aconsejable que el búfer se guarde en caché para permitir que la aplicación tenga acceso rápido a dicho búfer. Es responsabilidad del controlador vaciar / invalidar el caché antes de pasar el búfer a DMA o a la aplicación.