The present invention is an controller for dynamically allocating RAM between powersave code copied from ROM and transient RAM memory used for storing packets. When the utilization of the transient RAM memory is low, code segments are copied from ROM and executed from RAM using a RAM pointer table which is updated after the code segments are copied over from ROM, and when the utilization of the transient RAM memory is high, code segments are deallocated from RAM and the pointer table is updated to point to the corresponding location in flash ROM.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A process operative on a Central Processing Unit (CPU) coupled to a flash read only memory (ROM) containing portable code modules, the CPU also coupled to a Random Access Memory (RAM), the process comprising: the CPU executing code from a region of flash ROM and copying executable powersave code from a region of flash ROM 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 ROM 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 ROM or from a region of RAM; the CPU allocating transient RAM memory in the RAM for receive and transmit packets; 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 ROM, and also allocating the deallocated region of RAM used for portable code modules to transient RAM memory; if the ratio is less than a second threshold: allocating a region of RAM for portable code modules, copying portable code modules to the allocated region of RAM, and updating the pointers to point to corresponding portable code modules in the allocated region of RAM.
This invention relates to power management in embedded systems and addresses the problem of efficiently managing RAM usage to conserve power. The process involves a Central Processing Unit (CPU) interacting with flash Read-Only Memory (ROM) containing portable code modules and Random Access Memory (RAM). Initially, the CPU executes code from flash ROM and copies executable powersave code to RAM for subsequent execution from RAM. Portable code modules are also copied from flash ROM to RAM. Pointers are established in RAM to track whether each portable code module resides in flash ROM or RAM. The system allocates transient RAM memory for network packet receive and transmit operations. The CPU periodically monitors the utilization of this transient RAM memory relative to the total RAM size. If the transient RAM usage exceeds a first threshold, a region of RAM previously used for portable code modules is deallocated. The pointers are updated to direct execution of these modules from flash ROM, and the deallocated RAM space is repurposed for transient RAM memory. Conversely, if the transient RAM usage falls below a second threshold, RAM is allocated for portable code modules. These modules are then copied to the allocated RAM, and the pointers are updated to indicate that the modules are now executing from RAM.
2. The process of claim 1 where the first threshold is in a range from 40% to 60%.
A system and method for optimizing a process involves adjusting operational parameters based on a first threshold value. The process monitors a performance metric and compares it to the first threshold, which is set between 40% and 60%. When the performance metric exceeds this threshold, the system triggers an adjustment to one or more operational parameters to improve efficiency or output. The adjustment may include modifying input variables, altering process conditions, or recalibrating system components. The system may also incorporate a second threshold, which, when crossed, initiates a different set of adjustments or corrective actions. The process ensures that the system operates within optimal performance ranges, reducing waste and improving yield. The method is applicable in manufacturing, industrial automation, or any system requiring real-time performance monitoring and dynamic adjustments. The invention addresses the problem of maintaining consistent performance in variable conditions by providing a threshold-based control mechanism that automatically adapts to changing operational demands.
3. The process of claim 1 where the second threshold is in a range from 20% to 40%.
A system and method for optimizing energy consumption in a heating, ventilation, and air conditioning (HVAC) system involves dynamically adjusting operational parameters based on environmental conditions and user preferences. The process includes monitoring indoor temperature and humidity levels, comparing these measurements against predefined thresholds, and adjusting HVAC operations to maintain comfort while minimizing energy use. A first threshold determines when the HVAC system activates to regulate temperature, while a second threshold, set between 20% and 40%, controls humidity regulation. The system may also incorporate user-defined comfort settings, allowing adjustments to the thresholds based on individual preferences. By dynamically responding to real-time environmental data, the system ensures efficient energy use while maintaining a comfortable indoor environment. The method may further include predictive algorithms to anticipate changes in conditions, enabling preemptive adjustments to HVAC operations. This approach reduces unnecessary energy consumption and extends the lifespan of HVAC components by avoiding excessive cycling. The system is particularly useful in residential and commercial buildings where energy efficiency and occupant comfort are priorities.
4. The process of claim 1 where the second threshold is less than the first threshold.
A system and method for adaptive threshold-based control in industrial processes involves dynamically adjusting operational parameters based on multiple threshold levels to optimize performance. The process monitors a process variable, such as temperature, pressure, or flow rate, and compares it against a first threshold and a second threshold. When the process variable exceeds the first threshold, a primary control action is triggered to adjust the system. If the process variable exceeds the second threshold, which is set lower than the first, a secondary control action is initiated to prevent system instability or damage. The thresholds are dynamically adjusted based on real-time process conditions, historical data, or predictive models to ensure efficient and safe operation. This adaptive approach allows the system to respond more precisely to varying operational demands, reducing energy consumption, wear and tear, and the risk of failures. The method is particularly useful in manufacturing, energy production, and chemical processing, where precise control of process variables is critical for maintaining product quality and system reliability. The use of multiple thresholds with the second threshold set lower than the first enables a more responsive and proactive control strategy, improving overall system performance.
5. The process of claim 1 where a region of the RAM includes a special pool.
A system and method for managing memory allocation in a computing device addresses the problem of inefficient memory usage and fragmentation in random access memory (RAM). The invention provides a dynamic memory allocation mechanism that optimizes the use of available RAM by creating a special pool within the memory. This special pool is designated for storing frequently accessed or critical data to improve performance and reduce latency. The system monitors memory usage patterns and dynamically adjusts the size and allocation of the special pool based on real-time demands. When data is requested, the system prioritizes accessing the special pool first to minimize access time. If the requested data is not found in the special pool, the system retrieves it from other memory regions and may subsequently move it to the special pool for faster future access. The invention also includes mechanisms to prevent memory fragmentation by consolidating free memory blocks and reallocating them efficiently. The dynamic adjustment of the special pool ensures that the system maintains optimal performance under varying workloads. This approach enhances overall system efficiency by reducing the overhead associated with memory management and improving data access speeds.
6. The process of claim 5 where the special pool is used as packet memory for control packets or User Datagram Protocol (UDP) packets.
A system and method for managing packet memory in a network device involves allocating a special pool of memory for specific types of network traffic. The special pool is dedicated to storing control packets or User Datagram Protocol (UDP) packets, ensuring efficient handling and prioritization of these packet types. The system dynamically allocates memory from the special pool to avoid congestion and improve performance for critical network functions. The process includes monitoring packet traffic, identifying control or UDP packets, and directing them to the designated memory pool. This approach optimizes resource utilization by segregating high-priority or time-sensitive packets from other network traffic, reducing latency and improving reliability. The special pool may be configured with specific size or performance characteristics to meet the requirements of control or UDP traffic, ensuring consistent performance under varying network conditions. By isolating these packet types, the system enhances overall network efficiency and stability.
7. A power saving processor, the power saving processor comprising: a Central Processing Unit (CPU); flash Read Only Memory (ROM) containing boot code, fixed code, and portable code segments; Random Access Memory (RAM) having a region allocated for transient RAM memory, a region allocated for callable functions, a function pointer table, and powersave code; the RAM region allocated for callable functions having at least one function copied from a flash ROM portable code segment; the function pointer table containing a pointer to either the flash ROM portable code segment or the RAM region allocated for callable functions and having the at least one function copied from the flash ROM portable code segment; the powersave code instructing the CPU to periodically examine a ratio of a size of the RAM region which has been allocated for callable functions to a total RAM size to form an allocation ratio; when the allocation ratio is above a first threshold: identifying at least one RAM region callable function copied from a flash ROM portable code segment; updating an associated pointer in the function pointer table to point to the identified flash ROM portable code segment; deallocating a corresponding RAM region used by the at least one RAM region callable function and allocating the deallocated corresponding RAM region to the transient RAM memory region, and; when the allocation ratio is below a second threshold: deallocating a segment of transient RAM memory; allocating the deallocated segment of transient RAM memory to a region of RAM callable function memory; copying at least one portable code module segment from the flash ROM to the callable function region of the RAM; updating a pointer in the function pointer table to direct calls to the portable code segment copied from the flash ROM to the callable function region of the RAM.
A power-saving processor system dynamically manages memory allocation between transient RAM and callable functions to optimize power consumption. The system includes a CPU, flash ROM containing boot, fixed, and portable code segments, and RAM divided into regions for transient memory, callable functions, a function pointer table, and power-saving logic. Callable functions are initially copied from flash ROM to RAM, with the function pointer table directing calls to either the RAM or flash ROM versions. The power-saving logic periodically evaluates the ratio of RAM allocated to callable functions versus total RAM. If this ratio exceeds a first threshold, the system identifies RAM-resident callable functions, updates pointers to redirect calls to the flash ROM versions, and reallocates the freed RAM to transient memory. Conversely, if the ratio falls below a second threshold, the system deallocates transient RAM, reallocates it to callable functions, and copies additional portable code segments from flash ROM to RAM, updating pointers accordingly. This dynamic adjustment balances performance and power efficiency by minimizing unnecessary RAM usage while ensuring critical functions remain accessible.
8. The apparatus of claim 7 where the first threshold is in a range from 40% to 60%.
This invention relates to an apparatus for monitoring and controlling a process involving a fluid flow, such as in industrial or environmental applications. The apparatus addresses the challenge of accurately detecting and responding to changes in fluid flow conditions to prevent system failures or inefficiencies. The apparatus includes a sensor system that measures fluid flow parameters, such as velocity or pressure, and a control system that adjusts operational parameters based on the sensor data. A key feature is the use of a first threshold value, set between 40% and 60%, to determine when corrective actions should be taken. When the measured fluid flow parameter exceeds this threshold, the control system initiates adjustments to maintain optimal performance. The apparatus may also include additional thresholds or feedback mechanisms to refine control decisions. The invention ensures reliable operation by dynamically responding to fluid flow variations, reducing downtime and improving efficiency in processes like chemical processing, water treatment, or HVAC systems. The apparatus may be integrated into existing systems or deployed as a standalone unit, depending on the application.
9. The apparatus of claim 7 where the second threshold is in a range from 20% to 50%.
A system for monitoring and controlling a power distribution network includes a sensor array that detects electrical parameters such as voltage, current, and frequency at multiple nodes within the network. The system analyzes these parameters to identify faults or anomalies, such as overcurrent conditions, voltage sags, or frequency deviations. When a fault is detected, the system triggers a protective action, such as isolating a faulty section of the network or adjusting power flow to maintain stability. The system uses a first threshold to detect initial faults and a second threshold to confirm persistent or severe faults before taking action. The second threshold is set within a range of 20% to 50% of the nominal operating value, ensuring that transient disturbances do not trigger unnecessary protective actions while still detecting significant faults. The system may also include communication modules to transmit alerts or control signals to other network components, such as circuit breakers or power electronics, to mitigate the fault. The apparatus is designed to improve reliability and efficiency in power distribution networks by reducing false alarms and ensuring timely fault response.
10. The apparatus of claim 7 where the first threshold or the second threshold is updated periodically.
A system for adaptive threshold adjustment in a monitoring apparatus is designed to improve detection accuracy in dynamic environments. The apparatus monitors a process or system by comparing measured values against predefined thresholds to identify anomalies or deviations. The first threshold defines an upper limit, while the second threshold defines a lower limit, creating a range within which normal operation is expected. To maintain accuracy as conditions change, the system periodically updates these thresholds based on historical data, environmental factors, or system performance trends. This adaptive adjustment ensures the thresholds remain relevant, reducing false positives and negatives. The apparatus may include sensors, a processing unit, and a memory storing threshold values and update algorithms. The periodic updates can be time-based, event-triggered, or based on statistical analysis of recent measurements. This approach enhances reliability in applications such as industrial process control, environmental monitoring, or predictive maintenance, where operational conditions vary over time. By dynamically adjusting thresholds, the system maintains optimal sensitivity to deviations while minimizing unnecessary alerts.
11. A system comprising: random access memory (RAM); flash read only memory (ROM); a Central Processing Unit (CPU) coupled to the RAM, the CPU having a CPU chip ROM, the CPU also coupled to the flash ROM; the flash ROM 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 CPU operative to execute boot code from the CPU chip ROM and also to copy powersave code from the flash ROM 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 ROM 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 ROM 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 ROM 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 ROM 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.
This system relates to memory management in computing devices, particularly for optimizing RAM usage during power-saving operations. The problem addressed is inefficient RAM allocation, which can lead to performance degradation or unnecessary power consumption. The system includes RAM, flash ROM, and a CPU with its own chip ROM. The flash ROM contains portable code modules with entry points, fixed code modules, and boot code, including power-saving routines. The RAM is divided into regions for power-saving code, callable portable code modules, a function pointer table, and transient memory. During operation, the CPU executes boot code from its chip ROM, then copies power-saving code from flash ROM to RAM. It allocates space for transient memory and copies portable code modules from flash ROM to RAM. The function pointer table is initialized to reference either flash or RAM versions of the portable code modules. The CPU executes power-saving code from RAM and portable code modules from either flash or RAM, as indicated by the function pointer table. The system periodically computes a utilization ratio by dividing the combined size of transient RAM used by power-saving code, callable portable code, the function pointer table, and transient RAM by the total RAM size. If this ratio falls below a first threshold, the CPU deallocates transient RAM, reallocates some of it to portable code modules, copies the corresponding module from flash to RAM, and updates the function pointer table to reference the RAM version. This dynamic memory management improves efficiency by balancing RAM usage between transient and portable code modules.
12. The system of claim 11 where the CPU is operative to change the function pointer table to reference the portable code modules in the flash ROM and deallocate the associated portable code module from the RAM and allocates the associated portable code module memory to the transient RAM memory region when the utilization ratio is above a second threshold.
This invention relates to a system for managing memory resources in a computing device, particularly for optimizing the use of RAM and flash ROM. The system addresses the problem of inefficient memory utilization, where portable code modules (PCMs) loaded into RAM may not be actively used, consuming valuable memory resources that could be allocated to transient operations. The system includes a central processing unit (CPU) that monitors the utilization ratio of RAM. When the utilization ratio exceeds a first threshold, the CPU loads a portable code module from flash ROM into RAM to execute the module's functions. The CPU maintains a function pointer table that references the PCMs in RAM, allowing the system to call the functions as needed. When the utilization ratio of RAM rises above a second, higher threshold, the CPU reallocates memory by changing the function pointer table to reference the PCMs in flash ROM instead of RAM. The CPU then deallocates the PCM from RAM, freeing up the memory for transient operations. This dynamic reallocation ensures that frequently used PCMs remain in RAM while less frequently used ones are offloaded to flash ROM, optimizing memory usage. The system also includes a transient RAM memory region, which is dynamically resized based on the available RAM after deallocating PCMs. This ensures that transient operations have sufficient memory resources when needed. The invention improves system performance by reducing unnecessary RAM usage and ensuring critical functions remain accessible.
13. The system of claim 11 where the first threshold is in a range from 40% to 60%.
A system for monitoring and controlling a process involves detecting a parameter of the process and comparing it to a first threshold to determine whether an adjustment is needed. The system includes a sensor to measure the parameter, a controller to analyze the measurement, and an actuator to make adjustments based on the controller's output. The first threshold is set within a range of 40% to 60% of a predefined reference value, ensuring the process remains within an optimal operating range. The system may also include a second threshold for additional control, where the second threshold is higher than the first. If the parameter exceeds the first threshold, the controller triggers an adjustment to bring the parameter back to a desired level. If the parameter exceeds the second threshold, the system may initiate a more aggressive correction or a shutdown procedure to prevent damage. The system is designed to maintain stability in industrial processes, such as chemical reactions, temperature regulation, or fluid flow control, where precise parameter management is critical. The use of thresholds ensures timely interventions while avoiding unnecessary adjustments, improving efficiency and safety.
14. The system of claim 12 where the second threshold is in a range from 20% to 50%.
A system for managing data processing operations includes a processor and a memory storing instructions that, when executed, cause the processor to perform operations. The system monitors a performance metric of a data processing task and compares it to a first threshold to determine whether to initiate a first action, such as adjusting processing resources. If the performance metric exceeds a second threshold, the system triggers a second action, such as terminating the task or alerting a user. The second threshold is set within a range of 20% to 50% of a predefined maximum value for the performance metric, ensuring a balance between responsiveness and stability. The system dynamically adjusts the thresholds based on historical performance data or user-defined parameters, optimizing resource allocation and task execution efficiency. This approach prevents system overload while maintaining task completion within acceptable timeframes, particularly in environments with variable workloads or resource constraints. The system may also log performance data for future analysis and threshold refinement.
15. The system of claim 11 where: the CPU is operative to deallocate the transient RAM memory from the RAM and allocate at least some of the deallocated transient RAM memory space to the portable code modules in the RAM, copy the corresponding portable code module from the flash ROM to the RAM, and update a pointer in the function pointer table to point to a corresponding portable code module in the RAM when the utilization ratio is below a first threshold; the CPU is operative to change a pointer in the function pointer table to reference portable code modules in the flash ROM and deallocate the associated portable code module from the RAM and allocate the associated portable code module memory to the transient RAM memory when the utilization ratio is above a second threshold; and where the first threshold is greater than the second threshold.
This invention relates to a memory management system for dynamically allocating and deallocating portable code modules between flash ROM and RAM based on system memory utilization. The system addresses the challenge of optimizing memory usage in embedded or resource-constrained environments where both transient data and executable code must coexist in limited RAM. The system monitors a utilization ratio of RAM and adjusts memory allocation accordingly. When the utilization ratio falls below a first threshold, the CPU deallocates transient RAM memory, reallocates that space to portable code modules, copies the corresponding code from flash ROM to RAM, and updates a function pointer table to reference the newly loaded RAM version. Conversely, when the utilization ratio exceeds a second threshold, the CPU switches function pointers back to the flash ROM versions, deallocates the RAM-resident code modules, and reallocates that space to transient RAM. The first threshold is set higher than the second to prevent rapid oscillation between states. The portable code modules are interchangeable code segments that can be executed from either memory type, with the function pointer table providing runtime access to the active versions. This approach improves system responsiveness by keeping frequently used code in faster RAM while automatically reclaiming space when transient memory demands increase.
16. An apparatus for dynamic allocation of executable code instructions, the apparatus comprising: a flash memory organized to contain portable code module segments, fixed executable code, and boot code; a random access memory (RAM) containing a function pointer table with pointer entries to either the portable code module segments in the flash memory or to a corresponding code module segment in the RAM; a pointer assignment controller for determining a code utilization based on a Central Processor Unit (CPU) executing the executable code instructions and measuring a ratio of a size of executable code which is executed from the RAM to a total RAM size, the pointer assignment controller identifying a first portable code module for execution from the RAM which is currently executing from the flash memory and a second portable code module for execution from the flash memory which is currently executing from the RAM; the pointer assignment controller changing a function pointer table entry associated with the second portable code module to point to the associated flash memory portable code module, copying the first portable code module from the flash memory to the segment of the RAM, and changing the function pointer table associated with the first portable code module to point to the associated segment of the RAM when the code utilization is below a threshold.
This invention relates to dynamic allocation of executable code instructions in embedded systems to optimize memory usage and performance. The problem addressed is inefficient memory utilization in systems where executable code is stored in flash memory but executed from RAM, leading to wasted RAM space or performance bottlenecks. The apparatus includes a flash memory storing portable code modules, fixed executable code, and boot code, along with a RAM containing a function pointer table. The table directs execution to either flash memory or RAM-based code segments. A pointer assignment controller monitors CPU execution, calculating a code utilization ratio by comparing the size of code executed from RAM to the total RAM size. When utilization falls below a threshold, the controller identifies a portable code module running from flash memory and another running from RAM. It then updates the function pointer table to redirect the RAM-based module to flash memory, copies the flash-based module to RAM, and updates its pointer to RAM. This dynamic reallocation ensures optimal use of limited RAM resources while maintaining system performance. The system avoids static partitioning of memory, allowing flexible adaptation to runtime conditions.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 13, 2020
April 19, 2022
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.