(57)【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するための方法であって、
揮発性メモリデバイスがスタンバイ電力モードに入る要求を受け取るステップと、
前記要求に応答して、前記揮発性メモリデバイスの複数のバンク内に記憶されたコンテンツを圧縮するための1つまたは複数の圧縮パラメータを決定するステップであって、前記1つまたは複数の圧縮パラメータは、圧縮されるべき前記複数のバンクの数を特定する、ステップと、
前記複数のバンクのうちの少なくとも1つを解放するために前記1つまたは複数の圧縮パラメータによって特定された前記複数のバンクの数に関連する前記記憶されたコンテンツを圧縮するステップと、
前記スタンバイ電力モード中に前記圧縮によって解放された前記複数のバンクのうちの1つまたは複数のバンクのうちの少なくとも一部のセルフリフレッシュを無効にするステップと
を含む、方法。
【請求項２】
前記圧縮パラメータが、圧縮ブロックのサイズおよびスピルオーバーバンクのうちの1つまたは複数をさらに含む、請求項1に記載の方法。
【請求項３】
前記記憶されたコンテンツを圧縮するステップが、圧縮されたスピルオーバーコンテンツを前記スピルオーバーバンクに書き込むステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記圧縮されたコンテンツを解凍する際に取り出される第1のブロックを識別する圧縮メタデータを記憶するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記セルフリフレッシュを無効にするステップが、1つもしくは複数のバンクセグメントまたは前記複数のバンクのうちの1つもしくは複数のセルフリフレッシュを無効にするステップを含む、請求項1に記載の方法。
【請求項６】
前記揮発性メモリデバイスが、ダブルデータレート(DDR)メモリを含む、請求項1に記載の方法。
【請求項７】
前記DDRメモリが、低電力DDR(LPDDR)メモリを含む、請求項6に記載の方法。
【請求項８】
前記ポータブルコンピューティングデバイスが、携帯電話およびウェアラブルデバイスのうちの1つを含む、請求項1に記載の方法。
【請求項９】
前記複数のバンクに関する圧縮状態を有限ステートマシン内に記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項１０】
前記揮発性メモリデバイス内の圧縮された各コンテンツブロックに関するコンテンツブロックサイズおよび開始アドレスを前記有限ステートマシン内に記憶するステップ
をさらに含む、請求項9に記載の方法。
【請求項１１】
ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムであって、
揮発性メモリデバイスがスタンバイ電力モードに入る要求を受け取るための手段と、
前記要求に応答して、前記揮発性メモリデバイスの複数のバンク内に記憶されたコンテンツを圧縮するための1つまたは複数の圧縮パラメータを決定するための手段であって、前記1つまたは複数の圧縮パラメータは、圧縮されるべき前記複数のバンクの数を特定する、手段と、
前記複数のバンクのうちの少なくとも1つを解放するために前記1つまたは複数の圧縮パラメータによって特定された前記複数のバンクの数に関連する前記記憶されたコンテンツを圧縮するための手段と、
前記スタンバイ電力モード中に前記圧縮によって解放された前記複数のバンクのうちの1つまたは複数のバンクのうちの少なくとも一部のセルフリフレッシュを無効にするための手段と
を含む、システム。
【請求項１２】
前記圧縮パラメータが、圧縮ブロックのサイズおよびスピルオーバーバンクのうちの1つまたは複数をさらに含む、請求項11に記載のシステム。
【請求項１３】
圧縮されたスピルオーバーコンテンツを前記スピルオーバーバンクに書き込むための手段
をさらに含む、請求項12に記載のシステム。
【請求項１４】
前記圧縮されたコンテンツを解凍する際に取り出される第1のブロックを識別する圧縮メタデータを記憶するための手段
をさらに含む、請求項11に記載のシステム。
【請求項１５】
前記セルフリフレッシュを無効にするための手段が、1つもしくは複数のバンクセグメントまたは前記複数のバンクのうちの1つもしくは複数のセルフリフレッシュを無効にするための手段を含む、請求項14に記載のシステム。
【請求項１６】
前記揮発性メモリデバイスが、ダブルデータレート(DDR)メモリを含む、請求項11に記載のシステム。
【請求項１７】
前記DDRメモリが、グラフィックスDDR(GDDR)メモリおよび低電力DDR(LPDDR)メモリのうちの1つを含む、請求項16に記載のシステム。
【請求項１８】
前記ポータブルコンピューティングデバイスが、携帯電話およびウェアラブルデバイスのうちの1つを含む、請求項11に記載のシステム。
【請求項１９】
前記複数のバンクに関する圧縮状態を有限ステートマシン内に記憶するための手段
をさらに含む、請求項11に記載のシステム。
【請求項２０】
前記揮発性メモリデバイス内の圧縮された各コンテンツブロックに関するコンテンツブロックサイズおよび開始アドレスを前記有限ステートマシン内に記憶するための手段
をさらに含む、請求項19に記載のシステム。
【請求項２１】
非一時的コンピュータ可読記録媒体において具現化され、かつポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためにプロセッサによって実行可能なコンピュータプログラムであって、
揮発性メモリデバイスがスタンバイ電力モードに入る要求を受け取ることと、
前記要求に応答して、前記揮発性メモリデバイスの複数のバンク内に記憶されたコンテンツを圧縮するための1つまたは複数の圧縮パラメータを決定することであって、前記1つまたは複数の圧縮パラメータは、圧縮されるべき前記複数のバンクの数を特定する、決定することと、
前記複数のバンクのうちの少なくとも1つを解放するために前記1つまたは複数の圧縮パラメータによって特定された前記複数のバンクの数に関連する前記記憶されたコンテンツを圧縮することと、
前記スタンバイ電力モード中に前記圧縮によって解放された前記複数のバンクのうちの1つまたは複数のバンクのうちの少なくとも一部のセルフリフレッシュを無効にすることと
を行うための命令を含む、コンピュータプログラム。
【請求項２２】
前記圧縮パラメータが、圧縮ブロックのサイズおよびスピルオーバーバンクのうちの1つまたは複数をさらに含む、請求項21に記載のコンピュータプログラム。
【請求項２３】
前記記憶されたコンテンツを圧縮するための前記命令が、圧縮されたスピルオーバーコンテンツを前記スピルオーバーバンクに書き込むための命令をさらに含む、請求項22に記載のコンピュータプログラム。
【請求項２４】
前記圧縮されたコンテンツを解凍する際に取り出される第1のブロックを識別する圧縮メタデータを記憶するための命令
をさらに含む、請求項21に記載のコンピュータプログラム。
【請求項２５】
前記セルフリフレッシュを無効にするための前記命令が、1つもしくは複数のバンクセグメントまたは前記複数のバンクのうちの1つもしくは複数のセルフリフレッシュを無効にするための命令を含む、請求項24に記載のコンピュータプログラム。
【請求項２６】
ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムであって、
メモリコンテンツを含む複数のバンクを含む、ダイナミックランダムアクセスメモリ(DRAM)デバイスと、
前記DRAMデバイスに結合されるDRAMコントローラであって、前記DRAMコントローラは、アドレスインターリーブ構成要素をバイパスするように構成されるDRAM圧縮構成要素を含み、前記DRAM圧縮構成要素が、
前記DRAMデバイスがスタンバイ電力モードに入る要求を受け取ることと、
前記要求に応答して、前記複数のバンク内に記憶された前記メモリコンテンツを圧縮するための1つまたは複数の圧縮パラメータを決定することであって、前記1つまたは複数の圧縮パラメータは、圧縮されるべき前記複数のバンクの数を特定する、決定することと、
前記複数のバンクのうちの少なくとも1つを解放するために前記1つまたは複数の圧縮パラメータによって特定された前記複数のバンクの数に関連する前記メモリコンテンツを圧縮することと、
前記スタンバイ電力モード中に前記圧縮によって解放された前記複数のバンクのうちの1つまたは複数のバンクのうちの少なくとも一部のセルフリフレッシュを無効にすることと
を行うように構成される論理手段を含む、DRAMコントローラと
を含む、システム。
【請求項２７】
前記圧縮パラメータが、圧縮ブロックのサイズおよびスピルオーバーバンクのうちの1つまたは複数をさらに含む、請求項26に記載のシステム。
【請求項２８】
前記メモリコンテンツを圧縮するように構成される前記論理手段が、圧縮されたスピルオーバーコンテンツを前記スピルオーバーバンクに書き込むように構成される論理手段をさらに含む、請求項27に記載のシステム。
【請求項２９】
前記DRAM圧縮構成要素が、
前記圧縮されたコンテンツを解凍する際に取り出される第1のブロックを識別する圧縮メタデータを記憶するように構成される論理手段
をさらに含む、請求項26に記載のシステム。
【請求項３０】
前記セルフリフレッシュを無効にするように構成される論理手段が、1つもしくは複数のバンクセグメントまたは前記複数のバンクのうちの1つもしくは複数のセルフリフレッシュを無効にするように構成される論理手段を含む、請求項29に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、全体が参照により本明細書に組み込まれる、"Systems and Methods for Reducing Volatile Memory Standby Power in a Portable Computing Device"と題する2014年11月20日に出願された米国仮特許出願第62/082,434号(整理番号17006.0381U1)の優先権の利益を主張する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(たとえば、ノートブック、ウルトラブック、セルラー電話、スマートフォン、タブレットコンピュータ、携帯情報端末(PDA)、およびポータブルゲームコンソール)、およびウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、フィットネストラッカー、スポーツ/グローバルポジショニングシステム(GPS)ウォッチ、心拍数モニタ、およびグローバルポジショニングシステム(GPS)デバイス)は、絶え間なく拡大を続ける数々の特徴およびサービスを提供し続ける。ポータブル/ウェアラブルコンピューティングデバイスは、情報、リソース、および通信への先例のないレベルのアクセスをユーザに提供する。これらのサービス拡張とペースを合わせるために、そのようなデバイスは、より強力、かつより複雑になってきた。ここで、ポータブル/ウェアラブルコンピューティングデバイスには、一般に、単一のシリコン基板上に組み込まれた1つまたは複数のチップ構成要素(たとえば、複数の中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサなど)を含む、システムオンチップ(SoC)が含まれる。SoCは、たとえば、ダイナミックランダムアクセスメモリ(DRAM)などの揮発性メモリに結合される。DRAMは、低電力ダブルデータレート(DDR)(LPDDR)およびグラフィックスDDR(GDDR)に関する様々な規格を含む、様々なタイプのDDR同期DRAMを含んでもよい。
【０００３】
多くのポータブル/ウェアラブルコンピューティングデバイスでは、DDRメモリは、一般に、デバイスがアクティブでないとき、バッテリー電力を節約するためにスタンバイ電力またはスリープモードに置かれる。しかしながら、スタンバイにおいてさえ、DDRは、依然として、かなりの量の総スタンバイ電力量を消費する。スタンバイ電力は、ユーザエクスペリエンス(たとえば、バッテリー寿命、使用日数(DoU))に直接影響を及ぼすので、しばしば、モバイルデバイスの重要な競合する指標である。スタンバイモードのとき、DDRメモリ内の周辺回路はパワーダウンされる。メモリ内部のハードウェアステートマシンは、メモリコンテンツの破損を防ぐために、DDRメモリアレイ内の行を周期的にリフレッシュ(「セルフリフレッシュ」)するのにアウェイク状態にされる。セルフリフレッシュ電流は、スタンバイモードにおける電力消費の重要なソースである。
【０００４】
スタンバイ電力を低減するために、いくつかの既存の解決策は、DDRにおけるすべてのデータコンテンツを圧縮し、圧縮されたコンテンツをハードドライブまたはフラッシュメモリ内に保存するためのソフトウェアに依拠する。圧縮されたメモリコンテンツ(またはメモリ画像)は、スタンバイモードを出てアクティブモードに入るとき、最初にハードドライブまたはフラッシュメモリから取り出され、解凍され、次いでDDRメモリ内に再び記憶される。圧縮および解凍がアプリケーションプロセッサによって実行されるので、モバイルデバイスのスリープ期間は、圧縮し、圧縮されたコンテンツをハードドライブまたはフラッシュメモリ内に記憶し、ハードドライブまたはフラッシュメモリから取り出し、復元する際に消費される電力を補うために比較的長く(たとえば、たいていの場合、数時間程度に)する必要がある。ハードドライブの場合、別の欠点は、その長いアクセス時間であり、長いスリープ時間またはウェイク時間につながる。フラッシュメモリの場合、別の欠点は、フラッシュメモリが限られた数のプログラム/消去(P/E)サイクルを有することである。たとえば、典型的な3000P/Eサイクルを有する2ビットMLC(マルチレベルセル)フラッシュデバイス内に1GBの圧縮されたDDRコンテンツを記憶するために、一実装形態は、冗長性のため16GBまでのフラッシュメモリを必要とする場合があるが、その理由は、MLCフラッシュメモリの各GBが、3000回しか消去および書き込みできないからである。また別の欠点は、多くのメモリコントローラが、バンクインターリーブを実行することであるが、これは、DDRコンテンツ全体が圧縮される必要があるか、またはまったく圧縮される必要がないかを意味する。他の解決策は、メモリを解放するためにプロセスを使い尽くすオペレーティングシステム(O/S)に依拠するが、このO/Sは、他の欠点の中でも、複雑なソフトウェアの再構築を必要とする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、当技術分野において、ポータブルコンピューティングデバイスのDRAMメモリのスタンバイ電力を低減するための改善されたシステムおよび方法が必要とされる。
【課題を解決するための手段】
【０００６】
ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法の様々な実施形態が開示される。1つのそのような方法は、揮発性メモリデバイスがスタンバイ電力モードに入る要求を受け取るステップを含む。揮発性メモリデバイスの複数のバンク内に記憶されたコンテンツを圧縮するための1つまたは複数の圧縮パラメータが決定される。記憶されたコンテンツは、複数のバンクのうちの少なくとも1つを解放するために1つまたは複数の圧縮パラメータに基づいて圧縮される。本方法は、スタンバイ電力モード中に圧縮によって解放された複数のバンクのうちの1つまたは複数のバンクのうちの少なくとも一部のセルフリフレッシュを無効にする。
【０００７】
別の実施形態は、ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムである。1つのそのようなシステムは、ダイナミックランダムアクセスメモリ(DRAM)コントローラに結合されるDRAMデバイスを含む。DRAMデバイスは、メモリコンテンツを含む複数のバンクを含む。DRAMコントローラは、アドレスインターリーブ構成要素をバイパスするように構成されるDRAM圧縮構成要素を含む。DRAM圧縮構成要素は、SoCまたはDRAMコントローラがスタンバイ電力モードに入る要求を受け取ることと、複数のバンク内に記憶されたメモリコンテンツを圧縮するための1つまたは複数の圧縮パラメータを決定することと、複数のバンクのうちの少なくとも1つを解放するために1つまたは複数の圧縮パラメータに基づいてメモリコンテンツを圧縮することと、スタンバイ電力モード中に圧縮によって解放された複数のバンクのうちの1つまたは複数のバンクのうちの少なくとも一部のセルフリフレッシュを無効にすることとを行うように構成される論理を含む。
【０００８】
図の中では、別段に示されない限り、種々の図全体を通して、同様の参照番号は同様の部分を指す。"102A"または"102B"などの文字指定を伴う参照番号について、文字指定は、同じ図内に存在する2つの同様の部分または要素を区別する場合がある。参照番号がすべての図において同じ参照番号を有するすべての部分を含むことを意図するとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【０００９】
【図１】ポータブルコンピューティングデバイスのDRAMメモリのスタンバイ電力を低減するためのシステムの一実施形態を示すブロック図である。
【図２】図1のシステム内のDRAM圧縮構成要素の一実施形態を示すブロック図である。
【図３】DRAMメモリのスタンバイ電力を低減するための図1のシステムに実装される方法の一実施形態を示すフローチャートである。
【図４】圧縮されている例示的なDRAMデバイスを示す概略図である。
【図５】DRAMコンテンツを圧縮するための方法の一実施形態を示すフローチャートである。
【図６】例示的なポータブルコンピューティングデバイス(PCD)に組み込まれた図1のシステムを示す図である。
【発明を実施するための形態】
【００１０】
「例示的」という単語は、本明細書では、「例、事例、または例示として機能する」ことを意味するために使用される。「例示的」として本明細書において説明されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきでない。
【００１１】
本明細書では、「アプリケーション」または「イメージ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で参照される「アプリケーション」は、オープンされる必要があり得るドキュメントまたはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合もある。
【００１２】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能コンテンツを有するファイルを含む場合もある。加えて、本明細書で参照される「コンテンツ」は、オープンされる必要があり得る文書またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合もある。
【００１３】
「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、本明細書で使用されるとき、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されるアプリケーションとコンピューティングデバイスの両方が構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行のスレッド内に存在してもよく、構成要素は、1つのコンピュータ上に局在化され、および/または2つ以上のコンピュータ間で分散されてもよい。加えて、これらの構成要素は、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行されてもよい。構成要素は、たとえば1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素とやりとりし、および/または信号によってインターネットなどのネットワークを介して他のシステムとやりとりする、ある構成要素からのデータ)を有する信号に従って、ローカルプロセスおよび/またはリモートプロセスによって通信してもよい。
【００１４】
図1は、ポータブルコンピューティングデバイスのDRAMメモリのスタンバイ電力を低減するためのシステム100の一実施形態を示すブロック図である。システム100は、パーソナルコンピュータ、ワークステーション、サーバ、およびポータブルコンピューティングデバイス(PCD)を含む、任意のコンピューティングデバイス内に実装される場合があることを了解されたい。適切なPCDは、たとえば、携帯電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、タブレットコンピュータ、またはウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、フィットネストラッカー、心拍数モニタ、およびGPS追跡デバイスなど)を含んでもよい。
【００１５】
システム100は、DRAM104などの揮発性メモリに結合されるシステムオンチップ(SoC)102を含む。DRAM104は、1つまたは複数のメモリ集積回路を含んでもよい。DRAM104が、低電力ダブルデータレート(DDR)(LPDDR)およびグラフィックスDDR(GDDR)に関する様々な既知のインターフェース規格を含む、様々なタイプのDDR同期DRAMを含んでもよいことを了解されたい。SoC102は、たとえば、SoCバス105を介してDRAMメモリコントローラ110に結合される1つまたは複数の処理デバイスを含む。処理デバイスまたはマスターは、中央処理ユニット(CPU)106、グラフィックス処理ユニット(GPU)108、デジタル信号プロセッサ(DSP)、ビデオ符号化/復号エンジン107、モデム109、ワイヤレス接続性論理ブロック111、または任意の他のメモリクライアントを含んでもよい。
【００１６】
DRAMコントローラ110は、DRAM104に対するメモリ読取り/書込みトランザクションを制御する。一実施形態では、DRAMコントローラ110は、アドレスインターリーブ論理112、読取り/書込み収集キュー114、DRAMプロトコルエンジン116、およびDRAM圧縮構成要素120を含む。当技術分野において知られているように、アドレスインターリーブ論理112は、メモリアドレスをメモリバンクにわたって均一に分散させることによってDRAM104に対する読取り/書込みトランザクションをインターリーブするように構成される。このように、連続的なメモリ読取り/書込みトランザクションは、各メモリバンクを順に使用し、所望の動作に使用可能にするためのメモリバンクの待ち時間の低減によってより高いメモリスループットをもたらす場合がある。読取り/書込み収集キュー114は、マスターから同じページへの読取りおよび書込みをグループ化することによってDRAMメモリの利用効率を増加させ、その結果、読取りおよび書込みを互いにできる限り近接して実行することができる。このように、バンクを利用可能にする(たとえば、バンク内のページをクローズおよび/またはオープンする)コストは、マスターからの多くの読取りトランザクションまたは書込みトランザクションにわたって償却することができる。DRAMプロトコルエンジン116は、DRAMメモリインターフェース規格において指定されたすべてのタイミング要件を正確に満たすすべての読取りおよび書込みが実行されるようにDRAM104にインターフェースを提供する。
【００１７】
以下により詳細に説明するように、DRAM圧縮構成要素120は、DRAM104のコンテンツを圧縮し、解放されるバンクのセルフリフレッシュを中止するようにメモリデバイスを構成するように構成される。解放されたバンクが有効な情報を含まないため、スタンバイモード中にセルフリフレッシュをする必要がなく、そのことが、電力消費を低減し、バッテリー寿命を延長する。図1の実施形態では、DRAM圧縮構成要素120は、圧縮エンジン124と、有限ステートマシン122と、DRAMバンク圧縮状態を記憶するための1つまたは複数のレジスタ126とを含む。図1に示すように、DRAM圧縮構成要素120は、アドレスインターリーブ論理112をバイパスするように構成される場合があり、それによって、圧縮エンジン124が、DRAM104内のバンクのうちのいずれかを圧縮するのを可能にする。圧縮エンジン124が、任意のタイプの圧縮アルゴリズムをサポートする場合があることを了解されたい。一実施形態では、圧縮アルゴリズムは、たとえば、既知のLempel-Ziv(LZ)または他の圧縮方法のいずれかなどの、可逆データ圧縮アルゴリズムを含む。
【００１８】
有限ステートマシン122は、DRAM104内の各バンクに関する状態データを維持し、バンクが圧縮されるか、部分的に圧縮されるか、または圧縮されないかを識別する。部分的に圧縮される場合、圧縮されたコンテンツのロケーションおよびサイズも記録される。図2の例では、DRAM104は、8つ以上のバンク(バンク0〜バンク7)を含み得る。状態201、203、205、207、209、211、213、および215は、それぞれ、バンク0、バンク1、バンク2、バンク3、バンク4、バンク5、バンク6、およびバンク7に対応する。バンク状態は、1つまたは複数のレジスタ内に記憶される場合がある。図2に示すように、各バンクに関する状態データは、圧縮された状態、部分的に圧縮された状態、または圧縮されない状態を有するバンク圧縮状態206を含んでもよい。バンクが圧縮された状態である場合、1つまたは複数の圧縮ブロックに関するサイズおよび開始アドレスを含む、追加の状態データが、圧縮/解凍を管理するために記憶される場合がある。図2では、バンク0が、圧縮された状態である。フィールド208は、圧縮されたコンテンツのブロック1のサイズを含み、フィールド210は、ブロック1の開始アドレスを識別する。フィールド212は、圧縮されたコンテンツのブロック2のサイズを含み、フィールド214は、ブロック2の開始アドレスを識別する。
【００１９】
図3は、DRAM圧縮構成要素120によって実施される方法300の一実施形態を示す。ブロック302では、DRAM104をスタンバイ電力モードに置く要求が受け取られる。すべてのマスターがパワーダウンされた後、DRAM104がスタンバイ電力モードに入る要求が、CPUマスターもしくは電力マネージャ上で実行されるソフトウェアコマンドによって、またはSoC上のハードウェア圧縮エンジンの外部のハードウェア有限ステートマシン(図には示さず)によって開始される場合があることを了解されたい。有限ステートマシン122は、バンク内に記憶されたコンテンツを圧縮するための1つまたは複数の圧縮パラメータを用いて構成される場合がある。圧縮パラメータは、たとえば、圧縮ブロックのサイズ、圧縮されるべきバンクの数、スピルオーバーバンクのロケーションなどを指定する場合がある。圧縮パラメータは、DRAM圧縮構成要素120に提供されるか、またはさもなければ有限ステートマシン122内にプログラムされるかもしくは記憶される場合がある。ブロック304では、圧縮パラメータが決定される。ブロック306では、メモリクライアント(たとえば、CPU106、GPU108)に関するすべてのメモリトランザクションが排出される。すべてのメモリコンテンツが排出されDRAM104内に記憶されるとき、メモリクライアントは、パワーダウンされる場合がある(ブロック308)。ブロック310では、メモリコンテンツは、圧縮パラメータに基づいて圧縮される。たとえば、2:1の圧縮比を仮定すると、2つのバンク内のコンテンツは、単一のバンク内に圧縮される場合があり、それが、1つのバンクを解放する。圧縮アルゴリズムがスピルオーバー圧縮コンテンツをもたらさない場合、バンクに関する圧縮状態データは更新され(ブロック314)、電力マネージャは、DRAMコントローラ110をパワーダウンするように命令される。しかしながら、スピルオーバーコンテンツが存在する場合、圧縮エンジンは、この残りのコンテンツを圧縮し(ブロック318)、得られた圧縮コンテンツを圧縮パラメータ内で識別されたスピルオーバーバンク内に記憶し、その後、DRAMコントローラ110が、パワーダウンされる場合がある(ブロック316)。圧縮アルゴリズムに関連付けられたメタデータが存在する場合、メタデータは、高速復号時間のために圧縮エンジン内のレジスタ内に、またはシリコン面積効率のためにDRAM内に記憶することができる。
【００２０】
図4は、圧縮前の第1の状態402と圧縮後の第2の状態404とにおける例示的なDRAMデバイス104を示す。DRAMデバイス104は、各々が圧縮されていないコンテンツを含む8つのバンク(バンク0〜バンク7)を含む。バンク2および3内の圧縮されていないコンテンツは、バンク2内に圧縮される。バンク4および5はバンク3内に圧縮され、バンク6および7はバンク4内に圧縮される。第2の状態404に示すように、圧縮が完了した後、バンク5、6、および7が解放される。バンク5、6、および7が有効なコンテンツを含まなくなるため、これらのバンク上で実行されるセルフリフレッシュの必要がない。バンク0〜4しかセルフリフレッシュする必要がない。たとえば、セルフリフレッシュが、1つまたは複数のバンク、複数のバンク、または1つまたは複数のバンクのうちの部分もしくはセグメントにおける1バンク当りのベースを含む、様々な方法で無効にされる場合があることを了解されたい。このように、スタンバイ電力モード中のセルフリフレッシュ動作の電力消費は、低減される場合がある。
【００２１】
図4にさらに示すように、スピルオーバー圧縮コンテンツ406は、他の圧縮されていないコンテンツとともにバンク1内に記憶され、バンク1を部分的に圧縮されたバンクにする場合がある。デバイスが再びアクティブになり、DRAMコントローラ110がパワーアップされる(すなわち、スタンバイ電力モードを出る)とき、圧縮されていないコンテンツ(バンク0および1)は、状態402に戻るために、圧縮されたコンテンツが解凍される前または解凍中のいずれかに最初に読み取られる場合がある。圧縮アルゴリズムは、バンク(たとえば、図4のバンク4〜)のうちの1つにおいて、スピルオーバーバンクにおいて、または状態レジスタのうちの1つにおいてメタデータ217を生成し、記憶する場合もある。メタデータの使用を必要とする圧縮アルゴリズムの場合、メタデータ217は、圧縮されたコンテンツの解凍を制御するためのデータを含んでもよい。メタデータ217は、圧縮される際に更新される最終ブロックと、解凍される際に取り出される第1のブロックとを含んでもよい。最大の電力節約では、圧縮エンジンは、一般に、典型的にはN-2個のバンクまでのできる限り多くのバンクを圧縮するように構成されるが、ここで、Nは、DRAMメモリ内のバンクの総数である。残りの2つのバンクは、スピルオーバーバンクとして確保される。これらのスピルオーバーバンクは、一般に、ウェイクアップのために必要とされる場合がある任意のO/Sコードと、ウェイクアップ直後の高速表示のためのフレームバッファコンテンツとを含む。
【００２２】
図5は、DRAM104(図4)内のコンテンツを圧縮するための方法500の例示的な実施形態を示す。ブロック502では、圧縮論理は、上記で説明した圧縮パラメータを用いて構成される。圧縮エンジン124は、メモリ演算(図3のブロック306〜)を排出した後、圧縮パラメータに基づいて圧縮を開始するように命令される場合がある。ブロック506では、有限ステートマシン122は、圧縮されるべき第1のバンク(図4のバンク2〜)からフェッチを開始するように圧縮エンジン124に命令する。ブロック508では、圧縮エンジン124は、バンク2の底部の第1のページを第1の圧縮バッファ(図2のメモリバッファ202〜)内にフェッチし、ページの圧縮を開始する。圧縮エンジン124が、ブロック510において第1のページを圧縮している間、フェッチ論理は、バンク2から第2のページのコンテンツをフェッチし続ける。第1のページの圧縮がブロック512において完了したとき、圧縮されたコンテンツは、バンク2内の現在空である第1のページに書き込まれる。バンク2の圧縮が完了しない場合(判定ブロック514)、処理フローは、ブロック510に戻る。バンク2の圧縮が完了したとき、他のバンクは、同様の方法で圧縮される(判定ブロック516)。すべてのバンクが圧縮されたとき、バンク状態126は、更新される場合がある(ブロック520)。スピルオーバーコンテンツが存在する場合(判定ブロック518)、コンテンツは圧縮され、スピルオーバーコンテンツは、スピルオーバーバンク内に書き込まれる。
【００２３】
上述のように、システム100は、任意の望ましいコンピューティングシステムに組み込まれる場合がある。ポータブルコンピューティングデバイスまたはウェアラブルデバイス内にシステム100を実装することは、特に有利である場合があるが、より短いスリープ時間は、スリープ電力を保存することを難しくする。図6は、例示的なポータブルまたはウェアラブルコンピューティングデバイス(PCD)600に組み込まれたシステム100を示す。システムオンチップ(SoC)102は、DRAMコントローラ110を含む。ディスプレイコントローラ328およびタッチスクリーンコントローラ606は、第0のコア610、第1のコア612、および第nのコア614を含むマルチコア602に結合されてもよい。オンチップシステム102の外部にあるタッチスクリーンディスプレイ606は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合されてもよい。
【００２４】
図6は、MPEG(Moving Pictures Expert Group)ビデオエンコーダ334がマルチコアプロセッサ602に結合されることをさらに示す。さらに、ビデオ増幅器336が、ビデオエンコーダ334およびタッチスクリーンディスプレイ606に結合される。また、ビデオポート338が、ビデオ増幅器336に結合される。図6に示すように、ユニバーサルシリアルバス(USB)コントローラ340が、プロセッサクラスタのうちの1つまたは複数に結合される。同様に、USBポート342が、USBコントローラ340に結合される。メモリ104および加入者識別モジュール(SIM)カード346はまた、マルチコアプロセッサ602に結合されてもよい。
【００２５】
デジタルカメラ348が、マルチコアプロセッサ602に結合されてもよい。例示的な態様において、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。ステレオオーディオコーダ/デコーダ(コーデック)350は、マルチコアプロセッサ602に結合されてもよい。その上、オーディオ増幅器352が、ステレオオーディオコーデック350に結合されてもよい。例示的な態様では、第1のステレオスピーカ354および第2のステレオスピーカ356が、オーディオ増幅器352に結合される。マイクロフォン増幅器358がまた、ステレオオーディオコーデック350に結合されてもよい。さらに、マイクロフォン360が、マイクロフォン増幅器358に結合されてもよい。特定の態様では、周波数変調(FM)無線チューナ362が、ステレオオーディオコーデック350に結合されてもよい。また、FMアンテナ364が、FM無線チューナ362に結合される。さらに、ステレオヘッドフォン366が、ステレオオーディオコーデック350に結合されてもよい。
【００２６】
図6は、無線周波数(RF)トランシーバ368がマルチコアプロセッサ602に結合される場合があることをさらに示す。RFスイッチ370が、RFトランシーバ368およびRFアンテナ372に結合されてもよい。キーパッド204、マイクロフォンを有するモノヘッドセット376、およびバイブレータデバイス378が、プロセッサ126に結合されてもよい。
【００２７】
図6は、電源380がオンチップシステム102に結合される場合があることも示す。特定の態様では、電源380は電力を必要とするPCD600の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリー、または交流(AC)電源に接続されたAC/DC変換器から得られるDC電源である。
【００２８】
図6はさらに、PCD600がまた、データネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用される場合がある、ネットワークカード388を含んでもよいことを示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナ、または当技術分野でよく知られている任意の他のネットワークカードである場合がある。さらに、ネットワークカード388は、チップに組み込まれる場合があり、すなわち、ネットワークカード388は、チップ内のフルソリューションである場合があり、別個のネットワークカード388でなくてもよい。
【００２９】
図6を参照すると、メモリ104、タッチスクリーンディスプレイ606、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム102の外部に存在する場合があることを了解されたい。
【００３０】
本明細書で説明したプロセスまたはプロセスフローにおける特定のステップは、当然、説明したように本発明が機能するために他のステップに先行する。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明したステップの順序に限定されない。すなわち、いくつかのステップが、本発明の範囲および趣旨から逸脱することなく、他のステップの前、後、またはそれと平行に(実質的に同時に)実行され得ることが、認識される。場合によっては、本発明から逸脱することなく、いくつかのステップは、省略されてよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの言葉は単に、例示的な方法の説明を通して読者を導くために使用される。
【００３１】
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示した発明を実装するコンピュータコードを書くことができるか、または実装するのに適したハードウェアおよび/もしくは回路を識別することができる。
【００３２】
したがって、特定の1つのセットのプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明の作製方法および使用方法を十分に理解するのに必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示す場合がある図面とともに、より詳細に説明される。
【００３３】
1つまたは複数の例示的な態様では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装されてもよい。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶される場合があるか、またはコンピュータ可読媒体上に送信される場合がある。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムのある場所から別の場所への転送を容易にする任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによりアクセスされる場合がある任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、NANDフラッシュ、NORフラッシュ、M-RAM、P-RAM、R-RAM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され、コンピュータによってアクセスされる場合がある任意の他の媒体を含んでもよい。
【００３４】
さらに、任意の接続が、適正にコンピュータ可読媒体と称される。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線("DSL")、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【００３５】
ディスク(disk)およびディスク(disc)は、本明細書で使用するとき、コンパクトディスク(disc)("CD")、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)("DVD")、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せはまた、コンピュータ可読媒体の範囲内に同じく含まれるものとする。
【００３６】
本発明の趣旨および範囲から逸脱することなく、本発明が関係する代替的な実施形態が、当業者には明らかになるであろう。したがって、選択された態様が図示され詳細に説明されてきたが、以下の特許請求の範囲によって規定されるように、本発明の趣旨および範囲から逸脱することなく、態様において種々の置換および改変が行われる場合があることは理解されよう。
【符号の説明】
【００３７】
100  ポータブルコンピューティングデバイスのDRAMメモリのスタンバイ電力を低減するためのシステム
102  システムオンチップ、SoC、オンチップシステム
104  DRAM、DRAMデバイス
105  SoCバス
106  中央処理ユニット、CPU
107  ビデオ符号化/復号エンジン
108  グラフィックス処理ユニット、GPU
109  モデム
110  DRAMメモリコントローラ、DRAMコントローラ
111  ワイヤレス接続性論理ブロック
112  アドレスインターリーブ論理
114  読取り/書込み収集キュー
116  DRAMプロトコルエンジン
120  DRAM圧縮構成要素
122  ステートマシン
124  圧縮エンジン
126  DRAMバンク圧縮状態を記憶するためのレジスタ、バンク状態
201  バンク0状態
202  メモリバッファ
203  バンク1状態
204  メモリ読取り/書込み論理、キーパッド
205  バンク2状態
206  バンク圧縮状態
207  バンク3状態
208  圧縮されたコンテンツのブロック1のサイズ
209  バンク4状態
210  圧縮されたコンテンツのブロック1の開始アドレス
211  バンク5状態
212  圧縮されたコンテンツのブロック2のサイズ
213  バンク6状態
214  圧縮されたコンテンツのブロック2の開始アドレス
215  バンク7状態
217  メタデータ
328  ディスプレイコントローラ
330  タッチスクリーンコントローラ
334  ビデオエンコーダ
336  ビデオ増幅器
338  ビデオポート
340  USBコントローラ
342  USBポート
346  SIMカード
348  デジタルカメラ
350  ステレオオーディオコーダ/デコーダ、ステレオオーディオコーデック
352  オーディオ増幅器
354  第1のステレオスピーカ
356  第2のステレオスピーカ
358  マイクロフォン増幅器
360  マイクロフォン
362  FM無線チューナ
364  FMアンテナ
366  ステレオヘッドフォン
368  RFトランシーバ
370  RFスイッチ
372  RFアンテナ
376  マイクロフォンを有するモノヘッドセット
378  バイブレータデバイス
380  電源
388  ネットワークカード
402  第1の状態
404  第2の状態
406  スピルオーバー圧縮コンテンツ
600  ポータブルまたはウェアラブルコンピューティングデバイス、PCD
602  マルチコア、マルチコアプロセッサ
606  タッチスクリーンコントローラ
610  第0のコア
612  第1のコア
614  第nのコア
【図１】
0006276470.tif 000002
【図２】
0006276470.tif 000003
【図３】
0006276470.tif 000004
【図４】
0006276470.tif 000005
【図５】
0006276470.tif 000006
【図６】
0006276470.tif 000007