JP7187698B2 - 2の非累乗のメモリ構成 - Google Patents

2の非累乗のメモリ構成 Download PDF

Info

Publication number
JP7187698B2
JP7187698B2 JP2021531209A JP2021531209A JP7187698B2 JP 7187698 B2 JP7187698 B2 JP 7187698B2 JP 2021531209 A JP2021531209 A JP 2021531209A JP 2021531209 A JP2021531209 A JP 2021531209A JP 7187698 B2 JP7187698 B2 JP 7187698B2
Authority
JP
Japan
Prior art keywords
subset
memory
address bits
physical address
bits
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
JP2021531209A
Other languages
English (en)
Other versions
JP2022510970A (ja
Inventor
ピライ パツァニ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2022510970A publication Critical patent/JP2022510970A/ja
Application granted granted Critical
Publication of JP7187698B2 publication Critical patent/JP7187698B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory
    • G06F2212/2532Centralized memory comprising a plurality of modules
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)

Description

最新のプロセッサ及びシステムオンチップ(SoC)は、高速で効率的な計算を容易にするために、様々な回路及びコンポーネントを含む。プロセッサとメモリとの間のデータ移動エネルギーは、プログラム実行中に消費される全チップエネルギーの大きな構成要素である。通常、メモリ構成は、2の累乗の数のメモリチャネルを有する。これにより、アドレス空間を簡単な方法でマッピングし、データを、処理ユニットとメモリサブシステムのメモリデバイスとの間で効率的なバーストで転送することができる。本明細書で使用する場合、「2の累乗のメモリ構成」は、2の累乗に等しい数のメモリチャネルを有するメモリサブシステムとして定義される。2の累乗の数の例は、2、4、8、16、32、64、128、256、512、1024等を含む。
しかしながら、コンピューティングシステムが2の非累乗のメモリ構成を有する場合が存在する。本明細書で使用する場合、「2の非累乗のメモリ構成」は、2の累乗に等しくない数のアクティブなメモリチャネルを有するメモリサブシステムとして定義される。「2の非累乗のメモリ構成」の場合、メモリサブシステムは、実際には、数が2の累乗に等しいが、常駐メモリスロットの数が2の非累乗に等しい物理メモリチャネルを有してもよいことに留意されたい。場合によっては、物理メモリスロットは、占有されていない(unoccupied)か、機能していないメモリモジュール又はデバイスによって占有されている。機能しており、使用可能なメモリデバイスを有する占有メモリスロット(occupied memory slot)に接続された物理メモリチャネルは、「アクティブメモリチャネル」と呼ばれる。
添付の図面と併せて以下の説明を参照することによって、本明細書に記載される方法及びメカニズムの利点をより良く理解することができる。
コンピューティングシステムの一実施形態のブロック図である。 2の累乗のメモリ構成のためのクライアントと物理メモリアドレスとの間のアドレス空間マッピングの一実施形態を示す図である。 2の非累乗のメモリ構成を有するシステムのアドレス空間マッピングの一実施形態を示す図である。 2の非累乗のメモリ構成を有するシステムのアドレス空間マッピングの別の実施形態を示す図である。 メモリコントローラを有するメモリサブシステムの一実施形態のブロック図である。 メモリサブシステムの別の実施形態のブロック図である。 メモリチャネルを選択し、物理メモリアドレスを正規化アドレスに変換するための擬似コードの一実施形態を示す図である。 メモリ要求に使用するためのマッピング方式及びアドレス変換方式のタイプを決定するための方法の一実施形態を示す一般化されたフロー図である。 2の非累乗のメモリ構成の所定の物理アドレスに対するメモリチャネルを選択するための方法の一実施形態を示す一般化されたフロー図である。 メモリチャネルを選択し、物理メモリアドレスを正規化アドレスに変換するための擬似コードの別の実施形態を示す図である。
以下の説明では、本明細書に提示される方法及びメカニズムの十分な理解を提供するために、多くの具体的な詳細が記載されている。しかしながら、当業者は、様々な実施形態がこれらの具体的な詳細無しに実施され得ることを認識すべきである。いくつかの例では、本明細書で説明するアプローチを不明瞭にすることを回避するために、周知の構造、コンポーネント、信号、コンピュータプログラム命令及び技術が詳細に示されていない。説明を簡単且つ明確にするために、図に示す要素が必ずしも縮尺通りに描かれていないことが理解されるであろう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている場合がある。
2の非累乗のメモリ構成を管理するための様々なシステム、装置及び方法が、本明細書に開示されている。コンピューティングシステムは、少なくとも1つ以上のクライアントと、制御ユニットと、2の非累乗の数のアクティブメモリチャネルを有するメモリサブシステムと、を含む。一実施形態では、制御ユニットは、物理メモリチャネルの総数に対するアクティブメモリチャネルの数の比率を、第1の数に対する第2の数の比率に低減する。受信したメモリ要求の物理アドレスビットの第1のサブセットの値(つまり、大きさ)が第1の数以上である場合、制御ユニットは、第1の数を法とする物理アドレスビットの第2のサブセットの値(又は、物理アドレスビットのサブセットに対応する値)に基づく第3の数を計算し、制御ユニットは、第3の数のバイナリ表現と物理アドレスビットの第3のサブセットとの連結を使用して、受信したメモリ要求を発行するためのメモリチャネルを選択する。アドレスビットに対応する値は、アドレスビットの数学的操作に基づく値であってもよいし、その他に基づく値であってもよい。一実施形態では、物理アドレスビットの第1のサブセットは、非アクティブなメモリチャネルが、受信したメモリ要求によってターゲットとされているかどうかを判別する物理アドレスビットである。次に、制御ユニットは、選択されたメモリチャネルに対するメモリ要求を完了する。受信したメモリ要求の物理アドレスビットの第1のサブセットが第1の数以上であることは、メモリ要求が従来のアドレス指定方式で非アクティブなメモリチャネルをターゲットにすることを示している。このようにして、メモリ要求を発行するためのメモリチャネルを選択することによって、アドレス空間は、1つ以上のクライアントによるメモリサブシステムへの効率的なアクセスを可能にするように、2の非累乗の数のアクティブメモリチャネル全体に亘ってストライピング(striped)される。
さらに、一実施形態では、受信したメモリ要求の物理アドレスビットの第1のサブセットの値が第1の数以上である場合、制御ユニットは、第5の数だけシフトアップされた物理アドレスの第1のサブセットに等しい第4の数を計算し、第5の数は、メモリサブシステムのアドレス空間のサイズに基づいて計算される。本技術分野で既知であるように、ビットを上方にシフトする毎に、2で乗算した前のバイナリ値に等しい値が生じる。また、受信したメモリ要求の物理アドレスビットの第1のサブセットの値が第1の数以上である場合、制御ユニットは、物理アドレスビットの第2のサブセットに等しいものとして、正規化されたアドレスビットの第1のサブセットを計算し、上位ビットは、物理アドレスビットの第1のサブセットで置き換えられる。さらに、受信したメモリ要求の物理アドレスビットの第1のサブセットの値が第1の数以上である場合、制御ユニットは、物理アドレスビットの第4のサブセットと物理アドレスビットの第5のサブセットとの連結に等しいものとして、正規化されたアドレスビットの第2のサブセットを計算する。さらに、受信したメモリ要求の物理アドレスビットの第1のサブセットの値が第1の数以上である場合、制御ユニットは、選択されたメモリチャネルにおいて、正規化されたアドレスに対するメモリ要求を完了し、正規化されたアドレスは、正規化されたアドレスビットの第1のサブセットと、正規化されたアドレスビットの第2のサブセットと、を含む。
図1を参照すると、コンピューティングシステム100の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム100は、プロセッサ105A~105Nと、入力/出力(I/O)インタフェース120と、バス125と、メモリコントローラ(複数可)130と、ネットワークインタフェース135と、メモリデバイス(複数可)140と、ディスプレイコントローラ(150)と、ディスプレイ155と、を少なくとも含む。他の実施形態では、コンピューティングシステム100は、他のコンポーネントを含み、及び/又は、異なるように構成されている。プロセッサ105A~105Nは、システム100に含まれる任意の数のプロセッサを表す。
一実施形態では、プロセッサ105Aは、中央処理装置(CPU)等の汎用プロセッサである。一実施形態では、プロセッサ105Nは、高度に並列なアーキテクチャを有するデータ並列プロセッサである。データ並列プロセッサは、グラフィックスプロセッシングユニット(GPU)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等を含む。いくつかの実施形態では、プロセッサ105A~105Nは、複数のデータ並列プロセッサを含む。一実施形態では、プロセッサ105Nは、ディスプレイ155に送られるピクセルをディスプレイコントローラ150に提供するGPUである。
メモリコントローラ(複数可)130は、プロセッサ105A~105Nによってアクセス可能な任意の数及びタイプのメモリコントローラを表す。メモリコントローラ(複数可)130は、任意の数及びタイプのメモリデバイス(複数可)140に結合されている。メモリデバイス(複数可)140は、任意の数及びタイプのメモリデバイスを表す。例えば、メモリデバイス(複数可)140内のメモリのタイプとしては、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、NANDフラッシュメモリ、NORフラッシュメモリ、強誘電体ランダムアクセスメモリ(FeRAM)等が挙げられる。
I/Oインタフェース120は、任意の数及びタイプのI/Oインタフェース(例えば、PCI(Peripheral Component Interconnect)バス、PCI-X(PCI-Extended)、PCIE(PCI Express)バス、ギガビットイーサネット(登録商標)(GBE)バス、ユニバーサルシリアルバス(USB))を表す。様々なタイプの周辺装置(図示省略)がI/Oインタフェース120に結合されている。このような周辺装置は、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、ジョイスティック又は他のタイプのゲームコントローラ、メディア記録デバイス、外部記憶装置、ネットワークインタフェースカード等を含むが、これらに限定されない。ネットワークインタフェース135は、ネットワークを介してネットワークメッセージを送受信するために使用される。
様々な実施形態では、コンピューティングシステム100は、コンピュータ、ラップトップ、モバイルデバイス、ゲームコンソール、サーバ、ストリーミングデバイス、ウェアラブルデバイス、又は、様々な他のタイプのコンピューティングシステム若しくはコンピューティングデバイスである。コンピューティングシステム100のコンポーネントの数は、実施形態によって異なることに留意されたい。例えば、他の実施形態では、図1に示す数よりも多い又は少ないコンポーネントが存在する。他の実施形態では、コンピューティングシステム100は、図1に示されていない他のコンポーネントを含むことにも留意されたい。さらに、他の実施形態では、コンピューティングシステム100は、図1に示す以外の方法で構成される。
図2を参照すると、2の累乗のメモリ構成のアドレス空間マッピング200の一実施形態が示されている。一実施形態では、クライアント205A~205Dは、2の累乗の数のメモリチャネル210A~210Dに亘って256バイトのストライドを使用しメモリ内のデータにアクセスする。この説明のために、クライアント205A~205Dは、通常、1つのメモリチャネル内で長さ1キロバイト(KB)のバーストでデータにアクセスすることが想定されており、これは、マッピング200のためにメモリにアクセスするための効率的な方法である。効率的なバーストを得るためにアドレス指定を跨ぐ計算は、2の累乗のメモリ構成を有するシステムでは簡単である。メモリバースト領域は、クライアント205A下のメモリチャネル210Aを表す列の最初の4つのブロックの周りの太字のアウトラインで強調表示されている。一実施形態では、クライアント205A~205Dは、レンダリングバックエンドである。他の実施形態では、クライアント205A~205Dは、他のタイプのグラフィックエンジンである。さらなる実施形態では、クライアント205A~205Dは、他のタイプの非グラフィックエンジンである。他の実施形態では、4以外の他の数のクライアントをメモリチャネル210A~210Dにマッピングすることができる。
マッピング200は、2の累乗のメモリ構成のためのクライアント205A~205Dと、物理メモリアドレスと、メモリチャネル210A~210Dとの間のマッピングの一実施形態を示す。一実施形態では、各クライアント205A~205Dは、対応するメモリチャネル210A~210Dへの1対1のマッピングを有する。この実施形態のために、メモリアドレス空間は、サイズが256バイトのブロックでマッピングされると想定される。他の実施形態では、メモリアドレス空間は、他のサイズのブロックでマッピングされる。例えば、一実施形態では、クライアント205Aのアドレス0x0、0x400、0x800、0xC0について強調表示された4つのブロックは、クライアント205Aによる単一のメモリチャネル210Aへの効率的なアクセスバーストを表す。各クライアント205A~205Dの各々の別のメモリチャネル210A~210Dへのマッピングは、メモリへの効率的なアクセスを可能にする単純な構成である。しかしながら、以下の図に示すように、2の非累乗のメモリ構成は、通常、メモリへの非効率的なアクセスをもたらす。
図3を参照すると、2の非累乗のメモリ構成を有するシステムのアドレス空間マッピング300の一実施形態が示されている。クライアント305A~305Dのメモリチャネル310A~310Cへのマッピング300は、2の非累乗のメモリ構成を有する従来技術のシステムの典型的な実施形態を示す。メモリチャネル310A~310Cへのデータブロックのマッピングは、図3の右側に示すブロックの陰影によって示されている。したがって、陰影のないクリアなブロックがメモリチャネル310Aにマッピングされ、ドットを有するブロックがメモリチャネル310Bにマッピングされ、斜線を有するブロックがメモリチャネル310Cにマッピングされる。このマッピング300は、クライアント305A~305Dによるメモリチャネル310A~310Cへの非効率なアクセスをもたらす。例えば、メモリチャネル310Aについて強調表示されたブロックは、データの最初の1キロバイトがどのようにしてメモリチャネル310Aにマッピングされるかを示す。したがって、メモリチャネル310Aにマッピングされた最初の1キロバイトのデータは、効率的なバーストでアクセスできない。
図4を参照すると、2の非累乗のメモリ構成を有するシステムのアドレス空間マッピング400の別の実施形態が示されている。マッピング400は、2の非累乗のメモリ構成を有するシステムの(図3の)マッピング300と比較して改善されたマッピングである。マッピング400の改善は、各クライアント405A~405Dが、同じメモリチャネルへの4つのブロックに亘るアクセスを実行する能力を指す。例示的なシステム構成では3つのメモリチャネル410A~410Cが存在するので、各メモリチャネル410A~410Cは、4つの連続するブロックについてクライアント405Dに交互にマッピングされる。マッピング300と同様に、データブロックのメモリチャネル410A~410Cへのマッピング400は、図4の右側に示すブロックの異なる陰影によって示される。
マッピング400に示すように、クライアント405A~405Cが4ブロックのチャンクで3つのメモリチャネル410A~410Cにマッピングされた後、クライアント405Dは、アドレス0x300、0x700、0xB00、0xF00の4つのブロックについてメモリチャネル410Aにマッピングされる。次に、次の4ブロックのチャンクのセットが、クライアント405A~405Cからメモリチャネル410A~410Cへ通常のパターンでマッピングされる。これに続いて、クライアント405Dが、アドレス0x1300、0x1700、0x1B00、0x1F00の4つのブロックについてメモリチャネル410Bにマッピングされる。最後に、次の4ブロックのチャネルのセットが、クライアント405A~405Cのメモリチャネル410A~410Cに通常のパターンでマッピングされた後、クライアント405Dは、アドレス0x2300、0x2700、0x2B00、0x2F00の次の4つのブロックについてメモリチャネル410Cにマッピングされる。クライアント405Dが、メモリチャネル410A~410Cを交互に繰り返すことによってこのマッピングパターンを継続するが、クライアント405A~405Cは、それぞれ1対1でメモリチャネル410A~410Cにでマッピングされ続ける。このパターンは、メモリアドレス空間の残りの部分についても続行される。マッピング400が、3つのメモリチャネル及び4つのクライアントのための効率的なマッピングの一例を表すことに留意されたい。マッピング400は、他の数のクライアント及び/又は他の2の非累乗の数のメモリチャネルを有する他のシステムとともに使用されるように調整可能であることを理解されたい。
図5を参照すると、メモリコントローラ505を有するメモリサブシステム500の一実施形態のブロック図が示されている。一実施形態では、メモリコントローラ505は、レジスタ520と、再マッピングユニット525と、を少なくとも含む。また、メモリコントローラ505は、図を不明瞭にすることを回避するために図示されていない他のコンポーネント及び/又は回路を含むことに留意されたい。一実施形態では、レジスタ520は、アクティブメモリチャネルの数520Aと、総メモリチャネルの数520Bと、クライアントの数520Cと、ストライドサイズ520Dと、を示す値を含む。他の実施形態では、レジスタ520は、他の数及び/又はタイプの値を含む。さらなる実施形態では、値520A~520Dは、他の場所に記憶される。
一実施形態では、再マッピングユニット525は、物理アドレス510を受信し、物理アドレス510を正規化アドレス530に変換する。一実施形態では、再マッピングは、レジスタ520によって示されたアクティブメモリチャネル540A~540Nの数に基づいて実行される。この再マッピングは、メモリチャネル540A~540Nを介してメモリデバイス550A~550Nにアクセスする場合により高い効率を達成するのに役立つ。また、再マッピングユニット525は、本明細書では「制御ユニット」と呼ばれる場合もあることに留意されたい。メモリチャネル540A~540Nは、任意の数「N」のメモリチャネルを表し、「N」は、2の非累乗の整数である。各メモリチャネル540A~540Nは、対応するメモリモジュール550A~550Nに接続する。各メモリモジュール550A~550Nは、任意の適切なタイプのメモリ技術(例えば、DRAM)及び任意の数のメモリデバイスを使用して実装される。
図6を参照すると、メモリサブシステム600の別の実施形態のブロック図が示されている。一実施形態では、制御ユニット605は、レジスタ620と、再マッピングユニット625と、を少なくとも含む。制御ユニット605は、図を不明瞭にすることを回避するために図示されていない他のコンポーネント及び/又は回路を含むことに留意されたい。一実施形態では、制御ユニット605は、入力/出力(I/O)ファブリックユニット内に配置されている。他の実施形態では、制御ユニット605は、他の場所に配置されている。一実施形態では、再マッピングユニット625は、メモリ要求の物理アドレス610を受信し、物理アドレス610を、アクティブメモリチャネル640A~640Nの数に基づいて正規化アドレス630に変換する。再マッピングは、レジスタ620によって示されたアクティブメモリチャネル640A~640Nの数に基づいて実行される。この再マッピングは、メモリチャネル640A~640Nを介してメモリモジュール650A~650Nにアクセスする場合により高い効率を達成するのに役立つ。メモリチャネル640A~640Nは、任意の数「N」のメモリチャネルを表し、「N」は、2の非累乗の整数である。
図7を参照すると、メモリチャネルを選択し、物理メモリアドレスを正規化アドレスに変換するための擬似コード700の一実施形態が示されている。擬似コード700のために、メモリサブシステム内に3つのアクティブメモリチャネルが存在すると想定されている。或いは、別の言い方をすると、擬似コード700のために、物理メモリチャネルの総数に対するメモリサブシステム内のアクティブメモリチャネルの数の比率は、比率の減少後に3の分子を有すると想定されている。したがって、この実施形態では、擬似コード700の第1の行は、物理アドレスビット[11:10]が3に等しいかどうかをチェックし、3は、アクティブメモリチャネルの数である。一実施形態では、「アクティブメモリチャネル」という用語は、完全にポピュレートされ(fully-populated)、完全に機能するメモリモジュール又はメモリデバイスに接続されたアクティブメモリチャネルとして定義される。一方、「非アクティブメモリチャネル」は、完全にポピュレートされていないメモリモジュールに結合されたメモリチャネルとして定義される。
擬似コード700の第1の行は、物理アドレスビット[11:10]が3に等しいかどうかに応じて、mod_IDビット[1:0]を、3を法とする物理アドレスビット[43:16]又は物理アドレスビット[11:10]の何れかに設定する。擬似コード700の第2の行では、チャネルIDビット[3:0]は、mod_IDビット[1:0]と物理アドレスビット[9:8]との連結に設定される。チャネルIDビット[3:0]は、受信したメモリ要求をルーティングするメモリチャネルを選択し、この特定の実施形態の場合には、メモリチャネルの最大数は16である。他の実施形態では、チャネルIDビットの数は、サポートされているメモリチャネルの最大数に従って変化し得る。
ビットアレイupper_bits[43:16]は、物理アドレス[11:10]が3に等しいかどうかに応じて、変数(add_space-2)だけシフトアップされた値3又は0の何れかを記憶する。一実施形態では、変数addr_spaceは、特定のサイズとして指定された所定の単位における、システム内のアドレス指定可能な物理メモリの総量に等しい。一実施形態では、所定の単位のサイズは64KBである。他の実施形態では、所定の単位は、様々な他のサイズの何れかである。正規化アドレスのビット[43:12]は、ビットアレイupper_bits[43:16]と物理アドレスビット[43:16]との間のビット毎のOR演算の結果と等しく設定される。正規化アドレスのビット[11:0]は、物理アドレスビット[15:12]と物理アドレスビット[7:0]の連結と等しく設定される。例示的な擬似コード700は、特定の実施形態で使用可能なコードを示すことを理解されたい。擬似コード700で使用される様々なビットアレイ及び物理アドレス内の特定のビットのサイズは、他の実施形態の場合に変化し得る。使用される様々なビットアレイ及び物理アドレスの特定のビットのサイズは、総アドレス空間、ストライドサイズ、ブロックサイズ、アクティブメモリチャネルの数、物理メモリチャネルの数等に従って変化し得る。
図8を参照すると、メモリ要求に使用するためのマッピング方式及びアドレス変換方式のタイプを決定するための方法800の一実施形態が示されている。説明のために、この実施形態のステップ及び図9のステップは、順番に示されている。しかしながら、説明する方法の様々な実施形態では、説明する要素の1つ以上が、同時に実行されてもよいし、図示した順序と異なる順序で実行されてもよいし、完全に省略されてもよいことに留意されたい。また、他の追加の要素も必要に応じて実行される。本明細書で説明する様々なシステム又は装置のいずれも、方法800を実施するように構成されている。
制御ユニットは、レジスタからメモリ構成値を取得し、メモリ構成値は、システムが2の非累乗の数のメモリチャネルを有するかどうかを示す(ブロック805)。一実施形態では、ブロック805は、システムの電源投入時に実行される。他の実施形態では、メモリ構成値は、レジスタ以外の他の場所に記憶されている。
前記値が、メモリチャネルの数が2の非累乗の数であることを示す第1の値である場合(条件ブロック810:「yes」)、制御ユニットは、第1のマッピングを使用してメモリ要求をメモリチャネルにマッピングする(ブロック815)。また、制御ユニットは、システムが2の非累乗のメモリ構成を有する場合、第1の変換方式を使用して物理アドレスを正規化アドレスに変換する(ブロック820)。第1のマッピング及び第1の変換方式の一例については、(図9の)方法900に関連する以下の説明においてより詳細に説明する。
前記値が、メモリチャネルの数が2の累乗の数であることを示す第2の値である場合(条件ブロック810:「no」)、制御ユニットは、第2のマッピングを使用してメモリ要求をメモリチャネルにマッピングし、第2のマッピングは第1のマッピングと異なる(ブロック825)。また、制御ユニットは、システムが2の累乗のメモリ構成を有する場合、第2の変換方式を使用して物理アドレスを正規化アドレスに変換し、第2の変換方式は第1の変換方式と異なる(ブロック830)。第1のマッピング及び第1の変換方式の一例は、図2に関連して説明されている。ブロック820,830の後に、制御ユニットは、メモリ要求を、選択されたマッピング方式によって示され、選択された変換方式を使用して物理アドレスから変換された正規化アドレスを有するメモリチャネル上のメモリに転送する(ブロック835)。ブロック835の後に、方法800は終了する。
図9を参照すると、2の非累乗のメモリ構成の所定の物理アドレスについてメモリチャネルを選択するための方法900の一実施形態が示されている。制御ユニットは、物理メモリチャネルの総数からアクティブメモリチャネルの数を決定する(ブロック905)。例えば、いくつかのメモリサブシステムでは、全ての物理メモリチャネルが占有及び/又はアクティブであるわけではない。また、「アクティブメモリチャネル」は、「常駐メモリチャネル」と呼ばれる場合もあることに留意されたい。一実施形態では、制御ユニットは、メモリコントローラ内に配置されている。他の実施形態では、制御ユニットは、他の場所に配置されている。
制御ユニットは、物理メモリチャネルの総数に対するアクティブメモリチャネルの数の比率を、第1の数対第2の数に減少させる(ブロック910)。比率を減少させることは、各数量を最大公約数で除算することを含む。比率は、比率の数が最小の整数である場合に小さくなる。例えば、6つのアクティブメモリ及び8つの物理メモリチャネルがある場合、制御ユニットは、この比率を3対4に低減する。比率を減少することができない場合、第1の数は、アクティブメモリチャネルの数と等しくなり、第2の数は、物理メモリチャネルの総数と等しくなる。ブロック905~910は、システム起動時等のように事前に実行可能であることに留意されたい。したがって、ブロック905~910は、実施形態に応じて、方法900の一部として又は方法900とは別に実行することができる。
後に、制御ユニットは、メモリ要求を受信する(ブロック915)。メモリ要求を受信したことに応じて、制御ユニットは、メモリ要求の物理アドレスビットの第1のサブセットが第1の数以上であるかどうかを判別する(ブロック920)。一実施形態では、物理アドレスビットの第1のサブセットは、物理アドレスとメモリチャネルとの間のマッピングを決定するビットの少なくとも一部である。ビットの第1のサブセットが第1の数以上である場合(条件ブロック925:「yes」)、制御ユニットは、第1の数を法とする物理アドレスビットの第2のサブセットに等しい第3の数を計算する(ブロック930)。言い換えると、第3の数は、物理アドレスビットの第2のサブセットによって表される値を第1の数で除算した後の余りに等しい。一実施形態では、物理アドレスビットの第2のサブセットは、物理アドレスビット[43:16]である。他の実施形態では、物理アドレスビットの第2のサブセットは、ブロックサイズ、ストライドサイズ、総アドレス空間サイズ及び/又は他の要因に依存する、物理アドレスビットの他の範囲である。別の実施形態では、ブロック930でのモジュロ演算は、元の物理アドレスビットではなく、物理アドレスビットの変換に対して実行される。本明細書で使用する場合、物理アドレスビットの「変換」は、アドレスビットのシフト、代替値へのアドレスビットのマッピング、又は、アドレスビットの何等かの他の数学的操作を指す。
次に、制御ユニットは、物理アドレスビットの第3のサブセットと連結された第3の数を使用して、メモリ要求のためのメモリチャネルを選択する(ブロック935)。制御ユニットは、物理アドレスビットの第1のサブセットの代わりに第3の数を使用することに留意されたい。物理アドレスビットの第1のサブセットは、従来のアプローチにおいてメモリチャネルを選択するために使用される。一実施形態では、物理アドレスビットの第3のサブセットは、物理アドレスビット[9:8]である。また、制御ユニットは、第5の数だけシフトアップ(つまり、左にシフト)された物理アドレスビットの第1のサブセットに等しい第4の数を計算し、第5の数は、アドレス空間のサイズに基づいて計算される(ブロック940)。言い換えると、物理アドレスビットの第1のサブセットは、第5の数に等しいビット数だけ左にシフトされる。事実上、これは、ビットの第1のサブセットが2で乗算されて第5の数乗になる。別の実施形態では、制御ユニットは、第5の数だけシフトアップされた物理アドレスビットの第1のサブセットの変換に等しいものとして第4の数を計算する。次に、制御ユニットは、正規化アドレスビットの第1のサブセットを、物理アドレスビットの第2のサブセットに等しいものとして計算し、上位ビットが物理アドレスビットの第1のサブセットによって置き換えられる(ブロック945)。次に、制御ユニットは、正規化アドレスビットの第2のサブセットを、物理アドレスビットの第4のサブセットと物理アドレスビットの第5のサブセットとの連結に等しいものとして計算する(ブロック950)。一実施形態では、物理アドレスビットの第4のサブセットは、物理アドレスビット[15:12]であり、物理アドレスビットの第5のサブセットは、物理アドレスビット[7:0]である。別の実施形態では、物理アドレスビットの第4のサブセットは、物理アドレスビット[15:13]である。他の実施形態では、物理アドレスビットの第4のサブセット及び第5のサブセットは、ブロックサイズ、ストライドサイズ、総アドレス空間サイズ及び/又は他の要因に依存する、物理アドレスビットの他の範囲である。
ビットの第1のサブセットが第1の数未満である場合(条件ブロック925:「no」)、制御ユニットは、従来のアプローチを使用して、メモリチャネルを選択し、メモリ要求の物理アドレスに対する正規化アドレスを生成する(ブロック955)。ブロック950,955の後に、メモリコントローラは、正規化アドレスを用いて、選択されたメモリチャネル上のメモリにアクセスして、メモリ要求を満たす(ブロック960)。ブロック960の後に、方法900は終了する。
図10を参照すると、メモリチャネルを選択し、物理メモリアドレスを正規化アドレスに変換するための擬似コード1000の別の実施形態が示されている。擬似コード1000のために、メモリサブシステムの8つの物理メモリチャネルのうち5つのアクティブメモリチャネルが存在すると想定される。或いは、別の言い方をすれば、擬似コード1000のために、物理メモリチャネルの総数に対するメモリサブシステム内のアクティブメモリチャネルの数の比率は、この比率の減少後に、分子5及び分母8を有すると想定される。したがって、この実施形態では、擬似コード1000の第1の行は、物理アドレスビット[12:10]が5以上であるかどうかをチェックし、5は、アクティブメモリチャネルの数である。
擬似コード1000の第1の行は、remap_IDビット[2:0]を、物理アドレスビット[43:16]を3で乗算した値と物理アドレスビット[12:10]との合計の5を法とする値に等しく設定する。擬似コード1000の第2の行は、物理アドレスビット[12:10]が5以上であるかどうかに応じて、mod_IDビット[2:0]を、remap_IDビット[2:0]又は物理アドレスビット[12:10]に等しく設定する。擬似コード1000の第3の行では、チャネルIDビット[4:0]は、mod_IDビット[2:0]と物理アドレスビット[9:8]との連結に等しく設定される。チャネルIDビット[4:0]は、受信したメモリ要求をルーティングするメモリチャネルを選択し、この特定の実施形態の場合、メモリチャネルの最大数は32である。他の実施形態では、チャネルIDビットの数は、サポートされるメモリチャネルの最大数に従って変化し得る。
ビットアレイupper_bits[43:16]は、変数(addr_space-3)だけシフトアップされた物理アドレスビット[12:10]の値に等しく設定される。ビットアレイlower_bits[43:16]は、物理アドレスビット[43:16]と、変数(addr_space-3)だけシフトアップされた1から1を減じた値との間のビット毎のAND演算の出力に等しく設定される。正規化アドレスのビット[43:11]は、物理アドレスビット[12:10]が5以上であるかどうかに応じて、ビットアレイupper_bitsとビットアレイlower_bitsとの間のビット毎のOR演算の結果、又は、物理アドレスビット[43:16]に等しく設定される。正規化アドレスのビット[10:0]は、物理アドレスビット[15:13]と物理アドレスビット[7:0]との連結に等しく設定される。例示的な擬似コード1000が、特定の一実施形態で使用可能なコードを示すことを理解されたい。擬似コード1000内で使用される様々なビットアレイ及び物理アドレス内の特定のビットのサイズは、他の実施形態の場合に変化し得る。使用される様々なビットアレイ及び物理アドレス内の特定のビットのサイズは、総アドレス空間、ストライドサイズ、ブロックサイズ、アクティブメモリチャネルの数、物理メモリチャネルの数等に従って変化し得る。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、本明細書に記載された方法及び/又はメカニズムを実施する。例えば、汎用プロセッサ又は専用プロセッサによって実行可能なプログラム命令が考えられる。様々な実施形態において、そのようなプログラム命令は、高水準プログラミング言語によって表すことができる。他の実施形態では、プログラム命令は、高水準プログラミング言語からバイナリ、中間又は他の形式にコンパイルされてもよい。或いは、ハードウェアの動作又は設計を記述するプログラム命令を書き込むことができる。このようなプログラム命令を、C等の高水準のプログラミング言語によって表すことができる。或いは、Verilog等のハードウェア設計言語(HDL)を使用することができる。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。一般的に、このようなコンピューティングシステムは、少なくとも1つのメモリと、プログラム命令を実行することができる1つ以上のプロセッサと、を含む。
上記の実施形態は、実装態様の非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に認識されると、当業者には多数の変形及び修正が明らかになるであろう。以下の特許請求の範囲は、このような変形及び修正の全てを包含すると解釈されることが意図されている。

Claims (20)

  1. システムであって、
    1つ以上のクライアントと、
    総メモリチャネルに対するアクティブメモリチャネルの第1の比率を有するメモリサブシステムと、を備え、
    前記メモリサブシステムは、
    前記第1の比率を、第1の数対第2の数の第2の比率に低減することと、
    前記1つ以上のクライアントのうち何れかのクライアントからメモリ要求を受信することと、
    前記メモリ要求の物理アドレスビットの第1のサブセットが前記第1の数以上の値を有すると判別したことに応じて、
    前記第1の数を法とする前記物理アドレスビットの第2のサブセットに対応する値に基づいて、第3の数を計算することと、
    前記第3の数と、前記物理アドレスビットの第3のサブセットと、の連結を使用して、前記複数のメモリチャネルの中からメモリチャネルを選択することと、
    選択されたメモリチャネルに対する前記メモリ要求を完了することと、
    を行うように構成されている、
    システム。
  2. 前記メモリサブシステムは、前記メモリ要求の前記物理アドレスビットの第1のサブセットが前記第1の数以上の値を有すると判別したことに応じて、
    第5の数だけシフトアップされた前記物理アドレスビットの第1のサブセットに基づく第4の数を計算することであって、前記第5の数は、前記メモリサブシステムのアドレス空間のサイズに基づいて計算される、ことと、
    正規化アドレスビットの第1のサブセットを、前記物理アドレスビットの第2のサブセットに等しいものとして計算することであって、上位ビットが前記物理アドレスビットの第1のサブセットで置き換えられる、ことと、
    正規化アドレスビットの第2のサブセットを、物理アドレスビットの第4のサブセットと物理アドレスビットの第5のサブセットとの連結に等しいものとして計算することと、
    前記選択されたメモリチャネルにおいて正規化アドレスに対する前記メモリ要求を完了することであって、前記正規化アドレスは、前記正規化アドレスビットの第1のサブセットと、前記正規化アドレスビットの第2のサブセットと、を含む、ことと、
    をさらに行うように構成されている、
    請求項1のシステム。
  3. 前記メモリサブシステムは、2の非累乗の数のアクティブメモリチャネルを有する、
    請求項のシステム。
  4. 前記物理アドレスビットの第1のサブセットは、前記物理アドレスビットの第3のサブセットに隣接している、
    請求項のシステム。
  5. 前記物理アドレスビットの第4のサブセットは、前記物理アドレスビットの第1のサブセットに隣接している、
    請求項のシステム。
  6. 前記物理アドレスビットの第3のサブセットは、前記物理アドレスビットの第5のサブセットに隣接している、
    請求項のシステム。
  7. 前記1つ以上のクライアントはグラフィックエンジンであり、前記メモリ要求は、ディスプレイに表示されるピクセルをレンダリングするためのアプリケーションの一部として生成される、
    請求項1のシステム。
  8. 方法であって、
    第1のデバイスの制御ユニットによって、メモリサブシステム内の物理メモリチャネルの総数のうちアクティブメモリチャネルの数を決定することと、
    前記物理メモリチャネルの総数に対する前記アクティブメモリチャネルの数の比率を、第1の数対第2の数に低減することと、
    受信したメモリ要求の物理アドレスビットの第1のサブセットが前記第1の数以上であると判別したことに応じて、
    前記第1の数を法とする物理アドレスビットの第2のサブセットに対応する値に基づいて、第3の数を計算することと、
    前記第3の数と、物理アドレスビットの第3のサブセットと、の連結を使用して、複数のメモリチャネルの中からメモリチャネルを選択することと、
    選択されたメモリチャネルに対する前記メモリ要求を完了することと、を含む、
    方法。
  9. 前記メモリ要求の前記物理アドレスビットの第1のサブセットが前記第1の数以上であると判別したことに応じて、
    第5の数だけシフトアップされた前記物理アドレスビットの第1のサブセットに基づく第4の数を計算することであって、前記第5の数は、前記メモリサブシステムのアドレス空間のサイズに基づいて計算される、ことと、
    正規化アドレスビットの第1のサブセットを、前記物理アドレスビットの第2のサブセットに等しいものとして計算することであって、上位ビットが前記物理アドレスビットの第1のサブセットで置き換えられる、ことと、
    正規化アドレスビットの第2のサブセットを、物理アドレスビットの第4のサブセットと物理アドレスビットの第5のサブセットとの連結に等しいものとして計算することと、
    前記選択されたメモリチャネルにおいて正規化アドレスに対する前記メモリ要求を完了することであって、前記正規化アドレスは、前記正規化アドレスビットの第1のサブセットと、前記正規化アドレスビットの第2のサブセットと、を含む、ことと、をさらに含む、
    請求項8の方法。
  10. 前記メモリサブシステムは、2の非累乗の数のアクティブメモリチャネルを有する、
    請求項の方法。
  11. 前記物理アドレスビットの第1のサブセットは、前記物理アドレスビットの第3のサブセットに隣接している、
    請求項の方法。
  12. 前記物理アドレスビットの第4のサブセットは、前記物理アドレスビットの第1のサブセットに隣接している、
    請求項の方法。
  13. 前記物理アドレスビットの第3のサブセットは、前記物理アドレスビットの第5のサブセットに隣接している、
    請求項の方法。
  14. 前記メモリ要求を、ディスプレイに表示されるピクセルをレンダリングするためのアプリケーションの一部として生成することをさらに含む、
    請求項8の方法。
  15. 装置であって、
    制御ユニットと、
    複数のメモリチャネルを備えるメモリサブシステムと、を備え、
    前記制御ユニットは、
    前記メモリサブシステム内の物理メモリチャネルの総数のうちアクティブメモリチャネルの数を決定することと、
    前記物理メモリチャネルの総数に対する前記アクティブメモリチャネルの数の比率を、第1の数対第2の数に低減することと、
    受信したメモリ要求の物理アドレスビットの第1のサブセットが前記第1の数以上であると判別したことに応じて、
    前記第1の数を法とする物理アドレスビットの第2のサブセットに基づいて、第3の数を計算することと、
    前記第3の数と、物理アドレスビットの第3のサブセットと、の連結を使用して、前記複数のメモリチャネルの中からメモリチャネルを選択することと、
    選択されたメモリチャネルに対する前記メモリ要求を完了することと、
    を行うように構成されている、
    装置。
  16. 前記制御ユニットは、前記メモリ要求の物理アドレスビットの第1のサブセットが前記第1の数以上であると判別したことに応じて、
    第5の数だけシフトアップされた前記物理アドレスビットの第1のサブセットに基づく第4の数を計算することであって、前記第5の数は、前記メモリサブシステムのアドレス空間のサイズに基づいて計算される、ことと、
    正規化アドレスビットの第1のサブセットを、前記物理アドレスビットの第2のサブセットに等しいものとして計算することであって、上位ビットが前記物理アドレスビットの第1のサブセットで置き換えられる、ことと、
    正規化アドレスビットの第2のサブセットを、物理アドレスビットの第4のサブセットと物理アドレスビットの第5のサブセットとの連結に等しいものとして計算することと、
    前記選択されたメモリチャネルにおいて正規化アドレスに対する前記メモリ要求を完了することであって、前記正規化アドレスは、前記正規化アドレスビットの第1のサブセットと、前記正規化アドレスビットの第2のサブセットと、を含む、ことと、
    をさらに行うように構成されている、
    請求項15の装置。
  17. 前記メモリサブシステムは、2の非累乗の数のアクティブメモリチャネルを有する、
    請求項15の装置。
  18. 前記物理アドレスビットの第1のサブセットは、前記物理アドレスビットの第3のサブセットに隣接している、
    請求項15の装置。
  19. 前記物理アドレスビットの第4のサブセットは、前記物理アドレスビットの第1のサブセットに隣接している、
    請求項16の装置。
  20. 前記物理アドレスビットの第3のサブセットは、前記物理アドレスビットの第5のサブセットに隣接している、
    請求項16の装置。
JP2021531209A 2018-12-03 2019-12-02 2の非累乗のメモリ構成 Active JP7187698B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/208,139 US10642734B1 (en) 2018-12-03 2018-12-03 Non-power of two memory configuration
US16/208,139 2018-12-03
PCT/US2019/064017 WO2020117678A1 (en) 2018-12-03 2019-12-02 Non-power of two memory configuration

Publications (2)

Publication Number Publication Date
JP2022510970A JP2022510970A (ja) 2022-01-28
JP7187698B2 true JP7187698B2 (ja) 2022-12-12

Family

ID=69005938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021531209A Active JP7187698B2 (ja) 2018-12-03 2019-12-02 2の非累乗のメモリ構成

Country Status (6)

Country Link
US (1) US10642734B1 (ja)
EP (1) EP3891615A1 (ja)
JP (1) JP7187698B2 (ja)
KR (1) KR20210088694A (ja)
CN (1) CN113168376A (ja)
WO (1) WO2020117678A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2604153A (en) * 2021-02-26 2022-08-31 Advanced Risc Mach Ltd Data Processors

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150089168A1 (en) 2013-09-20 2015-03-26 Advanced Micro Devices, Inc. Nested channel address interleaving
JP2016085541A (ja) 2014-10-23 2016-05-19 京セラドキュメントソリューションズ株式会社 メモリーコントローラー
US20180019006A1 (en) 2016-07-15 2018-01-18 Advanced Micro Devices, Inc. Memory controller with flexible address decoding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941438B2 (en) * 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
WO2008040028A2 (en) 2006-09-28 2008-04-03 Virident Systems, Inc. Systems, methods, and apparatus with programmable memory control for heterogeneous main memory
US8914568B2 (en) 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
KR101572403B1 (ko) 2011-12-22 2015-11-26 인텔 코포레이션 메모리 채널 셧다운에 의한 전력 절약
US9734079B2 (en) 2013-06-28 2017-08-15 Intel Corporation Hybrid exclusive multi-level memory architecture with memory management
CN107180001B (zh) * 2016-03-10 2020-02-21 华为技术有限公司 访问动态随机存储器dram的方法和总线

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150089168A1 (en) 2013-09-20 2015-03-26 Advanced Micro Devices, Inc. Nested channel address interleaving
JP2016085541A (ja) 2014-10-23 2016-05-19 京セラドキュメントソリューションズ株式会社 メモリーコントローラー
US20180019006A1 (en) 2016-07-15 2018-01-18 Advanced Micro Devices, Inc. Memory controller with flexible address decoding
JP2019520660A (ja) 2016-07-15 2019-07-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 柔軟なアドレスデコード機能を備えるメモリコントローラ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Takuya Toyoshima et al,An Application-adaptive Data Allocation Method for Multi-channel Memory,[online],米国,IEEE,2017年06月15日,pp. 1-3,[検索日:2022年6月24日], インターネット<https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7946381>,ISSN:2473-4683

Also Published As

Publication number Publication date
JP2022510970A (ja) 2022-01-28
EP3891615A1 (en) 2021-10-13
KR20210088694A (ko) 2021-07-14
WO2020117678A1 (en) 2020-06-11
US10642734B1 (en) 2020-05-05
CN113168376A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
US8866830B2 (en) Memory controller interface for micro-tiled memory access
US20170255552A1 (en) Systems and methods for dynamic random access memory (dram) sub-channels
US11513689B2 (en) Dedicated interface for coupling flash memory and dynamic random access memory
JP2016509280A (ja) グラフィックスプロセッシングユニットベースのメモリ転送動作を行うためのマルチモードメモリアクセス技法
US10048899B2 (en) Storage device, computing system including the storage device, and method of operating the storage device
JPWO2007069506A1 (ja) 記憶領域割当システム及び方法と制御装置
CN110582745A (zh) 存储器装置及可促进张量存储器存取的方法
CN108139989B (zh) 配备有存储器中的处理和窄访问端口的计算机设备
TW201714090A (zh) 記憶體裝置、記憶體定址方法與包括有形儲存媒體的物品
CN111831220B (zh) 用于存储器写入操作的设备、方法和存储器模块
US20140160876A1 (en) Address bit remapping scheme to reduce access granularity of dram accesses
US10019358B2 (en) Bank address remapping to load balance memory traffic among banks of memory
JP7187698B2 (ja) 2の非累乗のメモリ構成
CN108701085B (zh) 用于固态装置的多个地址寄存器的设备及方法
KR20200011136A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법
US20240168896A1 (en) Memory controller, electric system including the same and method of controlling memory access
US11775431B2 (en) Cache memory with randomized eviction
US11960410B2 (en) Unified kernel virtual address space for heterogeneous computing
US11782830B2 (en) Cache memory with randomized eviction
CN113808000B (zh) 数据管理装置及数据管理方法
CN106708747A (zh) 一种存储器切换方法及装置
CN112835513A (zh) 控制数据读写装置与方法
JP2018010338A (ja) 回路装置及び電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221024

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: 20221108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221130

R150 Certificate of patent or registration of utility model

Ref document number: 7187698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150