Lo que afecta el diseño de un SOC o uC para ofrecer XIP o RAM para la ejecución de código

0

He estado tratando de entender los factores en el diseño del controlador / SoC para que pueda ejecutar el código desde un flash XIP o desde una RAM. Hay controladores que admiten un flash XIP de alrededor de 5 MB y hay SoCs donde no hay ningún XIP, solo hay memoria externa. El código se ejecuta desde la DRAM externa en estos casos (que puedo relacionar con el funcionamiento de la PC).

Algunas conclusiones observadas hasta ahora incluyen:

  1. El uso de un XiP ya no es eficiente después de un cierto tamaño / velocidad, Considerando tanto el costo como la operación real.
  2. ¿El proceso de fabricación también afecta el diseño?
  3. Algunas soluciones híbridas también están presentes, donde el bus de instrucciones puede buscarse desde un XIP o una DRAM externa

En resumen, la pregunta sería dónde está la línea trazada entre las dos soluciones: ejecución en RAM y ejecución en lugar de flash (XIP).

    
pregunta nkvvj

2 respuestas

1

Esta es una compensación de costo / rendimiento, que a veces también incluye algunas consideraciones de diseño específicas del sistema. Las RAM pequeñas pueden funcionar a la velocidad máxima de la CPU, con baja latencia (caché, por ejemplo), pero el flash es más lento (aún varía con el proceso, pero es lento).

Para un reloj lento de la CPU, el flash puede mantenerse al día con la tasa de obtención de instrucciones, y XIP tiene un claro sentido (especialmente si el flash está en el mismo paquete).

Aumente un poco el rendimiento, y tal vez se necesiten más trucos para permitir que el flash se mantenga al día (tal vez el costo y la potencia, al igual que la alternativa de agregar RAM). Este es (no sorprendentemente) el ámbito de las MCU de gama alta, y siempre está avanzando hacia arriba.

Eventualmente, flash no tiene la oportunidad de mantenerse al día con todo el potencial de rendimiento del sistema (pero aún podría estar bien para los cargadores de arranque, donde la simplicidad es la clave).

En cuanto a la selección de un dispositivo en función de su arquitectura de memoria, eso depende de los tamaños de su código / datos y del rendimiento de la carga de trabajo requerida. Una vez que los accesos a la memoria dejan de ser de un solo ciclo, estás en el ámbito de la evaluación comparativa y las conjeturas.

    
respondido por el Sean Houlihane
0

El flash es lento , más lento que la DRAM.

Flash se beneficia de estar en un chip por sí mismo debido a diferentes procesos de fabricación. No tan fuerte como DRAM, pero si desea mucho, el proceso de fabricación lo empuja en esta dirección.

También se debe considerar si el chip está dirigido a mercados "integrados" (programas pequeños de un solo propósito, nunca actualizados) o algo más orientado al consumidor (cargue un sistema operativo multitarea que luego carga aplicaciones).

Una vez que un diseñador ha decidido que un chip debe tener una interfaz DRAM, el Flash incorporado parece una mala idea (pérdida de área, necesita programación en el circuito) y, por lo general, estos sistemas SoC tendrán un pequeño, fijo, pero ROM de arranque relativamente sofisticado. Tengo un iMX53 aquí que puede arrancar desde:

  • NOR Flash
  • Flash NAND
  • OneNAND Flash (sea lo que sea)
  • SD / MMC
  • HDD paralelo ATA (PATA) / Serial ATA (SATA)
  • dispositivos de ROM en serie

En todos los casos, el gestor de arranque copia las páginas a DRAM y luego transfiere el control allí. Esto lo hace conceptualmente más sencillo, ya que no todas las interfaces podrían admitir XIP.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas