US6968410B2ExpiredUtilityA1

Multi-threaded processing of system management interrupts

76
Assignee: INTEL CORPPriority: Feb 28, 2001Filed: Feb 28, 2001Granted: Nov 22, 2005
Est. expiryFeb 28, 2021(expired)· nominal 20-yr term from priority
G06F 13/24
76
PatentIndex Score
21
Cited by
7
References
30
Claims

Abstract

An information capturing technique captures information on a processor cycle that results in a high level interrupt, such as an SMI (System Management Interrupt). A memory controller is connected to at least one processor to control a memory in response to instructions from the at least one processor. An I/O controller is connected to the memory controller to control data flow to at least one device in response to instructions from the at least one processor. Lock down logic stores captured cycle information on a processor cycle that results in interrupt.

Claims

exact text as granted — not AI-modified
1. An apparatus comprising:
 a memory controller connected to at least one processor of a plurality of processors to control a memory in response to instructions from said at least one processor;  
 an I/O controller connected to said memory controller to control data flow to at least one device in response to instructions from said at least one processor; and  
 lock down logic to store captured cycle information of said processor cycle that results in a system management interrupt and to transfer the captured cycle information to each processor of said plurality of processors in response to said system management interrupt.  
 
   
   
     2. The apparatus of  claim 1 , the captured cycle information stored in the lock down logic comprising at least one of:
 an address of the processor cycle;  
 an indication as to whether the cycle was a READ or a WRITE cycle; and  
 an identity of said at least one processor which generated the processor cycle.  
 
   
   
     3. The apparatus of  claim 1 , wherein said lock down logic is disposed within one of:
 said memory controller;  
 said I/O controller; and  
 said at least one processor.  
 
   
   
     4. The apparatus of  claim 1 , said memory controller comprising a cycle decode to decode instructions from said at least one processor. 
   
   
     5. The apparatus of  claim 1 , said I/O controller comprising a cycle decode to decode instructions from said at least one processor. 
   
   
     6. The apparatus of  claim 1 , said I/O controller comprising an interrupt decode to decode said system management interrupt and output a system management interrupt signal to said at least one processor. 
   
   
     7. A method comprising:
 detecting a system management interrupt in response to decoding instructions from at least one processor of a plurality of processors;  
 outputting a system management interrupt signal to the at least one processor in response to the system management interrupt;  
 capturing and storing cycle information of a processor cycle that results in the system management interrupt, and  
 transferring at least a portion of the captured cycle information to each processor of the plurality of processors in response to the system management interrupt.  
 
   
   
     8. The method of  claim 7 , the stored captured cycle information comprising at least one of:
 an address of the processor cycle;  
 an indication as to whether the cycle was a READ or a WRITE cycle; and  
 an identity of the at least one processor which generated the processor cycle.  
 
   
   
     9. A method comprising:
 controlling a memory in response to instructions from at least one processor of a plurality of processors;  
 controlling data flow to at least one device in response to instructions from the at least one processor;  
 storing captured cycle information associated with a processor cycle that results in a system management interrupt; and  
 transferring at least a portion of the captured cycle information to each processor of the plurality of processors.  
 
   
   
     10. The method of  claim 9 , the captured stored cycle information comprising at least one of:
 an address of the processor cycle;  
 an indication as to whether the cycle was a READ or a WRITE cycle; and  
 an identity of the at least one processor which generated the processor cycle.  
 
   
   
     11. The method of  claim 9 , wherein the captured cycle information is stored within one of:
 a memory controller;  
 an I/O controller; and  
 the at least one processor.  
 
   
   
     12. The method of  claim 9 , further comprising decoding instructions from the at least one processor with the memory controller. 
   
   
     13. The method of  claim 9 , further comprising decoding instructions from the at least one processor with an I/O controller. 
   
   
     14. The method of  claim 9 , further comprising detecting a system management interrupt and outputting a system management interrupt signal to the at least one processor with an interrupt decode. 
   
   
     15. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method comprising:
 decoding instructions from at least one processor of a plurality of processors to decode a system management interrupt;  
 outputting a system management interrupt signal to the at least one processor in response to the decoded interrupt;  
 capturing and storing cycle information on a processor cycle that results in a system management interrupt; and  
 transferring at least a portion of the captured cycle information to each processor of the plurality of processors.  
 
   
   
     16. The program storage device of  claim 15 , the stored captured cycle information comprising at least one of:
 an address of the processor cycle;  
 an indication as to whether the cycle was a READ or a WRITE cycle; and  
 an identity of the at least one processor which generated the processor cycle.  
 
   
   
     17. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method comprising:
 controlling a memory in response to instructions from at least one processor of a plurality of processors;  
 controlling data flow to at least one device in response to instructions from the at least one processor;  
 storing captured cycle information associated with a processor cycle that results in a system management interrupt; and  
 transferring at least a portion of the captured cycle information to each processor of the plurality of processors.  
 
   
   
     18. The program storage device of  claim 17 , the stored captured cycle information comprising at least one of:
 an address of the processor cycle;  
 an indication as to whether the cycle was a READ or a WRITE cycle; and  
 an identity of the at least one processor which generated the processor cycle.  
 
   
   
     19. The program storage device of  claim 17 , wherein the captured cycle information is stored within one of:
 a memory controller;  
 an I/O controller; and  
 the at least one processor.  
 
   
   
     20. A method comprising
 determining that execution of an instruction by a processor of a plurality of processors results in a system management interrupt,  
 storing a processor identifier that identifies the processor that executed the instruction resulting in the system management interrupt,  
 sending a system management interrupt signal to each processor of the plurality of processors in response to the system management interrupt, and  
 in response to receiving the system management interrupt signal, executing a system management thread with the processor identified by the processor identifier.  
 
   
   
     21. The method of  claim 20  further comprising in response to receiving the system management interrupt signal, executing a thread other than the system management thread with a processor not identified by the processor identifier. 
   
   
     22. A method comprising
 determining that execution of an instruction by a processor of a plurality of processors results in a system management interrupt,  
 storing a processor identifier that identifies the processor that executed the instruction resulting in the system management interrupt, and  
 executing a thread other than a system management thread with a processor not identified by the processor identifier.  
 
   
   
     23. The method of  claim 22  further comprising executing the system management thread with the processor identified by the processor identifier. 
   
   
     24. A system for a plurality of processors comprising
 an interrupt decoder to generate a system management interrupt signal in response to an instruction executed by a processor of the plurality of processors, and  
 logic to store a processor identifier for the processor that executed the instruction resulting in the system management interrupt, wherein  
 the interrupt decoder provides each processor of the plurality of processors with the system management interrupt signal, and  
 wherein a processor in response to the system management interrupt signal executes a system management thread if identified by the processor identifier of the logic and does not execute the system management thread if not identified by the processor identifier of the logic.  
 
   
   
     25. The system of  claim 24  wherein the interrupt decoder instructs the logic to store the processor identifier. 
   
   
     26. The system of  claim 24  wherein each processor of the plurality of processors in response to the system management interrupt signal determines whether the processor identifier of the logic identifies the processor. 
   
   
     27. A method comprising
 simultaneously executing a first thread and a second thread with a processor, and  
 simultaneously executing the second thread and a system management thread with the processor in response to determining that execution of the first thread caused a system management interrupt.  
 
   
   
     28. The method of  claim 27  further comprises
 suspending execution of the first thread with the processor to execute a system management interrupt handler in response to the system management interrupt, and  
 invoking execution of the system management thread with the processor in response to the system management interrupt handler determining that the first thread caused the system management interrupt.  
 
   
   
     29. The method of  claim 27  further comprising
 suspending execution of the second thread with the processor to execute a system management interrupt handler with the processor in response to the system management interrupt, and  
 resuming execution of the second thread with the processor in response to the system management interrupt handler determining that execution of the second thread with the processor did not cause the system management interrupt.  
 
   
   
     30. The method of  claim 27  further comprising
 executing a third thread with another processor,  
 suspending execution of the third thread with the another processor to execute a system management interrupt handler with the another processor in response to the system management interrupt, and  
 resuming the execution of the third thread with the another processor in response to the system management interrupt handler determining that the execution of the third thread with the another processor did not cause the system management interrupt.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.