(57)【要約】  適応型圧縮ベースのデマンドページングのためのシステム、方法、およびコンピュータプログラムが開示される。2つ以上の圧縮されたソフトウェアイメージセグメントが、1つまたは複数のメモリの各々に記憶される。各圧縮されたソフトウェアイメージセグメントは、少なくとも1つのソフトウェアタスクに対応し、他のソフトウェアイメージセグメントの圧縮特性とは異なる圧縮特性に従って圧縮される1つまたは複数のページを含む。実行中のソフトウェアタスクに関連付けられたページ要求が、システムメモリに記憶されていないページを識別すると決定された場合、識別されたページを含む圧縮されたソフトウェアイメージセグメントの一部が解凍され、解凍されたページがシステムメモリに記憶される。
2018519564.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、システムメモリを含む1つまたは複数のメモリとを備える処理システムにおけるデマンドページングのための方法であって、
複数の圧縮されたソフトウェアイメージセグメントを、前記1つまたは複数のメモリのうちの少なくとも1つに記憶するステップであって、各圧縮されたソフトウェアイメージセグメントが、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに関連付けられ、各圧縮されたソフトウェアイメージセグメントが、前記圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性であって、他のすべての圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性とは異なる圧縮特性に従って圧縮される1つまたは複数のページを備える、ステップと、
実行中のソフトウェアタスクに関連付けられたページ要求が、前記システムメモリに記憶されたページを識別するかどうかを決定するステップと、
識別されたページが前記システムメモリに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍するステップと、
前記ページ要求に応答して、前記解凍されたページを前記システムメモリに記憶するステップと
を備える、方法。
【請求項２】
前記圧縮されたソフトウェアイメージセグメントのうちの少なくとも1つが、2つ以上のソフトウェアタスクのグループに関連付けられる、請求項1に記載の方法。
【請求項３】
前記圧縮特性が、圧縮アルゴリズムおよび圧縮ブロックサイズのうちの1つまたは複数を備える、請求項1に記載の方法。
【請求項４】
複数の圧縮されたソフトウェアイメージセグメントを記憶するステップが、第1の複数の圧縮されたソフトウェアイメージセグメントを前記システムメモリに記憶するステップと、第2の複数の圧縮されたソフトウェアイメージセグメントを、前記システムメモリよりも高いレイテンシを有する二次メモリに記憶するステップとを備え、
識別されたページが前記システムメモリに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍するステップが、前記システムメモリおよび前記二次メモリのうちの1つに記憶された前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍するステップを備える、請求項1に記載の方法。
【請求項５】
各圧縮されたソフトウェアイメージセグメントが、他のすべての圧縮されたソフトウェアイメージセグメントの動的電圧および周波数スケーリング(DVFS)特性とは異なるDVFS特性にさらに関連付けられ、前記方法が、前記処理システムのDVFS制御を、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの前記1つに関連付けられた前記DVFS特性に設定するステップをさらに備える、請求項1に記載の方法。
【請求項６】
前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍するステップが、解凍ハードウェアロジックを使用して第1の圧縮されたソフトウェアイメージセグメントの一部を、また解凍ソフトウェアロジックを使用して第2の圧縮されたソフトウェアイメージセグメントの一部を解凍するステップを備える、請求項1に記載の方法。
【請求項７】
前記処理システムが、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはリンクを有するハンドヘルドコンピュータのうちの少なくとも1つを備えるポータブルコンピューティングデバイスに含まれる、請求項1に記載の方法。
【請求項８】
ページングのためのシステムであって、
システムメモリを含む1つまたは複数のメモリであって、前記1つまたは複数のメモリのうちの少なくとも1つが、複数の圧縮されたソフトウェアイメージセグメントを前記メモリに記憶するように構成され、各圧縮されたソフトウェアイメージセグメントが、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに関連付けられ、各圧縮されたソフトウェアイメージセグメントが、前記圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性であって、他のすべての圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性とは異なる圧縮特性に従って圧縮される1つまたは複数のページを備える、メモリと、
プロセッサと
を備え、前記プロセッサが、
実行中のソフトウェアタスクに関連付けられたページ要求が、前記システムメモリに記憶されたページを識別するかどうかを決定することと、
識別されたページが前記システムメモリに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍することと、
前記ページ要求に応答して、前記解凍されたページを前記システムメモリに記憶することと
を行うように構成される、システム。
【請求項９】
前記圧縮されたソフトウェアイメージセグメントのうちの少なくとも1つが、2つ以上のソフトウェアタスクのグループに対応する、請求項8に記載のシステム。
【請求項１０】
前記圧縮特性が、圧縮アルゴリズムおよび圧縮ブロックサイズのうちの1つまたは複数を備える、請求項8に記載のシステム。
【請求項１１】
前記圧縮特性が、圧縮アルゴリズムと圧縮ブロックサイズとの組合せを備える、請求項8に記載のシステム。
【請求項１２】
前記システムメモリが、第1の複数の圧縮されたソフトウェアイメージセグメントを記憶するように構成され、前記システムが、第2の複数の圧縮されたソフトウェアイメージセグメントを記憶するように構成された二次メモリをさらに備え、前記二次メモリが、前記システムメモリよりも高いレイテンシを有し、
前記プロセッサが、識別されたページが前記システムメモリに記憶されていない場合、前記システムメモリおよび前記二次メモリのうちの1つに記憶された前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍するように構成されることによって、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍するように構成される、請求項8に記載のシステム。
【請求項１３】
各圧縮されたソフトウェアイメージセグメントが、他のすべての圧縮されたソフトウェアイメージセグメントの動的電圧および周波数スケーリング(DVFS)特性とは異なるDVFS特性にさらに対応し、前記プロセッサが、処理システムのDVFS制御を、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの前記1つに関連付けられた前記DVFS特性に設定するようにさらに構成される、請求項8に記載のシステム。
【請求項１４】
前記プロセッサが、解凍ハードウェアロジックを使用して第1の圧縮されたソフトウェアイメージセグメントの一部を、また解凍ソフトウェアロジックを使用して第2の圧縮されたソフトウェアイメージセグメントの一部を解凍するように構成される、請求項8に記載のシステム。
【請求項１５】
前記メモリおよびプロセッサが、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはリンクを有するハンドヘルドコンピュータのうちの少なくとも1つを備えるポータブルコンピューティングデバイスに含まれる、請求項8に記載のシステム。
【請求項１６】
プロセッサと、システムメモリを含む1つまたは複数のメモリとを備える処理システムにおけるデマンドページングのためのシステムであって、
複数の圧縮されたソフトウェアイメージセグメントを、前記1つまたは複数のメモリのうちの少なくとも1つに記憶するための手段であって、各圧縮されたソフトウェアイメージセグメントが、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに関連付けられ、各圧縮されたソフトウェアイメージセグメントが、前記圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性であって、他のすべての圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性とは異なる圧縮特性に従って圧縮される1つまたは複数のページを備える、手段と、
実行中のソフトウェアタスクに関連付けられたページ要求が、前記システムメモリに記憶されたページを識別するかどうかを決定するための手段と、
識別されたページが前記システムメモリに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍するための手段と、
前記ページ要求に応答して、前記解凍されたページを前記システムメモリに記憶するための手段と、
を備える、システム。
【請求項１７】
前記圧縮されたソフトウェアイメージセグメントのうちの少なくとも1つが、2つ以上のソフトウェアタスクのグループに関連付けられる、請求項16に記載のシステム。
【請求項１８】
前記圧縮特性が、圧縮アルゴリズムおよび圧縮ブロックサイズのうちの1つまたは複数を備える、請求項16に記載のシステム。
【請求項１９】
前記圧縮特性が、圧縮アルゴリズムと圧縮ブロックサイズとの組合せを備える、請求項16に記載のシステム。
【請求項２０】
記憶するための前記手段が、第1の複数の圧縮されたソフトウェアイメージセグメントを前記システムメモリに記憶するための手段と、第2の複数の圧縮されたソフトウェアイメージセグメントを、前記システムメモリよりも高いレイテンシを有する二次メモリに記憶するための手段とを備え、
解凍するための前記手段が、前記システムメモリおよび前記二次メモリのうちの1つに記憶された前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍するための手段を備える、請求項16に記載のシステム。
【請求項２１】
各圧縮されたソフトウェアイメージセグメントが、他のすべての圧縮されたソフトウェアイメージセグメントの動的電圧および周波数スケーリング(DVFS)特性とは異なるDVFS特性にさらに関連付けられ、前記システムが、前記処理システムのDVFS制御を、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの前記1つに関連付けられた前記DVFS特性に設定するための手段をさらに備える、請求項16に記載のシステム。
【請求項２２】
前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍することが、解凍ハードウェアロジックを使用して第1の圧縮されたソフトウェアイメージセグメントの一部を、また解凍ソフトウェアロジックを使用して第2の圧縮されたソフトウェアイメージセグメントの一部を解凍することを備える、請求項16に記載のシステム。
【請求項２３】
前記処理システムが、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはリンクを有するハンドヘルドコンピュータのうちの少なくとも1つを備えるポータブルコンピューティングデバイスに含まれる、請求項16に記載のシステム。
【請求項２４】
コンピュータ実行可能ロジックを備える非一時的コンピュータ可読記録媒体であって、前記プロセッサによる前記ロジックの実行が、
実行中のソフトウェアタスクに関連付けられたページ要求がシステムメモリに記憶されたページを識別するかどうかを決定することであって、前記システムメモリが、前記プロセッサによってアクセス可能な1つまたは複数のメモリ内に含まれ、前記1つまたは複数のメモリのうちの少なくとも1つが複数の圧縮されたソフトウェアイメージセグメントを記憶し、各圧縮されたソフトウェアイメージセグメントが、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに関連付けられ、各圧縮されたソフトウェアイメージセグメントが、前記圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性であって、他のすべての圧縮されたソフトウェアイメージセグメントの圧縮特性とは異なる圧縮特性に従って圧縮される1つまたは複数のページを備える、決定することと、
識別されたページが前記システムメモリに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つを解凍されたページへと解凍することと、
前記ページ要求に応答して、前記解凍されたページを前記システムメモリに記憶することと
を行うように前記プロセッサを構成する、非一時的コンピュータ可読記録媒体。
【請求項２５】
前記圧縮されたソフトウェアイメージセグメントのうちの少なくとも1つが、2つ以上のソフトウェアタスクのグループに関連付けられる、請求項24に記載の非一時的コンピュータ可読記録媒体。
【請求項２６】
前記圧縮特性が、圧縮アルゴリズムおよび圧縮ブロックサイズのうちの1つまたは複数を備える、請求項24に記載の非一時的コンピュータ可読記録媒体。
【請求項２７】
前記プロセッサによる前記ロジックの実行が、第1の複数の圧縮されたソフトウェアイメージセグメントをシステムメモリに記憶し、第2の複数の圧縮されたソフトウェアイメージセグメントを前記システムメモリよりも高いレイテンシを有する二次メモリに記憶するように前記プロセッサを構成することによって、複数の圧縮されたソフトウェアイメージセグメントを記憶するように前記プロセッサを構成し、
前記プロセッサによる前記ロジックの実行が、前記システムメモリおよび前記二次メモリのうちの1つに記憶された前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍するように前記プロセッサを構成することによって、識別されたページが前記システムメモリに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍するように前記プロセッサを構成する、請求項24に記載の非一時的コンピュータ可読記録媒体。
【請求項２８】
各圧縮されたソフトウェアイメージセグメントが、他のすべての圧縮されたソフトウェアイメージセグメントの動的電圧および周波数スケーリング(DVFS)特性とは異なるDVFS特性にさらに関連付けられ、前記方法が、処理システムのDVFS制御を、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの前記1つに関連付けられた前記DVFS特性に設定することをさらに備える、請求項24に記載の非一時的コンピュータ可読記録媒体。
【請求項２９】
前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍することが、解凍ハードウェアロジックを使用して第1の圧縮されたソフトウェアイメージセグメントの一部を、また解凍ソフトウェアロジックを使用して第2の圧縮されたソフトウェアイメージセグメントの一部を解凍することを備える、請求項24に記載の非一時的コンピュータ可読記録媒体。
【請求項３０】
前記プロセッサが、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはリンクを有するハンドヘルドコンピュータのうちの少なくとも1つを備えるポータブルコンピューティングデバイスに含まれる、請求項24に記載の非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
デスクトップ、ラップトップまたはタブレットコンピュータ、スマートフォン、携帯情報端末、ポータブルゲーム機などのコンピューティングデバイスは、中央処理装置、グラフィック処理装置、デジタル信号プロセッサなどの1つまたは複数のプロセッサを含む。コンピュータ周辺デバイスなどの他の電子デバイス、ならびに従来はコンピューティングデバイスと呼ばれていない家庭用電子デバイスもまた、1つまたは複数のプロセッサを含み得る。コンピューティングデバイスおよび他のデバイスにおいては、そのようなプロセッサは、プロセッサが1つまたは複数のバスを介して通信するシステムメモリから命令またはソフトウェアコードを読み取り、そのコードの実行に従ってタスクを実行または管理する。複数のタスクを管理するために、プロセッサはこのようにプログラムされ得る。便宜上ソフトウェアイメージと呼ばれ得るコードおよびデータの単位は、約数百または数千のタスクのプロセッサの管理をサポートすることができる。高いスループットを促進するために、システムメモリは、ダブルデータレートダイナミックランダムアクセスメモリ(DDR-DRAM)などの高速動作が可能なタイプのものであり得る。
【０００２】
ポータブルデバイスなどのいくつかのタイプのデバイスはシステムメモリ(ストレージ)の量が比較的限られており、そのためメモリはソフトウェアイメージ全体を記憶することができない。この問題に対処するために、一般にデマンドページングとして知られている技法が使用され得る。デマンドページングにおいては、ソフトウェアイメージのサブセットが二次メモリに記憶され、プロセッサによって開始されたページ要求に応答して、必要に応じてページ単位でシステムメモリに転送される。二次メモリは、システムメモリよりも遅いタイプのものであり得る。結果として、デマンドページングは、二次メモリが許可するよりも速くプロセッサがメモリにアクセスすることを要求するタスクの性能に影響を与える可能性がある。
【０００３】
ソフトウェアイメージのサブセットが圧縮された形でシステムメモリに記憶されるデマンドページング技法が開発されている。プロセッサによって開始されたページ要求に応答して、ソフトウェアイメージの一部が解凍され、次いで、結果として得られたページはプロセッサによるアクセスのためにシステムメモリに記憶される。
【発明の概要】
【課題を解決するための手段】
【０００４】
適応型圧縮ベースのデマンドページングのためのシステム、方法およびコンピュータプログラムが開示される。
【０００５】
デマンドページングのための例示的な方法では、複数の圧縮されたソフトウェアイメージセグメントがメモリに記憶される。各圧縮されたソフトウェアイメージセグメントは、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに対応する。各圧縮されたソフトウェアイメージセグメントは、圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性であって、他の圧縮されたソフトウェアイメージセグメントの圧縮特性とは異なる圧縮特性に従って圧縮される1つまたは複数のページを備える。実行中のソフトウェアタスクに関連付けられたページ要求に応答して、ページ要求がメモリに記憶されたページを識別するかどうかが決定される。識別されたページがメモリに記憶されていない場合、識別されたページを含む圧縮されたソフトウェアイメージセグメントのうちの1つの一部が解凍されたページへと解凍される。次いで、解凍されたページがメモリに記憶される。
【０００６】
デマンドページングのための例示的なシステムは、メモリおよびプロセッサを含む。メモリは、複数の圧縮されたソフトウェアイメージセグメントを記憶するように構成される。各圧縮されたソフトウェアイメージセグメントは、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに対応する。各圧縮されたソフトウェアイメージセグメントは、圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性であって、他の圧縮されたソフトウェアイメージセグメントの圧縮特性とは異なる圧縮特性に従って圧縮される1つまたは複数のページを備える。プロセッサは、実行中のソフトウェアタスクに関連付けられたページ要求がメモリに記憶されたページを識別するかどうかを決定することと、識別されたページがメモリに記憶されていない場合、識別されたページを含む圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍することと、ページ要求に応答して、解凍されたページをメモリに記憶することとを行うように構成される。
【０００７】
デマンドページングのための例示的なコンピュータプログラム製品は、非一時的記憶媒体に組み込まれたコンピュータ実行可能ロジックを含む。プロセッサによるロジックの実行は、プロセッサが、実行中のソフトウェアタスクに関連付けられたページ要求がメモリに記憶されたページを識別するかどうかを決定することであって、メモリが、複数の圧縮されたソフトウェアイメージセグメントを記憶し、各圧縮されたソフトウェアイメージセグメントが、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに対応し、各圧縮されたソフトウェアイメージセグメントが、圧縮されたソフトウェアイメージセグメントに関連付けられた圧縮特性であって、他の圧縮されたソフトウェアイメージセグメントの圧縮特性とは異なる圧縮特性に従って圧縮される1つまたは複数のページを備える、決定することと、識別されたページがメモリに記憶されていない場合、識別されたページを含む圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍することと、ページ要求に応答して、解凍されたページをメモリに記憶することとを行うように構成する。
【０００８】
図面においては、特に断らない限り、様々な図を通して同様の参照番号は同様の部分を指す。「102A」または「102B」などの文字記号(letter character designation)を用いた参照番号については、その文字記号は、同じ図面内に存在する2つの同様の部分または要素を区別することができる。参照番号の文字記号は、すべての部分を包含する参照番号が、すべての図面において同じ参照番号を有することが意図されるときには、省略されることがある。
【図面の簡単な説明】
【０００９】
【図１】例示的な実施形態による、圧縮ベースのデマンドページングのための処理システムのブロック図である。
【図２】例示的な実施形態による、圧縮ベースのデマンドページングのための例示的な方法を示す流れ図である。
【図３】例示的な実施形態による、タスク、圧縮されたソフトウェアイメージセグメント、および圧縮ロジック要素間の関係または関連付けを示すチャートである。
【図４】図3と同様であり、クロックおよび電圧設定との関連付けをさらに示す図である。
【図５Ａ】図2と同様の流れ図である。
【図５Ｂ】図5Aの流れ図の続きである。
【図６】例示的な実施形態による、図1のシステムを有するモデムの正面図であり、ラップトップコンピュータのUSBポートに接続されたモデムを示す図である。
【図７】例示的な実施形態による、図1のシステムを有するプロセッサを備えたコンピュータのブロック図である。
【図８】例示的な実施形態による、図1のシステムを有するポータブル通信デバイスのブロック図である。
【図９Ａ】図2および図5A〜図5Bと同様の流れ図である。
【図９Ｂ】図9Aの流れ図の続きである。
【発明を実施するための形態】
【００１０】
「例示的な」という用語は、本明細書においては、「1つの例、事例、または例証としての機能を果たす」を意味するように使用される。「例示的な」として本明細書において説明される任意の態様は、必ずしも、他の態様よりも好ましい、または他の態様よりも有利であるように解釈されるべきものとは限らない。
【００１１】
「構成要素」、「データベース」、「モジュール」、「システム」という用語、および同様のものは、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータに関連するエンティティを指すように意図されている。たとえば、構成要素は、これだけに限らないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、コンピューティングデバイス上で動作するアプリケーションとコンピューティングデバイスとはともに構成要素とすることができる。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在することができ、また構成要素は、1つのコンピュータ上に局所化される、かつ/または2つ以上のコンピュータ間で分散され得る。さらに、これらの構成要素は、様々なデータ構造がその上に記憶された様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素と、かつ/またはインターネットなどのネットワークを介して、信号により他のシステムと対話する1つの構成要素からのデータなど)を有する信号によるなど、ローカルおよび/または遠隔のプロセスにより通信することができる。
【００１２】
「アプリケーション」または「画像」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルを含み得る。さらに、本明細書で「アプリケーション」と呼ばれるものはまた、開く必要があり得るドキュメント、またはアクセスする必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含み得る。
【００１３】
「コンテンツ」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能コンテンツを有するファイルを含み得る。加えて、本明細書で言及する「コンテンツ」はまた、開く必要があり得るドキュメント、またはアクセスする必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含み得る。
【００１４】
「タスク」という用語は、プロセス、スレッド、またはデバイス内の他の任意の実行単位を含み得る。
【００１５】
「仮想メモリ」という用語は、メモリを参照しているアプリケーションまたはイメージから見た実際の物理メモリの抽象化を指す。仮想メモリアドレスを物理メモリアドレスに変換するために、変換またはマッピングが使用され得る。マッピングは、1対1(たとえば、物理アドレスが仮想アドレスに等しい)のように単純でもよく、中程度に複雑(たとえば、物理アドレスが仮想アドレスからの一定のオフセットに等しい)でもよく、またはマッピングは複雑でもよい(たとえば、すべての4KBページが一意にマッピングされる)でもよい。マッピングは、静的である(たとえば、起動時に一度実行される)場合があり、または、動的である(たとえば、メモリが割り振られ、解放されるのに伴い連続的に進展する)場合がある。
【００１６】
この説明においては、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は互換的に使用される。第3世代(「3G」)ワイヤレス技術と第4世代(「4G」)の出現により、より広い帯域幅の可用性が、より多様な無線機能を備えたよりポータブルなコンピューティングデバイスを可能にした。「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリなどの限られた容量の電源で動作し、余分な熱エネルギーを除去するための(すなわち、ファンなどの冷却のための)システムがない、任意のデバイスを説明するために使用される。PCDは、とりわけ、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダ、メディアプレーヤ、ワイヤレス接続を備えたラップトップまたはハンドヘルドコンピュータ、あるいは前述のデバイスの組合せであり得る。
【００１７】
図1に示されるように、例示的な実施形態では、システム100は、プロセッサ102およびシステムメモリ104を備える。プロセッサ102およびシステムメモリ104は、データバスシステム106を介して通信する。プロセッサ102は、複数のタスク108を制御または管理するために、ソフトウェア、すなわちプログラミングを通じて構成される。タスク108は、たとえば、6つのタスク108a、108b、108c、108d、108e、および108fを備えることができる。これらの6つのタスク108a〜108fは、例示的な実施形態に関連して例示のために本明細書に記載されているが、他の任意の数のタスク108が他の実施形態に存在してもよい。当業者には理解されるように、便宜上「ソフトウェアイメージ」と呼ばれ得るコードおよびデータの単位は、約数百または数千のタスク108のプロセッサの制御または管理をサポートすることができる。図1においては、タスク108a〜108fは、プロセッサ102内に存在するものとして例示のために概念的に示されているが、当業者であれば、タスク108a〜108fは、ソフトウェアの制御下でプロセッサ102において生じるロジックによって定義されることを理解するであろう。
【００１８】
例示的な実施形態では、たとえば、メモリ104が、タスク108a〜108fのプロセッサ102による制御に関連付けられるソフトウェアイメージ全体を含むために十分な記憶容量を有していない場合があるため、デマンドページングの形式が使用される。それにもかかわらず、他の実施形態では、本明細書に記載の方法およびシステムは、ソフトウェアイメージを含むために十分なシステムメモリがあるかどうかにかかわらず使用され得る。以下でさらに詳細に説明するように、デマンドページング方法はデータ圧縮を使用する。
【００１９】
例示的な実施形態では、2つ以上の圧縮されたソフトウェアイメージセグメント110を形成するために、ソフトウェアイメージの一部が圧縮される。圧縮されたソフトウェアイメージセグメント110は、たとえば、3つの圧縮されたソフトウェアイメージセグメント110a、110b、および110cを備えることができる。圧縮されたソフトウェアイメージセグメント110a〜110cは、メモリ104に記憶される。これらの3つの圧縮されたソフトウェアイメージセグメント110a〜110cは、例示的な実施形態に関連して例示のために本明細書に記載されているが、他の任意の数の圧縮されたソフトウェアイメージセグメント110が他の実施形態に存在してもよい。圧縮されたソフトウェアイメージセグメント110a、110b、および110cは、明確にするために、互いから分離されているものとして示されているが、それらは連続したメモリアドレス空間を占有してもよい。
【００２０】
ソフトウェアイメージの別の部分はまた、非圧縮形式でメモリ104に記憶され得る。ソフトウェアイメージのこの非圧縮部分の一部または全部は、ページプール112の形態であってもよい。ページプール112は、明確にするために、圧縮されたソフトウェアイメージセグメント110から分離するものとして示されているが、ページプール112および圧縮されたソフトウェアイメージセグメント110は、連続したメモリアドレス空間を占有してもよい。
【００２１】
圧縮されたソフトウェアイメージセグメント110a〜110cの各々は、固有の圧縮特性に従って圧縮される1つまたは複数のページを備える。すなわち、圧縮されたソフトウェアイメージセグメント110aは、圧縮されたソフトウェアイメージセグメント110bおよび110cがそれぞれ圧縮される圧縮特性とは異なる圧縮特性に従って圧縮され、圧縮されたソフトウェアイメージセグメント110bは、圧縮されたソフトウェアイメージセグメント110aおよび110cがそれぞれ圧縮される圧縮特性とは異なる圧縮特性に従って圧縮され、圧縮されたソフトウェアイメージセグメント110cは、圧縮されたソフトウェアイメージセグメント110aおよび110bがそれぞれ圧縮される圧縮特性とは異なる圧縮特性に従って圧縮される。以下でさらに詳細に説明されるように、圧縮特性は、たとえば、圧縮アルゴリズム、圧縮ブロックサイズ、または圧縮アルゴリズムと圧縮ブロックサイズとの組合せであってもよい。
【００２２】
圧縮されたソフトウェアイメージセグメント110の各々は、タスク108のうちの少なくとも1つに関連付けられる。たとえば、図1に示されるように、圧縮されたソフトウェアイメージセグメント110aがタスク108aに関連付けられ、圧縮されたソフトウェアイメージセグメント110bがタスク108bおよび108cに関連付けられ、圧縮されたソフトウェアイメージセグメント110cがタスク108d、108e、および108fに関連付けられる。図1では、圧縮されたソフトウェアイメージセグメント110のうちの1つとタスク108のうちの1つとの間の断続線または破線は、そのような関連付けを示す。図1に示される圧縮されたソフトウェアイメージセグメント110とタスク108との間の関連付けは例示的なものにすぎないことが意図され、すなわち、例示的な実施形態に関連して説明するためのものであることが理解されるべきである。
【００２３】
解凍ロジック114はまた、図1において解凍ロジック要素114a、114b、および114cによって示されるように、圧縮されたソフトウェアイメージセグメント110およびタスク108に関連付けられる。解凍ロジック要素114a、114b、および114cの各々は、固有の圧縮特性に従って解凍を実行するロジックを表す。すなわち、解凍ロジック要素114aは、解凍ロジック要素114bおよび114cがそれぞれ解凍を実行する圧縮特性とは異なる圧縮特性に従って解凍を実行し、解凍ロジック要素114bは、解凍ロジック要素114aおよび114cがそれぞれ解凍を実行する圧縮特性とは異なる圧縮特性に従って解凍を実行し、解凍ロジック要素114cは、解凍ロジック要素114aおよび114bがそれぞれ解凍を実行する圧縮特性とは異なる圧縮特性に従って解凍を実行する。解凍ロジック要素114a、114b、および114cは、明確にするために、互いに異なるものとして図1に示されているが、それらのロジックがいくつかの共通のソフトウェア機能を共有し得るという意味で、それらのロジックが重複し得ることを当業者は理解している。さらに、解凍ロジック要素114a〜114cの1つまたは複数は、解凍作業の一部または全部をハードウェアベースの解凍ロジック115にオフロードすることができる。また、図1では、解凍ロジック要素114a〜114cおよびタスク108a〜108fは、プロセッサ102内に存在するものとして示すために概念的に描かれているが、これらの要素がプロセッサ102内のソフトウェアの実行によって生じるロジックによって定義されることを当業者は理解している。
【００２４】
例示的な方法に関して以下で説明されるように、圧縮されたソフトウェアイメージセグメント110a、110b、および110cの各々は、ページプール112に解凍され得る1つまたは複数のページを備える。解凍ロジック要素114aは、ソフトウェアイメージセグメント110aの一部を解凍するために使用され得る。解凍ロジック要素114bは、ソフトウェアイメージセグメント110bの一部を解凍するために使用され得る。解凍ロジック要素114cは、ソフトウェアイメージセグメント110cの一部を解凍するために使用され得る。
【００２５】
図2に示されるように、例示的な実施形態では、方法200は、たとえば、上述のシステム100におけるデマンドページングに関する。ブロック202によって示されるように、圧縮されたソフトウェアイメージセグメント110a、110b、および110cが生成され、メモリ104に記憶される。圧縮されたソフトウェアイメージセグメント110a、110b、および110cを生成および記憶するために、ソフトウェアツール(図示せず)が使用され得る。ソフトウェアイメージセグメント110a、110b、および110cは、タスク108の動作に先立って生成および記憶され得る。一般に「ビルド時間」と呼ばれる様々なロジック要素が初期化され記憶されるより早い時間とは対照的に、タスク108が動作中である時間は一般に「ランタイム」または「実行時間」と呼ばれる。そのようなソフトウェアツールがビルド時間に使用され得るやり方は、以下でより完全に説明される。図2では、ブロック202は、実行時間の行為またはステップではなく例示的な実施形態における方法フローにおけるビルド時間の行為またはステップを示すために破線で示されている。それにもかかわらず、他の実施形態では、行為またはステップが他の時間に発生してもよい。
【００２６】
ブロック204によって示されるように、タスク108a〜108fのうちの1つは、ページ要求を開始することができる。当業者にはよく理解されるように、ページ要求は、そのページに対応するソフトウェアイメージの一部がメモリ内に存在していない時に、処理システムが、ページとして知られているメモリ空間の単位内のシステムメモリアドレスにアクセスしようと試みるときに発生し得る。ページングは以下でさらに詳細に説明される。
【００２７】
ブロック206によって示されるように、ページ要求に応答して、要求されたページを含む圧縮されたソフトウェアイメージの一部が解凍される。解凍は、(圧縮された形式で)要求されたページを含む圧縮されたソフトウェアイメージセグメント110の1つに関連付けられた解凍ロジック114を使用して実行される。したがって、図1に示される例示的な実施形態では、タスク108aが圧縮されたソフトウェアイメージセグメント110a内に含まれるページを要求する場合、解凍ロジック114aは要求されたページを解凍する。同様に、タスク108bまたは108cが圧縮されたソフトウェアイメージセグメント110b内に含まれるページを要求する場合、解凍ロジック114bは要求されたページを解凍する。同様に、タスク108d、108e、または108fが圧縮されたソフトウェアイメージセグメント110c内に含まれるページを要求する場合、解凍ロジック114cは要求されたページを解凍する。ブロック208によって示されるように、解凍されたページは、次いでシステムメモリ104(図1)のページプール112に記憶される。
【００２８】
図3に示されるように、タスク108a〜108fが、それらの相対的レイテンシ許容度(および、対応する優先順位)の順にランク付けまたは配列されて示されている。「レイテンシ」は、タスク108のページ要求の開始とページプール112においてページが利用可能になったのとの間の時間の量である。「レイテンシ許容度」は、公称値またはしきい値を超えるレイテンシがタスクのパフォーマンスに影響を与える程度を指す。図3において、タスク108aは、タスク108a〜108fの中で最も低いレイテンシ許容度を有する。このため、タスク108aに関連付けられる圧縮されたソフトウェアイメージセグメント110aは、高速解凍を提供する圧縮特性に従って圧縮される。上述のように、そのような圧縮特性は、圧縮アルゴリズム、圧縮ブロックサイズ、またはその両方の組合せを備え得る。あるアルゴリズムが他のアルゴリズムよりも速くデータを解凍することは、当業者にはよく理解されている。(トレードオフは、一般に、解凍速度と圧縮比との間の反比例の関係である)。データが小さいブロックサイズで圧縮される方式は、一般に、より大きいブロックサイズでデータが圧縮される方式よりも速い解凍を容易にすることも、当業者にはよく理解される。したがって、解凍ロジック要素114aは、たとえば、高速圧縮アルゴリズムおよび小さいブロックサイズによって特徴付けられ得る。
【００２９】
図3では、タスク108bは、タスク108aのレイテンシ許容度より大きいが、タスク108cのレイテンシ許容度より小さいレイテンシ許容度を有する(例示的な目的のために、この実施形態では「中程度の」レイテンシ許容度と呼ばれ得る)。タスク108bおよび108cは同様の十分なレイテンシ許容度を有することができるので、他のタスク108に関連して一緒にグループ化される。したがって、タスク108bおよび108cの両方に関連付けられる圧縮されたソフトウェアイメージセグメント110bは、圧縮されたソフトウェアイメージセグメント110aが圧縮される特性よりも遅い解凍を提供する圧縮特性に従って圧縮されるが、圧縮されたソフトウェアイメージセグメント110cが圧縮される特性よりも速い解凍を提供する圧縮特性に従って圧縮される。したがって、解凍ロジック要素114bは、たとえば、解凍ロジック要素114aを特徴付けるアルゴリズムおよびブロックサイズよりも遅い圧縮アルゴリズムおよびより大きいブロックサイズ(すなわち、「中程度の」速度のアルゴリズム、および「中程度の」ブロックサイズ)によって特徴付けられ得る。
【００３０】
レイテンシ許容度の順に続けて、タスク108dはタスク108cよりも高いレイテンシ許容度を有し、タスク108eはタスク108dよりも高いレイテンシ許容度を有し、タスク108fはタスク108a〜108fの中で最も高いレイテンシ許容度を有することが注目される。タスク108d〜108fは同様の十分なレイテンシ許容度を有することができるので、他のタスク108に関連して一緒にグループ化される。したがって、タスク108d〜108fの各々に関連付けられる圧縮されたソフトウェアイメージセグメント110cは、圧縮されたソフトウェアイメージセグメント110bが圧縮される特性よりも遅い解凍を提供する圧縮特性に従って圧縮される。したがって、解凍ロジック要素114cは、たとえば、解凍ロジック要素114bを特徴付けるアルゴリズムおよびブロックサイズよりも遅い圧縮アルゴリズムおよびより大きいブロックサイズによって特徴付けられ得る。
【００３１】
例示的な実施形態では、より低いレイテンシ許容度またはより高い優先順位を有するタスク108に対応するソフトウェアイメージセグメント110のみを解凍する際にハードウェアベースの解凍ロジック115を使用することによって、解凍速度におけるさらなる差異が提供され得る。たとえば、解凍ロジック要素114aは、解凍作業をハードウェアベースの解凍ロジック115にオフロードすることができるが、解凍ロジック要素114bおよび114cは、解凍作業をそれら自体で実行する(すなわち、ハードウェアベースの解凍ロジック115の助けを借りずにソフトウェアベースの計算として)。あるいは、解凍ロジック要素114aおよび114bは、解凍作業をハードウェアベースの解凍ロジック115にオフロードすることができるが、解凍ロジック要素114cは解凍作業を実行する。
【００３２】
場合によっては、タスクのレイテンシ許容度とタスクの優先順位との間に反比例の関係が存在する場合がある。タスクの「優先順位」は、他のタスクのパフォーマンスに関連するタスクのパフォーマンスが、タスクを含むシステムのパフォーマンス結果に影響を与える程度に関係する。別のタスクよりも大きな影響をシステムパフォーマンスに与えるタスクは、他のタスクよりも高い優先順位を割り当てられ得る。タスクは、他のいくつかのタスクよりもレイテンシ許容度が高く、優先順位が低くなる場合がある。逆に、タスクは、他のいくつかのタスクよりもレイテンシ許容度が低く、優先順位が高くなる場合がある。
【００３３】
例示的な実施形態では、システムクロックおよび/または電圧レベルは、タスクの優先順位に応じて、たとえば、動的電圧および周波数スケーリング(DVFS)技法を用いて調整され得る。図4に示されるように、例示的な実施形態では、タスク108の各グループは、固有のDVFSレベルまたは設定に関連付けられる。これに対応して、各圧縮されたソフトウェアイメージセグメント110は、固有のDVFSレベルまたは設定に関連付けられる。たとえば、タスク108a、およびそれに対応して、圧縮されたソフトウェアイメージセグメント110aは、システム100(図1)またはその一部(たとえば、プロセッサ102)が高速で動作することを可能にする「高い」DVFS設定に関連付けられる。タスク108bおよび108c、およびそれに対応して、圧縮されたソフトウェアイメージセグメント110bは、システム100またはその一部が中程度の速度で動作することを可能にする「中程度の」DVFS設定に関連付けられる。タスク108d〜108f、およびそれに対応して、圧縮されたソフトウェアイメージセグメント110cは、システム100またはその一部が低速で動作することを可能にする「低い」DVFS設定に関連付けられる。したがって、例示的な実施形態では、タスク108の優先順位が高いほど、システムはより速く動作することができる。
【００３４】
例示的な実施形態では、より高い優先順位のタスクに関連付けられるソフトウェアイメージセグメントは、圧縮されて、低いレイテンシ(すなわち、高いアクセス速度)によって特徴付けられるシステムメモリに記憶され得るが、より低い優先順位のタスクに関連付けられるソフトウェアイメージセグメントは、圧縮され、システムメモリよりも高いレイテンシ(すなわち、より低いアクセス速度)によって特徴付けられる二次メモリに記憶され得る。たとえば、図4に概念的に示されるように、圧縮されたソフトウェアイメージセグメント110aおよび110bはシステムメモリ内のストレージに関連付けられ得るが、圧縮されたソフトウェアイメージセグメント110cは、二次メモリ内のストレージに関連付けられ得る。そのようなシステムメモリおよび二次メモリの例を以下に説明する。
【００３５】
図5Aおよび図5Bでは、上述の例示的な方法200と同様の例示的な方法500が示されている。ブロック502は、上述のブロック202と同様である。圧縮されたソフトウェアイメージセグメント110を生成するために、ソフトウェアツール(図示せず)が使用され得る。ツールはソフトウェアイメージと圧縮特性を入力として受け取る。ツールはまた、様々なタスク108とそれぞれのレイテンシ許容度および/または優先順位を識別する情報を受け取ることができる。そのような情報は、当業者によって理解されるように、経験的にまたは他の方法で決定され得る。このツールは、図3〜図4に関して上述したように、レイテンシ許容度および/または優先順位の順にランク付けされたタスク108の順序付けられたリストを維持する。ツールは、複数の圧縮アルゴリズムおよび圧縮ブロックサイズを含み、タスク108のうちの1つまたは複数の各グループを、ランク付けに対応するレイテンシ許容度および/または優先順位を達成する圧縮アルゴリズムおよびブロックサイズの組合せと関連付けることができる。ツールは、これらの入力を使用して、メモリ104内に記憶するために圧縮されたソフトウェアイメージセグメント110を生成することができる。
【００３６】
ブロック501は、上述のブロック204と同様である。さらに詳細には、ブロック501はブロック504、506、508、510、および512を備える。ブロック504によって示されるように、タスク108a〜108fのうちの1つは、ページ要求を開始することができる。ページ要求は、要求されたページの仮想アドレスによって識別される。ブロック506によって示されるように、変換ルックアサイドバッファ、すなわち「TLB」(図示せず)を使用して、仮想アドレスはメモリ104内の物理アドレスに変換され得る。ブロック508によって示されるように、TLB内に物理アドレスが存在するかどうかが決定される。物理アドレスがTLB内に存在するという決定は、一般に「TLBヒット」と呼ばれる。物理アドレスがTLB内に存在しないという決定は、一般に「TLBミス」と呼ばれる。TLBヒットが発生しなかった(すなわち、TLBミスが発生した)と決定された場合、ブロック510によって示されるように、物理アドレスがページテーブル(図示せず)内に存在するかどうかが決定される。物理アドレスがページテーブル内に存在するという決定は、一般に「ページテーブルヒット」と呼ばれる。物理アドレスがページテーブルに存在しないという決定は、一般に「ページテーブルミス」と呼ばれる。TLBヒットもページテーブルヒットも発生していない(すなわち、TLBミスとページテーブルミスの両方が発生した)と決定された場合、タスク108a〜108fのうちの要求している1つに関連付けられるソフトウェアイメージセグメント110a〜110cの1つの一部が解凍される。ブロック514と同様のブロック206に関して上述したように、この解凍は、要求されたページを含む圧縮されたソフトウェアイメージセグメント110a〜110cの1つに関連付けられた解凍ロジック要素114a〜114cのうちの1つを使用して実行される。
【００３７】
上述したページングおよび解凍に関連して、ブロック513によって示されるように、システム100(図1)は、電圧またはクロック周波数などのDVFS特性を、要求するタスク108に関連付けられる(および、それに対応して、要求されたページを含む圧縮されたソフトウェアイメージセグメント110a〜110cのうちの1つに関連付けられる)設定またはレベルに設定するように調整され得る。たとえば、DVFS特性は、一時的に設定され、解凍が実行されている間に使用され、次いで以前の設定に戻され得る。もちろん、DVFS特性が、要求するタスク108に関連付けられるレベルまたは設定にすでに設定されている場合、ブロック513ごとに同じレベルまたは設定に再度設定する必要はなく、その当時の設定を維持することができる。
【００３８】
引き続き図5Bを参照すると、上述のブロック208と同様のブロック516によって示されるように、解凍されたページはメモリ104内のページプール112に記憶される。
【００３９】
ブロック518によって示されるように、解凍されたページは、ページテーブルおよびTLBにマッピングされる。TLBおよびページテーブルの管理は、当業者によって十分に理解されているので、そのようなプロセスのさらなる詳細はここでは説明しない。デマンドページングロジック519(図1)は、上述のページングを制御するようにプロセッサ102を構成するのに寄与することができ、解凍ロジック要素114は、上述の解凍を制御するようにプロセッサ102を構成するのに寄与することができる。
【００４０】
ブロック520によって示されるように、DVFS特性は、上述の解凍に続いて以前の設定に戻され得る。しかしながら、2つ以上の解凍が直ちに連続して、こうした1つの解凍に続いて実行され、こうした1つの解凍に続いてDVFS特性が、次の解凍に関連付けられる要求するタスク108に関連付けられるレベルまたは設定にすでに設定されている場合、DVFS特性は、ブロック520ごとにその以前のレベルまたは設定に戻る必要はなく、その当時の設定を維持することができる。上述したページング、解凍、およびDVFS調整に続いて、要求するタスク108はメモリ104内の解凍されたページにアクセスすることができ、そうでなければ実行を続けることができる。
【００４１】
TLBまたはページテーブルのいずれかにヒットがあったと決定された場合、ブロック514および516に関して上述した解凍も、ブロック520に関して上述したDVFS調整も実行されない。ページヒットは、要求されたページがすでにメモリ104にあることを示すので、要求するタスクはそのページにアクセスすることができ、そうでなければ実行を続けることができる。
【００４２】
上述の方法ステップまたは行為のうちの1つまたは複数は、コンピュータプログラム命令としてメモリ104に記憶され得ることを理解されたい。これらの命令は、本明細書に記載された方法を実行するために、任意のタイプのデバイス内の任意のタイプのプロセッサ102によって実行され得る。
【００４３】
例示的な実施形態が述べられたように動作するために、上記で述べたプロセスの流れにおけるいくつかの行為またはステップは、他のものよりも当然先行するが、本発明は、これらの行為またはステップの順序に、そのような順序またはシーケンスが本発明の機能を改変しない限り、限定されることはない。すなわち、本発明の範囲および趣旨から逸脱することなしに、いくつかの行為またはステップが他の行為またはステップの前、後、または並列に(実質的に同時に)実行され得ることが認識される。いくつかの事例では、いくつかの行為またはステップが、本発明から逸脱することなく除外される、または実施されないこともあり得る。さらに、「その後」、「次いで(then)」、「次に(next)」などの用語は、行為またはステップの順序を限定するようには意図されていない。これらの用語は、単に、例示的な方法の記述を通して読者をガイドするために使用されるにすぎない。
【００４４】
さらに当業者は、たとえば、本明細書の流れ図および関連する記述に基づき、開示された本発明を実施するためのコンピュータコードを容易に記述し、または適切なハードウェアおよび/または回路を識別することができる。
【００４５】
したがって、特定のセットのプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明の作成および使用方法の十分な理解のために必ずしも必要ではないと考えられる。特許請求されるコンピュータで実施されるプロセスの発明性のある機能は、上記の記述で、かつ様々なプロセスの流れを示すことのできる図面と併せて説明されている。
【００４６】
1つまたは複数の例示的な態様において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実施される場合、機能は、コンピュータ可読媒体上に記憶されたコンピュータで実行可能な命令またはコードで実施することができる。コンピュータ可読媒体は、コンピュータ、または同様のコンピューティングもしくは通信デバイスによりアクセスされ得る任意の利用可能な媒体を含む。限定するものではないが、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、NANDフラッシュ、NORフラッシュ、M-RAM、P-RAM、R-RAM、CD-ROM、または他の光学的、磁気的、ソリッドステートなどのデータ記憶媒体を含むことができる。非一時的なコンピュータ可読記憶媒体と、プロセッサにより実行するために、それに記憶されたコンピュータ実行可能ロジックまたは命令との組合せは、特許の語彙でその用語が理解される「コンピュータプログラム製品」を定義することに留意されたい。
【００４７】
図6に示されるように、例示的な実施形態では、上述したシステム100は、ラップトップコンピュータ604または同様のデバイスのユニバーサルシリアルバス(「USB」)ポートに差し替え可能なタイプのワイヤレスモデム602に含まれ得る。潜在的な問題は、モデム602がソフトウェアイメージ全体を含むために十分なメモリを欠く可能性があるだけではなく、モデム602はまたコンピュータ604内のメモリ(図示せず)からページングすることができない可能性があることである。たとえモデム602がラップトップコンピュータ604内のメモリからページングすることができる場合であっても、レイテンシは、一部またはすべてのタスク108のレイテンシ許容度を超える可能性がある。この例示的な実施形態は、メモリ104からの上述したページングおよびメモリ104への解凍を提供することによって、この潜在的な問題に対処する。
【００４８】
図7に示されるように、他の例示的な実施形態では、上述のシステム100(図1)は、コンピュータシステム700または同様のコンピューティングデバイスのいくつかの異なるタイプのプロセッサのいずれかに含まれ得る。1つの例示的な実施形態では、システム100は中央処理装置(「CPU」)702に含まれ得る。別の例示的な実施形態では、システム100はグラフィックス処理装置(「GPU」)704に含まれ得る。別の例示的な実施形態では、システム100はビデオプロセッサ706に含まれ得る。
【００４９】
そのような例示的な実施形態では、コンピュータシステム700は、システムメモリ708と、固定式媒体(たとえば、フラッシュメモリ、eMMC、磁気ディスクなど)データストレージ710およびリムーバブル媒体ドライブ712(たとえば、DVD-ROM、CD-ROM、Blu-ray(登録商標)ディスクなど)などの大容量ストレージデバイスとをさらに含み得る。たとえば、リムーバブル媒体ドライブ712は、DVD-ROM713を受け入れることができる。本明細書で使用される用語「ディスク(disk)」および「ディスク(disc)」は、コンパクトディスク(「CD」)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(「DVD」)、フロッピーディスク、およびBlu-ray(登録商標)ディスクを含む。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれる。コンピュータシステム700はまた、ユーザインターフェースデバイス、またはマウス716およびキーボード718などの他の周辺デバイスが接続され得るUSBポート714を含む。さらに、コンピュータシステム700は、コンピュータシステム700とインターネットなどの外部ネットワークとの間の通信を可能にするためのネットワークインターフェース720を含み得る。ユーザインターフェース周辺デバイスはまた、ビデオプロセッサ706に接続され得るビデオモニタ722を含み得る。
【００５０】
図9A〜図9Bでは、図5A〜図5Bに関して上述した例示的な方法500と同様の例示的な方法900が示されている。ブロック902および903は、ソフトウェアイメージセグメントが圧縮されてメモリに記憶されるという点で、上述のブロック502と同様である。しかしながら、例示的な方法500とは異なり、例示的な方法900では、より高い優先順位のタスクに関連付けられるソフトウェアイメージセグメントと、より低い優先順位のタスクに関連付けられるソフトウェアイメージセグメントとの間で区別がなされる。ブロック902によって示されるように、より高い優先順位のタスクに関連付けられるソフトウェアイメージセグメントは圧縮され、ブロック502に関して上述したのと同じように、上述したシステムメモリ104(図1)または上述したシステムメモリ708(図7)などの高速システムメモリに記憶される。しかしながら、ブロック903によって示されるように、より低い優先順位のタスクに関連付けられるソフトウェアイメージセグメントは圧縮され、システムメモリよりも高いレイテンシ、すなわち低速によって特徴付けられる二次メモリまたは同様のデータストレージに記憶される。そのような二次メモリは、たとえば、上述したデータ記憶ストレージ710(図7)などのフラッシュメモリであってもよい。あるいは、図6に示される実施形態に関して、そのような二次メモリ(たとえば、フラッシュメモリ)は、コンピュータ604に含まれてもよい。
【００５１】
ブロック901は、上述したブロック501と同様である。ブロック501に関して上述したように、ページフォールト(page fault)が発生したと決定された場合、要求するタスクに関連付けられるソフトウェアイメージセグメントの一部が取得され、解凍される。ブロック914によって示されるように、要求するタスクが高い優先順位および/または低いレイテンシ許容度を有する場合、解凍されるべきソフトウェアイメージセグメント部分はシステムメモリから取り出され、そのソフトウェアイメージセグメントは上述のブロック902に従って記憶される。対照的に、ブロック915によって示されるように、要求するタスクが低い優先順位および/または高いレイテンシ許容度を有する場合、解凍されるべきソフトウェアイメージセグメント部分は二次メモリから取り出され、そのソフトウェアイメージセグメントは上述のブロック903に従って記憶される。ブロック914または915のいずれかの場合、この解凍は、上記の他の実施形態におけるように、要求されたページを含む圧縮されたソフトウェアイメージセグメントに関連付けられる解凍ロジックを使用して実行される。したがって、例示的な方法200および500に関して上述したのと同じように、例示的な方法900において、使用される解凍ロジックは、要求するタスクの優先順位および/またはレイテンシ許容度に関連付けられる圧縮特性、すなわち、圧縮アルゴリズム、圧縮ブロックサイズ、およびDVFS設定のうちの1つまたは複数の組合せに関連付けられる。
【００５２】
図6に示される実施形態を再び参照すると、ワイヤレスモデム602は、より優先順位の高いタスクによって開始されたページ要求に応答して、その内部システムメモリからそのような圧縮ベースのページングを使用することができるが、より優先順位の低いタスクによって開始されたページ要求に応答して、コンピュータ604内の二次メモリから同じタイプの圧縮ベースのページングを使用する。
【００５３】
ブロック913は、DVFS特性が一時的に設定され、解凍が実行されている間に使用され、次いで以前の設定に戻され得る(ブロック920)という点で、上述のブロック513と同様である。もちろん、DVFS特性が、要求するタスク108に関連付けられるレベルまたは設定にすでに設定されている場合、ブロック913ごとに同じレベルまたは設定に再度設定する必要はなく、その当時の設定を維持することができる。引き続き図5Bを参照すると、ブロック916は、解凍されたページが高速システムメモリに記憶されるという点で、上述のブロック516と同様である。ブロック918および920は、それぞれ上述のブロック518および520と同様である。したがって、2つ以上の解凍が直ちに連続して実行され、こうした1つの解凍に続いてDVFS特性が、次の解凍に関連付けられる要求するタスク108に関連付けられるレベルまたは設定にすでに設定されている場合、DVFS特性は、ブロック920ごとにその以前のレベルまたは設定に戻る必要はなく、その当時の設定を維持することができる。
【００５４】
特定の態様では、本明細書に記載されている方法ステップのうちの1つまたは複数(図2、図5A〜図5B、および図9A〜図9Bに関して上述したものなど)が、コンピュータプログラム命令としてメモリ708に記憶され得る。これらの命令は、本明細書で説明する方法を実行するために、CPU702、GPU704、ビデオプロセッサ706、または別のプロセッサによって実行され得る。さらに、コンピュータプログラム命令によって構成されたCPU702、GPU704、ビデオプロセッサ706、またはメモリ708、あるいはそれらの組合せは、本明細書に記載された方法ステップのうちの1つまたは複数を実行するための手段として機能することができる。
【００５５】
図8に示されるように、上述のシステム100(図1)が含まれ得る別のタイプのコンピューティングデバイスは、モバイル電話などのポータブル通信デバイス800である。ポータブル通信デバイス800は、ともに結合されたCPUまたはDSP804およびアナログ信号プロセッサ806を含むオンチップシステム802を含む。DSP804は、上述したページングおよび解凍方法に関して上述したように動作するように構成され得る。ディスプレイコントローラ808およびタッチスクリーンコントローラ810は、DSP804に結合される。オンチップシステム802の外部のタッチスクリーンディスプレイ812は、ディスプレイコントローラ808およびタッチスクリーンコントローラ810に結合される。ビデオエンコーダ814、たとえば、位相反転線(「PAL」)エンコーダ、sequential couleur avec memoire(「SECAM」)エンコーダ、ナショナルテレビジョンシステム委員会(「NTSC」)エンコーダ、または他の任意のビデオエンコーダがDSP804に結合される。さらに、ビデオ増幅器816がビデオエンコーダ814およびタッチスクリーンディスプレイ812に結合される。ビデオポート818はビデオ増幅器816に結合される。USBコントローラ820はDSP804に接続される。USBポート822はUSBコントローラ820に接続される。メモリ104(図1)に関して上述したように動作し得るメモリ824は、DSP804に結合される。加入者識別モジュール(「SIM」)カード826およびデジタルカメラ828も、DSP804に結合され得る。例示的な態様では、デジタルカメラ828は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００５６】
ステレオオーディオコーデック830は、アナログ信号プロセッサ806に結合され得る。また、オーディオ増幅器832は、ステレオオーディオコーデック830に結合され得る。例示的な態様では、第1のステレオスピーカ834および第2のステレオスピーカ836は、オーディオ増幅器832に結合される。さらに、マイクロフォン増幅器838は、ステレオオーディオコーデック830に結合され得る。マイクロフォン840は、マイクロフォン増幅器838に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナ842がステレオオーディオコーデック830に結合され得る。また、FMアンテナ844がFMラジオチューナ842に結合される。さらに、ステレオヘッドフォン846は、ステレオオーディオコーデック830に結合され得る。
【００５７】
無線周波数(「RF」)トランシーバ848は、アナログ信号プロセッサ806に結合され得る。RFスイッチ850は、RFトランシーバ848とRFアンテナ852との間に結合され得る。RFトランシーバ848は、全地球測位システム(「GPS」)衛星と通信するのと同様に、モバイル電話ネットワークなどの従来の地上通信ネットワークと通信するように構成され得る。
【００５８】
マイクロフォン856を有するモノラルヘッドセットは、アナログ信号プロセッサ806に結合され得る。さらに、バイブレータデバイス858はアナログ信号プロセッサ806に結合され得る。電源860はオンチップシステム802に結合され得る。特定の態様では、電源860は、電力を必要とするポータブル通信デバイス800の様々な構成要素に電力を供給する直流(「DC」)電源である。さらに、特定の態様では、電源は、充電式DCバッテリ、またはAC電源に接続された交流(AC)からDC変圧器へと誘導されるDC電源である。
【００５９】
DVFSコントローラ862は、DSP804に結合され得る。DVFSコントローラ862は、DSP804に適用されるシステムクロック周波数などのDVFS特性に影響を与えるDVFS設定を調整することによって、DSP804から受信した制御信号に応答することができる。
【００６０】
キーパッド854は、アナログ信号プロセッサ806に結合され得る。タッチスクリーンディスプレイ812、ビデオポート818、USBポート822、カメラ828、第1のステレオスピーカ834、第2のステレオスピーカ836、マイクロフォン840、FMアンテナ844、ステレオヘッドフォン846、RFスイッチ850、RFアンテナ852、キーパッド854、モノラルヘッドセット856、バイブレータ858、および電源860は、オンチップシステム802の外部にある。
【００６１】
特定の態様では、本明細書に記載されている方法ステップのうちの1つまたは複数(図2、および図5A〜図5Bに関して上述したものなど)が、コンピュータプログラム命令としてメモリ824に記憶され得る。これらの命令は、本明細書で説明する方法を実行するために、DSP804、アナログ信号プロセッサ806、または別のプロセッサによって実行され得る。さらに、コンピュータプログラム命令によって構成されたDSP804、アナログ信号プロセッサ806、またはメモリ112、あるいはそれらの組合せは、本明細書に記載された方法ステップのうちの1つまたは複数を実行するための手段として機能することができる。
【００６２】
代替の実施形態は、その趣旨および範囲から逸脱することなしに、本発明が属する技術分野の当業者には明らかになるであろう。したがって、選択された態様が図示され詳細に説明されてきたが、以下の特許請求の範囲によって定義されるように、本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変が行われてよいことが理解されよう。
【符号の説明】
【００６３】
100  システム
102  プロセッサ
104  システムメモリ
104  メモリ
106  データバスシステム
108  タスク
108a  タスク
108b  タスク
108c  タスク
108d  タスク
108e  タスク
108f  タスク
110  圧縮されたソフトウェアイメージセグメント
110a  圧縮されたソフトウェアイメージセグメント
110b  圧縮されたソフトウェアイメージセグメント
110c  圧縮されたソフトウェアイメージセグメント
112  ページプール
112  メモリ
114  解凍ロジック
114a  解凍ロジック要素
114b  解凍ロジック要素
114c  解凍ロジック要素
115  ハードウェアベースの解凍ロジック
200  方法
500  方法
519  デマンドページングロジック
602  ワイヤレスモデム
602  モデム
604  ラップトップコンピュータ
604  コンピュータ
700  コンピュータシステム
702  中央処理装置
704  グラフィックス処理装置
706  ビデオプロセッサ
708  システムメモリ
710  データストレージ
712  リムーバブル媒体ドライブ
713  DVD-ROM
714  USBポート
716  マウス
718  キーボード
720  ネットワークインターフェース
722  ビデオモニタ
800  ポータブル通信デバイス
802  オンチップシステム
804  CPUまたはDSP
806  アナログ信号プロセッサ
808  ディスプレイコントローラ
810  タッチスクリーンコントローラ
812  タッチスクリーンディスプレイ
814  ビデオエンコーダ
816  ビデオ増幅器
818  ビデオポート
820  USBコントローラ
822  USBポート
824  メモリ
826  加入者識別モジュール(「SIM」)カード
828  デジタルカメラ
828  カメラ
830  ステレオオーディオCODEC
832  オーディオ増幅器
834  第1のステレオスピーカ
836  第2のステレオスピーカ
838  マイクロフォン増幅器
840  マイクロフォン
842  周波数変調(「FM」)ラジオチューナ
844  FMアンテナ
846  ステレオヘッドフォン
848  無線周波数(「RF」)トランシーバ
850  RFスイッチ
852  RFアンテナ
854  キーパッド
856  マイクロフォン
856  モノラルヘッドセット
858  バイブレータデバイス
858  バイブレータ
860  電源
862  DVFSコントローラ
900  方法
【図１】
2018519564.tif 000003
【図２】
2018519564.tif 000004
【図３】
2018519564.tif 000005
【図４】
2018519564.tif 000006
【図５Ａ】
2018519564.tif 000007
【図５Ｂ】
2018519564.tif 000008
【図６】
2018519564.tif 000009
【図７】
2018519564.tif 000010
【図８】
2018519564.tif 000011
【図９Ａ】
2018519564.tif 000012
【図９Ｂ】
2018519564.tif 000013
【手続補正書】
【提出日】平成29年10月31日(2017.10.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサとシステムメモリとを備える処理システムにおけるデマンドページングのための方法であって、
複数の圧縮されたソフトウェアイメージセグメントを、前記システムメモリに記憶するステップであって、各圧縮されたソフトウェアイメージセグメントが、複数のソフトウェアタスクの少なくとも1つのソフトウェアタスクに関連付けられ、各圧縮されたソフトウェアイメージセグメントが、前記少なくとも1つのソフトウェアタスクに関連付けられる圧縮特性の組合せであって、前記少なくとも1つのソフトウェアタスクのランキングに対応する前記少なくとも1つのソフトウェアタスクのレイテンシ許容度の達成を可能にする、圧縮特性の組合せに従って圧縮される1つまたは複数のページを備え、前記少なくとも1つのソフトウェアタスクのランキングが、前記圧縮されたソフトウェアイメージセグメントに一意に関連付けられており、他のすべての圧縮されたソフトウェアイメージセグメントにそれぞれ関連付けられた圧縮特性の組合せとは異なっている、ステップと、
実行中のソフトウェアタスクに関連付けられたページ要求が、前記システムメモリ内のページプールに記憶されたページを識別するかどうかを決定するステップと、
識別されたページが前記ページプールに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍するステップと、
前記ページ要求に応答して、前記解凍されたページを前記ページプールに記憶するステップと
を備える、方法。
【請求項２】
前記圧縮されたソフトウェアイメージセグメントのうちの少なくとも1つが、2つ以上のソフトウェアタスクのグループに関連付けられる、請求項1に記載の方法。
【請求項３】
前記圧縮特性の組合せが、圧縮アルゴリズムおよび圧縮ブロックサイズのうちの1つまたは複数を備える、請求項1に記載の方法。
【請求項４】
複数の圧縮されたソフトウェアイメージセグメントを記憶するステップが、第1の複数の圧縮されたソフトウェアイメージセグメントを前記システムメモリに記憶するステップと、第2の複数の圧縮されたソフトウェアイメージセグメントを、前記システムメモリよりも高いレイテンシを有する二次メモリに記憶するステップとを備え、
識別されたページが前記ページプールに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍するステップが、前記システムメモリおよび前記二次メモリのうちの1つに記憶された前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍するステップを備える、請求項1に記載の方法。
【請求項５】
各圧縮されたソフトウェアイメージセグメントが、他のすべての圧縮されたソフトウェアイメージセグメントの動的電圧および周波数スケーリング(DVFS)特性とは異なるDVFS特性にさらに関連付けられ、前記方法が、前記処理システムのDVFS制御を、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの前記1つに関連付けられた前記DVFS特性に設定するステップをさらに備える、請求項1に記載の方法。
【請求項６】
前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍するステップが、解凍ハードウェアロジックを使用して第1の圧縮されたソフトウェアイメージセグメントの一部を、また解凍ソフトウェアロジックを使用して第2の圧縮されたソフトウェアイメージセグメントの一部を解凍するステップを備える、請求項1に記載の方法。
【請求項７】
前記処理システムが、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはリンクを有するハンドヘルドコンピュータのうちの少なくとも1つを備えるポータブルコンピューティングデバイスに含まれる、請求項1に記載の方法。
【請求項８】
ページングのためのシステムであって、
複数の圧縮されたソフトウェアイメージセグメント、およびシステムメモリ内に備えられたページプールであって、各圧縮されたソフトウェアイメージセグメントが、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに関連付けられ、各圧縮されたソフトウェアイメージセグメントが、前記少なくとも1つのソフトウェアタスクに関連付けられる圧縮特性の組合せであって、前記少なくとも1つのソフトウェアタスクのランキングに対応する前記少なくとも1つのソフトウェアタスクのレイテンシ許容度の達成を可能にする圧縮特性の組合せに従って圧縮される1つまたは複数のページを備え、前記少なくとも1つのソフトウェアタスクのランキングが、前記圧縮されたソフトウェアイメージセグメントに一意に関連付けられており、他のすべての圧縮されたソフトウェアイメージセグメントにそれぞれ関連付けられた圧縮特性の組合せとは異なっている、複数の圧縮されたソフトウェアイメージセグメントおよびページプールと、
プロセッサと
を備え、前記プロセッサが、
実行中のソフトウェアタスクに関連付けられたページ要求が、前記システムメモリ内に備えられたページプールに記憶されたページを識別するかどうかを決定することと、
識別されたページが前記ページプールに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍することと、
前記ページ要求に応答して、前記解凍されたページを前記ページプールに記憶することと
を行うように構成される、システム。
【請求項９】
前記圧縮されたソフトウェアイメージセグメントのうちの少なくとも1つが、2つ以上のソフトウェアタスクのグループに対応する、請求項8に記載のシステム。
【請求項１０】
前記圧縮特性の組合せが、圧縮アルゴリズムおよび圧縮ブロックサイズのうちの1つまたは複数を備える、請求項8に記載のシステム。
【請求項１１】
前記圧縮特性が、圧縮アルゴリズムと圧縮ブロックサイズとの組合せを備える、請求項8に記載のシステム。
【請求項１２】
前記システムメモリが、第1の複数の圧縮されたソフトウェアイメージセグメントを記憶するように構成され、前記システムが、第2の複数の圧縮されたソフトウェアイメージセグメントを記憶するように構成された二次メモリをさらに備え、前記二次メモリが、前記システムメモリよりも高いレイテンシを有し、
前記プロセッサが、識別されたページが前記ページプールに記憶されていない場合、前記システムメモリおよび前記二次メモリのうちの1つに記憶された前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍するように構成されることによって、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍するように構成される、請求項8に記載のシステム。
【請求項１３】
各圧縮されたソフトウェアイメージセグメントが、他のすべての圧縮されたソフトウェアイメージセグメントの動的電圧および周波数スケーリング(DVFS)特性とは異なるDVFS特性にさらに対応し、前記プロセッサが、処理システムのDVFS制御を、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの前記1つに関連付けられた前記DVFS特性に設定するようにさらに構成される、請求項8に記載のシステム。
【請求項１４】
前記プロセッサが、解凍ハードウェアロジックを使用して第1の圧縮されたソフトウェアイメージセグメントの一部を、また解凍ソフトウェアロジックを使用して第2の圧縮されたソフトウェアイメージセグメントの一部を解凍するように構成される、請求項8に記載のシステム。
【請求項１５】
前記システムメモリおよびプロセッサが、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはリンクを有するハンドヘルドコンピュータのうちの少なくとも1つを備えるポータブルコンピューティングデバイスに含まれる、請求項8に記載のシステム。
【請求項１６】
コンピュータ実行可能ロジックを備える非一時的コンピュータ可読記録媒体であって、プロセッサによる前記ロジックの実行が、
複数の圧縮されたソフトウェアイメージセグメントをシステムメモリに記憶することであって、各圧縮されたソフトウェアイメージセグメントが、複数のソフトウェアタスクのうちの少なくとも1つのソフトウェアタスクに関連付けられ、各圧縮されたソフトウェアイメージセグメントが、前記少なくとも1つのソフトウェアタスクに関連付けられる圧縮特性の組合せであって、前記少なくとも1つのソフトウェアタスクのランキングに対応する前記少なくとも1つのソフトウェアタスクのレイテンシ許容度の達成を可能にする圧縮特性の組合せに従って圧縮される1つまたは複数のページを備え、前記少なくとも1つのソフトウェアタスクのランキングが、前記圧縮されたソフトウェアイメージセグメントに一意に関連付けられており、他のすべての圧縮されたソフトウェアイメージセグメントにそれぞれ関連付けられた圧縮特性の組合せとは異なっている、記憶することと、
実行中のソフトウェアタスクに関連付けられたページ要求が前記システムメモリ内のページプールに記憶されたページを識別するかどうかを決定することと、
識別されたページが前記ページプールに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍することと、
前記ページ要求に応答して、前記解凍されたページを前記ページプールに記憶することと
を行うように前記プロセッサを構成する、非一時的コンピュータ可読記録媒体。
【請求項１７】
前記圧縮されたソフトウェアイメージセグメントのうちの少なくとも1つが、2つ以上のソフトウェアタスクのグループに関連付けられる、請求項16に記載の非一時的コンピュータ可読記録媒体。
【請求項１８】
前記圧縮特性の組合せが、圧縮アルゴリズムおよび圧縮ブロックサイズのうちの1つまたは複数を備える、請求項16に記載の非一時的コンピュータ可読記録媒体。
【請求項１９】
複数の圧縮されたソフトウェアイメージセグメントを記憶することが、第1の複数の圧縮されたソフトウェアイメージセグメントを前記システムメモリに記憶し、第2の複数の圧縮されたソフトウェアイメージセグメントを前記システムメモリよりも高いレイテンシを有する二次メモリに記憶することを備え、
識別されたページが前記ページプールに記憶されていない場合、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍されたページへと解凍することが、前記システムメモリおよび前記二次メモリのうちの1つに記憶された前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍することを備える、請求項16に記載の非一時的コンピュータ可読記録媒体。
【請求項２０】
各圧縮されたソフトウェアイメージセグメントが、他のすべての圧縮されたソフトウェアイメージセグメントの動的電圧および周波数スケーリング(DVFS)特性とは異なるDVFS特性にさらに関連付けられ、前記プロセッサが、処理システムのDVFS制御を、前記識別されたページを含む前記圧縮されたソフトウェアイメージセグメントのうちの前記1つに関連付けられた前記DVFS特性に設定するようにさらに構成される、請求項16に記載の非一時的コンピュータ可読記録媒体。
【請求項２１】
前記圧縮されたソフトウェアイメージセグメントのうちの1つの一部を解凍することが、解凍ハードウェアロジックを使用して第1の圧縮されたソフトウェアイメージセグメントの一部を、また解凍ソフトウェアロジックを使用して第2の圧縮されたソフトウェアイメージセグメントの一部を解凍することを備える、請求項16に記載の非一時的コンピュータ可読記録媒体。
【請求項２２】
前記プロセッサが、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはリンクを有するハンドヘルドコンピュータのうちの少なくとも1つを備えるポータブルコンピューティングデバイスに含まれる、請求項16に記載の非一時的コンピュータ可読記録媒体。
【国際調査報告】
2018519564.tif 000014
2018519564.tif 000015
2018519564.tif 000016