Patent ID: 11893249
Assignee: CEREMORPHIC, INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G  Y | IPC G

Claim 14:
15. Downloadable computer instructions configured to control a system comprising:
random access memory (RAM);
flash memory;
a Central Processing Unit (CPU) coupled to the RAM, the CPU having a CPU chip ROM, the CPU also coupled to the flash memory;
the flash memory containing:
executable portable code modules having an entry point address;
executable fixed code modules;
boot code including powersave code;

the RAM having a powersave code region, a callable portable code module region, a function pointer table region, and a transient RAM memory region;
the downloadable computer instructions configured to cause:
the CPU to execute boot code from the CPU chip ROM and also to copy powersave code from the flash memory to the powersave code region in the RAM;
the CPU operative to allocate space in the RAM to the transient RAM memory region, the CPU operative to copy portable code module segments from the flash memory to the RAM callable portable code module region, the CPU operative to initialize the function pointer table region to point to either a portable code module segment in the flash memory or to a corresponding portable code module segment in a portable code module region of the RAM;
the CPU operative to execute the powersave code from RAM;
the CPU operative to execute the portable code modules from at least one of the flash memory or the RAM, as indicated by a corresponding pointer in the function pointer table;
where the CPU is operative to periodically compute a utilization ratio based on a ratio of a size of transient RAM memory used by power save code plus a size of callable portable code plus a size of the function pointer table plus a size of transient RAM memory divided by a total RAM size;
and where the CPU is operative to deallocate transient RAM memory from RAM and allocate at least some of the deallocated transient RAM memory to portable code modules in the RAM, copy the corresponding portable code module from the flash memory to the RAM, and update the function pointer table to point to the corresponding portable code module in the RAM when the utilization ratio is below a first threshold.