IP Library Granted Patent US 7,451,298
Granted Patent B2
US 7,451,298 · App. 11/498,617 · Granted Nov 11, 2008

Processing exceptions from 64-bit application program executing in 64-bit processor with 32-bit OS kernel by switching to 32-bit processor mode

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 7,451,298
App. No.
11/498,617
Granted
Nov 11, 2008
Kind
B2
Abstract

One embodiment of the present invention provides a system that uses an M-bit operating system (OS) kernel to support N-bit user processes. During operation, the system receives an exception. Note that the exception can be any event that needs to be handled by executing OS kernel code. Specifically, the exception can be a hardware interrupt, a software interrupt, an asynchronous interrupt, a synchronous interrupt, a signal, a trap, or a system call. Next, the system handles the exception by first switching the processor to the M-bit mode, and then executing M-bit OS kernel code which is designed to handle the exception. Note that the processor may primarily be designed to operate in the N-bit mode; the M-bit mode may primarily be provided for backward compatibility reasons.

Claims (66)

1. A method for using an N-bit aware M-bit operating system (OS) kernel to execute an N-bit user process, wherein N is greater than M, and wherein the M-bit OS kernel executes on a processor that can switch between an N-bit mode and an M-bit compatibility mode, the method comprising:

receiving an exception that occurred during the execution of the N-bit user process in the N-bit mode; and

handling the exception using the M-bit OS kernel by:

executing N-bit code to switch the processor to the M-bit compatibility mode; and

executing M-bit OS kernel code to service the exception.

2. The method of claim 1 , wherein after handling the exception, the method comprises returning control to:

an M-bit process; or

an N-bit process.

3. The method of claim 1 , wherein the M-bit OS kernel maps N-bit applications to a section of memory that begins at a memory address that is greater than or equal to 2 M .

4. The method of claim 1 , wherein M is equal to 32, and N is equal to 64.

5. The method of claim 1 , further comprising:

receiving an exception that occurred in the M-bit compatibility mode during the execution of an M-bit user process or the M-bit OS kernel; and

handling the exception that occurred during the execution of the M-bit user process or the M-bit OS kernel by executing M-bit OS kernel code to service the exception.

6. The method of claim 5 , wherein the exception that occurred during the execution of the N-bit process, the exception that occurred during the execution of the M-bit process, or the exception that occurred during the execution of the M-bit OS kernel is one of:

a hardware interrupt;

a software interrupt;

an asynchronous interrupt;

a synchronous interrupt;

a signal;

a trap;

a system call; or

an event that needs to be handled by executing M-bit OS kernel code.

7. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for using an N-bit aware M-bit operating system (OS) kernel to execute an N-bit user process, wherein N is greater than M, and wherein the M-bit OS kernel executes on a processor that can switch between an M-bit compatibility mode and an N-bit mode, the method comprising:

receiving an exception that occurred during the execution of the N-bit user process in the N-bit mode; and

handling the exception using the M-bit OS kernel by:

executing N-bit code to switch the processor to the M-bit compatibility mode; and

executing M-bit OS kernel code to service the exception.

8. The computer-readable storage medium of claim 7 , wherein after handling the exception, the method comprises returning control to:

an M-bit process; or

an N-bit process.

9. The computer-readable storage medium of claim 7 , wherein the M-bit OS kernel maps N-bit applications to a section of memory that begins at a memory address that is greater than or equal to 2 M .

10. The computer-readable storage medium of claim 7 , wherein M is equal to 32, and N is equal to 64.

11. The computer-readable storage medium of claim 7 , wherein the method further comprises:

receiving an exception that occurred in the M-bit compatibility mode during the execution of an M-bit user process or the M-bit OS kernel in the M-bit compatibility mode; and

handling the exception that occurred during the execution of the M-bit user process or the M-bit OS kernel by executing M-bit OS kernel code to service the exception.

12. The computer-readable medium of claim 11 , wherein the exception that occurred during the execution of the N-bit process, the exception that occurred during the execution of the M-bit process, or the exception that occurred during the execution of the M-bit OS kernel is one of:

a hardware interrupt;

a software interrupt;

an asynchronous interrupt;

a synchronous interrupt;

a signal;

a trap;

a system call; or

an event that needs to be handled by executing M-bit OS kernel code.

13. An apparatus for using an N-bit aware M-bit operating system (OS) kernel to execute an N-bit user process, wherein N is greater than M, and wherein the M-bit OS kernel executes on a processor that can switch between an N-bit mode and an M-bit compatibility mode, the apparatus comprising:

a receiving mechanism configured to receive an exception that occurred during the execution of the N-bit user process in the N-bit mode; and

a handling mechanism configured to:

execute N-bit code to switch the processor to the M-bit compatibility mode; and

execute M-bit OS kernel code to service the exception.

14. The apparatus of claim 13 , wherein after handling the exception, the apparatus returns control to:

an M-bit process; or

an N-bit process.

15. The apparatus of claim 13 , wherein the M-bit OS kernel maps N-bit applications to a section of memory that begins at a memory address that is greater than or equal to 2 M .

16. The apparatus of claim 13 , wherein M is equal to 32, and N is equal to 64.

17. The apparatus of claim 13 , wherein

the receiving mechanism is further configured to receive an exception that occurred in the M-bit compatibility mode during the execution of an M-bit user process or the M-bit OS kernel in the M-bit compatibility mode; and

the handling mechanism is further configured to handle the exception that occurred during the execution of the M-bit user process or the M-bit OS kernel by executing M-bit OS kernel code to service the exception.

18. The apparatus of claim 17 , wherein the exception that occurred during the execution of the N-bit process, the exception that occurred during the execution of the M-bit process, or the exception that occurred during the execution of the M-bit OS kernel is one of:

a hardware interrupt;

a software interrupt;

an asynchronous interrupt;

a synchronous interrupt;

a signal;

a trap;

a system call; or

an event that needs to be handled by executing M-bit OS kernel code.

Assignments (2)
CHANGE OF NAME Recorded May 7, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019265/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2006
From: PEAK, CHRISTOPHER G.; SCHEINBERG, MARTIN AKA JOHN D. KULLMANN; SOKOL, JR., JOSEPH
To: APPLE COMPUTER, INC.
Reel/Frame 018156/0818 →