MMU externa para cortex-M

2

Los procesadores Cortex-M son cada vez más rápidos y más potentes. El Cortex-M7 acaba de ser anunciado. Sin embargo, estos no pueden ejecutar Linux (aparte de uCLinux) porque los chips carecen de una MMU - Unidad de gestión de memoria.

¿Hay un chip MMU externo? Wikipedia se refiere al Motorola 68851 y al Zilog z8015, pero ambos son bastante antiguos. Idealmente, una versión actualizada le permitiría agregar módulos de memoria DIMM a un Arduino Due (como ejemplo).

¿Hay tal chip disponible? ¿O es este el tipo de tarea personalizada que solo puede hacer con un FPGA?

    
pregunta Alan Campbell

1 respuesta

3

TL; DR: No hay nada que lo haga técnicamente imposible, pero hay una serie de limitaciones, y las CPU ARM "reales" hacen un mejor trabajo de todas formas.

La mayor diferencia entre las CPU más antiguas que a menudo se emparejaron con estas MMU y los modernos microcontroladores Cortex-M es que el bus de memoria era completamente externo en esas CPU: todas las lecturas y escrituras de la memoria eran visibles en el bus y podían manipularse por la MMU. Este no es el caso de los microcontroladores Cortex-M: un poco del espacio de direcciones de 32 bits está reservado para la memoria interna y los periféricos, y no se puede volver a asignar.

Incluso cuando las interfaces de memoria externas están disponibles, solo aparecen en parte del espacio de direcciones y, a menudo, son bastante limitadas en tamaño y aplicación. Por ejemplo, en los microcontroladores STM32F1xx, el FSMC puede direccionar hasta 4 bancos SRAM de hasta 64 MB cada uno, lo que le deja solo 256 MB de espacio de direcciones extraíbles.

Lo largo y lo mínimo es que, si quieres una MMU, no usas un Cortex-M. Utiliza una de las CPU ARM de gama alta que tienen una MMU integrada.

    
respondido por el duskwuff

Lea otras preguntas en las etiquetas