Method and system for efficiently reducing the RAM footprint...

Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration – Loading initialization program

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C713S100000, C348S231900, C348S236000, C348S236000, C711S170000, C711S171000, C711S173000

Reexamination Certificate

active

06212632

ABSTRACT:

FIELD OF THE INVENTION
The field of the present invention pertains to devices having embedded digital computer systems. A digital image capture device is one example of such a system. More particularly, the present invention relates to a method and system for efficiently managing and executing software for an embedded computer system of a device.
BACKGROUND OF THE INVENTION
Many consumer electronic devices common to everyday use derive much of their utility from the manner in which they interact with users and the manner in which they implement their function. Users have become quite accustomed to intelligent devices and machines and their ease of use and functionality. Increasingly, an embedded digital processing system underlies this ease of use and functional capability. These systems are referred to as embedded because, unlike a discreet, stand-alone digital processing system (e.g., a personal computer), they are usually dedicated to a specific set of related functions as opposed to being general purpose. An embedded digital processing system of a device executes software code designed specifically for implementing the functionality of the device.
An embedded digital processing system (hereinafter embedded system) is usually considered an integral part of the device in which it is included. Within more complex devices, there may be a very powerful embedded system, capable of executing many of millions of instructions per second. A modern digital camera is one example of such a device.
A typical modern digital camera is very similar in size and behavior to conventional point-and-shoot cameras. The digital camera usually includes an imaging device, user interface displays, mode control indicators, and the like, which are controlled by an embedded system running a software program. When an image is captured, the imaging device is exposed to light and generates raw image data representing the image, the embedded system compresses the image, and the image is stored in memory for archiving or later review: The digital camera supports many different functions and many different operating modes for capturing images, reviewing images, and the like. Each of these functions and modes is implemented by the specialized hardware of the digital camera and specific specialized software functions executing on the digital camera's embedded system.
Prior Art
FIG. 1
shows a typical embedded system
100
. Embedded system
100
includes a processor
101
, a RAM (random access memory)
102
, an I/O (input-output) unit
103
, a ROM (read only memory)
104
, controlled equipment
105
, and a removable memory
106
, each respectively coupled via a bus
110
.
The functionality and operating characteristics of embedded system
100
are largely determined by processor
101
and controlled equipment
105
, as processor
101
executes software stored in ROM
104
and RAM
102
and controls the operation of controlled equipment
105
. For example, in the case of a digital camera, controlled equipment
105
would include a digital imaging device, mode control indicators, user interface displays, and the like.
Referring now to Prior Art
FIG. 2
, a memory diagram of the software contents of ROM
104
and RAM
102
is shown. Typically, as shown in
FIG. 2
, the camera system code
203
(e.g., operating system software and its associated data structures, resources, etc.) is stored as compressed code
201
in non-volatile ROM
104
. At boot time, or power-up, boot code
202
executes, decompresses compressed code
201
into camera system code
203
and loads camera system code
203
into RAM
102
. Boot code
202
also sets up and initializes working memory area
204
, buffers
205
(e.g., typically comprising a display buffer and a draw buffer), and a capture buffer
206
.
Most digital cameras execute their operating system software from ROM. This provides the advantage of conserving the amount of RAM needed for nominal functionality. However, for speed and responsiveness reasons, the more performance-oriented digital cameras are configured to run their operating system software (e.g., camera system code
203
) from RAM
102
as opposed to ROM
104
. This is due to the fact that RAM (e.g., SDRAM, DRAM, EDO RAM) is much faster than ROM or EEPROM. RAM, however, is volatile, and therefore does not maintain its contents after power-off. Consequently, these digital cameras and other performance-oriented types of embedded system consumer electronic devices transfer a compressed image of their system code from a non-volatile ROM to a faster RAM at power up. The system code then executes from RAM.
There is a problem, however, in the fact that, while faster, RAM is more expensive than ROM. As modern consumer electronics devices increase in functionality and sophistication, even the most inexpensive device will include one or more embedded systems to enhance the interface with the user or to accomplish more elaborate functions. Hence, it becomes important to reduce the cost of these embedded systems as much as possible.
Thus, what is required is a method and system for implementing complex functionality in a consumer electronics device as inexpensively as possible. What is needed is a system which reduces the amount of expensive RAM needed in the embedded system of a device. The required system should maintain the speed and responsiveness while reducing the amount of RAM used in the device. The present invention provides a novel solution to the above requirements.
SUMMARY OF THE INVENTION
The present invention provides a method and system for implementing complex functionality in a consumer electronics device inexpensively. The present invention provides a system which reduces the amount of expensive RAM needed in the embedded system of a device. Additionally, the system of the present invention maintains the speed and responsiveness of the device while reducing the amount of RAM used in the device. In comparison to prior art embedded system devices, a device in accordance with the present invention either uses less RAM and is thus less expensive, or runs faster using the same amount of RAM.
In one embodiment, the method of the present invention efficiently manages the contents of a volatile RAM and a non volatile ROM used by an embedded system in order to reduce the amount of RAM required by the embedded system for operation. The embedded system includes a processor coupled to the RAM and ROM via a bus. The RAM and ROM both store computer readable software for execution by the embedded system. When executed, the software causes the embedded system to implement the method of the present invention.
At power-up, boot code stored in the ROM is executed and begins instantiating the initial operating environment of the embedded system. A function pointer table is instantiated in the RAM. The function pointer table has entries, or function pointers, for each instantiated function such that they can each call each other and pass execution. The function pointer table has entries for functions which are instantiated in ROM and entries for functions which are instantiated in RAM. In accordance with the present invention, a set of high-use functions are decompressed out of ROM and instantiated in RAM using a patch manager. The high-use functions comprise those functions which account for a disproportionately high amount of processor execution time and are typically a small subset of code in comparison to the aggregate code of the embedded system. The present invention utilizes this characteristic advantageously by instantiating these functions in the much faster RAM. The patch manager subsequently updates the function pointer table to incorporate an entry for the high-use functions, thereby linking the high-use functions with the rest of the instantiated functions. The operating system code is then executed from the ROM while the high-use functions are executed from the RAM. In so doing, an amount of RAM required by the embedded system is reduced while retaining a speed benefit conferred by executing software from the RA

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and system for efficiently reducing the RAM footprint... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and system for efficiently reducing the RAM footprint..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for efficiently reducing the RAM footprint... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2510165

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.