(57)【要約】  DRAMメモリデバイスへのアクセス要求を管理するためのシステム、方法、およびコンピュータプログラムが開示される。一実施形態は、複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信するステップを含む。次に、受信されたメモリアクセスパターンデータに基づいて、複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらす可能性があると判断される。次いで、受信されたメモリアクセスパターンデータに従って、第1および第2のメモリクライアントによるDRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、将来のページ競合が解消される。
2017502421.tif 000002
【特許請求の範囲】
【請求項１】
DRAMメモリデバイスへのアクセス要求を管理するための方法であって、
複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信するステップと、
前記受信されたメモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するステップと、
前記受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消するステップと
を含む方法。
【請求項２】
前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項1に記載の方法。
【請求項３】
前記メモリアクセスパターンデータが、前記第1および第2のメモリクライアントのうちの1つによって、対応するメモリトランザクションの前にメモリコントローラに提供される、請求項1に記載の方法。
【請求項４】
前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備える、請求項1に記載の方法。
【請求項５】
前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、ページ閉-ページ開動作の数を最小限に抑えることを含む、請求項1に記載の方法。
【請求項６】
前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、レイテンシ耐性に基づいて前記第1および第2のメモリクライアントのうちの1つを遅延させることを含む、請求項1に記載の方法。
【請求項７】
DRAMメモリデバイスへのアクセス要求を管理するためのシステムであって、
複数のバンクを備えるDRAMメモリデバイスと、
前記DRAMメモリデバイスへのアクセスを制御するためのメモリコントローラと通信している、前記メモリコントローラにメモリアクセスパターンデータを提供するように構成された複数のメモリクライアントと、
前記メモリクライアントのうちの1つまたは複数に関する前記メモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するように構成された前記メモリコントローラと
を備えるシステム。
【請求項８】
前記メモリコントローラが、前記受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消するようにさらに構成される、請求項7に記載のシステム。
【請求項９】
前記メモリコントローラが、ページ閉-ページ開動作の数を最小限に抑えるようにさらに構成される、請求項8に記載のシステム。
【請求項１０】
前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項7に記載のシステム。
【請求項１１】
前記メモリアクセスパターンデータが周期的トラフィックストリームを定義する、請求項7に記載のシステム。
【請求項１２】
前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備える、請求項7に記載のシステム。
【請求項１３】
前記メモリクライアントが、中央処理装置、グラフィックス処理装置、およびデジタル信号プロセッサのうちの1つまたは複数を備える、請求項7に記載のシステム。
【請求項１４】
前記DRAMメモリデバイスがダブルデータレート(DDR)メモリデバイスを備え、前記システムがポータブルコンピューティングデバイスにおいて実装される、請求項7に記載のシステム。
【請求項１５】
DRAMメモリデバイスへのアクセス要求を管理するための、コンピュータ可読媒体内で具現化され、プロセッサによって実行されるコンピュータプログラムであって、
複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信し、
前記受信されたメモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断し、
前記受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消する
ように構成された論理を備えるコンピュータプログラム。
【請求項１６】
前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項15に記載のコンピュータプログラム。
【請求項１７】
前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備える、請求項15に記載のコンピュータプログラム。
【請求項１８】
前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、ページ閉-ページ開動作の数を最小限に抑えることを含む、請求項15に記載のコンピュータプログラム。
【請求項１９】
前記DRAMメモリデバイスがダブルデータレート(DDR)メモリデバイスを備える、請求項15に記載のコンピュータプログラム。
【請求項２０】
前記論理が、ポータブルコンピューティングデバイス中のメモリコントローラに存在する、請求項15に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれる、「System and Method for Resolving DRAM Page Conflicts Based on Memory Access Patterns Provided by Memory Clients」と題する2014年1月10日に出願された米国仮特許出願第61/926,207号の優先権の利益を主張する。
【背景技術】
【０００２】
ダブルデータレート(DDR)型メモリなどのダイナミックランダムアクセスメモリ(DRAM)は、様々なコンピューティングデバイス(たとえば、パーソナルコンピュータ、ラップトップ、ノートブック、ビデオゲームコンソール、ポータブルコンピューティングデバイス、モバイルフォンなど)において使用されている。そのようなデバイスは通常、DDRメモリに対する読取りまたは書込み要求を制御するための1つまたは複数のメモリクライアント(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)など)と通信しているメモリコントローラを備えるシステムオンチップ(SoC)を含む。従来のメモリシステムでは、同時メモリクライアントがDDR読取りまたは書込み要求を行おうと試みたとき、メモリコントローラは、たとえば、メモリクライアントの優先度およびアクセス要求の時間に基づいて、メモリアクセスを許可する。
【０００３】
同時作業負荷状況は厄介であり得る。たとえば、あるメモリクライアントが大きいデータトランザクションを行おうと試みているとき、より優先度の高い異なるメモリクライアントは、DDRメモリにおいてページ競合状況をもたらすことがあり、これによりメモリコントローラは、大きいデータトランザクションを、比較的小さいデータトランザクションとともに再度優先度付けすることを余儀なくされる。当技術分野で知られているように、DDRメモリデバイスは、複数のバンクを備えることができる。所与の時間にバンクにおいて単一のページのみがアクセスされ得るようにDDRメモリが構成されることに起因して、ページ競合が生じる。したがって、同時使用状況では、メモリコントローラは、大きいデータトランザクションを「ページ閉」動作により一時停止し、より優先度の高いトランザクションを「ページ開」動作により開始する。より小さいデータトランザクションが完了したとき、メモリコントローラは、別の「ページ閉」を実行し、一時停止されたトランザクションを別の「ページ開」動作により再開する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
優先度ベースのDDRアクセスを実施することは有利であり得る一方、ページ競合を管理することは、ページ開/閉動作の確率の上昇に起因してメモリコントローラ動作の効率性および電力節約に悪影響を及ぼすことがある。したがって、当技術分野において、ページ競合状況を最小限に抑えるための改善されたシステムおよび方法が依然として必要とされている。
【課題を解決するための手段】
【０００５】
DRAMメモリデバイスへのアクセス要求を管理するためのシステム、方法、およびコンピュータプログラムが開示される。一実施形態は、複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信するステップと、受信されたメモリアクセスパターンデータに基づいて、複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するステップと、受信されたメモリアクセスパターンデータに従って、第1および第2のメモリクライアントによるDRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、将来のページ競合を解消するステップとを含む方法である。
【０００６】
別の実施形態は、DRAMメモリデバイスへのアクセス要求を管理するためのシステムである。1つのそのようなシステムは、DRAMメモリと、複数のメモリクライアントと、メモリコントローラとを備える。DRAMメモリデバイスは、複数のバンクを備える。メモリクライアントは、メモリコントローラと通信しており、メモリコントローラは、DRAMメモリデバイスへのアクセスを制御する。メモリクライアントは、メモリコントローラにメモリアクセスパターンデータを提供するように構成される。メモリコントローラは、メモリクライアントのうちの1つまたは複数からのメモリアクセスパターンデータに基づいて、複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するように構成される。
【０００７】
図において、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通して同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【０００８】
【図１】1つまたは複数のメモリクライアントによって提供されたメモリアクセスパターンデータに従って、メモリコントローラがページ競合を解消することを可能にするためのシステムの一実施形態のブロック図である。
【図２】1つまたは複数のメモリクライアントによって提供されたメモリアクセスパターンデータに従って、ページ競合を解消するための図1のシステムにおいて実施される方法の一実施形態を示すフローチャートである。
【図３】図4および図5に示すタイミング図に関するデータ凡例である。
【図４】周期的トラフィックストリームおよび非周期的優先トラフィックストリームに関連するページ競合を解消するための図1のメモリコントローラによって実施される方法の一実施形態を示すタイミング図である。
【図５】2つの周期的トラフィックストリームに関連するページ競合を解消するための図1のメモリコントローラによって実施される方法の別の実施形態を示すタイミング図である。
【図６】図1のシステムを実施するための例示的なポータブルコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【０００９】
「例示的」という言葉は、「例、事例、または例示として役立つ」ことを意味するように本明細書において使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。
【００１０】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で言及する「アプリケーション」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
【００１１】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で言及する「コンテンツ」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
【００１２】
本明細書で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されているアプリケーションとコンピューティングデバイスの両方は、構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在する場合があり、構成要素は、1つのコンピュータに局在する場合があり、かつ/または2つ以上のコンピュータ間に分散する場合がある。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行されてもよい。構成要素は、1つまたは複数のデータパケット(たとえば、信号を用いて、ローカルシステム内、分散システム内の別の構成要素と対話し、かつ/またはインターネットなどのネットワークにわたって他のシステムと対話する1つの構成要素からのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスを用いて通信してもよい。
【００１３】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代(「3G」)ワイヤレス技術および第4世代(「4G」)の出現により、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備える、より携帯が容易なコンピューティングデバイスが利用可能になっている。したがって、ポータブルコンピューティングデバイスは、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータを含み得る。
【００１４】
図1は、1つまたは複数のメモリクライアント110のメモリアクセスパターンの予備知識または事前知識に基づいて、DRAMメモリデバイス104に関連するページ競合を解消することによって、メモリコントローラ102の効率性および電力節約を改善するためのシステム100を示す。システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む、任意のコンピューティングデバイスにおいて実装され得る。
【００１５】
図1に示すように、システム100は、メモリコントローラ102と、複数のメモリクライアント110a、110bおよび110cと、DRAMメモリシステム104とを備える。メモリクライアント110は、DRAMメモリシステム104への読取り/書込みアクセスを要求する1つまたは複数のプロセッサまたは他のクライアントを備えることができる。一実施形態では、メモリクライアント110a、110bおよび110cは、それぞれ、中央処理装置(CPU)、グラフィックス処理装置(GPU)、およびデジタル信号プロセッサ(DSP)を備える。メモリクライアント110a、110bおよび110cは、それぞれ、インターフェース112a、112bおよび112cを介してメモリコントローラ102と通信する。メモリコントローラ102は、インターフェース108を介してDRAMメモリシステム104に結合される。
【００１６】
図1に示す構成要素のうちの1つまたは複数が、DRAMメモリシステム104に結合されたシステムオンチップ(SoC)に存在し得ることを諒解されたい。当技術分野で知られているように、DRAMメモリシステム104は、メモリの複数のバンク106a〜106dを備える。一実施形態では、DRAMメモリシステム104は、ダブルデータレート(DDR)型メモリを備える。各バンク106は、データの1つまたは複数のビットを記憶するようにそれぞれ構成された複数のメモリ要素を含む。各バンク内のメモリ要素はページに編成され得る。たとえば、行および列によってアドレス指定可能であるメモリデバイスにおいて、各ページは、特定のバンクに含まれるメモリ要素の行を含むことができる。上述のように、バンク106ごとに1つのページのみが一度にアクセスされ得るので、同時作業負荷が同じバンク106にアクセスしようと試みたとき、ページ競合が発生する。
【００１７】
図1にさらに示すように、メモリコントローラ102は、パターンベースのページ競合解消構成要素114を備え、パターンベースのページ競合解消構成要素114は一般に、メモリクライアント110のメモリアクセスパターンの予備知識または事前知識に基づいてページ競合を解消するための論理を備える。メモリクライアント110a、110b、および110cの各々は、それぞれ、メモリアクセスパターンデータ116a、116b、および116cを決定し、メモリコントローラ102に提供するように構成され得る。メモリアクセスパターンデータ116は、メモリ要求118の前にメモリコントローラ102に提供され得る。メモリアクセスパターンデータ116は、たとえば、トランザクション頻度およびトランザクション持続時間を含む、周期的トラフィックストリームを定義するか、またはさもなければアクセスパターンのモデルを表す、任意の適切なデータを備え得ることを諒解されたい。以下でより詳細に説明するように、データは、インターリーブ手順中にトランザクションが遅延し得る時間量を指定するレイテンシ耐性を含むこともできる。メモリアクセスパターンデータ116は、対応するメモリクライアント110によって、あるいはメモリ要求118と同じインターフェースもしくはメモリ要求118とは異なるインターフェースを介して、または1つもしくは複数のサイドチャネルを介して提供され得る。
【００１８】
図2は、2つ以上のメモリクライアント110の同時作業負荷中のページ競合を解消するためのシステム100によって実施され得る方法200の一実施形態を示す。ブロック202において、メモリクライアント110のうちの1つまたは複数は、それの関連メモリトラフィックに関するメモリアクセスパターンデータ116を決定、追跡、またはさもなければ定義することができる。メモリアクセスパターンデータ116は、周期的トラフィックストリームを定義するための以下のまたは他のタイプのデータのいずれかを備えることができる。トランザクション持続時間、トランザクション頻度、インターリーブレイテンシ耐性または遅延しきい値、および/またはメモリアクセスパターンを定義し得る任意の他のデータ。メモリクライアント110または任意の外部論理がメモリアクセスパターンデータ116を決定し得ることを諒解されたい。ブロック204において、メモリコントローラ102は、複数のメモリクライアント110のうちの少なくとも1つからメモリアクセスパターンデータ116を受信する。上述のように、メモリアクセスパターンデータ116は、メモリ要求118と同じインターフェース112または代替インターフェースを介して提供され得る。ブロック206において、ページ競合解消構成要素114は、メモリアクセスパターンデータ116にアクセスし、メモリクライアント110のうちの1つの将来のトランザクションが、バンク106のうちの1つに関連する将来のページ競合をもたらすことになるかどうかを判断することができる。たとえば、メモリアクセスパターンデータ116に基づいて、ページ競合解消構成要素114は、メモリクライアント110a(たとえば、CPU)が、別のメモリクライアント110b(たとえば、GPU)の現在のトランザクションとの将来のページ競合をもたらすことになると判断し得る。ブロック208および210において、メモリコントローラ102は、たとえば、メモリアクセスパターンデータ116に従ってメモリクライアント110aおよび110bによる関連バンク106へのアクセスをインターリーブすることによって、将来のページ競合を解消する。一実施形態では、アクセスは、たとえば、以下でより詳細に説明するように最大レイテンシ耐性までメモリクライアント110のうちの1つまたは複数を遅延させ
ることによって、インターリーブされ得る。最大レイテンシ耐性は、システム100における任意の適切な構成要素(たとえば、メモリコントローラ102、メモリクライアント110など)によって生成され、パターンベースのページ競合解消構成要素114に提供され得る。
【００１９】
当業者は、ページ競合解消構成要素114が、1つまたは複数の周期的トラフィックストリームからの同時作業負荷に対処するために使用されるページ閉動作およびページ開動作の数を最小限に抑えるように構成され得ることを諒解されよう。図4および図5は、第1のメモリクライアントAおよび第2のメモリクライアントBに関連するトラフィックストリームを伴う同時作業負荷状況において、メモリアクセスをインターリーブするための2つの例示的な実施形態を示す。図3は、図4および図5に示すタイミング図におけるデータ信号に関する凡例301である。代替のインターリーブおよび/または遅延方式ならびに任意の数のトラフィックストリームがサポートされ得ることを諒解されたい。図4および図5は、2つのトラフィックストリームを参照しながらページ競合解消構成要素114の一般的な動作を示すために提示されているにすぎない。当業者は、対応するトランザクションが周期的トランザクション、非周期的トランザクション、またはそれらの任意の組合せとして実施される最適化技法が1つまたは複数のメモリクライアント110に適用され得ることを諒解されよう。
【００２０】
図4は、周期的トラフィックストリーム300(メモリクライアントA)および非周期的優先トラフィックストリーム310(メモリクライアントB)に関連するページ競合を解消するための方法の一実施形態を示す。周期的トラフィックストリーム300は、固定のトランザクション持続時間およびトランザクション頻度を有する3つのトランザクション302、304、および306を備える。周期的トラフィックストリーム300がメモリアクセスパターンデータ116(たとえば、トランザクション持続時間、トランザクション頻度、およびレイテンシ耐性)によって定義され得、メモリアクセスパターンデータ116が実際のメモリアクセス要求118の前にメモリコントローラ102に提供され得ることを諒解されたい。非周期的トラフィックストリーム310は、ランダム優先トランザクション311〜320を備える。図4にさらに示すように、周期的トラフィックストリーム300は、縦の破線によって表されるフレーム境界までの持続時間390を含むことができる。
【００２１】
(従来の解決策と同様の)デフォルト同時アクセス動作モードがタイミング図320に示されている。この動作モードでは、ページ競合を顧慮せずにトランザクション311〜320に優先権が与えられる。トランザクション302、304および306は、利用可能なときにアクセス300を許可され得る。タイミング図320を参照すると、メモリコントローラ102は、次のようにアクセスを許可し得る。
(1)優先トランザクション311、
(2)ページ開/閉325a、
(3)周期的トランザクションの開始302a、
(4)ページ開/閉325b、
(5)優先トランザクション312、
(6)ページ開/閉325c、
(7)周期的トランザクションの第2の部分302b、
(8)ページ開/閉325d、
(9)優先トランザクション313、
(10)優先トランザクション314、
(11)優先トランザクション315、
(12)ページ開/閉325e、
(13)周期的トランザクション304、
(14)ページ開/閉325f、
(15)優先トランザクション316、
(16)優先トランザクション317、
(17)優先トランザクション318、
(18)優先トランザクション319、
(19)ページ開/閉325i、
(20)周期的トランザクションの第1の部分306a、
(21)ページ開/閉325j、
(22)優先トランザクション320、
(23)ページ開/閉325k、
(24)周期的トランザクションの第2の部分306b。
【００２２】
従来の動作モードとは対照的に、タイミング図330は、周期的トラフィックストリーム300を定義するメモリアクセスパターンデータ116に基づいて、優先トランザクション311〜320と周期的トランザクション302、304および306とをインターリーブすることによって、ページ競合を解消するための一実施形態を示す。この実施形態では、メモリコントローラ102は、優先トランザクション311〜320に優先権を与える一方で、ページ開/閉動作を最小限に抑えるように構成される。タイミング図330を参照すると、メモリコントローラ102は、次のようにアクセスをインターリーブし得る。
(1)優先トランザクション311、
(2)優先トランザクション312、
(3)ページ開/閉327a、
(4)周期的トランザクション302、
(5)ページ開/閉327b、
(6)優先トランザクション313、
(7)優先トランザクション314、
(8)優先トランザクション315、
(9)ページ開/閉327c、
(10)周期的トランザクション304、
(11)ページ開/閉327d、
(12)優先トランザクション316、
(13)優先トランザクション317、
(14)優先トランザクション318、
(15)優先トランザクション319、
(16)優先トランザクション320、
(17)ページ開/閉327e、
(18)周期的トランザクション306。
【００２３】
当業者は、図4に示すようにアクセスをインターリーブすることによって、メモリコントローラ102がページ開/閉動作の数を減らし、それによって効率性を改善し、電力を節約することを諒解されよう。
【００２４】
図5は、2つの周期的トラフィックストリーム400および410に関連するページ競合を解消するための方法の別の実施形態を示す。周期的トラフィックストリーム400は、固定のトランザクション持続時間およびトランザクション頻度を有する3つのトランザクション402、404、および406を備える。周期的トラフィックストリーム410は、固定のトランザクション持続時間およびトランザクション頻度を有する3つの優先トランザクション412、414、および416を備える。周期的トラフィックストリーム400および410は、トランザクション持続時間、トランザクション頻度、およびレイテンシ耐性を備えるメモリアクセスパターンデータ116によって定義され得、メモリアクセスパターンデータ116は、実際のメモリアクセス要求118の前にメモリコントローラ102に提供され得る。周期的トラフィックストリーム400は、縦の破線によって表されるフレーム境界までの持続時間440を含むことができる。
【００２５】
図5(タイミング図420)に示すように、メモリコントローラ102は、次のようにデフォルト同時アクセス動作モードにおいてアクセスを許可し得る。
(1)周期的トランザクションの第1の部分402a、
(2)ページ開/閉421a、
(3)優先トランザクション412、
(4)ページ開/閉421b、
(5)周期的トランザクションの第2の部分402b、
(6)周期的トランザクションの第1の部分404a、
(7)ページ開/閉421c、
(8)優先トランザクション414、
(9)ページ開/閉421d、
(10)周期的トランザクションの第2の部分404b、
(11)周期的トランザクションの第1の部分406a、
(12)ページ開/閉421e、
(13)優先トランザクション416、
(14)ページ開/閉421f、
(15)周期的トランザクションの第2の部分406b。
【００２６】
タイミング図430は、周期的トラフィックストリーム400および410を定義するそれぞれのメモリアクセスパターンデータ116に従って、優先トランザクション412、414、および416と周期的トランザクション402、404および406とをインターリーブすることによって、ページ競合を解消するための一実施形態を示す。この実施形態では、メモリコントローラ102は、優先トランザクション412、414、および416に優先権を与え、周期的トラフィックストリーム400を一時停止および再開する必要を回避する一方で、将来のページ競合を解消する。メモリコントローラ102は、次のようにアクセスをインターリーブし得る。
(1)優先トランザクション412、
(2)ページ開/閉431a、
(3)周期的トランザクション402、
(4)ページ開/閉431b、
(5)優先トランザクション414、
(6)ページ開/閉431c、
(7)周期的トランザクション404、
(8)ページ開/閉431d、
(9)優先トランザクション416、
(10)ページ開/閉431e、
(11)周期的トランザクション406、
(12)ページ開/閉431f。
【００２７】
上述のように、システム100は任意の望ましいコンピューティングシステムに組み込まれてよい。図6は、例示的なポータブルコンピューティングデバイス(PCD)500に組み込まれたシステム100を示す。システム100のいくつかの構成要素はSoC322(図6)に含まれるが、他の構成要素(たとえば、DRAMメモリ104)はSoC322に結合された外部構成要素であり得ることが容易に諒解されよう。SoC322は、マルチコアCPU502を含み得る。マルチコアCPU502は、第0のコア610、第1のコア612および第Nのコア614を含み得る。コアのうちの1つは、たとえば、グラフィックス処理装置(GPU)を備え、他のコアのうちの1つまたは複数は、CPUを備える場合がある。
【００２８】
ディスプレイコントローラ328およびタッチスクリーンコントローラ330がCPU502に結合され得る。一方、オンチップシステム322の外部にあるタッチスクリーンディスプレイ506は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合され得る。
【００２９】
図6は、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダがマルチコアCPU502に結合されることをさらに示す。さらに、ビデオ増幅器336がビデオエンコーダ334およびタッチスクリーンディスプレイ506に結合される。また、ビデオポート338がビデオ増幅器336に結合される。図6に示すように、ユニバーサルシリアルバス(USB)コントローラ340がマルチコアCPU502に結合される。同様に、USBポート342がUSBコントローラ340に結合される。メモリ104および加入者識別モジュール(SIM)カード346もマルチコアCPU502に結合され得る。メモリ104は、SoC322に存在するか、またはSoC322に結合され得る。
【００３０】
さらに、図6に示すように、デジタルカメラ348がマルチコアCPU502に結合され得る。例示的な態様において、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
【００３１】
図6にさらに示すように、ステレオオーディオコーダ-デコーダ(コーデック)350がマルチコアCPU502に結合され得る。その上、オーディオ増幅器352がステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356がオーディオ増幅器352に結合される。図6は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示す。加えて、マイクロフォン360がマイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(FM)ラジオチューナー362がステレオオーディオコーデック350に結合され得る。同様に、FMアンテナ364がFMラジオチューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。
【００３２】
図6は、無線周波(RF)トランシーバ368がマルチコアCPU502に結合され得ることをさらに示す。RFスイッチ370がRFトランシーバ368およびRFアンテナ372に結合され得る。図6に示すように、キーパッド616がマルチコアCPU502に結合され得る。また、マイクロフォンを備えたモノヘッドセット376がマルチコアCPU502に結合され得る。さらに、バイブレータデバイス378がマルチコアCPU502に結合され得る。
【００３３】
図6はまた、電源380がオンチップシステム322に結合され得ることを示す。特定の態様では、電源380は、電力を必要とするPCD500の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリー、または交流(AC)電源に接続されたAC-DC変換器から導出されるDC電源である。
【００３４】
図6は、PCD500がデータネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用され得るネットワークカード388も含み得ることをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナー、または当技術分野でよく知られている任意の他のネットワークカードであってよい。さらに、ネットワークカード388は、チップに組み込まれることがあり、すなわち、ネットワークカード388は、チップ内のフルソリューションであってもよく、別個のネットワークカード388でなくてもよい。
【００３５】
図6に示すように、タッチスクリーンディスプレイ506、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド616、モノヘッドセット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  メモリコントローラ
104  DRAMメモリデバイス、DRAMメモリシステム、DRAMメモリ、メモリ
106  バンク
106a  バンク
106b  バンク
106c  バンク
106d  バンク
108  インターフェース
110  メモリクライアント
110a  メモリクライアント
110b  メモリクライアント
110c  メモリクライアント
112  インターフェース
112a  インターフェース
112b  インターフェース
112c  インターフェース
114  ページ競合解消構成要素
116  メモリアクセスパターンデータ
116a  メモリアクセスパターンデータ
116b  メモリアクセスパターンデータ
116c  メモリアクセスパターンデータ
118  メモリ要求、メモリアクセス要求
200  方法
204  ブロック
206  ブロック
208  ブロック
210  ブロック
300  周期的トラフィックストリーム、アクセス
301  凡例
302  トランザクション、周期的トランザクション
302a  周期的トランザクションの開始
302b  周期的トランザクションの第2の部分
304  トランザクション、周期的トランザクション
306  トランザクション、周期的トランザクション
306a  周期的トランザクションの第1の部分
306b  周期的トランザクションの第2の部分
310  非周期的優先トラフィックストリーム、非周期的トラフィックストリーム
311  ランダム優先トランザクション、トランザクション、優先トランザクション
312  ランダム優先トランザクション、トランザクション、優先トランザクション
313  ランダム優先トランザクション、トランザクション、優先トランザクション
314  ランダム優先トランザクション、トランザクション、優先トランザクション
315  ランダム優先トランザクション、トランザクション、優先トランザクション
316  ランダム優先トランザクション、トランザクション、優先トランザクション
317  ランダム優先トランザクション、トランザクション、優先トランザクション
318  ランダム優先トランザクション、トランザクション、優先トランザクション
319  ランダム優先トランザクション、トランザクション、優先トランザクション
320  ランダム優先トランザクション、タイミング図、トランザクション、優先トランザクション
322  SoC、オンチップシステム
325a  ページ開/閉
325b  ページ開/閉
325c  ページ開/閉
325d  ページ開/閉
325e  ページ開/閉
325f  ページ開/閉
325i  ページ開/閉
325j  ページ開/閉
325k  ページ開/閉
327a  ページ開/閉
327b  ページ開/閉
327c  ページ開/閉
327d  ページ開/閉
327e  ページ開/閉
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  ネットワークカード
390  持続時間
400  周期的トラフィックストリーム
402  トランザクション、周期的トランザクション
402a  周期的トランザクションの第1の部分
402b  周期的トランザクションの第2の部分
404  トランザクション、周期的トランザクション
404a  周期的トランザクションの第1の部分
404b  周期的トランザクションの第2の部分
406  トランザクション、周期的トランザクション
406a  周期的トランザクションの第1の部分
406b  周期的トランザクションの第2の部分
410  周期的トラフィックストリーム
412  優先トランザクション
414  優先トランザクション
416  優先トランザクション
420  タイミング図
421a  ページ開/閉
421b  ページ開/閉
421c  ページ開/閉
421d  ページ開/閉
421e  ページ開/閉
421f  ページ開/閉
430  タイミング図
431a  ページ開/閉
431b  ページ開/閉
431c  ページ開/閉
431d  ページ開/閉
431e  ページ開/閉
431f  ページ開/閉
440  持続時間
500  ポータブルコンピューティングデバイス(PCD)
502  CPU、マルチコアCPU
506  タッチスクリーンディスプレイ
610  第0のコア
612  第1のコア
614  第Nのコア
616  キーパッド
【図１】
2017502421.tif 000003
【図２】
2017502421.tif 000004
【図３】
2017502421.tif 000005
【図４】
2017502421.tif 000006
【図５】
2017502421.tif 000007
【図６】
2017502421.tif 000008
【手続補正書】
【提出日】平成28年7月12日(2016.7.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
DRAMメモリデバイスへのアクセス要求を管理するための方法であって、
複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信するステップと、
前記受信されたメモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するステップと、
前記受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消するステップと
を含み、
前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備え、
前記将来のページ競合を解消するステップが、前記第1のメモリクライアントの前記周期的トラフィックストリームの周期的トランザクションと前記第2のメモリクライアントの前記非周期的優先トラフィックストリームの優先トランザクションとを、前記第2のメモリクライアントの前記非周期的優先トラフィックストリームの前記優先トランザクションのトランザクション持続時間およびトランザクション頻度が変更されないようにインターリーブするステップを含む、方法。
【請求項２】
前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項1に記載の方法。
【請求項３】
前記メモリアクセスパターンデータが、前記第1および第2のメモリクライアントのうちの1つによって、対応するメモリトランザクションの前にメモリコントローラに提供される、請求項1に記載の方法。
【請求項４】
前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、ページ閉-ページ開動作の数を最小限に抑えることを含む、請求項1に記載の方法。
【請求項５】
前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、レイテンシ耐性に基づいて前記第1および第2のメモリクライアントのうちの1つを遅延させることを含む、請求項1に記載の方法。
【請求項６】
DRAMメモリデバイスへのアクセス要求を管理するためのシステムであって、
複数のバンクを備えるDRAMメモリデバイスと、
前記DRAMメモリデバイスへのアクセスを制御するためのメモリコントローラと通信している、前記メモリコントローラにメモリアクセスパターンデータを提供するように構成された複数のメモリクライアントと、
前記メモリクライアントのうちの1つまたは複数に関する前記メモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するように構成された前記メモリコントローラと
を備え、
前記メモリコントローラが、受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消するようにさらに構成され、
前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備え、
前記メモリコントローラが、前記第1のメモリクライアントの前記周期的トラフィックストリームの周期的トランザクションと前記第2のメモリクライアントの前記非周期的優先トラフィックストリームの優先トランザクションとを、前記第2のメモリクライアントの前記非周期的優先トラフィックストリームの前記優先トランザクションのトランザクション持続時間およびトランザクション頻度が変更されないようにインターリーブすることによって、前記将来のページ競合を解消するようにさらに構成される、システム。
【請求項７】
前記メモリコントローラが、ページ閉-ページ開動作の数を最小限に抑えるようにさらに構成される、請求項6に記載のシステム。
【請求項８】
前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項7に記載のシステム。
【請求項９】
前記メモリアクセスパターンデータが周期的トラフィックストリームを定義する、請求項6に記載のシステム。
【請求項１０】
前記メモリクライアントが、中央処理装置、グラフィックス処理装置、およびデジタル信号プロセッサのうちの1つまたは複数を備える、請求項6に記載のシステム。
【請求項１１】
前記DRAMメモリデバイスがダブルデータレート(DDR)メモリデバイスを備え、前記システムがポータブルコンピューティングデバイスにおいて実装される、請求項6に記載のシステム。
【請求項１２】
DRAMメモリデバイスへのアクセス要求を管理するための、コンピュータ可読媒体内で具現化され、プロセッサによって実行されるコンピュータプログラムであって、
複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信し、
前記受信されたメモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断し、
前記受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消する
ように構成された論理を備え、
前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備え、
前記将来のページ競合を解消することが、前記第1のメモリクライアントの前記周期的トラフィックストリームの周期的トランザクションと前記第2のメモリクライアントの前記非周期的優先トラフィックストリームの優先トランザクションとを、前記第2のメモリクライアントの前記非周期的優先トラフィックストリームの前記優先トランザクションのトランザクション持続時間およびトランザクション頻度が変更されないようにインターリーブすることを含む、コンピュータプログラム。
【請求項１３】
前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項12に記載のコンピュータプログラム。
【請求項１４】
前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、ページ閉-ページ開動作の数を最小限に抑えることを含む、請求項12に記載のコンピュータプログラム。
【請求項１５】
前記DRAMメモリデバイスがダブルデータレート(DDR)メモリデバイスを備える、請求項12に記載のコンピュータプログラム。
【請求項１６】
前記論理が、ポータブルコンピューティングデバイス中のメモリコントローラに存在する、請求項12に記載のコンピュータプログラム。
【国際調査報告】
2017502421.tif 000009
2017502421.tif 000010