Mechanism for optimizing location of machine-dependent code

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S163000, C713S152000

Reexamination Certificate

active

06178550

ABSTRACT:

TECHNICAL FIELD
The invention relates generally to the implementation of extended applications program interfaces (APIs) in microprocessors having a system management mode and, more particularly, to means for optimizing the location of code for implementing such APIs with respect to the need for security and efficiency.
BACKGROUND OF THE INVENTION
Portable personal computers (PCs) were first introduced in the early 1980s and have since enjoyed great commercial success and consumer acceptance. As the portable PC market has grown, users have begun to demand lighter weight, lower volume PCs that can be used for longer periods of time between battery charges. Meeting these demands has proved challenging in view of the fact that most portable PCs now support peripheral devices previously available only on desktop PCs. The additional peripherals greatly increase overall power consumption, making it difficult to achieve an optimal level of functionality while maintaining an acceptable battery life. Furthermore, although for reasons other than maximizing battery life, it has become desirable to more efficiently manage power consumption of desktop PCs in order to minimize overall operating costs.
Initially, such power management was accomplished using proprietary software drivers developed by PC manufacturers that monitored system activity with respect to hardware, firmware and operating system(s). Although fairly effective, the use of such drivers introduced additional problems, such as creating incompatibilities with user's applications, due to the fact that the drivers typically were not effective at detecting every operating system and application installed on the portable PC. Partially in response to these problems, in 1990, Intel introduced its Intel386™ SL CPU, which was the first standard microprocessor designed to support power management that was operating system-independent. Specifically, the Intel386 SL CPU was the first to implement a System Management Mode (SMM) that enabled the implementation of advanced power management features without jeopardizing operating system or application integrity.
Although initially developed by Intel, some form of SMM is now available from most manufacturers of '386 and subsequent microprocessors. The core features of such SMMs are basically the same, in that all include a nonmaskable hardware interrupt, specifically, a system management interrupt, for invoking a mode-independent software routine in a separate SMM address space. Power management is the obvious application for SMM; however, other functions supported by SMMs include network drivers, device drivers, file translation software, data security and supervision.
Programs running in SMM execute independently of the processor mode and the operating system in a dedicated SMM memory space. This liberates system and power management functionality from dependence on the operating system and allows flexibility and differentiation in the rest of the system logic. SMM code executes from a protected space, which may vary in size from several kilobytes to several gigabytes, depending on the particular implementation and capabilities of the computer. SMM is initiated by a system management interrupt which saves the state of the CPU and then causes the CPU to jump directly to SMM code in SMM space. All PC memory and I/O space is accessible from SMM.
One of the principal benefits of SMM is that it provides a secure memory location for status and control code; however, the price of this security is an often extremely high overhead in terms of processing resources required to save the state of the CPU before entering SMM. In some platform designs, extended applications program interfaces (APIs), such as Advanced Power Management (APM), Plug and Play (PnP) and other machine dependent programs, need to run with maximum efficiency with respect to part of their functionality, but with maximum security with respect to other parts. Typically, this problem is solved by sacrificing efficiency for security and executing the entire extended API in the SMM.
Therefore, what is needed is a method of executing extended API software in a more efficient manner, but without a significant reduction in security where necessary.
SUMMARY OF THE INVENTION
The foregoing problems are solved and a technical advance is achieved by method and apparatus for optimizing the location of machine-dependent code. In a departure from the art, code for implementing an applications program interface (API), or other machine-dependent program, is divided into a system management mode (SMM) portion, which includes all program functionality that is preferably executed in a secure environment, and a non-SMM portion, which includes the remaining program functionality. In a preferred embodiment, the non-SMM portion of the API maintains a jump table, referred to herein as the BIOS jump table, comprising an indexed array of function addresses, wherein each executable function is indexed by a corresponding function number, such that the function may be accessed and executed by specifying its function number. Similarly, the SMM portion of the API maintains a parallel, but nonidentical, jump table, referred to herein as the SMM jump table, wherein each function is identified by the same function number by which it is identified in the BIOS jump table.
For each API function that is to be executed in SMM, that is, for each function that must be executed in a secure environment, the BIOS jump table entry indexed by the corresponding function number calls an SMM interface (SMI) function. The SMI function initiates SMM by generating a system management interrupt and accesses the parallel SMM jump table. The SMM jump table entry indexed by the designated function number is used to call the designated function, which is then executed in SMM. Examples of functions that would typically be executed in SMM include password validation and set power state functions, as well as hardware functions which, if interrupted before completion, could jeopardize the integrity of the hardware, such as LCD panel blanking sequencing. In contrast, for each function that is not to be implemented in SMM, that is, for each function with respect to which security is not a major concern, the BIOS jump table entry indexed by the function number is used to call the requested function directly from BIOS.
A technical advantage achieved with the invention is that the overhead inherent in the use of SMM can be restricted to those functions that require the secure environment that SMM can provide.
A further technical advantage achieved with the invention is that it can be implemented using an indirect table of functions. a case statement table of executable code, or if-then-else statements.
A further technical advantage achieved with the invention is that it can be implemented using static tables, which allow for tighter code, or dynamic tables, which allow real-time adaptation to particular system management situations.


REFERENCES:
patent: 4928237 (1990-05-01), Bealkowski et al.
patent: 4972338 (1990-11-01), Crawford et al.
patent: 5063496 (1991-11-01), Dayan et al.
patent: 5075845 (1991-12-01), Lai et al.
patent: 5144551 (1992-09-01), Ceputis
Gephardt, D. et al, “System Management Mode in Ain 386 Microprocessors”, Microprocessor Report, Feb. 12, 1992 v6 n2 p. 17(2).
Ellis, S., “The Intel System Management Mode”, Microprocessor Report, Feb. 12, 1992 v6, n2 p. 16(2).
Thorson, M., “System Management Mode Explained; Despite Common Functions, Implementation Details Differ”, Microprocessor Report Jun. 17, 1992 v6 n8 p. 14(4).

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

Mechanism for optimizing location of machine-dependent code does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Mechanism for optimizing location of machine-dependent code, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Mechanism for optimizing location of machine-dependent code will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2454308

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