US 11,893,249 B2
System and method for flash and RAM allocation for reduced power consumption in a processor
Subba Reddy Kallam, Sunnyvale, CA (US); Partha Sarathy Murali, Sunnyvale, CA (US); Venkata Siva Prasad Pulagam, Secunderabad (IN); Anusha Biyyani, Hyderabad (IN); Venkatesh Vinjamuri, Tenil (IN); Shahabuddin Mohammed, Hyderabad (IN); Rahul Kumar Gurram, Secunderabad (IN); and Akhil Soni, Kalpi (IN)
Assigned to Ceremorphic, Inc., San Jose, CA (US)
Filed by Ceremorphic, Inc., San Jose, CA (US)
Filed on Mar. 9, 2022, as Appl. No. 17/691,046.
Application 17/691,046 is a continuation of application No. 16/992,098, filed on Aug. 13, 2020, granted, now 11,307,779.
Claims priority of provisional application 62/899,084, filed on Sep. 11, 2019.
Prior Publication US 2022/0206694 A1, Jun. 30, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01); G06F 12/06 (2006.01)
CPC G06F 3/0625 (2013.01) [G06F 3/068 (2013.01); G06F 3/0631 (2013.01); G06F 12/0646 (2013.01); G06F 2212/1028 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A process operative on a Central Processing Unit (CPU) coupled to a flash memory containing portable code modules, the CPU also coupled to a Random Access Memory (RAM), the process comprising:
the CPU executing powersave code from a region of flash memory to a region of RAM, the CPU thereafter executing the powersave code from the region of RAM;
the CPU copying portable code modules from a region of flash memory to a region of RAM;
the CPU initializing pointers in a region of RAM indicating whether each portable code module is to be executed from a region of flash memory or from a region of RAM;
the CPU allocating transient RAM memory for the storage of data;
the CPU periodically examining a ratio of a size of the transient RAM memory in use to a total RAM size;
if the ratio is greater than a first threshold:
deallocating a region of the RAM used for portable code modules, updating associated pointers to point to corresponding portable code modules in the flash memory, and also allocating the deallocated region of RAM used for portable code modules to transient RAM memory.