JP6980912B2 - 3d積層メモリにおけるスウィズリング - Google Patents

3d積層メモリにおけるスウィズリング Download PDF

Info

Publication number
JP6980912B2
JP6980912B2 JP2020522320A JP2020522320A JP6980912B2 JP 6980912 B2 JP6980912 B2 JP 6980912B2 JP 2020522320 A JP2020522320 A JP 2020522320A JP 2020522320 A JP2020522320 A JP 2020522320A JP 6980912 B2 JP6980912 B2 JP 6980912B2
Authority
JP
Japan
Prior art keywords
memory
die
stacked
address
access
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
JP2020522320A
Other languages
English (en)
Other versions
JP2021501435A (ja
JP2021501435A5 (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 JP2021501435A publication Critical patent/JP2021501435A/ja
Publication of JP2021501435A5 publication Critical patent/JP2021501435A5/ja
Application granted granted Critical
Publication of JP6980912B2 publication Critical patent/JP6980912B2/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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
    • 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/0646Configuration or reconfiguration
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0611Improving I/O performance in relation to response time
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0658Controller construction arrangements
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Description

三次元(3D)回路集積化は、多くの場合、水平及び/又は垂直に積層されたデバイスを含み、積層ダイ間の通信を改善し、積層デバイスによって占有される面積を低減する。例えば、メモリ素子の結合層(3D積層メモリ又は積層メモリと呼ばれる)をメモリデバイスに利用することができる。3D集積化によりプロセッサとメモリとの間のいくつかの相互接続が、3D集積化によるオフチップのピンカウントによってもはや制約されなくなると、複数のスレッドが積層メモリに並列にアクセスして、より高い帯域幅を様々な計算動作に提供することができる。
添付図面を参照することによって本開示をより良く理解することができ、その多数の特徴及び利点が当業者に明らかになる。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
いくつかの実施形態による、積層メモリにおけるインデックススウィズリングを使用する処理システムのブロック図である。 いくつかの実施形態による、不均衡な熱生成を伴う例示的な積層メモリ構成のブロック図である。 いくつかの実施形態による、熱均衡のためのアドレススウィズリングを使用する例示的な積層メモリ構成のブロック図である。 いくつかの実施形態による、熱均衡のためのアドレススウィズリングを使用する別の例示的な積層メモリ構成のブロック図である。 いくつかの実施形態による、積層メモリのアドレススウィズリングの方法のフロー図である。
メモリの帯域幅及び遅延は、処理システムにおける性能のボトルネックになることがある。これらの性能要因は、積層メモリを使用することによって改善され得る。積層メモリは、例えば、スルーシリコンビア(TSV)を用いて積層メモリの複数の層を相互接続することによって、帯域幅の増加を提供する。しかしながら、積層メモリに関連する熱の問題は、多くの場合、3Dメモリ積層体の許容可能な最大高さにおける制限要因であり、これにより、設けられたメモリチップの適切な動作に悪影響を及ぼすだけでなく、処理ユニットに利用可能なメモリ容量が制限される。例えば、集積回路内のプロセッサコアは、通常動作中に電力を消費して熱を生成するが、この熱は、隣接するメモリデバイスの性能に悪影響を及ぼす。高温になると、リフレッシュサイクルが頻繁になり、これにより消費電力が増加するので、メモリの性能が低下する。積層メモリの積層配置は、複数の熱生成ダイが互いに近接し、ヒートシンクを共有する必要があるので、放熱問題をさらに悪化させる。メモリ、特に3D積層メモリは、信頼性が高く、予測可能な動作のための温度調節が有効な温度範囲内で動作する。回路コンポーネント/メモリの高密度化を可能にするためのチップサイズの縮小及びメモリダイの積層は、プロセッサの安全で効率的な動作のための温度を維持するという課題をさらに増大させる。したがって、3D積層メモリからの放熱を改善すると、メモリの温度を低下させることによって、メモリの信頼性が改善される。
図1〜図5は、積層メモリにおけるアドレススウィズリングを使用する技術を示す図である。様々な実施形態では、処理システムは、計算ダイの上に積層された3Dメモリを含む。いくつかの実施形態では、計算ダイは、CPU、GPU等の様々な計算ユニットを含む。積層メモリは、第1メモリダイと、第1メモリダイ上に積層された第2メモリダイと、を含む。単一のメモリアドレスを用いた(例えば、計算ダイからの)並列なメモリアクセス要求に基づいて、当該単一のメモリアドレスが、第1メモリダイ及び第2メモリダイが異なる物理的位置でアクセスされるように、スウィズリングされる。このように、これらのメモリダイは同じメモリアドレスでアドレス指定されるが、アクセスされる各メモリダイ内の物理的位置は、互いに物理的にオフセットされる。したがって、メモリダイの局所的な部分への繰り返しアクセスによるホットスポット化を抑制するように、メモリアクセス動作による熱生成が分散される。
図1は、いくつかの実施形態による、積層メモリにおけるインデックススウィズリングを使用する処理システム100のブロック図である。処理システム100は、概して、コンピュータプログラムとして構成された命令のセットを実行して、電子デバイスに対する動作を実行するように構成されている。したがって、処理システム100を、デスクトップ又はラップトップコンピュータ、サーバ、タブレット、スマートフォン、ゲームコンソール等を含む様々な電子デバイスの何れかに組み込むことができる。コンピュータプログラムの実行をサポートするために、処理システム100は、1つ以上の計算ダイ102と、メモリ104と、を含む。図1に示す例では、メモリ104は、概して、計算ダイ102のプロセッサからの要求に応じてデータを記憶し、読み出すように構成されたスタティックランダムアクセスメモリ(SRAM)である。図1に示すように、計算ダイ102及びメモリ104は積層ダイ構成で配置され、メモリ104は、1つ以上の別々のメモリダイ(例えば、メモリダイ104A,104B)に配置されている。これらのメモリダイは、垂直に積層されたダイ構成に配置され、スルーシリコンビア(TSV)106又は他の同様のダイ間相互接続を介して計算ダイに接続されている。
したがって、メモリダイ104A,104Bは、1つ以上の結合されたメモリダイ層、メモリパッケージ又は他のメモリ素子を含む3D積層メモリ104を形成する。いくつかの実施形態では、積層メモリ104は、垂直に積層されるが、他の実施形態では、水平に(例えば、並べて)積層されるか、或いは、互いに結合されたメモリ素子を含む。本明細書ではSRAMに関連して説明するが、他の実施形態では、積層メモリデバイス又はシステムは、複数のダイナミックランダムアクセスメモリ(DRAM)又は他のメモリ技術のダイ層を有するメモリデバイスを含む。
一実施形態では、計算ダイ102は、様々なワークロードに関する命令の実行をサポートする複数の実行コア108を有するマルチコアプロセッサである。いくつかの実施形態では、計算ダイ102は、命令の実行を容易にするために、図1に示されていない追加モジュールを含む。この追加モジュールは、1つ以上の中央演算処理装置(CPU)、GPU、1つ以上のデジタル信号プロセッサ等の1つ以上の追加処理ユニットを含む。また、様々な実施形態では、計算ダイ102は、ノースブリッジ及びサウスブリッジ等のメモリ及び入出力インタフェースモジュールや、キャッシュ及び他のサポートメモリ構造を処理ユニットに提供するための追加メモリ等を含む。
図1は、計算ダイ102が、1つ以上のメモリダイ層104A,104Bの積層メモリ104の下に結合される実装を示しているが、実施形態は、この構成に限定されない。例えば、いくつかの実施形態では、計算ダイ102は、積層メモリ104に隣接して配置され、したがって、並列配置で結合される。この図では、メモリダイ層は、第1メモリダイ層104A及び第2メモリダイ層104Bである2つのメモリダイ層を含む。しかしながら、実施形態は、積層メモリ104内の任意の特定の数のメモリダイ層に限定されず、他の実施形態は、より多い又はより少ない数のメモリダイ層を含む。
積層メモリ104は、複数のメモリダイ層への並列アクセスを可能にして、様々なメモリアクセス及び/又は計算動作のために帯域幅の増加を実現する。例えば、図1の実施形態では、メモリダイ104A及びメモリダイ104Bの両方は、同じメモリアドレスへのアクセスをアドレス指定することによって同時にアクセス可能であり、この場合、各メモリダイは、インタフェースの半分を提供する。メモリアクセス毎に、メモリダイ104A,104B内の全ての単一のメモリバンクがアクセスされるわけではないことを認識されたい。むしろ、メモリアクセスは、特定のメモリバンク(又は、アクセス粒度に応じたメモリダイの他のマクロ領域)にアドレス指定される。このタイプのメモリアクセススキームの下では、メモリダイ104A,104Bの特定のバンクが繰り返しアクセスされるアクセスパターンが生じて、不均衡な熱生成が起こる。
例えば、図2は、いくつかの実施形態による、不均衡な熱生成を伴う例示的な積層メモリ構成のブロック図である。積層メモリ204は、同じ構成を有する2つのメモリダイ204A,204Bを含む。特に、各メモリダイは、メモリダイを半分に分割する第1バンク206及び第2バンク208を含む。この実施形態では、単一のビット値は、メモリダイの左側の第1バンク206がアクセスされるか、メモリダイの右側の第2バンク208がアクセスされるかを決定する。例えば、ビット値0は第1バンク206にアクセスし、ビット値1は第2バンク208にアクセスする。ビット値1の繰り返しアクセスは、メモリダイ204A,204Bの第2バンク208のみへのアクセスとなる。したがって、メモリアクセス動作による熱生成は、アクセスされている局所的な領域(すなわち、メモリダイ204A,204Bの右側)に制限され、メモリダイによって生成された熱を、積層メモリ(例えば、図1の積層メモリ104)を介して上方に伝えて放散させる必要があるため、不均衡な熱生成及び熱放散の問題が生じる。
次に、図3を参照すると、いくつかの実施形態による、熱均衡のためのアドレススウィズリングを使用する例示的な積層メモリ構成のブロック図が示されている。積層メモリ304は、2つのメモリダイ304A,304Bを含む。各メモリダイは、メモリダイを半分に分割する第1バンク306及び第2バンク308を含む。メモリダイ304A,304Bへの並列アクセスのためにアドレスをスウィズリングすることによって、メモリダイ304A,304Bにおいてメモリアレイがアクセスされる物理的位置が、互いにオフセットされるように変更される。本明細書で使用される「スウィズリング」とは、異なる物理的位置にアクセスするために、メモリアドレスの個々のビットを置換、交換、又は、他の方法で異なる配置に再配置することをいう。
一実施形態では、単一のビット値は、メモリダイの左側の第1バンク306がアクセスされるか、又は、メモリダイの右側の第2バンク308がアクセスされるかを決定する。例えば、メモリアドレスの最終(最下位)ビットのビット値0は、第1バンク306へのアクセスをもたらし、メモリアドレスの最終ビットのビット値1は、第2バンク308へのアクセスをもたらす。図3に示すように、ビット値1のメモリダイ304A,304Bへの並列アクセス中に、メモリダイ304Aは、ビット値1を受信することによって第2バンク308にアクセスする。しかしながら、メモリダイ304Bに関するビット値は、ビット値0が受信され、メモリ304Bにおいて第1バンク306がアクセスされるように、スウィズリングされる。メモリダイ304A,メモリダイ304Bの両方が同じビット値1でアドレス指定されたが、アクセスされるバンクの物理的位置は互いにオフセットされている。したがって、メモリアクセス動作による熱生成が積層メモリの右側に局所化される図2の例とは対照的に、図3の実施形態は、メモリダイ304A,304Bの左側と右側との間の熱均衡を可能にする。
様々な実施形態は、積層メモリの様々なメモリダイ間でアドレスをスウィズリングするために、アドレス変換データ構造及びロジックを利用する。一実施形態では、ビット値をメモリダイに送信する前に、アドレススウィズリングが実行される。例えば、いくつかの実施形態では、スウィズリングは、計算ダイ(例えば、図1の計算ダイ102)のメモリコントローラ(図示省略)で実行される。別の実施形態では、同じビット値アドレスがメモリダイ304A及びメモリダイ304Bの両方に送信され、各メモリダイ内の対応する位置にアクセスする前に、アドレススウィズリングがローカルに実行される。例えば、いくつかの実施形態では、メモリダイ304A,304Bのローカルルックアップテーブル(図示省略)が、スウィズリングのために利用される。いくつかの実施形態では、ローカルルックアップテーブルを用いて、受信したビット値をビット反転するようにアドレススウィズリングを実行する。
別の実施形態では、アドレススウィズリングを実行するのではなく、交互構成のメモリダイが積層メモリにおいて利用される。例えば、図2を参照すると、同じ構成を有するのではなく、同じビット値アドレスでメモリダイ204A,204Bをアドレス指定することによって、異なるバンクへのアクセスをもたらす。例えば、ビット値0はメモリダイ204Aの第1バンク206にアクセスし、ビット値1はメモリダイ204Aの第2バンク208にアクセスする。これに対し、メモリダイ204Bの構成は、受信したビット値0がメモリダイ204Bの第2バンク208にアクセスし、ビット値1がメモリダイ204Bの第1バンク206にアクセスするように反転される。
当業者であれば、図2及び図3の例が、説明を簡単にするために、(メモリダイの何れの半分にアクセスするかを決定する)単一のビット値のコンテキストにおけるスウィズリングを示しているが、他の実施形態では、本開示の範囲から逸脱することなく、様々なアクセス粒度でアドレススウィズリングが適用されることを認識するであろう。例えば、いくつかの実施形態では、スウィズリングは、本明細書で説明するキャッシュブロックの粒度ではなく、複数のメモリダイへの並列アクセス中に、異なる物理的位置でマクロページ(すなわち、通常、典型的なメモリページよりも大きい)にアクセスするように実行される。他の実施形態では、スウィズリングは、単一のアドレスが複数のメモリダイで受信される場合に、これらのメモリダイへの並列アクセス中に、異なる物理的位置の個々のキャッシュラインにアクセスするように実行される。
他の実施形態では、ビット値は、メモリダイの何れの4分の1(quadrants)がアクセスされるかを示している。例えば、図4は、いくつかの実施形態による、熱均衡のためのアドレススウィズリングを使用する別の例示的な積層メモリ構成を示すブロック図である。積層メモリ404は、同じ構成を有する2つのメモリダイ404A,404Bを含む。特に、各メモリダイは、メモリダイを4つに分割する第1バンク406、第2バンク408、第3バンク410及び第4バンク412を含む。この実施形態では、2桁のビット値が、メモリダイの何れの4分の1にアクセスされるかを決定する。例えば、ビット値00は第1バンク406にアクセスし、ビット値01は第2バンク408にアクセスし、ビット値10は第3バンク410にアクセスし、ビット値11は第4バンク412にアクセスする。
図4に示すように、ビット値01によるメモリダイ404A,404Bへの並列アクセス中に、メモリダイ404Aは、ビット値01を受信することにより、第2バンク408にアクセスする。しかしながら、メモリダイ404Bに関するビット値は、ビット値10が受信され、メモリ404Bの第3バンク410がアクセスされるように、スウィズリングされる。メモリダイ404A及びメモリダイ404Bの両方が同じビット値01でアドレス指定されているが、アクセスされるバンクの物理的位置は、互いに物理的にオフセットされている。したがって、図4の実施形態は、メモリダイ404A,404Bの左側と右側との間の熱均衡を可能にし、熱均衡のための粒度レベルの向上を提供する。
図5は、いくつかの実施形態による、積層メモリのアドレススウィズリングの方法500のフロー図である。方法500は、図1の処理システム100の実施例に関して説明される。ブロック502において、計算ダイ102は、単一のメモリアドレスに基づいて、積層メモリ104の2つ以上のメモリダイへの並列アクセスを開始する。ブロック504において、単一のメモリアドレスは、2つ以上のメモリダイにアクセスする前にスウィズリングされる。上述したように、いくつかの実施形態では、メモリアドレスのスウィズリングは、ビット値をメモリダイに送信する前に、計算ダイ102のメモリコントローラ(図示省略)において実行される。他の実施形態では、同じビット値アドレスがメモリダイに送信され、アドレススウィズリングが、各メモリダイ内の対応する位置にアクセスする前にローカルに実行される。
ブロック506において、積層メモリ104の2つ以上のメモリダイの各々が、スウィズリングされたアドレスに基づいて、互いに異なる物理的位置でアクセスされる。上述したように、スウィズリングされたアドレスは、メモリダイの何れの部分がアクセスされるかを示す。いくつかの実施形態では、異なる物理的位置のマクロページ(すなわち、通常、典型的なメモリページよりも大きい)、異なるメモリブロック、キャッシュラインのロウ/カラム等にアクセスするように、スウィズリングが実行される。このように、単一のメモリアドレスを用いた複数のメモリダイへの並列アクセスを、各ダイ上の異なる物理的位置にアクセスするように指示することができる。メモリアクセス動作中に生成される熱の熱均衡を改善することによって、積層メモリ内の局所的なホットスポットを低減することができる。したがって、積層メモリは、例えば、熱エネルギーを放散用のヒートシンクにより効率的に伝えることができ、これにより、積層メモリを実装する処理システムの全体的な処理及び電力効率が改善される。
第1態様では、処理システムは、計算ダイと、計算ダイに積層された積層メモリと、を含み、積層メモリは、第1メモリダイと、第1メモリダイ上に積層された第2メモリダイとを、含み、単一のメモリアドレスを用いた並列アクセスは、異なる物理的位置で第1メモリダイ及び第2メモリダイにアクセスするようにスウィズリングされる。
第1態様の一実施形態では、第1メモリダイ及び第2メモリダイは、同じ回路構成を含む。特定の実施形態では、単一のメモリアドレスを用いた並列アクセスは、第1メモリダイ及び第2メモリダイの異なるメモリバンクに向けられる。別の実施形態では、処理システムは、メモリコントローラを計算ダイに含み、メモリコントローラは、積層メモリをアドレス指定する前に複数のビット値を生成するように、単一のメモリアドレスをスウィズリングする。
第1態様のさらなる実施形態では、第1メモリダイ及び第2メモリダイの両方は、単一のメモリアドレスを受信し、第2メモリダイは、単一のメモリアドレスを、ローカルルックアップテーブルに基づいてスウィズリングする。特定の実施形態では、第2メモリダイは、受信した単一のメモリアドレスを、ローカルルックアップテーブルに基づいてビット反転する。さらに別の実施形態では、積層メモリは、複数層のスタティックランダムアクセスメモリ(SRAM)を含む。
第2態様では、集積回路(IC)パッケージは、複数の積層メモリダイを含むダイ積層メモリデバイスを含み、単一のメモリアドレスを用いた並列アクセスは、異なる物理的位置において複数の積層メモリダイにアクセスするように、スウィズリングされる。
第2態様の一実施形態では、複数の積層メモリダイの各積層メモリダイは、同じ回路構成を含む。特定の実施形態では、単一のメモリアドレスを用いた並列アクセスは、複数の積層メモリダイの異なるメモリバンクに向けられる。別の実施形態では、ICパッケージは、メモリコントローラを、ダイ積層メモリデバイスに結合された計算ダイに含み、メモリコントローラは、ダイ積層メモリデバイスをアドレス指定する前に複数のビット値を生成するように、単一のメモリアドレスをスウィズリングする。
第2態様のさらなる実施形態では、複数の積層メモリダイの各々は、ローカルルックアップテーブルを含む。特定の実施形態では、単一のメモリアドレスは、複数の積層メモリダイの各々のローカルルックアップテーブルに基づいてビット反転される。別の実施形態では、ダイ積層メモリデバイスは、複数層のスタティックランダムアクセスメモリ(SRAM)を含む。
第3態様では、方法は、単一のメモリアドレスを用いた並列アクセス要求を受信したことに応じて、ダイ積層メモリの第1メモリダイ及び第2メモリダイに異なる物理的位置でアクセスするように、単一のメモリアドレスをスウィズリングすることを含む。
第3態様の一実施形態では、単一のメモリアドレスをスウィズリングすることは、メモリコントローラにおいて、第1メモリダイ及び第2メモリダイをアドレス指定する前に複数のビット値を生成することを含む。さらなる実施形態では、方法は、第1メモリダイ及び第2メモリダイの両方を単一のメモリアドレスでアドレス指定することを含む。特定の実施形態では、単一のメモリアドレスをスウィズリングすることは、第2メモリダイのローカルルックアップテーブルにおいて、単一のメモリアドレスをビット反転することを含む。さらに別の実施形態では、方法は、第2メモリダイのローカルルックアップテーブルに基づいて単一のメモリアドレスをスウィズリングすることを含む。さらに別の実施形態では、並列アクセス要求は、第1メモリダイ及び第2メモリダイの異なるメモリバンクに向けられる。
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。

Claims (20)

  1. 処理システムであって、
    計算ダイと、
    前記計算ダイに積層された積層メモリであって、第1メモリダイと、前記第1メモリダイ上に積層された第2メモリダイと、を含み、単一のメモリアドレスを用いた並列アクセスは、前記第2メモリダイの第2部分へのアクセスと並列に前記第1メモリダイの第1部分にアクセスするようにスウィズリングされ、前記第2部分は、同じメモリダイ上の前記第1部分からオフセットされている、積層メモリと、を備える、
    処理システム。
  2. 前記第1メモリダイ及び前記第2メモリダイは、同じ回路構成を含む、
    請求項1の処理システム。
  3. 前記単一のメモリアドレスを用いた前記並列アクセスは、前記第1メモリダイ及び前記第2メモリダイの異なるメモリバンクに向けられる、
    請求項2の処理システム。
  4. メモリコントローラを前記計算ダイに含み、前記メモリコントローラは、前記積層メモリをアドレス指定する前に複数のビット値を生成するように、前記単一のメモリアドレスをスウィズリングする、
    請求項1の処理システム。
  5. 前記第1メモリダイ及び前記第2メモリダイの両方は、前記単一のメモリアドレスを受信し、前記第2メモリダイは、前記単一のメモリアドレスを、ローカルルックアップテーブルに基づいてスウィズリングする、
    請求項1の処理システム。
  6. 前記第2メモリダイは、受信した前記単一のメモリアドレスを、前記ローカルルックアップテーブルに基づいてビット反転する、
    請求項5の処理システム。
  7. 前記積層メモリは、複数層のスタティックランダムアクセスメモリ(SRAM)を含む、
    請求項1の処理システム。
  8. 集積回路(IC)パッケージであって、
    複数の積層メモリダイを含むダイ積層メモリデバイスであって、単一のメモリアドレスを用いた並列アクセスは、異なる物理的位置において前記複数の積層メモリダイにアクセスするようにスウィズリングされ、前記異なる物理的位置は、同じメモリダイ上で互いにオフセットされている、ダイ積層メモリデバイスを備える、
    ICパッケージ。
  9. 前記複数の積層メモリダイの各積層メモリダイは、同じ回路構成を含む、
    請求項8のICパッケージ。
  10. 前記単一のメモリアドレスを用いた並列アクセスは、前記複数の積層メモリダイの異なるメモリバンクに向けられる、
    請求項9のICパッケージ。
  11. メモリコントローラを、前記ダイ積層メモリデバイスに結合された計算ダイに含み、前記メモリコントローラは、前記ダイ積層メモリデバイスをアドレス指定する前に複数のビット値を生成するように、前記単一のメモリアドレスをスウィズリングする、
    請求項8のICパッケージ。
  12. 前記複数の積層メモリダイの各々は、ローカルルックアップテーブルを含む、
    請求項8のICパッケージ。
  13. 前記単一のメモリアドレスは、前記複数の積層メモリダイの各々の前記ローカルルックアップテーブルに基づいてビット反転される、
    請求項12のICパッケージ。
  14. 前記ダイ積層メモリデバイスは、複数層のスタティックランダムアクセスメモリ(SRAM)を含む、
    請求項8のICパッケージ。
  15. 単一のメモリアドレスを用いた並列アクセス要求を受信したことに応じて、ダイ積層メモリの第2メモリダイの第2部分へのアクセスと並列に第1メモリダイの第1部分にアクセスするように、前記単一のメモリアドレスをスウィズリングすることであって、前記第2部分は、同じメモリダイ上の前記第1部分からオフセットされている、ことを含む、
    方法。
  16. 前記単一のメモリアドレスをスウィズリングすることは、
    メモリコントローラにおいて、前記第1メモリダイ及び前記第2メモリダイをアドレス指定する前に複数のビット値を生成することを含む、
    請求項15の方法。
  17. 前記第1メモリダイ及び前記第2メモリダイの両方を前記単一のメモリアドレスでアドレス指定することを含む、
    請求項15の方法。
  18. 前記単一のメモリアドレスをスウィズリングすることは、
    前記第2メモリダイのローカルルックアップテーブルにおいて、前記単一のメモリアドレスをビット反転することを含む、
    請求項17の方法。
  19. 前記第2メモリダイのローカルルックアップテーブルに基づいて前記単一のメモリアドレスをスウィズリングすることを含む、
    請求項15の方法。
  20. 前記並列アクセス要求は、前記第1メモリダイ及び前記第2メモリダイの異なるメモリバンクに向けられる、
    請求項15の方法。
JP2020522320A 2017-10-26 2018-09-18 3d積層メモリにおけるスウィズリング Active JP6980912B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/794,457 2017-10-26
US15/794,457 US10303398B2 (en) 2017-10-26 2017-10-26 Swizzling in 3D stacked memory
PCT/US2018/051592 WO2019083642A1 (en) 2017-10-26 2018-09-18 TILTING IN A STACKED 3D MEMORY

Publications (3)

Publication Number Publication Date
JP2021501435A JP2021501435A (ja) 2021-01-14
JP2021501435A5 JP2021501435A5 (ja) 2021-10-28
JP6980912B2 true JP6980912B2 (ja) 2021-12-15

Family

ID=66243845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020522320A Active JP6980912B2 (ja) 2017-10-26 2018-09-18 3d積層メモリにおけるスウィズリング

Country Status (6)

Country Link
US (1) US10303398B2 (ja)
EP (1) EP3701379A4 (ja)
JP (1) JP6980912B2 (ja)
KR (1) KR102407783B1 (ja)
CN (1) CN111279322B (ja)
WO (1) WO2019083642A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10490251B2 (en) 2017-01-30 2019-11-26 Micron Technology, Inc. Apparatuses and methods for distributing row hammer refresh events across a memory device
WO2019222960A1 (en) 2018-05-24 2019-11-28 Micron Technology, Inc. Apparatuses and methods for pure-time, self adopt sampling for row hammer refresh sampling
US10573370B2 (en) 2018-07-02 2020-02-25 Micron Technology, Inc. Apparatus and methods for triggering row hammer address sampling
US10685696B2 (en) 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
CN113168861B (zh) 2018-12-03 2024-05-14 美光科技公司 执行行锤刷新操作的半导体装置
CN111354393B (zh) * 2018-12-21 2023-10-20 美光科技公司 用于目标刷新操作的时序交错的设备和方法
US10957377B2 (en) 2018-12-26 2021-03-23 Micron Technology, Inc. Apparatuses and methods for distributed targeted refresh operations
EP3675125A1 (en) * 2018-12-27 2020-07-01 Secure-IC SAS Device and method for protecting a memory
US11615831B2 (en) 2019-02-26 2023-03-28 Micron Technology, Inc. Apparatuses and methods for memory mat refresh sequencing
US11227649B2 (en) 2019-04-04 2022-01-18 Micron Technology, Inc. Apparatuses and methods for staggered timing of targeted refresh operations
US11069393B2 (en) 2019-06-04 2021-07-20 Micron Technology, Inc. Apparatuses and methods for controlling steal rates
US10978132B2 (en) 2019-06-05 2021-04-13 Micron Technology, Inc. Apparatuses and methods for staggered timing of skipped refresh operations
US11302374B2 (en) 2019-08-23 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic refresh allocation
US11302377B2 (en) 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
US11309010B2 (en) 2020-08-14 2022-04-19 Micron Technology, Inc. Apparatuses, systems, and methods for memory directed access pause
US11348631B2 (en) 2020-08-19 2022-05-31 Micron Technology, Inc. Apparatuses, systems, and methods for identifying victim rows in a memory device which cannot be simultaneously refreshed
US11380382B2 (en) 2020-08-19 2022-07-05 Micron Technology, Inc. Refresh logic circuit layout having aggressor detector circuit sampling circuit and row hammer refresh control circuit
US11557331B2 (en) 2020-09-23 2023-01-17 Micron Technology, Inc. Apparatuses and methods for controlling refresh operations
US11222686B1 (en) 2020-11-12 2022-01-11 Micron Technology, Inc. Apparatuses and methods for controlling refresh timing
US11264079B1 (en) 2020-12-18 2022-03-01 Micron Technology, Inc. Apparatuses and methods for row hammer based cache lockdown
US12112787B2 (en) 2022-04-28 2024-10-08 Micron Technology, Inc. Apparatuses and methods for access based targeted refresh operations

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0823843B2 (ja) * 1991-10-11 1996-03-06 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリ・コントローラ、及びデータ処理システム
US5924111A (en) * 1995-10-17 1999-07-13 Huang; Chu-Kai Method and system for interleaving data in multiple memory bank partitions
US7272703B2 (en) 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US7898551B2 (en) * 2006-06-20 2011-03-01 Via Technologies, Inc. Systems and methods for performing a bank swizzle operation to reduce bank collisions
JP4245180B2 (ja) 2006-10-30 2009-03-25 エルピーダメモリ株式会社 積層メモリ
US20080120514A1 (en) * 2006-11-10 2008-05-22 Yehea Ismail Thermal management of on-chip caches through power density minimization
TWI470762B (zh) * 2007-07-27 2015-01-21 尼康股份有限公司 Laminated semiconductor device
KR101639574B1 (ko) * 2009-12-30 2016-07-14 삼성전자주식회사 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
KR101796116B1 (ko) * 2010-10-20 2017-11-10 삼성전자 주식회사 반도체 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 그 동작방법
JP5654855B2 (ja) * 2010-11-30 2015-01-14 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体装置
JP2014501427A (ja) * 2010-12-14 2014-01-20 ラムバス・インコーポレーテッド マルチダイdramバンクの配置及び配線
US8402248B2 (en) * 2010-12-31 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) Explicitly regioned memory organization in a network element
US9230609B2 (en) * 2012-06-05 2016-01-05 Rambus Inc. Memory bandwidth aggregation using simultaneous access of stacked semiconductor memory die
JP2014044527A (ja) * 2012-08-24 2014-03-13 Canon Inc 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体
KR102133573B1 (ko) * 2013-02-26 2020-07-21 삼성전자주식회사 반도체 메모리 및 반도체 메모리를 포함하는 메모리 시스템
US10289604B2 (en) * 2014-08-07 2019-05-14 Wisconsin Alumni Research Foundation Memory processing core architecture
JP2017123208A (ja) * 2016-01-06 2017-07-13 ルネサスエレクトロニクス株式会社 半導体記憶装置

Also Published As

Publication number Publication date
KR102407783B1 (ko) 2022-06-10
US10303398B2 (en) 2019-05-28
CN111279322B (zh) 2021-09-24
US20190129651A1 (en) 2019-05-02
WO2019083642A1 (en) 2019-05-02
CN111279322A (zh) 2020-06-12
KR20200063237A (ko) 2020-06-04
EP3701379A1 (en) 2020-09-02
EP3701379A4 (en) 2021-08-11
JP2021501435A (ja) 2021-01-14

Similar Documents

Publication Publication Date Title
JP6980912B2 (ja) 3d積層メモリにおけるスウィズリング
KR102541302B1 (ko) 플래쉬 집적 고 대역폭 메모리 장치
TWI703440B (zh) 記憶體系統、其處理系統以及操作記憶體堆疊的方法
KR102191229B1 (ko) 실시간 분석을 지원하는 인-메모리 팝 카운트
US9767028B2 (en) In-memory interconnect protocol configuration registers
JP6373559B2 (ja) メモリ装置及びメモリ装置の動作方法
Loh 3D-stacked memory architectures for multi-core processors
US20070220207A1 (en) Transferring data from stacked memory
US20180115496A1 (en) Mechanisms to improve data locality for distributed gpus
Shafiee et al. Secure DIMM: Moving ORAM primitives closer to memory
US10762012B2 (en) Memory system for sharing a plurality of memories through a shared channel
JP7516428B2 (ja) 高帯域クロスリンクを使用したgpuチップレット
TW201841119A (zh) 管理揮發性記憶體快取的方法和快取管理器
TW202042066A (zh) 高頻寬記憶體系統及用於在系統中進行記憶體尋址的方法
KR102605205B1 (ko) 메모리 장치 및 프로세싱 시스템
TWI631467B (zh) 用於固態裝置之多個位址暫存器之設備及方法
JP2018152112A (ja) メモリ装置及びメモリ装置の動作方法
US20240168896A1 (en) Memory controller, electric system including the same and method of controlling memory access
US8788748B2 (en) Implementing memory interface with configurable bandwidth
TWI766497B (zh) 資料存取方法及系統
US20230315334A1 (en) Providing fine grain access to package memory
Franzon et al. Thermal requirements in future 3d processors
US20240160568A1 (en) Techniques for data movement to a cache in a disaggregated die system
TW201517049A (zh) 儲存裝置及其記憶體控制方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210916

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210916

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210916

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211117

R150 Certificate of patent or registration of utility model

Ref document number: 6980912

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150