¿Qué significa el acceso a "Estado de espera" en la hoja de datos de una MCU y cómo me afecta?

2

Estoy considerando usar un AT32UC3B en mi proyecto (la versión Super OSD Pro). Sin embargo, algo sobre la hoja de datos me preocupa.

Página 31

  • 0 Espere el acceso del estado a hasta 30 MHz en las condiciones más desfavorables
  • 1 Espere el acceso del estado a hasta 60 MHz en las condiciones más desfavorables

¿Qué es una "condición de peor caso"? La etapa de salida de mi OSD debe poder ejecutarse a 60 MIPS (la frecuencia de funcionamiento máxima del procesador), y supongo que un "estado de espera" significa que tiene que esperar para cargar datos de la memoria ... lo que me limitaría a & lt ; 60 MIPS.

Supongo que, en el peor de los casos, podría cargar el código en la RAM y ejecutarlo desde allí (¿supongo que es posible con AVR32s?), pero todavía me confunde.

    
pregunta Thomas O

3 respuestas

5

El estado de espera es un ciclo de reloj de bus adicional que se agrega a la memoria para permitir que la información se extraiga y aparezca en el bus del procesador. Esta adición de estados de espera limitará su velocidad de procesamiento a menos de 60 MIPS (lo que sea que eso signifique). El AVR32 tiene un diseño de memoria flash intercalada / intercalada de modo que los estados de espera se ocultan para el código de línea recta, lo que le permite acceder al programa a 60MHz completos, pero tan pronto como ejecuta una rama o CALL, esto interrumpirá la intercalación e esperar penalización estatal.

El AVR32 puede ejecutar código desde su RAM, pero este es un recurso algo limitado en los dispositivos 32B.

Si REALMENTE necesita la operación completa de 60MIP para que funcione su código, tendrá problemas. ¿Cómo va a hacer frente a las interrupciones que toman el tiempo del procesador .....

    
respondido por el uɐɪ
2

A menudo, las operaciones se ejecutarán más rápido que la memoria externa. Es decir que cuando tenga que cargar desde la memoria tendrá que tener estados de espera. Ahora tienen en su hoja de datos que es 30MHz sin estado de espera de flash. Lo tienen optimizado para permitir el acceso canalizado a flash para ocultar el ciclo de retardo.

tienes razón en que Ram es una opción, pero debes probar tu algoritmo y ver si tienes problemas. Si mantiene fuera de su código las instrucciones de mantener rama, debe poder canalizar y ocultar los estados de espera.

    
respondido por el Kortuk
0

La arquitectura AVR32A es una canalización de 3 etapas y no parece que el modelo admita la predicción de rama, por lo que cualquier rama de su código se detendrá. Además, no todas las instrucciones son de ciclo único.

En términos generales, nunca elija un procesador en función de su clasificación MIPS. En casi todos los escenarios del mundo real, nunca te acercarás a su pico teórico de calificación MIPS.

    
respondido por el Mark

Lea otras preguntas en las etiquetas