JP2007535241A - 条件付で実行可能モジュールを縮小するシステムおよび方法 - Google Patents

条件付で実行可能モジュールを縮小するシステムおよび方法 Download PDF

Info

Publication number
JP2007535241A
JP2007535241A JP2007509506A JP2007509506A JP2007535241A JP 2007535241 A JP2007535241 A JP 2007535241A JP 2007509506 A JP2007509506 A JP 2007509506A JP 2007509506 A JP2007509506 A JP 2007509506A JP 2007535241 A JP2007535241 A JP 2007535241A
Authority
JP
Japan
Prior art keywords
pruned
image file
image
section header
section
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
JP2007509506A
Other languages
English (en)
Other versions
JP4601665B2 (ja
JP2007535241A5 (ja
Inventor
マクグラス、グレッグ
ジマー、ヴィンセント
ロスマン、マイケル
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2007535241A publication Critical patent/JP2007535241A/ja
Publication of JP2007535241A5 publication Critical patent/JP2007535241A5/ja
Application granted granted Critical
Publication of JP4601665B2 publication Critical patent/JP4601665B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

【課題】本発明の実施例は、実行可能な画像を縮小または最適化することに関するシステムおよび方法が結果として記憶空間の節約をもたらすことである。
【解決手段】少なくとも1つの実施例において、本発明は、実行可能な画像をターゲットプラットフォームのフラッシュメモリに格納する前に、該画像から不要なフィールドまたは情報を削除する。
ターゲットプラットフォームには関係ない情報を削除することにより、実行可能な画像がフラッシュメモリ上でとるスペースを少なくできる。画像はロード時に最適化されたヘッダ情報に基づき翻訳される。一実施例では、画像がさらに既知の方法で圧縮されることにより、さらなるスペースの節約をもたらす。他の実施例も記載され、クレームされる。
【選択図】図1

Description

本発明の実施例は、概ねコード画像ファイルのフォーマット化に関し、詳しくは、画像をフラッシュメモリ内に格納する前に、共通のヘッダにおける不要なフィールドを削除することにより、フラッシュメモリに格納されるコード画像ファイルの長さを削減する(縮小する)ことに関する。
バイナリコード画像を記憶装置に格納する目的でフォーマットしかつ圧縮する様々なマシンが存在する。この場合、バイナリコード画像は、一般的に、実行ファイル画像であるか、または、パソコンやファームウエア、あるいは、タスクを実行するためにコンピュータプログラムが用いられる処理システムなどにおいて実行できる画像である。プロセッサで実行される画像は、標準形式でなければならない。それによって、ターゲットプロセッサファームウエアは、画像がフラッシュメモリから実行できるか、メモリにロードできるか、または、他のやり方で実行できることを認識する。実行ファイル画像に使用される既存のパソコンシステムにおける共通基準は、ポータブルで実行可能な共通のオブジェクトファイルフォーマット(PE/COFF)スペックであり、Microsoft Portable Executable and Common Object File Format Specification、 Revision 6.0、という1999年2月にマイクロソフト社から出されたものである。これは、ワールドワイド・ウェブhttp://www.microsoft.com/whdc/hwdev/hardware/PECOFF.mspxで確認することもできる。このフォーマットがポータブルなのは、フォーマット化されたファイルが異なるターゲットで実行できるように意図されて作られているからである。例えば、PE/COFF画像は、ウィンドウズXP環境とWIN/CE環境とのどちらでも実行可能であろう。ターゲットプロセッサは、PE/COFFフォーマットを認識しさえすれば、PE/COFFフォーマット化された画像を実行することができる。
異なるプラットフォームで実行するためには、PE/COFF画像は、使用する可能性のあるターゲットプラットフォームおよびオペレーティングシステムに関する特定の情報を含んでいなくてはならない。そして、PE/COFF画像内の情報すべてが、使用する可能性のあるターゲットプラットフォームに関連するとも限らない。すべてのフィールドがすべてのプラットフォームに適用できるわけではない。
例えば、PE/COFF画像は、デバイスドライバであるかもしれない。デバイスドライバは、フラッシュメモリの中にある場合もある。記憶装置の有効スペースを節約するためには、フラッシュメモリ内のデバイスドライバのサイズは縮小されることが望ましい。既存のシステムでのスペース節約方法は、画像内容の圧縮に限定されている場合が多い。あるケースでは、ヘッダを含む画像ファイル全体が圧縮される。
デバイスドライバ画像は、通常、多数のコンピューティングプラットフォームで利用可能であるように開発される。実行可能ファイルは、ベンダの構成および開発/維持コストを削減する。その画像のヘッダは、おそらくポインタまたは仮想アドレスがあれば、別々のモジュール、または、ルーチンが異なるプラットフォームでも利用できることを示すことができるだろう。実行可能ファイルの中には、フラッシュメモリの実アドレスから実行されなければならないものもある。例えば、これらの実行ファイルは、XIP(eXecute In Place)と称し、移動させることはできない。他に、メモリに移動させることができる実行ファイルもある。この情報は、PE/COFF画像自体に含まれていてよい。
既存のシステムでは、PE/COFF画像は、多数のプラットフォームに送られ、ターゲットプラットフォームのフラッシュメモリ内にロードされる。画像のタイプがXIPの場合、その画像はフラッシュメモリから実行されるべきなので、フラッシュメモリ上では圧縮できない。したがって、フラッシュメモリにある情報は、直接実行可能な命令とならなければならない。フラッシュメモリにロードされる前に圧縮される画像もある。関連技術の中には、フラッシュメモリに書き込む前に実行可能な画像を圧縮する様々な既知の方法がある。
本発明の実施例に従う、PE/COFF画像を表わし、かつ、画像ヘッダを縮小する典型的な方法を示すブロック図である。
本発明の実施例に従う、部分的に縮小または最適化されたPE/COFFセクションヘッダを表わすブロック図である。
図2のセクションヘッダはそれらのデフォルト形式かまたは最適化されているかを示す表である。
本発明の実施例を用いて節約されたスペースを示す。
本発明の実施例に従う、縮小または最適化されたPE/COFF画像を用いる典型的な方法を示すフローチャートである。
本発明の実施例に従う、プルーニングされたコード画像ファイルを再構築するための典型的なシステムを示すブロック図である。
本発明の特徴及び利点は、以下の詳細な説明から明らかになるであろう。
本発明の実施例は、実行可能な画像を縮小または最適化することに関連し、その結果、記憶空間の節約をもたらすシステムおよび方法を含む。少なくとも1つの実施例において、本発明は、ターゲットプラットフォームのフラッシュメモリに格納する前に、不要なフィールドまたは情報を実行可能な画像ヘッダから削除することを目的とする。ターゲットプラットフォームにとって無関係な情報を削除することにより、実行ファイルがフラッシュメモリ内で占めるスペースを少なくすることができる。画像は、ロードされるとき、最適化されたヘッダ情報に基づき変換される。一実施例では、画像は、さらに既知の方法で圧縮されることにより、スペースをとらないようにされる。
本発明において、明細書中の「1つの実施例」または「一実施例」は、実施例に関連して記載された特定の機能、構造、または、特徴が、本発明の少なくとも1つの実施例に含まれることを意味する。したがって、明細書中を通じて随所に見られる「一実施例では」という言い回しは、必ずしも同じ実施例を指すものではない。
実行可能な画像のサイズを縮小するための方法には様々なものがある。説明を簡単にする目的で、以下の実施例ではPE/COFF画像を例にとって述べる。ここに記載するシステムおよび方法は、ELF画像またはMach−O形式の画像など、他の画像形式でも用いられることは、当業者にとっては明らかである。ELF(Executable and Linking Format)は、Linuxオペレーティングシステムで利用でき、元々はユニックス・システムズ・ラボラトリーズで開発されたものである。ELFについてのさらなる情報は、Linuxマニュアル参照ページhttp://www.gsp.com/cgi-in/man.cgi?section=5&topic=elf.で確認することができる。Mach-O形式は、アップルコンピュータのオペレーティングシステムで用いられている。Mach-O形式のさらなる情報は、Mach−Oランタイムアーキテクチャ、第3章、ォーマットリファレンス、アップルコンピュータ、2003年8月7日
http://developer.apple.com/documentation/DeveloperTools/Conceptual/MachORuntime/).
で確認することができる。
本発明および方法の実施例は、実行可能な画像を効率的にプルーニングすることにより、画像サイズを縮小することができる。本発明の実施例は、圧縮されたアイテムを元の状態に復元するといった圧縮とは異なる。縮小される実行ファイルは、カスタマイズされたやり方で縮小され、ターゲットプラットフォームとは無関係ないくつかのデータまたはフィールドが削除される。プルーニングされた後の画像は、さらに既知の方法を用いて圧縮されることもできる。
本発明の実施例は、フラッシュメモリにロードする前に、実行可能な画像から画像内容を削除することができる。不要なデータが削除され、利用可能な画像のサブセットがターゲットプラットフォームの基準として定義される。定義されたサブセットは、画像を圧縮しかつロードするために用いられる。その結果、画像が小さくなり、記憶装置のスペースの節約につながる。開示されたシステムおよび方法の実施例は、既存の圧縮技術に追加することもできる。さらに、開示されたシステムおよび方法は、すでに圧縮された画像に適用することもできる。
図面、特に図1は、PE/COFF画像を表わす。PE/COFF画像は、COFFヘッダ110、PEヘッダ120、セクションヘッダ160、および、画像内容180を表わす。一実施例では、COFFヘッダ110は、machine 111、NumberofSections 112、TimeDateStamp 113、PtrToSymbol 114、NumSymbols 115、SizePEHdr 116、および、Characteristics 117の7つのフィールド(20バイト)を有する。以下の表1は、PE/COFFスペックに従うCOFFヘッダにおける各フィールドのオフセットおよび長さを示す。20バイトの7つのフィールドでは、ターゲットプラットフォームは、8バイトのみを用いるmachine 111、NumberofSections 112、SizePEHdr 116、および、Characteristics 117へのアクセスだけを必要とする場合もある。PEヘッダ120の最後のアドレスオフセットは、PEヘッダのサイズを特定するCOFFヘッダ110における値、すなわち、オフセット16のSizePEHdr116により決定される。セクションヘッダ160のサイズは、COFFヘッダのオフセット2の16ビット値(すなわちNumberofSections112)であり得るセクション数をそれらのセクションの長さで乗じることにより決定されることができる。この例では、デフォルトセクションは、40バイト長である。
Figure 2007535241
この例では、PEヘッダ120は、以下のフールドを含む:Signature121、MajorVersion122、MinorVersion123、SizeOfCode124、SizeOfInitdData125、SizeOfUnInitdData126、EntryPoint127、BaseOfCode128、BaseOfData129、ImageBase130、SectionAlignment131、FileAlignment132、MajorOSVersion133、MinorOSVersion134、MajorImageVersion135、MinorImageVersion136、MajorSubVersion137、MinorSubVersion138、Win32Version139、ImageSize140、HeaderSize141、CheckSum142、Subsystem143、DllChar144、StackReserveSz145、StackCommitSz146、HeapReserveSz147、HeapCommitSz148、LoaderFlags149、および、NumberOfRVASz150。この例では、PEヘッダ120は、108バイトを含む。いくつかのプラットフォームでは、PEヘッダ120の、Signature121、SizeOfCode124、EntryPoint127、BaseOfCode128、ImageBase130、および、Subsystem143の22バイトのみが必要とされる。したがって、PEヘッダは、86バイトから22バイトに減らすことができる。
この例では、セクションヘッダ160は、各セクションごとに1つずつ、以下の多くのフィールドのセットを含む:Name161、Virtsize162、VirAddr163、RawDataSz164、PointertoRawData165、PointertoRelocations166、PointertoLineNums167、NumofRelocs168、NumofLineNums169、および、Characteristics170(合計40バイト)。いくつかのプラットフォームでは、Name161、RawDataSz164、PointertoRawData165、PointertoRelocations166、および、NumofRelocs168の合計21バイトのフィールドのみが使用される。フィールド名は、32セクション、すなわち1つのオーバーヘッドバイトおよびデータの32ビットを考慮して予め割り当てられてられることもできる。したがって、未使用のフィールドを削除すると、セクションあたり19バイト節約できることになる。
一実施例では、第1番目のセクションヘッダは、常にネームフィールドである。多くのケースでは、第1番目のセクションは、0値になる(通常は無効な)第1のバイトを示し、残りの4バイトは、32ビットマスクとなり、そのセクションは、そうでないセクションと比べ最適化/縮小される。また、第1番目のセクションを最適化しないこともできる。その場合、第1番目のセクションは、0である第1のバイトを持たない。言い換えれば、ネームフィールドは、PE/COFFスペックに適合し、その中に何らかの実際のネームをもつ8バイトのフィールドである。この状況では、最適化される次のセクションヘッダは、残りのセクションの状態を表わす指標となり、次のセクションヘッダは、ネームフィールド(5バイト)を有するようになる。この場合、第1番目のnセクションヘッダは最適化されず、n+1のセクションヘッダは、ネームフィールドにビットマスクを有するようになる。ネームフィールドのセクションヘッダに一旦マスクが現れると、次に最適化されるセクションヘッダにネームフィールドを有している必要はもはやない。いくつかの実施例では、すべてのセクションヘッダで一貫したネームフィールドを用いることもできる。本明細書においては、使用されるバイト、および、必要なフィールドは、例示目的のみで用いられている。他のシステムでは、ヘッダの異なる形式を使用するか、または、異なるフィールドを必要とする場合もある。
図2は、4つのセクション210、220、230、および、240を有する画像における不要なフィールドを削除するべく縮小されるPE/COFFセクションヘッダを示す。この例では、セクションヘッダ1、3、および、4(210、230、および、240)は最適化されるかまたは縮小される。セクションヘッダ2は、フォーマット基準により定義されたデフォルトフィールドを使用する。図2に示すように、セクション1(210)は、ネームフィールド161を含むが、セクション3および4(230および240)は、ネームフィールド161を含まない。最適化されたセクションヘッダのそれぞれは、さらに、図1で示したような4つのフィールド164、165、166、および、168を含む。ネームフィールド161は、以下により詳細に説明するような特別に重要な意味をもつ。
一実施例では、ネームフィールド161は、第1のセクションヘッダ210で使用される。そして、どのセクションヘッダが最適化され、また、そのセクションヘッダが完全なデフォルトフォーマットを使用するかを識別する。図3は、以降のセクションを最適化するかまたは縮小するか、あるいは、デフォルトフォーマットを使用するかを定義する表300を示す。例えば、一実施例では、画像は、1−nのn個のセクションを有する。第1のセクション301は、最適化される。第2のセクション303は、デフォルトフォーマットを使用する。第3および第4のセクション(305および307)は、最適化され、その結果、第nのセクション309もうまく最適化する。いくつかの実施例では、この表は、マスクワードで実行することもでき、1ビット(1b)は、セクションが最適化されることを示し、かつ、0ビット(0b)は、セクションがデフォルトフォーマットを使用することを示す。このマスクまたはヘッダは、画像ファイルにプリペンドされているか、または、画像内の既知の他の予め決められたオフセットに配置されていてもよい。例えば、画像内の未使用のフィールド、すなわち、ネームフィールド161に配置してもよい。この例では、図3に示すようなセクション1−4は、1011bで表わされ、ここでは、第1のセクション301に対して最下位ビットが用いられる。
「最適化」という用語は、画像がロードされるプラットフォームによって決まる特定の意味をもつ。画像を処理した後、それをメモリにロードするエージェントまたはリコンストラクタがあってもよい。エージェントは、このビットマスクに基づき、セクションを翻訳する。したがって、セクションが最適化されると、エージェントは、バイトがいくつあってどのフィールドがセクションで使用されるのかがわかるようになる。一実施例では、セクション1(301)のネームフィールド161は、図3の表を格納するためのビットマップとして用いられる。その結果、エージェントは、画像ファイルにさらにオーバヘッドをかけることなく、デフォルトセクションおよび最適化されるセクションを識別することができる。例えば、ゼロバイトから始まるネームフィールド161は、最適化表を格納するために使用されたネームフィールドとして翻訳されてもよい。第1のバイトが0でない場合、エージェントは、画像をデフォルト/レガシーフォーマットとして読み込む。
既存のシステムでは、PE/COFF画像中に16セクション以上あることはあまりない。したがって、最適化テーブルを保持するべくネームフィールド161を使用する実施例では、マスク情報を伝達するのには2バイトしか必要としない。PE/COFFスペックでは、ネームフィールドは8バイトとして定義される。一実施例では、32セクションまでを考慮に入れて表には4バイト用意されている。したがって、ネームフィールドには5バイトだけ使用される。一実施例では、第1のバイトは、このフィールドが表として使用されるか、4バイトが表に使用されるか、ネームフィールドの残りの3バイトは他の目的でも使用できるかまたは削除されるのかを示すフラグとなる。
図4を参照すると、処理済みのPE/COFF画像400が表わされている。一実施例では、PE/COFFヘッダは、129バイト(図1参照)から30バイト(401)にまで引き下げられている。セクションヘッダ領域403は、40*nバイトから21*nバイトにまで引き下げられている(nは、セクション数を示す)。一見するとスペースの節約がそう重要なこととは思われないかもしれないが、フラッシュメモリは、多数の画像を含むことがある。フラッシュメモリにロードされる多くの画像に対しスペースの節約が有効であれば、追加の画像のためにより多くのスペースが利用できるようになるか、または、フラッシュカードのサイズを縮小することもできる。スペースの節約は、各プラットフォームが異なるフィールドセットを必要とするような、ターゲットプラットフォームによっても変わることがある。ELFおよびMach−Oなど、PE/COFF以外の画像フォーマットのスペースの節約も、フォーマットおよびターゲットプラットフォームによって変わる。
図5は、開示されたシステムおよび方法の実施例を用いてのスペース節約を表わすフラッシュメモリを示す。一実施例によれば、処理510の前と処理520の後に全体のフラッシュ画像が表われる。処理510なしのフラッシュ画像は、XIPコード専用の65536バイト511と、非XIPコード専用の458752バイト513とを含む。本発明の実施例によれば、ラッシュメモリで処理された画像では、XIP画像は、圧縮されないが、プルーニングされることはできる。したがって、従来の方法は、画像のこの領域に65536バイト必要であるが、プルーニングされるかまたは最適化されたXIP領域は、61180バイト521ですむようになる。同様に、この例では、非XIPコードは、従来のフォーマットを用いて458752バイト513必要である場合もあるが、プルーニング後は、450403バイト523だけで足りるようになる。従来の方法では、XIPコードが圧縮できないと、スペースの節約もできない点に注意すべきである。
図6を参照すると、本実施例に従う、処理されるかまたはプルーニングされた画像をロードする典型的な方法600を表わすフローチャートが示されている。ブートまたはシステムの電源オンと同時に、実行可能な画像がフラッシュメモリからロードされる(ブロック601)。ブロック603において、ファームウェアモジュールがフラッシュメモリから取り出されるかどうかの決定がなされる。何も取り出されない場合、ブロック603においてファームウェアモジュールがフラッシュメモリから取り出されるべきかどうかの決定がなされるまで、ブロック605において通常のオペレーションでの処理が続けられる。
フラッシュメモリからファームウェアモジュールが取り出された場合、画像/モジュールを格納するため、ブロック607において十分な大きさのメモリバッファが割り当てられる。画像のサイズは、画像に格納されており、プルーニングがされていなければ、そのサイズがPEヘッダに格納される。プルーニングされていない画像に対しては、その画像サイズはPEヘッダから決定されるか、または、デフォルトまたは最適化情報から計算される。ブロック609において先頭ヘッダファイルが再構築される。典型的なPE/COFF画像では、オリジナルPEおよびCOFFヘッダがシード情報により再構築され、プルーニングされた情報のギャップを満たす。言い換えれば、画像がメモリにあるときにオリジナルサイズのヘッダが再構築されると、その画像は、データが全くプルーニングされていない場合と同じだけのスペースをとる。それによって、レガシーソフトウェアは、画像を読み取ることができる。いくつかの実施例では、PE/COFF(または他のフォーマット)ヘッダは、プルーニングされるが、セクションヘッダデータは一部分だけプルーニングされるかまたは全くプルーニングされない。
一実施例では、第1のセクションヘッダは、最適化(プルーニング)マスクによりネームフィールドをオーバーロードする。ブロック611において、画像がプルーニングされているかの決定がなされる。この例では、この決定は、第1のセクションのネームフィールドを見てなされる。第1のバイトがゼロの場合、画像はプルーニングされており、マスクは、ネームフィールド内にある。 ネームフィールドの第1のバイトがゼロでない場合、画像はデフォルトフォーマットになり、1セクションずつ従来のやり方でロードされることもできる。画像ファイルがプルーニングされていない場合、ブロック613において、第1のセクションヘッダは、割り当てられたメモリバッファにコピーされる。ブロック615で決定されたように、より多くのセクションヘッダがロードされた場合、処理はブロック611へと続き、ブロック613において、次のセクションヘッダがメモリにコピーされる。ブロック611においてなされた決定は、一回だけ行われ、その後フラグはセクションヘッダを通じてルーピングするべく設定され得ることは、当業者にとって明らかである。フローチャート600におけるループ(611、613、615)は例示にすぎず、他の様々なやり方で実行することもできる。
ブロック611で示すように、画像がプルーニングされている場合、一実施例では、次の4バイトがビットマスクとして用いられ、ブロック619において、各ヘッダが最適化されているか、または、デフォルトフォーマットであるかどうかが決定される。ブロック621では、現在のセクションヘッダがビットマスクにおいて識別された最適化ヘッダどうかが決定される。そうでない場合、ブロック625において、セクションヘッダは、割り当てられたメモリにコピーされ、処理は、次のセクションヘッダへと続く。
セクションヘッダは、最適化またはプルーニングされている場合には再構築されなくてはならない。完全な画像形式を予測するレガシープログラムと適合するべく、ブロック623において、セクションヘッダが再構築される。フィールドの残りは、PE/COFFなどの画像形式で定義されたオフセットに対応する位置に移動される。プルーニングまたは削除されたフィールドは、シードデータで満たされるか、または、ブランクのまま、オリジナルファイル形式のそのフィールドのオフセット位置にコピーされる。したがって、再構築されたセクションヘッダは、レガシーソフトウェアに適合すべくデフォルトフォーマットで現れるようになる。シードフィールド(前にプルーニングされている)は、ターゲットプラットフォームには必要ないと定義され、それらのフィールドのいずれのデータも無視される。すべてのセクションが割り当てられたメモリにコピーされるまで処理は続けられる。
すべてのセクションヘッダが一旦メモリにロードされると、ブロック617において、画像ファイルの残りがメモリにロードされる。表示され得る追加画像をロードすべく、ブロック603において処理が続けられる。
画像がXIPであれば、メインメモリにはロードされず、フラッシュメモリから直接実行されなければならない。一般的に、XIPファイルはフラッシュメモリから実行されるものであるが、通常特にポータブルではないので、正確な互換性は必要とされない。大抵、それらは、システム初期化のごく早期に使用され、プラットフォームが一旦資源豊富な状態になってしまえば、すなわち、メモリが見つけられ使用されているときは、参照されない。XIP画像をどのように扱うかは、実施形態によって特有である。
図7を参照すると、プルーニングされたコード画像ファイルを再構築する典型的なシステム700が示されている。一実施例では、プロセッサ701は、システムメモリ703を有し、フラッシュメモリ705に有効に結合される。プレブート間の様々な時間において、フラッシュメモリからコード画像ファイル715を取り出す必要がある場合もある。一実施例では、フラッシュメモリ705内には、1つまたはそれ以上のコード画像ファイル715が存在する。コード画像ファイルは、先に述べたような方法に従いプルーニングまたは縮小されているプルーニング画像ファイル715bであってよく、あるいは、コード画像ファイルは、オリジナルコード画像ファイル715aであってよい。コード画像ファイル715は、プルーニングの有無に関わらず、圧縮されてよい。コード画像715bがプルーニングされている場合、BIOS711は、プルーニングされた画像715bのヘッダを再構築すべく、画像リコンストラクタ721に制御を移管してよい。再構築されたコード画像713は、レガシーコードで処理されることができる形式でシステムメモリ703内に配置される。ここでは、レガシーコードは、画像が最初からプルーニングされていたことを必ずしもわかっていなくてよい。オリジナル画像からプルーニングされたデータはどれもこのターゲットプラットフォームにとっては必要でないため、レガシーコードは、再構築された画像を処理することができる。
ここで説明する技術は、特定のハードウェアまたはソフトウェア構成に制限されるものではなく、あらゆるコンピュータ、一般電子機器、または、処理環境においても適用性を見出すことができる。
また、ここで説明する技術は、ハードウェア、ソフトウェア、または、それらの組合せにおいても実施できる。さらに、モバイルまたはステーショナリコンピュータ、パーソナル携帯情報機器、セットトップボックス、携帯電話、ポケットベル、一般電子機器(DVDプレーヤ、パーソナル・ビデオレコーダ、パーソナル・ビデオプレーヤ、衛星受信機、ステレオレシーバ、ケーブルTV受信機を含む)、および、プロセッサ、プロセッサにより読み取り可能な記憶媒体(揮発および不揮発メモリ、および/または記憶素子など)、少なくとも1つの入力デバイス、および、1つまたはそれ以上の入力デバイスを含む他の電子機器においても実施できる。プログラムコードは、入力デバイスを用いて入力されたデータに適用されることにより、記述された関数を実行し、かつ、出力情報を生成する。出力情報は、1つまたは他の出力デバイスに適用されることもできる。本発明がマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、個別の一般電子機器など様々なシステム構成により実施できることは当業者にとって明らかなことである。本発明はまた、通信ネットワークを介し接続される遠隔処理装置により実行できる分散コンピューティング環境においても実施可能である。
各プログラムが、高度なプロシージャまたはオブジェクト指向プログラミング言語で実行されることにより、処理システムとの通信が実現する。また、必要であれば、プログラムはアセンブリまたはマシン言語で実行することもできる。いずれの場合でも、言語はコンパイルまたは翻訳されることができる。
プログラム命令を用いることにより、命令によりプログラムされた汎用または専用処理システムは、本明細書中に記載された動作を実行することができる。一方で、動作は、それらを実行するためのハードワイヤードロジックを含む特定のハードウェアコンポーネント、または、プログラムされたコンピュータ要素とカスタムハードウェアコンポーネントとの組合せにより実行することもできる。本明細書中に記載された方法は、処理システムをプログラムするよう用いることができる命令を格納したマシンアクセス可能な媒体を含むコンピュータプログラム製品、または、方法を実行する他の電子デバイスとして提供することもできる。ここで使用した「マシンアクセス可能な媒体」という用語は、マシンで実行するための命令シーケンスを格納またはエンコードすることが可能であり、また、マシンが本明細書中に記載された方法のいずれか1つを実行できるようにする媒体を当然含む。したがって、「マシンアクセス可能な媒体」とは、固体メモリ、光磁気ディスク、および、データ信号をエンコードする搬送波も当然含むが、これに制限されるものではない。さらに、プログラム、手順、プロセス、アプリケーション、モジュール、ロジック、などいずれの形にせよ、ソフトウェアが動作を起こすまたは結果を生じさせるように説明するのは技術的に一般的なことである。このような表現は、処理システムでソフトウェアを実行することにより、プロセッサに結果を生じる動作を行わせるということを分かりやすく説明する1つの手法に過ぎない。
以上、本発明の一側面を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることができる。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。

Claims (21)

  1. 画像をロードする方法であって、
    十分なサイズのメモリバッファを割り当てることにより、実行可能な画像ファイルを保持する段階と、
    前記画像ファイルがプルーニングされているかどうかを決定する段階と、
    前記画像を実行すべく前記メモリバッファにロードする段階と、
    を含む、方法。
  2. 前記画像ファイルをロードする段階は、
    該画像ファイルに対応する各セクションヘッダに対し、
    前記画像ファイルがプルーニングされていた場合、
    現在のセクションヘッダがプルーニングされているかどうかを決定することと、もしされてされていれば、前記プルーニングされた現在のセクションヘッダから現在の標準フォーマットセクションヘッダを再構築し、かつ、該再構築されたセクションヘッダを前記メモリバッフにロードすることと、 前記現在のセクションヘッダがプルーニングされていない場合、 前記現在のセクションヘッダを前記メモリバッファにロードすることと、
    前記画像ファイルがプルーニングされていない場合、前記各セクションヘッダを前記メモリバッファにロードすることと、
    をさらに含む、請求項1に記載の方法。
  3. 前記画像ファイルがプルーニングされているかどうかを決定する段階は、
    ビットマスクを取り出すことと、
    前記画像ファイルに対応する複数のセクションヘッダを識別し、かつ、前記ビットマスクを用いて前記各識別されたセクションヘッダがプルーニングされているかどうかを決定することと、
    をさらに含む、請求項1に記載の方法。
  4. 前記ビットマスクは、前記画像ファイルに対応する前記複数のセクションヘッダの第1のセクションヘッダのネームフィールドに配置される、請求項3に記載の方法。
  5. 前記画像ファイルをロードする段階は、
    前記メモリバッファに複数のセクションヘッダをロードすることと、
    前記メモリバッファに前記画像の内容をロードすることと、
    をさらに含む、請求項1に記載の方法。
  6. 前記メモリバッファにロードされた前記複数のセクションヘッダのそれぞれは、デフォルトフォーマットセクションヘッダおよび再構築されたセクションヘッダの1つを含む、請求項5に記載の方法。
  7. 前記画像内容は、eXecute In Place(XIP)コードとして識別される、請求項5に記載の方法。
  8. 前記画像内容は圧縮される、請求項5に記載の方法。
  9. 前記画像ファイルは、第1のターゲットプラットフォームの第1の予め決められたフォーマットにプルーニングされ、また、第2のターゲットプラットフォームの第2の予め決められたフォーマットにプルーニングされる、請求項1に記載の方法。
  10. 画像ファイルをロードする命令を含むマシンアクセス可能な媒体であって、前記命令によりマシンは、
    十分なサイズのメモリバッファを割り当てることにより、実行可能な画像ファイルを保持することと、
    前記画像ファイルがプルーニングされているかどうかを決定することと、
    前記画像ファイルを実行すべく前記メモリバッファにロードすることと、
    を実行する、マシンアクセス可能な媒体。
  11. 前記画像ファイルをロードするための命令によりマシンは、
    前記画像ファイルに対応する各セクションヘッダに対し、
    前記画像がプルーニングされている場合、
    現在のセクションヘッダがプルーニングされているかどうかを決定することと、
    そうであれば、前記プルーニングされた現在のセクションヘッダから現在の標準フォーマットセクションヘッダを再構築し、かつ、前記現在のセクションヘッダがプルーニングされていなければ、前記現在のセクションヘッダを前記メモリバッファにロードすることと、
    前記画像ファイルがプルーニングされていなければ、前記各セクションヘッダを前記メモリバッファにロードすることと、
    をさらに実行する、請求項10に記載の媒体。
  12. 前記画像ファイルがプルーニングされているかどうかを決定するための命令により、前記マシンは、
    ビットマスクを取り出すことと、
    前記画像ファイルに対応する複数のセクションヘッダを識別し、かつ、前記ビットマスクを使用して前記各識別されたセクションヘッダがプルーニングされているかどうかを決定することと、
    をさらに実行する、請求項10に記載の媒体。
  13. 前記ビットマスクは、前記画像ファイルに対応する前記複数のセクションヘッダの第1のセクションヘッダのネームフィールドに配置される、請求項12に記載の媒体。
  14. 前記画像ファイルにロードされた命令により、前記マシンは、
    前記メモリバッファに複数のセクションヘッダをロードすることと、
    前記メモリバッファに前記画像の内容をロードすることと、
    をさらに実行する、請求項10に記載の媒体。
  15. 前記メモリバッファにロードされる前記複数のセクションヘッダのそれぞれは、デフォルトフォーマットセクションヘッダ、および、再構築されたセクションヘッダの1つを含む、請求項14に記載の媒体。
  16. 前記画像内容は、eXecute In Place(XIP)コードとして識別される、請求項14に記載の媒体。
  17. 前記画像内容は圧縮される、請求項14に記載の媒体。
  18. 画像ファイルをロードするためのシステムであって、
    ターゲットプラットフォームにおけるプロセッサであって、システムメモリを有し、かつ、フラッシュメモリデバイスと有効に結合されるプロセッサと、
    前記フラッシュメモリデバイスに格納される少なくとも1つの実行可能な画像ファイルと、
    プルーニングされた画像ファイルを再構築し、かつ、該再構築された画像ファイルをシステムメモリにロードするリコンストラクタと、
    を含むシステム。
  19. 前記リコンストラクタは、前記少なくとも1つの実行可能なファイルのそれぞれがプルーニングされているかどうかを決定し、もしされていれば、該プルーニングされた実行可能ファイルに対応するセクションヘッダがプルーニングされているかを決定し、セクションヘッダがプルーニングされていれば、該プルーニングされたセクションヘッダをターゲットプラットフォームに適合するフォーマットで再構築する、請求項18に記載のシステム。
  20. 前記フラッシュメモリデバイスに格納された実行可能な画像の少なくとも1つの実行可能な画像ファイルは、前記ターゲットプラットフォームに適合するフォーマットにプルーニングされている、請求項18に記載のシステム。
  21. 再構築された画像ファイルがシステムメモリに一旦ロードされると、該画像ファイルは、オリジナル画像ファイルからプルーニングされたものではないように動作する、請求項18に記載のシステム。
JP2007509506A 2004-04-26 2005-04-08 条件付で実行可能モジュールを縮小するシステムおよび方法 Expired - Fee Related JP4601665B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/832,789 US7853742B2 (en) 2004-04-26 2004-04-26 System and method to conditionally shrink an executable module
PCT/US2005/012128 WO2005109848A2 (en) 2004-04-26 2005-04-08 System and method to conditionally shrink an executable module

Publications (3)

Publication Number Publication Date
JP2007535241A true JP2007535241A (ja) 2007-11-29
JP2007535241A5 JP2007535241A5 (ja) 2009-12-17
JP4601665B2 JP4601665B2 (ja) 2010-12-22

Family

ID=35116084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007509506A Expired - Fee Related JP4601665B2 (ja) 2004-04-26 2005-04-08 条件付で実行可能モジュールを縮小するシステムおよび方法

Country Status (5)

Country Link
US (1) US7853742B2 (ja)
EP (1) EP1749266B1 (ja)
JP (1) JP4601665B2 (ja)
CN (1) CN1947094B (ja)
WO (1) WO2005109848A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853742B2 (en) 2004-04-26 2010-12-14 Intel Corporation System and method to conditionally shrink an executable module
KR100797122B1 (ko) * 2007-04-20 2008-01-22 삼성전자주식회사 휴대 단말기의 이동식 저장 매체를 이용한 파일 처리 장치및 방법
CN101526902B (zh) * 2008-12-25 2012-01-04 北京邮电大学 用于移动终端的可执行文件压缩及加载方法
US8392895B2 (en) 2009-01-13 2013-03-05 Mediatek Inc. Firmware extension method and firmware builder
US8813048B2 (en) 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US8832699B2 (en) 2009-05-11 2014-09-09 Accenture Global Services Limited Migrating processes operating on one platform to another platform in a multi-platform system
US9262416B2 (en) 2012-11-08 2016-02-16 Microsoft Technology Licensing, Llc Purity analysis using white list/black list analysis
US8752021B2 (en) * 2012-11-08 2014-06-10 Concurix Corporation Input vector analysis for memoization estimation
CN105528365A (zh) 2014-09-30 2016-04-27 国际商业机器公司 用于管理可执行文件的方法和装置
CN104820612B (zh) * 2015-05-22 2018-02-09 网宿科技股份有限公司 一种可执行文件的内存执行方法
US10185513B1 (en) 2015-06-05 2019-01-22 Life365, Inc. Device configured for dynamic software change
CN107450960A (zh) * 2017-09-18 2017-12-08 珠海亿智电子科技有限公司 一种对可执行elf文件重新链接和加载的方法

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4389706A (en) * 1972-05-03 1983-06-21 Westinghouse Electric Corp. Digital computer monitored and/or operated system or process which is structured for operation with an improved automatic programming process and system
JPH03201082A (ja) * 1989-12-27 1991-09-02 Daikin Ind Ltd プルーニング方法およびその装置
US5889961A (en) * 1996-06-27 1999-03-30 International Business Machines Corporation Disk drive having program to be executed by a second processor stored in a first processor's ROM in a compressed form
US6032197A (en) * 1997-09-25 2000-02-29 Microsoft Corporation Data packet header compression for unidirectional transmission
JP2000076077A (ja) * 1998-09-03 2000-03-14 Ricoh Co Ltd 光ディスクドライブ制御システム
JP2001077953A (ja) * 1999-09-07 2001-03-23 Fuji Xerox Co Ltd 画像形成システム及び情報提供システム
JP2001166941A (ja) * 1999-12-07 2001-06-22 Sony Corp 情報処理装置および方法、並びに記録媒体
JP2001175466A (ja) * 1999-12-21 2001-06-29 Fuji Xerox Co Ltd 実行プログラムの生成方法及び実行プログラム生成装置、実行プログラムの実行方法、並びに、コンピュータ可読プログラム記憶媒体
JP2002108801A (ja) * 2000-09-29 2002-04-12 Ricoh Co Ltd 情報処理装置、画像読取装置、画像形成装置、画像データ記憶方法及びdma転送方法
WO2002041638A2 (en) * 2000-11-16 2002-05-23 Koninklijke Philips Electronics N.V. Scalable mpeg-2 video system
US20030009747A1 (en) * 2001-06-25 2003-01-09 International Business Machines Corporation Apparatus and method for porting applications to different platforms
JP2003008644A (ja) * 2001-06-19 2003-01-10 Matsushita Electric Ind Co Ltd パケット送受信装置及びパケット伝送方法
JP2003186635A (ja) * 2001-12-13 2003-07-04 Fuji Xerox Co Ltd 画像処理装置及びプログラム
US6654954B1 (en) * 1998-02-17 2003-11-25 International Business Machines Corporation Computer system, program product and method utilizing executable file with alternate program code attached as a file attribute
JP2004180030A (ja) * 2002-11-27 2004-06-24 Canon Inc 画像データ管理方法
JP2005020595A (ja) * 2003-06-27 2005-01-20 Canon Inc 撮像装置及びその制御方法
US20050132356A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Self-describing software image update components

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113494A (en) * 1987-02-27 1992-05-12 Eastman Kodak Company High speed raster image processor particularly suited for use in an image management system
US5335328A (en) * 1989-06-28 1994-08-02 International Business Machines Corporation Methods for recording and reading data from a record member having data in any one of a plurality of block formats including determining length of records being transferred
US5481701A (en) * 1991-09-13 1996-01-02 Salient Software, Inc. Method and apparatus for performing direct read of compressed data file
US5841979A (en) * 1995-05-25 1998-11-24 Information Highway Media Corp. Enhanced delivery of audio data
US5923878A (en) * 1996-11-13 1999-07-13 Sun Microsystems, Inc. System, method and apparatus of directly executing an architecture-independent binary program
JPH10320205A (ja) * 1997-05-20 1998-12-04 Fujitsu Ltd 情報処理装置
US6385567B1 (en) * 1997-07-31 2002-05-07 Microsoft Corporation Program-module substitution in a program loader for multiple-platform emulation
US6026238A (en) * 1997-08-18 2000-02-15 Microsoft Corporatrion Interface conversion modules based upon generalized templates for multiple platform computer systems
US6272252B1 (en) * 1998-12-18 2001-08-07 Xerox Corporation Segmenting image data into blocks and deleting some prior to compression
JP3791742B2 (ja) * 1999-05-28 2006-06-28 株式会社沖データ Pciバス制御システム
US6769115B1 (en) * 2000-05-01 2004-07-27 Emc Corporation Adaptive interface for a software development environment
US6775423B2 (en) * 2000-05-03 2004-08-10 Microsoft Corporation Systems and methods for incrementally updating an image in flash memory
GB2366643B (en) * 2000-05-25 2002-05-01 Siroyan Ltd Methods of compressing instructions for processors
US6574747B2 (en) * 2000-06-02 2003-06-03 Microsoft Corporation Extensible execute in place (XIP) architecture and related methods
US6845130B1 (en) * 2000-10-12 2005-01-18 Lucent Technologies Inc. Motion estimation and compensation for video compression
US6816616B2 (en) * 2001-05-31 2004-11-09 Webex Communications, Inc. Header compression for image data stream
US6986148B2 (en) * 2001-07-17 2006-01-10 Appforge, Inc. Methods and systems for providing platform-independent shared software components for mobile devices
US7197711B1 (en) * 2002-01-31 2007-03-27 Harman International Industries, Incorporated Transfer of images to a mobile computing tool
US7277482B2 (en) * 2002-05-29 2007-10-02 General Dynamics C4 Systems, Inc. Method and apparatus for adaptive signal compression
US7055145B2 (en) * 2002-10-30 2006-05-30 Intel Corporation Dynamic management of execute in place applications
US7853742B2 (en) 2004-04-26 2010-12-14 Intel Corporation System and method to conditionally shrink an executable module
WO2007073610A1 (en) * 2005-12-24 2007-07-05 Intel Corporation Method and apparatus for efficiently arranging portable executable (pe) images

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4389706A (en) * 1972-05-03 1983-06-21 Westinghouse Electric Corp. Digital computer monitored and/or operated system or process which is structured for operation with an improved automatic programming process and system
JPH03201082A (ja) * 1989-12-27 1991-09-02 Daikin Ind Ltd プルーニング方法およびその装置
US5889961A (en) * 1996-06-27 1999-03-30 International Business Machines Corporation Disk drive having program to be executed by a second processor stored in a first processor's ROM in a compressed form
US6032197A (en) * 1997-09-25 2000-02-29 Microsoft Corporation Data packet header compression for unidirectional transmission
US6654954B1 (en) * 1998-02-17 2003-11-25 International Business Machines Corporation Computer system, program product and method utilizing executable file with alternate program code attached as a file attribute
JP2000076077A (ja) * 1998-09-03 2000-03-14 Ricoh Co Ltd 光ディスクドライブ制御システム
JP2001077953A (ja) * 1999-09-07 2001-03-23 Fuji Xerox Co Ltd 画像形成システム及び情報提供システム
JP2001166941A (ja) * 1999-12-07 2001-06-22 Sony Corp 情報処理装置および方法、並びに記録媒体
JP2001175466A (ja) * 1999-12-21 2001-06-29 Fuji Xerox Co Ltd 実行プログラムの生成方法及び実行プログラム生成装置、実行プログラムの実行方法、並びに、コンピュータ可読プログラム記憶媒体
US6715142B1 (en) * 1999-12-21 2004-03-30 Fuji Xerox Co., Ltd. Execution program generation method, execution program generation apparatus, execution program execution method, and computer-readable storage medium
JP2002108801A (ja) * 2000-09-29 2002-04-12 Ricoh Co Ltd 情報処理装置、画像読取装置、画像形成装置、画像データ記憶方法及びdma転送方法
JP2004514353A (ja) * 2000-11-16 2004-05-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ スケーラブルmpeg−2ビデオシステム
WO2002041638A2 (en) * 2000-11-16 2002-05-23 Koninklijke Philips Electronics N.V. Scalable mpeg-2 video system
JP2003008644A (ja) * 2001-06-19 2003-01-10 Matsushita Electric Ind Co Ltd パケット送受信装置及びパケット伝送方法
US20030009747A1 (en) * 2001-06-25 2003-01-09 International Business Machines Corporation Apparatus and method for porting applications to different platforms
JP2003186635A (ja) * 2001-12-13 2003-07-04 Fuji Xerox Co Ltd 画像処理装置及びプログラム
JP2004180030A (ja) * 2002-11-27 2004-06-24 Canon Inc 画像データ管理方法
JP2005020595A (ja) * 2003-06-27 2005-01-20 Canon Inc 撮像装置及びその制御方法
US20050132356A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Self-describing software image update components
JP2005182790A (ja) * 2003-12-16 2005-07-07 Microsoft Corp 自己記述型ソフトウェアイメージ更新コンポーネント

Also Published As

Publication number Publication date
CN1947094A (zh) 2007-04-11
US20050251583A1 (en) 2005-11-10
WO2005109848A2 (en) 2005-11-17
CN1947094B (zh) 2010-05-26
EP1749266A2 (en) 2007-02-07
JP4601665B2 (ja) 2010-12-22
US7853742B2 (en) 2010-12-14
EP1749266B1 (en) 2013-10-23
WO2005109848A3 (en) 2006-02-09

Similar Documents

Publication Publication Date Title
JP4601665B2 (ja) 条件付で実行可能モジュールを縮小するシステムおよび方法
JP2007535241A5 (ja)
US6332172B1 (en) Method and system for virtual memory compression in an embedded system
EP1634170B1 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
EP0996059B1 (en) Class loading model
US7181610B2 (en) Method and system to encapsulate a driver written for an operating system (OS) runtime environment in an OS independent environment firmware extension
US6820252B2 (en) Selective conversion to native code using hardware translator, software translator, and software interpreter
US6195107B1 (en) Method and system for utilizing virtual memory in an embedded system
US20040003377A1 (en) Converting byte code instructions to a new instruction set
JP2002529849A (ja) データ処理リソースを供給された内蔵システムにおいて実行可能な中間オブジェクトコードプログラムのためのデータ圧縮方法、および、この方法に対応しかつマルチアプリケーションを備えた内蔵システム
JPH07182260A (ja) ネットワークパケットのフレームバッファ方法
EP0840242A2 (en) Method for creating a virtual file system
EP1039374B1 (en) Instruction execution mechanism
US20040205697A1 (en) Transferring data along with code for program overlays
EP2463776A2 (en) Bytecode branch processor and method
CN111240765B (zh) 一种linux压缩应用程序的加载方法
US9471584B2 (en) Demand paging method for mobile terminal, controller and mobile terminal
WO2006125768A1 (en) Flexible data file format
CN115640078B (zh) 基于虚拟文件系统数据智能预取的安卓应用加载优化方法
JP5709903B2 (ja) データレコードを圧縮し圧縮されたデータレコードを処理するための方法、システム、コンピュータプログラム、その記録媒体、データコレクションを記憶したデータ記憶媒体、並びに通話データ記録システム
US6510499B1 (en) Method, apparatus, and article of manufacture for providing access to data stored in compressed files
CN110187897B (zh) 一种固件升级方法及装置
CN115604331A (zh) 一种数据的处理系统、方法以及装置
CN116804915B (zh) 基于存储器的数据交互方法、处理器、设备以及介质
KR20010053875A (ko) 내장형 자바가상머신을 위한 바이트코드 압축 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090210

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090303

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090403

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090616

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090915

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090925

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20091014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100323

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100907

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4601665

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees