Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration
Reexamination Certificate
1995-06-01
2002-04-23
Heckler, Thomas M. (Department: 2182)
Electrical computers and digital processing systems: support
Digital data processing system initialization or configuration
C713S320000, C714S006130
Reexamination Certificate
active
06378068
ABSTRACT:
FIELD OF THE INVENTION
This invention relates generally to the provision of suspend/resume capability in a microprocessor and, more particularly, to the provision of such capability in a protected mode microprocessor to features implemented in a system based on such a microprocessor.
BACKGROUND OF THE INVENTION
Laptop computers are rapidly growing in importance in today's personal computer marketplace. In the past, a few laptop computers offered a feature known as suspend/resume mode (or simply resume mode). This feature is used to save the exact status of the machine whenever the system is powered down. With the use of a back-up battery, the system maintains the saved status until it is powered-up again. This enables users to resume their work as though power had never been turned off. One example of such a system is the PC/Convertible laptop computer, which was manufactured and sold by International Business Machines Corporation (IBM®).
Existing laptops which offer resume mode are based on single-tasking microprocessors such as the 8088 microprocessor made and sold by Intel Corporation of Santa Clara, Calif. In these machines, resume mode offers the above-mentioned benefit, but is limited in functionality due to the single-tasking nature of the machines; it isn't really that much work to bring up a single application, and thus resume mode only saves a few keystrokes. With the growing popularity of serious multi-tasking operating systems such as XENIX and OS/2, resume mode takes on more importance.
For example, computer users want a machine which is “customized” for their use. This customization represents the user's applications programs, interacting in a personalized way. Under the single-tasking nature of operating systems such as Disk Operating System available from Microsoft Corporation, this method of operation is primarily restricted to the use of TSRs (Terminate and Stay Resident applications). On the other hand, OS/2 and XENIX make it possible to create an entirely new “personal environment” containing all of a user's favorite programs, all on-line and all immediately available at the touch of a key.
As these operating environments become more graphics-oriented (via X-Windows and OS/2 Presentation Manager, for instance) the resume concept provides a strong metaphor. In particular, setting up a customized program environment is equivalent to arranging a desk with appropriate tools, which is a very natural behavior. In such a customized environment, resume can literally save hundreds of keystrokes: its value quickly becomes apparent.
The prime problem in implementing resume mode in contemporary laptops is existing processor architectures. In this regard, the Intel 80286/386/486 series of processors offer a number of significant capabilities, and foremost among these capabilities is protected mode. Unfortunately, protected mode programs permit unrestricted operation only by the operating system kernel. Conversely, suspend/resume mode implementations need the ability to freely address system input/output and memory in order to save the state of the machine. This conflict implies that it is necessary to build resume mode code into the kernel of every protected mode program which might be “resumed”. This clearly is not an adequate solution, because many pre-existing programs which necessarily lack this feature would be incompatible with the resulting machine.
The Intel 8088 processor does not have protected mode capability. Consequently, the approach used in the current 8088-based laptops mentioned above is to assert the non-maskable interrupt (NMI) to gain control of the processor. While this works well on the 8088, in protected mode processors such as the popular 80286/386/486 it would cause a number of problems:
Once the controller has generated an NMI, external logic must identify the occurrence of the NMI vector fetch cycle. This cannot be based on an absolute address, since the loadable interrupt descriptor table register allows virtually any NMI vector location.
Assuming that the NMI cycle can be detected, it is necessary to come up with a suitable execution (service routine) address for the processor. While operating in protected mode, the global and local descriptor table registers essentially make addresses unknowable to the control circuitry.
Even if a valid address is somehow discerned, its protection rights will probably be inappropriate (such as trying to run code from a stack segment).
In addition, the paging circuitry in the 80386 and 80486 effectively scrambles the processor address lines.
Executing useful code within the hypothetical service routine is exceptionally difficult; even simple techniques such as PUSHing the CPU registers onto the stack may be inappropriate, because the stack may not point to valid memory.
It is important to note that these problems are very similar to those encountered by the designer of an in-circuit emulator (ICE). In both systems, it is necessary to interrupt program execution at an arbitrary point in time without affecting the state of the user's “virtual” machine. After gaining control of the target, free access to the system's input/output and memory is required. While ICEs offer this capability, the associated parts count and cost are ridiculously prohibitive for a portable computer.
A further problem with systems based on protected-mode processors is that it is normally not possible to change certain features of the system configuration while running an application program under existing multi-tasking operating systems. One must exit an application program and operating system, make necessary system configuration adjustments, and then re-enter the multi-taking operating system in the application program, which is tedious and time-consuming.
A further consideration is that some operating systems maintain time and date information separate from the time and date information maintained in hardware, and while the hardware will automatically keep its time and date accurate during a suspend, the time and date in the operating system may become static at the point suspend is entered.
A further consideration is that, while the system is in the suspend mode, a user may remove a floppy disk which was present in a floppy disk drive of the system at the time was powered down, and may even replace it with a different disk. When the interrupted application program is resumed at the end of the suspend mode, there is the danger that it will not realize that the original disk has been replaced with a new disk, and attempt to write data to the new disk with the assumption that it is really the original disk, thereby destroying information on the new disk which the user did not wish to lose.
It may be desirable for a battery-operated system to automatically enter suspend mode when the system is not being actively used in order to conserve battery power, but this can be annoying to the user, and is not absolutely necessary where the system is temporarily operating on AC power.
While separate switches can be used to turn system power on and off and to place the system in suspend mode, this adds to the cost of the hardware and presents the risk that the user may inadvertently actuate the power-off button and thus lose the current operational state of the system in a situation where the user basically intends to always enter and leave suspend mode without losing the existing state of the system.
A further consideration is that, when a user loans his system to another user and the latter changes the system configuration, the configuration set by the original user is lost and the original user is thus faced with the tedious task of attempting to restore his configuration when the system is returned to him.
A further problem is that a user may wish to leave his system for a brief period of time without exiting the application program or turning the system off, and yet want to prevent others from using the keyboard (or other input device) to make alterations or to examine information in the computer system.
A furth
Belt Steven L.
Brahman Rodman S.
Fakhruddin Saifuddin T.
Foster Mark J.
Hovey Scott A.
Heckler Thomas M.
Katten Muchin & Zavis
NEC Corporation
LandOfFree
Suspend/resume capability for a protected mode microprocesser does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Suspend/resume capability for a protected mode microprocesser, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Suspend/resume capability for a protected mode microprocesser will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2914932