IP Library Granted Patent US 7,331,041
Granted Patent B1
US 7,331,041 · App. 11/077,623 · Granted Feb 12, 2008

Method of changing modes of code generation

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,331,041
App. No.
11/077,623
Granted
Feb 12, 2008
Kind
B1
Abstract

A method for determining a process to use for converting instructions in a target instruction set to instructions in a host instructions set including the steps of executing code morphing software including an interpreter and a translator to generate host instructions from target instructions, detecting at intervals whether the interpreter or the translator is executing, increasing a count if the interpreter is executing and decreasing the count if the translator is executing, and changing from interpreting to translating a sequence of target instructions when the count reaches a selected maximum.

Claims (31)

1. A method of transferring between types of conversion processes in a computer which converts instructions from a target instruction set to a host instruction set, comprising:

executing code morphing software including an interpreter and a translator to generate host instructions from target instructions;

detecting at intervals whether said interpreter or said translator is operating to generate said host instructions, wherein at least one interval is determined by the execution of a set number of instructions;

testing for a first amount of time spent by said interpreter while interpreting said target instructions;

testing for a second amount of time spent by said translator while translating said target instructions; and

changing from interpreting to translating when said first amount of time in comparison with said second amount of time reaches a selected maximum.

2. The method of claim 1 , wherein said testing for a first amount of time further comprises:

testing at specific intervals of time to determine whether said interpreter is operating; and

increasing a count whenever said interpreter is tested to be operating.

3. The method of claim 2 , wherein said testing for a second amount of time further comprises:

testing at said specific intervals of time to determine whether said translator is operating; and

decreasing said count whenever said translator is tested to be operating.

4. The method of claim 1 , wherein said changing from interpreting to translating further comprises:

weighting said translating by increasing said second amount of time.

5. The method of claim 1 , wherein said changing from interpreting to translating further comprises:

weighting said interpreting by increasing said first amount of time.

6. The method of claim 1 , wherein said changing from interpreting to translating further comprises:

increasing a count if said interpreter is operating and decreasing said count if said translator is operating; and

changing from interpreting to said translating a sequence of target instructions in response to said count reaching said selected maximum.

7. The method of claim 1 , further comprising:

incrementing a count for each instance in which a sequence of instructions is interpreted; and

changing from interpreting to translating a sequence of target instructions when said count reaches a selected maximum.

8. A method of transferring between types of conversion processes in a computer which converts instructions from a target instruction set to a host instruction set, comprising:

executing code morphing software including an interpreter and a translator to generate host instructions from target instructions;

incrementing a count for each instance in which a first sequence of instructions is interpreted;

changing from interpreting to translating said first sequence of target instructions when said count reaches a selected maximum;

simultaneously detecting at intervals whether the interpreter or translator is operating for all instruction sequences, wherein at least one interval is determined by the execution of a set number of instructions;

increasing a count if said interpreter is operating and decreasing said count if said translator is operating; and

changing from said interpreting to translating subsequent sequences of target instructions in response to reaching said selected maximum.

9. The method of claim 8 , wherein said interval comprises a selected number of executed target instructions.

10. The method of claim 9 , wherein said interval comprises a selected time period.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME PREVIOUSLY RECORDED AT REEL: 036711 FRAME: 0160. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 6, 2015
From: INTELLECTUAL VENTURES FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036797/0356 →
MERGER Recorded Sep 29, 2015
From: INTELLECTUAL VENTURE FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036711/0160 →