Patent US3646401A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5796984A Expired / Lapsed US ⏱️ 0.0 years remaining

Operating system independent apparatus and method for eliminating peripheral device functions

Assignee: Dell USA LP
•
Filing: 1996-01-26
•
Granted: 1998-08-18
•
Expires: 2016-01-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An emulation methodology utilizes increasing microprocessor performance characteristics and System Management Mode ("SMM") to emulate peripheral device functions in a computer system. The emulation methodology traps addresses associated with I/O between a CPU and one or more peripheral devices. After trapping the I/O instruction address, a system management interrupt issues, and the computer system enters the operating system independent SMM. The CPU executes SMM code which proceeds to pass instructions to the CPU which result in the complete or partial emulation of a peripheral device. When the peripheral device is completely emulated, it can be replaced, for example, with a less expensive, less functional component or possibly even eliminated without substitution. The emulation methodology also responds to asynchronous peripheral device user activity by again trapping an I/O instruction to the peripheral device, and using SMM code to emulate the peripheral device.

Inventors

  • 👤 John J. Pearce
  • 👤 Kendall C. Witte

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 14:41
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/455; G06F13/00; G06F13/10; G06F13/105; Y; Y02; Y02D; Y02D10/00

Claims Analysis

Total Claims: 46
Claim 1
Independent Claim 69 words
A method of operating a computer system having a memory coupled to a processor, the method comprising the steps of: trapping an address to an I/O device address range; checking a type of an I/O operation associated with the trapped address; and replacing an I/O device function associated with the I/O operation type by providing instructions from the memory to the processor which completely emulate the I/O device function.
Claim 2
Independent Claim 69 words
A method of operating a computer system having a memory coupled to a processor, the method comprising the steps of: trapping an address to an I/O device address range; checking a type of an I/O operation associated with the trapped address; and replacing an I/O device function associated with the I/O operation type by providing instructions from the memory to the processor which completely emulate the I/O device function.
Claim 3
Dependent Claim 27 words
The method of claim 1 further comprising the step of: programming a system controller I/O trap to trap the address between the processor and the I/O device.
Claim 4
Dependent Claim 53 words
The method of claim 2 further comprising the steps of: issuing a system management interrupt during initialization of the processor; entering a system management mode of the processor; initializing a system controller I/O trap to perform the trapping step; exiting system management mode after the step of programming the system controller I/O trap.
Claim 5
Dependent Claim 13 words
The method of claim 1 wherein the I/O device is a keyboard controller.
Claim 6
Dependent Claim 59 words
The method of claim 1 further comprising the steps of: loading an application program into the memory of the computer system; executing the application program; requesting, from the application program, an I/O operation to the I/O device; and performing an I/O operation to the address range of the I/O device in response to the request by the application program.
Claim 7
Dependent Claim 43 words
The method of claim 1 further comprising the steps of: after the step of trapping an an address to an I/O device range, issuing a system management interrupt request; and entering system management mode in response to the system management mode interrupt request.
Claim 8
Dependent Claim 95 words
The method of claim 1 further comprising the step of: executing an application program; passing an I/O instruction having a function code from the application program to the processor; saving an instruction pointer register contents in response to trapping the I/O operation to the I/O device address range; wherein the step of checking a type of the I/O operation comprises the steps of: examining the contents of the instruction pointer register; determining the type of instruction pointed to by the contents of the instruction pointer register; and determining a function code associated with the instruction.
Claim 9
Dependent Claim 17 words
The method of claim 1 wherein the instructions from the memory reside in system management mode memory.
Claim 10
Dependent Claim 35 words
The method of claim 1 wherein the I/O operation requests data from the I/O device, the method further comprising the steps of: providing data from the memory to the processor to emulate the requested data.
Claim 11
Dependent Claim 21 words
The method of claim 1 wherein the instructions allow the processor to access the I/O device independent of an operating system.
Claim 12
Independent Claim 90 words
A method of operating a computer system having a memory coupled to a central processing unit, the method comprising the steps of: providing a peripheral device function request from the memory to the central processing unit; attempting to access a peripheral device address associated with the peripheral device function request; trapping the peripheral device address; determining the peripheral device function request; providing instructions from the memory to the central processing unit which completely emulate the requested peripheral device function; and emulating a complete response to the peripheral device function request.
Claim 13
Independent Claim 90 words
A method of operating a computer system having a memory coupled to a central processing unit, the method comprising the steps of: providing a peripheral device function request from the memory to the central processing unit; attempting to access a peripheral device address associated with the peripheral device function request; trapping the peripheral device address; determining the peripheral device function request; providing instructions from the memory to the central processing unit which completely emulate the requested peripheral device function; and emulating a complete response to the peripheral device function request.
Claim 14
Dependent Claim 65 words
The method of claim 11 further comprising the steps of: issuing a system management interrupt to the central processing unit; entering system management mode of the computer system; programming a system controller I/O trap to trap I/O activity involving the peripheral device address; exiting system management mode; loading operating system code into the memory; loading application code into the memory; and executing the application code.
Claim 15
Dependent Claim 194 words
The method of claim 12 further comprising the steps of: after the step of trapping the peripheral device address, issuing a system management interrupt from the system controller I/O trap to the central processing unit; storing current registers of the central processing unit in response to the system management interrupt; entering system management mode; executing system management mode code stored in the memory independent of the operating system; determining the type of the peripheral device function request; if the function request is a `write data` request, the method comprises the steps of: determining the data content of the peripheral device function request; and issuing instructions from the system management mode code to the central processing unit to emulate the peripheral device function request; and exiting system management mode; and if the fiction request is a `read data` request, the method comprises the steps of: determining whether the data is emulated data; if the emulated data is available in system management memory, retrieving the emulated data; if the emulated data is not available, retrieving the requested data from the peripheral device; and transmitting the data to the central processing unit; and exiting system management mode.
Claim 16
Dependent Claim 44 words
The method of claim 13 further comprising the steps of: after entering system management mode, retrieving keystroke data; and storing the keystroke data in a predetermined memory location accessible to the central processing unit, wherein the function request is a read keystroke data request.
Claim 17
Dependent Claim 79 words
The method of claim 13 wherein the step of storing current registers of the central processing unit comprises the step of saving an instruction pointer register contents, and the step of determining the type of the peripheral function request comprises the steps of: examining the contents of the instruction pointer register; determining the type of peripheral device function request pointed to by the contents of the instruction pointer register; and determining a function code associated with the function request.
Claim 18
Dependent Claim 16 words
The method as in claim 13 wherein the peripheral device address is a keyboard controller address.
Claim 19
Dependent Claim 94 words
The method of claim 11 wherein the instructions are system management code residing in system management mode memory, and the peripheral device function request is a request to read keystroke data from a keyboard peripheral device, the method further comprising the steps of: issuing a system management mode interrupt to the central processing unit; entering system management mode; retrieving keystroke data if available independent of an operating system; storing the retrieved keystroke data in system management memory; and writing the retrieved keystroke data in a predetermined memory location accessible to the central processing unit.
Claim 20
Dependent Claim 18 words
The method of claim 11 wherein the memory coupled to the central processing unit includes system management memory.
Claim 21
Dependent Claim 15 words
The method of claim 11 wherein the peripheral device address includes a range of addresses.
Claim 22
Dependent Claim 49 words
The method of claim 11 further comprising the steps of: after the step of trapping the peripheral device address, issuing a system management interrupt; and entering system management mode; wherein the step of providing instructions from the memory comprises the step of: providing instructions from system management mode memory.
Claim 23
Dependent Claim 13 words
The method of claim 11 wherein the peripheral device is a keyboard controller.
Claim 24
Dependent Claim 71 words
The method of claim 11 wherein the step of providing a peripheral device function request comprises the step of executing application code, the method further comprising the step of: receiving instructions from the application code with the central processing unit to perform the function request wherein the requested function request is a member of the group consisting of a write to I/O port instruction and a read from I/O port instruction.
Claim 25
Dependent Claim 29 words
The method as in claim 11 further comprising the step of: after the step of trapping the peripheral device address, issuing a system management interrupt to central processing unit.
Claim 26
Dependent Claim 114 words
A computer system comprising: a memory having a program stored therein, an I/O device for entering data into the computer system and receiving data from the computer system; a processor, coupled to the memory and the I/O device, for executing instructions provided to the processor from the memory; an I/O trap coupled to the processor to intercept addresses, within an I/O device address range, associated with an instruction; and system management mode (SMM) code stored in the memory and executable by the processor and having an emulation module for examining the instruction associated with the intercepted address and for replacing an I/O device function by completely emulating an I/O device response to the instruction.
Claim 27
Dependent Claim 114 words
A computer system comprising: a memory having a program stored therein, an I/O device for entering data into the computer system and receiving data from the computer system; a processor, coupled to the memory and the I/O device, for executing instructions provided to the processor from the memory; an I/O trap coupled to the processor to intercept addresses, within an I/O device address range, associated with an instruction; and system management mode (SMM) code stored in the memory and executable by the processor and having an emulation module for examining the instruction associated with the intercepted address and for replacing an I/O device function by completely emulating an I/O device response to the instruction.
Claim 28
Dependent Claim 25 words
The computer system of claim 24 wherein the SMM code includes another module for programming the I/O device intercept address range into the I/O trap.
Claim 29
Dependent Claim 45 words
The computer system of claim 24 wherein the processor includes a system management interrupt (SMI) terminal, and the I/O trap includes circuitry to assert a signal on the processor SMI pin if the I/O trap intercepts and traps an address associated within the address range.
Claim 30
Dependent Claim 113 words
The computer system of claim 24 wherein the I/O device is a keyboard having a keyboard controller, the keyboard controller farther comprising: a first in first out unit (FIFO) coupled between the I/O device and the keyboard for receiving keyboard data; and interrupt logic coupled to the FIFO and the processor, wherein the instruction is received by the processor in response to a signal generated by the interrupt logic, and the signal is generated in response to any keyboard data received by the FIFO, wherein the emulation module of the SMM code is capable of emulating any responses of the keyboard controller to any keyboard controller read and write operations from the processor.
Claim 31
Dependent Claim 27 words
The computer system of claim 24 wherein the instruction, associated with the intercepted address, includes function data and is a `write data` instruction to the I/O device.
Claim 32
Dependent Claim 33 words
The computer system of claim 24 wherein the instruction, associated with the intercepted address, is a `read data` request, and the emulation module retrieves the data and provides the data to the processor.
Claim 33
Dependent Claim 17 words
The computer system of claim 29 wherein the emulation module retrieves the data from the I/O device.
Claim 34
Dependent Claim 34 words
The computer system of claim 24 wherein a portion of the memory is reserved for the SMM code and for a data buffer utilized by the SMM code to store emulated I/O device data.
Claim 35
Dependent Claim 16 words
The computer system of claim 31 wherein the emulated I/O device data is keyboard status data.
Claim 36
Dependent Claim 28 words
The computer system of claim 24 further comprising: an operating system in said memory, wherein the SMM code is processed by the processor independently of the operating system.
Claim 37
Dependent Claim 16 words
The computer system of claim 24 wherein the I/O trap is a system controller I/O trap.
Claim 38
Dependent Claim 14 words
The computer system of claim 24 wherein the computer system includes a laptop computer.
Claim 39
Dependent Claim 17 words
The method as in claim 24 wherein the I/O device is incapable of responding to the instruction.
Claim 40
Dependent Claim 133 words
A computer system comprising: means for storing instructions; means for processing instructions received from the means for storing code; means for detecting an address of a predetermined I/O device; means for programming the means for detecting to detect an address of the predetermined I/O device; means for trapping detected addresses of the predetermined I/O device; means for interrupting the means for processing if the means for detecting detects an address of the predetermined I/O device and the means for trapping traps a detected address to the predetermined I/O device; means for determining an I/O device operation instruction associated with a detected and trapped address of the predetermined I/O device; and means for completely emulating an I/O device response to the determined I/O device operation instruction by providing instructions to the means for processing.
Claim 41
Dependent Claim 133 words
A computer system comprising: means for storing instructions; means for processing instructions received from the means for storing code; means for detecting an address of a predetermined I/O device; means for programming the means for detecting to detect an address of the predetermined I/O device; means for trapping detected addresses of the predetermined I/O device; means for interrupting the means for processing if the means for detecting detects an address of the predetermined I/O device and the means for trapping traps a detected address to the predetermined I/O device; means for determining an I/O device operation instruction associated with a detected and trapped address of the predetermined I/O device; and means for completely emulating an I/O device response to the determined I/O device operation instruction by providing instructions to the means for processing.
Claim 42
Dependent Claim 75 words
The computer system of claim 37 wherein the means for emulating includes: means for retrieving data from the means for storing if the I/O operation instruction type is a `read` instruction; and means for storing data if the I/O operation instruction type is a `data write` instruction; and the means for determining includes: means for determining the type of I/O device operation instruction associated with a detected and trapped address of the predetermined I/O device.
Claim 43
Independent Claim 92 words
A method of operating a computer system having a memory coupled to a processor, the method comprising the steps of: trapping an address to an I/O device address range; after the step of trapping an address to an I/O device range, issuing a system management interrupt request to the processor; entering system management mode in response to the system management mode interrupt request; checking a type of an I/O operation associated with the trapped address; and providing instructions from the memory to the central processing unit to emulate the requested I/O operation.
Claim 44
Independent Claim 92 words
A method of operating a computer system having a memory coupled to a processor, the method comprising the steps of: trapping an address to an I/O device address range; after the step of trapping an address to an I/O device range, issuing a system management interrupt request to the processor; entering system management mode in response to the system management mode interrupt request; checking a type of an I/O operation associated with the trapped address; and providing instructions from the memory to the central processing unit to emulate the requested I/O operation.
Claim 45
Dependent Claim 20 words
The method as in claim 39 wherein the I/O device address range is an address range of a keyboard controller.
Claim 46
Dependent Claim 30 words
The method as in claim 39 wherein the step of providing comprises providing instructions from the memory to the processor to completely emulate a response to the requested I/O operation.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-08-17 2002-02-16 2002-08-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-08-17 2006-02-16 2006-08-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-08-17 2010-02-16 2010-08-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag