Electrical computers and digital processing systems: memory – Storage accessing and control – Control technique
Reexamination Certificate
1999-03-16
2001-07-03
Robertson, David L. (Department: 2187)
Electrical computers and digital processing systems: memory
Storage accessing and control
Control technique
C711S159000
Reexamination Certificate
active
06256714
ABSTRACT:
BACKGROUND OF THE INVENTION
The present invention relates to a computer system with efficient memory usage for executing a plurality of application programs.
Conventional computers execute application program instructions based on a stored-program model. Application program instructions are stored in memory from which a central processing unit (CPU) sequentially reads and executes. Executing the instructions results in a series of state changes, such as changed variable values. The stored-program model may simultaneously exist at several levels: at the lowest level the CPU is executing microcode; at an intermediate level a low level application program comprising machine-code instructions is being interpreted by the CPU; and at the highest level a high level application program comprising pseudo-operations is interpreted by the low level application program. Visual Basic, C, Fortran, and Java are examples of high level application programs. A Java example may include byte-code data comprising a high-level “aplet” that is read by a Java virtual machine, which is interpreted sequentially into lower-level operating system calls, which in turn results in machine code sequences being executed by the CPU.
In personal computers, such as x-86 and PowerPC based architectures, certain elements of the operating system code may be contained in read-only memory (ROM) or stored on a disk drive from which they are executed. Application programs are generally stored on a disk drive from which they are loaded and executed, as desired. For example, the application program may be Microsoft Word or Photoshop, and the operating system may be Linux or Windows. When the computer lacks sufficient random access memory (RAM) to simultaneously store both the operating system and the application programs, alternative storage may be used to provide “virtual” memory. The alternative storage may be any suitable device, such as a hard drive or a tape drive. Virtual memory overcomes the limitation of a computer with insufficient RAM, but unfortunately is relatively slow. Elaborate systems have been developed to manage the movement of data between RAM and alternative storage in order to optimize both the use of the limited RAM and the overall execution speed. However, the “virtual” memory of the computer is still limited to the combined capacity of the RAM/ROM and alternative storage at added expense.
Application programs in embedded control systems do not generally change between executions, even over periods spanning the lifetime of the embedded control system. In such cases, the application program may be economically stored in ROM. However, such embedded control systems still require a limited amount of RAM capacity to store application program variables which change during the execution of the application program. Many such embedded control systems incorporate mechanisms for storing the application program variables during periods of inactivity or when the power is temporally not supplied to the system. For example, the application program variables may be stored on a disk drive or an electrically-programmable ROM (EPROM). The predetermined size and operating characteristics of the application programs in an embedded control system permits the use of RAM having a capacity merely sufficient to execute the application program, which reduces expense.
Many personal computers and embedded control systems provide the ability to save and restore the operating state of the CPU, application program(s), and application program variables when “simultaneously” executing multiple application programs. When “simultaneously” executing multiple application programs, the sharing of the limited resources of the computer system or embedded control system must be handled in a transparent manner. The different application programs and application program variables may need to be loaded into RAM and removed from RAM in an efficient manner. In addition, periodically external system inputs may require the suspension of the currently executing application program to execute an alternative application program. Many such computer systems and embedded control systems incorporate mechanisms for accommodating the execution of multiple application programs.
Ecker, Jr. et al., U.S. Pat. No. 4,291,388, disclose the use of electrically-alterable ROM to contain the contents of both user control program RAM and an I/O image table that depicts the status of the controller.
Kirrmann, U.S. Pat. No. 4,905,196, discloses the use of an auxiliary memory or memories to save status information at periodic recovery points, thus permitting the main process to be restarted in the event of a fault.
Arroyo et al., U.S. Pat. No. 4,907,150, disclose the use of a special save area to hold system state information upon power down. The special save area of memory is supplied with power even when the main power if off.
Enoki et al., U.S. Pat. No. 5,386,552, disclose the use of a mass storage device to hold the processing state of a system when a triggering event occurs.
Garney, U.S. Pat. No. 5,471,624, discloses the use of a device for judging whether the restoration of saved state information was correct, so that the system may or may not resume operation after an interruption, based upon the integrity of the restoration.
Pearce, U.S. Pat. No. 5,754,853, discloses the storage of system state to disk, permitting the operation of utility programs and reactivation of the original system state.
Skelton et al., U.S. Pat. No. 4,459,662, disclose a system in which the ROM memory has greater capacity than the RAM memory, so that only segments of the ROM program may be read at a time. A mechanism is described for re-utilizing areas of RAM no longer required for instruction execution.
Lenoski, U.S. Pat. No. 4,825,356, discloses the use of an onboard ROM to provide microcode instructions while the RAM is used for other purposes.
Schieve et al., U.S. Pat. No. 5,530,847, disclose loading program instructions from a non-volatile memory into RAM for execution, especially when the program code is stored in compressed form.
Kanematsu et al., U.S. Pat. No. 5,575,174, disclose the use of multiple suspend files to save multiple system states, with a cross-session data file monitor.
Einhorn et al., U.S. Pat. No. 5,136,631, disclose the transfer of code, under the control of a first system, into the memory of a second system , from which the code is executed to provide telephone control.
Raasch et al., U.S. Pat. No. 5,408,624, disclose the transfer of code from a main CPU to a peripheral controller, from which the code can be executed.
Reuter, U.S. Pat. No. 5,754,863, discloses the transfer of code from a master microprocessor to a slave microprocessor for execution in RAM, where the slave microprocessor does not require any instruction codes in ROM.
Brown et al., U.S. Pat. No. 5,682,550, disclose the creation of a non-volatile storage containing the states of several independent software entities.
SUMMARY OF THE INVENTION
The present invention overcomes the aforementioned drawbacks of the prior art by preferably providing a first device including a processor, a first memory, and a memory manager. A second device includes a secondary memory and a first application program, and a third device includes a third memory and a second application program. The first application program is loaded into the first memory to be executed by the processor. Application program variables related to the first application are stored in the first memory. The second application program to be executed by the processor is loaded into the memory in at least a partially overlapping manner of the first application program. The creation of second application program variables related to the second application program in the first memory is in a region not occupied by the first application program. In an alternative preferred embodiment, the first and second application programs may be stored in the same device and/or memory.
The foregoing and other objectives, feature and advantages of the present inventio
Fairhurst Jon A.
Martinez, Jr. Eugene P.
Sampsell Jeffrey B.
Westerman Larry Alan
Chernoff Vilhauer & McClung & Stenzel
Robertson David L.
Sharp Laboratories of America Inc.
LandOfFree
Computer system with efficient memory usage for managing... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Computer system with efficient memory usage for managing..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Computer system with efficient memory usage for managing... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2467323