IP Library › Granted Patent US 7,171,546
Granted Patent B2
US 7,171,546 · App. 10/155,284 · Granted Jan 30, 2007

CPU life-extension apparatus and method

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,171,546
App. No.
10/155,284
Granted
Jan 30, 2007
Kind
B2
Abstract

A CPU life-extension apparatus and method makes a processor appear to be an upgraded CPU to substantially all software applications accessed thereby, thereby reducing the need and expense of upgrading a selected processor. A CPU life-extension module translates new instructions, intended for a CPU upgrade, into instructions recognized by the processor. In addition, the CPU life-extension module is programmed to monitor reads from and writes to a processor's flags register to modify the flags to emulate those of an upgraded CPU. The CPU life-extension module is configured to respond to interrupts generated by the processor in order to perform its various tasks.

Claims (65)

1. An apparatus for extending the functionality of a processor to that of an upgraded CPU, having an upgraded native instruction set, including at least one new native instruction, the apparatus comprising:

the processor configured to process data structures comprising executable and operational data, the processor having an old native instruction set corresponding thereto, included as a subset of the upgraded native instruction set, and not including the at least one new native instruction; and

a memory device operably connected to the processor and configured to store the data structures, the data structures further comprising:

a CPU extension module configured to enable the processor to process, rather than reject, the at least one new native instruction, and

the CPU extension module further configured to intervene upon detection of the at least one new native instruction, to selectively provide alternative instructions in terms of the old native instruction set, to render the processor indistinguishable from the upgraded CPU to software processed thereby, and

a stack wherein the processor is configured to push data onto the stack, generate a stack-fault interrupt whenever data is pushed onto the stack, and invoke execution of a stack-fault handler in response to the stack-fault interrupt.

2. The apparatus of claim 1 , wherein:

the data structures further comprise an operating system corresponding to the upgraded native instruction set; and

the CPU extension module is further configured to render the processor indistinguishable, to the operating system, from the upgraded CPU.

3. The apparatus of claim 1 , wherein the CPU extension module further comprises a translation module configured to translate the at least one new native instruction into a translated instruction represented entirely in terms of the old native instruction set.

4. The apparatus of claim 3 , wherein the processor is configured to generate interrupts in response to system faults and the CPU extension module is configured to selectively respond to the interrupts.

5. The apparatus of claim 4 , wherein:

the processor further comprises a flags register containing flags, each configured to reflect a value corresponding to a status;

the CPU extension module is further configured to detect READs from and WRITEs to the flags register; and

the CPU extension module is further configured to modify the READs and WRITEs to reflect a value corresponding to the upgraded CPU.

6. The apparatus of claim 5 , wherein the processor is configured to generate a first interrupt in response to an invalid operation code and to invoke execution of an invalid operation code handler.

7. The apparatus of claim 6 , wherein:

the data structures further comprise a stack; and

the processor is configured to push data onto the stack, and invoke the invalid operation code handler in response to selected stack instructions that have been translated at load time to generate an invalid operation fault.

8. The apparatus of claim 6 , wherein the stack-fault handler is configured to detect a pop operation due to be executed in the future, and set a breakpoint interrupt to occur in response to the pop operation.

9. The apparatus of claim 8 , further comprising a breakpoint handler configured to decrement the stack size, in response to the breakpoint interrupt.

10. The apparatus of claim 6 , wherein the stack-fault handler is further configured to detect pushing of the contents of the flags register onto the stack.

11. The apparatus of claim 10 , wherein the data structures further comprise an interrupt vector table, having address pointers, and wherein the CPU extension module is configured to modify at least one address pointer to point to a memory location containing at least one of the invalid operation code handler, the stack-fault handler, and the breakpoint handler.

12. The apparatus of claim 1 , wherein the processor is configured to generate interrupts in response to system faults and the CPU extension module is configured to selectively respond to the interrupts.

13. The apparatus of claim 1 , wherein:

the processor further comprises a flags register containing flags, each configured to reflect a value corresponding to a status;

the CPU extension module is further configured to detect READs from and WRITEs to the flags register; and

the CPU extension module is further configured to modify the READs and WRITEs to reflect a value corresponding to the upgraded CPU.

14. The apparatus of claim 1 , wherein the processor is configured to generate a first interrupt in response to an invalid operation code and to invoke execution of an invalid operation code handler.

15. The apparatus of claim 14 , wherein the invalid operation code has been selectively inserted into a currently executing instruction stream at load time.

16. The apparatus of claim 1 , wherein:

the processor is configured to execute a stack-fault handler in response to a stack fault; and

the stack-fault handler is configured to detect a pop operation due to be executed in the future and set a breakpoint interrupt to occur in response to the pop operation.

17. The apparatus of claim 1 , wherein the processor is configured to execute a breakpoint handler, in response to a breakpoint interrupt, to decrement the stack size.

18. The apparatus of claim 1 , wherein the processor is configured to execute a stack-fault handler in response to a stack fault; and

the stack-fault handler is configured to detect pushing of the contents of the flags register onto the stack.

19. The apparatus of claim 1 , wherein the data structures further comprise an interrupt vector table, having address pointers, and wherein the CPU extension module is configured to modify at least one address pointer.

20. A method for extending the functionality of a processor to that of an upgraded CPU, having an upgraded native instruction set, including at least one new native instruction, the method comprising:

providing the processor configured to process data structures comprising executable and operational data, the processor having an old native instruction set corresponding thereto, included as a subset of the upgraded native instruction set, and not including the at least one new native instruction;

enabling the processor to process, rather than reject, the at least one new native instruction;

intervening, upon detection of the at least one new native instruction, to selectively provide alternative instructions in terms of the old native instruction set to render the processor indistinguishable from the upgraded CPU to software processed thereby; and

pushing data onto a stack, generating a stack-fault interrupt whenever data is pushed onto the stack, and invoking execution of a stack-fault handler in response to the stack-fault interrupt.

21. The method of claim 20 , further comprising rendering the processor indistinguishable, to an operating systems from the upgraded CPU.

22. The method of claim 20 , further comprising translating the at least one new native instruction into a translated instruction represented entirely in terms of the old native instruction set.

23. The method of claim 22 , wherein the processor is configured to generate interrupts in response to system faults, and wherein intervening further comprises selectively responding to the interrupts.

24. The method of claim 23 , wherein the processor further comprises a flags register containing flags, each configured to reflect a value corresponding to a status; and

further comprising detecting READs from and WRITEs to the flags register and modifying the READs and WRITEs to reflect a value corresponding to the upgraded CPU.

25. The method of claim 24 , wherein the processor is configured to generate a first interrupt in response to an invalid operation code and to invoke execution of an invalid operation code handler.

26. The method of claim 25 , wherein the stack-fault handler is configured to detect a pop operation due to be executed in the fixture, and set a breakpoint interrupt to occur in response to the pop operation.

27. The method of claim 26 , further comprising decrementing the stack size in response to the breakpoint interrupt.

28. The method of claim 25 , wherein the stack-fault handler is further configured to detect pushing of the contents of the flags register onto the stack.

29. The method of claim 28 , further comprising providing an interrupt vector table, having address pointers, and wherein the CPU extension module is configured to modify at least one address pointer to point to a memory location containing at least one of the invalid operation code handler, the stack-fault handler, and the breakpoint handler.

30. The method of claim 20 , wherein the processor is programmed to generate interrupts in response to system faults, and wherein intervening further comprises selectively responding to the interrupts.

31. The method of claim 20 , wherein the processor further comprises a flags register containing flags, each configured to reflect a value corresponding to a status; and

further comprising detecting READs from and WRITEs to the flags register and modifying the READs and WRITEs to reflect a value corresponding to the upgraded CPU.

32. The method of claim 20 , wherein the processor is configured to generate a first interrupt in response to an invalid operation code and to invoke execution of an invalid operation code handler.

33. The method of claim 32 , wherein the invalid operation code has been selectively inserted into a currently executing instruction stream at load time.

34. The method of claim 20 , further comprising detecting a pop operation due to be executed in to future, and setting a breakpoint interrupt to occur in response to the pop operation.

35. The method of claim 34 , further comprising decrementing the stack size in response to the breakpoint interrupt.

36. The method of claim 20 , further comprising detecting pushing of the contents of the flags register onto the stack.

37. The method of claim 20 , further comprising providing an interrupt vector table, having address pointers, and modifying at least one address pointer.

38. An article including a computer readable medium for extending the functionality of a processor to that of an upgraded CPU, having an upgraded native instruction set, including at least one new native instruction, the article comprising:

a CPU extension module configured to enable the processor, having an old native instruction set corresponding thereto, included as a subset of the upgraded native instruction set, and not including the at least one new native instruction, to process, rather than reject, the at least one new native instruction;

the CPU extension module further configured to intervene upon detection of the at least one new native instruction, to selectively provide alternative instructions in terms of the old native instruction set to render the processor indistinguishable from the upgraded CPU to software processed thereby; and

a stack wherein the processor is configured to push data onto the stack, generate a stack-fault interrupt whenever data is pushed onto the stack, and invoke execution of a stack-fault handler in response to the stack-fault interrupt.

Assignments (2)
TO CORRECT A TYPOGRAPHICAL ERROR (REMOVING A COMMA AFTER THE NAME TECH.) IN THE COVER SHEET PREVIOUSLY RECORDED AT R/F 026399/0708. Recorded Aug 10, 2011
From: ADAMS, PHILLIP M.
To: ITE TECH. INC.
Reel/Frame 026727/0798 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2011
From: ADAMS, PHILLIP M.
To: ITE TECH., INC.
Reel/Frame 026399/0708 →
Continuity (1)
Related Publication 20030221035A1 · Nov 27, 2003