IP Library Granted Patent US 8,321,655
Granted Patent B2
US 8,321,655 · App. 12/566,584 · Granted Nov 27, 2012

Execution parallelism in extensible firmware interface compliant systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,321,655
App. No.
12/566,584
Granted
Nov 27, 2012
Kind
B2
Abstract

Methods, systems, apparatuses and program products are disclosed for providing execution parallelism during the DXE phase of computer start-up. Provision is made for loading a microkernel (or other kernel program) which presents itself as though it were a DXE Driver and changes a single threaded environment into multithreaded. This is while the supervisor program continues its role as loader/initiator but remains unaware that it no longer has overarching control of Driver scheduling (which has been acquired by Kernel).

Claims (66)

1. A method for loading and initializing a computer comprising:

executing an EFI (extensible firmware interface) core program to load a kernel program into memory;

executing the kernel program to create an ISR (interrupt service routine);

reentering the EFI core program as a first thread supervised by the kernel;

executing the EFI core program to load a driver program; and

executing the driver program on the first thread to invoke a service provided by, the kernel to create and initialize a second thread supervised by the kernel and further to return control to the EFI core program,

wherein the second thread is initiated to run in a SMM (system management mode) or a virtualized SMM (system management mode).

2. The method of claim 1 wherein:

the kernel is a microkernel.

3. The method of claim 1 wherein:

the ISR hooks a timer circuit interrupt.

4. The method of claim 1 wherein:

the second thread is initiated to run of a multi-processor core distinct from the multi-processor core in which the first thread runs.

5. The method of claim 1 wherein:

the kernel exports a service to provide a timer and the driver program invokes the service to provide a timer.

6. The method of claim 1 wherein:

the driver program is a DXE (Driver Execution Environment) program.

7. The method of claim 6 wherein:

the kernel exports a service to provide a timer and the DXE program invokes the service to provide a timer.

8. The method of claim 7 wherein:

the service to provide a timer provide dynamic granularity.

9. The method of claim 6 wherein:

the kernel exports a service to provide an interrupt service response to a hardware event.

10. The method of claim 6 wherein:

the kernel exports a service to provide an interrupt service response to a SMI (system management interrupt).

11. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute a method, comprising:

executing an EFI (extensible firmware interface) core program to load a kernel program into memory;

executing the kernel program to create an ISR (interrupt service routine);

reentering the EFI core program as a first thread supervised by the kernel;

executing the EFI core program to load a driver program; and

executing the driver program on the first thread to invoke a service provided by the kernel to create and initialize a second thread supervised by the kernel and further to return control to the EFI core program,

wherein the second thread is initiated to run in a SMM (system management mode) or a virtualized SMM (system management mode).

12. The non-transitory computer readable medium of claim 11 wherein:

the EFI core program and the kernel program are loaded from one ROM (read-only memory).

13. An electronic device comprising:

a controller; and

a first system memory having instructions encoded therein, the instructions when executed by the controller cause said controller to operate by steps to:

execute an EFI (extensible firmware interface) core program to load a kernel program into memory;

execute the kernel program to create an ISR (interrupt service routine);

reenter the EFI core program as a first thread supervised by the kernel;

executing the EFI core program to load a driver program; and

executing the driver program on the first thread to invoke a service provided by the kernel to create and initialize a second thread supervised by the kernel and further to return control to the EFI core program,

wherein the second thread is initiated to run in a SMM (system management mode) or a virtualized SMM (system management mode).

14. A method for loading and initializing a computer comprising:

executing an EFI (extensible firmware interface) core program to load a kernel program into memory;

executing the kernel program to create an ISR (interrupt service routine);

reentering the EFI core program as a first thread supervised by the kernel;

executing the EFI core program to load a driver program; and

executing the driver program on the first thread to invoke a service provided by the kernel to create and initialize a second thread supervised by the kernel and further to return control to the EFI core program,

wherein the second thread is initiated to run in a VM (virtual machine) distinct from the VM in which the first thread runs.

15. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute a method, comprising:

executing an EFI (extensible firmware interface) core program to load a kernel program into memory;

executing the kernel program to create an ISR (interrupt service routine);

reentering the EFI core program as a first thread supervised by the kernel;

executing the EFI core program to load a driver program; and

executing the driver program on the first thread to invoke a service provided by the kernel to create and initialize a second thread supervised by the kernel and further to return control to the EFI core program,

wherein the second thread is initiated to run in a VM (virtual machine) distinct from the VM in which the first thread runs.

16. An electronic device comprising:

a controller; and

a first system memory having instructions encoded therein, the instructions when executed by the controller cause said controller to operate by steps to:

execute an EFI (extensible firmware interface) core program to load a kernel program into memory;

execute the kernel program to create an ISR (interrupt service routine);

reenter the EFI core program as a first thread supervised by the kernel;

executing the EFI core program to load a driver program; and

executing the driver program on the first thread to invoke a service provided by the kernel to create and initialize a second thread supervised by the kernel and further to return control to the EFI core program,

wherein the second thread is initiated to run in a VM (virtual machine) distinct from the VM in which the first thread runs.

Assignments (6)
LIEN AND SECURITY INTEREST Recorded Jan 13, 2017
From: KINGLITE HOLDINGS INC.
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 041366/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2012
From: PHOENIX TECHNOLOGIES LTD.
To: KINGLITE HOLDINGS INC.
Reel/Frame 029339/0716 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2012
From: MEP PLP, LLC
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 029307/0590 →
SECURITY AGREEMENT Recorded Nov 13, 2012
From: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC
To: MEP PLP, LLC
Reel/Frame 029291/0354 →
GRANT OF SECURITY INTEREST - PATENTS Recorded Nov 24, 2010
From: PHOENIX TECHNOLOGIES LTD.
To: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC, AS COLLATERAL AGENT
Reel/Frame 025406/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2009
From: JONES, STEPHEN E
To: PHOENIX TECHNOLOGIES LTD
Reel/Frame 023280/0848 →