WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for providing system security to personal computer systems using transparent system interrupt    
United States Patent5724027   
Link to this pagehttp://www.wikipatents.com/5724027.html
Inventor(s)Shipman; Mark (Hillsboro, OR); Christeson; Orville (Portland, OR)
AbstractA transparent system management interrupt (SMI) handler equipped with system security functions is provided to a personal computer (PC) for providing system security to the PC. Additionally, the keyboard controlling facility of the PC is enhanced to cooperate with the SMI handler to deliver system security under the direction of the SMI handler. The SMI handler's system security functions include a number of functions for handling a number of security related events detected by the keyboard controlling facility. The keyboard controlling facility is enhanced to operate in one of three modes, a normal mode, a sleuth mode, and a secured mode, under which the keyboard controlling facility allows "unrestricted" keyboard operations, communicates exclusively with the SMI handler, and allows only "restricted" keyboard operations respectively.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5724027
Method and apparatus for providing system security to personal computer

     systems using transparent system interrupt - US Patent 5724027 Drawing
Method and apparatus for providing system security to personal computer systems using transparent system interrupt
Inventor     Shipman; Mark (Hillsboro, OR); Christeson; Orville (Portland, OR)
Owner/Assignee     Intel Corporation (Santa Clara, CA)
Patent assignment
All assignments
Publication Date     March 3, 1998
Application Number     08/535,725
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 28, 1995
US Classification     726/16 235/382 235/382.5 340/5.74 708/136 709/225
Int'l Classification     G06F 003/02 G06F 013/00 H04L 009/32 G06K 005/00
Examiner     Zimmerman; Brian
Assistant Examiner     Beaulieu; Yonel
Attorney/Law Firm     Blakely, Sokoloff, Taylor & Zafman
Address
Parent Case    
Priority Data    
USPTO Field of Search     340/825.31 340/825.34 340/34 380/23 380/25 380/4 235/380 235/382 235/382.5 395/734 395/735 395/742 395/186 395/200.06 395/187.01 364/188 364/189
Patent Tags     providing security personal computer transparent interrupt
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5577209
Boyle
726/4
Nov,1996

[0 after 0 votes]
5465084
Cottrell
340/5.27
Nov,1995

[0 after 0 votes]
5408536
Lemelson
382/115
Apr,1995

[0 after 0 votes]
5377269
Heptig
726/20
Dec,1994

[0 after 0 votes]
5355414
Hale
726/34
Oct,1994

[0 after 0 votes]
5339437
Yuen
710/261
Aug,1994

[0 after 0 votes]
5313639
Chao
726/19
May,1994

[0 after 0 votes]
5263157
Janis
707/9
Nov,1993

[0 after 0 votes]
5187352
Blair
235/382
Feb,1993

[0 after 0 votes]
5173490
Peglion
514/254.04
Dec,1992

[0 after 0 votes]
5097506
Kaiser, Jr.
726/19
Mar,1992

[0 after 0 votes]
4942606
Kaiser
726/19
Jul,1990

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. In a computer system, a computer implemented method for providing system security to the computer system, the method comprising the steps of:

a) operating a processor of the computer system in a first state and keyboard control facility of the computer system in a first mode, allowing commands and data to be freely exchanged between the processor and a keyboard of the computer system in a substantially unrestricted manner, except for a first plurality of system security related commands and data;

b) operating the processor in a second state and the keyboard control facility in a second mode in response to the presence of the first system security related command and data while the processor is operating in the first state and the keyboard control facility is operating in the first mode, wherein the keyboard control facility communicates exclusively with a transparent system management interrupt (SMI) handler, facilitating servicing of the first system security related commands and data by the SMI handler, and inhibiting all exchange of commands and data between the processor and the keyboard.

2. The method as set forth in claim 1, wherein

the method further comprises the step of (c) operating the processor in the first state and the keyboard control facility in a third mode, substantially inhibiting exchange of commands and data between the processor and the keyboard, except for a second plurality of system security related commands and data;

step (b) further comprises operating the processor in the second state and the keyboard controlling facility in the second mode in response to the presence of the second commands and data while the processor is operating in the first state and the keyboard controlling facility is operating in the third mode, wherein the keyboard controlling facility also communicates exclusively with the transparent system management interrupt (SMI) handler, facilitating servicing of the second system security related commands and data by the SMI handler, and inhibiting exchange of commands and data between the processor and the keyboard.

3. In a computer system, a computer implemented method for providing system security to the computer system, the method comprising the steps of:

a) operating a processor of the computer system in a first state and keyboard control facility of the computer system in a first mode, substantially inhibiting commands and data to be exchanged between the processor and a keyboard of the computer system, except for a first plurality of system security related commands and data;

b) operating the processor in a second state and the keyboard control facility in a second mode in response to the presence of the first system security related command and data while the processor is operating in the first state and the keyboard control facility is operating in the first mode, wherein the keyboard control facility communicates exclusively with a transparent system management interrupt (SMI) handler, facilitating servicing of the first system security related commands and data by the SMI handler, inhibiting exchange of commands and data between the processor and the keyboard.

4. An apparatus comprising keyboard controlling facility that operates in one of three modes in any point in time during operation,

the three modes including a first mode wherein commands and data are allowed to be exchanged between a coupled keyboard/auxiliary device and a coupled processor operating in a first state through the keyboard controlling facility in a substantially unrestricted manner, except for a first plurality of security related commands and data,

a second mode wherein commands and data exchanges between the processor operating in the first state and the keyboard/auxiliary device through the keyboard controlling facility are substantially inhibited, except for a second plurality of security related commands and data; and

a third mode wherein the keyboard controlling facilitating communicates exclusively with the processor operating in a second state, facilitating servicing of either the first or the second security related commands and data, and inhibiting all command and data exchanges between the processor and the keyboard/auxiliary device.

5. The apparatus as set forth in claim 4, wherein the keyboard controlling facility includes logic for unconditionally channeling data received from the keyboard/auxiliary device to the processor, except for a plurality of predetermined key sequences from the keyboard/auxiliary device, while the processor is operating in the first state and the keyboard controlling facility is operating in the first mode.

6. The apparatus as set forth in claim 5, wherein the keyboard controlling facility includes logic for transitioning into and operating the keyboard controlling facility in the third mode, in response to one of the predetermined key sequences from the keyboard/auxiliary device, while the processor is operating in the first state and the keyboard controlling facility is operating in the first mode.

7. The apparatus as set forth in claim 6, wherein the predetermined key sequences include a predetermined key sequence denoting a user's desire for a system comprising the processor to be secured.

8. The apparatus as set forth in claim 4, wherein the keyboard controlling facility includes logic for unconditionally responding to commands from the processor directed towards the keyboard controlling facility and unconditionally channeling data received from the processor to the keyboard/auxiliary device, except for a plurality of predetermined commands from the processor that are directed towards the keyboard controlling facility, while the processor is operating in the first state and the keyboard controlling facility is operating in the first mode.

9. The apparatus as set forth in claim 8, wherein the keyboard controlling facility includes logic for conditionally performing zero or at least one pre-transition operation depending on the command, and then transitioning into and operating the keyboard controller in the third mode, in response to one of the predetermined commands from the processor, while the processor is operating in the first state and the keyboard controlling facility in the first mode.

10. The apparatus as set forth in claim 9, wherein the predetermined commands include a command instructing the keyboard controlling facility to download a password from a non-volatile memory into the keyboard controlling facility, the keyboard controlling facility downloading the password before transitioning into and operating the keyboard controlling facility in the third mode.

11. The apparatus as set forth in claim 9, wherein the predetermined commands include a command instructing the keyboard controlling facility to enter the second mode, the keyboard controlling facility transitioning into and operating the keyboard controlling facility in the third mode, without performing any pre-transition operations.

12. The apparatus as set forth in claim 4, wherein the keyboard controlling facility includes logic for conditionally channeling data received from the keyboard device to the processor if the data are expected responses from the keyboard, while the processor is operating in the first state and the keyboard controlling facility is operating in the second mode.

13. The apparatus as set forth in claim 12, wherein the keyboard controlling facility includes logic for transitioning into and operating the keyboard controlling facility in the third mode, in response to unexpected data received from the keyboard, while the processor is operating in the first state and the keyboard controlling facility is operating in the second mode.

14. The apparatus as set forth in claim 4, wherein the keyboard controlling facility includes logic for unconditionally responding to commands from the processor directed towards the keyboard controlling facility and unconditionally channeling data received from the processor to the keyboard, while the processor is operating in the first state and the keyboard controlling facility is operating in the second mode.

15. The apparatus as set forth in claim 4, wherein the keyboard controlling facility includes logic for uploading a password to the processor, in response to a command from the processor, while the processor is operating in the second state and the keyboard controlling facility is operating in the third mode.

16. The apparatus as set forth in claim 4, wherein the keyboard controlling facility includes logic for transitioning into and operating the keyboard controlling facility in either the first or the second mode, in response to a command from the processor, while the processor is operating in the second state and the keyboard controlling facility is operating in the third mode.

17. An apparatus comprising:

a processor having a first and a second state of operation, an interrupt for switching the processor from the first state to the second state, and an instruction for returning the processor to the first state from the second state;

keyboard controlling facility that operates in a one of three modes in any point in time during operation, the three modes including

a first mode wherein commands and data are allowed to be exchanged between a coupled keyboard/auxiliary device and the processor operating in the first state through the keyboard controlling facility in a substantially unrestricted manner, except for a first plurality of security related commands and data,

a second mode wherein commands and data exchanges between the processor operating in the first state and the keyboard/auxiliary device through the keyboard controlling facility are substantially inhibited, except for a second plurality of security related commands and data, and

a third mode wherein the keyboard controlling facilitating communicates exclusively with the processor operating in a second state, facilitating servicing of either the first or the second security related commands and data, and inhibiting all command and data exchanges between the processor and the keyboard/auxiliary device; and

an interrupt handler executed by the processor in the second state for servicing the first or the second security related commands and data.

18. The apparatus as set forth in claim 17, wherein

the keyboard controlling facility includes logic for establishing exclusive communication with the interrupt handler to operate the keyboard controlling facility in the third mode by triggering the interrupt, when transitioning from either the first or the second mode to the third mode; and

the keyboard controlling facility further includes logic for providing the interrupt handler with a reason for triggering the interrupt.

19. The apparatus as set forth in claim 18, wherein the interrupt handler includes logic for instructing the keyboard controlling facility to upload a password, and upon receiving and saving the password, instructing the keyboard controlling facility to operate in the first mode, in response to a triggering reason, the triggering reason being the keyboard controlling facility having received a command to download a password from the processor.

20. The apparatus as set forth in claim 18, wherein the interrupt handler includes logic for instructing the keyboard controlling facility to operate in the second mode, in response to a triggering reason, the triggering reason being the keyboard controlling facility having received a command to activate security from the processor.

21. The apparatus as set forth in claim 18, wherein the interrupt handler includes logic for updating a running sequence of unexpected data received from the keyboard, and conditionally instructing the keyboard controlling facility to operate in either the first or the second mode depending on whether a required password has been entered, in response to a triggering reason, the triggering reason being the keyboard controlling facility having received unexpected data from the keyboard.

22. A keyboard controller comprising controlling firmware that operates in one of three modes in any point in time during operation,

the three modes including a first mode wherein commands and data are allowed to be exchanged between a coupled keyboard/auxiliary device and a coupled processor operating in a first state through the keyboard controller in a substantially unrestricted manner, except for a first plurality of security related commands and data,

a second mode wherein commands and data exchanges between the processor operating in the first state and the keyboard/auxiliary device through the keyboard controller are substantially inhibited, except for a second plurality of security related commands and data; and

a third mode wherein the keyboard controller communicates exclusively with the processor operating in a second state, facilitating servicing of either the first or the second security related commands and data, and inhibiting all command and data exchanges between the processor and the keyboard/auxiliary device.

23. A computer motherboard comprising:

a processor having a first and a second state of operation, an interrupt for switching the processor from the first state to the second state, and an instruction for returning the processor to the first state from the second state;

keyboard controlling facility wherein said keyboard controlling facility includes a virtual keyboard controller that operates in one of three modes in any point in time during operation, the three modes including

a first mode wherein commands and data are allowed to be exchanged between a coupled keyboard/auxiliary device and the processor operating in the first state through the keyboard controlling facility in a substantially unrestricted manner, except for a first plurality of security related commands and data,

a second mode wherein commands and data exchanges between the processor operating in the first state and the keyboard/auxiliary device through the keyboard controlling facility are substantially inhibited, except for a second plurality of security related commands and data, and

a third mode wherein the keyboard controlling facilitating communicates exclusively with the processor operating in a second state, facilitating servicing of either the first or the second security related commands and data, and inhibiting all command and data exchanges between the processor and the keyboard/auxiliary device; and

an interrupt handler executed by the processor in the second state for servicing the first or the second security related commands and data.

24. A computer motherboard comprising:

a processor having a first and a second state of operation, an interrupt for switching the processor from the first state to the second state, and an instruction for returning the processor to the first state from the second state;

a keyboard controller that operates in one of three modes in any point in time during operation, the three modes including

a first mode wherein commands and data are allowed to be exchanged between a coupled keyboard/auxiliary device and the processor operating in the first state through the keyboard controller in a substantially unrestricted manner, except for a first plurality of security related commands and data,

a second mode wherein commands and data exchanges between the processor operating in the first state and the keyboard/auxiliary device through the keyboard controller are substantially inhibited, except for a second plurality of security related commands and data, and

a third mode wherein the keyboard controller communicates exclusively with the processor operating in a second state, facilitating servicing of either the first or the second security related commands and data, and inhibiting all command and data exchanges between the processor and the keyboard/auxiliary device; and

an interrupt handler executed by the processor in the second state for servicing the first or the second security related commands and data.

25. A computer system comprising:

a processor having a first and a second state of operation, an interrupt for switching the processor from the first state to the second state, and an instruction for returning the processor to the first state from the second state;

a keyboard including an auxiliary device for inputting control signals/data;

keyboard controlling facility that operates in one of three modes in any point in time during operation, the three modes including

a first mode wherein commands and data are allowed to be exchanged between the keyboard/auxiliary device and the processor operating in the first state through the keyboard controlling facility in a substantially unrestricted manner, except for a first plurality of security related commands and data,

a second mode wherein commands and data exchanges between the processor operating in the first state and the keyboard/auxiliary device through the keyboard controlling facility are substantially inhibited, except for a second plurality of security related commands and data, and

a third mode wherein the keyboard controlling facilitating communicates exclusively with the processor operating in a second state, facilitating servicing of either the first or the second security related commands and data, and inhibiting all command and data exchanges between the processor and the keyboard/auxiliary device; and

an interrupt handler executed by the processor in the second state for servicing the first or the second security related commands and data.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of computer systems. More specifically, the present invention relates to system security of personal computer systems.

2. Background Information

Historically, when personal computer systems were first introduced, system security or prevention of unauthorized uses of these systems was not a very important issue. Thus, system security approaches are typically simple and unsophisticated, as exemplified by the physical key switch approach which prevents unauthorized usage by disabling the connected keyboard of a personal computer system from being able to provide keyboard inputs to the system.

Over the years, as personal computer systems are increasingly being used for critical or sensitive applications, system security has become a much more important issue. Various hardware, software, or combination approaches with increased capability and/or versatility have been developed in the industry to achieve the desired security. For example, U.S. Pat. No. 4,942,606, discloses a more versatile keyboard/auxiliary device interface controller which supports the selective restriction of user interaction with the computer system, thereby preventing the personal computer system from being used, and yet the full internal functionality of the host/peripheral interface is still maintained, allowing interactions between the CPU and the connected input devices to continue even under the "locked mode". As a further example, U.S. Pat. No. 5,097,506 discloses an even more capable keyboard controller/interface which allows the "locked mode" to be activated through a programmable key sequence entered from the keyboard.

However, both of these approaches and others like them all suffer the disadvantage in that the keyboard controller bears the main burden of supporting the system security feature or capability, resulting in increased cost for the keyboard controller. Furthermore, since most keyboard controllers are implemented with low cost controllers having limited capabilities (due to cost constraints), these and other approaches like them also suffer the disadvantage of being difficult to extend the system security capabilities.

Thus, it is desirable to have a system security approach that is more capable as well as more extensible, without increasing the cost of a keyboard controller. It is even more desirable if the increased capability and extendibility can be achieved with less costly keyboard controllers. As will be disclosed in more detail below, the method and apparatus of the present invention achieves these and other desirable results.

SUMMARY OF THE INVENTION

A transparent system management interrupt (SMI) handler equipped with system security functions is provided to a personal computer (PC) for providing system security to the PC. Additionally, the keyboard controlling facility of the PC is enhanced to cooperate with the SMI handler to deliver system security under the direction of the SMI handler.

The SMI handler's system security functions include a number of functions for handling a number of security related events detected by the keyboard controlling facility. These security related events include the detection of "hot keys" from the keyboard, and the detection of a number of security related commands issued by the processor, while the system is operating in an unsecured manner. These events further include the detection of "unexpected responses" from the keyboard, while the system is operating under the security enforced by the SMI handler in conjunction with the keyboard controlling facility.

The keyboard controlling facility is enhanced to operate in one of three modes, a normal mode, a sleuth mode, and a secured mode. Under the normal mode, the keyboard controlling facility allows commands and data to be freely exchanged between the processor and the keyboard (including any auxiliary device attached to the keyboard) in a substantially unrestricted manner, except for "hot keys" entered by the keyboard, and a number of security related commands issued by the processor. Under the secured mode, the keyboard controlling facility allows commands and data to be exchanged between the processor and the keyboard in a substantially restricted manner, except for certain commands from the processor to the keyboard and the keyborad's "expected responses" to these commands. Under the sleuth mode, the keyboard controlling facility communicates exclusively with the SMI handler to cooperatively service the security related events that caused the keyboard controlling facility to enter the sleuth mode, under the direction of the SMI handler.

The normal mode is the defaulted mode of operation for the keyboard controlling facility. From the normal mode, the keyboard controlling facility transitions to the sleuth mode in response to the "restricted" events. From the sleuth mode, the keyboard controlling facility transitions to either the normal or the secured mode in accordance to the direction of the SMI handler. From the secured mode, the keyboard controlling facility transitions to the sleuth mode in response to the "restricted" events.

As a result, the SMI handler bears the main burden for providing system security, allowing minimal functionality to be required of the keyboard controlling facility, thereby reducing the cost of the keyboard controlling facility. Furthermore, by virtue of the extendibility of the SMI handler, the system security functions may be easily extended.

BRIEF DESCRIPTION OF DRAWINGS

The present invention will be described by way of exemplary embodiments, but not limitations, illustrated in the accompanying drawings in which like references denote similar elements, and in which:

FIG. 1 illustrates an exemplary computer system incorporating the teachings of the present invention;

FIG. 2 illustrates one embodiment of the method steps employed by exemplary computer system of FIG. 1 for handling transparent system interrupts;

FIG. 3 illustrates one embodiment of the keyboard controller of FIG. 1;

FIG. 4 illustrates the operational modes of the keyboard controller of FIG. 3;

FIGS. 5-8 illustrate one embodiment each of the method steps employed by the keyboard controller of FIG. 3 for operating under the various modes;

FIGS. 9-12 illustrate one embodiment each of the method steps employed by the keyboard controller of FIG. 3 for transitioning between the various modes;

FIGS. 13-15 illustrate one embodiment of the method steps employed by the SMI handler to provide system security; and

FIGS. 16-17 illustrate two exemplary alternate embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without the specific details. In other instances, well known features are omitted or simplified in order not to obscure the present invention. Furthermore, in describing various method steps, for ease of explanation, some of the steps are described as multiple steps, however it should not be construed that these steps are necessarily order dependent.

Referring now to FIG. 1, an exemplary computer system incorporating the teachings of the present invention is illustrated. Exemplary computer system 10 includes motherboard 11 incorporated with the teachings of the present invention, and external devices 26 and 30-32. Motherboard 11 includes processor 12, cache memory 14, main memory 16, system management mode (SMM) memory 18, memory controller 20, and processor bus 22 coupled to each other as shown. Additionally, motherboard 11 further includes input/output (I/O) controller 24, non-volatile (NV) memory 17, keyboard controller 28 incorporated with the teachings of the present invention, and I/O bus 34, coupled to each other and the earlier enumerated elements as shown. External devices 26 and 30-32 include mass storage 26, keyboard 30 and auxiliary device 32 such as a mouse. Mass storage 26 is coupled to I/O bus 34 directly, while keyboard 30 and auxiliary device 32 are coupled to I/O bus 34 through keyboard controller 28. Other I/O devices (not shown) may also be coupled to I/O bus 34 through keyboard controller 28.

Processor 12 performs its conventional function of executing instructions of programs, including application programs, subsystem and operating systems. In particular, processor 12 includes circuitry for being interrupted by a system management interrupt (SMI), which is an interrupt unmaskable by the executing programs. Furthermore, the instruction set supported by processor 12 includes a Resume instruction for subsequently resuming execution of the interrupted programs. As will be described in more detail below, the interrupted programs resume execution as if they were never interrupted. During this period, from interruption to resumption, processor 12 is said to be executing in a system management mode (SMM). Particular examples of processor 12 include i486.TM. and Pentium.RTM. processors manufactured by Intel Corp. of Santa Clara, Calif., assignee of the present invention.

SMM memory 18 is used to store an SMI handler for servicing each SMI, and temporarily saving the processor state while servicing an SMI. SMI handler further includes security functions for providing system security to computer system 10, which will be described in more detail below. Upon servicing an SMI, the SMI handler uses the Resume instruction to resume execution of the interrupted programs. SMM memory 18 is normally not mapped into the system memory space. SMM memory 18 is mapped into the system memory space only when an SMI needs to be serviced, and unmapped upon servicing the SMI. SMM memory 18 may be implemented with any number of random access memory (RAM) known in the art.

Non-volatile (NV) memory 17 is used to store a programmable password, which is used during operation to impose system security and prevent unauthorized usage of computer system 10. Similarly, NV memory 17 may be implemented in any number of manners known in the art.

Memory controller 20 performs its conventional function of controlling accesses to the various memories 14, 16, 17, and 18. In particular, memory controller 20 includes circuitry for dynamically mapping and unmapping SMM memory 18 into the system memory space under the control of processor 12. Memory controller 20 may also be implemented with any number of memory controllers known in the art.

Keyboard controller 28 performs its conventional function of controlling keyboard 30 and auxiliary device 32. However, keyboard controller 28 is enhanced to complement the security functions of the SMI handler to deliver system security, which will be more fully described below.

All other elements 14-16, 22-26, and 32-34 perform their conventional functions. Their constitutions are well known and will not be otherwise described.

Before describing the SMI handler and keyboard controller 28 in detail, it should be noted that while for ease of understanding, the present invention is being mainly described with the keyboard controller 28 being enhanced to complement the security functions of the SMI handler for delivering system security, based on the description to follow, a person skilled in the art will appreciate that the present invention may be practiced with the enhanced keyboard controlling facility being embodied in a number of alternative manners, including but not limited to a coordinated I/O and keyboard controllers approach, or an integrated I/O-Keyboard controller approach, etc.

Additionally, while for ease of explanation, enumerated elements 12-24, 28 and 34 are shown as being disposed on a single circuit board or motherboard 11, in other embodiments, selected ones of these enumerated elements may be disposed off motherboard 11.

Furthermore, with references to FIG. 2, we will briefly describe the servicing of an SMI. As shown, upon detection of an SMI, processor 12 directs memory controller 20 to switch in and map SMM memory 18 as part of the system memory space, and in response, memory controller 20 performs the requested switching and mapping accordingly, step 48. Next, processor 12 saves the processor state into SMM memory 18, step 50. Upon saving the processor state, processor 12 transfers execution control to the pre-stored SMI handler, step 56.

The SMI handler then determines the cause of the SMI and services the SMI accordingly. Upon servicing the SMI, the SMI handler executes a Resume instruction to transfer execution control back to the interrupted programs. In response, processor 12 restores the saved processor state in SMM memory 18, step 52. Furthermore, processor 12 directs memory controller 20 to unmap SMM memory 18 from the system memory space and switch out SMM memory 18. In response, memory controller 20 performs the requested unmapping and switching accordingly, step 54.

As a result, the SMI is serviced in a manner that is transparent to the executing operating system, subsystems as well as applications. In other words, an SMI is a transparent system service interrupt. As will be explained in more detail, the present invention exploits the functions offered by the SMI and the SMM to allow the SMI handler to bear the main burden for providing system security to computer system 10.

Referring now to FIG. 3, wherein one embodiment of keyboard controller 28 of FIG. 1 is illustrated. As shown, keyboard controller 28 includes clock 62, control logic 64, read only memory 68, random access memory 72 and bus 80 coupled to each other as shown. Additionally, keyboard controller 28 also includes data bus input register 66, data bus output register 70, and status register 74, coupled to bus 80 and interface 82 as shown. Furthermore, keyboard controller 28 includes timer counter 76 and I/O lines 78 coupled to bus 80 as shown. Keyboard 30 and auxiliary device 32 are coupled to I/O lines 78 through interface 84. Collectively, data bus input register 66, data bus output register 70, and status register 74 are also referred to as the "system port", whereas I/O lines 78 are also referred to as the "device port".

Control logic 64 controls the operation of keyboard controller 28, executing controller firmware incorporated with the teachings of the present invention. In particular, the firmware implements a plurality of commands supported by keyboard controller 28. For the most part, these commands are the commands required to be compatible with what's known in the art as the standard IBM.RTM. PS/2 Keyboard Controller commands. These commands includes a first command for processor 12 to download a password from NV memory 17 to keyboard controller 28, and a second command for processor 12 to direct keyboard controller 28 to activate system security (but without shutting off commands from processor 12 to connected devices 30-32, nor proper responses from connected devices 30-32 to processor 12).

As will be described in more detail below, in accordance with the present invention, the controller firmware implements these support by causing keyboard controller 28 to operate in one of three modes, a normal mode, a sleuth mode, and a secured mode. The controller firmware is pre-loaded in read only memory 68. Random access memory 72 is used to store various operational data. I/O lines 76 are used to transfer commands/status and data to/from the connected devices, which include keyboard 30 and auxiliary device 32. Data bus input and output registers 66 and 70, and status register 74 are used to transfer commands/status and data from/to processor 12.

As will be obvious from the description to follow, keyboard controller 28 having the requisite controller firmware in accordance with the present invention may be implemented with any number of well known "programmable" keyboard controllers, including but not limited to the 8042 keyboard controller manufactured by Intel Corp. of Santa Clara, Calif., assignee of the present invention.

FIG. 4 illustrates the operating modes of keyboard controller 28 in further detail. As shown, keyboard controller 28 operates in one of three modes, normal mode 102, sleuth mode 106, and secured mode 1