EP1709533A2 - Method and related device for use in decoding executable code - Google Patents

Method and related device for use in decoding executable code

Info

Publication number
EP1709533A2
EP1709533A2 EP05702640A EP05702640A EP1709533A2 EP 1709533 A2 EP1709533 A2 EP 1709533A2 EP 05702640 A EP05702640 A EP 05702640A EP 05702640 A EP05702640 A EP 05702640A EP 1709533 A2 EP1709533 A2 EP 1709533A2
Authority
EP
European Patent Office
Prior art keywords
code
bit
sub
portions
shuffling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP05702640A
Other languages
German (de)
French (fr)
Other versions
EP1709533B1 (en
Inventor
Colin I. c/o Philips IP & Standards KING
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of EP1709533A2 publication Critical patent/EP1709533A2/en
Application granted granted Critical
Publication of EP1709533B1 publication Critical patent/EP1709533B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory

Definitions

  • the present invention relates to a method and related device for use in decoding executable code in processors such as VLIW processors and in particular in a run-time operating system for use, in particular, for the loading and relocation of processor executables in memory.
  • TriMedia executables are examples of such codes as discussed above and subsequent to the patching of the executable, the text segment containing the TriMedia executable code has to be bit-shuffled in order to allow the processor to decode the executable in a cache-efficient manner, specifically at run-time.
  • bit-shuffling comprises a memory- intensive, and computationally expensive operation and is also found to be proportional to the size of the program being loaded.
  • bit-shuffling forms a major component of the load-time experienced.
  • run-time operating systems such as where it is required that executables be loaded frequently, or where large statically linked programs are to be loaded, such bit-shuffling operations are considered to represent considerable restraints on performance.
  • the present invention seeks to provide for a method and related device for use in decoding executable code in a run-time operating system and which exhibits advantages over known such methods and devices.
  • a method for use in decoding executable code in a processing 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.
  • the invention can advantageously be applied to processing stages on pre-shuffled binaries, for example linking pre-shuffled binary object code during a later link time phase.
  • the processing system comprises a run time operating system and involving bit shuffling at run time and the identification of sub-portion that can be bit shuffled prior to run time.
  • the pre-shuffling of the said a portion of the code can lead to a reduction in the run-time shuffling delays within the order of 20-25% and this advantageously serves to increase the executable load and relocate time. Improved run-time performance can therefore be achieved and it will be appreciated that the invention proves particularly advantageous when handling TriMedia programs and executables.
  • the method includes the step of, at link time, generating a relocation patch-up table for the loading and relocation of the code.
  • the relocation patch-up table is examined at the end of the aforesaid linking so as to determine which addresses in the code are patched.
  • the method includes the step of generating a record of the sub-portions to be patched and shuffled at run-time in the form of a bitmap.
  • the invention may also include the step of reading code elements within a program loader for the execution of the program. Then, the program loader can be arranged to read the relocation patch- up table and the executable code and write the result back within the executable code.
  • 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.
  • the processor comprises a run-time operating system.
  • the application includes means for generating a relocation patch-up table for the loading and relocation of the code at link time.
  • the invention can include means for bit-shuffling the identified sub-portions at link time.
  • Fig. 1 comprises a schematic block diagram illustrating the generation of the program executable image in accordance with an embodiment of the present invention
  • Fig. 2 is a schematic block diagram illustrating the loading and relocating of the program executable image of Fig. 1.
  • the bit-shuffling operation is advantageously manipulated such that the shuffling operation is conducted against sub-portions of the code, which sub-portions advantageously comprise cache-sized blocks.
  • the code can be broken down into instruction cache-sized blocks in the form of 64 byte blocks.
  • pre-shuffling of non-patched 64 byte blocks advantageously serves to reduce the run-time shuffling overhead commonly experienced by 20-25% leading to an advantageous increase in the executable load and relocate time.
  • the invention advantageously provides for the bit-shuffling prior to run-time and as the program is being linked. At link time, therefore, the linker is advantageously arranged to generate a relocation patch-up table for the loading and relocation of the executable at run-time.
  • the linker is arranged to examine the relocation patch-up table to determine which addresses in the text segment are then patched. Through identification of such patched segments, it is readily identified which of the 64 byte blocks need to be patched and shuffled at runtime. The 64 byte blocks that are not affected by patching are then pre- shuffled at link time and a record of which blocks are to be patched and shuffled at run-time is generated by the linker in the form of a bitmap which is advantageously added to the executable image. Such a bitmap can advantageously be arranged with each single bit representing a 64 byte block in the executable text segment.
  • Fig. 1 there is illustrated, in schematic block form, an arrangement according to the present invention for producing a program executable image having pre-shuffled portions of code.
  • a program linker 12 arranged to read object files 14A, 14B so as to link the objects together and thereby form the required program executable image.
  • a table 16 of the addresses of the text segment to be patched is formed within the linker 12 and a 64 byte block of the text segment not requiring patching at run-time is then pre-shuffled by a Text Segment Pre-Shuffler 20 through reference to the table 16 of text segment patch addresses 18.
  • the executable 22 can then be read out in the directions of arrows B and contains a executable header 24 for example an a.out or ELF header, a shuffle bitmap 26 indicating which 64 byte blocks of the text segment that remain need shuffling at run-time, a relocation patch-up table 28 arranged to patch the text and data segments at run-time, text and data segments 30, 32 and a BSS segment 34.
  • a executable header 24 for example an a.out or ELF header
  • a shuffle bitmap 26 indicating which 64 byte blocks of the text segment that remain need shuffling at run-time
  • a relocation patch-up table 28 arranged to patch the text and data segments at run-time
  • text and data segments 30, 32 and a BSS segment 34 arranged to patch the text and data segments 30, 32 and a BSS segment 34.
  • a program loader 36 is arranged for reading the relocation patch-up table and shuffle bit-map and executable text code as indicated by way of arrows B and C, from the executable image 22 and serves to relocate the image and write this back as relocated text segment 30 as indicated by means of arrow D.
  • the program loader 36 then reads the shuffle bitmap bit by bit as indicated by arrow A and this determines if each 64 byte block of the text segment needs to be shuffled by a text segment shuffler 38 found within the program loader 36.
  • the text segment shuffler 38 can read the 64 byte block from the text segment as indicated by arrow C and then shuffle it, and write it back, as indicated by arrow D.
  • the advantages offered by the present invention are applicable for use with any executable code required within a run-time operating system such as TriMedia executable code that has to be loaded and relocated before execution.
  • the invention applies not only to program executables but also to runnable libraries, such as TriMedia dynamic link libraries (DLL's).
  • the loading of programs and libraries is generally undertaken either by loader library, for example in a pSOS real time operating system, or by a binary loader function such as in monolithic kernels in UNIK- like operating systems such as Linux, or real-time operating systems.
  • loader library for example in a pSOS real time operating system
  • binary loader function such as in monolithic kernels in UNIK- like operating systems such as Linux, or real-time operating systems.
  • a particularly advantageous use of the present invention is with an operating system that has to load and relocate TriMedia executable code.
  • the invention is not restricted to the details of the foregoing embodiment.
  • the concept is not restricted to use with a run-time operation system but is equally applicable to, for example, processing stages on pre-shuffled binaries such as listing pre-shuffled binary object code during a later link time phase.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)
  • Circuits Of Receivers In General (AREA)
  • Error Detection And Correction (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

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.

Description

DESCRIPTION
METHOD AND RELATED DEVICE FOR USE IN DECODING EXECUTABLE CODE
The present invention relates to a method and related device for use in decoding executable code in processors such as VLIW processors and in particular in a run-time operating system for use, in particular, for the loading and relocation of processor executables in memory.
With the increased adoption of multimedia processing powerful processors have been developed capable of supporting large and complex multimedia applications. Before an executable relating to such an application can be run, it is necessary for the executable image to be loaded into memory and subsequently relocated. Such relocation is a process of binary-patching such that references to addresses in the executable are matched to the actual loaded address space. References to such addresses can commonly comprise start addresses of decision trees in the executable text segment, or data addresses in the data, datal or bss segments. The TriMedia processor available from Philips is an example of a VLIW processor. TriMedia executables are examples of such codes as discussed above and subsequent to the patching of the executable, the text segment containing the TriMedia executable code has to be bit-shuffled in order to allow the processor to decode the executable in a cache-efficient manner, specifically at run-time. However, such bit-shuffling comprises a memory- intensive, and computationally expensive operation and is also found to be proportional to the size of the program being loaded. When loading an executable from memory, such as from a cached file system for example, it is found that the aforementioned bit-shuffling operation forms a major component of the load-time experienced. In run-time operating systems, such as where it is required that executables be loaded frequently, or where large statically linked programs are to be loaded, such bit-shuffling operations are considered to represent considerable restraints on performance.
The present invention seeks to provide for a method and related device for use in decoding executable code in a run-time operating system and which exhibits advantages over known such methods and devices. According to a first aspect of the present invention there is provided a method for use in decoding executable code in a processing 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. The invention can advantageously be applied to processing stages on pre-shuffled binaries, for example linking pre-shuffled binary object code during a later link time phase. In one particular arrangement the processing system comprises a run time operating system and involving bit shuffling at run time and the identification of sub-portion that can be bit shuffled prior to run time. Advantageously the pre-shuffling of the said a portion of the code can lead to a reduction in the run-time shuffling delays within the order of 20-25% and this advantageously serves to increase the executable load and relocate time. Improved run-time performance can therefore be achieved and it will be appreciated that the invention proves particularly advantageous when handling TriMedia programs and executables. Advantageously, the method includes the step of, at link time, generating a relocation patch-up table for the loading and relocation of the code. Further, the relocation patch-up table is examined at the end of the aforesaid linking so as to determine which addresses in the code are patched. Preferably, the method includes the step of generating a record of the sub-portions to be patched and shuffled at run-time in the form of a bitmap. The invention may also include the step of reading code elements within a program loader for the execution of the program. Then, the program loader can be arranged to read the relocation patch- up table and the executable code and write the result back within the executable code. According to another aspect of the present invention there is provided 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. Advantageously the processor comprises a run-time operating system. Preferably the application includes means for generating a relocation patch-up table for the loading and relocation of the code at link time. Further, the invention can include means for bit-shuffling the identified sub-portions at link time. Preferably means for generating a record of the sub-portions to be patched and shuffled at run-time in the form of a bitmap are provided. In one embodiment a program loader is included and arranged to read the relocation patch-up table and the executable code and to write the result back within the executable code. The invention also provides for a computer program element and product for the control of such decoding and for the provision of such method steps as outlined above. The invention is described further hereinafter, by way of example only, with reference to the accompanying drawings in which: Fig. 1 comprises a schematic block diagram illustrating the generation of the program executable image in accordance with an embodiment of the present invention; Fig. 2 is a schematic block diagram illustrating the loading and relocating of the program executable image of Fig. 1.
As will be appreciated from the above-mentioned definition of the present invention, the bit-shuffling operation is advantageously manipulated such that the shuffling operation is conducted against sub-portions of the code, which sub-portions advantageously comprise cache-sized blocks. For example, for use in TriMedia processing, in particular with the TriMedia 1300, the code can be broken down into instruction cache-sized blocks in the form of 64 byte blocks. Through adoption of the present invention, it is found that in the order of 75-80% of the cache-sized blocks in an executable image require patching and bit-shuffling at run-time. As will be appreciated, this leaves 20-25% that are not patched and so, as determined by the present invention, can be bit- shuffled prior to run-time and, in particular, when the program is being linked to form the executable image. Thus, as noted, such pre-shuffling of non-patched 64 byte blocks advantageously serves to reduce the run-time shuffling overhead commonly experienced by 20-25% leading to an advantageous increase in the executable load and relocate time. As noted, the invention advantageously provides for the bit-shuffling prior to run-time and as the program is being linked. At link time, therefore, the linker is advantageously arranged to generate a relocation patch-up table for the loading and relocation of the executable at run-time. At the end of such linking, the linker is arranged to examine the relocation patch-up table to determine which addresses in the text segment are then patched. Through identification of such patched segments, it is readily identified which of the 64 byte blocks need to be patched and shuffled at runtime. The 64 byte blocks that are not affected by patching are then pre- shuffled at link time and a record of which blocks are to be patched and shuffled at run-time is generated by the linker in the form of a bitmap which is advantageously added to the executable image. Such a bitmap can advantageously be arranged with each single bit representing a 64 byte block in the executable text segment. Each bit in the bitmap then acts as a flag readily identifying for the loader whether or not to bit-shuffle the particular 64 byte block associated with it. Thus, the Nth bit in the bitmap represents the Nth 64 byte block in the executable text segment. For an N-byte executable text segment therefore, (N+63)/64 bits in a bit map are required. With 8 bit bytes, this adds just (N+63)/512 bytes to the overall executable. Turning now to Fig. 1 there is illustrated, in schematic block form, an arrangement according to the present invention for producing a program executable image having pre-shuffled portions of code. The arrangement 10 illustrated in Fig. 1 includes a program linker 12 arranged to read object files 14A, 14B so as to link the objects together and thereby form the required program executable image. In accordance with this illustrated embodiment of the present invention, and during the linking process, a table 16 of the addresses of the text segment to be patched is formed within the linker 12 and a 64 byte block of the text segment not requiring patching at run-time is then pre-shuffled by a Text Segment Pre-Shuffler 20 through reference to the table 16 of text segment patch addresses 18. Upon completion of this process, the executable 22 can then be read out in the directions of arrows B and contains a executable header 24 for example an a.out or ELF header, a shuffle bitmap 26 indicating which 64 byte blocks of the text segment that remain need shuffling at run-time, a relocation patch-up table 28 arranged to patch the text and data segments at run-time, text and data segments 30, 32 and a BSS segment 34. Turning now to Fig. 2, it will be appreciated how the executable 22 illustrated in Fig. 1 is advantageously loaded as required. The executable 22 includes the same segments as noted above, in particular the shuffle bit-map 26, the relocation patch-up table 28 and the text segment 30 are identified for ease of reference. The loading and relocating of the TriMedia executable text segment proceeds as follows. A program loader 36 is arranged for reading the relocation patch-up table and shuffle bit-map and executable text code as indicated by way of arrows B and C, from the executable image 22 and serves to relocate the image and write this back as relocated text segment 30 as indicated by means of arrow D. The program loader 36 then reads the shuffle bitmap bit by bit as indicated by arrow A and this determines if each 64 byte block of the text segment needs to be shuffled by a text segment shuffler 38 found within the program loader 36. If it is identified that the segment being considered requires shuffling, the text segment shuffler 38 can read the 64 byte block from the text segment as indicated by arrow C and then shuffle it, and write it back, as indicated by arrow D. As will be appreciated, the advantages offered by the present invention are applicable for use with any executable code required within a run-time operating system such as TriMedia executable code that has to be loaded and relocated before execution. The invention applies not only to program executables but also to runnable libraries, such as TriMedia dynamic link libraries (DLL's). As will be appreciated, the loading of programs and libraries is generally undertaken either by loader library, for example in a pSOS real time operating system, or by a binary loader function such as in monolithic kernels in UNIK- like operating systems such as Linux, or real-time operating systems. It will therefore be appreciated that a particularly advantageous use of the present invention is with an operating system that has to load and relocate TriMedia executable code. The invention is not restricted to the details of the foregoing embodiment. In particular the concept is not restricted to use with a run-time operation system but is equally applicable to, for example, processing stages on pre-shuffled binaries such as listing pre-shuffled binary object code during a later link time phase.

Claims

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, 3 or 4, wherein the said identified sub- portions are bit-shuffled at link time.
6. A method as claimed in any one or more of Claims 2 to 5, 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 any one or more of Claims 2 to 7, 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 any one or more of Claims 2 to 8, 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 any one or more of Claims 2 to 10, wherein the executable code comprises a TriMedia program having a text segment containing TriMedia executable code.
12. A method as claimed in any one or more of Claims 2 to 11 , 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 any one or more of Claims 2 to 13 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 or 18, and including means for bit- shuffling the identified sub-portions at link time.
20. Apparatus as claimed in Claim 17, 18 or 19, 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, 18, 19 or 20, 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 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, 27 or 28.
30. A computer readable medium including a computer program element as claimed in Claim 26, 27 or 28.
EP05702640A 2004-01-13 2005-01-11 Method and device for use in decoding executable code Active EP1709533B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0400660.7A GB0400660D0 (en) 2004-01-13 2004-01-13 Method and related device for use in decoding executable code
PCT/IB2005/050122 WO2005069124A2 (en) 2004-01-13 2005-01-11 Method and related device for use in decoding executable code

Publications (2)

Publication Number Publication Date
EP1709533A2 true EP1709533A2 (en) 2006-10-11
EP1709533B1 EP1709533B1 (en) 2008-07-16

Family

ID=31503817

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05702640A Active EP1709533B1 (en) 2004-01-13 2005-01-11 Method and device for use in decoding executable code

Country Status (8)

Country Link
US (1) US7334111B2 (en)
EP (1) EP1709533B1 (en)
JP (1) JP4751835B2 (en)
CN (1) CN100533379C (en)
AT (1) ATE401602T1 (en)
DE (1) DE602005008196D1 (en)
GB (1) GB0400660D0 (en)
WO (1) WO2005069124A2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0475137A (en) * 1990-07-18 1992-03-10 Hitachi Ltd Data processor
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US6131152A (en) * 1996-05-15 2000-10-10 Philips Electronics North America Corporation Planar cache layout and instruction stream therefor
US5862398A (en) * 1996-05-15 1999-01-19 Philips Electronics North America Corporation Compiler generating swizzled instructions usable in a simplified cache layout
CN1145099C (en) * 1996-05-15 2004-04-07 特莱麦迪雅技术公司 Processor with instruction cache
US6745319B1 (en) * 2000-02-18 2004-06-01 Texas Instruments Incorporated Microprocessor with instructions for shuffling and dealing data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2005069124A3 *

Also Published As

Publication number Publication date
EP1709533B1 (en) 2008-07-16
ATE401602T1 (en) 2008-08-15
US20070162725A1 (en) 2007-07-12
CN1910551A (en) 2007-02-07
WO2005069124A2 (en) 2005-07-28
US7334111B2 (en) 2008-02-19
CN100533379C (en) 2009-08-26
WO2005069124A3 (en) 2006-03-16
JP2007520811A (en) 2007-07-26
GB0400660D0 (en) 2004-02-11
JP4751835B2 (en) 2011-08-17
DE602005008196D1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
US6715142B1 (en) Execution program generation method, execution program generation apparatus, execution program execution method, and computer-readable storage medium
US8424093B2 (en) System and method for updating antivirus cache
US7934209B2 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
JP4601665B2 (en) System and method for conditionally reducing executable modules
CN107291485B (en) Dynamic link library reinforcing method, operation method, reinforcing device and safety system
US9003398B2 (en) Stochastic method for program security using deferred linking
US20060200481A1 (en) Method and system for data optimization and protection in DSP firmware
JP2007535241A5 (en)
JPH1185526A (en) Program loading method
US7900197B2 (en) Program initiation methods and embedded systems utilizing the same
CN116522368A (en) Firmware decryption analysis method for Internet of things equipment, electronic equipment and medium
CN112632536B (en) Memory loading method based on PE file transformation
US20060288019A1 (en) Flexible data file format
CN107209815B (en) Method for code obfuscation using return-oriented programming
US7334111B2 (en) Method and related device for use in decoding executable code
US7577831B2 (en) Relocating of system management interface code within an information handling system
JP6773980B2 (en) Information processing equipment, information processing methods, and information processing programs
CN106407751B (en) The method and apparatus that executable file is protected
JP5952218B2 (en) Information processing apparatus and information processing method
JP3033562B2 (en) Method for generating relocatable execution program and execution program generation device
JP2007520811A5 (en)
US10152255B2 (en) Accelerated loading of guest virtual machine from live snapshot
US9141419B1 (en) Capturing and restoring an appliance image
US20230325477A1 (en) Program protection apparatus, program protection method, and program protection program
US20050289288A1 (en) Compression and decompression of expansion read only memories

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR LV MK YU

17P Request for examination filed

Effective date: 20060918

RBV Designated contracting states (corrected)

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20070320

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NXP B.V.

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 9/445 20060101AFI20071026BHEP

Ipc: G06F 9/45 20060101ALI20071026BHEP

RTI1 Title (correction)

Free format text: METHOD AND DEVICE FOR USE IN DECODING EXECUTABLE CODE

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REF Corresponds to:

Ref document number: 602005008196

Country of ref document: DE

Date of ref document: 20080828

Kind code of ref document: P

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081116

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081016

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081216

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081027

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

Free format text: REGISTERED BETWEEN 20090507 AND 20090513

26N No opposition filed

Effective date: 20090417

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090131

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090131

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090131

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090111

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081016

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081017

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

Free format text: REGISTERED BETWEEN 20101007 AND 20101013

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090111

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090117

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080716

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

Free format text: REGISTERED BETWEEN 20111013 AND 20111019

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 602005008196

Country of ref document: DE

Representative=s name: MUELLER - HOFFMANN & PARTNER PATENTANWAELTE, DE

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 602005008196

Country of ref document: DE

Representative=s name: MUELLER HOFFMANN & PARTNER PATENTANWAELTE MBB, DE

Effective date: 20120326

Ref country code: DE

Ref legal event code: R081

Ref document number: 602005008196

Country of ref document: DE

Owner name: NYTELL SOFTWARE LLC, WILMINGTON, US

Free format text: FORMER OWNER: NXP B.V., EINDHOVEN, NL

Effective date: 20120326

Ref country code: DE

Ref legal event code: R081

Ref document number: 602005008196

Country of ref document: DE

Owner name: NYTELL SOFTWARE LLC, US

Free format text: FORMER OWNER: NXP B.V., EINDHOVEN, NL

Effective date: 20120326

Ref country code: DE

Ref legal event code: R082

Ref document number: 602005008196

Country of ref document: DE

Representative=s name: MUELLER - HOFFMANN & PARTNER PATENTANWAELTE, DE

Effective date: 20120326

REG Reference to a national code

Ref country code: FR

Ref legal event code: TP

Owner name: NYTELL SOFTWARE LLC, US

Effective date: 20120521

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

Free format text: REGISTERED BETWEEN 20131121 AND 20131127

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 12

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 13

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 14

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230522

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20231218

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20231214

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20231215

Year of fee payment: 20