Explotabilidad inherente y máquinas de estado de potencia

Estoy trabajando en la comprensión de las máquinas de estado de energía con respecto a los dispositivos informáticos móviles. La mayor parte de la información sobre este tema parece provenir de este artículo . No es particularmente importante para la pregunta, pero pensé que proporcionaría algún contexto de dónde provenía mi información.

ingrese la descripción de la imagen aquíAquí está la pregunta: con una máquina de estado de energía, el Ttr (tiempo de transición total) se puede calcular como: Ttr=Ton,off + Toff,ondonde Ton,off es el tiempo que se tarda en pasar de encendido a un estado de menor energía.

Para calcular la potencia total consumida durante una transición Ptr = (Ton,off * Pon,off +Toff,on * Poff,on)/Ttrse utiliza la fórmula:.

Mi primera confusión tiene que ver con las variables Pon,off, Poff,on. Supongo que estos son estados de encendido y apagado en consecuencia, por lo que para ejecutar->inactivo->ejecutar, ¿los estados de energía serían 400 y 50?

La siguiente parte tiene que ver con la explotabilidad inherente. Dado un período de inactividad, el uso de esta fórmula calculará la energía que ahorrará:Es(T-idle) = (T-idle-Ttr)(Pon-Poff)+Ttr(Pon-Ptr)

Entonces, usando esta fórmula para un tiempo de inactividad de 1000 microsegundos obtuve: Es(1000) = (1000-20)(400-50)+20(400-225). - El resultado de esto es más de 3,5 millones de mw, lo que obviamente es absurdo. ¿Dónde me estoy equivocando aquí? Es difícil encontrar información sobre este tema fuera del documento al que hice referencia, además de otros sitios, que hacen referencia a ese documento. ¡Gracias!

(1000 - 20) * 1e-6 segundos * (400-50) * 1e-3 watts... cuidado con tus unidades.
mW es Potencia = Energía/Tiempo. Entonces necesitas dividir ambos lados de tu ecuación por los mismos 1000us para obtener potencia.
La energía se mide en julios [J]. Es lo mismo que vatios por segundos [Ws]. El resultado está en nanojulios [ µs × mW = nJ].

Respuestas (1)

Creo que el OQ del OP ha sido respondido en los comentarios.

Todavía no puedo agregar comentarios, pero me gustaría agregar algunos detalles sobre las máquinas de estado para cualquier persona que se vincule a esto.

Este es el código mínimo (pseudo) para un microcontrolador en ejecución:

[Power on]
1: Initialize(); //Clock and other hardware
2: Goto 4; //void Main()
3: "Crash"/unhandled Exception/activate watchdog timer/undefined
4: NOP; //NoOPeration = do nothing; uploaded user code goes here
5: Goto 4; //User code typically runs in an infinite loop
6: Goto 3; //void Main() does not typically ever return

Mientras se mantenga el ciclo infinito, el controlador está ejecutando el código de usuario o "inactivo". El artículo que OP vinculó muestra la burbuja inactiva con el subtexto "esperar la interrupción". En mi experiencia con microcontroladores, no existe un "estado" para inactivo; la inactividad simplemente sucede cuando no hay nada más que hacer.

El código de usuario puede, en cualquier momento, detectar que no tiene nada que hacer y decirle al procesador que espere las interrupciones y/o que se quede sin energía.

WFI(); //Block execution until an interrupt fires

y/o

LOW_POWER_REGISTER &= 0x01; //Physically power-down peripherals and reduce clock speeds

Si lo desea, el código de usuario puede ingresar a un modo de bajo consumo personalizado o específico y luego, también, WFI(). WFI() tiene una probabilidad muy alta de ahorrar energía ya que suspende el código de usuario, pero también puede invocar una o más funciones integradas de ahorro de energía del hardware.

La interrupción que activa el controlador será responsable de restaurar cualquier estado de energía que dejar WFI() no se restaura automáticamente. Por lo general, WFI() se usa para hacer una pausa hasta que cambien uno o más pines de entrada. Un "pin" observado puede ser un terminal de soldadura real o estar conectado internamente a periféricos como un temporizador.

No pude definir "explotabilidad inherente", incluso con la ayuda de Google. El problema real con las transferencias de estado de energía que demoran demasiado es la pérdida de datos. Si los datos recibidos de forma asincrónica son los que activan el controlador, una parte del paquete se pierde antes de que el controlador se despierte. Enviar un byte de "despertar" sin hacer nada desde el host antes de que los datos reales sean ligeros y garantiza que los receptores estén despiertos y listos para recibir.