1. Field of the Invention
This invention relates in general to devices having an electronic display and particularly, to handheld devices having a low-power mode.
2. Description of the Related Art
Power management has been, and continues to be, a major concern in the development and implementation of battery powered or battery operated microprocessor based systems, such as laptop computers, notebook computers, palmtop computers, personal data assistants (PDAs), hand-held communication devices, wireless telephones, and other devices, including units that are occasionally battery powered, but that also operate from a power line (AC) source. The need for power management is particularly acute for battery-operated single-chip microcomputer systems, where the desirability or requirement for overall reduction in physical size (and/or weight) also imposes severe limits on the size and capacity of the battery system, and yet where extending unit operating time without sacrificing performance is a competing requirement.
To conserve energy, many systems incorporate power-saving methods. One such method is to lower the operating frequency of the processing unit when there is no expected demand on the unit. This is effective because, in CMOS circuits, power consumption is a linear function of the clock frequency. This low-frequency/low-power mode is often called a “sleep” mode, indicating a resting state of the device when no demand is being placed on the processor. When a user indicates that device resources are needed, for example pressing a key, the unit “wakes up” and begins running again at the higher clock speed to enable processing at the fastest possible rate.
In addition to the competing needs for longer battery life and smaller package size, recent market trends illustrate a need for handheld devices that support features such as scrolling real-time stock quotes, news, sports scores, weather information, animations, and more. Prior-art devices with constantly updating screens require a processor and all support circuitry to be active for any updating to occur. That is, while the scrolling ticker with stock quotes, news, user customized messages, or any animation is running on any of the phone displays, the device cannot go into low-power mode because the main processor must be executing instructions to maintain the display information changing. This results in a significant impact to the phone operation and stand-by time, which results in the devices either not supporting the feature or suffering a significant impact on battery life.
Accordingly, a need exists for a handheld battery-operated device that can continuously update a display screen while in a low-power mode.
The present invention concerns an electronic device with a display and a low-power operating mode. Provided on the device is a screen operable for displaying graphics and information, a memory for storing a “recipe” containing information, graphics, instruction commands regarding how the information and graphics are to be displayed. The device also includes a main processor, a high-frequency clock which runs the main processor while the device is in an “awake” mode, a low-frequency clock, a direct memory access controller (DMAC), which runs off of the low-frequency clock and can read the recipe information from the memory, and a display controller that writes to the display while the main processor is in a “sleep” mode.
The device receives display information via a wireless or preprogrammed on the device or a wired channel and stores the information in a memory location. As the device receives the data, if one does not already exist, it will build a recipe in memory which provides instructions to the device for displaying the information. For example, the recipe can dictate how long to illustrate a particular graphic, the speed of a scrolling graphic or piece of information, the color or size of a character, how long before repeating a cycle, and more. The recipe information can be manually input by a user or can be received at an input via a wireless or wired channel or the recipe information can be previously programmed on the device. Once the device receives the information and a recipe exists, the device can enter a “sleep” mode. While in sleep mode the processor either shuts down completely, or operates in a reduced power mode.
The DMAC runs from the low-frequency clock, thus consuming less power than the main processor when in “awake” or active mode, and is able to read the recipe and transfer data to a display controller along with instructions on how the data should be displayed. Alternatively, the display controller can execute the recipe commands while the DMAC is either operating from the low-frequency clock or is shut down completely.
The device periodically switches from sleep mode to awake mode, receives updated information via a wireless or wired channel or previously stored on the device, stores the information in the memory, and enters sleep mode for an additional period. In this manner, the device conserves energy and can realize a longer battery life while featuring a constantly updating display screen.
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with the present invention.
While the specification concludes with claims defining the features of the invention that are regarded as novel, it is believed that the invention will be better understood from a consideration of the following description in conjunction with the drawing figures, in which like reference numerals are carried forward.
Handheld Devices
The Display
The display 106 is shown in more detail in
An LCD screen 106 is commonly used to display data and/or graphics generated by a data processing system. Displays, such as LCDs 106, often have drivers for selecting pixels located on two sides of the display. The two sided access allows the LCD to be scanned in a manner similar to the conventional Cathode Ray Tubes (CRTs) which provide pixel access starting from the upper left corner of the display and proceeding from left-to-right and from top-to-bottom. Using this scanning method, the data stored in a memory map (not shown) for the display is sequentially addressed. Thus, the bytes of data in the memory array are arranged as a digital representation of the data as it is visually viewed on the display 106.
A conventional Liquid Crystal Display (LCD) allows software programming of the display data 202, 212 that is encoded in bytes and stored in a graphics memory 206 such that the data is transferred to the display 106 in accordance with a visual conception of the data. For instance, a display that is two hundred and forty pixels wide may store the first thirty bytes in a line buffer 210. The data in the memory 206 is parallel loaded to a shift register 208 and serially shifted one data bit at a time to the line buffer 210 at the display. The line buffer circuitry (not shown) at the display 106 reassembles the serially shifted data which represents the data for the first line of the display. The thirty bytes stored in the line buffer 210 at the display are presented in parallel, thus affecting all the pixels for the first line. It is important to note that although the memory 206, shift register 208 and line buffer are shown as separate elements, in another embodiment, one or more of these elements are integrated together to achieve the same result.
The refresh rate can be variably set depending on the information that is to be shown on the display. For instance, a digital representation of the time 202 on the screen 204 needs to be updated once every second to change the numbers 214 representing the seconds. A moving graphic, on the other hand, such as a bouncing ball, may need to be updated several times a second to give the appearance of motion. The information to be displayed and the rate of screen update is dictated by a display controller.
The Display Controller
A display controller is typically used for interfacing a display screen to a data processing system. Looking now to
The Recipe
The instructions and data contained in the RAM 206 is referred to as a “recipe” and is shown in
A first display command 402 is read by the display controller 302 along with a set of data 404 to be displayed. A delay command 406 tells the controller how long to display the first set of data 404. At the end of the time defined by the first delay command 406, the controller 302 reads the second display command 408 along with the data 410 to be displayed according to the display command 408. A second delay command 412 tells the controller how long to display the second set of data 410. The controller continues to read the data as just described until it reaches the nth command 414 nth delay instruction 416, and nth data set 418. A display control loop 420 defines whether and/or how long until the controller should execute the recipe loop again. In this way, the display 106 can be continuously updated, allowing information and/or graphics to be displayed in a static or dynamic presentation. It is important to note that the display commands 402, 408, 414 can be composed of a variety of well known graphics commands such as display text, display graphic, scroll, shift left, shift right, shift up, shift down, move to location where each of these graphics commands includes zero or more variables. For instance, the move command in one embodiment includes X-Y display coordinates of desired destination on the screen. Likewise, the delay command in one embodiment includes a variable for the number of milliseconds necessary for the delay. Using fundamental graphic commands, the recipe is able to control a wide variety of screen animations.
DMAC
Direct Memory Access (DMA) is where a set of data is transferred into a set of memory locations, under the control of a DMA controller (DMAC), without requiring active intervention from the central processing unit (CPU) of a host computer. The CPU is the part of a computer that interprets and carries out the instructions contained in the software. In most CPUs, this task is divided between a control unit that directs program flow and one or more execution units that perform operations on data. Almost always, a collection of registers is included to hold operands and intermediate results. The term CPU is often used vaguely to include other centrally important parts of a computer such as caches and input/output controllers, especially in computers with modem microprocessor chips that include several of these functions in one physical integrated circuit used to handle the task of moving data to and from the memory of a computer.
Tasks can be fairly complex and require logic to be applied to the data to convert formats and other similar duties. In these situations the computer's CPU would normally be asked to handle the logic, but due to the fact that the I/O devices are very slow, the CPU would end up spending a huge amount of time (in computer terms) sitting idle waiting for the data from the device.
A DMAC avoids this problem by using a low-cost CPU with enough logic and memory onboard to handle these sorts of tasks. They are typically not powerful or flexible enough to be used on their own, and are actually a form of co-processor. A co-processor is a secondary processor in a computer that handles tasks that the general-purpose CPU either cannot implement, or does not implement for efficiency reasons. This is distinct from the term multiprocessor, which refers to a computer with more than one general-purpose CPU.
Referring again to
A conventional DMAC device 310, shown in
The DMAC 310 fills the line buffer 510 with display data from the system memory 308 in bursts of a predetermined number of words. Once the data is in the line buffer 510, it can be written to the memory 310 within the display controller 302, or the display controller 302 can read it directly from the line buffer 510 and immediately refresh the screen with the data.
In another embodiment, a recipe 400 to be executed. The first method is as described in the preceding paragraphs describing the display controller 302. The second method is for the DMAC 310 to process the recipe 400 and to load data into its line buffer according to the recipe instructions. If each time the data is loaded, the display controller 302 is notified so that an upload occurs to the display 106, the recipe can be followed. Regardless of which method is chosen, it may be desirable for the recipe 400 to be periodically updated.
MCU
Looking now to
When the MCU 306 is operating in high-speed mode, a first clock signal corresponding to the high-speed clock 606 is selected, when it is operating in low-speed mode, the low-speed clock 604 is selected. In this manner, the configuration is such that the internal power supply potential during operation in low-speed mode is lower than that during operation in high-speed mode, enabling a reduction of the voltage and thus enabling a much lower rate of power consumption within the device.
Sleep Mode
When operation of the MCU 306 is not needed, the MCU clock controller 508 switches so that only a second clock signal corresponding to the low-speed clock signal is input to the MCU 306. External circuits can be provided to monitor the MCU 306 to determine whether sleep mode is appropriate, or the MCU itself can monitor its demand and usage and request that the low speed clock signal be input to the MCU. While in the sleep mode, the MCU 306 uses 10 to 100 times less power compared to full-clock-rate mode. Additionally, the MCU 306 can be shut down completely during sleep mode to realize an even greater reduction in power consumption.
While in sleep mode, the DMAC 310 can also be driven by the low-speed clock signal to conserve power. The DMAC 310 is selected so that it functions as described in the preceding paragraphs, even at a clock rate slower than the high-speed clock rate.
The display controller 302 is not affected by the MCU clock controller 608 and continues to execute instructions at its supplied clock rate 312 even when the device is in sleep mode.
With the configuration just described, the MCU 306 can switch to low-power mode while the DMAC 310 remains active to facilitate updating the display 106. In this manner, as is shown in the flow chart of
In one alternative embodiment, in step 708, the DMAC 310 transfers the recipe to a display controller 302, which then executes the recipe instructions 400 to display information to the display 106. While the display controller 302 executes the instructions 400, the DMAC 310 and MCU 306 can either run from the low-speed clock signal 604 or shut down completely to reduce overall power consumption of the portable device 100.
In yet another alternative embodiment, shown in the flow chart of
While the preferred embodiments of the invention have been illustrated and described, it will be clear that the invention is not so limited. Numerous modifications, changes, variations, substitutions and equivalents will occur to those skilled in the art without departing from the spirit and scope of the present invention as defined by the appended claims.