IP Library Granted Patent US 7,334,111
Granted Patent B2
US 7,334,111 · App. 10/585,801 · Granted Feb 19, 2008

Method and related device for use in decoding executable code

Assignee: NXP B.V.
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,334,111
App. No.
10/585,801
Granted
Feb 19, 2008
Kind
B2
Abstract

The invention provides for a method and related device and control program for use in decoding executable code in a processing system, for example run-time operating system, including bit-shuffling code at run-time, and including the steps of dividing the code into a plurality of sub-portions, identifying sub-portions of the code that can be bit-shuffled prior to the said run-time and bit-shuffling the said identified sub-portions prior to run-time so as to reduce the bit-shuffling required at run-time.

Claims (38)

1. A method for use in decoding executable code in a processor system including bit-shuffling code, and including the steps of:

dividing the code into a plurality of sub-portions;

identifying sub-portions of the code that can be bit-shuffled prior to processing; and

bit-shuffling the said identified sub-portions prior to processing so as to reduce the processing bit-shuffling required.

2. A method as claimed in claim 1 wherein the said system comprises a run-time operating system and the said identified sub-portions are bit-shuffled prior to run-time.

3. A method as claimed in claim 2 , and including the step of, at link time, generating a relocation patch-up table for the loading and relocation of the code.

4. A method as claimed in claim 3 , and including the step of examining the relocation patch-up table at the end of the aforesaid linking so as, to determine which addresses in the code are patched.

5. A method as claimed in claim 2 , wherein the said identified subportions are bit-shuffled at link time.

6. A method as claimed in claim 2 , and including the step of generating a record of the sub-portions to be patched and shuffled at run-time in the form of a bitmap.

7. A method as claimed in claim 6 , and including the step of adding the said bitmap to the executable code.

8. A method as claimed in claim 2 , and including the steps of identifying sub-portions of the code that do not require patching at run-time in order to identify the sub-portions for pre-shuffling.

9. A method as claimed in claim 2 , and including the step of reading code elements within a program loader for the execution of the program.

10. A method as claimed in claim 9 , wherein the program loader is arranged to read the relocation patch-up table and the executable code and writes the result back within the executable code.

11. A method as claimed in claim 2 , wherein the executable code comprises a TriMedia program having a text segment containing TriMedia executable code.

12. A method as claimed in claim 2 , wherein each sub-portion of code comprises a cache-sized block.

13. A method as claimed in claim 12 , wherein each cache-sized block comprises a 64 byte block.

14. A method as claimed in claim 2 and for use with any form of TriMedia executable image requiring loading and relocation before execution.

15. A method as claimed in claim 1 , and including the linking of pre-shuffled code during a later link time phase.

16. Decoding apparatus for decoding executable code in a processor and including means for bit-shuffling code, the apparatus further comprising:

means for dividing the code into a plurality of sub-portions;

means for identifying sub-portions of the code that can be bit-shuffled prior to processing; and

means for bit-shuffling the said identified sub-portions prior to processing so as to reduce the processing bit-shuffling required.

17. Apparatus as claimed in claim 16 wherein the said system comprises a run-time operating system and the sub portions identified are those that can be bit-shuffled prior to run time.

18. Apparatus as claimed in claim 17 , and including means for generating a relocation patch-up table for the loading and relocation of the code at link time.

19. Apparatus as claimed in claim 17 , and including means for bitshuffling the identified sub-portions at link time.

20. Apparatus as claimed in claim 17 , and including means for generating a record of the sub-portions to be patched and shuffled at run-time in the form of a bitmap.

21. Apparatus as claimed in claim 17 , and including a program loader into which code elements are read for program execution.

22. Apparatus as claimed in claim 21 , wherein the program loader is arranged to read the relocation patch-up table and the executable code and to write the result back within the executable code.

23. Apparatus as claimed in claim 17 , wherein each sub-portion of code comprises a cache-sized block.

24. Apparatus as claimed in claim 17 , wherein each cache-sized block comprises a 64 byte block.

25. Apparatus as claimed in claim 16 and arranged for linking pre-shuffled code during a later link time phase.

26. A computer readable medium including a computer program element comprising computer program code means to make a computer execute procedure to decode executable code in a processor including bit-shuffling code, and to:

divide the code into a plurality of sub-portions;

identify sub-portions of the code that can be bit-shuffled prior to processing; and

bit-shuffle the said identified sub-portions prior to processing so as to reduce the processing bit-shuffling required.

27. A complete program element as claimed in claim 26 and arranged to control decoding in a run-time operating system.

28. A computer program element as claimed in claim 26 and arranged to control the linking of pre-shuffled code during a later link time phase.

29. A computer program product comprising a computer readable medium and including a program element as claimed in claim 26 .

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Sep 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050315/0785 →
RELEASE OF SECURITY INTEREST Recorded Dec 15, 2011
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 027389/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2011
From: NXP B.V.
To: NYTELL SOFTWARE LLC
Reel/Frame 026615/0576 →
CHANGE OF NAME Recorded May 5, 2011
From: PHILIPS SEMICONDUCTORS INTERNATIONAL B.V.
To: NXP B.V.
Reel/Frame 026233/0884 →
SECURITY AGREEMENT Recorded Jun 17, 2009
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 022835/0306 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2007
From: KONINKLIJKE PHILIPS ELECTRONICS N.V.
To: NXP B.V.
Reel/Frame 019719/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2006
From: KING, COLIN, I.
To: KONINKLIJKE PHILIPS ELECTRONICS N.V.
Reel/Frame 018119/0946 →
Priority Claims (1)
GB 0400660.7 · Jan 13, 2004 · national
Continuity (1)
Related Publication 20070162725A1 · Jul 12, 2007