3 ms·
Batteries are bad for the environment is the reasoning, so why not make hardware that will function flawlessly after a brief power outage that doesn't require a
by janandonly 5y ago
Batteries are bad for the environment is the reasoning, so why not make hardware that will function flawlessly after a brief power outage that doesn't require a battery at all...
So the trick here is:
1. the hardware has a "shield" chip that is running a python-interpreter. This chip uses FeRAM [1] to ensure that information is saved in the event of a power cut. This chip determines the best moment to automatically save a "checkpoint"
2. To prevent outages at the microsecond or seconds level a small compensator is embedded as well.
For the user, the intermittent-computing aspect is entirely invisible. Internally, the modified CircuitPython interpreter communicates with the BFree shield and decides when to make a so-called "checkpoint." A checkpoint is a snapshot of the program at that point. When the system runs out of power and eventually starts back up, this is the point where the program will resume. The system always continues from the last successful checkpoint. A checkpoint is created by sending the state of the interpreter (such as the current position in the program, the value of the variables, the state of the peripherals, etc.) to the BFree shield, which stores it in non-volatile memory (FRAM). For more details, please check out the complete paper here [2].
[1] https://en.wikipedia.org/wiki/Ferroelectric_RAM https://en.wikipedia.org/wiki/Ferroelectric_RAM
[2] https://dl.acm.org/doi/abs/10.1145/3432191 https://dl.acm.org/doi/abs/10.1145/3432191