Optimization of SMI handling and initialization
First Claim
1. A method comprising:
- receiving a first system management interrupt (SMI) with a first and a second processor;
handling the first SMI with the first processor;
generating a wake-up signal with the first processor after receiving the first SMI, wherein the wake-up signal references a first memory address of a default SMI handler;
receiving the wake-up signal with the second processor;
awakening the second processor, based on the wake-up signal from the first processor; and
handling the first SMI with the second processor.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for efficient memory allocation and system management interrupt (SMI) handling is herein described. Upon waking a second processor in a multiple processor system, one may use a single SMI to initialize each processor, may use the location of a single default SMI handler as a wake-up vector to the second processor, and may patch an instruction pointer to a non-aligned address during the handling of the SMI with the second processor to forgo the traditional extra aligned memory allocation. In addition, one may use unified handler code to handle software generated SMIs on both the first and second processors and may use exit SMM directly after handling a hardware SMI to save execution time.
-
Citations
53 Claims
-
1. A method comprising:
-
receiving a first system management interrupt (SMI) with a first and a second processor; handling the first SMI with the first processor; generating a wake-up signal with the first processor after receiving the first SMI, wherein the wake-up signal references a first memory address of a default SMI handler; receiving the wake-up signal with the second processor; awakening the second processor, based on the wake-up signal from the first processor; and handling the first SMI with the second processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
receiving a first system management interrupt (SMI); executing code at a first memory location with a first processor in response to the first SMI; generating a wake-up signal with the first processor; awakening a second processor, based on a wake-up signal from the first processor; and executing the code from the first memory location with the second processor, in response to the first SMI after awakening the second processor. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A method comprising:
-
executing system management interrupt (SMI) code with a first processor to handle a SMI for the first processor; checking if the SMI is a software generated SMI; and executing the SMI code to handle the SMI for a second processor, if the SMI is software generated. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
-
-
34. An apparatus comprising:
-
a controller to generate a first system management interrupt (SMI); a first logical processor, coupled to the controller, to receive the first SMI, to handle the first SMI and to generate a wake-up signal after receiving the first SMI, wherein the wake-up signal references a first memory address of a default SMI handler; and a second logical processor, coupled to the controller, to handle the first SMI after the wake-up signal is received from the first logical processor. - View Dependent Claims (35, 36, 37, 38)
-
-
39. A system comprising:
-
a controller hub to generate a first system management interrupt (SMI); a memory to hold code beginning at a first memory address; a first processor coupled to the controller hub to receive the first SMI and to handle the first SMI, wherein the first processor is to execute the code beginning at the first memory address to handle the first SMI and is to generate a wake-up signal after receiving the first SMI; and a second processor coupled to the controller hub to receive the first SMI, to be woken up in response to receiving the wake-up signal, and to handle the first SMI after receiving the wake-up signal, wherein the second processor is to execute the code beginning at the first memory address to handle the first SMI. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A system comprising:
-
a memory to hold system management interrupt (SMI) code beginning at a first memory address; a first logical processor coupled to the memory to execute the SMI code beginning at the first memory address to handle an SMI for the first logical processor in response to receiving the SMI; and a second logical processor coupled to the memory to execute the SMI code beginning at the first memory address to handle the SMI for the second logical processor in response to the SMI being software generated. - View Dependent Claims (49, 50, 51, 52, 53)
-
Specification