¿Los microcontroladores tienen caché?

1

Me pregunto si los microcontroladores normalmente tienen caché o no.

¿Cuál es el caso común?

Si no, ¿cuál podría ser el beneficio detrás de esto?

    
pregunta Hesham Eraqi

2 respuestas

6

Algunos lo hacen, otros no.

Las MCU de gama baja no lo hacen como regla general. La razón de esto es que son dispositivos bastante simplistas sin canalizaciones u otras optimizaciones. Solo un simple núcleo de CPU de 8 bits conectado a direcciones y buses de datos (generalmente arquitectura de Harvard). Por lo general, no se ejecutan lo suficientemente rápido como para obtener un aumento de velocidad de la memoria caché, ya que de todos modos pueden leer desde Flash a casi toda su velocidad.

Los de final superior, normalmente los de más de 32 bits, como ARM y PIC32, tienen caché. Por lo general, estos se ejecutan considerablemente más rápido (80MHz en comparación con 16MHz, por ejemplo) que las pequeñas MCU de 8 bits, y como resultado no pueden leer el Flash lo suficientemente rápido, por lo que tienen una pequeña cantidad de caché, y una etapa), para que todo el sistema sea más suave y rápido.

    
respondido por el Majenko
4

En general no, pero la corteza-m4 lo hace, me cuesta llamarlos microcontroladores con caché I y D, una unidad de punto flotante, etc. plls para la multiplicación del reloj, pero el flash puede no ser capaz si la velocidad más rápida que puede manejar la lógica, por lo que tiene que agregar más estados de espera, lo que efectivamente limita la captura de la velocidad del flash (algunos tienen funciones de captación previa para ayudarlo). Así que el caché puede ayudar allí. El almacenamiento en caché D no tiene mucho sentido, pero también podría ser que cuanto más rápido vayas, más caro es el sram, pero no recuerdo haber tenido que meterme en los estados de espera en el sram, por lo que el almacenamiento en caché no necesariamente tiene sentido, tienes que tener cuidado con D caché de todos modos sin un mmu o alguna otra forma de aislar el espacio de registro de la RAM general. Algunos de los diseños centrales son tales que hay un límite donde deben estar los periféricos y el ram y, por lo tanto, no es necesario que mmu le indique dónde están las regiones en cacheables, simplemente puede activar la caché d si tiene una.

La respuesta corta es la misma razón por la que usarías un caché en cualquier otro procesador. Para separar un procesador más rápido de su memoria más lenta y económica. Evita que al menos las ráfagas estén vinculadas a la memoria.

    
respondido por el old_timer

Lea otras preguntas en las etiquetas