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

Using firmware to enhance the functionality of a controller

Assignee: Kinglite Holdings Inc
•
Filing: 1997-11-21
•
Granted: 1999-08-10
•
Expires: 2017-11-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A single controller handles keyboard functions and ACPI configuration and power management functions, while providing priority to keyboard functions so that there is no end user-perceptible compromise of keyboard functionality. When an interrupt is received by the microcontroller, it is determined whether the interrupt is an embedded controller interrupt received at the embedded controller host interface or a keyboard interrupt received at the keyboard host interface. If the interrupt is a keyboard interrupt, the keyboard function is handled in a standard fashion. If the interrupt is an embedded controller interrupt for an ACPI configuration or power management function, a burst timer is started and the command is handled by a command dispatcher. If the embedded controller is in burst mode, multiple commands may be received during a burst period. Commands which are not completed before the expiration of the burst timer are aborted, and a data return vector is set to the absolute address at the point of abortion in the firmware. Aborted commands are resumed on reception of the next embedded controller interrupt by continuation of the process at the data return vector address.

Inventors

  • 👤 Aleksandr Frid
  • 👤 Anthony P. Casano

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 16:32
CPC Classifications
G; G06; G06F; G06F1/00; G06F1/26; G06F1/32; G06F1/3203

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 205 words
A utility for adapting a controller for handling a first set of higher-priority functions and a second set of lower-priority functions using firmware, the utility comprising: means for receiving a notification of a function to be performed; means for determining whether the function to be performed is one of the first set of higher-priority functions or one of the second set of lower-priority functions; means for executing the function associated with the notification if the notification is for one of the first set of higher-priority functions; means for starting a timer if the notification is for one of the first set of lower-priority functions and the timer has not already been started; means for beginning execution of the function associated with the notification after starting the timer if the notification is for one of the first set of lower-priority functions; means for aborting the function if not completed before expiration of the timer, and storing an address of a point of abortion of the function in a data return vector; and means for resuming execution of the function if previously aborted due to the expiration of the timer upon reception of a subsequent notification, by continuation at the address stored by the data return vector.
Claim 2
Dependent Claim 205 words
A utility for adapting a controller for handling a first set of higher-priority functions and a second set of lower-priority functions using firmware, the utility comprising: means for receiving a notification of a function to be performed; means for determining whether the function to be performed is one of the first set of higher-priority functions or one of the second set of lower-priority functions; means for executing the function associated with the notification if the notification is for one of the first set of higher-priority functions; means for starting a timer if the notification is for one of the first set of lower-priority functions and the timer has not already been started; means for beginning execution of the function associated with the notification after starting the timer if the notification is for one of the first set of lower-priority functions; means for aborting the function if not completed before expiration of the timer, and storing an address of a point of abortion of the function in a data return vector; and means for resuming execution of the function if previously aborted due to the expiration of the timer upon reception of a subsequent notification, by continuation at the address stored by the data return vector.
Claim 3
Dependent Claim 48 words
The utility of claim 1 wherein the utility further comprises means for returning control to the means for receiving the notification if the function is a burst enable function and the expiration of the timer has not occurred, the burst enable function being one of the lower-priority functions.
Claim 4
Dependent Claim 13 words
The utility of claim 1 wherein the controller is interfaced with BIOS firmware.
Claim 5
Dependent Claim 17 words
The utility of claim 1 wherein the controller is interfaced with an operating system of a computer.
Claim 6
Dependent Claim 12 words
The utility of claim 1 wherein the controller is a dual-interface microcontroller.
Claim 7
Dependent Claim 51 words
The utility of claim 5 wherein the notification is received at a first interface of the dual-interface microcontroller if the current function is one of the higher-priority functions and the notification is received at a second interface of the dual-interface microcontroller if the current function is one of the lower-priority functions.
Claim 8
Dependent Claim 28 words
The utility of claim 1 wherein the first set of higher-priority functions are keyboard functions and the second set of lower-priority functions are power management and configuration functions.
Claim 9
Dependent Claim 16 words
The utility of claim 1 wherein the utility is stored on a computer readable storage device.
Claim 10
Independent Claim 165 words
A method for use of a controller for handling a first set of high-priority tasks and a second set of lower-priority tasks, comprising the steps of: (a) receiving a task interrupt; (b) determining whether the task interrupt is for the first set of high-priority tasks or the second set of lower-priority tasks; (c) executing a current function associated with the task interrupt if the task interrupt is for one of the first set of high-priority tasks; (d) starting a burst period timer if the task interrupt is for one of the second set of lower-priority tasks; (e) executing the current function associated with the task interrupt if the task interrupt is for the one of the second set of lower-priority tasks; and (f) returning to step (e) if an additional communication for execution of an additional function is received prior to expiration of the burst period timer and if the controller is in burst mode, where the current function is defined as the additional function.
Claim 11
Independent Claim 165 words
A method for use of a controller for handling a first set of high-priority tasks and a second set of lower-priority tasks, comprising the steps of: (a) receiving a task interrupt; (b) determining whether the task interrupt is for the first set of high-priority tasks or the second set of lower-priority tasks; (c) executing a current function associated with the task interrupt if the task interrupt is for one of the first set of high-priority tasks; (d) starting a burst period timer if the task interrupt is for one of the second set of lower-priority tasks; (e) executing the current function associated with the task interrupt if the task interrupt is for the one of the second set of lower-priority tasks; and (f) returning to step (e) if an additional communication for execution of an additional function is received prior to expiration of the burst period timer and if the controller is in burst mode, where the current function is defined as the additional function.
Claim 12
Dependent Claim 103 words
The method of claim 9 wherein step (e) includes the steps of: (g) determining whether a command portion of the current function has been received; (h) setting a data return vector to a current address if the command portion is a read command or a write command; (i) aborting step (e) if a first data portion of the current function is not received prior to the expiration of the burst period timer; and (j) executing the current function and clearing the data return vector if the first data portion of the current function is received prior to the expiration of the burst period.
Claim 13
Dependent Claim 73 words
The method of claim 10 wherein step (e) further includes the steps of: (k) determining if the data return vector has been cleared, if in step (g) it is determined that the command portion of the current function has not been received; and (l) returning to step (e) at the current address stored as the data return vector if in step (k) it is determined that the data vector has not been cleared.
Claim 14
Dependent Claim 29 words
The method of claim 11 wherein the command portion is the read command and contents of an address specified by the first data portion is read from the controller.
Claim 15
Dependent Claim 28 words
The method of claim 11 wherein the command portion is the write command and an address is written to in the controller specified by the first data portion.
Claim 16
Dependent Claim 57 words
The method of claim 13 where, if the command portion is a write command, step (j) further includes the steps of: (m) setting a data return vector to the current address; and (n) aborting step (e) if a second data portion of the current function is not received prior to the expiration of the burst period timer.
Claim 17
Dependent Claim 24 words
The method of claim 14 wherein the second data portion is written to the address specified by the first data portion in the controller.
Claim 18
Dependent Claim 22 words
The method of claim 13 wherein the burst mode is aborted if the first data portion is a control method register address.
Claim 19
Dependent Claim 38 words
The method of claim 9 wherein the controller is a dual-interface controller and the first set of high-priority tasks are directed to a first interface and a second set of lower-priority, tasks are directed to a second interface.
Claim 20
Dependent Claim 25 words
The method of claim 17 wherein the dual-interface controller is a keyboard controller, and the first set of high-priority embedded controller tasks are keyboard functions.
Claim 21
Dependent Claim 203 words
In a computer system with an operating system and firmware, the computer system comprising a device for handling a first set of higher-priority functions and a second set of lower-priority functions using the firmware, the device configured to: receive a notification of a function to be performed; determine whether the function to be performed is one of the first set of higher-priority functions or one of the second set of lower-priority functions; execute the function associated with the notification if the notification is for one of the first set of higher-priority functions; start a timer if the notification is for one of the first set of lower-priority functions and the timer has not already been started; begin execution of the function associated with the notification after starting the timer if the notification is for one of the first set of lower-priority functions; abort the function if not completed before expiration of the timer, and store an address of a point of abortion of the function in a data return vector; and resume execution of the function if previously aborted due to the expiration of the timer upon reception of a subsequent notification, by continuation at the address stored by the data return vector.
Claim 22
Dependent Claim 203 words
In a computer system with an operating system and firmware, the computer system comprising a device for handling a first set of higher-priority functions and a second set of lower-priority functions using the firmware, the device configured to: receive a notification of a function to be performed; determine whether the function to be performed is one of the first set of higher-priority functions or one of the second set of lower-priority functions; execute the function associated with the notification if the notification is for one of the first set of higher-priority functions; start a timer if the notification is for one of the first set of lower-priority functions and the timer has not already been started; begin execution of the function associated with the notification after starting the timer if the notification is for one of the first set of lower-priority functions; abort the function if not completed before expiration of the timer, and store an address of a point of abortion of the function in a data return vector; and resume execution of the function if previously aborted due to the expiration of the timer upon reception of a subsequent notification, by continuation at the address stored by the data return vector.
Claim 23
Dependent Claim 43 words
The computer system of claim 19 wherein the device is further configured to return a notification if the function is a burst enable function and the expiration of the timer has not occurred, the burst enable function is one of the lower-priority functions.
Claim 24
Dependent Claim 20 words
The computer system of claim 19 wherein the device is interfaced with the BIOS firmware or with the operating system.
Claim 25
Dependent Claim 60 words
The computer system of claim 19 wherein the device is a dual-interface microcontroller so that the notification is received at a first interface of the dual-interface microcontroller if the current function is one of the higher-priority functions and the notification is received at a second interface of the dual-interface microcontroller if the current function is one of the lower-priority functions.
Claim 26
Dependent Claim 29 words
The computer system of claim 19 wherein the first set of higher-priority functions are keyboard functions and the second set of lower-priority functions are power management and configuration functions.

References Cited (Backward Citations)

US4145735A Cited
US4318173A Cited
US4612418A Cited
US5530861A Cited
US5446898A Cited
US5555416A Cited
US5548763A Cited
US5579529A Cited
US5768594A Cited
US5745439A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-08-09 2003-02-08 2003-08-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-08-09 2007-02-08 2007-08-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-08-09 2011-02-08 2011-08-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag