JP6553828B1 - 奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法 - Google Patents

奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法 Download PDF

Info

Publication number
JP6553828B1
JP6553828B1 JP2018564918A JP2018564918A JP6553828B1 JP 6553828 B1 JP6553828 B1 JP 6553828B1 JP 2018564918 A JP2018564918 A JP 2018564918A JP 2018564918 A JP2018564918 A JP 2018564918A JP 6553828 B1 JP6553828 B1 JP 6553828B1
Authority
JP
Japan
Prior art keywords
dram
bus
memory
channel
rank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018564918A
Other languages
English (en)
Other versions
JP2019523945A (ja
Inventor
デクスター・タミオ・チュン
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Application granted granted Critical
Publication of JP6553828B1 publication Critical patent/JP6553828B1/ja
Publication of JP2019523945A publication Critical patent/JP2019523945A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Error Detection And Correction (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)

Abstract

奇数モジュラスメモリチャネルインターリービングを提供するためのシステムは、ダイナミックランダムアクセスメモリ(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モジュールに提供する。

Description

奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法に関する。
モバイルフォンなどのポータブルコンピューティングデバイスを含む多くのコンピューティングデバイスは、システムオンチップ(「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 バイブレータデバイス

Claims (30)

  1. 奇数モジュラスメモリチャネルインターリービングを提供するためのシステムであって、
    ダイナミックランダムアクセスメモリ(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. 前記対称メモリチャネルインターリーバが、2ウェイインターリーバを含む、請求項1に記載のシステム。
  3. 前記対称メモリチャネルインターリーバが、メモリアドレスマップに基づいて、前記DRAMトラフィックを前記第1のメモリコントローラおよび前記第2のメモリコントローラに均一に分散する、請求項1に記載のシステム。
  4. 前記メモリアドレスマップが、前記第1のメモリバスに関連付けられた第1のメモリチャネルであって、前記第1のメモリチャネルがNビットの幅を有し、Nが整数である、第1のメモリチャネルと、前記第2のメモリバスに関連付けられた第2のメモリチャネルであって、前記第2のメモリチャネルが2Nビットの幅を有する、第2のメモリチャネルとのためのインターリーブされたアドレス空間を含む、請求項3に記載のシステム。
  5. ポータブルコンピューティングデバイス上に組み込まれる、請求項1に記載のシステム。
  6. 前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項5に記載のシステム。
  7. 奇数モジュラスメモリチャネルインターリービングを提供するための方法であって、
    ダイナミックランダムアクセスメモリ(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バスを非対称に構成するステップと
    を含む、方法。
  8. 前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項7に記載の方法。
  9. 前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項8に記載の方法。
  10. 前記第1のDRAMバスおよび前記第2のDRAMバスを非対称に構成する前記ステップが、
    前記第1のインターリーブチャネルおよび前記第2のインターリーブチャネルを介して前記奇数ウェイインターリーブを提供するように、第1のメモリコントローラおよび第2のメモリコントローラを構成するステップ
    を含む、請求項7に記載の方法。
  11. 前記第1のメモリコントローラが前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合され、前記第2のメモリコントローラが前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合される、請求項10に記載の方法。
  12. 前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項11に記載の方法。
  13. 前記メモリアドレス空間が、等しいサイズのインターリーブブロックに区分される、請求項7に記載の方法。
  14. ポータブルコンピューティングデバイス上の1つまたは複数の処理デバイスによって実行される、請求項7に記載の方法。
  15. 前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項14に記載の方法。
  16. 奇数モジュラスメモリチャネルインターリービングを提供するためのシステムであって、
    ダイナミックランダムアクセスメモリ(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ランクに並行してアクセスするように構成される、システム。
  17. 前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項16に記載のシステム。
  18. 前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項17に記載のシステム。
  19. 前記第1のDRAMバスおよび前記第2のDRAMバスを非対称に構成するための前記手段が、
    前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合された第1のメモリコントローラと、
    前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合された第2のメモリコントローラと
    を備える、請求項16に記載のシステム。
  20. 前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項16に記載のシステム。
  21. 前記メモリアドレス空間が、等しいサイズのインターリーブブロックに区分される、請求項16に記載のシステム。
  22. ポータブルコンピューティングデバイスに組み込まれる、請求項16に記載のシステム。
  23. 前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項22に記載のシステム。
  24. コンピュータ可読形態で命令を記録したコンピュータ可読記憶媒体であって、前記命令が、処理デバイスによって実行されると、
    ダイナミックランダムアクセスメモリ(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システムを構成するコンピュータ可読記憶媒体
  25. 前記第1のDRAMバスが第1のバス幅を有し、前記第2のDRAMバスが第2のバス幅を有し、前記第2のバス幅が前記第1のバス幅の2倍である、請求項24に記載のコンピュータ可読記憶媒体
  26. 前記第1のDRAMバスが第1のサイクル数を有し、前記第2のDRAMバスが第2のサイクル数を有し、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項25に記載のコンピュータ可読記憶媒体
  27. 第1のメモリコントローラが前記第1のDRAMバスを介して前記DRAMシステムに電気的に結合され、第2のメモリコントローラが前記第2のDRAMバスを介して前記DRAMシステムに電気的に結合される、請求項24に記載のコンピュータ可読記憶媒体
  28. 前記第1のDRAMバスが第1のバス幅および第1のサイクル数を有し、前記第2のDRAMバスが第2のバス幅および第2のサイクル数を有し、前記第2のバス幅が前記第1のバス幅の2倍であり、前記第2のサイクル数が前記第1のサイクル数の半分である、請求項27に記載のコンピュータ可読記憶媒体
  29. ポータブルコンピューティングデバイス上に組み込まれる、請求項24に記載のコンピュータ可読記憶媒体
  30. 前記ポータブルコンピューティングデバイスが、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイスのうちの1つを含む、請求項29に記載のコンピュータ可読記憶媒体
JP2018564918A 2016-06-27 2017-05-25 奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法 Active JP6553828B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/193,423 2016-06-27
US15/193,423 US10140223B2 (en) 2016-06-27 2016-06-27 System and method for odd modulus memory channel interleaving
PCT/US2017/034587 WO2018004902A1 (en) 2016-06-27 2017-05-25 System and method for odd modulus memory channel interleaving

Publications (2)

Publication Number Publication Date
JP6553828B1 true JP6553828B1 (ja) 2019-07-31
JP2019523945A JP2019523945A (ja) 2019-08-29

Family

ID=59054217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018564918A Active JP6553828B1 (ja) 2016-06-27 2017-05-25 奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法

Country Status (7)

Country Link
US (1) US10140223B2 (ja)
EP (1) EP3475831B1 (ja)
JP (1) JP6553828B1 (ja)
KR (1) KR101952562B1 (ja)
CN (1) CN109313609B (ja)
BR (1) BR112018076522A8 (ja)
WO (1) WO2018004902A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10388362B1 (en) * 2018-05-08 2019-08-20 Micron Technology, Inc. Half-width, double pumped data path
WO2020024113A1 (zh) * 2018-07-31 2020-02-06 华为技术有限公司 一种内存交织方法及装置
CN113490926B (zh) * 2019-02-28 2024-06-18 拉姆伯斯公司 四通道dram
CN112148653A (zh) 2019-06-26 2020-12-29 北京百度网讯科技有限公司 数据传输装置、数据处理系统、数据处理方法和介质
GB201914353D0 (en) * 2019-10-04 2019-11-20 Myrtle Software Ltd Hardware Acceleration
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
US11429523B2 (en) * 2020-05-15 2022-08-30 Microsoft Technology Licensing, Llc Two-way interleaving in a three-rank environment
CN111641417B (zh) * 2020-06-09 2023-03-31 电子科技大学 一种基于fpga的完成矩阵列置换交织的装置
US11720491B2 (en) * 2021-12-17 2023-08-08 Next Silicon Ltd System and method for sharing a cache line between non-contiguous memory areas
CN114741329B (zh) * 2022-06-09 2022-09-06 芯动微电子科技(珠海)有限公司 一种多粒度组合的存储器数据交织方法和交织模块
CN118074853A (zh) * 2022-11-11 2024-05-24 深圳市中兴微电子技术有限公司 交织数据的处理方法、装置、存储介质及电子装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430764A (en) * 1993-09-01 1995-07-04 Grand Valley State University Direct digital frequency synthesizer
US6807603B2 (en) * 2002-02-22 2004-10-19 Hewlett-Packard Development Company, L.P. System and method for input/output module virtualization and memory interleaving using cell map
EP1575175B1 (en) * 2004-03-10 2008-10-08 Telefonaktiebolaget LM Ericsson (publ) Address generator for an interleaver memory and a deinterleaver memory
US20070022261A1 (en) * 2005-07-19 2007-01-25 Gateway Inc. Method of interleaving asymmetric memory arrays
US8819359B2 (en) 2009-06-29 2014-08-26 Oracle America, Inc. Hybrid interleaving in memory modules by interleaving physical addresses for a page across ranks in a memory module
US8098539B2 (en) * 2009-08-26 2012-01-17 Qualcomm Incorporated Hybrid single and dual channel DDR interface scheme by interleaving address/control signals during dual channel operation
US8380940B2 (en) 2010-06-25 2013-02-19 Qualcomm Incorporated Multi-channel multi-port memory
US9195557B2 (en) 2011-02-22 2015-11-24 Nec Corporation Fault tree analysis system, fault tree analysis method and programme
CN104159861B (zh) * 2012-03-05 2018-04-03 法国圣戈班玻璃厂 具有热辐射反射涂层的窗玻璃
WO2013187862A1 (en) 2012-06-11 2013-12-19 Intel Corporation A FAST MECHANISM FOR ACCESSING 2n±1 INTERLEAVED MEMORY SYSTEM
US9110795B2 (en) * 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US9612648B2 (en) 2013-08-08 2017-04-04 Qualcomm Incorporated System and method for memory channel interleaving with selective power or performance optimization
US9141541B2 (en) 2013-09-20 2015-09-22 Advanced Micro Devices, Inc. Nested channel address interleaving
US9495291B2 (en) 2013-09-27 2016-11-15 Qualcomm Incorporated Configurable spreading function for memory interleaving
US9465735B2 (en) 2013-10-03 2016-10-11 Qualcomm Incorporated System and method for uniform interleaving of data across a multiple-channel memory architecture with asymmetric storage capacity

Also Published As

Publication number Publication date
EP3475831B1 (en) 2019-12-04
US10140223B2 (en) 2018-11-27
CN109313609B (zh) 2023-06-30
CN109313609A (zh) 2019-02-05
KR101952562B1 (ko) 2019-02-26
WO2018004902A1 (en) 2018-01-04
JP2019523945A (ja) 2019-08-29
EP3475831A1 (en) 2019-05-01
BR112018076522A8 (pt) 2023-01-31
KR20190002725A (ko) 2019-01-08
US20170371812A1 (en) 2017-12-28
BR112018076522A2 (pt) 2019-04-02

Similar Documents

Publication Publication Date Title
JP6553828B1 (ja) 奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法
JP6378325B2 (ja) 非対称な記憶容量を有する複数チャネルメモリアーキテクチャにわたってデータを均一にインターリーブするためのシステムおよび方法
US10067865B2 (en) System and method for allocating memory to dissimilar memory devices using quality of service
JP5914773B2 (ja) 非対称のメモリ構成要素を有するメモリサブシステム内でメモリを動的に割り振るためのシステムおよび方法
JP6178512B2 (ja) 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法
KR101914350B1 (ko) 동적 메모리 i/o 리사이징을 이용하여 메모리 전력을 절약하기 위한 시스템 및 방법
EP2929446B1 (en) System and method for managing performance of a computing device having dissimilar memory types
US20170109090A1 (en) System and method for page-by-page memory channel interleaving
US20170108914A1 (en) System and method for memory channel interleaving using a sliding threshold address
TW201717025A (zh) 用於逐頁記憶體通道交錯之系統及方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181211

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181211

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20181211

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190704

R150 Certificate of patent or registration of utility model

Ref document number: 6553828

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250