| Optimization of subsystem interconnections in an electronic device -> Monitor Keywords |
|
Optimization of subsystem interconnections in an electronic deviceUSPTO Application #: 20070277020Title: Optimization of subsystem interconnections in an electronic device Abstract: A subprocessor is used to interface between subsystems and to reduce the amount of dedicated hardware used to implement the subsystems in a hand-held computer. The subprocessor includes basic processing system resources such as random-access memory (RAM), read-only memory (ROM), a processor, input/output (I/O) facilities, etc. Selected functions in subsystems are achieved by firmware instructions executed by the subprocessor as opposed to a main processor that is also used in the computer. This approach can provide efficiencies such as low power consumption, less required space, less routing overhead, easier transfer of inter-subsystem information, and other advantages. (end of abstract) Agent: Trellis Intellectual Property Law Group, PC - Palo Alto, CA, US Inventor: Robert Kelley USPTO Applicaton #: 20070277020 - Class: 712038000 (USPTO) Related Patent Categories: Electrical Computers And Digital Processing Systems: Processing Architectures And Instruction Processing (e.g., Processors), Processing Architecture, Microprocessor Or Multichip Or Multimodule Processor Having Sequential Program Control, Offchip Interface The Patent Description & Claims data below is from USPTO Patent Application 20070277020. Brief Patent Description - Full Patent Description - Patent Application Claims BACKGROUND [0001] Digital processing systems are used in many products such as computers, audio players, cameras, cell phones, etc. Each of these systems includes several or many subsystems that perform dedicated tasks or functions such as scanning for user input, maintaining a communication link, managing power consumption, controlling indicator lights, handling display of images on a display screen, etc. By designing each subsystem for a specific task, a complex device that performs many functions can be divided into its smaller functions and one or more smaller functions can be implemented as a subsystem, thus simplifying the design process. [0002] If dedicated hardware is provided for the subsystems then less centralized control and resources are needed to achieve the functions of the subsystem. For example, if a keyboard key scanner is implemented in hardware where shift registers are used to poll rows and columns of a keyboard grid then such a task will not take up any of the main processor's cycles, memory or other resources. The key scanning subsystem can simply provide a keycode to a routine executed by the main processor whenever a keypress is detected. Such provision to the routine can be, for example, by an interrupt signal while the main processor is performing other tasks. [0003] Although the approach of using dedicated hardware to implement various subsystem functions can provide advantages, some drawbacks of this approach become more pronounced as devices become smaller. For example, in very small devices such as hand-held or other ultra-portable computer systems the amount of space within the device is extremely limited. Subsystems that use dedicated hardware take up space for their electronic components. An even more serious space issue may be in routing signals among the electronic components such as between subsystem hardware or between a subsystem and a main controller that must communicate with the subsystem. [0004] Yet other considerations such as heat dissipation, power consumption, data bandwidth, inter-subsystem communication, etc., can adversely impact a design that uses dedicated hardware for subsystems, especially when the subsystems are designed for small devices. SUMMARY OF EMBODIMENTS OF THE INVENTION [0005] A preferred embodiment of the invention uses a subprocessor to reduce the amount of dedicated hardware used to implement subsystems in a hand-held computer. The subprocessor includes basic processing system resources such as random-access memory (RAM), read-only memory (ROM), a processor, input/output (I/O) facilities, etc. Selected functions in subsystems are achieved by firmware instructions executed by the subprocessor as opposed to a main processor that is also used in the computer. This approach can provide efficiencies such as low power consumption, less required space, less routing overhead, easier transfer of inter-subsystem information, and other advantages. [0006] In a preferred embodiment, a table-driven approach to firmware processes is used to reduce the size of the firmware code. A minimal set of instructions and attributes is used so that functions for subsystems can be achieved in a compact and flexible description. An example of a type of subsystem in which this approach is used is a battery subsystem for indicating battery conditions such as drain and charge rate, current capacity, etc. Inter-subsystem communication includes exchanging sensing subsystems with indicator subsystems. For example, accelerometers can be used to detect movement of a hand-held device so that a cursor indicator can be moved according to the device's movement. Keyboard keys can be used to control power parameters, assign audible or visible indicators to conditions, provide instant access to pop-up menus, etc. [0007] In one embodiment the invention provides an apparatus for interfacing between first and second subsystems in a processing system, the apparatus comprising: a main processor; a subprocessor for executing instructions; persistent memory directly coupled to the subprocessor and not to the main processor, the persistent memory including instructions for execution by the subprocessor; a first interface for communicating between the subprocessor and the first subsystem; a second interface for communicating between the subprocessor and the second subsystem; and one or more instructions for exchanging information between the first and second subsystems. BRIEF DESCRIPTION OF THE DRAWINGS [0008] FIG. 1 illustrates a prior art approach to subsystem interfacing; [0009] FIG. 2 shows subsystem interfacing according to a preferred embodiment of the present invention; [0010] FIG. 3 shows an expanded block diagram corresponding to the basic design approach of FIG. 2; and [0011] FIG. 4 shows more details of a feature whereby the subprocessor obtains battery status information by using resources internal to a battery controller. DETAILED DESCRIPTION OF THE INVENTION [0012] FIG. 1 illustrates a prior art approach to subsystem interfacing, such as in a portable processing device or hand-held computer. Although embodiments of the invention may be described primarily with respect to such portable computing devices, features of the invention may be used in any other type of device, circuit, process or combination thereof. [0013] In FIG. 1, main processor 100 is connected to subsystems such as keyboard subsystem 106, indicator subsystem 108 and battery subsystem 110. Each subsystem is shown connected to its corresponding target. Any number of additional subsystems can be used and interconnected as desired such as shown by subsystems 102 and 104. In this design, subsystem blocks such as 102, 104, 106, 108 and 110 include dedicated hardware for performing specific functions relevant to each subsystem. For example, keyboard subsystem 106 includes hardware for scanning the keyboard, debouncing keys, generating keycodes to be read by the main processor, etc. Indicator subsystem 108 includes hardware to turn on and off lights, output voltages or waveforms to a speaker, change the intensity or color of the lights, etc. Battery subsystem 110 includes hardware for measuring battery charge and charge rate, controlling charge and power drain, etc. [0014] In the design of FIG. 1, the keyboard subsystem also communicates directly with other subsystems such as the indicator subsystem. This may be useful, for example, to have a light go on when a SHIFT key is pressed, to sound a beep when a combination of function keys are depressed, or for other functions. By allowing a direct connection between subsystems there is no need for main processor 100 to take action in order to achieve the functions. Thus, main processor cycles can be saved for other tasks such as for executing user applications. Similarly, battery subsystem 110 can interface directly with indicator subsystem 108 to turn on a light directly when the battery is receiving power from a wall power outlet connection, when the battery energy is low, etc. [0015] FIG. 2 shows subsystem interfacing according to a preferred embodiment of the present invention. In FIG. 2, the subsystem hardware blocks of FIG. 1 are gone, thus indicating that much, or all, of the dedicated hardware can be omitted from the design. Instead, target component signals, such as from the keyboard, indicators, battery, etc., are connected directly to subprocessor 150 which communicates with main processor 100. Any number of target components can be enabled in this manner. As described below, the basic functions performed by the subsystem hardware are performed by subprocessor 150. Any communication or interface among the target components can also be performed by subprocessor 150 without the need for routing physical traces on a space-limited substrate or circuit board. Note that in some designs it may be desirable to have hardware subsystem circuitry to a desired degree. Such an approach can be used in concert with the subprocessor approach. [0016] The subprocessor provides the ability to route any arbitrary input from a target component to any arbitrary output to a target component. The routing can be done by changing executable instructions, thus avoiding dedicated components and other hardware. This approach can provide other advantages such as obviating the need to change software running on the host, or main, processor. To the extent that functionality can be modified by changing the code at the controller within the subprocessor, version updates to the main processor's code are not necessary. Substantial portions of the architecture of the device can be downloadable via communication links such as the internet. Thus, users may upgrade essential `hardware-like` features in their computer without changing any physical features purely through internet download. Features such as are shown in Table I, below, can be loaded into a device. [0017] Another advantage is that the transformation of a large number of board components from hardware to software allows the resulting firmware implementation of the subsystems' functions to be encrypted. This reduces the ability of others to copy our design and makes manufacture of devices more secure. [0018] FIG. 3 shows an expanded block diagram corresponding to the basic design approach of FIG. 2. In FIG. 3, microprocessor 200 performs the role of main processor 100 in FIGS. 1 and 2. Subprocessor 206 performs interface controller functions among different subsystems such as battery 250, fan 252, accelerometers 254, keyboard 262, mouse 260, key lights 264 and screen backlight 266. Subprocessor 206 includes embedded controller 204 for executing instructions to achieve functionality such as sending control signals to the subsystems and receiving sensor signals from the subsystems. Loader 208 and encryption module 210 are used to load firmware instructions into persistent memory (e.g., flash ROM, battery backed-up RAM, magnetic media, etc.) to provide executable instructions to the controller. The controller is also provided with standard processor features such as bus 222, power state register 214 for sensing and controlling power management module 218 and thermal management module 220. [0019] Controller 206 is also connected to additional I/O capability via I/O controller 224 which can provide interfacing to subsystems such as keyboard emulator 236, drop detector 238 or direct connections to target components such as key lights 264 and screen backlight 266. [0020] User 280 interacts with various user controls and indicators such as the key lights, screen, keyboard, mouse, accelerometer, etc. In other designs any number and type of modules, components, subsystems or other items can be used that deviate from those shown in FIG. 3. components can be grouped into three types of categories as output, (keylights, screen backlight control, fan, powercontrol) input (keyboard, mouse/trackstick, scrollwheel, accelerometer, photosensor, thermometers, voltmeters, dock ID) and internal (clocks, queue, embedded controller finite state machine -EcFSM). Continue reading... Full patent description for Optimization of subsystem interconnections in an electronic device Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Optimization of subsystem interconnections in an electronic device patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Optimization of subsystem interconnections in an electronic device or other areas of interest. ### Previous Patent Application: Communication interface device and communication method Next Patent Application: Instruction folding for a stack-based machine Industry Class: Electrical computers and digital processing systems: processing architectures and instruction processing (e.g., processors) ### FreshPatents.com Support Thank you for viewing the Optimization of subsystem interconnections in an electronic device patent info. IP-related news and info Results in 3.3163 seconds Other interesting Feshpatents.com categories: Computers: Graphics , I/O , Processors , Dyn. Storage , Static Storage , Printers |
||