(57)【要約】  システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するための方法およびシステムの種々の実施形態が開示される。特定の実施形態において、メモリサブシステム内の動的な圧縮および解凍を通して、メモリ利用が最適化される。サービス品質(「QoS」)レベルを示すSoCのパラメータに基づいて、メモリコントローラが、書込み要求内のデータの形式が変換され、再リンクされたメモリアドレスに記憶されるべきであると決定することができる。その後、データに関連付けられる一次メモリアドレスを、異なるデータを記憶するために解放することができる。同様に、実施形態が、書込み要求において要求されたデータを、要求された形式とは異なる形式でリターンすることができる。
2018505489.tif 000002
【特許請求の範囲】
【請求項１】
システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するための方法であって、
サービス品質(「QoS」)レベルを示す前記SoCの1つまたは複数のパラメータを監視するステップと、
メモリサブシステム内に構成されるメモリコントローラにおいて、第1のマスター構成要素からバスを介して送信された第1のトランザクション要求を受信するステップであって、前記第1のトランザクション要求は書込み要求である、受信するステップと、
前記第1のトランザクション要求に関連付けられるデータのための一次メモリアドレスを決定するステップであって、前記一次メモリアドレスは前記メモリ構成要素の第1のデータバンク内に位置する、決定するステップと、
前記第1のトランザクション要求に関連付けられる前記データの形式を決定するステップと、
前記1つまたは複数の監視されるパラメータに基づいて、前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換することに決めるステップと、
前記データをその変換後の形式で再リンクされたメモリアドレスに記憶するステップであって、前記再リンクされたメモリアドレスは前記メモリ構成要素の第2のデータバンク内に位置する、記憶するステップと、
後続のトランザクション要求に関連付けられるデータを記憶するために、前記一次メモリアドレスを解放するステップとを含む、方法。
【請求項２】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は圧縮形式であり、前記変換後の形式は解凍形式である、請求項1に記載の方法。
【請求項３】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は解凍形式であり、前記変換後の形式は圧縮形式である、請求項1に記載の方法。
【請求項４】
前記メモリコントローラにおいて、前記バスを介して第2のマスター構成要素から送信された第2のトランザクション要求を受信するステップであって、前記第2のトランザクション要求は、前記データを要求する読出し要求である、受信するステップと、
前記データが前記再リンクされたメモリアドレスに記憶されることを決定するステップと、
前記データを前記第2のマスター構成要素にリターンするステップとをさらに含む、請求項1に記載の方法。
【請求項５】
前記データは圧縮形式で記憶され、解凍形式で前記第2のマスター構成要素にリターンされる、請求項4に記載の方法。
【請求項６】
前記データは解凍形式で記憶され、圧縮形式で前記第2のマスター構成要素にリターンされる、請求項4に記載の方法。
【請求項７】
前記1つまたは複数のパラメータは、トランザクション待ち時間値、電力消費量レベル、温度レベル、作業量優先順位値、電池電力利用可能性レベル、およびメモリサイズから構成されるグループから選択される、請求項1に記載の方法。
【請求項８】
前記SoCはモバイル電話内に構成される、請求項1に記載の方法。
【請求項９】
システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するためのシステムであって、
サービス品質(「QoS」)レベルを示す前記SoCの1つまたは複数のパラメータを監視するための手段と、
メモリサブシステムにおいて、第1のマスター構成要素からバスを介して送信された第1のトランザクション要求を受信するための手段であって、前記第1のトランザクション要求は書込み要求である、受信するための手段と、
前記第1のトランザクション要求に関連付けられるデータのための一次メモリアドレスを決定するための手段であって、前記一次メモリアドレスは前記メモリ構成要素の第1のデータバンク内に位置する、決定するための手段と、
前記第1のトランザクション要求に関連付けられる前記データの形式を決定するための手段と、
前記1つまたは複数の監視されるパラメータに基づいて、前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換することに決めるための手段と、
前記データをその変換後の形式で再リンクされたメモリアドレスに記憶するための手段であって、前記再リンクされたメモリアドレスは前記メモリ構成要素の第2のデータバンク内に位置する、記憶するための手段と、
後続のトランザクション要求に関連付けられるデータを記憶するために、前記一次メモリアドレスを解放するための手段とを含む、システム。
【請求項１０】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は圧縮形式であり、前記変換後の形式は解凍形式である、請求項9に記載のシステム。
【請求項１１】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は解凍形式であり、前記変換後の形式は圧縮形式である、請求項9に記載のシステム。
【請求項１２】
前記メモリサブシステムにおいて、前記バスを介して第2のマスター構成要素から送信された第2のトランザクション要求を受信するための手段であって、前記第2のトランザクション要求は、前記データを要求する読出し要求である、受信するための手段と、
前記データが前記再リンクされたメモリアドレスに記憶されることを決定するための手段と、
前記データを前記第2のマスター構成要素にリターンするための手段とをさらに含む、請求項9に記載のシステム。
【請求項１３】
前記データは圧縮形式で記憶され、解凍形式で前記第2のマスター構成要素にリターンされる、請求項12に記載のシステム。
【請求項１４】
前記データは解凍形式で記憶され、圧縮形式で前記第2のマスター構成要素にリターンされる、請求項12に記載のシステム。
【請求項１５】
前記1つまたは複数のパラメータは、トランザクション待ち時間値、電力消費量レベル、温度レベル、作業量優先順位値、電池電力利用可能性レベル、およびメモリサイズから構成されるグループから選択される、請求項9に記載のシステム。
【請求項１６】
前記SoCはモバイル電話内に構成される、請求項9に記載のシステム。
【請求項１７】
システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するためのシステムであって、
メモリサブシステム内に構成されるメモリコントローラを備え、前記メモリコントローラは、
サービス品質(「QoS」)レベルを示す前記SoCの1つまたは複数のパラメータを監視することと、
第1のマスター構成要素からバスを介して送信された第1のトランザクション要求を受信することであって、前記第1のトランザクション要求は書込み要求である、受信することと、
前記第1のトランザクション要求に関連付けられるデータのための一次メモリアドレスを決定することであって、前記一次メモリアドレスは前記メモリ構成要素の第1のデータバンク内に位置する、決定することと、
前記第1のトランザクション要求に関連付けられる前記データの形式を決定することと、
前記1つまたは複数の監視されるパラメータに基づいて、前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換することに決めることと、
前記データをその変換後の形式で再リンクされたメモリアドレスに記憶することであって、前記再リンクされたメモリアドレスは前記メモリ構成要素の第2のデータバンク内に位置する、記憶することと、
後続のトランザクション要求に関連付けられるデータを記憶するために、前記一次メモリアドレスを解放することとを行うように動作可能である、システム。
【請求項１８】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は圧縮形式であり、前記変換後の形式は解凍形式である、請求項17に記載のシステム。
【請求項１９】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は解凍形式であり、前記変換後の形式は圧縮形式である、請求項17に記載のシステム。
【請求項２０】
前記メモリコントローラはさらに、
前記バスを介して第2のマスター構成要素から送信された第2のトランザクション要求を受信することであって、前記第2のトランザクション要求は、前記データを要求する読出し要求である、受信することと、
前記データが前記再リンクされたメモリアドレスに記憶されることを決定することと、
前記データを前記第2のマスター構成要素にリターンすることとを行うように動作可能である、請求項17に記載のシステム。
【請求項２１】
前記データは圧縮形式で記憶され、解凍形式で前記第2のマスター構成要素にリターンされる、請求項20に記載のシステム。
【請求項２２】
前記データは解凍形式で記憶され、圧縮形式で前記第2のマスター構成要素にリターンされる、請求項20に記載のシステム。
【請求項２３】
前記SoCはモバイル電話内に構成される、請求項17に記載のシステム。
【請求項２４】
コンピュータ可読プログラムコードであって、前記コンピュータ可読プログラムコードは、システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するための方法を実施するために実行されるように構成され、前記方法は、
サービス品質(「QoS」)レベルを示す前記SoCの1つまたは複数のパラメータを監視するステップと、
メモリサブシステム内に構成されるメモリコントローラにおいて、第1のマスター構成要素からバスを介して送信された第1のトランザクション要求を受信するステップであって、前記第1のトランザクション要求は書込み要求である、受信するステップと、
前記第1のトランザクション要求に関連付けられるデータのための一次メモリアドレスを決定するステップであって、前記一次メモリアドレスは前記メモリ構成要素の第1のデータバンク内に位置する、決定するステップと、
前記第1のトランザクション要求に関連付けられる前記データの形式を決定するステップと、
前記1つまたは複数の監視されるパラメータに基づいて、前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換することに決めるステップと、
前記データをその変換後の形式で再リンクされたメモリアドレスに記憶するステップであって、前記再リンクされたメモリアドレスは前記メモリ構成要素の第2のデータバンク内に位置する、記憶するステップと、
後続のトランザクション要求に関連付けられるデータを記憶するために、前記一次メモリアドレスを解放するステップとを含む、コンピュータ可読プログラムコード。
【請求項２５】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は圧縮形式であり、前記変換後の形式は解凍形式である、請求項24に記載のコンピュータ可読プログラムコード。
【請求項２６】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は解凍形式であり、前記変換後の形式は圧縮形式である、請求項24に記載のコンピュータ可読プログラムコード。
【請求項２７】
前記メモリコントローラにおいて、前記バスを介して第2のマスター構成要素から送信された第2のトランザクション要求を受信するステップであって、前記第2のトランザクション要求は、前記データを要求する読出し要求である、受信するステップと、
前記データが前記再リンクされたメモリアドレスに記憶されることを決定するステップと、
前記データを前記第2のマスター構成要素にリターンするステップとをさらに含む、請求項24に記載のコンピュータ可読プログラムコード。
【請求項２８】
前記データは圧縮形式で記憶され、解凍形式で前記第2のマスター構成要素にリターンされる、請求項27に記載のコンピュータ可読プログラムコード。
【請求項２９】
前記データは解凍形式で記憶され、圧縮形式で前記第2のマスター構成要素にリターンされる、請求項27に記載のコンピュータ可読プログラムコード。
【請求項３０】
前記1つまたは複数のパラメータは、トランザクション待ち時間値、電力消費量レベル、温度レベル、作業量優先順位値、電池電力利用可能性レベル、およびメモリサイズから構成されるグループから選択される、請求項24に記載のコンピュータ可読プログラムコード。
【発明の詳細な説明】
【技術分野】
【０００１】
システムオンチップにおける動的メモリ利用に関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(「PCD」)は、個人レベルおよび専門レベルにおいて人々にとって必要なものになりつつある。これらのデバイスは、セルラー電話、携帯情報端末(「PDA」)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含むことができる。PCDは一般に、ユーザに機能を提供するために協働するように設計された多数の構成要素を含む集積回路、すなわち、システムオンチップ(「SoC」)を含む。たとえば、SoCは、SoC上のメモリ構成要素からデータおよび/もしくは命令を読み出し、ならびに/またはメモリ構成要素にデータおよび/もしくは命令を書き込む、モデム、ディスプレイ、中央処理ユニット(「CPU」)、グラフィカル処理ユニット(「GPU」)などのような任意の数のマスター構成要素を含むことができる。データおよび命令は一般に「トランザクション」と呼ばれる場合があり、バスとして知られるワイヤの集合体を介してデバイス間で伝送される。
【０００３】
とりわけ、マスター構成要素と、ダブルデータレート(「DDR」)メモリデバイスのようなメモリ構成要素との間の読出しおよび書込みトランザクションは、SoCの貴重な電力リソースを消費する。さらに、バス帯域幅を得るためにトランザクションが互いに競合し、バス上でトランザクショントラフィックが輻輳するとき、不可欠なトランザクション、たとえば、特定のモデム処理タスクを送達するのに許容できないほどの高い待ち時間レベルによって、システムがクラッシュする場合がある。
【０００４】
従来技術の解決策は、DDRバウンドトランザクショントラフィックを低減し、ひいては、バス上の電力消費量を削減することを目指して、マスター構成要素による静的な圧縮および解凍方法を利用する。しかしながら、従来技術の解決策には、複数のマスタープロセッサがメモリ空間を共有することから生じるメモリ競合問題、非効率的なメモリ利用、無用に大きなメモリサブシステムによる高い電力消費量、ならびにマスター構成要素の複雑なソフトウェア/ハードウェア設計およびプログラミングという難点がある。
【０００５】
読出しおよび書込みトランザクションに応答して、メモリサブシステム内のデータおよび命令を動的に圧縮および解凍することによって、メモリ競合問題が最小化されるように、マスター構成要素と共有されるメモリデバイスとの間の往復トランザクショントラフィックを従来技術の解決策よりも最適化することができる。さらに、帯域幅割振りのより良好な最適化を介して、トランザクションの待ち時間を、従来技術の解決策よりも改善することができる。さらに、従来技術の解決策と比べるとき、バスおよびメモリデバイスサイズに関連付けられる電力消費量を最小化することができる。さらに、圧縮および解凍要件に関連するソフトウェアおよびハードウェアプログラミング問題は、完全に軽減されるわけではないが、従来技術の解決策に比べて相対的に簡略化することができる。それゆえ、メモリサブシステム内の動的な圧縮および解凍を通してメモリ利用を最適化するシステムおよび方法が、当該技術分野おいて必要とされている。より具体的には、実行時QoSパラメータに基づいて、トランザクション要求に応答してデータを圧縮するか、解凍するかの決定を動的に実行するシステムおよび方法が、当該技術分野おいて必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００６】
システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するための方法およびシステムの種々の実施形態が開示される。例示的な実施形態において、サービス品質(「QoS」)レベルを示すSoCの1つまたは複数のパラメータが監視される。メモリサブシステム内に構成されるメモリコントローラが、第1のマスター構成要素からバスを介して送信された第1のトランザクション要求を受信する。第1のトランザクション要求は、たとえば、当業者によって理解されるような書込み要求とすることができる。メモリコントローラは、第1のトランザクション要求に関連付けられるデータのための一次メモリアドレスを決定することができる。一次メモリアドレスは、メモリ構成要素の第1のデータバンク内に位置することができる。次に、第1のトランザクション要求に関連付けられるデータの形式を、圧縮するか、または解凍すると決定することができる。データが存在する形式でデータを一次メモリアドレスに単に書き込む代わりに、メモリコントローラは、データの形式を変換すると決定することができる。変換するという決定は、監視されるパラメータを考慮して行うことができる。その後、データを、その変換後の形式で、メモリ構成要素の第2のデータバンク内に位置する再リンクされたメモリアドレスに記憶することができる。一次メモリアドレスは、次いで、後続のトランザクション要求に関連付けられるデータを記憶するために解放することができる。
【０００７】
例示的な実施形態の異なる態様において、メモリコントローラは、バスを介して第2のマスター構成要素から送信された第2のトランザクション要求を受信することができる。第2のトランザクション要求は、再リンクされたメモリに記憶されるデータに対する、当業者によって理解されるような読出し要求とすることができる。メモリコントローラは、監視されるパラメータに応じて、再リンクされたメモリアドレスにデータが記憶される形式で、第2のマスター構成要素にデータをリターンすることができるか、またはデータをリターンする前にデータの形式を変換することができる。
【０００８】
図面では、特に明記されない限り、種々の図を通じて、同様の参照番号は同様の部分を指している。「102A」または「102B」などの文字指定を伴う参照番号について、文字指定は、同じ図内に存在する2つの同様の部分または要素を区別することができる。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【０００９】
【図１】動的メモリ利用(「DMU」)システムおよび方法を実施するためのワイヤレス電話の形をとるポータブルコンピューティングデバイス(「PCD」)の例示的な非限定的態様を示す機能ブロック図である。
【図２】メモリサブシステムにおけるプロセッサ内の動的メモリ利用(「DMU」)解決策のためのオンチップシステムの例示的な実施形態を示す機能ブロック図である。
【図３Ａ】ダブルデータレートメモリバウンド書込みトランザクション要求が、圧縮記憶形式または解凍記憶形式を指定するのに応答して、動的メモリ利用(「DMU」)を実行するための例示的な方法を示す論理流れ図である。
【図３Ｂ】ダブルデータレートメモリバウンド読出しトランザクション要求が、圧縮リターンデータ形式または解凍リターンデータ形式を指定するのに応答して、動的メモリ利用(「DMU」)を実行するための例示的な方法を示す論理流れ図である。
【図３Ｃ】ダブルデータレートメモリバウンド書込みトランザクション要求が無指定記憶形式を有するのに応答して、動的メモリ利用(「DMU」)を実行するための例示的な方法を示す論理流れ図である。
【図３Ｄ】ダブルデータレートメモリバウンド読出しトランザクション要求が無指定リターンデータ形式を有するのに応答して、動的メモリ利用(「DMU」)を実行するための例示的な方法を示す論理流れ図である。
【発明を実施するための形態】
【００１０】
「例示的な」という語は、本明細書において、例、実例、または例証としての役割を果たすことを意味するために使用される。「例示的」として本明細書において説明されるいずれの態様も、排他的であるか、他の態様より好ましいか、または有利であると、必ずしも解釈されるべきでない。
【００１１】
本説明において、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような実行可能コンテンツを有するファイルも含む場合がある。さらに、本明細書において言及される「アプリケーション」は、開かれる必要がある場合がある文書、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合もある。
【００１２】
本説明において、ダブルデータレート「DDR」メモリ構成要素への参照は、長期データ記憶のために使用されるより広範な種類の揮発性ランダムアクセスメモリ(「RAM」)のいずれかを想定すると理解され、本明細書において開示される解決策の範囲を特定のタイプまたは世代のRAMに限定しない。
【００１３】
「構成要素」、「データベース」、「モジュール」、「システム」、「コントローラ」などの用語は、本説明において使用されるとき、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、コンピューティングデバイス上で実行中のアプリケーションとコンピューティングデバイスの両方を、構成要素とすることができる。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、構成要素は、1つのコンピュータ上に局在化され、および/または2つ以上のコンピュータ間で分散されてもよい。さらに、これらの構成要素は、種々のデータ構造をその中に記憶した種々のコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素と、および/またはインターネットなどのネットワークにわたって他のシステムと信号によってやりとりする、1つの構成要素からのデータ)を有する信号などに従って、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
【００１４】
本説明において、「中央処理ユニット(「CPU:central processing unit」)」、「デジタルシグナルプロセッサ(「DSP:digital signal processor」)」、「グラフィカル処理ユニット(「GPU:graphical processing unit」)」、および「チップ」という用語は互換的に使用される。さらに、CPU、DSP、GPUまたはチップは、本明細書において包括的に「コア」と呼ばれる1つまたは複数の別個の処理構成要素から構成することができる。
【００１５】
本説明において、「エンジン」、「処理エンジン」、「マスター処理エンジン」、「マスター構成要素」などの用語は、バスを介してのメモリサブシステムへのトランザクション要求を生成するシステムオンチップ(「SoC」)内の任意の構成要素を指すために使用される。その場合に、マスター構成要素は、限定はしないが、CPU、DSP、GPU、モデム、コントローラ、ディスプレイ、カメラなどを指す場合がある。
【００１６】
本説明において、「ライトバック」および「フラッシュ」という用語は、1つまたは複数のマスター構成要素に関連付けられる密結合メモリ内に存在するデータおよび/または命令のより新しいバージョンに基づいて、DDR内にインスタンス化されたデータおよび/または命令を更新するプロセスを指している。低レベルキャッシュメモリのような、処理構成要素に対する密結合メモリ内にインスタンス化されたデータは、DDR内のメモリアドレスに関連付けられる仮想メモリアドレスを有する場合があることは当業者には理解されよう。DDRメモリアドレスは、当業者によって理解されるように、圧縮形式または解凍形式のいずれかにおいてデータを記憶するためにDDR内の特定のデータバンクに関連付けられる場合がある。仮想メモリアドレスと、キャッシュに記憶されるデータのための「ダーティ」ビットの存在とに基づいて、メモリコントローラは、当業者によって理解されるように、DDRを更新しようと試みる場合がある。「ダーティビット」という用語は、メモリページ内に記憶されるデータが、マスター構成要素によって新たに生成されたか、またはその元の状態から変更されたが、まだDDRにライトバックされていないことを示す、キャッシュ内の仮想メモリページに関連付けられるビットであると理解される。
【００１７】
本説明において、「バス」という用語は、処理エンジンからSoC上またはその外に位置するメモリ構成要素または他のデバイスまでデータがそこを通して伝送されるワイヤの集合体を指している。バスは2つの部分、すなわち、アドレスバスおよびデータバスからなり、データバスは実際のデータを転送し、アドレスバスは、メモリ構成要素内のデータの場所を指定する情報を転送することは理解されよう。「幅」または「バス幅」または「帯域幅」という用語は、所与のバスを通してサイクルごとに伝送することができるデータ量、すなわち、「チャンクサイズ」を指している。たとえば、16バイトバスは、一度に16バイトのデータを伝送できるのに対して、32バイトバスはサイクルごとに32バイトのデータを伝送することができる。さらに、「バス速度」は、毎秒、所与のバスを通してデータのチャンクを伝送することができる回数を指している。同様に、「バスサイクル」または「サイクル」は、所与のバスを通してのデータの1つのチャンクの伝送を指している。
【００１８】
本説明において、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、電池などの限られた容量の電源で動作する任意のデバイスについて説明するために使用される。電池で動作するPCDは数十年にわたって使われてきたが、第3世代(「3G」)および第4世代(「4G」)のワイヤレス技術の出現に結び付けられる、充電式電池における技術的進歩により、多数の能力を有する数多くのPCDが可能になった。したがって、PCDは、数ある中でも、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダ、メディアプレーヤ、上述のデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータとすることができる。
【００１９】
現在のシステムおよび方法において、PCDにおいて同時に動作するマスター構成要素が、DDRメモリ構成要素の分散した領域へのアクセスを必要とする読出しトランザクション要求および書込みトランザクション要求の混在するフローを生成する。圧縮データおよび解凍されたデータがバスを介して送信され、DDR構成要素とやりとりするメモリコントローラによって整理されるとき、各トランザクションが電力およびバス帯域幅を消費する。結果として、DDRの共有領域内のデータにアクセスしようと試みるトランザクション要求のキューが、無用な電力量を消費する場合があるだけでなく、トランザクション待ち時間を有害に増加させるように働くメモリ競合およびバストラフィック輻輳を引き起こす場合もある。同様に、そして当業者によって理解されるように、DDRに向かうトランザクション要求を送達するために、過量の帯域幅および電力容量が利用されるとき、PCDのユーザによって経験されるサービス品質(「QoS」)が損害を受ける場合がある。
【００２０】
当業者は理解するように、共有メモリマルチプロセッサシステム内のマスター処理構成要素は、メモリサブシステムを用いて、情報を交換し、同期を実行する。結果として、共有メモリサブシステムへの同時アクセスを争う複数のマスタープロセッサに関連付けられるメモリ競合によって、QoSが損害を受ける場合がある。従来技術の解決策は、マスター処理構成要素がアイドル状態になるか、または不可欠な機能を保持し損なうのを回避するように、マスター処理構成要素に一意に関連付けられる密結合メモリ構成要素のサイズを単に増やすことによって、メモリ競合に対処する。しかしながら、とりわけ、密結合メモリ構成要素の数およびサイズを単に増やすことは、共通バス上で共通メモリサブシステムに向かうトランザクショントラフィックの量を必ずしも削減することなく、全電力消費量を増やし、SoC上の貴重な空間を占有する。
【００２１】
メモリ競合が生じるとき、所与のトランザクションを送達するための平均待ち時間が増加し、QoSが損害を受ける。有利には、動的メモリ利用(「DMU」)解決策の実施形態が、メモリ競合を低減し、DDRメモリおよびメモリサブシステムのメモリコントローラによる電力消費量を削減し、不揮発性メモリからの電力および時間消費負荷活動が最小化されるようにDDRメモリ利用を最適化する。
【００２２】
DMU実施形態は、バスのメモリサブシステム側におけるデータおよび命令の動的な圧縮および解凍を利用する(バスのマスタープロセッサ側において利用される静的な圧縮および解凍方法とは対照的である)。メモリサブシステム上に存在するメモリコントローラが、限定はしないが、トランザクション待ち時間値、電力消費量レベル、温度レベル、作業量優先順位、電池電力利用可能性、DDRメモリサイズなどのQoSレベルを示す任意の数の監視されるパラメータに基づいて、圧縮および/または解凍方法を選択的に実行する。マスター処理構成要素が、たとえば、DDRの圧縮データ領域内に記憶されることになる圧縮データを含む書込みトランザクション要求を生成する場合があるが、DMU実施形態におけるメモリコントローラは、データを解凍し、そのデータをDDRの解凍データ領域内に記憶し、将来に使用するために圧縮データメモリアドレスを解放することを選択する場合がある。
【００２３】
有利には、データおよびトランザクションの圧縮および解凍は、DMU実施形態ではトランザクション要求のメモリサブシステム側において行われるので、圧縮および解凍要件はマスター構成要素から見てトランスペアレントであり、それにより、それらのマスター構成要素に関連付けられるソフトウェアおよびハードウェアプログラミングを簡単にし、すなわち、マスター処理構成要素は、DDR内のデータ形式または記憶形式を常に把握することに関して「気をもむ」必要はなく、結果として、単に、自らがわかるアドレスにおいてデータを要求することができる。DMU実施形態において、データを圧縮するか、または解凍するかの動的決定は、メモリアドレスリンケージプロセスをコンパイラ-リンカ構成要素から見てトランスペアレントにするように動的にデータをリンクする再リンカ構成要素(それはメモリコントローラ内に構成される場合がある)によって実行される。
【００２４】
DMU実施形態によれば、異なるマスター構成要素に関連付けられるコードおよびデータが、時間共有とは対照的に、同じメモリロケーションを動的に共有できるようになる。結果として、DMU解決策の実施形態は、DDR外部メモリ利用を最適化し、不揮発性メモリからロードする必要性を軽減し、それにより、SoCの全電力消費量およびトランザクション要求に関連付けられる待ち時間を最適化する。
【００２５】
図1は、動的メモリ利用(「DMU」)システムおよび方法を実施するためのワイヤレス電話の形をとるポータブルコンピューティングデバイス(「PCD」)100の例示的な非限定態様を示す機能ブロック図である。図示されるように、PCD100は、互いに結合されるマルチコア中央処理ユニット(「CPU」)110とアナログシグナルプロセッサ126とを含むオンチップシステム102を含む。当業者によって理解されるように、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を備えることができる。さらに、当業者が理解するように、CPU110の代わりに、デジタルシグナルプロセッサ(「DSP」)を利用することもできる。
【００２６】
一般に、メモリサブシステム112は、とりわけ、メモリコントローラ215と、再リンカモジュール220と、コーデックエンジン225と、DDRメモリ115とを備える(図1の例示においてまとめてメモリサブシステム112として示される)。メモリサブシステム112は一般に、そして具体的には、その構成要素のうちのいくつかは、ハードウェアおよび/またはファームウェアから形成することができ、1つまたは複数の実行時変数に基づいて、DDRメモリ115に記憶されたデータおよび命令に関する圧縮および解凍方法を動的に実行する責任を担うことができる。実行時変数は、モニタモジュール114によって監視され、メモリサブシステム112に中継される場合がある。有利には、メモリサブシステム112において動的な圧縮および解凍を実行することによって、DMU解決策は、メモリ容量利用を最適化し(それにより、時間を要し、電力を消費する試みである、不揮発性メモリからのデータのロードの必要性を軽減し)、バス205(図1には示されない)上のデータトラフィックを最小化し、SoC上の電力消費量を削減する。
【００２７】
図1に示されるように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタルシグナルプロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。PCD100は、ビデオエンコーダ134、たとえば、位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のタイプのビデオエンコーダ134をさらに含むことができる。ビデオエンコーダ134はマルチコアCPU110に結合される。ビデオ増幅器136が、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138が、ビデオ増幅器136に結合される。
【００２８】
図1に表されるように、ユニバーサルシリアルバス(「USB」)コントローラ140がCPU110に結合される。また、USBポート142が、USBコントローラ140に結合される。PoPメモリ、マスクROM/ブートROM、ブートOTPメモリ、DDRメモリ115(後続の図を参照)を含む場合があるメモリサブシステム112もCPU110に結合される場合があり、および/または自らの専用プロセッサを含む場合がある。加入者識別モジュール(「SIM」)カード146もCPU110に結合される場合がある。さらに、図1に示されるように、デジタルカメラ148がCPU110に結合される場合がある。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００２９】
図1にさらに示されるように、ステレオオーディオコーデック150が、アナログシグナルプロセッサ126に結合される場合がある。さらに、オーディオ増幅器152が、ステレオオーディオコーデック150に結合される場合がある。例示的な態様では、第1のステレオスピーカ154および第2のステレオスピーカ156が、オーディオ増幅器152に結合される。図1は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合される場合があることを示す。さらに、マイクロフォン160が、マイクロフォン増幅器158に結合される場合がある。特定の態様では、周波数変調(「FM」)ラジオチューナ162が、ステレオオーディオコーデック150に結合される場合がある。同様に、FMアンテナ164が、FMラジオチューナ162に結合される。さらに、ステレオヘッドフォン166が、ステレオオーディオコーデック150に結合される場合がある。
【００３０】
図1は、無線周波数(「RF」)トランシーバ168がアナログシグナルプロセッサ126に結合される場合があることをさらに示す。RFスイッチ170が、RFトランシーバ168およびRFアンテナ172に結合される場合がある。図1に示すように、キーパッド174が、アナログシグナルプロセッサ126に結合される場合がある。また、マイクロフォン付きモノヘッドセット176が、アナログシグナルプロセッサ126に結合される場合がある。さらに、バイブレータデバイス178は、アナログシグナルプロセッサ126に結合される場合がある。図1は、電源188、たとえば、電池が電力管理集積回路(「PMIC」)180を介してオンチップシステム102に結合されることも示す。特定の態様では、電源188は、充電式DC電池、または交流(「AC」)電源に接続されたAC-DC変換器から導出されたDC電源を含む。
【００３１】
CPU110は、1つまたは複数の内部のオンチップ熱センサ157A、さらには、1つまたは複数の外部のオフチップ熱センサ157Bにも結合される場合がある。オンチップ熱センサ157Aは、垂直のPNP構造に基づく、通常は相補型金属酸化膜半導体(「CMOS」)超大規模集積(「VLSI」)回路に専用の、1つまたは複数の絶対温度に比例する(「PTAT」)温度センサを備えることができる。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを備えることができる。熱センサ157は電圧降下を引き起こす場合があり、その電圧降下が、アナログ-デジタル変換器(「ADC」)コントローラ(図示せず)でデジタル信号に変換される。しかしながら、他のタイプの熱センサ157が利用される場合もある。
【００３２】
タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカ154、第2のステレオスピーカ156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、PMIC180および電源188は、オンチップシステム102の外部にある。しかしながら、図1のPCD100の例示的な実施形態において、オンチップシステム102の外部にあるように示されるこれらのデバイスのうちの1つまたは複数は、他の例示的な実施形態ではチップ102上に存在する場合があることは理解されよう。
【００３３】
特定の態様において、本明細書において説明される方法ステップのうちの1つまたは複数は、メモリサブシステム112内に記憶される実行可能命令およびパラメータによって、またはメモリコントローラ215、再リンカモジュール220および/もしくはコーデックエンジン225(図2を参照)の形で、実施される場合がある。さらに、メモリコントローラ215、再リンカモジュール220、コーデックエンジン225、DDR115、そこに記憶された命令、またはそれらの組合せは、本明細書において説明される方法ステップのうちの1つまたは複数を実行するための手段としての役割を果たすことができる。
【００３４】
図2は、メモリサブシステム112上のプロセッサにおける動的メモリ利用(「DMU」)解決策のためのオンチップシステム102の例示的な実施形態を示す機能ブロック図である。種々の作業量を実行する際に、マスター構成要素201は、DDR115内に記憶されるデータまたは命令を更新またはリターンするためのトランザクション要求を生成する。当業者によって理解されるように、トランザクション要求は、バス205を介して、要求を整理し、DDR115イメージを管理するメモリコントローラ215に向けられる。
【００３５】
書込みトランザクション要求は、たとえば、圧縮形式にあり、DDR115の圧縮メモリ領域(たとえば、データバンクB)内のメモリアドレス「X」に関連付けられるデータを含むことができる。その例を進めると、従来技術の解決策において、例示的な書込みトランザクション要求内の圧縮データは、送信する前に、マスター構成要素(たとえば、201A)によって生成および圧縮の両方がされている場合があり、それにより、マスター構成要素201Aの電力および処理容量を消費する。有利には、DMU解決策の実施形態によれば、マスター構成要素201Aは、圧縮されていないデータをメモリサブシステム112に単に送信できるようになる場合があり、それにより、データがDDR115内の圧縮データメモリロケーションに関連付けられる場合であっても、送信前にデータを圧縮するために電力消費および処理容量を使用するのを回避することができる。
【００３６】
図2の例示に戻ると、DDRメモリ115は、2つのメモリ領域、解凍されたデータを記憶するために指定されるデータバンクAと、圧縮データを記憶するために指定されるデータバンクBを備えるように示される。自らのプロセッサを備える場合があるメモリコントローラ215は、マスター構成要素201によって生成されたトランザクション要求を受信する。また、メモリコントローラ215は、性能またはQoSの1つまたは複数のインジケータを追跡しているモニタモジュール114と通信する。たとえば、モニタモジュール114は、バス205にわたって送信されるトランザクションのための平均待ち時間値を追跡している場合がある。
【００３７】
モニタモジュール114によって追跡される性能インジケータに基づいて、メモリコントローラ215は、書込みトランザクションに関連してバス205上に到着するデータまたは命令を圧縮するか、解凍するかを、トランザクションごとに動的に決定することができる。同様に、モニタモジュール114によって追跡される性能インジケータに基づいて、メモリコントローラ215は、読出しトランザクションに関連してバス205上でマスター構成要素201にリターンされるデータまたは命令を圧縮するか、解凍するかを、トランザクションごとに動的に決定することができる。有利には、トランザクションのメモリサブシステム112側において、データが圧縮されるべきか、解凍されるべきかを動的に決定することによって、DMU解決策は、バス205上の輻輳を緩和し、平均トランザクション待ち時間を改善し、メモリ容量利用を最適化し、SoC102にわたる電力消費量を最小化することができる。
【００３８】
一例として、書込みトランザクション要求は、圧縮され、DDR115のデータバンクB内のメモリアドレス「X」に関連付けられるデータとともに、メモリコントローラ215において受信される場合がある。モニタモジュール114によって監視される1つまたは複数の性能インジケータに基づいて、メモリコントローラ215は、データがデータバンクB内のメモリアドレス「X」に書き込まれるべきであると決定することができる。しかしながら、異なる性能インジケータを用いて、メモリコントローラ215は、メモリアドレス「X」が他の目的のために利用可能な場合があるように、データが解凍され、データバンクA内の使用されていないメモリアドレス「X1」に書き込まれたなら、SoC102の全体効率が改善されることになると決定することができる。そのような場合に、メモリコントローラ215は、再リンカモジュール220と協働して、メモリアドレス「X1」を決定し、メモリアドレス「X」を将来使用するために解放することができる。コーデックエンジン225は、書込みトランザクション要求内のデータを解凍し、そのデータをデータバックA内のメモリアドレス「X1」にセーブさせることができる。このようにして、DMU解決策は、DDR115のメモリ容量利用を改善することができ、複数のマスタープロセッサ201がデータバンクB内のアドレス「X」にアクセスしようと試みることから生じるメモリ競合のいかなる可能性も軽減することができる。
【００３９】
別の例として、読出しトランザクション要求が、メモリコントローラ215において受信され、データバンクB内のメモリアドレス「X」に記憶される圧縮データを要求する場合がある。再リンカモジュール220と協働して、要求されたデータがデータバンクA内のメモリアドレス「X1」において記憶され、圧縮されていないことを認識すると、メモリコントローラ215は、そのデータが要求側マスター構成要素にリターンされる前に、コーデックエンジン225にそのデータを検索させ、圧縮させることができる。このようにして、再リンキングプロセスは、マスター構成要素から見てトランスペアレントにすることができる。
【００４０】
図3Aは、ダブルデータレートメモリバウンド書込みトランザクション要求が圧縮または解凍いずれかの記憶形式を指定するのに応答して動的メモリ利用(「DMU」)を実行するための例示的な方法300Aを示す論理流れ図である。ブロック305において開始するとき、DMU解決策は、チップ102上の1つまたは複数の実行時パラメータ、またはサービス品質(「QoS」)のインジケータを監視する。監視される実行時パラメータは、限定はしないが、平均トランザクション待ち時間、電力消費量、電池容量、プロセッサ作業量レベル、動作温度、メモリ競合頻度、メモリ容量利用などのうちの1つまたは複数とすることができると想定される。ブロック310において、バス205を介して、メモリコントローラ215においてトランザクション要求を受信することができる。
【００４１】
次に、決定ブロック315において、メモリコントローラ215は、トランザクション要求が読出し要求であるか、書込み要求であるかを決定することができる。当業者は理解するように、マスター構成要素201によって、DDR115内に記憶される特定のデータをリターンするように要求する読出し要求が生成される場合がある。同様に、当業者は理解するように、マスター構成要素201によって、DDR115内のメモリアドレスに記憶された特定のデータを更新しようと試みる書込み要求が生成される場合がある。
【００４２】
決定ブロック315において、要求が読出し要求であると決定される場合には、「読出し」の分岐が図3Bのブロック405に続き、そうでない場合には、「書込み分岐」が決定ブロック320に続く。決定ブロック320において、トランザクション要求内のデータのデータ形式が決定される。書込みトランザクション要求内のデータが圧縮される場合には、「圧縮」の分岐が、決定ブロック340に続き、そうでない場合には、「解凍」の分岐が決定ブロック325に続く。決定ブロック325において、書込みトランザクション要求によって指示される記憶形式が決定される。同様に、「圧縮」の分岐が決定ブロック320から続く場合には、決定ブロック340において、書込みトランザクション要求によって指示される記憶形式が決定される。決定ブロック325および340の場合に、書込みトランザクション要求によって指示される記憶形式は圧縮、解凍または無指定のうちの1つとすることができる。書込み要求内のデータのための記憶形式が無指定である場合には、方法300Aは図3Cのブロック505に続く。
【００４３】
決定ブロック325に戻ると、記憶形式が解凍されるように指示される場合には、「解凍」の分岐がブロック330に続き、解凍されたデータが、DDRメモリ115の解凍記憶バンク内のメモリアドレス「X」に書き込まれる。しかしながら、ブロック325において、記憶形式が圧縮されるように指示する場合には、「圧縮」の分岐がブロック335に続き、解凍されたデータが圧縮され、再リンカモジュール220によって決定されるような、DDRメモリ115内の圧縮データバンク内のメモリアドレス「X1」に書き込まれる。圧縮データをメモリアドレス「X1」に書き込んだ後に、解凍メモリバンク内の「X」のアドレスは、要求側マスター構成要素201または他のマスター構成要素201によって将来使用するために解放することができる。とりわけ、ブロック325における決定は、ブロック305において監視される実行時QoSインジケータに基づいて、メモリコントローラ215によって行うことができる。
【００４４】
決定ブロック340に戻ると、記憶形式が圧縮されるように指示される場合には、「圧縮」の分岐がブロック350に続き、圧縮データが、DDRメモリ115の圧縮記憶バンク内のメモリアドレス「X」に書き込まれる。しかしながら、ブロック340において、記憶形式が解凍されるように指示される場合には、「解凍」の分岐がブロック345に続き、圧縮データが解凍され、再リンカモジュール220によって決定されるような、DDRメモリ115内の解凍データバンク内のメモリアドレス「X1」に書き込まれる。解凍されたデータをメモリアドレス「X1」に書き込んだ後に、圧縮メモリバンク内の「X」のアドレスは、要求側マスター構成要素201または他のマスター構成要素201によって将来使用するために解放することができる。とりわけ、ブロック340における決定は、ブロック305において監視される実行時QoSインジケータに基づいて、メモリコントローラ215によって行うことができる。
【００４５】
決定ブロック315に戻ると、トランザクション要求が読出し要求である場合には、「読出し」の分岐が図3Bのブロック405に続く。図3Bは、ダブルデータレートメモリバウンド読出しトランザクション要求が圧縮または解凍いずれかのリターンデータ形式を指定するのに応答して、動的メモリ利用(「DMU」)を実行するための例示的な方法300Bを示す論理流れ図である。決定ブロック405において、メモリコントローラ215は、要求側マスター構成要素201が、解凍形式でリターンされる要求データを必要とするか、圧縮形式でリターンされる要求データを必要とするかを決定することができる。リターンデータのための形式が指定されていない場合には、方法300Bは、図3Dのブロック605への「指定なし」の分岐に続き、そうでない場合には、決定ブロック405から、「圧縮」の分岐または「解凍」の分岐が続けられる。
【００４６】
マスター構成要素201が解凍形式でリターンデータを要求する場合には、その方法は、決定ブロック405から決定ブロック410に続く。決定ブロック410において、メモリコントローラ215および/または再リンカモジュール220は、データが実際に、解凍形式で記憶されるか、圧縮形式で記憶されるかを決定することができる。要求されたデータが解凍状態で記憶される場合には、「解凍」の分岐がブロック415に続き、DDR115の解凍記憶バンク内のアドレス「X」に記憶されたデータを、読出し要求を生成したマスター構成要素201にリターンすることができる。そうでない場合には、「圧縮」の分岐が決定ブロック410からブロック420に続き、圧縮メモリアドレス「X1」に記憶されたデータが検索される。次に、決定ブロック425において、メモリコントローラは、圧縮データがコーデックエンジン225によってメモリサブシステム112内で解凍されるべきであるか、メモリサブシステム112外の使用されていないコーデックエンジンにリターンされるべきであるかを決定することができる。サブシステム112において解凍するか、サブシステム112外で解凍するかに関する決定は、1つまたは複数の監視されるQoSインジケータに基づいて決定することができる。メモリコントローラ215が、コーデックエンジン225によってデータを解凍することを選択する場合には、「yes」の分岐が決定ブロック425からブロック430に続き、データはコーデックエンジン225によって解凍され、要求側マスター構成要素201にリターンされる。そうでない場合には、「no」の分岐が決定ブロック425からブロック435に続き、メモリアドレス「X1」に記憶される圧縮データを、解凍のために、メモリサブシステム112外に位置するプロセッサまたはコーデックエンジンにリターンする。
【００４７】
決定ブロック405に戻ると、マスター構成要素201が圧縮形式でリターンデータを要求する場合には、その方法は、決定ブロック405から決定ブロック440に続く。決定ブロック440において、メモリコントローラ215および/または再リンカモジュール220は、データが実際に、解凍形式で記憶されるか、圧縮形式で記憶されるかを決定することができる。要求されたデータが圧縮状態で記憶される場合には、「圧縮」の分岐がブロック445に続き、DDR115の圧縮記憶バンク内のアドレス「X」に記憶されたデータを、読出し要求を生成したマスター構成要素201にリターンすることができる。そうでない場合には、「解凍」の分岐が決定ブロック440からブロック450に続き、解凍メモリアドレス「X1」に記憶されたデータが検索される。次に、決定ブロック455において、メモリコントローラは、解凍されたデータがコーデックエンジン225によってメモリサブシステム112内で圧縮されるべきであるか、メモリサブシステム112外の使用されていないコーデックエンジンにリターンされるべきであるかを決定することができる。サブシステム112において圧縮するか、サブシステム112外で圧縮するかに関する決定は、1つまたは複数の監視されるQoSインジケータに基づいて決定することができる。メモリコントローラ215が、コーデックエンジン225によってデータを圧縮することを選択する場合には、「yes」の分岐が決定ブロック455からブロック460に続き、データはコーデックエンジン225によって圧縮され、要求側マスター構成要素201にリターンされる。そうでない場合には、「no」の分岐が決定ブロック455からブロック465に続き、メモリアドレス「X1」に記憶される解凍されたデータを、圧縮のために、メモリサブシステム112外に位置するプロセッサまたはコーデックエンジンにリターンする。
【００４８】
図3Aの決定ブロック325、340に戻ると、書込み要求のための記憶形式が指定されていない場合には、「指定なし」の分岐が図3Cのブロック505に続く。図3Cは、ダブルデータレートメモリバウンド書込みトランザクション要求が無指定記憶形式を有するのに応答して動的メモリ利用(「DMU」)を実行するための例示的な方法300Cを示す論理流れ図である。図3Aの決定ブロック320とまったく同一である場合がある決定ブロック505において、メモリコントローラ215は、書込み要求内のデータの形式を決定することができる。データが解凍される場合には、「解凍」の分岐が決定ブロック505から決定ブロック510に続き、そうでない場合には、「圧縮」の分岐が決定ブロック505から決定ブロック525に続く。
【００４９】
決定ブロック505からの「解凍」の分岐後に、決定ブロック510において、メモリコントローラ215および/または再リンカモジュール220は、データを解凍形式で記憶するか、圧縮形式で記憶するかを決定することができる。その決定は、モニタモジュール114によって監視される1つまたは複数の実行時インジケータの値に基づくことができる。その決定が、解凍されたデータを解凍形式で記憶することである場合には、「yes」の分岐がブロック515に続き、データが、DDRメモリ115の解凍記憶エリア内のメモリアドレス「X」に書き込まれる。そうでない場合には、「no」の分岐が決定ブロック510からブロック520に続く。ブロック520において、データはコーデックエンジン225によって圧縮され、再リンカモジュール220によって決定されるような、DDR115の圧縮記憶エリア内のメモリアドレス「X1」に書き込まれる。その後、解凍記憶エリア内のメモリアドレス「X」は、マスター構成要素201または他のマスター構成要素201によって将来使用するために解放することができる。
【００５０】
決定ブロック505に戻ると、「圧縮」の分岐は決定ブロック525に続く。決定ブロック525において、メモリコントローラ215および/または再リンカモジュール220は、データを圧縮形式で記憶するか、解凍形式で記憶するかを決定することができる。その決定は、モニタモジュール114によって監視される1つまたは複数の実行時インジケータの値に基づくことができる。その決定が、圧縮データを圧縮形式で記憶することである場合には、「yes」の分岐がブロック530に続き、データが、DDR115の圧縮記憶エリア内のメモリアドレス「X」に書き込まれる。そうでない場合には、「no」の分岐が決定ブロック525からブロック535に続く。ブロック535において、データはコーデックエンジン225によって解凍され、再リンカモジュール220によって決定されるような、DDR115の解凍記憶エリア内のメモリアドレス「X1」に書き込まれる。その後、圧縮記憶エリア内のメモリアドレス「X」は、マスター構成要素201または他のマスター構成要素201によって将来使用するために解放することができる。
【００５１】
図3Bの決定ブロック405に戻ると、読出し要求のためのリターンデータ形式が指定されていない場合には、「指定なし」の分岐が図3Dのブロック605に続く。図3Dは、ダブルデータレートメモリバウンド読出しトランザクション要求が無指定リターンデータ形式を有するのに応答して動的メモリ利用(「DMU」)を実行するための例示的な方法300Dを示す論理流れ図である。決定ブロック605において、メモリコントローラ215は、読出し要求内のデータの記憶形式を決定することができる。データが解凍形式でDDR215に記憶される場合には、「解凍」の分岐が決定ブロック605から決定ブロック610に続き、そうでない場合には、「圧縮」の分岐が決定ブロック605から決定ブロック625に続く。
【００５２】
決定ブロック605からの「解凍」の分岐後に、決定ブロック610において、メモリコントローラ215および/または再リンカモジュール220は、データを要求側構成要素201に解凍形式でリターンするか、圧縮形式でリターンするかを決定することができる。その決定は、モニタモジュール114によって監視される1つまたは複数の実行時インジケータの値に基づくことができる。その決定が、解凍されたデータを解凍形式でリターンすることである場合には、「yes」の分岐がブロック615に続き、データが、DDR115の解凍記憶エリア内のメモリアドレス「X」から検索され、要求側マスター構成要素201にリターンされる。そうでない場合には、「no」の分岐が決定ブロック610からブロック620に続く。ブロック620において、データはコーデックエンジン225によって圧縮され、圧縮形式で要求側マスター構成要素201にリターンされる。特定のDMU実施形態は、解凍されたデータを、圧縮のために、外部のサブシステムプロセッサまたはコーデックエンジンにリターンする場合があることが想定される。
【００５３】
決定ブロック605に戻ると、「圧縮」の分岐は決定ブロック625に続く。決定ブロック625において、メモリコントローラ215および/または再リンカモジュール220は、データを要求側構成要素201に解凍形式でリターンするか、圧縮形式でリターンするかを決定することができる。その決定は、モニタモジュール114によって監視される1つまたは複数の実行時インジケータの値に基づくことができる。その決定が、圧縮データを圧縮形式でリターンすることである場合には、「yes」の分岐がブロック630に続き、データが、DDR115の圧縮記憶エリア内のメモリアドレス「X」から検索され、要求側マスター構成要素201にリターンされる。そうでない場合には、「no」の分岐が決定ブロック625からブロック635に続く。ブロック635において、データはコーデックエンジン225によって解凍され、解凍形式で要求側マスター構成要素201にリターンされる。特定のDMU実施形態は、圧縮データを、解凍のために、外部のサブシステムプロセッサまたはコーデックエンジンにリターンする場合があることが想定される。
【００５４】
本明細書において説明されたプロセスまたはプロセスフローにおける特定のステップは、当然、説明されたように本発明が機能するために他のステップに先行する。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合には、本発明は、説明されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行され、後に実行され、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップが省略される場合があるか、または実行されない場合がある。さらに、「その後(thereafter)」、「次いで(then)」、「次に(next)」などの語は、ステップの順序を限定することを意図していない。これらの語は単に、例示的な方法の説明を通して読者を導くために使用される。
【００５５】
さらに、プログラミングに関する当業者は、たとえば、本明細書における流れ図および関連する説明に基づいて、難なく、開示した発明を実現するコンピュータコードを書くことができるか、または実現するのに適したハードウェアおよび/もしくは回路を特定することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスまたはソフトウェア命令およびデータ構造の開示は、本発明の作製方法および使用方法を十分に理解するのに必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの本発明の機能は、上述の説明において、また種々のプロセスフローを例示する場合がある図面と併せて、より詳細に説明される。
【００５６】
1つまたは複数の例示的な実施形態において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実現される場合がある。ソフトウェアにおいて実現される場合、機能は、1つもしくは複数の命令もしくはコードとして、コンピュータ可読デバイス上に記憶される場合があるか、またはコンピュータ可読デバイス上に送信される場合がある。コンピュータ可読デバイスは、コンピュータ記憶媒体と、コンピュータプログラムのある場所から別の場所への転送を容易にする任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされる場合がある任意の入手可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令またはデータ構造の形で所望のプログラムコードを搬送または記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。
【００５７】
したがって、選択された態様が図示され、詳細に説明されてきたが、以下の特許請求の範囲によって規定されるような、本発明の趣旨および範囲から逸脱することなく、それらの態様において種々の置換および改変が行われる場合があることは理解されよう。
【符号の説明】
【００５８】
100  ポータブルコンピューティングデバイス(「PCD」)
102  オンチップシステム
110  マルチコア中央処理ユニット(「CPU」)、デジタルシグナルプロセッサ
112  メモリサブシステム
114  モニタモジュール
115  DDRメモリ
126  アナログシグナルプロセッサ
128  ディスプレイコントローラ
130  タッチスクリーンコントローラ
132  タッチスクリーンディスプレイ
134  ビデオエンコーダ
136  ビデオ増幅器
138  ビデオポート
140  ユニバーサルシリアルバス(「USB」)コントローラ
142  USBポート
146  加入者識別モジュール(「SIM」)カード
148  デジタルカメラ
150  ステレオオーディオコーデック
152  オーディオ増幅器
154  第1のステレオスピーカ
156  第2のステレオスピーカ
157A  熱センサ
157B  熱センサ
158  マイクロフォン増幅器
160  マイクロフォン
162  周波数変調(「FM」)ラジオチューナ
164  FMアンテナ
166  ステレオヘッドフォン
168  無線周波数(「RF」)トランシーバ
170  RFスイッチ
172  RFアンテナ
174  キーパッド
176  マイクロフォン付きモノヘッドセット
178  バイブレータデバイス
180  電力管理集積回路(「PMIC」)
188  電源
201  マスター構成要素
201A  マスター構成要素
205  バス
215  メモリコントローラ
220  再リンカモジュール
222  第0のコア
224  第1のコア
225  コーデックエンジン
230  第Nのコア
【図１】
2018505489.tif 000003
【図２】
2018505489.tif 000004
【図３Ａ】
2018505489.tif 000005
【図３Ｂ】
2018505489.tif 000006
【図３Ｃ】
2018505489.tif 000007
【図３Ｄ】
2018505489.tif 000008
【手続補正書】
【提出日】平成29年8月15日(2017.8.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するための方法であって、
サービス品質(「QoS」)レベルを示す前記SoCの1つまたは複数のパラメータを監視するステップと、
メモリサブシステム内に構成されるメモリコントローラにおいて、第1のマスター構成要素からバスを介して送信された第1のトランザクション要求を受信するステップであって、前記第1のトランザクション要求は書込み要求である、受信するステップと、
前記第1のトランザクション要求に関連付けられるデータのための一次メモリアドレスを決定するステップであって、前記一次メモリアドレスは前記メモリ構成要素の第1のデータバンク内に位置する、決定するステップと、
前記第1のトランザクション要求に関連付けられる前記データの形式を決定するステップと、
前記1つまたは複数の監視されるパラメータに基づいて、前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換するか否かを決定するステップと、
前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換しないことに決定された場合には、前記データを前記第1のトランザクション要求に関連付けられる前記形式で前記一次メモリアドレスに記憶するステップと、
前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換することに決定された場合には、前記データをその変換後の形式で再リンクされたメモリアドレスに記憶するステップであって、前記再リンクされたメモリアドレスは前記メモリ構成要素の第2のデータバンク内に位置する、記憶するステップと、
前記データをその変換後の形式で前記再リンクされたメモリアドレスに記憶するのに応答して、後続のトランザクション要求に関連付けられるデータを記憶するために、前記一次メモリアドレスを解放するステップとを含む、方法。
【請求項２】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は圧縮形式であり、前記変換後の形式は解凍形式である、請求項1に記載の方法。
【請求項３】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は解凍形式であり、前記変換後の形式は圧縮形式である、請求項1に記載の方法。
【請求項４】
前記メモリコントローラにおいて、前記バスを介して第2のマスター構成要素から送信された第2のトランザクション要求を受信するステップであって、前記第2のトランザクション要求は、前記データを要求する読出し要求である、受信するステップと、
前記データが前記再リンクされたメモリアドレスに記憶されることを決定するステップと、
前記データを前記第2のマスター構成要素にリターンするステップとをさらに含む、請求項1に記載の方法。
【請求項５】
前記データは圧縮形式で記憶され、解凍形式で前記第2のマスター構成要素にリターンされる、請求項4に記載の方法。
【請求項６】
前記データは解凍形式で記憶され、圧縮形式で前記第2のマスター構成要素にリターンされる、請求項4に記載の方法。
【請求項７】
前記1つまたは複数のパラメータは、トランザクション待ち時間値、電力消費量レベル、温度レベル、作業量優先順位値、電池電力利用可能性レベル、およびメモリサイズから構成されるグループから選択される、請求項1に記載の方法。
【請求項８】
前記SoCはモバイル電話内に構成される、請求項1に記載の方法。
【請求項９】
システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するためのシステムであって、
メモリサブシステム内に構成されるメモリコントローラを備え、前記メモリコントローラは、
サービス品質(「QoS」)レベルを示す前記SoCの1つまたは複数のパラメータを監視することと、
第1のマスター構成要素からバスを介して送信された第1のトランザクション要求を受信することであって、前記第1のトランザクション要求は書込み要求である、受信することと、
前記第1のトランザクション要求に関連付けられるデータのための一次メモリアドレスを決定することであって、前記一次メモリアドレスは前記メモリ構成要素の第1のデータバンク内に位置する、決定することと、
前記第1のトランザクション要求に関連付けられる前記データの形式を決定することと、
前記1つまたは複数の監視されるパラメータに基づいて、前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換するか否かを決定することと、
前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換しないことに決定された場合には、前記データを前記第1のトランザクション要求に関連付けられる前記形式で前記一次メモリアドレスに記憶することと、
前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換することに決定された場合には、前記データをその変換後の形式で再リンクされたメモリアドレスに記憶することであって、前記再リンクされたメモリアドレスは前記メモリ構成要素の第2のデータバンク内に位置する、記憶することと、
前記データをその変換後の形式で前記再リンクされたメモリアドレスに記憶するのに応答して、後続のトランザクション要求に関連付けられるデータを記憶するために、前記一次メモリアドレスを解放することとを行うように動作可能である、システム。
【請求項１０】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は圧縮形式であり、前記変換後の形式は解凍形式である、請求項9に記載のシステム。
【請求項１１】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は解凍形式であり、前記変換後の形式は圧縮形式である、請求項9に記載のシステム。
【請求項１２】
前記メモリコントローラはさらに、
前記バスを介して第2のマスター構成要素から送信された第2のトランザクション要求を受信することであって、前記第2のトランザクション要求は、前記データを要求する読出し要求である、受信することと、
前記データが前記再リンクされたメモリアドレスに記憶されることを決定することと、
前記データを前記第2のマスター構成要素にリターンすることとを行うように動作可能である、請求項9に記載のシステム。
【請求項１３】
前記データは圧縮形式で記憶され、解凍形式で前記第2のマスター構成要素にリターンされる、請求項12に記載のシステム。
【請求項１４】
前記データは解凍形式で記憶され、圧縮形式で前記第2のマスター構成要素にリターンされる、請求項12に記載のシステム。
【請求項１５】
前記SoCはモバイル電話内に構成される、請求項9に記載のシステム。
【請求項１６】
コンピュータ可読プログラムコードであって、前記コンピュータ可読プログラムコードは、システムオンチップ(「SoC」)内のメモリ構成要素の容量利用を動的に管理するための方法を実施するために実行されるように構成され、前記方法は、
サービス品質(「QoS」)レベルを示す前記SoCの1つまたは複数のパラメータを監視するステップと、
メモリサブシステム内に構成されるメモリコントローラにおいて、第1のマスター構成要素からバスを介して送信された第1のトランザクション要求を受信するステップであって、前記第1のトランザクション要求は書込み要求である、受信するステップと、
前記第1のトランザクション要求に関連付けられるデータのための一次メモリアドレスを決定するステップであって、前記一次メモリアドレスは前記メモリ構成要素の第1のデータバンク内に位置する、決定するステップと、
前記第1のトランザクション要求に関連付けられる前記データの形式を決定するステップと、
前記1つまたは複数の監視されるパラメータに基づいて、前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換するか否かを決定するステップと、
前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換しないことに決定された場合には、前記データを前記第1のトランザクション要求に関連付けられる前記形式で前記一次メモリアドレスに記憶するステップと、
前記第1のトランザクション要求に関連付けられる前記データの前記形式を変換することに決定された場合には、前記データをその変換後の形式で再リンクされたメモリアドレスに記憶するステップであって、前記再リンクされたメモリアドレスは前記メモリ構成要素の第2のデータバンク内に位置する、記憶するステップと、
前記データをその変換後の形式で前記再リンクされたメモリアドレスに記憶するのに応答して、後続のトランザクション要求に関連付けられるデータを記憶するために、前記一次メモリアドレスを解放するステップとを含む、コンピュータ可読プログラムコード。
【請求項１７】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は圧縮形式であり、前記変換後の形式は解凍形式である、請求項16に記載のコンピュータ可読プログラムコード。
【請求項１８】
前記第1のトランザクション要求に関連付けられる前記データの前記形式は解凍形式であり、前記変換後の形式は圧縮形式である、請求項16に記載のコンピュータ可読プログラムコード。
【請求項１９】
前記メモリコントローラにおいて、前記バスを介して第2のマスター構成要素から送信された第2のトランザクション要求を受信するステップであって、前記第2のトランザクション要求は、前記データを要求する読出し要求である、受信するステップと、
前記データが前記再リンクされたメモリアドレスに記憶されることを決定するステップと、
前記データを前記第2のマスター構成要素にリターンするステップとをさらに含む、請求項16に記載のコンピュータ可読プログラムコード。
【請求項２０】
前記データは圧縮形式で記憶され、解凍形式で前記第2のマスター構成要素にリターンされる、請求項19に記載のコンピュータ可読プログラムコード。
【請求項２１】
前記データは解凍形式で記憶され、圧縮形式で前記第2のマスター構成要素にリターンされる、請求項19に記載のコンピュータ可読プログラムコード。
【請求項２２】
前記1つまたは複数のパラメータは、トランザクション待ち時間値、電力消費量レベル、温度レベル、作業量優先順位値、電池電力利用可能性レベル、およびメモリサイズから構成されるグループから選択される、請求項16に記載のコンピュータ可読プログラムコード。
【国際調査報告】
2018505489.tif 000009
2018505489.tif 000010
2018505489.tif 000011