(57)【要約】  奇数モジュラスメモリチャネルインターリービングを提供するためのシステムは、ダイナミックランダムアクセスメモリ(DRAM)システムと、システムオンチップ(SoC)とを含み得る。SoCは、第1のメモリコントローラと、第2のメモリコントローラと、対称メモリチャネルインターリーバとを備える。第1のメモリコントローラは、第1のメモリバスを介して第1のDRAMモジュールに電気的に結合される。第2のメモリコントローラは、第2のメモリバスを介して第2のDRAMモジュールおよび第3のDRAMモジュールに電気的に結合される。対称メモリチャネルインターリーバは、DRAMトラフィックを第1のメモリコントローラおよび第2のメモリコントローラに均一に分散するように構成される。第1のメモリコントローラは、第1のメモリバスを介して第1のインターリーブされたチャネルを第1のDRAMモジュールに提供する。第2のメモリコントローラは、第2のメモリバス上の上位アドレスビットを介して第2のインターリーブされたチャネルを第2のDRAMモジュールに提供する。
2019523945.tif 000002
【特許請求の範囲】
【請求項１】
奇数モジュラスメモリチャネルインターリービングを提供するためのシステムであって、
ダイナミックランダムアクセスメモリ(DRAM)システムと、
第1のメモリバスを介して第1のDRAMモジュールに電気的に結合された第1のメモリコントローラと、
第2のメモリバスを介して第2のDRAMモジュールおよび第3のDRAMモジュールに電気的に結合された第2のメモリコントローラと、
DRAMトラフィックを前記第1のメモリコントローラおよび前記第2のメモリコントローラに均一に分散するように構成された対称メモリチャネルインターリーバと
を備えるシステムオンチップ(SoC)とを備え、前記第1のメモリコントローラが、前記第1のメモリバスを介して第1のインターリーブされたチャネルを前記第1のDRAMモジュールに提供し、前記第2のメモリコントローラが、前記第2のメモリバス上の上位アドレスビットを介して第2のインターリーブされたチャネルを前記第2のDRAMモジュールに提供し、前記第2のメモリバス上の下位アドレスビットを介して第3のインターリーブされたチャネルを前記第3のDRAMモジュールに提供する、システム。
【請求項２】
前記対称メモリチャネルインターリーバが、2ウェイインターリーバを含む、請求項1に記載のシステム。
【請求項３】
前記対称メモリチャネルインターリーバが、メモリアドレスマップに基づいて、前記DRAMトラフィックを前記第1のメモリコントローラおよび前記第2のメモリコントローラに均一に分散する、請求項1に記載のシステム。
【請求項４】
前記メモリアドレスマップが、前記第1のメモリバスに関連付けられた第1のメモリチャネルおよび前記第2のメモリバスに関連付けられた第2のメモリチャネルのためのインターリーブされたアドレス空間を含む、請求項3に記載のシステム。
【請求項５】
ポータブルコンピューティングデバイス上に組み込まれる、請求項1に記載のシステム。
【請求項６】
前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項5に記載のシステム。
【請求項７】
奇数モジュラスメモリチャネルインターリービングを提供するための方法であって、
ダイナミックランダムアクセスメモリ(DRAM)システムのためのメモリアドレス空間を複数のブロックに区分するステップと、
前記ブロックを第1のインターリーブチャネルおよび第2のインターリーブチャネルに均一に割り当てるステップと、
前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して奇数ウェイインターリーブを提供するように、前記第1のインターリーブチャネルのための第1のDRAMバスおよび前記第2のインターリーブチャネルのための第2のDRAMバスを非対称に構成するステップと
を含む、方法。
【請求項８】
前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項7に記載の方法。
【請求項９】
前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項8に記載の方法。
【請求項１０】
前記第1のDRAMバスおよび前記第2のDRAMバスを非対称に構成する前記ステップが、
前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して前記奇数ウェイインターリーブを提供するように、第1のメモリコントローラおよび第2のメモリコントローラを構成するステップ
を含む、請求項7に記載の方法。
【請求項１１】
前記第1のメモリコントローラが前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合され、前記第2のメモリコントローラが前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合される、請求項10に記載の方法。
【請求項１２】
前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項11に記載の方法。
【請求項１３】
前記メモリアドレス空間が、等しいサイズのインターリーブブロックに区分される、請求項7に記載の方法。
【請求項１４】
ポータブルコンピューティングデバイス上の1つまたは複数の処理デバイスによって実行される、請求項7に記載の方法。
【請求項１５】
前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項14に記載の方法。
【請求項１６】
奇数モジュラスメモリチャネルインターリービングを提供するためのシステムであって、
ダイナミックランダムアクセスメモリ(DRAM)システムのためのメモリアドレス空間を複数のブロックに区分するための手段と、
前記ブロックを第1のインターリーブチャネルおよび第2のインターリーブチャネルに均一に割り当てるための手段と、
前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して奇数ウェイインターリーブを提供するように、前記第1のインターリーブチャネルのための第1のDRAMバスおよび前記第2のインターリーブチャネルのための第2のDRAMバスを非対称に構成するための手段と
を備えるシステム。
【請求項１７】
前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項16に記載のシステム。
【請求項１８】
前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項17に記載のシステム。
【請求項１９】
前記第1のDRAMバスおよび前記第2のDRAMバスを非対称に構成するための前記手段が、
前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合された第1のメモリコントローラと、
前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合された第2のメモリコントローラと
を備える、請求項16に記載のシステム。
【請求項２０】
前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項16に記載のシステム。
【請求項２１】
前記メモリアドレス空間が、等しいサイズのインターリーブブロックに区分される、請求項16に記載のシステム。
【請求項２２】
ポータブルコンピューティングデバイスに組み込まれる、請求項16に記載のシステム。
【請求項２３】
前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項22に記載のシステム。
【請求項２４】
奇数モジュラスメモリチャネルインターリービングを提供するための、コンピュータ可読媒体において具現化され、処理デバイスによって実行されるコンピュータプログラムであって、
ダイナミックランダムアクセスメモリ(DRAM)システムのためのメモリアドレス空間を複数のブロックに区分し、
前記ブロックを第1のインターリーブチャネルおよび第2のインターリーブチャネルに均一に割り当て、
前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して奇数ウェイインターリーブを提供するように、前記第1のインターリーブチャネルのための第1のDRAMバスおよび前記第2のインターリーブチャネルのための第2のDRAMバスを非対称に構成する
ように構成された論理を含む、コンピュータプログラム。
【請求項２５】
前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項24に記載のコンピュータプログラム。
【請求項２６】
前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項25に記載のコンピュータプログラム。
【請求項２７】
第1のメモリコントローラが前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合され、第2のメモリコントローラが前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合される、請求項24に記載のコンピュータプログラム。
【請求項２８】
前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項27に記載のコンピュータプログラム。
【請求項２９】
ポータブルコンピューティングデバイス上に組み込まれる、請求項24に記載のコンピュータプログラム。
【請求項３０】
前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項29に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法に関する。
【背景技術】
【０００２】
モバイルフォンなどのポータブルコンピューティングデバイスを含む多くのコンピューティングデバイスは、システムオンチップ(「SoC」)を含む。SoCは、電力性能と、ダブルデータレート(DDR)メモリデバイスなどのメモリデバイスからの容量との向上を要求している。これらの要求は、より速いクロック速度と幅広いバスの両方につながり、その場合、バスは通常、効率的であり続けるために、複数のより狭いメモリチャネルに区分される。メモリデバイスにわたってメモリトラフィックを均一に分散し、性能を最適化するために、複数のメモリチャネルが一緒にアドレスインターリーブされ得る。メモリデータは、アドレスを交互のメモリチャネルに割り当てることによって均一に分散される。この技法は、一般に対称チャネルインターリービングと呼ばれる。
【０００３】
チャネルインターリービングは、管理しやすいサイズの個々のチャネル幅を維持しながら、より高い総帯域幅を提供するために、複数のメモリチャネルの帯域幅を組み合わせる効果的で簡単な方法である。2つのチャネル間のインターリービングは、2つのチャネル間でインターリーブまたは「ピンポン」するためにシングルビットのメモリアドレスしか必要としないので、比較的簡単で広く使用されている。より大きい2のべき乗(たとえば、4、8など)の間のインターリービングも、これらの実装がメモリチャネルの数の倍加ごとに追加ビットのメモリアドレスしか必要としないので、比較的単純である。
【０００４】
奇数個のメモリチャネルをインターリーブすること(すなわち、奇数ウェイまたは奇数モジュラスインターリービング)が可能であるが、これは、コストおよび複雑性が追加されるので、通常は回避される。奇数ウェイインターリービングは、インターリーブプロセスを実装するためにメモリアドレスビットの大部分が必要とされるので、かなり複雑である。多数のメモリアドレスビットを検査しなければならないことは、いくつかの問題をもたらす。デジタル論理の複雑性が増加する。また、アドレス検査がリアルタイムで実行されるので、インターリーバの最大速度が低下する場合がある。このようにして、既存のメモリインターリービング実装は、ダイ面積、メモリ帯域幅要件、およびインターリーブ複雑性の間の設計トレードオフを伴う。たとえば、4つのメモリチャネルは、2つのメモリチャネルよりも高いレベルの総帯域幅を提供するが、SoCダイ面積の増加という犠牲を払う。3つのメモリチャネルは最低限度のSoCダイの増加で中間レベルの総帯域幅を提供し得るが、3ウェイインターリービングは複雑性の追加を伴う。チャネルごとのアドレスはブロックサイズ(たとえば、1024バイト)に3の因数を乗じただけ分離されるので、3つのメモリチャネルのうちのどれが選択されているかを決定するために、ビット「10」を上回るすべてのアドレスビットが使用されなければならない。
【０００５】
したがって、過度の複雑性なしに低いシステムコストを可能にする奇数モジュラスインターリービングを提供するための改善されたシステムおよび方法が必要である。
【発明の概要】
【課題を解決するための手段】
【０００６】
奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法が開示される。奇数モジュラスメモリチャネルインターリービングを提供するためのシステムの一実施形態は、ダイナミックランダムアクセスメモリ(DRAM)システムと、システムオンチップ(SoC)とを備える。SoCは、第1のメモリコントローラと、第2のメモリコントローラと、対称メモリチャネルインターリーバとを備える。第1のメモリコントローラは、第1のメモリバスを介して第1のDRAMモジュールに電気的に結合される。第2のメモリコントローラは、第2のメモリバスを介して第2のDRAMモジュールおよび第3のDRAMモジュールに電気的に結合される。対称メモリチャネルインターリーバは、DRAMトラフィックを第1のメモリコントローラおよび第2のメモリコントローラに均一に分散するように構成される。第1のメモリコントローラは、第1のメモリバスを介して第1のインターリーブされたチャネルを第1のDRAMモジュールに提供する。第2のメモリコントローラは、第2のメモリバス上の上位アドレスビットを介して第2のインターリーブされたチャネルを第2のDRAMモジュールに提供し、第2のメモリバス上の下位アドレスビットを介して第3のインターリーブされたチャネルを第3のDRAMモジュールに提供する。
【０００７】
別の実施形態は、奇数モジュラスメモリチャネルインターリービングを提供するための方法である。一実施形態では、ダイナミックランダムアクセスメモリ(DRAM)システムのためのメモリアドレス空間は、複数のブロックに区分される。ブロックは、第1のインターリーブチャネルおよび第2のインターリーブチャネルに均一に割り当てられる。第1のインターリーブチャネルのための第1のDRAMバスおよび第2のインターリーブチャネルのための第2のDRAMバスは、第1のインターリーブチャネルおよび第2のインターリーブチャネルを介して奇数ウェイインターリーブを提供するように非対称に構成される。
【０００８】
図では、同様の参照番号は、別段に規定されていない限り、様々な図の全体を通して同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在する2つの同様の部分または要素を区別することができる。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【０００９】
【図１】3ウェイメモリチャネルインターリービングを提供するためのシステムの一実施形態のブロック図である。
【図２】図1のシステムにおける2ウェイ対称メモリチャネルインターリーバの動作を示す複合ブロック/流れ図である。
【図３】奇数モジュラスメモリチャネルインターリービングを提供するための図1のシステムにおいて実装される方法の一実施形態を示すフローチャートである。
【図４】図1のシステムにおいて実装される例示的なメモリアドレスマップの構造および動作を示すデータ/流れ図である。
【図５】7ウェイメモリチャネルインターリービングを提供するためのシステムの一実施形態のブロック図である。
【図６】奇数モジュラスメモリチャネルインターリービングを提供するための図1のシステムを組み込むポータブルコンピューティングデバイスの一実施形態のブロック図である。
【発明を実施するための形態】
【００１０】
「例示的」という言葉は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。
【００１１】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能コンテンツを有するファイルも含み得る。加えて、本明細書で言及する「アプリケーション」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含み得る。
【００１２】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能コンテンツを有するファイルも含み得る。加えて、本明細書で言及する「コンテンツ」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含み得る。
【００１３】
本明細書で使用する「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されるアプリケーションとコンピューティングデバイスの両方が構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、1つの構成要素は、1つのコンピュータ上に局在化されてもよく、および/または2つ以上のコンピュータ間で分散されてもよい。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素と、および/またはインターネットなどのネットワークにわたって信号によって他のシステムと対話する1つの構成要素からのデータ)を有する信号に従うなど、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
【００１４】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代(「3G」)ワイヤレス技術および第4世代(「4G」)が出現したことによって、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備えた、より多くのポータブルコンピューティングデバイスが可能になった。したがって、ポータブルコンピューティングデバイスは、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータを含み得る。
【００１５】
図1は、奇数モジュラスメモリチャネルインターリービングを提供するためのシステム100の一実施形態を示す。システム100は、パーソナルコンピュータ、ワークステーション、サーバ、あるいは、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、タブレットコンピュータ、またはウェアラブルデバイスもしくは任意のタイプのポータブルバッテリー電源式コンピューティングデバイスなどのポータブルコンピューティングデバイス(PCD)を含む、任意のコンピューティングデバイスにおいて実装され得る。
【００１６】
図1の実施形態に示すように、システム100は、様々なオンチップ構成要素を備えるシステムオンチップ(SoC)102と、SoC102に接続された様々な外部構成要素とを備える。SoC102は、SoCバス107によって相互接続された、1つまたは複数の処理ユニットと、対称(すなわち、偶数ウェイ)メモリチャネルインターリーバ106と、ストレージコントローラ124と、オンボードメモリ(たとえば、スタティックランダムアクセスメモリ(SRAM)128、読取り専用メモリ(ROM)130など)とを備える。ストレージコントローラ124は、外部ストレージデバイス126に電気的に接続され、外部ストレージデバイス126と通信する。当技術分野で知られているように、対称メモリチャネルインターリーバ106は、CPU104(または他のメモリクライアント)に関連付けられた読取り/書込みメモリ要求を受信し、専用メモリチャネルを介してそれぞれの外部メモリデバイスに接続される2つ以上のメモリコントローラ間でメモリデータを分散する。
【００１７】
図1の例示的な実施形態では、システム100は3ウェイメモリチャネルインターリービングを実装する。しかしながら、本明細書で説明する方法および技法は、任意の奇数個のメモリチャネル(たとえば、5ウェイ、7ウェイ、9ウェイなど)に容易に拡張され得ることを諒解されたい。以下でより詳細に説明するように、システム100は、対称2ウェイチャネルインターリーバおよび特殊構成のメモリアドレスマップを介して、3ウェイメモリチャネルインターリービングを提供する。システム100は、それぞれのメモリコントローラ108および116を有する2つのメモリデバイス110および118を備える。メモリデバイス110は、第1のメモリチャネル(CH0)を提供するためのメモリバス111を介してメモリコントローラ108に接続される。メモリデバイス118は、第2のメモリチャネル(CH1)を提供するためのメモリバス115を介してメモリコントローラ116に接続される。メモリコントローラ108および116は、それぞれ、バス109およびバス113を介して対称メモリチャネルインターリーバ106に接続される。
【００１８】
メモリの任意の望ましいタイプ、サイズ、および構成(たとえば、ダブルデータレート(DDR)メモリ)を用いて、任意の数のメモリデバイス、メモリコントローラ、およびメモリチャネルがシステム100において使用され得ることを諒解されたい。図1の実施形態では、チャネルCH0を介してサポートされるメモリデバイス110は、2つのダイナミックランダムアクセスメモリ(DRAM)モジュール、すなわち、DRAM112およびDRAM114を備える。チャネルCH1を介してサポートされるメモリデバイス118も、2つのDRAMモジュール、すなわち、DRAM120およびDRAM122を備える。DRAMデバイスは、任意のタイプ、たとえば、DDR3、DDR4、LPDDR3、LPDDR4、SDRAM、GDDR4、GDDR5、HBM、WideIO2などとすることができる。
【００１９】
図1の例示的な実施形態では、システム100は、対称2ウェイチャネルインターリーバ106および特殊構成のメモリアドレスマップ(たとえば、図4のメモリアドレスマップ400)を介して、3ウェイインターリービングを実装する。対称2ウェイチャネルインターリーバ106は、従来の方法で対称的な2のべき乗インターリービング技法を使用して動作することができ、この技法は、それぞれバス109およびバス113を介してメモリコントローラ108とメモリコントローラ116との間でDRAMトラフィックを均一に分散するために、最小数のメモリアドレスビットのみを必要とすることを諒解されたい。対称2ウェイチャネルインターリーバ106によって使用される特殊構成のメモリアドレスマップ400は、2つのメモリコントローラ108および116が2つのメモリチャネルCH0およびCH1を使用して3つのDRAMモジュールにわたって物理的にインターリーブすることを可能にする。この点について、総帯域幅および容量が奇数モジュラスメモリチャネルインターリービングの利益をもたらすように、DRAMモジュールならびに物理メモリコントローラ108および116は非対称に実装される。
【００２０】
図1に示すように、システム100は、それぞれ、バス111およびバス115上の2つのメモリチャネルCH0およびCH1を介して、3つのDRAMチャネルを物理的にインターリーブすることができる。第1のDRAMチャネルは、バス111上のメモリチャネルCH0を介して物理的に実装される。第2のDRAMチャネルおよび第3のDRAMチャネルは、バス115上のメモリチャネルCH1を介して物理的に実装される。たとえば、一実施形態では、SoCバス107は128ビットデータバスを含んでもよい。2つのバス109および113は別個の64ビットデータバスを含んでもよい。奇数ウェイインターリーブを実装するために、メモリバス111(CH0)は16ビットDRAMバスを含んでもよく、メモリバス115は32ビットDRAMバスを含んでもよい。このようにして、CH0バス111の幅はCH1バス115の幅の半分になる。(一度にDRAMモジュール112または114のいずれかにアクセスするために使用される)第1のDRAMチャネルは、メモリバス111のすべての16ビットによって提供され得る。(DRAMモジュール120にアクセスするために使用される)第2のDRAMチャネルは、(参照番号115aによって表される)メモリバス115の上位16ビットを介して提供され得る。(DRAMモジュール122にアクセスするために使用される)第3のDRAMチャネルは、(参照番号115bによって表される)メモリバス115の下位16ビットを介して提供され得る。図2において説明するように、DRAMモジュール120および122は並行して動作することがあるが、DRAMモジュール112および114は並行して動作しないことがある。このことは、DRAMモジュール120および122が同じメモリコントローラチャネルおよびランクを共有し、したがって、データパケットがそのチャネルに送られるときに、同時に選択されアクティブ化されることを意味する。一方、DRAMモジュール112および114は、同じメモリコントローラチャネルのみを共有し得るが、異なるアドレスランク上にあり、したがって、データパケットがそれらのそれぞれのアドレスランク用であるときにのみ、選択されアクティブ化される。
【００２１】
システム100において実装される3ウェイインターリービング方法をさらに例示するために、対称メモリチャネルインターリーバ106によって使用される特殊構成のメモリアドレスマップについて、さらに説明する。図4は、メモリアドレスマップ400の一実施形態を示す。メモリアドレスマップ400は、CPU104上で実行されるハイレベルオペレーティングシステム(HLOS)を介して構成、制御、および管理され得ることを諒解されたい。
【００２２】
図4は、上記で説明した3ウェイインターリービングを実装するために対称メモリチャネルインターリーバ106によって使用される例示的なメモリアドレスマップ400を示す。システム100の一般的な動作、アーキテクチャ、および機能を例示するために、メモリアドレスマップ400について説明する。メモリアドレスマップ400は、図1に示すメモリシステムのアドレス可能空間全体を表し、メモリシステムは、(バス111上のメモリチャネルCH0を介してアクセスされる)DRAMモジュール112および114ならびに(バス115上のメモリチャネルCH1を介してアクセスされる)DRAMモジュール120および122を備える。
【００２３】
メモリアドレスマップ400は、メモリパーティション402、404、および406を含む、インターリーブされたアドレス空間を定義する。各メモリパーティションは、対応するアドレス範囲を有する別個の割り振られたメモリアドレス空間を含む。メモリパーティション402は、アドレスランク0を占めるDRAMモジュール112に対応する。メモリパーティション404は、アドレスランク1を占めるDRAMモジュール114に対応する。メモリパーティション402および404が組み合わさって、第1のDRAMチャネルを実装するためのメモリチャネルCH0に関連付けられたメモリアドレス空間を形成する。CH0上では、DRAMモジュール112およびDRAMモジュール114は、同時にアクティブではないことがあることに留意されたい。メモリパーティション406は、第2のDRAMチャネルおよび第3のDRAMチャネルを実装するためのメモリチャネルCH1に関連付けられたメモリアドレス空間を形成する。CH1上では、DRAMモジュール120およびDRAMモジュール122は、常に一緒にアクティブであり得ることに留意されたい。
【００２４】
矢印408は、最下位アドレス(アドレス0)を表し、最下位1024バイトブロック(ブロック412)に属し、DRAMモジュール112内にある。インターリーブされたアドレス空間内の次の1024バイトブロックは、1024の開始アドレスおよび2047の終了アドレスを有する最下位1024バイトブロック(ブロック414)に割り当てられてもよく、DRAMモジュール120および122内にある。インターリーブされたアドレス空間は、メモリチャネルCH0およびCH1にわたって「ストライプされる(striped)」またはインターリーブされる場合がある交互のアドレスのパターンを定義する。チャネルCH0とチャネルCH1との間の破線矢印は、昇順アドレスへのメモリアクセスがメモリチャネル間でどのように「ピンポン」することになるかを示す。図4にさらに示すように、ブロック414の後の次のアドレスの継承は、ブロック416、418、420、および422に続く。一実施形態では、CH0とCH1の両方におけるすべてのブロックは、サイズが1024バイトであり得る。DRAMモジュール112の上位アドレスは、ブロック424において表される。DRAMモジュール114の下位アドレスは、ブロック424によって表される。DRAMモジュール114の下位アドレスは、ブロック426において表される。DRAMモジュール114の最後の2つのアドレスは、ブロック428および430によって表される。矢印410は、インターリーブされたアドレス空間内の最後のアドレス(アドレスTOP)を表し、最後のアドレスは、DRAMモジュール120および122に関連付けられた最上位1024バイトブロック(ブロック432)に位置することになる最上位アドレスに割り当てられ得る。
【００２５】
図4にさらに示すように、物理メモリアドレスのブロックサイズは、固定サイズ(たとえば、1024バイト)を含み得る。この例では、DRAMモジュール112、114、120、および122の各々は1GBのサイズを有し、結果として、メモリチャネルCH0およびCH1はそれぞれ、2GBの密度を有する。CH0バス111の幅(すなわち、16メモリアドレスビット)はCH1バス115の幅(すなわち、32メモリアドレスビット)の半分であるので、CH0のメモリ帯域幅はCH1のメモリ帯域幅の半分であり、このことは、CH0メモリ帯域幅の3倍の合計メモリ帯域幅をもたらす。
【００２６】
図2は、図1のシステム100における対称メモリチャネルインターリーバ106の例示的な動作を示す。動作時、対称メモリチャネルインターリーバ106は、CPU104からデータパケット204を受信する(矢印202)。例示的な実施形態では、各データパケットは、64バイトのデータ(128ビット×4クロックサイクル)を含み得る。対称メモリチャネルインターリーバ106は、データパケット204をメモリコントローラ108および116に均一に分散するために、メモリアドレスマップ400に従って2ウェイインターリービングを実装する。64ビットバス109を介してメモリコントローラ108に分散されたCH0データパケット206は、64バイトのデータ(64ビット×8サイクル)を含む。メモリコントローラ108は、16ビットCH0バス111を介して、CH0データパケット208をDRAMモジュール112または114のいずれかに提供する。DRAMモジュール112または114のうちの1つのみが、任意の所与の時間にアクティブであり得る。CH0データパケット208は、64バイトのデータ(16ビット×32サイクル)を含む。64ビットバス113を介してメモリコントローラ116に分散されたCH1データパケット210は、64バイトのデータ(64ビット×8サイクル)を含む。メモリコントローラ116は、32ビットCH1バス115を介して、CH1データパケット212をDRAMモジュール120および122に並行して提供する。CH1データパケット212は、64バイトのデータ(32ビット×16サイクル)を含む。
【００２７】
サイクル数は、完全なパケットを転送するためにデータバスの幅がトグルされなければならない回数を指すことを諒解されたい。各サイクルは、立上りエッジ(シングルデータレート)、立下りエッジ(シングルデータレート)、または立上りおよび立下りエッジ(ダブルデータレート)、または多相(クワッドデータレートまたはそれ以上)に関連付けられ得る。また、異なるロケーションにおける(レートを確立する)バスクロック周波数は、同じであるかまたは異なる場合がある。たとえば、図2では、64ビットバス109および113の動作周波数は、CH0バス111およびCH1バス115の動作周波数よりも低い場合がある。たとえば、使用される内部SoCデータ経路が広くなるにつれて、使用される周波数は低下し得る。この例では、CH0バス111とCH1バス115の両方の周波数が整合し、整合したDRAMモジュール112、114、120、および122がサポートすることが可能な動作周波数に等しい。DRAMモジュールが整合せず、異なる周波数をサポートする場合(たとえば、ユーザが異なる速度グレードのDRAMモジュールを設置するとき)、CH0バス111とCH1バス115の両方の周波数は両方とも、より低い動作周波数を有するDRAMモジュールによってサポートされる周波数に設定され得る。
【００２８】
図3は、奇数モジュラスメモリチャネルインターリービングを提供するためのシステム100において実装される方法300の一実施形態を示す。ブロック302において、システム100内の物理メモリ空間全体は、等しいサイズのインターリーブブロックに区分される。たとえば、合計物理メモリが4ギガバイトであり、インターリーブブロックサイズが1024バイト(1キロバイト)である場合、N=4194304個のブロックがあることになる。ブロック304において、すべてのブロックは、インターリーブウェイの数に均等に分割される。たとえば、2ウェイインターリーブでは、ブロックはモジュロ2でチャネル0およびチャネル1に割り当てられることになる。「偶数」ブロック(たとえば、ブロック0、2、4、...[N-2])はチャネル0に割り当てられ、「奇数」ブロック(たとえば、ブロック1、3、5、...[N-1])はチャネル1に割り当てられる。別の例として、4ウェイインターリーブでは、ブロックはモジュロ4でチャネル0、チャネル1、チャネル2、およびチャネル3に割り当てられることになる。ブロック0、4、および8はチャネル0に割り当てられ、ブロック1、5、および9はチャネル1に割り当てられ、ブロック2、6、および10はチャネル2に割り当てられ、ブロック3、7、および11はチャネル3に割り当てられ、以下同様である。このようにして、システム100は、比較的簡単で高速である、2のべき乗インターリービングを実装し得る。ブロック306に示すように、2のべき乗インターリービングは、奇数モジュラスDRAMバスに適用され得る。ブロック306において、バストランザクション(すなわち、CH0データパケット208およびCH1データパケット212)は、非対称に構成され得る。一実施形態では、CH0のパケットはバス幅Wおよびサイクル数Cを有することができ、CH1のパケットはバス幅の2倍(2*W)およびサイクル数の半分(C/2)を有することができる。CH0およびCH1の各パケットは同数のデータバイトを含んでいるが、CH1の帯域幅はCH0の帯域幅の2倍である。したがって、CH0とCH1の両方の複合帯域幅は、CH0の帯域幅の3倍である。
【００２９】
上述のように、システム100は、任意の奇数個のメモリチャネル(たとえば、5ウェイ、7ウェイ、9ウェイなど)をサポートするように適合され得る。図5は、7ウェイメモリチャネルインターリービングを提供するためのシステム100の一実装形態である。図5に示すように、システム100は、それぞれ、バス111、115、512、および510上の4つのメモリチャネルCH0、CH1、CH2、およびCH3を介して、7つのDRAMチャネルを物理的にインターリーブすることができる。(DRAMモジュール112または114のいずれかにアクセスするために使用される)第1のDRAMチャネルは、メモリバス111のすべての16ビット上でメモリチャネルCH0を介して物理的に実装される。(DRAMモジュール120にアクセスするために使用される)第2のDRAMチャネルは、(参照番号115aによって表される)CH1メモリバス115の上位16ビットを介して提供され得る。(DRAMモジュール122にアクセスするために使用される)第3のDRAMチャネルは、(参照番号115bによって表される)CH1メモリバス115の下位16ビットを介して提供され得る。(DRAMモジュール536にアクセスするために使用される)第4のDRAMチャネルは、(参照番号512aによって表される)CH2メモリバス512の上位16ビットを介して提供され得る。(DRAMモジュール538にアクセスするために使用される)第5のDRAMチャネルは、(参照番号512bによって表される)CH2メモリバス512の下位16ビットを介して提供され得る。(DRAMモジュール532にアクセスするために使用される)第6のDRAMチャネルは、(参照番号510aによって表される)CH3メモリバス510の上位16ビットを介して提供され得る。(DRAMモジュール534にアクセスするために使用される)第7のDRAMチャネルは、(参照番号510bによって表される)CH3メモリバス510の下位16ビットを介して提供され得る。バス115aおよび115bは、バス115の一部として並行して動作し、バス512aおよび512bは、バス512の一部として並行して動作し、バス510aおよび510bは、バス510の一部として並行して動作する。このようにして、CH0バス111の幅は、それぞれ、CH1メモリバス115、CH2メモリバス512、およびCH3メモリバス510の幅の半分になる。
【００３０】
上述のように、システム100は、任意の望ましいコンピューティングシステムに組み込まれ得る。図6は、例示的なポータブルコンピューティングデバイス(PCD)600に組み込まれたシステム100を示す。システム100は、マルチコアCPU602を含み得るSoC601上に含まれ得る。マルチコアCPU602は、第0のコア610、第1のコア612、および第Nのコア614を含み得る。コアのうちの1つは、たとえば、グラフィックス処理ユニット(GPU)を含み、その他のコアのうちの1つまたは複数は、CPU104(図1)を含み得る。代替の例示的な実施形態によれば、CPU602は、複数のコアを有するCPUではなく、シングルコアタイプのCPUを含む場合もあり、その場合、CPU602およびGPUは、システム100に示すような専用プロセッサであり得る。
【００３１】
ディスプレイコントローラ628およびタッチスクリーンコントローラ630は、CPU602に結合され得る。一方、オンチップシステム601の外部にあるタッチスクリーンディスプレイ625は、ディスプレイコントローラ616およびタッチスクリーンコントローラ618に結合され得る。
【００３２】
図6は、ビデオエンコーダ620、たとえば、位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダがマルチコアCPU602に結合されることをさらに示す。さらに、ビデオ増幅器622はビデオエンコーダ620およびタッチスクリーンディスプレイ625に結合される。また、ビデオポート624はビデオ増幅器622に結合される。図6に示すように、ユニバーサルシリアルバス(USB)コントローラ626はマルチコアCPU602に結合される。また、USBポート628はUSBコントローラ626に結合される。外部メモリシステムおよび加入者識別モジュール(SIM)カードも、マルチコアCPU602に結合され得る。外部メモリシステムは、上記で説明したように、DRAMモジュール112、114、120、および122(図1)を備え得る。システム100(図1)の1つまたは複数の態様は、マルチコアCPU602(たとえば、対称メモリチャネルインターリーバ106)に結合され得る。
【００３３】
さらに、図6に示すように、デジタルカメラ630はマルチコアCPU602に結合され得る。例示的な態様では、デジタルカメラ630は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
【００３４】
図6にさらに示すように、ステレオオーディオコーダ-デコーダ(コーデック)632はマルチコアCPU602に結合され得る。さらに、オーディオ増幅器634はステレオオーディオコーデック632に結合され得る。例示的な態様では、第1のステレオスピーカー636および第2のステレオスピーカー638はオーディオ増幅器634に結合される。図6は、マイクロフォン増幅器640もステレオオーディオコーデック632に結合され得ることを示す。加えて、マイクロフォン642はマイクロフォン増幅器640に結合され得る。特定の態様では、周波数変調(FM)無線チューナー644はステレオオーディオコーデック632に結合され得る。また、FMアンテナ646はFM無線チューナー644に結合される。さらに、ステレオヘッドフォン648はステレオオーディオコーデック632に結合され得る。
【００３５】
図6は、無線周波数(RF)トランシーバ650がマルチコアCPU602に結合され得ることをさらに示す。RFスイッチ652はRFトランシーバ650およびRFアンテナ654に結合され得る。図6に示すように、キーパッド656はマルチコアCPU602に結合され得る。また、マイクロフォンを備えたモノヘッドセット658はマルチコアCPU602に結合され得る。さらに、バイブレータデバイス680はマルチコアCPU602に結合され得る。
【００３６】
図6は、電源662がオンチップシステム601に結合され得ることも示す。特定の態様では、電源662は、電力を必要とするPCD600の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、交流(AC)電源に接続されたAC-DC変換器から得られる、充電式DCバッテリーまたはDC電源である。
【００３７】
図6は、PCD600が、データネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用され得るネットワークカード664も含み得ることをさらに示す。ネットワークカード664は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナー、または当技術分野でよく知られている任意の他のネットワークカードであってもよい。さらに、ネットワークカード664は、チップに組み込まれる場合があり、すなわち、ネットワークカード664は、チップ内のフルソリューションである場合があり、別個のネットワークカード664でなくてもよい。
【００３８】
本明細書で説明する方法ステップのうちの1つまたは複数は、上記で説明したモジュールなどのコンピュータプログラム命令としてメモリに記憶される場合があることを諒解されたい。これらの命令は、本明細書で説明する方法を実行するために、対応するモジュールと組み合わせてまたは協働して、任意の適切なプロセッサによって実行される場合がある。
【００３９】
本明細書で説明するプロセスまたはプロセスフローにおけるいくつかのステップは、当然、説明したように本発明が機能するために他のステップに先行する。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明したステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行される場合があるか、他のステップの後に実行される場合があるか、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。いくつかの事例では、本発明から逸脱することなく、いくつかのステップは、省略される場合があるか、または実行されない場合がある。さらに、「その後(thereafter)」、「次いで(then)」、「次に(next)」などの言葉は、ステップの順序を限定するものではない。これらの言葉は単に、例示的な方法の説明を通して読者を導くために使用される。
【００４０】
加えて、プログラミングにおける当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示した発明を実装するコンピュータコードを書くことができるか、または実装するのに適したハードウェアおよび/もしくは回路を識別することができる。
【００４１】
したがって、特定のセットのプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明をどのように製作し使用すべきかについて適切に理解するために必要であるとは見なされない。特許請求されるコンピュータ実装プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示す場合がある図とともに、より詳細に説明される。
【００４２】
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)、SoC
104  CPU
106  対称メモリチャネルインターリーバ、対称2ウェイチャネルインターリーバ
107  SoCバス
108  メモリコントローラ、物理メモリコントローラ
109  バス、64ビットバス
110  メモリデバイス
111  メモリバス、バス、CH0バス、16ビットCH0バス
112  DRAM、DRAMモジュール
113  バス、64ビットバス
114  DRAM、DRAMモジュール
115  メモリバス、バス、CH1バス
115a  バス
115b  バス
116  メモリコントローラ、物理メモリコントローラ
118  メモリデバイス
120  DRAM、DRAMモジュール
122  DRAM、DRAMモジュール
124  ストレージコントローラ
126  外部ストレージデバイス
128  スタティックランダムアクセスメモリ(SRAM)
130  読取り専用メモリ(ROM)
CH0  第1のメモリチャネル、チャネル、メモリチャネル
CH1  第2のメモリチャネル、チャネル、メモリチャネル
202  矢印
204  データパケット
206  CH0データパケット
208  CH0データパケット
210  CH1データパケット
212  CH1データパケット
300  方法
400  メモリアドレスマップ
402  メモリパーティション
404  メモリパーティション
406  メモリパーティション
408  矢印
410  矢印
412  ブロック
414  ブロック
416  ブロック
418  ブロック
420  ブロック
422  ブロック
424  ブロック
426  ブロック
428  ブロック
430  ブロック
432  ブロック
510  バス、CH3メモリバス
510a  バス
510b  バス
512  バス、CH2メモリバス
512a  バス
512b  バス
532  DRAMモジュール
534  DRAMモジュール
536  DRAMモジュール
538  DRAMモジュール
600  ポータブルコンピューティングデバイス(PCD)、PCD
601  SoC、オンチップシステム
602  マルチコアCPU、CPU
610  第0のコア
612  第1のコア
614  第Nのコア
616  ディスプレイコントローラ
618  タッチスクリーンコントローラ
620  ビデオエンコーダ
622  ビデオ増幅器
624  ビデオポート
625  タッチスクリーンディスプレイ
626  ユニバーサルシリアルバス(USB)コントローラ、USBコントローラ
628  ディスプレイコントローラ
630  タッチスクリーンコントローラ
632  ステレオオーディオコーダ-デコーダ(コーデック)、ステレオオーディオコーデック
634  オーディオ増幅器
636  第1のステレオスピーカー
638  第2のステレオスピーカー
640  マイクロフォン増幅器
642  マイクロフォン
644  周波数変調(FM)無線チューナー、FM無線チューナー
646  FMアンテナ
648  ステレオヘッドフォン
650  無線周波数(RF)トランシーバ、RFトランシーバ
652  RFスイッチ
654  RFアンテナ
656  キーパッド
658  マイクロフォンを備えたモノヘッドセット
662  電源
664  ネットワークカード
680  バイブレータデバイス
【図１】
2019523945.tif 000003
【図２】
2019523945.tif 000004
【図３】
2019523945.tif 000005
【図４】
2019523945.tif 000006
【図５】
2019523945.tif 000007
【図６】
2019523945.tif 000008
【手続補正書】
【提出日】平成30年12月11日(2018.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
奇数モジュラスメモリチャネルインターリービングを提供するためのシステムであって、
ダイナミックランダムアクセスメモリ(DRAM)システムと、
第1のメモリバスを介して第1のDRAMモジュールに電気的に結合された第1のメモリコントローラであって、前記第1のメモリコントローラが、第1のランクおよび第2のランクを備える、第1のメモリコントローラと、
第2のメモリバスを介して第2のDRAMモジュールに電気的に結合された第2のメモリコントローラであって、前記第2のメモリコントローラが、第3のランクおよび第4のランクを備える、第2のメモリコントローラと、
DRAMトラフィックを前記第1のメモリコントローラおよび前記第2のメモリコントローラに均一に分散するように構成された対称メモリチャネルインターリーバと
を備えるシステムオンチップ(SoC)とを備え、前記第1のメモリコントローラおよび前記第2のメモリコントローラが、奇数ウェイインターリービングを提供するように構成され、
前記第1のメモリコントローラが、前記第1のメモリバスを介して前記第1のDRAMモジュールの前記第1のランクまたは前記第2のランクにアクセスすることによって第1のインターリーブされたチャネルを提供するように構成され、
前記第2のメモリコントローラが、前記第2のメモリバス上の上位アドレスビットを介して前記第3のランクにアクセスすることによって第2のインターリーブされたチャネルを前記第2のDRAMモジュールに提供し、前記第2のメモリバス上の下位アドレスビットを介して前記第4のランクに並行してアクセスすることによって第3のインターリーブされたチャネルを前記第2のDRAMモジュールに提供するように構成される、システム。
【請求項２】
前記対称メモリチャネルインターリーバが、2ウェイインターリーバを含む、請求項1に記載のシステム。
【請求項３】
前記対称メモリチャネルインターリーバが、メモリアドレスマップに基づいて、前記DRAMトラフィックを前記第1のメモリコントローラおよび前記第2のメモリコントローラに均一に分散する、請求項1に記載のシステム。
【請求項４】
前記メモリアドレスマップが、前記第1のメモリバスに関連付けられた第1のメモリチャネルであって、前記第1のメモリチャネルがNビットの幅を有し、Nが整数である、第1のメモリチャネルと、前記第2のメモリバスに関連付けられた第2のメモリチャネルであって、前記第2のメモリチャネルが2Nビットの幅を有する、第2のメモリチャネルとのためのインターリーブされたアドレス空間を含む、請求項3に記載のシステム。
【請求項５】
ポータブルコンピューティングデバイス上に組み込まれる、請求項1に記載のシステム。
【請求項６】
前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項5に記載のシステム。
【請求項７】
奇数モジュラスメモリチャネルインターリービングを提供するための方法であって、
ダイナミックランダムアクセスメモリ(DRAM)システムのためのメモリアドレス空間を複数のブロックに区分するステップと、
前記ブロックを、第1のDRAMランクおよび第2のDRAMランクと通信して第1のインターリーブチャネルに、および、第3のDRAMランクおよび第4のDRAMランクと通信して第2のインターリーブチャネルに、均一に割り当てるステップと、
第1のDRAMバスを使用して前記第1のDRAMランクまたは前記第2のDRAMランクにアクセスする、前記第1のインターリーブチャネルと、
第2のDRAMバス上の上位アドレスビットを使用して前記第3のDRAMランクにアクセスし、前記第2のDRAMバス上の下位アドレスビットを使用して前記第4のDRAMランクに並行してアクセスする、前記第2のインターリーブチャネルと
によって、前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して奇数ウェイインターリーブを提供するように、前記第1のインターリーブチャネルのための前記第1のDRAMバスおよび前記第2のインターリーブチャネルのための前記第2のDRAMバスを非対称に構成するステップと
を含む、方法。
【請求項８】
前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項7に記載の方法。
【請求項９】
前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項8に記載の方法。
【請求項１０】
前記第1のDRAMバスおよび前記第2のDRAMバスを非対称に構成する前記ステップが、
前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して前記奇数ウェイインターリーブを提供するように、第1のメモリコントローラおよび第2のメモリコントローラを構成するステップ
を含む、請求項7に記載の方法。
【請求項１１】
前記第1のメモリコントローラが前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合され、前記第2のメモリコントローラが前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合される、請求項10に記載の方法。
【請求項１２】
前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項11に記載の方法。
【請求項１３】
前記メモリアドレス空間が、等しいサイズのインターリーブブロックに区分される、請求項7に記載の方法。
【請求項１４】
ポータブルコンピューティングデバイス上の1つまたは複数の処理デバイスによって実行される、請求項7に記載の方法。
【請求項１５】
前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項14に記載の方法。
【請求項１６】
奇数モジュラスメモリチャネルインターリービングを提供するためのシステムであって、
ダイナミックランダムアクセスメモリ(DRAM)システムのためのメモリアドレス空間を複数のブロックに区分するための手段と、
前記ブロックを、第1のDRAMランクおよび第2のDRAMランクと通信して第1のインターリーブチャネルに、および、第3のDRAMランクおよび第4のDRAMランクと通信して第2のインターリーブチャネルに、均一に割り当てるための手段と、
前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して奇数ウェイインターリーブを提供するように、前記第1のインターリーブチャネルのための第1のDRAMバスおよび前記第2のインターリーブチャネルのための第2のDRAMバスを非対称に構成するための手段と
を備え、
前記第1のインターリーブチャネルが、前記第1のDRAMバスを使用して前記第1のDRAMランクまたは前記第2のDRAMランクにアクセスするように構成され、
前記第2のインターリーブチャネルが、前記第2のDRAMバス上の上位アドレスビットを使用して前記第3のDRAMランクにアクセスし、前記第2のDRAMバス上の下位アドレスビットを使用して前記第4のDRAMランクに並行してアクセスするように構成される、システム。
【請求項１７】
前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項16に記載のシステム。
【請求項１８】
前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項17に記載のシステム。
【請求項１９】
前記第1のDRAMバスおよび前記第2のDRAMバスを非対称に構成するための前記手段が、
前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合された第1のメモリコントローラと、
前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合された第2のメモリコントローラと
を備える、請求項16に記載のシステム。
【請求項２０】
前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項16に記載のシステム。
【請求項２１】
前記メモリアドレス空間が、等しいサイズのインターリーブブロックに区分される、請求項16に記載のシステム。
【請求項２２】
ポータブルコンピューティングデバイスに組み込まれる、請求項16に記載のシステム。
【請求項２３】
前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項22に記載のシステム。
【請求項２４】
コンピュータ可読形態で命令を記録したコンピュータ可読記憶媒体であって、前記命令が、処理デバイスによって実行されると、
ダイナミックランダムアクセスメモリ(DRAM)システムのためのメモリアドレス空間を複数のブロックに区分し、
前記ブロックを、第1のDRAMランクおよび第2のDRAMランクと通信して第1のインターリーブチャネルに、および、第3のDRAMランクおよび第4のDRAMランクと通信して第2のインターリーブチャネルに、均一に割り当て、
第1のDRAMバスを使用して前記第1のDRAMランクまたは前記第2のDRAMランクにアクセスする、前記第1のインターリーブチャネルと、
第2のDRAMバス上の上位アドレスビットを使用して前記第3のDRAMランクにアクセスし、前記第2のDRAMバス上の下位アドレスビットを使用して前記第4のDRAMランクに並行してアクセスする、前記第2のインターリーブチャネルと
によって、前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して奇数ウェイインターリーブを提供するように、前記第1のインターリーブチャネルのための前記第1のDRAMバスおよび前記第2のインターリーブチャネルのための前記第2のDRAMバスを非対称に構成する
ように前記DRAMシステムを構成することによって、奇数モジュラスメモリチャネルインターリービングを提供するように前記DRAMシステムを構成する、コンピュータ可読記憶媒体。
【請求項２５】
前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項24に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項25に記載のコンピュータ可読記憶媒体。
【請求項２７】
第1のメモリコントローラが前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合され、第2のメモリコントローラが前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合される、請求項24に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項27に記載のコンピュータ可読記憶媒体。
【請求項２９】
ポータブルコンピューティングデバイス上に組み込まれる、請求項24に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項29に記載のコンピュータ可読記憶媒体。
【国際調査報告】
2019523945.tif 000009
2019523945.tif 000010