(57)【特許請求の範囲】
【請求項１】
メモリI/O電力を削減するための方法であって、
複数のDQピンを介してメモリコントローラに結合されるDRAMメモリデバイスのタイプと、前記DRAMメモリデバイスの前記タイプと関連付けられるDQピン終端方式とを決定するステップと、
前記DQピン終端方式に基づいて、データマスキング動作の間に前記DRAMメモリデバイスと関連付けられるメモリI/O電力を削減するために複数のDQピン状態の1つを選択するステップであって、前記複数のDQピン状態が、最終保持状態と、ロー保持状態と、ハイ保持状態と、トライステートとのうちの1つまたは複数を備える、ステップと、
前記データマスキング動作を有効にするステップと、
前記データマスキング動作の間に、前記選択されたDQピン状態に前記複数のDQピンを駆動するステップと
を備える、方法。
【請求項２】
前記データマスキング動作がメモリ書込み動作の間に発生する、請求項1に記載の方法。
【請求項３】
前記データマスキング動作がメモリ読取り動作の間に発生する、請求項1に記載の方法。
【請求項４】
前記DRAMメモリデバイスが、ダブルデータレート(DDR)DRAMメモリデバイスを備える、請求項1に記載の方法。
【請求項５】
前記データマスキング動作がDDRトランザクションの間に発生する、請求項4に記載の方法。
【請求項６】
前記データマスキング動作が前記DDRトランザクションの単一のビートに対して有効にされる、請求項5に記載の方法。
【請求項７】
前記データマスキング動作が前記DDRトランザクションの開始または終了の1つにおいて有効にされる、請求項5に記載の方法。
【請求項８】
メモリI/O電力を削減するためのシステムであって、
複数のDQピンを介してメモリコントローラに結合されるDRAMメモリデバイスのタイプと、前記DRAMメモリデバイスの前記タイプと関連付けられるDQピン終端方式とを決定するための手段と、
前記DQピン終端方式に基づいて、データマスキング動作の間に前記DRAMメモリデバイスと関連付けられるメモリI/O電力を削減するために複数のDQピン状態の1つを選択するための手段であって、前記複数のDQピン状態が、最終保持状態と、ロー保持状態と、ハイ保持状態と、トライステートとのうちの1つまたは複数を備える、手段と、
前記データマスキング動作を有効にするための手段と、
前記データマスキング動作の間に、前記選択されたDQピン状態に前記複数のDQピンを駆動するための手段と
を備える、システム。
【請求項９】
前記データマスキング動作がメモリ書込み動作の間に発生する、請求項8に記載のシステム。
【請求項１０】
前記データマスキング動作がメモリ読取り動作の間に発生する、請求項8に記載のシステム。
【請求項１１】
前記DRAMメモリデバイスが、ダブルデータレート(DDR)DRAMメモリデバイスを備える、請求項8に記載のシステム。
【請求項１２】
前記データマスキング動作がDDRトランザクションの間に発生する、請求項11に記載のシステム。
【請求項１３】
前記データマスキング動作が前記DDRトランザクションの単一のビートに対して有効にされる、請求項12に記載のシステム。
【請求項１４】
前記データマスキング動作が前記DDRトランザクションの開始または終了の1つにおいて有効にされる、請求項12に記載のシステム。
【請求項１５】
コンピュータによって実行されるとき、請求項1〜7のいずれか一項に記載の方法を実行するための命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データマスキングを介してメモリＩ／Ｏ電力を低減するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ダイナミックランダムアクセスメモリ(DRAM)は、様々なコンピューティングデバイス(たとえば、パーソナルコンピュータ、ラップトップ、ノートブック、ビデオゲームコンソール、ポータブルコンピューティングデバイス、携帯電話など)において使用される。DRAMは、データの各ビットを集積回路内の別々のキャパシタに記憶する、揮発性メモリの一種である。キャパシタは、充電または放電されることが可能である。通例0および1と呼ばれるビットの2つの値を表すために、これらの2つの状態がとられる。キャパシタは電荷をリークするので、キャパシタの電荷が定期的にリフレッシュされない限り、情報は最終的に消滅する。このリフレッシュの必要性により、DRAMは、SRAMおよび他のスタティックメモリとは対照的にダイナミックメモリと呼ばれる。
【０００３】
DRAMの利点は、その構造的な簡単さである。すなわち、ビットごとに1つのトランジスタと1つのキャパシタしか必要ではなく、これによりDRAMの密度を非常に高くすることが可能になる。しかしながら、DRAMの密度はおよび速度の要件が上がり続けるにつれて、メモリの消費電力が重大な問題になりつつある。
【０００４】
DRAM内の電力は一般に、コアメモリアレイ電力および非コア電力として分類される。コアメモリアレイ電力は、ビットセル/アレイ中のすべてのデータを保持し、リークおよびリフレッシュ動作を管理するための電力を指す。非コア電力は、メモリデバイスへの、およびメモリデバイスからのすべてのデータを転送するための、電流値を検出するための、ならびに、周辺論理手段、マルチプレクサ、内部バス、バッファ、入力/出力(I/O)ドライバ、およびレシーバを管理するための電力を指す。非コア電力を低減することが重大な問題である。
【０００５】
非コア電力を低減するための既存の解決法は通常、動作電圧を下げること、負荷容量を低減すること、または、性能が必要とされていないときは常に動作周波数を一時的に下げることを伴っている。しかしながら、これらの解決法は、帯域幅を必要とする集中的使用の事例に対処することができない。他の解決法は、メモリシステムと関連付けられるデータアクティブ率を下げることを試みている。データアクティブ率kは、一定の期間にわたるメモリアクセスシステムにおける0から1へのトグルまたは遷移の数を指す。たとえば、0,1,0,1,0,1,0,1という単一の配線上の8ビートのシーケンスでは、k=0.5である。データアクティブ率を下げる試みが、画像圧縮を使用したディスプレイフレームのバッファのような、特定のタイプのデータに対して提案されている。これは通常、ソース(すなわち、ディスプレイハードウェアエンジン)において実行される。しかしながら、そのような解決法は、このタイプのディスプレイデータに非常に特化され限定されており、そのようなデータは通常、DRAM使用量の全体の相対的に小さな割合しか占めない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、当技術分野において、DRAMメモリシステムにおいてメモリI/O電力を節約するための改善されたシステムおよび方法が依然として必要とされている。
【課題を解決するための手段】
【０００７】
メモリI/O電力を低減するためのシステムおよび方法が開示される。一実施形態は、システムオンチップ(SoC)と、DRAMメモリデバイスと、データマスキング電力低減モジュールとを備えるシステムである。SoCはメモリコントローラを備える。DRAMメモリデバイスは、複数のDQピンを介してメモリコントローラに結合される。データマスキング電力低減モジュールは、データマスキング動作の間にDQピンを電力節約状態に駆動するように構成される論理手段を備える。
【０００８】
別の実施形態は、メモリI/O電力を低減するための方法である。1つのそのような方法は、複数のDQピンを介してメモリコントローラに結合されるDRAMメモリデバイスのタイプを決定するステップと、DRAMメモリデバイスのタイプに基づいて、データマスキング動作の間にDRAMメモリデバイスと関連付けられるメモリI/O電力を低減するための複数のDQピン状態の1つを選択するステップと、データマスキング動作を有効にするステップと、データマスキング動作の間に、選択されたDQピン状態にDQピンを駆動するステップとを備える。
【０００９】
図の中では、別段に示されない限り、様々な図の全体を通して、同様の参照番号は同様の部分を指す。“102A”または“102B”などの文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別することがある。参照番号がすべての図の中の同じ参照番号を有するすべての部分を包含することが意図される場合、参照番号に対する文字指定は省略されることがある。
【図面の簡単な説明】
【００１０】
【図１】データマスキングを介してメモリI/O電力を低減するためのシステムの一実施形態のブロック図である。
【図２】デフォルトのデータマスキング動作の一実施形態を示すタイミング図である。
【図３】データマスキングの間のメモリI/O電力を低減するための最終保持状態の一実施形態を示すタイミング図である。
【図４】データマスキングの間のメモリI/O電力を低減するためのロー保持状態の一実施形態を示すタイミング図である。
【図５】データマスキングの間のメモリI/O電力を低減するためのハイ保持状態の一実施形態を示すタイミング図である。
【図６】データマスキングの間のメモリI/O電力を低減するためのトライステート状態の一実施形態を示すタイミング図である。
【図７ａ】データマスキングの間にDQピンを駆動するためのDQピン終端方式の一実施形態を示す図である。
【図７ｂ】データマスキングの間にDQピンを駆動するためのDQピン終端方式の一実施形態を示す図である。
【図７ｃ】データマスキングの間にDQピンを駆動するためのDQピン終端方式の一実施形態を示す図である。
【図７ｄ】データマスキングの間にDQピンを駆動するためのDQピン終端方式の一実施形態を示す図である。
【図７ｅ】データマスキングの間にDQピンを駆動するためのDQピン終端方式の一実施形態を示す図である。
【図８】データマスキングを介してメモリI/O電力を低減するための図1のシステムで実施される方法の一実施形態を示すフローチャートである。
【図９】DDRトランザクションの間に実施されるデータマスキング電力低減方法の一実施形態を示すタイミング図である。
【図１０】メモリ読取り動作に適用されるデータマスキング電力低減方法の一実施形態を示すブロック図である。
【図１１】メモリ書込み動作に適用されるデータマスキング電力低減方法の一実施形態を示すブロック図である。
【図１２】図1のシステムを備えるポータブルコンピュータデバイスの一実施形態のブロック図である。
【発明を実施するための形態】
【００１１】
「例示的」という用語は、本明細書において「一例、事例、または実例として役立つ」ことを意味するように使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるとは限らない。
【００１２】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含むことがある。加えて、本明細書で言及される「アプリケーション」は、開かれる必要があり得る文書、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含むことがある。
【００１３】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルも含むことがある。加えて、本明細書で参照される「コンテンツ」は、また、開かれる必要があり得る文書、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含むことがある。
【００１４】
本明細書で使用される場合、「コンポーネント」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連のエンティティを指すものとする。たとえば、コンポーネントは、限定はされないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであってよい。例示として、コンピューティングデバイス上で実行されているアプリケーションと、コンピューティングデバイスの両方が、コンポーネントであってよい。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在してもよく、コンポーネントは、1つのコンピュータに局在していてもよく、および/または、2つ以上のコンピュータに分散されていてもよい。加えて、これらのコンポーネントは、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行してもよい。コンポーネントは、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム中の別のコンポーネントと対話する、および/または、信号によってインターネットなどのネットワークにわたって他のシステムと対話する、1つのコンポーネントからのデータ)を有する信号などに従って、ローカルプロセスおよび/またはリモートプロセスによって通信してもよい。
【００１５】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代(“3G”)ワイヤレス技術および第4世代(“4G”)が出現したことによって、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備えた、より携帯が容易なコンピューティングデバイスが利用可能になっている。したがって、ポータブルコンピューティングデバイスは、携帯電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータを含んでよい。
【００１６】
図1は、データマスキング機能を使用してメモリI/O電力を低減するためのシステム100を示す。システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、携帯電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む、任意のコンピューティングデバイスにおいて実装され得る。図1の実施形態に示されるように、システム100は、DRAM104を備えるメモリシステムに結合されたシステムオンチップ(SoC)102を備える。SoC102は、DRAM104からのメモリリソースを要求する1つまたは複数のメモリクライアント106を含む、様々なオンチップコンポーネントを備える。メモリクライアント106は、1つまたは複数の処理装置(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、ディスプレイプロセッサなど)、ビデオエンコーダ、またはDRAM104への読取り/書込みアクセスを要求する他のクライアントを備えてよい。メモリクライアント106は、SoCバス110を介してメモリコントローラ108に接続される。メモリコントローラ108は、SoC物理層デバイス114を介して、DRAM104との間のデータの流れを制御する。
【００１７】
図1に示されるように、メモリコントローラ108およびDRAM104は、データバスを介してメモリデータを通信し、データバスは、メモリコントローラ108とSoC物理層デバイス114との間のインターフェース116と、SoC物理層デバイス114とDRAM104との間のインターフェース120とを備える。メモリコントローラ108は、データマスキング(DM)信号を介してデータマスキングを選択的に制御するように構成される。DM信号は、接続118を介してSoC物理層デバイスに、および接続122を介してDRAM104に提供されてよい。当技術分野において知られているように、データマスキングは、データが上書きされるのを防ぐための、DRAM104などのメモリデバイスの内蔵機能である。下でより詳細に説明されるように、システム100は、データマスキング機能を増強して、DRAM104と関連付けられる読取りおよび/または書込み動作のためのメモリI/O電力を低減する。
【００１８】
データマスキング動作の一実施形態では、データ(DQ)ピンを介して送信されるメモリデータのバイトごとに1つのDM信号があってよい。たとえば、1つのDMピンは、8ビットのデータ(すなわち、8個のDQピン)のマスキングを制御してよい。DQピンは、インターフェース116および120を介して双方向データバスにおいてデータ信号を送信および受信する。データバスのピンはDQまたはDQピンとしてラベリングされ呼ばれることを理解されたい。DMは通常、DRAM104に書き込まれるデータの量が最小アクセス長(MAL)よりも短いときに使用される。DRAMメモリのトランザクションは、データバスにわたる複数のビートで構成される。ビートの数(「バースト長」)は固定されており、DRAMタイプに依存する(たとえば、DDRでは2、DDR2では4、DDR3では8など)。ビートの数とデータバスの幅の組合せが、MALを定義する。たとえば、32ビット幅のLPDDR2は、16バイトのMALを有する(4ビート×32ビット=128ビット=16バイト)。
【００１９】
図1にさらに示されるように、メモリコントローラ108はデータマスキング電力低減モジュール112を備え、データマスキング電力低減モジュール112はメモリI/O電力を低減するためにデータマスキング機能を選択的に使用するように構成される。データマスキング電力低減モジュール112は、DRAM104へのデータ入力のデータアクティブ率kを下げてよい。DRAM内の電力は、コアメモリアレイ電力および非コア電力として分類されることがある。当技術分野において知られているように、コアメモリアレイ電力は、コアメモリアレイ中のすべてのデータを保持し、リークおよびリフレッシュ動作を管理するための電力を指す。非コア電力は、メモリデバイスへの、およびメモリデバイスからのすべてのデータを転送するための、電流値を検出するための、ならびに、周辺論理手段、マルチプレクサ、内部バス、バッファ、入力/出力(I/O)ドライバ、およびレシーバを管理するための電力を指す。データマスキング電力低減モジュール112はI/Oメモリ電力(P)を低減し、Pは動的電力(D)と静的電力(S)の合計として表されてよい。
【００２０】
DRAM104における動的電力すなわち非コア電力は、式1によって表されてよい。
動的電力=kCV2f×密度
ここで、k=データアクティブ率
C=負荷容量
V=電圧
f=周波数またはトグルレート
密度=ギガバイト(GB)単位の全体の容量
式1
【００２１】
データアクティブ率kは、一定の期間にわたる0から1へのトグルまたは遷移の数として定義されてよい。たとえば、1ビットの8ビートシーケンス01010101では、k=0.5である。DRAMメモリシステム104への最小のアクセスは、1つのDRAM最小アクセス長(MAL)トランザクションと呼ばれる。32ビットの並列なLPDDR3 DRAMバスに対して、MAL=32ビット×8ビート=256ビット=32バイト(8ビート、32ビット幅)である。MALトランザクションは、継続的に、連続的に発生することがある。
【００２２】
密度および周波数の要求が増大しているので、非コア電力を低減することは、負荷容量を低減すること、電圧を下げること、ビートごとに各ビットに対するkを最小化すること、またはMALごとに各ビットに対するkを最小化することを必要とする。非コア電力を低減するための既存の方法は一般に、動作電圧を下げること、負荷容量を低減すること、または、性能が必要とされていないときは常に動作周波数を一時的に下げることを伴っている(これは、帯域幅を必要とする集中的使用の事例に対処することができない)。データアクティブ率kを下げる試みが、画像圧縮を使用したディスプレイフレームのバッファのような、特定のタイプのデータに対して提案されている。しかしながら、これは通常、ソース(たとえば、ディスプレイハードウェアエンジン)において実行される。しかしながら、そのような解決法は、このタイプのディスプレイデータに非常に特化され限定されており、そのようなデータは通常、DRAM使用量の全体の相対的に小さな割合しか占めない。
【００２３】
以下でより詳細に説明されるように、データマスキング電力低減モジュール112は、データマスキング(DM)機能の使用および修正を通じてデータアクティブ率kと静的電力(S)とを低減することによって、メモリI/O電力を低減する。一実施形態では、データマスキング電力低減モジュール112は、データマスキング動作の間にDQピンの終端が電力を消費する時間を低減することによって、静的電力を低減してよい。別の実施形態では、データアクティブ率kは、DM信号が有効である間のデータバス上での0から1へのトグルの数を低減するようにデータマスキング動作を選択的に制御することによって減らされてよい。
【００２４】
図2は、システム100がデフォルト状態200として利用し得る、従来のデータマスキング動作を示すタイミング図である。図2は、同期クロック信号202、データマスキング動作を制御するためのDM信号204、およびDM信号204に応答するDQ信号206の相対的なタイミングを示す。信号202、204、および206は、MALトランザクションに対する適切な数のビート(nビート)を備えるDDRトランザクションについて示される。クロック信号は、たとえば、信号を同期させるためにハイ状態とロー状態との間で発振する電圧を備えてよい。クロック信号202は、固定された一定の周波数の、デューティサイクル50%の矩形波を備えてよい。一実施形態では、クロック信号202は、0.5nsのデータバーストを伴う1nsの周波数を備えるが、周波数は所望のように変更してよいことを理解されたい。ロー状態は、たとえば0ボルトの電圧レベルを備えてよく、ハイ状態は、たとえば1.2V〜1.5Vの範囲の電圧レベルを備えてよい。ハイ状態およびロー状態は、所望のように代替的な電圧および範囲を有し得ることを理解されたい。DM信号204およびDQ信号206は、同期のためにクロック信号202を使用する。DM信号204およびDQ信号206は、クロック信号202の立ち上がりまたは立ち下がりのいずれかにおいて(またはダブルデータレートの場合両方において)アクティブになってよいことを理解されたい。DM信号204およびDQ信号206は、適切な電圧レベルの間を振動してよい。たとえば、一実施形態では、DQ信号206は、0ボルトというロー電圧と約1.2V〜1.5Vというハイ電圧との間で振動してよい。差動の場合には、DQ信号206は約200mVの周りを振動してよい。図2〜図6および図9に示される、クロック信号202、DM信号204、ならびにDQ信号206の電圧および時間範囲は、所望のように変えられ得ることを当業者は理解するであろう。
【００２５】
メモリコントローラ108は、DM信号204を使用して、データマスキング動作をアクティブ化し、そして非アクティブ化する。図2に示されるように、DM信号204がロー状態208にあるとき、データマスキング動作は非アクティブであり、対応するビート214は有効なメモリデータであると見なされる。信号遷移210によって示されるように、データマスキング動作は、DM信号204をハイ状態212に変更することによってアクティブ化される。図2に示されるデフォルト状態200では、DM信号204がハイ状態212にあるとき、対応するビート216は「ドントケア」(X)状態を備える。X状態では、DQピンはトグルを続けてメモリI/O電力を消費してよいが、データはDRAM104によって無視されてよい。
【００２６】
(デフォルト状態200におけるように)DQピンをX状態のままにする代わりに、データマスキング電力低減モジュール112は、メモリI/O電力消費を低減する、複数の電力節約状態の1つへと、DQピンを駆動するように構成されてよい。一実施形態では、電力節約状態は、システム100におけるDRAM104のタイプと、DRAM104によって利用されるDQピン終端方式のタイプとに基づいて選択されてよい。DQピン終端方式の様々な例(図7a〜図7e)および適した電力節約状態が、図3〜図7に関連して以下で説明される。
【００２７】
電力節約状態の一例は最終保持状態である。図3は、デフォルト状態200(図2)ではなく最終保持状態300の、信号202、204、および206のタイミング図を示す。最終保持状態300では、遷移210の前のDQピンの最後の値がデータマスキング動作の間保持される。図3に示されるように、最後の値がハイ状態であった場合、DM信号204がアクティブである間はDQピンはハイ状態304に保持される。最後の値がロー状態であった場合、DQピンはロー状態302に保持される。最終保持状態300は、さらなるトグルがないのでメモリI/O電力消費を低減することがあることを理解されたい。最終保持状態はあらゆるDRAMのタイプに対して実施されてよいこともさらに理解されたい。終端されていないDQピン(図7a)または差動終端されたDQピン(図7e)を利用するDRAMデバイスに対しては、最終保持状態300を適用することが特に望ましいことがある。図7aに示される終端されていないDQピンの方式は、終端されていないSoCピン702およびDRAMピン704を備える。図7eに示されるように、差動終端されたDQピンの場合、正のピン714および718ならびに負のピン716および720がともに、正のピンと負のピンを接続する抵抗722を通じて同じ値に(たとえば、最後の正の値)に駆動されてよい。
【００２８】
図4は、ロー保持状態400を示す。ロー保持状態400では、DM信号204がアクティブである間は、DQピンはロー状態402に駆動される。ロー保持状態400は、図7bに示されるような、グランドを基準とするシグナリングを利用するメモリシステム(たとえば、LPDDR4タイプのDRAM)において、静的電力を節約することがある。図7bを参照すると、一実施形態では、SoCピン702とDRAMピン704との間の接続は、抵抗706を通じてグランドに接続されてよい。
【００２９】
図5は、ハイ保持状態500を示す。ハイ保持状態500では、DQピンはハイ状態502に駆動される。ハイ保持状態500は、図7cに示されるような、電源電圧を基準とするシグナリングを利用するメモリシステム(たとえば、PCDDR4)において、静的電力を節約することがある。図7cの実施形態では、SoCピン702とDRAMピン704との間の接続は、抵抗708を介して電源に接続されてよい。
【００３０】
図6は、トライステート600を示す。トライステート600では、DQピンはトライステートにされるか、またはフローティングのままにされる(すなわち、駆動されない)。トライステート600は、図7dに示されるような、Vddとグランドの両方への終端抵抗710および712を伴うメモリシステム(たとえば、PCDDR3)において、静的電力を節約することがある。
【００３１】
図8は、メモリI/O電力を低減するための、システム100によって実施される方法800の一実施形態を示すフローチャート800である。ブロック802において、方法800は、複数のDQピンを介してメモリコントローラ108に結合されるDRAM104のタイプを決定する。上で言及されたように、異なるタイプのDRAM104は、異なるピン終端(図7a〜図7e)を利用してよい。DRAM104および/またはDQピン終端のタイプに基づいて、ブロック802において、適した電力節約の状態(すなわち、最終保持状態300、ロー保持状態400、ハイ保持状態500、トライステート600)が選択されてよい。データマスキング動作がアクティブ化されるとき(判断ブロック806)、DQピンは、上で説明されたように、メモリI/O電力を低減するために選択された状態へと駆動されてよい。
【００３２】
データマスキング電力の低減は、DDRトランザクションの間の任意の時間においても実行されてよいことを理解されたい。図2〜図6に関連して上で説明された実施形態では、データマスキング動作はDDRトランザクションの終わりに実行される。他の実施形態では、データマスキング動作はDDRトランザクションの最初に実行されてよい。図9は、データマスキング動作が1つまたは複数のビートに対する中間トランザクションのために選択的にアクティブ化されることのある、別の実施形態を示す。図9の例に示されるように、データマスキング動作は、DDRトランザクションの間に複数回アクティブ化される(ハイ状態902、904、906、および908)。ハイ状態902および908は2つのビートに対してアクティブであるが、ハイ状態904および906は単一のビートに対してアクティブである。DM信号204のハイ状態902、904、906、および908の間に、DQ信号206は、メモリI/O電力を低減するためにそれぞれ、ロー状態912、916、922、および926に駆動される。DM信号204がロー状態にあるとき、データマスキング動作は非アクティブであり、対応するビート910、914、918、920、および924は有効なメモリデータであると見なされる。DM信号204は、メモリI/O電力の低減を最適化するために、DDRトランザクションの間の任意の数のビートに対して任意の回数有効にされてよいことを理解されたい。
【００３３】
上で説明されたデータマスキング電力低減方式は、読取り動作または書込み動作の間に適用され得る。図10は、書込み動作のためのシステム100の一実施形態を示す。書込み動作のために、SoC物理層デバイス114は、各DQピンに対してラインドライバ1004とマルチプレクサ1006とを備えてよい。各マルチプレクサ1006は、メモリコントローラ108からデータを受信するための入力と、マルチプレクサ制御信号(MUX CTL)を受信するためのI/O論理手段1002に接続される別の入力とを有する。I/O論理手段1002は、DM信号204およびDRAMのタイプに基づいて、どのマルチプレクサ入力をI/Oに渡すかを決定するように構成される。
【００３４】
図10にさらに示されるように、マルチプレクサ1006からの出力は、対応するラインドライバ1004への入力として提供される。各ラインドライバ1004はまた、I/O論理手段1002からトライステート制御信号を受信する。I/O論理手段1002は、トライステート制御信号に基づいてI/Oのトライステートを制御する。たとえば、DRAMのタイプがLPDDR4である場合、I/O論理手段1002は、DMがアサートされるときにI/Oをグランドに駆動してよい。単一のDDRチャネルは、SoC物理層デバイス114および適切に構成されたメモリコントローラ108の、複数のインスタンスを有してよい。
【００３５】
図11は、読取り動作のためのシステム100の別の実施形態を示す。読取りの実装形態は書込みの実装形態と類似しており、ラインドライバ1004、マルチプレクサ1006、およびI/O論理手段1002がDRAM物理層1102において実装される。代替的な実施形態では、マルチプレクサ1006およびI/O論理手段1002は、物理層デバイス114および1102以外のシステム100のコンポーネントにおいて実装されてよいことを理解されたい。図11にさらに示されるように、DRAM104は、読取り動作のためのデータマスキング動作をサポートするように構成されてよい。DRAM104は、上で説明されたように、データマスキング電力低減モジュール112(図1)を備えてよい。
【００３６】
上で言及されたように、システム100は任意の望ましいコンピューティングシステムに組み込まれてよい。図12は、例示的なポータブルコンピューティングデバイス(PCD)1200に組み込まれたシステム100を示す。システム100のいくつかのコンポーネントはSoC322(図12)に含まれるが、他のコンポーネント(たとえば、DRAM104)はSoC322に結合された外部コンポーネントであることが容易に理解されるだろう。SoC322は、マルチコアCPU402Aを含んでよい。マルチコアCPU1202は、第0のコア410、第1のコア412および第Nのコア414を含んでよい。コアの1つは、たとえば、グラフィックス処理装置(GPU)を備えてよく、他のコアの1つまたは複数は、CPUを備える。
【００３７】
ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、CPU1202に結合されてよい。一方、オンチップシステム322の外部にあるタッチスクリーンディスプレイ108は、ディスプレイコントローラ1206およびタッチスクリーンコントローラ330に結合されてよい。
【００３８】
図12は、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダがマルチコアCPU1202に結合されることをさらに示す。さらに、ビデオ増幅器336は、ビデオエンコーダ334およびタッチスクリーンディスプレイ1206に結合される。また、ビデオポート338はビデオ増幅器336に結合される。図12に示されるように、ユニバーサルシリアルバス(USB)コントローラ340は、マルチコアCPU1202に結合される。同様に、USBポート342は、USBコントローラ340に結合される。メモリ1204および加入者識別モジュール(SIM)カード346も、マルチコアCPU1202に結合されてよい。メモリ1204は、SoC322に存在するか、または(図1に示されるように)SoC322に結合されてよい。メモリ1204は、上で説明されたように、DRAMメモリシステム104(図1)を備えてよい。
【００３９】
さらに、図12に示されるように、デジタルカメラ348がマルチコアCPU1202に結合されてよい。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
【００４０】
図12にさらに示されるように、ステレオオーディオコーダ-デコーダ(コーデック)350が、マルチコアCPU1202に結合されてよい。その上、オーディオ増幅器352が、ステレオオーディオコーデック350に結合されてよい。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356が、オーディオ増幅器352に結合される。図12は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合されてよいことを示す。加えて、マイクロフォン360が、マイクロフォン増幅器358に結合されてよい。特定の態様では、周波数変調(FM)ラジオチューナー362が、ステレオオーディオコーデック350に結合されてよい。また、FMアンテナ364が、FMラジオチューナー362に結合される。さらに、ステレオヘッドフォン366が、ステレオオーディオコーデック350に結合されてよい。
【００４１】
図12はさらに、高周波(RF)トランシーバ368がマルチコアCPU402Aに結合されてよいことを示す。RFスイッチ370が、RFトランシーバ368およびRFアンテナ372に結合されてよい。図12に示されるように、キーパッド204がマルチコアCPU1202に結合されてよい。また、マイクロフォンを備えたモノヘッドセット376が、マルチコアCPU1202に結合されてよい。さらに、バイブレータデバイス378がマルチコアCPU1202に結合されてよい。
【００４２】
図12はまた、電源380がオンチップシステム322に結合されてよいことを示す。特定の態様では、電源380は電力を必要とするPCD1200の様々なコンポーネントに電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリー、または交流(AC)電源に接続されたAC-DC変換器から得られるDC電源である。
【００４３】
図12は、PCD1200が、データネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、任意の他のネットワークにアクセスするために使用されてよいネットワークカード388も含んでよいことをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナー、または当技術分野でよく知られている任意の他のネットワークカードであってよい。さらに、ネットワークカード388は、チップに組み込まれることがあり、すなわち、ネットワークカード388は、チップ内のフルソリューションであってもよく、別個のネットワークカード388でなくてもよい。
【００４４】
図12に示されるように、タッチスクリーンディスプレイ1206、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム322の外部にあってもよい。
【００４５】
本明細書で説明された方法ステップの1つまたは複数は、上で説明されたモジュールなどのコンピュータプログラム命令としてメモリに記憶されてよいことを理解されたい。これらの命令は、本明細で説明された方法を実行するために、対応するモジュールと組み合わせて、またはそれと協働して、任意の適切なプロセッサによって実行されてよい。
【００４６】
本発明が説明された通りに機能するように、本明細書で説明されたプロセスまたはプロセスフロー内の特定のステップが他のステップよりも先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行されてよく、後に実行されてよく、または他のステップと並行して(実質的に同時に)実行されてよいことを認識されたい。いくつかの例では、本発明から逸脱することなく、いくつかのステップが省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順番を限定することを意図していない。これらの語は単に、例示的な方法の説明を通じて読者を導くために使用される。
【００４７】
さらに、プログラミングの当業者は、たとえば、本明細書のフローチャートおよび関連する説明に基づいて、開示される発明を実施するために、コンピュータのコードを書くこと、または適切なハードウェアおよび/もしくは回路を特定することが容易に可能である。
【００４８】
したがって、プログラムコード命令または詳細なハードウェアデバイスの特定のセットの開示は、本発明をどのように製作および使用すべきかについて適切に理解するために必要であるとは見なされない。特許請求されるコンピュータにより実施されるプロセスの進歩性のある機能は、上の説明において、かつ様々なプロセスフローを示し得る図面とともに、より詳細に説明される。
【００４９】
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  システム
102  SoC
104  DRAM
106  メモリクライアント
108  メモリコントローラ
110  SoCバス
112  データマスキング電力低減モジュール
114  SoC物理デバイス
116  データバス
118  接続
120  データバス
122  接続
200  デフォルト状態
202  クロック信号
204  DM信号
206  DQ信号
208  ロー状態
210  信号遷移
212  ハイ状態
214  ビート
216  ビート
300  最終保持状態
302  ロー状態
304  ハイ状態
322  SoC
328  ディスプレイコントローラ
330  タッチスクリーンコントローラ
334  ビデオエンコーダ
336  ビデオ増幅器
338  ビデオポート
340  USBコントローラ
342  USB
346  SIMカード
348  CCD/CMOSカメラ
350  ステレオ/オーディオコーデック
352  オーディオ増幅器
354  ステレオスピーカー
356  ステレオスピーカー
358  マイクロフォン増幅器
360  マイクロフォン
362  FMチューナー
364  FMアンテナ
366  ステレオポート
368  RFトランシーバ
370  RFスイッチ
372  RFアンテナ
376  モノヘッドセット/マイクロフォン
378  バイブレータ
380  電源
388  ネットワークカード
400  ロー保持状態
402  ロー状態
410  第0のコア
412  第1のコア
414  第Nのコア
500  ハイ保持状態
502  ハイ状態
600  トライステート
702  SoCピン
704  DRAMピン
706  抵抗
708  抵抗
710  終端抵抗
712  終端抵抗
714  正のピン
716  負のピン
718  正のピン
720  負のピン
722  抵抗
800  方法
902  ハイ状態
904  ハイ状態
906  ハイ状態
908  ハイ状態
910  ビート
912  ロー状態
914  ビート
916  ロー状態
918  ビート
920  ビート
922  ロー状態
924  ビート
926  ロー状態
1002  I/O論理手段
1004  ラインドライバ
1006  マルチプレクサ
1102  DRAM物理層
1200  ポータブルコンピューティングデバイス
1202  CPU
1204  メモリ
1206  ディスプレイ/タッチスクリーン
【図１】
0006363191.tif 000002
【図２】
0006363191.tif 000003
【図３】
0006363191.tif 000004
【図４】
0006363191.tif 000005
【図５】
0006363191.tif 000006
【図６】
0006363191.tif 000007
【図７ａ】
0006363191.tif 000008
【図７ｂ】
0006363191.tif 000009
【図７ｃ】
0006363191.tif 000010
【図７ｄ】
0006363191.tif 000011
【図７ｅ】
0006363191.tif 000012
【図８】
0006363191.tif 000013
【図９】
0006363191.tif 000014
【図１０】
0006363191.tif 000015
【図１１】
0006363191.tif 000016
【図１２】
0006363191.tif 000017