JP2022547730A - データ移動のためのプログラム可能なエンジン - Google Patents

データ移動のためのプログラム可能なエンジン Download PDF

Info

Publication number
JP2022547730A
JP2022547730A JP2022517125A JP2022517125A JP2022547730A JP 2022547730 A JP2022547730 A JP 2022547730A JP 2022517125 A JP2022517125 A JP 2022517125A JP 2022517125 A JP2022517125 A JP 2022517125A JP 2022547730 A JP2022547730 A JP 2022547730A
Authority
JP
Japan
Prior art keywords
memory
chip
memory chip
chips
data
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.)
Pending
Application number
JP2022517125A
Other languages
English (en)
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 マイクロン テクノロジー,インク.
Publication of JP2022547730A publication Critical patent/JP2022547730A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B63/00Resistance change memory devices, e.g. resistive RAM [ReRAM] devices
    • H10B63/80Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays
    • H10B63/84Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays arranged in a direction perpendicular to the substrate, e.g. 3D cell arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

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 (AREA)
  • Dram (AREA)
  • Debugging And Monitoring (AREA)

Abstract

マイクロチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域を有するメモリチップ。事前定義されたメモリ領域の格納されたプログラムデータに従って第2のメモリチップからデータを読み取り、第2のメモリチップにデータを書き込むために、第2のメモリチップへのアクセスを容易にするように構成されたプログラム可能なエンジンをまた有するメモリチップ。事前定義されたメモリ領域は、プログラム可能なエンジンのコマンドキューとして構成された部分を含むことができ、プログラム可能なエンジンは、コマンドキューに従って第2のメモリチップへのアクセスを容易にするように構成することができる。

Description

関連出願
本出願は、2019年9月17日に出願され、「PROGRAMMABLE ENGINE FOR DATA MOVEMENT」と題され、その開示全体が参照により本明細書に組み込まれる米国特許出願第16/573,785号の優先権を主張する。
本明細書に開示される少なくともいくつかの実施形態は、データ移動のためのプログラム可能なエンジンを有するメモリチップに関する。また、本明細書に開示される少なくともいくつかの実施形態は、メモリを形成するためのメモリチップのストリングの柔軟なプロビジョニングにおけるそのようなメモリチップの使用に関する。
コンピューティングシステムのメモリは階層型であり得る。コンピュータアーキテクチャにおけるメモリ階層と呼ばれることが多いメモリ階層は、応答時間、複雑さ、容量、永続性、及びメモリ帯域幅などの特定の要因に基づいて、コンピュータメモリを階層に分けることができる。そのような要因は関連している可能性があり、多くの場合、メモリ階層の有用性をさらに強調するトレードオフになる可能性がある。
一般に、メモリ階層はコンピュータシステムにおいて性能に影響を与える。他の要因よりもメモリ帯域幅と速度を優先する場合は、応答時間、複雑さ、容量、永続性などのメモリ階層の制限を考慮する必要がある。そのような優先順位付けを管理するために、様々なタイプのメモリチップを組み合わせて、より高速なチップとより信頼性の高いまたは費用効果の高いチップなどとのバランスをとることができる。様々なチップのそれぞれをメモリ階層の一部と見なすことができる。そして、たとえば、より高速なチップでの遅延を減らすために、メモリチップの組み合わせの中の他のチップは、バッファを充填してから、チップ間のデータ転送をアクティブ化するために信号を送ることによって対応することができる。
メモリ階層は、様々なタイプのメモリユニットを備えたチップで構成できる。たとえば、メモリユニットはダイナミックランダムアクセスメモリ(DRAM)ユニットであり得る。DRAMはランダムアクセス半導体メモリの一種であり、データの各ビットを、通常コンデンサと金属酸化膜半導体電界効果トランジスタ(MOSFET)を含むメモリセルに格納する。コンデンサは、ビットの2つの値「0」と「1」を表す充電または放電のいずれかが可能である。DRAMでは、コンデンサの電荷が漏れ出すため、DRAMは、コンデンサごとに元の電荷を復元することによってコンデンサ内のデータを定期的に書き換える外部メモリリフレッシュ回路を必要とする。一方、スタティックランダムアクセスメモリ(SRAM)ユニットでは、リフレッシュ機能は必要ない。また、DRAMは、電源を切るとデータが急速に失われるため、揮発性メモリと見なされる。これは、フラッシュメモリ、及びデータストレージがより永続的である不揮発性ランダムアクセスメモリ(NVRAM)などの他のタイプの不揮発性メモリとは異なる。
NVRAMの一種は3DXPointメモリである。3D XPointメモリでは、メモリユニットは、スタック可能なクロスグリッドデータアクセスアレイと併せて、バルク抵抗の変化に基づいてビットを格納する。3D XPointメモリはDRAMよりも費用効果が高いが、フラッシュメモリよりも費用効果が低くなる可能性がある。
フラッシュメモリは、別のタイプの不揮発性メモリである。フラッシュメモリの利点は、フラッシュメモリを電気的に消去して再プログラムできることである。フラッシュメモリには、フラッシュメモリのメモリユニットを実装できるNAND論理ゲートとNOR論理ゲートにちなんで名付けられたNAND型フラッシュメモリとNOR型フラッシュメモリの2つの主要なタイプがあると考えられている。フラッシュメモリユニットまたはセルは、対応するゲートの内部特性と類似した内部特性を示す。NAND型フラッシュメモリはNANDゲートを含む。NOR型のフラッシュメモリはNORゲートを含む。NAND型フラッシュメモリは、デバイス全体よりも小さい可能性があるブロック単位で読み書きし得る。NOR型のフラッシュは、単一バイトを消去した場所に書き込む、または個別に読み取ることを可能にする。NAND型フラッシュメモリの利点により、そのようなメモリは、多くの場合、メモリカード、USBフラッシュドライブ、及びソリッドステートドライブに利用されてきた。ただし、一般にフラッシュメモリを使用することの主要なトレードオフは、フラッシュメモリが、DRAM及びNVRAMなどの他のタイプのメモリと比較して、特定のブロックで比較的に少数の書き込みサイクルしか実行できないことである。
本開示は、以下に示す詳細な説明及び本開示の様々な実施形態の添付図面から、より十分に理解される。
本開示のいくつかの実施形態による、多層メモリの柔軟なプロビジョニングを提供するように構成された例示的なメモリシステムを示す。 本開示のいくつかの実施形態による、多層メモリの柔軟なプロビジョニングを提供するように構成された例示的なメモリシステム及びプロセッサチップを示す。 本開示のいくつかの実施形態による、多層メモリの柔軟なプロビジョニングを提供するように構成された例示的なメモリシステム及びメモリコントローラチップを示す。 本開示のいくつかの実施形態による、それぞれが複数のメモリチップを含む層を備えた多層メモリの柔軟なプロビジョニングを提供するように構成された例示的なメモリシステムを示す。 本開示のいくつかの実施形態による、例示的なコンピューティングデバイスの例示的な部分を示す。 本開示のいくつかの実施形態による、統合されたデータムーバーを有するメモリチップを含む例示的なシステムを示す。 本開示のいくつかの実施形態による、図6に示されるメモリチップ、及びデータムーバーから転送されたデータを受信し、受信したデータをマッピングするための論理から物理へのマッピングを有するマイクロチップまたはデバイスを含む例示的なシステムを示す。 本開示のいくつかの実施形態による、暗号化及び認証回路を有するとしても示される、図6に示されるメモリチップを含む例示的なシステムを示す。 本開示のいくつかの実施形態による、データ移動のためのプログラム可能なエンジン、及びプロセッサチップと第2のメモリチップへの直接接続を有するメモリチップを含む例示的なシステムを示す。 本開示のいくつかの実施形態による、プログラム可能なエンジン、第2のメモリチップへの直接接続、及びバスを介したプロセッサチップへの接続を有する図9に示されるメモリチップを含む例示的なシステムを示す。 本開示のいくつかの実施形態による、プログラム可能なエンジン、及び第2のメモリチップと第3のメモリチップへの直接接続を有する図9に示されるメモリチップを含む例示的なシステムを示す。図11では、メモリチップは、第2のメモリチップと第3のメモリチップとの間にある。
本明細書に開示される少なくともいくつかの実施形態は、データ移動のためのプログラム可能なエンジン(たとえば、図9~11に示されるプログラム可能なエンジン910を参照)を含むメモリチップ(たとえば、図9~11に示される第1のメモリチップ902を参照)に関する。プログラム可能なエンジンを有するメモリチップの1つまたは複数のインスタンスは、メモリを形成するためのメモリチップのストリング(たとえば、図1~3に示されるメモリチップ102のストリング、及び図4に示されるメモリチップ402のストリングを参照)の柔軟なプロビジョニングにおいて1つまたは複数のメモリチップとして使用することができる。また、プログラム可能なエンジンを備えたメモリチップは、データムーバーを有するメモリチップ(たとえば、図6~8に示されるメモリチップ602を参照)であり得る、それを含むことができる、またはそれに含まれる場合がある。たとえば、プログラム可能なエンジンはデータムーバーを提供できる。
プログラム可能なエンジンは、プログラム可能なエンジンを有するメモリチップのメモリ領域を介して、またはプログラム可能なエンジンを有するメモリチップに接続されたメモリチップのメモリ領域を介してプログラムできる論理回路を有することができる。プログラム可能なエンジンは、メモリ領域にあるものに基づいて、様々な操作を実行して、データを下流のフラッシュメモリチップなどの下流のメモリチップに移動することができる。たとえば、システムオンチップ(SoC)などのプロセッサは、下流のメモリチップに移動されるメモリの領域を識別するために、メモリチップ内の2つの所定のメモリアドレスにデータを格納できる。そして、プロセッサは、メモリチップ内の第3の所定のメモリアドレスにコマンドを書き込む(たとえば、コマンドを実行する)ことができる。
エンジンのプログラム性は、移動されるメモリ領域のサイズ、移動されるメモリ領域の位置、移動の方向(下流のフラッシュメモリチップへまたは下流のフラッシュメモリチップからなど)である可能性がある。上述の例を参照し直すと、プログラム可能なエンジンは、メモリチップ内のコマンドを検出すると、プログラム可能なエンジンは、チップに格納されているデータを移動する。コマンドの実行中、プログラム可能なエンジンは、プログラム可能なエンジンが操作を繰り返さないように、第3のメモリアドレスをクリアすることができる。
いくつかの実施形態では、プログラム可能なエンジンは、命令の形でコマンドのセットを実行することができ、これは、従来のプロセッサとある程度類似している。いくつかの実施形態では、プログラム可能なエンジンは、メモリチップから下流のメモリチップへのデータの移動のためのパラメータを保持できるレジスタを含むことができる。たとえば、レジスタは、移動されるデータを格納するメモリ領域、及び移動操作のためのコマンドを定義するためのそれぞれのレジスタを含むことができる。
SoCなどのプロセッサチップは、プログラム可能なエンジンを有するメモリチップに直接接続することができる(たとえば、図9に示されるプロセッサチップ924を参照)。また、プロセッサチップは、バス(たとえば、図10に示されるバス1004を参照のこと)を介してプログラム可能なエンジンを有するメモリチップに接続することができる。あるいは、プロセッサチップは、別のメモリチップを介してプログラム可能なエンジンを有するメモリチップに接続することができる(たとえば、図1に示されるプロセッサチップ1112及び第3のメモリチップ1102を参照)。プロセッサチップとプログラム可能なエンジンを有するメモリチップとの間の間接接続を伴う実施形態では、2つのチップ間の別のメモリチップは、プログラム可能なエンジンを有するメモリチップのためのキャッシュを含むことができる(たとえば、図11に示される第1のメモリチップ902のためのキャッシュ1114を参照)。
プロセッサチップは、プログラム可能なエンジンを有するメモリチップ内の所定のメモリ領域にデータを格納することによってプログラム可能なエンジンをプログラムすることができる(たとえば、図9~11に示される所定のメモリ領域908を参照)。事前定義されたメモリ領域は、プログラム可能なエンジンのコマンドキューとして構成された部分を含むことができる(たとえば、図9~11に示されるコマンドキュー912を参照)。したがって、プロセッサチップは、事前定義されたメモリ領域にデータを書き込むことによってメモリチップにまたはメモリチップからデータを移動するために、プログラム可能なエンジンを有するメモリチップを制御することができる。また、書き込まれたデータの一部はコマンドキューを制御する。プログラム可能なエンジンに従って、データは、プログラム可能なエンジンによって、メモリチップから第2のメモリチップ(たとえば、第2のメモリチップ926を参照)に移動することができる。
いくつかの実施形態では、メモリチップは、マイクロチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域を含むことができる。そして、メモリチップはまた、事前定義されたメモリ領域に格納されたプログラムデータに従って第2のメモリチップからデータを読み取り、第2のメモリチップにデータを書き込むために、第2のメモリチップへのアクセスを容易にするように構成されたプログラム可能なエンジンを含むことができる。そのような実施形態では、事前定義されたメモリ領域は、プログラム可能なエンジンのコマンドキューとして構成された部分を含むことができ、プログラム可能なエンジンは、コマンドキューに従って第2のメモリチップへのアクセスを容易にするように構成することができる。さらに、格納されたプログラムデータの一部は、コマンドキューを制御するように構成することができる。そして、メモリの一部は、第2のメモリチップに移動されるデータを格納するように構成することができ、メモリの一部に格納されたデータは、コマンドキューに従って移動することができる。
データ移動のためのプログラム可能なエンジンを含むメモリチップは、プロセッサ及びメモリマイクロチップへのそれぞれ別々の接続のための2つの別々のピンのセット(たとえば、図9に示されるピンのセット904と906を参照)、または2つの異なるメモリチップへのそれぞれ別々の接続のための2つの別々のピンのセット(たとえば、図11に示されるピンのセット1104と906を参照)を有することができる。プロセッサはまた、プログラム可能なエンジン(図面には図示せず)を有するメモリチップへの接続を含む、少なくとも2つの異なるメモリチップへの接続のための2つの別々のピンのセットを有することができる。いくつかの実施形態では、プロセッサが複数のメモリチップにアクセスするために複数の別々のピンのセットを有する必要はない。プロセッサのピンを節約するために、複数のメモリチップをバスを介してプロセッサに接続することができる。そのような実施形態では、プロセッサは、バス(たとえば、図10に示されるバス1004を参照)を介してエンジンを有するメモリチップにデータを読み書きするためにプログラム可能なエンジンにアクセスすることができる。また、メモリチップのピンを節約するために、いくつかの例では、複数のメモリチップをバスを介して相互に接続することができる。
プログラム可能なエンジンを含むメモリチップは、メモリチップが複数のNVRAMセルを含むという点で、不揮発性ランダムアクセスメモリ(NVRAM)チップであり得る。そして、いくつかの実施形態では、複数のNVRAMセルは、複数の3D XPointメモリセルを含むことができる。代わりに、プログラム可能なエンジンを含むメモリチップは、メモリチップが複数のDRAMセルを含むという点で、ダイナミックランダムアクセスメモリ(DRAM)チップであり得る。また、プログラム可能なエンジンを含むメモリチップは、メモリチップが複数のフラッシュメモリセルを含むという点でフラッシュメモリチップであり得る。複数のフラッシュメモリセルは、複数のNAND型フラッシュメモリセルを含むことができる。
プログラム可能なエンジンを有するメモリチップ内のメモリの一部に格納されたデータは、プロセッサチップによって直接的または間接的にアクセス可能である場合がある(たとえば、図9~11に示されるメモリ914の一部を参照)。そして、プロセッサチップは、プログラム可能なエンジンを有するメモリチップからデータを読み取り、メモリチップにデータを書き込むことができる。データの読み取りと書き込みは、メモリチップ内のメモリの一部との間で行うことができる。
いくつかの実施形態では、プログラム可能なエンジンを有するメモリチップに接続された第2のメモリチップ(たとえば、第2のメモリチップ926を参照)は、DRAMチップである。いくつかの実施形態では、第2のメモリチップはNVRAMチップである。いくつかの実施形態では、第2のメモリチップは、フラッシュメモリチップ(たとえば、NAND型フラッシュメモリチップ)である。
プログラム可能なエンジンを有するメモリチップに接続された第2のメモリチップのメモリの一部(たとえば、図9に示されるメモリ930の一部を参照)に格納されたデータは、プログラム可能なエンジンを有するメモリチップによってまたはそれを介してアクセス可能である場合がある。また、第2のメモリチップの一部に格納されたデータがメモリチップを介してアクセス可能である場合、データは、別のメモリチップまたはプロセッサチップ(図9~10に示されるプロセッサチップ924など)によってアクセスされることもある。そして、プログラム可能なエンジンを有するメモリチップは、第2のメモリチップからデータを読み取り、第2のメモリチップにデータを書き込むことができる。データの読み取りと書き込みは、第2のメモリチップ内のメモリの一部との間で行うことができる。
本明細書で説明されるいくつかの実施形態は、第1のメモリチップ、第2のメモリチップ、及びマイクロチップを含むシステムを含むことができる。そのような実施形態では、第1のメモリチップは、マイクロチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域を含むことができる。第1のメモリチップはまた、事前定義されたメモリ領域に格納されたプログラムデータに従って第2のメモリチップからデータを読み取り、第2のメモリチップにデータを書き込むために、第2のメモリチップへのアクセスを容易にするように構成されたプログラム可能なエンジンを含むことができる。また、そのような実施形態では、マイクロチップは、第1のメモリチップの事前定義されたメモリ領域にデータを書き込むことによってプログラム可能なエンジンをプログラムするように構成することができる。
本明細書で説明されるいくつかの実施形態は、第1のメモリチップ、第2のメモリチップ、第3のメモリチップ、及び第3のメモリチップを介して第1のメモリチップに接続されたプロセッサチップを含むシステムを含むことができる。そのような実施形態では、第1のメモリチップは、第3のメモリチップを介してプロセッサチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域を含むことができる。第1のメモリチップはまた、事前定義されたメモリ領域に格納されたプログラムデータに従って第2のメモリチップからデータを読み取り、第2のメモリチップにデータを書き込むために、第2のメモリチップへのアクセスを容易にするように構成されたプログラム可能なエンジンを含むことができる。プロセッサチップは、第3のメモリチップを介して第1のメモリチップの事前定義されたメモリ領域にデータを書き込むことによってプログラム可能なエンジンをプログラムするように構成することができる。
また、本明細書に開示される少なくともいくつかの実施形態は、統合されたデータムーバーを有するメモリチップに関する(たとえば、図6~8及び本明細書の対応する本文を参照)。そして、本明細書に開示される少なくともいくつかの実施形態は、メモリを形成するためのメモリチップのストリングの柔軟なプロビジョニングにおけるそのようなメモリチップの使用に関する(たとえば、図1~8及び本明細書の対応する本文を参照)。たとえば、図6~8に示されるメモリチップの1つまたは複数のインスタンスは、図1~3に示されるメモリチップ102のストリング、及び図4に示されるメモリチップ402のストリングの柔軟なプロビジョニングにおいて1つまたは複数のメモリチップとして使用することができる。
本開示の目的のために、データムーバーは、別のメモリチップまたはデバイスへのデータの転送を管理するメモリチップまたはデバイス内の回路である。そのようなデータムーバーは、メモリ階層内のメモリチップまたはデバイスのグループで使用することができる。したがって、データムーバーは、メモリ階層内でのあるメモリチップもしくはデバイスから別のメモリチップもしくはデバイスへのデータの移動を容易にすることができる。
統合されたデータムーバー(たとえば、データムーバー608を参照)を含むメモリチップ(たとえば、メモリチップ602を参照)は、第1のマイクロチップまたはデバイス(たとえば、図6~8に示される第1のマイクロチップまたはデバイス624を参照)、及び第2のマイクロチップまたはデバイス(たとえば、図6~8に示される第2のマイクロチップまたはデバイス626を参照)へのそれぞれ別々の接続のための2つの別々のピンのセット(たとえば、図6~8に示されるピンのセット604と606を参照)を有することができる。第1のマイクロチップまたはデバイスは、システムオンチップ(SoC)などのプロセッサまたは別のメモリチップであり得る。第2のマイクロチップまたはデバイスは、別のメモリチップまたは大容量記憶装置などのメモリデバイスであり得る。
いくつかの実施形態では、メモリチップは、第2のマイクロチップまたはデバイスに移動されるデータを保護するために、データムーバーに加えて暗号化エンジン(たとえば、図8に示される暗号化エンジン802を参照)を含むことができる。また、そのような実施形態及び他の実施形態では、メモリチップは、第2のマイクロチップまたはデバイスに格納されたデータにアクセスするための認証を実行できるゲートキーパーデバイス(たとえば、図8に示されるゲートキーパー804を参照)を含むことができる。
データムーバーは、様々な方法を使用して、第2のマイクロチップまたはデバイスに向かう途中で、メモリチップに格納されたデータ(たとえば、図6~8に示されるように、第1のマイクロチップまたはデバイス624によってアクセス可能なデータを有するメモリの一部610を参照)を結合することができる。これにより、第2のマイクロチップまたはデバイスの書き込み性能及び耐久性を向上させることができる。
一般に、メモリチップは、第1のピンのセット、第2のピンのセット、及び統合されたデータムーバーを含むことができる。第1のピンのセットは、メモリチップが第1の配線を介して第1のマイクロチップまたはデバイスに結合されることを可能にするように構成することができる。第2のピンのセットは、メモリチップが、第1の配線とは別個である第2の配線を介して第2のマイクロチップまたはデバイスに結合されることを可能にするように構成することができる。データムーバーは、第2のマイクロチップまたはデバイスからデータを読み取り、第2のマイクロチップまたはデバイスにデータを書き込むために、第2のピンのセットを介した第2のマイクロチップまたはデバイスへのアクセスを容易にするように構成することができる。
メモリチップは、メモリチップが複数のNVRAMセルを含むという点で、不揮発性ランダムアクセスメモリ(NVRAM)チップであり得る。そして、いくつかの実施形態では、複数のNVRAMセルは、複数の3D XPointメモリセルを含むことができる。また、メモリチップは、メモリチップが複数のDRAMセルを含むという点で、ダイナミックランダムアクセスメモリ(DRAM)チップであり得る。また、メモリチップは、メモリチップが複数のフラッシュメモリセルを含むという点でフラッシュメモリチップであり得る。複数のフラッシュメモリセルは、複数のNAND型フラッシュメモリセルを含むことができる。
第1のマイクロチップまたはデバイスは、別のメモリチップまたはメモリデバイスまたはプロセッサチップまたはプロセッサデバイスであり得る。いくつかの実施形態では、たとえば、第1のマイクロチップまたはデバイスはSoCである。いくつかの実施形態では、たとえば、第1のマイクロチップまたはデバイスはDRAMチップである。いくつかの実施形態では、たとえば、第1のマイクロチップまたはデバイスはNVRAMチップである。メモリチップの一部に格納されたデータは、第1のピンのセットを介して、第1のマイクロチップもしくはデバイスによってまたはそれを介してアクセス可能である場合がある。また、メモリチップの一部に格納されたデータが第1のマイクロチップまたはデバイスを介してアクセス可能である場合、データは別のメモリチップもしくはデバイスまたはプロセッサチップもしくはデバイスによってアクセスされている。そして、第1のマイクロチップまたはデバイスは、メモリチップからデータを読み取ることができ、メモリチップにデータを書き込むことができる。
第2のマイクロチップまたはデバイスは、別のメモリチップまたはメモリデバイスであり得る。いくつかの実施形態では、たとえば、第2のマイクロチップまたはデバイスはDRAMチップである。いくつかの実施形態では、たとえば、第1のマイクロチップまたはデバイスはNVRAMチップである。いくつかの実施形態では、たとえば、第2のマイクロチップまたはデバイスは、フラッシュメモリチップ(たとえば、NAND型フラッシュメモリチップ)である。第2のマイクロチップまたはデバイスの一部に格納されたデータは、第2のピンのセットを介して、メモリチップによってまたはそれを介してアクセス可能である場合がある。また、第2のマイクロチップまたはデバイスの一部に格納されたデータがメモリチップを介してアクセス可能である場合、データは別のメモリチップもしくはデバイスまたはプロセッサチップもしくはデバイスによってアクセスされている(第1のマイクロチップまたはデバイスなど)。そして、メモリチップは、第2のマイクロチップまたはデバイスからデータを読み取ることができ、第2のマイクロチップまたはデバイスにデータを書き込むことができる。
データムーバーは、データを第2のマイクロチップまたはデバイスにブロック単位で移動することによって、メモリチップの一部に格納されたデータを結合するように構成することができる。たとえば、データムーバーは、データを第2のマイクロチップまたはデバイスにブロック単位で移動することによって、第1のピンのセットを介して、第1のマイクロチップまたはデバイスによってまたはそれを介してアクセス可能なメモリチップの一部に格納されたデータを結合するように構成することができる。データムーバーは、データをブロック単位で移動することによって第2のマイクロチップまたはデバイスの書き込み性能及び耐久性を向上させることができ、メモリチップでのシーケンシャルアクセスまたはブロックアクセスは、メモリチップでのランダムアクセスよりも桁違いに高速である。
いくつかの実施形態では、ブロックの粒度は、メモリチップの一部に最初に格納されたデータよりも粗い。たとえば、ブロックの粒度は、第1のピンのセットを介して、第1のマイクロチップまたはデバイスによってまたはそれを介してアクセス可能なメモリチップの一部に最初に格納されたデータよりも粗い。第1のマイクロチップまたはデバイスによってアクセスされるデータなど、メモリチップ内の事前にブロックされたデータよりも粗い粒度のブロックは、第2のマイクロチップまたはデバイスへのデータ書き込みの頻度を減らすことができる。
データムーバーはまた、第1のマイクロチップまたはデバイスがアクセス可能なメモリチップの一部に格納されたデータなど、メモリチップの一部に格納されたデータへの変更の移動をバッファリングするように構成することができる。そして、そのような実施形態では、データムーバーはまた、データムーバーによるバッファリングのために、適切なサイズで第2のマイクロチップまたはデバイスに書き込み要求を送信するように構成することができる。第2のマイクロチップまたはデバイスが第2のマイクロチップまたはデバイスであり、第2のマイクロチップまたはデバイスへの書き込みが、データムーバーによるバッファリングのために適切なサイズであるとき、第2のマイクロチップまたはデバイスは、ブロックを消去し、第2のマイクロチップまたはデバイスでの追加の処理または最小限の処理なしで、書き込みに従ってブロックを第2のマイクロチップまたはデバイスでプログラムすることができる。これは、メモリチップに統合されたデータムーバーが、第2のマイクロチップまたはデバイスの書き込み性能及び耐久性を向上させることができる1つの例示的な方法である。また、データムーバーによるバッファリングを使用すると、ならびにメモリチップの一部のデータ(第1のマイクロチップまたはデバイスによってアクセス可能なチップの一部のデータなど)に頻繁な及び/またはランダムな変更が加えられるとき、第2のマイクロチップまたはデバイスは、頻繁に消去され、変更がメモリチップの一部で起こるにつれて対応するように再プログラムされる必要はない。
バッファリングは、フラッシュメモリで発生する書き込み増幅の影響を除去、または少なくとも制限できるため、データムーバーによるバッファリングは、第2のマイクロチップまたはデバイスがフラッシュメモリチップであるときにいっそう有益である。バッファリングを使用すると、メモリチップによって送信された書き込み要求は、受信側のフラッシュメモリデバイスが期待する適切なサイズまたは粒度に修正できるため、書き込み増幅をバッファリングによって削減または排除することさえ可能である。したがって、フラッシュメモリチップは、書き込みの重複の可能性なしにブロックを消去し、書き込み要求に従ってブロックをプログラムすることができ、したがって第2のマイクロチップまたはデバイスでのさらなる処理を回避することができる。
データムーバーはまた、メモリチップの一部に格納されたデータ(第1のマイクロチップまたはデバイスがアクセス可能なメモリチップの一部のデータなど)への変更の中の変更されたアドレスをバンドルするように構成することができる。そのような実施形態では、データムーバーはまた、第2のマイクロチップまたはデバイスへの書き込み要求を介して第2のマイクロチップまたはデバイスに移動されるメモリチップの別の部分に、バンドルされた変更されたアドレスを書き込むように構成することができる。変更されたアドレスのバンドルは、受信側の第2のマイクロチップまたはデバイスが期待する適切なサイズまたは粒度に対応するようにデータムーバーによって制御することができるため、データムーバーのこれらの特徴は、データムーバーによるバッファリング及びバッファリングに従った書き込み要求の送信を改善することができる。
いくつかの実施形態では、メモリチップはまた、第2のマイクロチップまたはデバイスの論理から物理へのマッピングを含むことができる(たとえば、図6に示される論理から物理へのマッピング612を参照)。そして、第2のマイクロチップまたはデバイスの論理から物理へのマッピングは、バンドルされた変更されたアドレスを入力として使用するように構成できる。いくつかの他の実施形態では、第2のマイクロチップまたはデバイスは、バンドルされた変更されたアドレスが、書き込み要求で第2のマイクロチップまたはデバイスに送信されると、バンドルされた変更されたアドレスを入力として使用するように構成された、それ自体の論理から物理へのマッピング(たとえば、図7に示される論理から物理へのマッピング712を参照)を含むことができる。
本明細書に説明されるいくつかの実施形態は、中間メモリチップ(たとえば、メモリチップ602を参照)、第1のメモリチップ(たとえば、第1のマイクロチップまたはデバイス624を参照)、及び第2のメモリチップ(たとえば、第2のマイクロチップまたはデバイス626を参照)を含むシステムを含むことができる。そのような実施形態では、中間メモリチップは、NVRAMチップ(たとえば、3D XPointメモリチップ)であり得、第2のメモリチップは、フラッシュメモリチップ(たとえば、NAND型フラッシュメモリチップ)であり得、第1のメモリチップは、DRAMチップであり得る。本明細書に説明されるいくつかの実施形態は、中間メモリチップ(たとえば、メモリチップ602を参照)、第2のメモリチップ(たとえば、第2のマイクロチップまたはデバイス626を参照)、及びSoCなどのプロセッサチップ(たとえば、第1のマイクロチップまたはデバイス624を参照)を含むシステムを含むことができる。そのような実施形態では、中間メモリチップは、NVRAMチップ(たとえば、3D XPointメモリチップ)またはDRAMチップであり得、第2のメモリチップは、フラッシュメモリチップ(たとえば、NAND型フラッシュメモリチップ)またはNVRAMチップであり得る。
また、本開示の少なくともいくつかの態様は、プロセッサチップまたはシステムオンチップ(SoC)用のメモリを形成するためのメモリチップのストリングの柔軟なプロビジョニングを対象とする。たとえば、図1~5、及び本明細書の対応する本文を参照されたい。メモリに配線されたプロセッサチップまたはSoCの観点からは、メモリのメモリチップのストリングは、単一のメモリチップの実装と何ら変わりはないように見える。ただし、柔軟なプロビジョニングにより、メモリチップのストリングを使用する利点が得られる。たとえば、柔軟なプロビジョニングにより、メモリ階層をもつメモリチップのストリングを使用する利点を得ることができる。
プロセッサチップまたはSoCは、ストリング内の第1のメモリチップに直接配線することができ、第1のメモリチップの下流のストリング内のメモリチップを認識することなく、第1のメモリチップと相互作用することができる。メモリ内では、第1のメモリチップは、プロセッサチップまたはSoCが、第2のメモリチップを認識することなく第1及び第2のメモリチップのストリングの利点を得るように、第2のメモリチップに直接配線することができ、第2のメモリチップと相互作用することができる。そして、第2のメモリチップは、プロセッサチップまたはSoCが、第1のメモリチップの下流の複数のチップを認識し、それらと相互作用することなく複数のメモリチップのストリングの利点を得るように、第3のメモリチップなどに直接配線することができる。また、いくつかの実施形態では、ストリング内の各チップは、さらに上流または下流のチップを認識することなく、ストリング内のすぐ上流のチップ及び下流のチップを認識し、それらと相互作用する。
いくつかの実施形態では、ストリング内の第1のメモリチップは、DRAMチップであり得る。第1のチップのすぐ下流のストリング内の第2のメモリチップは、NVRAMチップ(たとえば、3D XPointメモリチップ)であり得る。第2のチップのすぐ下流のストリング内の第3のメモリチップは、フラッシュメモリチップ(たとえば、NAND型フラッシュメモリチップ)であり得る。また、たとえば、DRAM→DRAM→NVRAM、またはDRAM→NVRAM→NVRAM、またはDRAM→フラッシュメモリ→フラッシュメモリというストリングであり得る。ただし、DRAM→NVRAM→フラッシュメモリの方が、多層メモリとして柔軟にプロビジョニングされるメモリチップのストリングに対してより効果的なソリューションを提供し得る。また、本明細書に開示されるメモリチップのストリングの柔軟なプロビジョニングを理解するために、例はしばしば、メモリチップの3チップストリングを参照する。しかしながら、メモリチップのストリングは3つを超えるメモリチップを含むことができることを理解されたい。
また、本開示の目的のために、DRAM、NVRAM、3D XPointメモリ、及びフラッシュメモリは、個々のメモリユニットのための技術であり、本明細書に説明されるメモリチップのいずれか1つのためのメモリチップは、コマンドとアドレスのデコード用の論理回路、及びDRAM、NVRAM、3D XPointメモリ、またはフラッシュメモリのメモリユニットのアレイを含むことができることを理解されたい。たとえば、本明細書で説明されるDRAMチップは、コマンドとアドレスのデコード用の論理回路、及びDRAMのメモリユニットのアレイを含む。また、たとえば、本明細書で説明されるNVRAMチップは、コマンドとアドレスのデコード用の論理回路、及びNVRAMのメモリユニットのアレイを含む。そして、たとえば、本明細書で説明されるフラッシュメモリチップは、コマンドとアドレスのデコード用の論理回路、及びフラッシュメモリのメモリユニットのアレイを含む。
また、本明細書で説明されるメモリチップのいずれか1つのためのメモリチップは、着信及び/または発信データのためのキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のユニットとは異なる可能性がある。たとえば、キャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであり得る。
メモリチップのストリング内の各チップは、たとえば、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)またはシリアルアドバンストテクノロジーアタッチメント(SATA)などの配線を介してすぐ下流及び/または上流のチップに接続することができる。メモリチップのストリング内のチップ間の接続のそれぞれは、配線と順次接続することができ、接続は互いとは別個の場合がある。メモリチップのストリング内の各チップは、ストリング内の上流のチップ及び/または下流のチップに接続するための1つまたは複数のピンのセットを含むことができる。いくつかの実施形態では、メモリチップのストリング内の各チップは、ICパッケージ内に封入された単一の集積回路(IC)を含むことができる。そのような実施形態では、ICパッケージは、パッケージの境界上にピンのセットを含むことができる。
プロセッサチップまたはSoC用のメモリの第1のメモリチップのストリング内の第1のメモリチップ(たとえば、DRAMチップ)は、プロセッサチップまたはSoCなどによって、メモリチップのストリング内の第2のメモリチップ(たとえば、NVRAMチップ)のためのキャッシュとして構成できる部分を含むことができる。第1のメモリチップのメモリユニットの一部は、第2のメモリチップのためのキャッシュメモリとして使用することができる。
プロセッサチップまたはSoC用のメモリのメモリチップのストリング内の第2のメモリチップは、メモリチップのストリング内の第3のメモリチップ(たとえば、フラッシュメモリチップ)にアクセスするためのバッファとして、たとえばフィストのメモリチップによって直接的に、及びプロセッサチップまたはSoCによって間接的に構成できる部分を含むことができる。第2のメモリチップ内のメモリユニットの一部は、第3のメモリチップにアクセスするためのバッファとして使用することができる。また、第2のメモリチップは、たとえばフィストのメモリチップによって直接的に、及びプロセッサチップまたはSoCによって間接的に、論理から物理へのアドレスマッピングのためのテーブル(論理から物理へのテーブル)として、または一般的な論理から物理へのアドレスマッピングとして構成できる部分を含むことができる。第2のメモリチップのメモリユニットの一部は、論理から物理へのアドレスマッピングに使用することができる。
プロセッサチップまたはSoC用のメモリのメモリチップのストリング内の第3のメモリチップは、第2のメモリチップで論理から物理へのアドレスマッピングを使用して、第3のメモリチップの変換層(たとえば、フラッシュ変換層機能)を管理できるコントローラを含むことができる。第3のメモリチップの変換層は、第2のメモリチップにおける論理から物理へのアドレスマッピングのコピーまたは派生物などの論理から物理へのアドレスマッピングを含むことができる。
また、いくつかの実施形態では、メモリに接続されたプロセッサチップまたはSoCは、第1のメモリチップにデータを書き込むことによって、第1のメモリチップ内のキャッシュの場所とサイズ、第2のメモリチップ内のバッファと論理から物理へのアドレスマッピング、及び第1のチップ内のキャッシュポリシーパラメータ(たとえば、ライトスルー対ライトバック)を構成することができる。そして、プロセッサチップまたはSoCによる上述の構成及び設定は、そのようなタスクがプロセッサチップまたはSoCから除去されるように、第2のデータ処理チップに委任することができる。たとえば、メモリチップのストリングを有するメモリは、メモリの上述の構成及び設定を提供及び制御するように構成された、プロセッサチップまたはSoCとは別個の専用のコントローラを有することができる。
一般に、多層メモリの柔軟なプロビジョニングを提供するための本明細書に説明される技術によると、メモリユニットの一部を、チップのストリング内の特定のメモリチップにキャッシュまたはバッファとして割り当てる柔軟性とは、メモリチップ(たとえば、DRAM、NVRAM、及びフラッシュメモリチップ)が接続性を実行可能かつ柔軟にするようにどのように構成されるのかである。キャッシュ及びバッファの操作により、異なるサイズ及び/または異なるタイプの下流のメモリデバイスを上流のデバイスに接続する、またはその逆が可能になる。ある意味では、メモリコントローラのいくつかの機能は、メモリチップ内でのキャッシュ及びバッファの操作を可能にするためにメモリチップに実装される。
図1は、本開示のいくつかの実施形態による、多層メモリの柔軟なプロビジョニングを提供するように構成された例示的なメモリシステム100を示す。メモリシステム100は、メモリのメモリチップ102のストリング内に第1のメモリチップ104を含む。メモリシステム100はまた、メモリチップ102のストリング内に第2のメモリチップ106と、メモリチップのストリング内に第3のメモリチップ108とを含む。
図1では、第1のメモリチップ104は、第2のメモリチップ106に直接配線され(たとえば、配線124を参照)、第2のメモリチップと直接相互作用するように構成される。また、第2のメモリチップ106は、第3のメモリチップ108に直接配線され(たとえば、配線126を参照)、第3のメモリチップと直接相互作用するように構成される。
また、メモリチップ102のストリング内の各チップは、ストリング内の上流のチップ及び/または下流のチップに接続するための1つまたは複数のピンのセットを含むことができる(たとえば、ピンのセット132、134、136、及び138を参照)。いくつかの実施形態では、メモリチップのストリング(たとえば、メモリチップ102のストリングまたは図4に示されるメモリチップ402のグループのストリングを参照)内の各チップは、ICパッケージ内に封入された単一のICを含むことができる。たとえば、ピンのセット132は、第1のメモリチップ104の一部であり、配線124及び第2のメモリチップ106の一部であるピンのセット134を介して、第1のメモリチップ104を第2のメモリチップ106に接続する。配線124は、2つのピンのセット132及び134を接続する。また、たとえば、ピンのセット136は、第2のメモリチップ106の一部であり、配線126及び第3のメモリチップ108の一部であるピンのセット138を介して、第2のメモリチップ106を第3のメモリチップ108に接続する。配線126は、2つのピンのセット136及び138を接続する。
また、示されるように、第1のメモリチップ104は、第2のメモリチップ106のためのキャッシュ114を含む。そして、第2のメモリチップ106は、第3のメモリチップ108のためのバッファ116と、第3のメモリチップ108のための論理から物理へのマッピング118とを含む。
第2のメモリチップ106のためのキャッシュ114は、プロセッサチップまたはメモリコントローラチップ(たとえば、図2に示されるプロセッサチップ202及び図3に示されるメモリコントローラチップ302を参照)によって構成することができる。第1のメモリチップ104内のキャッシュ114の場所及びサイズは、対応するデータが、プロセッサチップまたはメモリコントローラチップによって第1のメモリチップに書き込まれることによって、プロセッサチップまたはメモリコントローラチップによって構成することができる。また、第1のメモリチップ104内のキャッシュ114のキャッシュポリシーパラメータは、対応するデータが、プロセッサチップまたはメモリコントローラチップによって第1のメモリチップに書き込まれることによって、プロセッサチップまたはメモリコントローラチップによって構成することができる。
第3のメモリチップ108のためのバッファ116は、プロセッサチップまたはメモリコントローラチップ(たとえば、図2に示されるプロセッサチップ202及び図3に示されるメモリコントローラチップ302を参照)によって構成することができる。第2のメモリチップ106内のバッファ116の場所及びサイズは、対応するデータが、たとえば第1のメモリチップ104を介して間接的に、プロセッサチップまたはメモリコントローラチップによって第2のメモリチップに書き込まれることによって、プロセッサチップまたはメモリコントローラチップによって構成することができる。また、第2のメモリチップ106内のバッファ116のバッファポリシーパラメータは、対応するデータが、たとえば第1のメモリチップ104を介して間接的に、プロセッサチップまたはメモリコントローラチップによって第2のメモリチップに書き込まれることによって、プロセッサチップまたはメモリコントローラチップによって構成することができる。
第3のメモリチップ108のための論理から物理へのマッピング118は、プロセッサチップまたはメモリコントローラチップ(たとえば、図2に示されるプロセッサチップ202及び図3に示されるメモリコントローラチップ302を参照)によって構成することができる。第2のメモリチップ106内の論理から物理へのマッピング118の場所及びサイズは、対応するデータが、たとえば第1のメモリチップ104を介して間接的に、プロセッサチップまたはメモリコントローラチップによって第2のメモリチップに書き込まれることによって、プロセッサチップまたはメモリコントローラチップによって構成することができる。また、第2のメモリチップ106内の論理から物理へのマッピング118のバッファポリシーパラメータは、対応するデータが、たとえば第1のメモリチップ104を介して間接的に、プロセッサチップまたはメモリコントローラチップによって第2のメモリチップに書き込まれることによって、プロセッサチップまたはメモリコントローラチップによって構成することができる。
いくつかの実施形態では、第3のメモリチップ108は、ストリング内のチップの中で最も低いメモリ帯域幅を有する場合がある。いくつかの実施形態では、第1のメモリチップ104は、ストリング内のチップの中で最も高いメモリ帯域幅を有する場合がある。そのような実施形態では、第2のメモリチップ106は、ストリング内のチップの中で次に最も高いメモリ帯域幅を有する場合があり、その結果、第1のメモリチップ104は、ストリング内のチップの中で最も高いメモリ帯域幅を有し、第3のメモリチップ108は、ストリング内のチップの中で最も低いメモリ帯域幅を有する。
いくつかの実施形態では、第1のメモリチップ104は、DRAMチップである、またはそれを含む。いくつかの実施形態では、第1のメモリチップ104は、NVRAMチップである、またはそれを含む。いくつかの実施形態では、第2のメモリチップ106は、DRAMチップである、またはそれを含む。いくつかの実施形態では、第2のメモリチップ106は、NVRAMチップである、またはそれを含む。いくつかの実施形態では、第3のメモリチップ108は、DRAMチップである、またはそれを含む。いくつかの実施形態では、第3のメモリチップ108は、NVRAMチップである、またはそれを含む。そして、いくつかの実施形態では、第3のメモリチップ108は、フラッシュメモリチップである、またはそれを含む。
1つまたは複数のDRAMチップを有する実施形態では、DRAMチップは、コマンドとアドレスのデコード用の論理回路、及びDRAMのメモリユニットのアレイを含むことができる。また、本明細書で説明されるDRAMチップは、着信及び/または発信データのためのキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のDRAMユニットとは異なる可能性がある。たとえば、DRAMチップでキャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであり得る。
1つまたは複数のNVRAMチップを有する実施形態では、NVRAMチップは、コマンドとアドレスのデコード用の論理回路、及び3D XPointメモリのユニットなどのNVRAMのメモリユニットのアレイを含むことができる。また、本明細書で説明されるNVRAMチップは、着信及び/または発信データのためのキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のNVRAMユニットとは異なる可能性がある。たとえば、NVRAMチップでキャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであり得る。
いくつかの実施形態では、NVRAMチップは、不揮発性メモリセルのクロスポイントアレイを含むことができる。不揮発性メモリのクロスポイントアレイは、スタック可能なクロスグリッドデータアクセスアレイと併せて、バルク抵抗の変化に基づいてビット格納を実行できる。さらに、多くのフラッシュベースのメモリとは対照的に、クロスポイント不揮発性メモリは、不揮発性メモリセルを事前に消去せずに不揮発性メモリセルをプログラムできるインプレース書き込み操作を実行できる。
本明細書で述べたように、NVRAMチップは、クロスポイントストレージ及びメモリデバイス(たとえば、3D XPointメモリ)であり得る、またはそれらを含むことができる。クロスポイントメモリデバイスは、トランジスタのない記憶素子を使用し、記憶素子のそれぞれは、列としてともに積み重ねられたメモリセルとセレクタを有する。記憶素子の列は、2つの垂直なワイヤの撚りを介して接続され、一方の撚りは記憶素子の列の上方にあり、他方の撚りは記憶素子の列の下方にある。各記憶素子は、2つの層のそれぞれで1本のワイヤの交差点で個別に選択できる。クロスポイントメモリデバイスは高速で不揮発性であり、処理と格納のための統合されたメモリプールとして使用することができる。
1つまたは複数のフラッシュメモリチップを有する実施形態では、フラッシュメモリチップは、コマンドとアドレスのデコード用の論理回路、及びNAND型フラッシュメモリのユニットなどのフラッシュメモリのメモリユニットのアレイを含むことができる。また、本明細書で説明されるフラッシュメモリチップは、着信及び/または発信データのためのキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のフラッシュメモリユニットとは異なる可能性がある。たとえば、フラッシュメモリチップでキャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであり得る。
また、たとえば、メモリチップのストリングの一実施形態は、DRAM→DRAM→NVRAM、またはDRAM→NVRAM→NVRAM、またはDRAM→フラッシュメモリ→フラッシュメモリを含むことができる。ただし、DRAM→らNVRAM→フラッシュメモリの方が、多層メモリとして柔軟にプロビジョニングされるメモリチップのストリングに対してより効果的なソリューションを提供し得る。
また、本開示の目的のために、DRAM、NVRAM、3D XPointメモリ、及びフラッシュメモリは、個々のメモリユニットのための技術であり、本明細書に説明されるメモリチップのいずれか1つのためのメモリチップは、コマンドとアドレスのデコード用の論理回路、及びDRAM、NVRAM、3D XPointメモリ、またはフラッシュメモリのメモリユニットのアレイを含むことができることを理解されたい。たとえば、本明細書で説明されるDRAMチップは、コマンドとアドレスのデコード用の論理回路、及びDRAMのメモリユニットのアレイを含む。たとえば、本明細書で説明されるNVRAMチップは、コマンドとアドレスのデコード用の論理回路、及びNVRAMのメモリユニットのアレイを含む。たとえば、本明細書で説明されるフラッシュメモリチップは、コマンドとアドレスのデコード用の論理回路、及びフラッシュメモリのメモリユニットのアレイを含む。
また、本明細書で説明されるメモリチップのいずれか1つのためのメモリチップは、着信及び/または発信データのためのキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のユニットとは異なる可能性がある。たとえば、キャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであり得る。
図2は、本開示のいくつかの実施形態による、多層メモリの柔軟なプロビジョニングを提供するように構成された例示的なメモリシステム100及びプロセッサチップ202を示す。図2では、プロセッサチップ202は、第1のメモリチップ104に直接配線され(たとえば、配線204を参照)、第1のメモリチップと直接相互作用するように構成される。
いくつかの実施形態では、プロセッサチップ202は、SoCを含む、またはSoCである。本明細書で説明されるSoCは、コンピューティングデバイスの任意の2つ以上のコンポーネントを統合する集積回路またはチップであり得る、またはそれを含むことができる。2つ以上のコンポーネントは、中央処理装置(CPU)、グラフィックス処理装置(GPU)、メモリ、入出力ポート、及び二次記憶装置のうちの少なくとも1つまたは複数を含むことができる。たとえば、本明細書で説明されるSoCはまた、CPU、GPU、グラフィックスインターフェイス及びメモリインターフェイス、ハードディスク、USB接続、ランダムアクセスメモリ、読み取り専用メモリ、二次記憶装置、またはそれらの任意の組み合わせを単一の回路ダイに含むことができる。また、プロセッサチップ202がSoCである場合、SoCは、少なくとも1つのCPU及び/またはGPUを含む。
本明細書で説明されるSoCの場合、2つ以上のコンポーネントを単一の基板またはマイクロチップ(チップ)に埋め込むことができる。一般に、マザーボードが取り外し可能または交換可能なコンポーネントを収容し、接続するのに対し、SoCはそのコンポーネントのすべてを単一の集積回路に統合するという点で、SoCは従来のマザーボードベースのアーキテクチャとは異なる。2つ以上のコンポーネントが単一の基板またはチップ上に統合されているため、SoCは、同等の機能を備えたマルチチップ設計よりも少ない電力を消費し、はるかに少ない面積を占有する。したがって、いくつかの実施形態では、本明細書で説明されるメモリシステムは、モバイルコンピューティングデバイス(スマートフォンなど)、組み込みシステム、及びモノのインターネットデバイスのSoCに接続することができる、またはその一部であり得る。
プロセッサチップ202は、第2のメモリチップ106のキャッシュ114を構成するように構成することができる。プロセッサチップ202はまた、対応するデータを第1のメモリチップ104に書き込むことによって、キャッシュ114の場所及びサイズを構成するように構成することができる。プロセッサチップ202はまた、対応するデータを第1のメモリチップ104に書き込むことによってキャッシュポリシーパラメータを構成するように構成することができる。
また、プロセッサチップ202は、第3のメモリチップ108のためのバッファ116及び/または第3のメモリチップのための論理から物理へのマッピング118を構成するように構成することができる。プロセッサチップ202はまた、対応するデータを第1のメモリチップ104に書き込むことによって、バッファ116の場所及びサイズを構成するように構成することができる。プロセッサチップ202はまた、対応するデータを第1のメモリチップ104に書き込むことによって、論理から物理へのマッピング118の場所及びサイズを構成するように構成することができる。
図3は、本開示のいくつかの実施形態による、多層メモリの柔軟なプロビジョニングを提供するように構成された例示的なメモリシステム100及びメモリコントローラチップ302を示す。図3では、メモリコントローラチップ302は、第1のメモリチップ104に直接配線され(たとえば、配線304を参照)、第1のメモリチップと直接相互作用するように構成される。
いくつかの実施形態では、メモリコントローラチップ302は、SoCを含む、またはSoCである。そのようなSoCは、コンピューティングデバイスの任意の2つ以上のコンポーネントを統合する集積回路またはチップであり得る、またはそれを含むことができる。2つ以上のコンポーネントは、別個のメモリ、入出力ポート、及び別個の二次記憶装置の少なくとも1つまたは複数を含むことができる。たとえば、SoCは、メモリインターフェイス、ハードディスク、USB接続、ランダムアクセスメモリ、読み取り専用メモリ、二次記憶装置、またはそれらの任意の組み合わせを単一の回路ダイに含むことができる。また、メモリコントローラチップ302がSoCである場合、SoCは、少なくとも1つのデータ処理ユニットを含む。
メモリコントローラチップ302は、第2のメモリチップ106のキャッシュ114を構成するように構成することができる。メモリコントローラチップ302はまた、対応するデータを第1のメモリチップ104に書き込むことによって、キャッシュ114の場所及びサイズを構成するように構成することができる。メモリコントローラチップ302はまた、対応するデータを第1のメモリチップ104に書き込むことによってキャッシュポリシーパラメータを構成するように構成することができる。
また、メモリコントローラチップ302は、第3のメモリチップ108のためのバッファ116及び/または第3のメモリチップのための論理から物理へのマッピング118を構成するように構成することができる。メモリコントローラチップ302はまた、対応するデータを第1のメモリチップ104に書き込むことによって、バッファ116の場所及びサイズを構成するように構成することができる。メモリコントローラチップ302はまた、対応するデータを第1のメモリチップ104に書き込むことによって、論理から物理へのマッピング118の場所及びサイズを構成するように構成することができる。
図4は、本開示のいくつかの実施形態による、それぞれが複数のメモリチップを含む層を備えた多層メモリの柔軟なプロビジョニングを提供するように構成された例示的なメモリシステム400を示す。メモリシステム400は、メモリチップ402のグループのストリングを含む。メモリチップ402のグループのストリングは、第1のタイプのメモリチップを含む第1のグループのメモリチップを含む(たとえば、同じタイプのチップであるメモリチップ404a及び404bを参照)。メモリチップ402のグループのストリングは、第1のタイプのメモリチップまたは第2のタイプのメモリチップを含む第2のグループのメモリチップを含む(たとえば、同じタイプのチップであるメモリチップ406a及び406bを参照)。メモリチップ402のグループのストリングはまた、第1のタイプのメモリチップ、第2のタイプのメモリチップ、または第3のタイプのメモリチップを含む第3のグループのメモリチップを含む(たとえば、同じタイプのチップであるメモリチップ408a及び408bを参照)。第1のタイプのメモリチップは、DRAMチップであり得る、またはそれらを含むことができる。第2のタイプのメモリチップは、NVRAMチップであり得る、またはそれらを含むことができる。第3のタイプのメモリチップは、フラッシュメモリチップであり得る、またはそれらを含むことができる。
また、図4に示されるように、第1のグループのメモリチップの中のチップは、配線424を介して第2のグループのメモリチップの中のチップに直接配線され、第2のグループのメモリチップの中のチップの1つまたは複数の直接相互作用するように構成される。また、図4に示されるように、第2のグループのメモリチップの中のチップは、配線426を介して第3のグループのメモリチップの中のチップに直接配線され、第3のグループのメモリチップの中のチップの1つまたは複数と直接相互作用するように構成される。
また、図4に示されるように、第1のグループのメモリチップの各チップは、第2のグループのメモリチップのためのキャッシュ(たとえば、キャッシュ414を参照)を含む。そして、第2のグループのメモリチップの各チップは、第3のグループのメモリチップのためのバッファ416、及び第3のグループのメモリチップのための論理から物理へのマッピング418を含む。
いくつかの実施形態では、第3のグループのメモリチップ(たとえば、メモリチップ408a及び408bを参照)の各チップは、メモリチップ402のグループのストリング内の他のチップと比較して最低のメモリ帯域幅を有する場合がある。いくつかの実施形態では、第1のグループのメモリチップ(たとえば、メモリチップ404a及び404bを参照)の各チップは、メモリチップ402のグループのストリング内の他のチップと比較して最高のメモリ帯域幅を有する場合がある。そのような実施形態では、第2のグループのメモリチップの各チップ(たとえば、メモリチップ406a及び406b)は、メモリチップ402のグループの他のストリング内の他のチップと比較して次に高いメモリ帯域幅を有する場合があり、その結果、第1のグループのメモリチップの各チップは、最高のメモリ帯域幅を有し、第3のグループのメモリチップの各チップは最低のメモリ帯域幅を有する。
いくつかの実施形態では、第1のグループのメモリチップ(たとえば、メモリチップ404a及び404bを参照)は、DRAMチップまたはNVRAMチップを含むことができる。いくつかの実施形態では、第2のグループのメモリチップ(たとえば、メモリチップ406a及び406bを参照)は、DRAMチップまたはNVRAMチップを含むことができる。いくつかの実施形態では、第3のグループのメモリチップ(たとえば、メモリチップ408a及び408bを参照)は、DRAMチップ、NVRAMチップ、またはフラッシュメモリチップを含むことができる。
図1~図4に示されるように、本開示は、メモリチップのストリングの柔軟なプロビジョニングを対象としている(たとえば、図1~3に示されるメモリチップ102のストリングまたは図4に示されるメモリチップ402のグループのストリングを参照)。そして、メモリチップのストリングの柔軟なプロビジョニングは、メモリを形成する(たとえば、図2に示されるメモリシステム100または図4に示されるメモリシステム400を参照)。
メモリシステム100または400などの本明細書に開示されるメモリシステムは、独自の装置であり得る、または独自のパッケージ内にあり得る。
いくつかの実施形態では、メモリシステム100または400などの本明細書に開示されるメモリシステムは、プロセッサチップもしくはSoCと組み合わせることができる、またはプロセッサチップもしくはSoC用であり得る(たとえば、図2を参照)。プロセッサチップもしくはSoCと組み合わされる、またはプロセッサチップもしくはSoC用に組み合わされるとき、メモリシステム及びプロセッサチップまたはSoCは、単一の装置の一部であり得る、及び/または単一のパッケージングに統合することができる。
また、いくつかの実施形態では、メモリシステム100または400などの本明細書に開示されるメモリシステムは、メモリコントローラチップと組み合わせることができる(たとえば、図3を参照)。メモリコントローラチップと組み合わせる場合、メモリシステム及びメモリコントローラチップは、単一の装置の一部であり得る、及び/または単一のパッケージングに統合することができる。代わりに、チップのストリング内の各チップ、または少なくとも第1のメモリチップ及び第2のメモリチップは、図3に示されるメモリコントローラチップと同様の機能を提供するそれぞれのメモリコントローラを含むことができる。
メモリに配線されたプロセッサチップもしくはSoC(たとえば、図2に示されるプロセッサチップ202を参照)またはメモリコントローラチップ(たとえば、図3に示されるメモリコントローラチップ302を参照)の観点からは、メモリのメモリチップのストリングは、単一のメモリチップの実装と何ら変わりはないように見える。ただし、柔軟なプロビジョニングにより、メモリチップのストリングを使用する利点が得られる。そのような実施形態では、プロセッサチップまたはSoC‐またはメモリコントローラチップ‐は、メモリチップ102のストリング内の第1のメモリチップ(たとえば、第1のメモリチップ104を参照)に直接配線することができ(たとえば、図2に示される配線204または図3に示される配線304を参照)、第1のメモリチップの下流のストリング内のメモリチップ(たとえば、第1のメモリチップ104の下流である第2のメモリチップ106及び第3のメモリチップ108を参照)を認識することなく第1のメモリチップと相互作用することができる。
メモリ(たとえば、メモリシステム100または400を参照)内では、第1のメモリチップ(たとえば、第1のメモリチップ104またはメモリチップ404aもしくは404bの1つを参照)は、プロセッサチップ、SoC、またはメモリコントローラチップ(たとえば、プロセッサチップ202及びメモリコントローラチップ302を参照)が、第2のメモリチップを認識することなく第1及び第2のメモリチップのストリングの利点を得るように、第2のメモリチップ(たとえば、第2のメモリチップ106またはメモリチップ406aもしくは406bの1つを参照)と直接配線することができ、第2のメモリチップと相互作用することができる。そして、第2のメモリチップ(たとえば、第1のメモリチップ104またはメモリチップ404aもしくは404bの1つを参照)は、プロセサチップ、SoC、またはメモリコントローラチップが、第1のメモリチップの下流の複数のチップを認識し、それらと相互作用することなく、複数のメモリチップのストリング(たとえば、メモリチップ102のストリングまたはメモリチップ402のグループのストリングを参照)の利点を得るように、第3のメモリチップ(たとえば、第3のメモリチップ108またはメモリチップ408aもしくは408bの1つを参照)などに直接配線することができる。また、いくつかの実施形態では、ストリング内の各チップは、さらに上流または下流のチップを認識することなく、ストリング内のすぐ上流のチップ及び下流のチップを認識し、それらと相互作用する。
前述のように、柔軟なプロビジョニングにより、メモリ階層をもつメモリチップのストリングを使用する利点を得ることができる。したがって、たとえば、いくつかの実施形態では、ストリング内の第1のメモリチップ(たとえば、第1のメモリチップ104を参照)は、メモリ内で最高のメモリ帯域幅を有するチップであり得る。第1のメモリチップのすぐ下流のストリング内の第2のメモリチップ(たとえば、第2のメモリチップ106を参照)は、(第1のチップよりも製造がより安価であるなどの他の利点を有し得る、または第1のチップよりもデータを格納時に信頼性が高いもしくは永続的である場合がある)メモリの次に高いメモリ帯域幅を有するチップであり得る。第2のチップ(またはストリングが3つを超えるメモリチップを有する、ストリング内の最後の下流チップ)のすぐ下流のストリング内の第3のメモリチップ(たとえば、第3のメモリチップ108を参照)は、最低のメモリ帯域幅を有する場合がある。そのような例での第3のメモリチップ(または3つを超えるメモリチップを有する他の例の最後の下流チップ)は、データを格納するための最も費用効果が高いチップまたは最も信頼性が高いもしくは永続的なチップであり得る。
いくつかの実施形態では、ストリング内の第1のメモリチップは、DRAMチップであり得る。そのような実施形態では、第1のチップのすぐ下流のストリング内の第2のメモリチップは、NVRAMチップ(たとえば、3D XPointメモリチップ)であり得る。そして、そのような実施形態では、第2のチップのすぐ下流のストリング内の第3のメモリチップは、フラッシュメモリチップ(たとえば、NAND型フラッシュメモリチップ)であり得る。
前述のように、ここに開示されるメモリチップのストリングの柔軟なプロビジョニングを理解するために、例はしばしば、メモリチップの3チップストリング(たとえば、図1~3に示されるメモリチップ102のストリング、及び図4に示されるメモリチップ402のグループのストリングを参照)を参照する。しかしながら、メモリチップのストリングは、3つを超えるメモリチップ、またはグループのそれぞれがチップの層である、3つを超えるグループのチップを含むことができることを理解されたい。
前述のように、メモリチップのストリングのいくつかの実施形態は、ストリング内の第1のチップであるDRAMメモリチップ、ストリング内の第2のチップであるNVRAMチップ、及びストリング内の第3のチップであるフラッシュメモリチップ(たとえば、NAND型フラッシュメモリ)を含むことができ、ストリング内のバルクメモリチップとして使用することができる。そのような実施形態及びメモリチップタイプの他の配置を伴う他の実施形態では、メモリチップのストリング内の各チップは、配線(たとえば、PCIeまたはSATA)を介してすぐ下流及び/または上流のチップに接続されている。メモリチップのストリング内のチップ間の接続のそれぞれは、配線と順次接続することができ、接続は互いとは別個である場合がある(たとえば、配線124と126、及び配線424と426を参照)。また、メモリチップのストリング内の各チップは、ストリング内の上流のチップ及び/または下流のチップに接続するための1つまたは複数のピンのセットを含むことができる(たとえば、図1に示されるピンのセット132、134、136、及び138を参照)。いくつかの実施形態では、メモリチップのストリング(たとえば、メモリチップ102のストリングまたはメモリチップ402のグループのストリングを参照)内の各チップは、ICパッケージ内に封入された単一のICを含むことができる。そのような実施形態では、ICパッケージは、パッケージの境界上にピンのセット(ピンのセット132、134、136、及び138など)を含むことができる。
プロセッサチップまたはSoC用のメモリのメモリチップのストリング内の第1のメモリチップ(たとえば、DRAMチップ)は、プロセッサチップまたはSoCなどによって、ストリング内の第2のメモリチップ(たとえば、NVRAMチップ)のためのキャッシュ(たとえば、第2のメモリチップのためのキャッシュ114を参照)として構成できる部分を含むことができる。第1のメモリチップのメモリユニットの一部は、第2のメモリチップのためのキャッシュメモリとして使用することができる。
プロセッサチップまたはSoC用のメモリのメモリチップのストリング内の第2のメモリチップは、たとえばフィストのメモリチップによって直接的に、及びプロセッサチップまたはSoCによって間接的に、ストリング内の第3のメモリチップ(たとえば、フラッシュメモリチップ)にアクセスするためのバッファ(たとえば、第3のメモリチップのためのバッファ116を参照)として構成できる部分を含むことができる。第2のメモリチップ内のメモリユニットの一部は、第3のメモリチップにアクセスするためのバッファとして使用することができる。また、第2のメモリチップは、たとえばフィストのメモリチップによって直接的に、及びプロセッサチップまたはSoCによって間接的に、論理から物理へのアドレスマッピングのためのテーブル(論理から物理へのテーブル)として、または一般的な論理から物理へのアドレスマッピング(たとえば、論理から物理へのマッピング118を参照)として構成できる部分を含むことができる。第2のメモリチップのメモリユニットの一部は、論理から物理へのアドレスマッピングに使用することができる。
プロセッサチップまたはSoC用のメモリのメモリチップのストリング内の第3のメモリチップは、第2のメモリチップで論理から物理へのアドレスマッピングを使用して、第3のメモリチップの変換層(たとえば、フラッシュ変換層機能)を管理できるコントローラ(たとえば、コントローラ128を参照)を含むことができる(たとえば、変換層130を参照)。第3のメモリチップの変換層は、第2のメモリチップにおける論理から物理へのアドレスマッピングのコピーまたは派生物などの論理から物理へのアドレスマッピングを含むことができる。
また、いくつかの実施形態では、メモリに接続されたプロセッサチップまたはSoC(たとえば、プロセッサチップ202を参照)は、第1のメモリチップ(たとえば、第1のメモリチップ104を参照)にデータを書き込むことによって、第1のメモリチップ内のキャッシュの場所とサイズ、第2のメモリチップ内のバッファと論理から物理へのアドレスマッピング、及び第1のチップ内のキャッシュポリシーパラメータ(たとえば、ライトスルー対ライトバック)を構成することができる。そして、プロセッサチップまたはSoCによる上述の構成及び設定は、そのようなタスクがプロセッサチップまたはSoCから除去されるように、第2のデータ処理チップに委任することができる(たとえば、図3に示されるメモリコントローラチップ302を参照)。たとえば、メモリチップのストリングを有するメモリは、メモリの上述の構成及び設定を提供及び制御するように構成された、プロセッサチップまたはSoCとは別個の専用のコントローラを有することができる(たとえば、メモリコントローラチップ302を参照)。
本開示の目的のため、メモリチップのストリング内のメモリチップが、類似したメモリチップのグループによって置き換えられる場合があり、その結果、ストリングは、類似したチップのグループのストリング(たとえば、図4に示されるメモリチップ402のグループのストリングを参照)を含むことを理解されたい。そのような例では、類似したチップの各グループが文字列内のノードである。また、いくつかの実施形態では、メモリチップのストリングのノードは、単一のチップノードと複数のチップノード(図面には示されていない)の組み合わせで構成することができる。たとえば、メモリチップのストリングでは、第1のメモリチップ(たとえば、DRAMチップ)は、類似したメモリチップのグループ(たとえば、DRAMチップのグループ)に置き換えることができ、第2のメモリチップ(たとえば、NVRAMチップ)は、類似したメモリチップのグループ(たとえば、NVRAMチップのグループ)に置き換えることができ、第3のメモリチップ(たとえば、フラッシュメモリチップ)は、類似したメモリチップのグループ(たとえば、フラッシュメモリチップのグループ)、またはそれらのなんらかの組み合わせに置き換えることができる。
図5は、本開示のいくつかの実施形態による例示的なコンピューティングデバイス500の例示的な部分を示す。コンピューティングデバイス500は、図5に示されるように、コンピュータネットワーク502を介して他のコンピューティングデバイスに通信可能に結合できる。コンピューティングデバイス500は、少なくともバス504、プロセッサ506(図2に示されるCPU及び/またはプロセッサチップ202など)、メインメモリ508、ネットワークインターフェース510、及びデータストレージシステム512を含む。バス504は、プロセッサ506、メインメモリ508、ネットワークインターフェース510、及びデータストレージシステム512を通信可能に結合する。コンピューティングデバイス500はコンピュータシステムを含み、コンピュータシステムは、少なくとも、プロセッサ506、メインメモリ508(たとえば、読み出し専用メモリ(ROM)、フラッシュメモリ、DRAM、たとえばシンクロナスDRAM(SDRAM)またはラムバスDRAM(RDRAM)、NVRAM、SRAMなど)、及びデータストレージシステム512を含んでおり、これらは、バス504(多重バス及び配線を含むことができる)を介して互いと通信する。
メインメモリ508は、図1に示されるメモリシステム100を含むことができる。また、メインメモリ508は、図4に示されるメモリシステム400を含むことができる。いくつかの実施形態では、データストレージシステム512は、図1に示されるメモリシステム100を含むことができる。そして、データストレージシステム512は、図4に示されるメモリシステム400を含むことができる。
プロセッサ506は、マイクロプロセッサ、中央処理ユニットなどの1つまたは複数の汎用処理装置を表すことができる。プロセッサ506は、図2に示されるプロセッサ202であり得る、またはそれを含むことができる。プロセッサ506は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサであり得る。プロセッサ506はまた、1つまたは複数の特殊用途処理装置、たとえば特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、プロセッサインメモリ(PIM)などであり得る。プロセッサ506は、本明細書で説明される操作及びステップを実行するための命令を実行するように構成することができる。プロセッサ506はさらに、ネットワーク502などの1つまたは複数の通信ネットワークを介して通信するために、ネットワークインターフェース510などのネットワークインターフェースデバイスを含むことができる。
データストレージシステム512は、本明細書で説明される方法または機能のうちのいずれか1つまたは複数を具現化する1つまたは複数の命令セットまたはソフトウェアが格納されたマシン可読記憶媒体(コンピュータ可読媒体としても知られている)を含むことができる。命令はまた、マシン可読記憶媒体を構成するコンピュータシステム、メインメモリ508、及びプロセッサ506によるその実行中に、メインメモリ508内及び/またはプロセッサ506内に完全にまたは少なくとも部分的に存在することができる。
メモリ、プロセッサ、及びデータ記憶装置部分を、例示的な実施形態においてそれぞれ単一部分であると示しているが、各部分は、命令を格納してそのそれぞれの操作を実行できる単一部分または複数部分を含むと解釈されるべきである。また用語「マシン可読記憶媒体」には、任意の媒体であって、マシンが実行するように命令のセットを記憶またはエンコードすることができ、本開示の方法のいずれか1つまたは複数をマシンに行わせる媒体が含まれると解釈すべきである。したがって、用語「マシン可読記憶媒体」は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されるものではないと解釈されるものとする。
データムーバーを有するメモリチップに戻って参照すると、図6は、本開示のいくつかの実施形態による、統合されたデータムーバー608を有するメモリチップ602を含む例示的なシステム600を示している。図6では、メモリチップ602は、メモリチップ602が第1の配線634を介して第1のマイクロチップまたはデバイス624に結合されることを可能にするように構成された第1のピンのセット604を含む。また示されるように、第1のマイクロチップまたはデバイス624は、第1のマイクロチップまたはデバイス624が第1の配線634を介してメモリチップ602に結合されることを可能にするように構成されたピンのセット605を有する。メモリチップ602はまた、メモリチップ602が、第1の配線634とは別個である第2の配線636を介して第2のマイクロチップまたはデバイス626に結合されることを可能にするように構成された第2のピンのセット606を有する。また示されるように、第2のマイクロチップまたはデバイス626は、第2のマイクロチップまたはデバイス626が第2の配線636を介してメモリチップ602に結合されることを可能にするように構成されたピンのセット607を有する。メモリチップ602はまた、第2のマイクロチップまたはデバイス626からデータを読み取り、第2のマクロチップまたはデバイス626にデータを書き込むために、第2のピンのセット606を介して第2のマイクロチップまたはデバイス626へのアクセスを容易にするように構成されたデータムーバー608を含む。
一般に、データムーバー608は、様々な方法を使用して、第2のマイクロチップまたはデバイス626に向かう途中で、メモリチップ602に格納されたデータを結合することができる。これにより、第2のマイクロチップまたはデバイス626の書き込み性能及び耐久性を向上させることができる。たとえば、メモリチップでのシーケンシャルアクセスまたはブロックアクセスは、メモリチップでのランダムアクセスよりも桁違いに高速である。いくつかの実施形態では、メモリチップ602のメモリの一部610に格納されたデータは、第1のピンのセット604を介して、第1のマイクロチップまたはデバイス624によってまたはそれを介してアクセス可能である。そして、そのような実施形態では、データムーバー608は、データを第2のマイクロチップまたはデバイス626にブロック単位で移動することによって、メモリチップ602のメモリの一部610に格納されたデータを結合するように構成される。このようにして、第2のマイクロチップまたはデバイス626の書き込み性能及び耐久性は向上する。
また、そのような実施形態及び他の実施形態では、ブロックの粒度は、メモリチップ602のメモリの一部610に格納されたデータよりも粗い場合がある。第1のマイクロチップまたはデバイスによってアクセスされるデータなど、メモリチップ602内の事前にブロック化されたデータよりも粗い粒度のブロックは、第2のマイクロチップまたはデバイスへのデータ書き込みの頻度を減らすことができる。
たとえば図6に示されるいくつかの実施形態では、メモリチップ602のメモリの一部610に格納されたデータは、第1のピンのセット604を介して、第1のマイクロチップまたはデバイス624によってまたはそれを介してアクセス可能である場合がある。また、メモリチップ602のメモリの一部610に格納されたデータが第1のマイクロチップまたはデバイス624を介してアクセス可能である場合、データは別のメモリチップもしくはデバイスまたはプロセッサチップもしくはデバイス(図6に示されていないが、第2のメモリチップ106がメモリチップ602として機能している図2及び図3にある程度示されている)によってアクセスされている。そして、第1のマイクロチップまたはデバイス624は、メモリチップ602からデータを読み取ることができ、メモリチップ602にデータを書き込むことができる。
たとえば図6に示されるいくつかの実施形態では、第2のマイクロチップまたはデバイス626のメモリの一部630に格納されたデータは、第2のピンのセット606を介して、メモリチップ602によってまたはそれを介してアクセス可能である場合がある。また、第2のマイクロチップまたはデバイス626のメモリの一部630に格納されたデータがメモリチップ602を介してアクセス可能である場合、データは別のメモリチップもしくはデバイスまたはプロセッサチップもしくはデバイス(第1のマイクロチップまたはデバイス624など)によってアクセスされている。そして、メモリチップ602は、第2のマイクロチップまたはデバイス626からデータを読み取ることができ、第2のマイクロチップまたはデバイス626にデータを書き込むことができる。
たとえば図6に示されるいくつかの実施形態では、データムーバー608は、メモリチップ602のメモリの一部610に格納されたデータへの変更の移動をバッファリングするように構成される。また、データムーバー608は、データムーバー608によるバッファリングのために、適切なサイズで第2のマイクロチップまたはデバイス626に書き込み要求を送信するように構成される。
第2のマイクロチップまたはデバイス626への書き込みが、データムーバー608によるバッファリングのために適切なサイズであるとき、第2のマイクロチップまたはデバイスは、ブロックを消去し、第2のマイクロチップまたはデバイスでの追加の処理または最小限の処理なしで、書き込みに従ってブロックを第2のマイクロチップまたはデバイスでプログラムすることができる。これは、メモリチップ602に統合されたデータムーバー608が、第2のマイクロチップまたはデバイスの書き込み性能及び耐久性を向上させることができる1つの例示的な方法である。また、データムーバー608によるバッファリングを使用すると、ならびにメモリチップ602の一部のデータ(第1のマイクロチップまたはデバイスによってアクセス可能なメモリの一部610のデータなど)に頻繁な及び/またはランダムな変更が加えられるとき、第2のマイクロチップまたはデバイス626は、頻繁に消去され、変更がメモリチップ602で起こるにつれて対応するように再プログラムされる必要はない。
バッファリングは、フラッシュメモリで発生する書き込み増幅の影響を除去、または少なくとも制限できるため、データムーバー608によるバッファリングは、第2のマイクロチップまたはデバイス626がフラッシュメモリチップであるときにいっそう有益である。バッファリングを使用すると、メモリチップ602によって送信された書き込み要求は、受信側のフラッシュメモリデバイスが期待する適切なサイズまたは粒度に修正できるため、書き込み増幅をバッファリングによって削減または排除することさえ可能である。したがって、フラッシュメモリチップは、書き込みの重複の可能性なしにブロックを消去し、書き込み要求に従ってブロックをプログラムすることができ、したがって第2のマイクロチップまたはデバイス626でのさらなる処理を回避することができる。
また、データムーバー608は、メモリチップ602のメモリの一部610に格納されたデータへの変更の中の変更されたアドレスをバンドルするように構成することができる。そして、データムーバー608は、第2のマイクロチップまたはデバイス626への書き込み要求を介して第2のマイクロチップまたはデバイス626に移動されるメモリチップ602の別の部分に、バンドルされた変更されたアドレスを書き込むように構成することができる。変更されたアドレスのバンドルは、受信側の第2のマイクロチップまたはデバイス626が期待する適切なサイズまたは粒度に対応するようにデータムーバーによって制御することができるため、データムーバー608によるバンドルによって、データムーバーによるバッファリング及びバッファリングに従った書き込み要求の送信を改善することができる。
たとえば図6に示されるいくつかの実施形態では、メモリチップ602は、バンドルされた変更されたアドレスを入力として使用するように構成された第2のマイクロチップまたはデバイス626のための論理から物理へのマッピング612を含む。
図7は、本開示のいくつかの実施形態による、図6に示されるメモリチップ602、及びデータムーバーから転送されたデータを受信し、受信したデータをマッピングするための論理から物理へのマッピング(たとえば、論理から物理へのマッピング712を参照)を有するマイクロチップまたはデバイスを含む例示的なシステム700を示す。システム700は、システム700においては、第2のマイクロチップまたはデバイス626のための論理から物理へのマッピング712が第2のマイクロチップまたはデバイス626で提供されることを除いて、システム600と同様である。これは、メモリチップ602上で第2のマイクロチップまたはデバイスのための論理から物理へのマッピングを提供する代わりである(たとえば、図6に示される論理から物理へのマッピング612を参照)。
システム700と同様の実施形態によれば、第2のマイクロチップまたはデバイス626は、それ自体のための論理から物理へのマッピング712を含む。そして、論理から物理へのマッピング712は、バンドルされた変更されたアドレスがメモリチップ602のデータムーバー608から第2のマイクロチップまたはデバイス626への書き込み要求で送信されると、バンドルされた変更されたアドレスを入力として使用するように構成される。別の言い方をすれば、バンドルされた変更されたアドレスが、第2のマイクロチップまたはデバイス626への書き込み要求で、メモリチップ602のデータムーバー608から第2のマイクロチップまたはデバイス626によって受信されると、論理から物理へのマッピング712は、バンドルされた変更されたアドレスを入力として使用するように構成されている。
図8は、本開示のいくつかの実施形態による、暗号化及び認証回路(たとえば、暗号エンジン802及びゲートキーパー804を参照)を有するとしても示される、図6に示されるメモリチップ602を含む例示的なシステム800を示す。図8に示されるように、いくつかの実施形態では、メモリチップ602は、長期格納のために第2のマイクロチップまたはデバイス626へ移動されるデータを保護するように構成された暗号化エンジン802を含む。また、示されるように、そのような実施形態では、メモリチップ602は、第2のマイクロチップまたはデバイス626に格納された保護されたデータにアクセスするための認証プロセスを提供するように構成されたゲートキーパー804を含む。また、ゲートキーパー804は、認証プロセスに従って保護されたデータを復号するように構成することができる。いくつかの他の実施形態では、暗号化エンジンは、メモリチップ602上でホストされる代わりに、別のチップまたはデバイス上でホストされる場合がある。
図7及び図8はまた、図6に示される他のコンポーネントを示す。たとえば、図7及び図8は、メモリチップ602が第1の配線634を介して第1のマイクロチップまたはデバイス624に結合されることを可能にするように構成された第1のピンのセット604を含むメモリチップ602を示す。また図7及び図8に示されるように、第1のマイクロチップまたはデバイス624は、第1のマイクロチップまたはデバイス624が第1の配線634を介してメモリチップ602に結合されることを可能にするように構成されたピンのセット605を有する。また図7及び図8に示されるように、メモリチップ602はまた、メモリチップ602が、第1の配線634とは別個である第2の配線636を介して第2のマイクロチップまたはデバイス626に結合されることを可能にするように構成された第2のピンのセット606を有する。また示されるように、第2のマイクロチップまたはデバイス626は、第2のマイクロチップまたはデバイス626が第2の配線636を介してメモリチップ602に結合されることを可能にするように構成されたピンのセット607を有する。メモリチップ602はまた、第2のマイクロチップまたはデバイス626からデータを読み取り、第2のマクロチップまたはデバイス626にデータを書き込むために、第2のピンのセット606を介して第2のマイクロチップまたはデバイス626へのアクセスを容易にするように構成されたデータムーバー608を含む。
図6~図8に示されるシステムに関して、メモリチップ602は、NVRAMチップであり得、そのような実施形態によれば、メモリチップ602は、複数のNVRAMセルを含む。そのような例の複数のNVRAMセルは、複数の3D XPointメモリセルであり得る、またはそれらを含むことができる。代わりに、メモリチップ602は、ダイナミックDRAMチップであり得、そのような実施形態によれば、メモリチップ602は、複数のDRAMセルを含む。また、メモリチップ602は、フラッシュメモリチップであり得、そのような実施形態によれば、メモリチップ602は、複数のフラッシュメモリセルを含む。そのような実施形態での複数のフラッシュメモリセルは、複数のNAND型フラッシュメモリセルであり得る、またはそれらを含むことができる。
第2のマイクロチップまたはデバイス626は、別のメモリチップまたはメモリデバイスであり得る。いくつかの実施形態では、たとえば、第2のマイクロチップまたはデバイス626はDRAMチップである。いくつかの実施形態では、たとえば、第2のマイクロチップまたはデバイス626はNVRAMチップである。いくつかの実施形態では、たとえば、第2のマイクロチップまたはデバイス626は、フラッシュメモリチップ(たとえば、NAND型フラッシュメモリチップ)である。
いくつかの実施形態は、中間メモリチップ(たとえば、図6に示されるメモリチップ602を参照)、第1のメモリチップ(たとえば、第1のマイクロチップまたはデバイス624を参照)、及び第2のメモリチップ(たとえば、第2のマイクロチップまたはデバイス626を参照)を有するシステムを含むことができる。そして、そのような実施形態では、中間メモリチップは、中間メモリチップが第1の配線(たとえば、配線634を参照)を介して第1のメモリチップに結合されることを可能にするように構成された第1のピンのセット(たとえば、第1のピンのセット604を参照)を含む。中間メモリチップはまた、中間メモリチップが、第1の配線とは別個である第2の配線(たとえば、配線636を参照)を介して第2のメモリチップに結合されることを可能にするように構成された第2のピンのセット(たとえば、第2のピンのセット606を参照)を含むことができる。そして、中間メモリチップは、第2のメモリチップからデータを読み取り、第2のメモリチップにデータを書き込むために、第2のピンのセットを介して第2のメモリチップへのアクセスを容易にするように構成されたデータムーバー(たとえば、データムーバー608を参照)を含むことができる。
そのような実施形態では、中間メモリチップは、NVRAMチップであり得、NVRAMチップは、複数のNVRAMセルを含む。代わりに、中間メモリチップは、DRAMチップであり得、DRAMチップは、複数のDRAMセルを含む。そのような例の複数のNVRAMセルは、複数の3D XPointメモリセルであり得る、またはそれらを含むことができる。
また、そのような実施形態では、第2のメモリチップは、フラッシュメモリチップであり得、フラッシュメモリチップは、複数のフラッシュメモリセルを含む。そのような実施形態での複数のフラッシュメモリセルは、複数のNAND型フラッシュメモリセルであり得る、またはそれらを含むことができる。代わりに、第2のメモリチップは、NVRAMチップであり得、NVRAMチップは、複数のNVRAMセルを含む。そのような例の複数のNVRAMセルは、複数の3D XPointメモリセルであり得る、またはそれらを含むことができる。また、第2のメモリチップは、DRAMチップであり得、DRAMチップは、複数のDRAMセルを含む。
また、そのような実施形態では、第1のメモリチップは、DRAMチップであり得、DRAMチップは、複数のDRAMセルを含む。代わりに、第1のメモリチップは、NVRAMチップであり得、NVRAMチップは、複数のNVRAMセルを含む。そのような例の複数のNVRAMセルは、複数の3D XPointメモリセルであり得る、またはそれらを含むことができる。
いくつかの実施形態は、中間メモリチップ(たとえば、図6に示されるメモリチップ602を参照)、第2のメモリチップ(たとえば、第2のマイクロチップまたはデバイス626を参照)、及びSoCなどのプロセッサチップ(たとえば、第1のマイクロチップまたはデバイス624を参照)を有するシステムを含むことができる。そのような実施形態では、中間メモリチップは、中間メモリチップが第1の配線(たとえば、配線634を参照)を介してプロセッサチップに結合されることを可能にするように構成された第1のピンのセット(たとえば、第1のピンのセット604を参照)を含む。また、中間メモリチップは、中間メモリチップが、第1の配線とは別個である第2の配線(たとえば、配線636を参照)を介して第2のメモリチップに結合されることを可能にするように構成された第2のピンのセット(たとえば、第2のピンのセット606を参照)を含むことができる。そして、中間メモリチップは、第2のメモリチップからデータを読み取り、第2のメモリチップにデータを書き込むために、第2のピンのセット及び第2の配線を介して第2のメモリチップへのアクセスを容易にするように構成されたデータムーバー(たとえば、データムーバー608を参照)を含むことができる。
いくつかの実施形態では、メモリチップ602の1つまたは複数のインスタンス(図6~図8に示されるメモリチップ602の異なるインスタンスなど)は、図1~図3に示されるメモリチップ102のストリングの柔軟なプロビジョニングにおいて1つまたは複数のメモリチップとして使用することができる。また、メモリチップ602の1つまたは複数のインスタンスは、図4に示されるメモリチップ402のストリングの柔軟なプロビジョニングにおいて1つまたは複数のメモリチップとして使用することができる。
また、中間メモリチップ(たとえば、図6に示されるメモリチップ602を参照)、第1のメモリチップ(たとえば、第1のマイクロチップまたはデバイス624を参照)、及び第2のメモリチップ(たとえば、第2のマイクロチップまたはデバイス626)を有するシステムは、図1~図3に示されるメモリチップ102のストリングに含めることができる。たとえば、メモリチップ602は、第2のメモリチップ106であり得る、またはそれを含むことができ、第1のマイクロチップまたはデバイス624は、第1のメモリチップ104であり得る、またはそれを含むことができ、第2のマイクロチップまたはデバイス626は、第3のメモリチップ108であり得る、またはそれを含むことができる。
いくつかの実施形態では、メモリチップ602は、メモリチップ102のストリング内の第1のメモリチップ104であり得る、またはそれを含むことができる。そのような実施形態では、たとえば、第1のマイクロチップまたはデバイス624は、図2に示されるプロセッサチップ202または図3に示されるメモリコントローラチップ302であり得る、またはそれを含むことができる。また、そのような実施形態では、第2のマイクロチップまたはデバイス626は、メモリチップ102のストリング内の第2のメモリチップ106であり得る、またはそれを含むことができる。
いくつかの実施形態では、システム600、700、及び800のうちの任意の1つまたは複数は、図5に示されるメインメモリ508及び/またはデータストレージシステム512に含めることができる。そのような実施形態及び他の実施形態では、第1のマイクロチップまたはデバイス624は、プロセッサ506であり得る、その一部であり得る、またはそれを含むことができる。
メモリチップ602と同様に、本明細書で説明されるメモリチップの任意の他のメモリチップ(たとえば、メモリチップ104、106、及び108)は、メモリチップに、またはメモリチップを介して移動されるデータを保護するための暗号化エンジン及び/または認証ゲートキーパーを含むことができる(図8に示される暗号化エンジン802及びゲートキーパー804を参照)。また、メモリチップ602と同様に、本明細書で説明される任意の他のメモリチップ(たとえば、メモリチップ104、106、及び108を参照)は、データムーバー608などのデータムーバーを含むことができる。
データ移動のためのプログラム可能なエンジンを有するメモリチップに戻って参照すると、図9は、本開示のいくつかの実施形態による、データ移動のためのプログラム可能なエンジン910、及びプロセッサチップ924(たとえば、SoC)と第2のメモリチップ926への直接接続を有する第1のメモリチップ902を含む例示的なシステム900を示す。
図9では、第1のメモリチップ902は、第1のメモリチップ902が第1の配線934を介してプロセッサチップ924に結合されることを可能にするように構成された第1のピンのセット904を含む。また示されるように、プロセッサチップ924は、プロセッサチップ924が第1の配線934を介して第1のメモリチップ902に結合されることを可能にするように構成されたピンのセット905を有する。第1のメモリチップ902はまた、第1のメモリチップ902が、第1の配線934とは別個である第2の配線936を介して第2のメモリチップ926に結合されることを可能にするように構成された第2のピンのセット906を含む。また、示されるように、第2のメモリチップ926は、第2のメモリチップ926が第2の配線936を介して第1のメモリチップ902に結合されることを可能にするように構成されたピンのセット907を有する。第1のメモリチップ902はまた、ピンのセット904と905及び配線934を介してプロセッサチップ924から送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域908を含む。第1のメモリチップ902はまた、事前定義されたメモリ領域908に格納されたプログラムデータに従って第2のメモリチップ926からデータを読み取り、第2のメモリチップ926にデータを書き込むために、第2のメモリチップ926へのアクセスを容易にするように構成されたプログラム可能なエンジン910を含む。第2のメモリチップ926へのアクセスは、ピンのセット906と907、及び配線936を介して発生する。
図9に示されるように、事前定義されたメモリ領域908は、プログラム可能なエンジン910のコマンドキュー912として構成された部分を含むことができる。そのような実施形態では、プログラム可能なエンジン910は、コマンドキュー912に従って、第2のメモリチップ926へのアクセスを容易にするように構成することができる。事前定義されたメモリ領域908に格納されたプログラムデータの一部は、コマンドキュー912を制御するように構成することができる。また、第1のメモリチップ902は、第2のメモリチップ926に移動されるデータを格納するように構成されたメモリ914の一部を含むことができる。メモリ914の一部に格納されたデータは、コマンドキュー912に従って、第2のメモリチップ926に移動することができる。メモリ914の一部に格納されたデータは、ピンのセット904と905、及び配線934を介してプロセッサチップ924によってその部分に書き込むことができる。
プログラム可能なエンジン910は、第2のメモリチップ926からデータを読み取り、第2のメモリチップ926にデータを書き込むために、ピンのセット906と907及び配線936を介して、第2のメモリチップ926へのアクセスを容易にするように構成することができる。第2のメモリチップ926のメモリ930の一部に格納されたデータは、プログラム可能なエンジン910を有する第1のメモリチップ902によってまたはそれを介してアクセス可能である場合がある。第2のメモリチップ926のメモリ930の一部に格納されたデータがメモリチップ902を介してアクセス可能である場合、データはプロセッサチップ924によってアクセスされている。第1のメモリチップ902は、ピンのセット906と907及び配線936を介して、第2のメモリチップ926のメモリ930の一部からデータを読み取ることができ、第2のメモリチップ926のメモリ930の一部にデータを書き込むことができる。
いくつかの実施形態では、第1のメモリチップ902は、複数のNVRAMセルを含むNVRAMチップであり得る、またはそれを含むことができる。複数のNVRAMセルは、複数の3D XPointメモリセルであり得る、またはそれらを含むことができる。いくつかの実施形態では、第1のメモリチップ902は、複数のDRAMセルを含むDRAMチップであり得る、またはそれを含むことができる。いくつかの実施形態では、第1のメモリチップ902は、複数のフラッシュメモリセルを含むフラッシュメモリチップであり得る、またはそれを含むことができる。複数のフラッシュメモリセルは、複数のNAND型フラッシュメモリセルであり得る、またはそれらを含むことができる。
いくつかの実施形態では、第2のメモリチップ926は、複数のNVRAMセルを含むNVRAMチップであり得る、またはそれを含むことができる。複数のNVRAMセルは、複数の3D XPointメモリセルであり得る、またはそれらを含むことができる。いくつかの実施形態では、第2のメモリチップ926は、複数のフラッシュメモリセルを含むフラッシュメモリチップであり得る、またはそれを含むことができる。複数のフラッシュメモリセルは、複数のNAND型フラッシュメモリセルであり得る、またはそれらを含むことができる。
図10は、本開示のいくつかの実施形態による、プログラム可能なエンジン910、第2のメモリチップ926への直接接続、及びバス1004を介したプロセッサチップ924への接続を有する図9に示される第1のメモリチップ902を含む例示的なシステム1000を示す。バス1004は、図5に示されるバス504であり得る、またはそれを含むことができる、またはそれに含まれる場合がある。また、システム1000は、図9に示される第2のメモリチップ926を含む。
図10では、第1のメモリチップ902は、第1のメモリチップ902が第2の配線936を介して第2のメモリチップ926に結合されることを可能にするように構成された第2のピンのセット906を含むとして示されている。また、示されているのは、第2のメモリチップ926が第2の配線936を介して第1のメモリチップ902に結合されることを可能にするように構成された第2のピンのセット907を有する第2のメモリチップ926である。図10では、事前定義されたメモリ領域908、プログラム可能なエンジン910、及びプログラム可能なエンジン910のコマンドキュー912として構成された部分を含む第1のメモリチップ902も示されている。しかしながら、図10に示される実施形態では、メモリ914の一部に格納されたデータは、バス1004を介してプロセッサチップ924によってその部分に書き込むことができる。また、図10に示されているのは、第1のメモリチップ902とは別個の第3のメモリチップ1002である。第3のメモリチップ1002は、バス1004を介してプロセッサチップ924に結合されている。
図9に示される実施形態と同様に、図10に示されるシステム1000では、プログラム可能なエンジン910は、第2のメモリチップ926からデータを読み取り、第2のメモリチップ926にデータを書き込むために、ピンのセット906と907及び配線936を介して、第2のメモリチップ926へのアクセスを容易にするように構成することができる。第2のメモリチップ926のメモリ930の一部に格納されたデータは、プログラム可能なエンジン910を有する第1のメモリチップ902によってまたはそれを介してアクセス可能である場合がある。しかしながら、第2のメモリチップ926のメモリ930の一部に格納されたデータがメモリチップ902を介してアクセス可能である場合、データはバス1004を介してプロセッサチップ924によってアクセスされている。
図9に示される実施形態と同様に、図10に示されるシステム1000では、第1のメモリチップ902は、ピンのセット906と907及び配線936を介して、第2のメモリチップ926のメモリ930の一部からデータを読み取り、第2のメモリチップ926のメモリ930の一部にデータを書き込むことができる。しかしながら、システム1000では、第1のメモリチップ902(またはプロセッサチップ924)は、バス1004を介して第3のメモリチップ1002のメモリの一部からデータを読み取り、バス1004を介して第3のメモリチップ1002のメモリの一部にデータを書き込む。
いくつかの実施形態では、第3のメモリチップ1002は、複数のNVRAMセルを含むNVRAMチップであり得る、またはそれを含むことができる。複数のNVRAMセルは、複数の3D XPointメモリセルであり得る、またはそれらを含むことができる。いくつかの実施形態では、第3のメモリチップ1002は、複数のDRAMセルを含むDRAMチップであり得る、またはそれを含むことができる。いくつかの実施形態では、第3のメモリチップ1002は、複数のフラッシュメモリセルを含むフラッシュメモリチップであり得る、またはそれを含むことができる。複数のフラッシュメモリセルは、複数のNAND型フラッシュメモリセルであり得る、またはそれらを含むことができる。
図11は、本開示のいくつかの実施形態による、プログラム可能なエンジン910、及び第2のメモリチップ926と第3のメモリチップ1102への直接接続を有する図9に示される第1のメモリチップ902を含む例示的なシステム1100を示す。図11では、第1のメモリチップ902は、第2のメモリチップ926と第3のメモリチップ1102との間にあり、第2のメモリチップ926と第3のメモリチップ1102とを分離している。システム1100は、SoCであり得る、それを含むことができる、またはそれに含まれる場合があるプロセッサチップ1112を含む。プロセッサチップ1112は、第3のメモリチップ1102に直接接続されている。第3のメモリチップ1102は、プロセッサチップ1112及び第1のメモリチップ902に直接接続されている。そして、第3のメモリチップ1102は、第1のメモリチップ902とプロセッサチップ1112との間にあり、第1のメモリチップ902とプロセッサチップ1112とを分離している。別の言い方をすれば、4つのマイクロチップのストリング内で、プロセッサチップ1112は第1のノードであり、第3のメモリチップ1102は第2のノードであり、第1のメモリチップ902は第3のノードであり、第2のメモリチップ926は第4のノードである。
図11では、第1のメモリチップ902は、第1のメモリチップ902が配線1106を介して第3のメモリチップ1102に結合されることを可能にするように構成されたピンのセット1104を含む。また示されるように、第3のメモリチップ1102は、第3のメモリチップ1102が配線1106を介して第1のメモリチップ902に結合されることを可能にするように構成されたピンのセット1105を有する。図9及び図10に示される実施形態と同様に、第1のメモリチップ902はまた、第1のメモリチップ902が、配線1106とは別個である第2の配線936を介して第2のメモリチップ926に結合されることを可能にするように構成された第2のピンのセット906を含む。また示されるように、第3のメモリチップ1102は、第3のメモリチップ1102が配線1110を介してプロセッサチップ1112に結合されることを可能にするように構成されたピンのセット1108を有する。そして、プロセッサチップ1112は、プロセッサチップ112が配線1110を介して第3のメモリチップ1102に結合されることを可能にするように構成されたピンのセット1109を有する。
いくつかの実施形態では、第3のメモリチップ1102は、複数のNVRAMセルを含むNVRAMチップであり得る、またはそれを含むことができる。複数のNVRAMセルは、複数の3D XPointメモリセルであり得る、またはそれらを含むことができる。いくつかの実施形態では、第3のメモリチップ1102は、複数のDRAMセルを含むDRAMチップであり得る、またはそれを含むことができる。
別の言い方をすれば、システム1100は、マイクロチップのストリング内に、第1のメモリチップ902、第2のメモリチップ926、第3のメモリチップ1102、及びプロセッサチップ1112を含む。マイクロチップのストリングにおいて、プロセッサチップ1112は、第3のメモリチップ1102を介して第1のメモリチップ902に接続されている。そして、第1のメモリチップ902は、第2のメモリチップと第3のメモリチップとの間にある。第1のメモリチップ902は、第3のメモリチップ1102を介してプロセッサチップ1112から送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域908を含む。第1のメモリチップ902はまた、事前定義されたメモリ領域908に格納されたプログラムデータに従って第2のメモリチップ926からデータを読み取り、第2のメモリチップ926にデータを書き込むために、第2のメモリチップ926へのアクセスを容易にするように構成されたプログラム可能なエンジン910を含む。プロセッサチップ1112は、第3のメモリチップ1102を介して第1のメモリチップ902の事前定義されたメモリ領域908にデータを書き込むことによって、プログラム可能なエンジン910をプログラムするように構成することができる。
また、図11に示すように、第3のメモリチップ1102は、第1のメモリチップ902のためのキャッシュ1114を含むことができる。そのような実施形態では、プロセッサチップ1112は、第1のメモリチップ902のためのキャッシュ1114を介して事前定義されたメモリ領域908にデータを書き込むことによって、プログラム可能なエンジン910をプログラムするように構成することができる。
一般に、図9~図11に示される実施形態及び他の実施形態に関して、第1のメモリチップ902は、マイクロチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域908を含む(たとえば、図9~図10に示されるプロセッサチップ924及び図11に示される第3のメモリチップ1102を参照)。第1のメモリチップ902はまた、事前定義されたメモリ領域908に格納されたプログラムデータに従って第2のメモリチップ926からデータを読み取り、第2のメモリチップ926にデータを書き込むために、第2のメモリチップ926へのアクセスを容易にするように構成されたプログラム可能なエンジン910を含む。そのような実施形態では、事前定義されたメモリ領域908は、プログラム可能なエンジン910のコマンドキュー912として構成された部分を含むことができ、プログラム可能なエンジン910は、コマンドキュー912に従って第2のメモリチップ926へのアクセスを容易にするように構成することができる。また、第1のメモリチップ902は、コマンドキュー912を制御するように構成された、事前定義されたメモリ領域908に格納されたプログラムデータの一部を含むことができる。第1のメモリチップ902はまた、第2のメモリチップ926に移動されるデータを格納するように構成されたメモリ914の一部を含むことができ、メモリ914の一部に格納されたデータは、コマンドキュー912に従って移動することができる。
一般に、図9~図11に示される実施形態及び他の実施形態に関して、システム900、1000、または1100のうちの1つなどのシステムは、第1のメモリチップ902、第2のメモリチップ926、及びマイクロチップ(たとえば、図9~図10に示されるプロセッサチップ924、及び図11に示される第3のメモリチップ1102を参照)を含む。そのような実施形態では、第1のメモリチップ902は、マイクロチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域908、及び事前定義されたメモリ領域908に格納されたプログラムデータに従って第2のメモリチップ926からデータを読み取り、第2のメモリチップ926にデータを書き込むために、第2のメモリチップ926へのアクセスを容易にするように構成されたプログラム可能なエンジン910を含む。マイクロチップは、第1のメモリチップ902の事前定義されたメモリ領域908にデータを書き込むことによって、プログラム可能なエンジン910をプログラムするように構成される。同様に、そのような実施形態では、事前定義されたメモリ領域908は、プログラム可能なエンジン910のコマンドキュー912として構成された部分を含むことができ、プログラム可能なエンジン910は、コマンドキュー912に従って第2のメモリチップ926へのアクセスを容易にするように構成することができる。また、事前定義されたメモリ領域908に格納されたプログラムデータの一部は、コマンドキュー912を制御するように構成することができる。そして、第1のメモリチップ902はまた、第2のメモリチップ926に移動されるデータを格納するように構成されたメモリ914の一部を含むことができ、メモリ914の一部に格納されたデータは、コマンドキュー912に従って移動することができる。
そのような実施形態では、マイクロチップは、プロセッサチップ(たとえば、プロセッサチップ924を参照)または第3のメモリチップ(たとえば、第3のメモリチップ1102を参照)である。マイクロチップが第3のメモリチップであるとき、プロセッサチップ(たとえば、プロセッサチップ1112を参照)は、第3のメモリチップ(たとえば、第3のメモリチップ1102を参照)を介して第1のメモリチップ902の事前定義されたメモリ領域908にデータを書き込むことによって、プログラム可能なエンジン910をプログラムするように構成することができる。そのような例では、第3のメモリチップは、第1のメモリチップ902のためのキャッシュ(たとえば、第1のメモリチップ902のためのキャッシュ1114を参照)を含むことができ、プロセッサチップは、第1のメモリチップ902のためのキャッシュ1114を介して第1のメモリチップ902の事前定義されたメモリ領域908にデータを書き込むことによって、プログラム可能なエンジン910をプログラムするように構成することができる。
いくつかの実施形態では、第1のメモリチップ902の1つまたは複数のインスタンス(図9~図11に示されるメモリチップ902の異なるインスタンスなど)は、図1~図3に示されるメモリチップ102のストリングの柔軟なプロビジョニングにおいて1つまたは複数のメモリチップとして使用することができる。また、第1のメモリチップ902の1つまたは複数のインスタンスは、図4に示されるメモリチップ402のストリングの柔軟なプロビジョニングにおいて1つまたは複数のメモリチップとして使用することができる。さらに、プログラム可能なエンジン910を備えた第1のメモリチップ902は、図6~図8に示されるデータムーバー608を有するメモリチップ602であり得る、それを含むことができる、またはそれに含まれる場合がある。たとえば、プログラム可能なエンジン910はデータムーバー608を提供できる。
また、システム900、1000、及び1100の少なくとも部分は、図1~図3に示されるメモリチップ102のストリングに含まれる場合がある。
いくつかの実施形態では、第1のメモリチップ902は、メモリチップ102のストリング内の第1のメモリチップ104または第2のメモリチップ106であり得る、またはそれを含むことができる。そのような実施形態では、たとえば、プロセッサチップ924または1112は、図2に示されるプロセッサチップ202または図3に示されるメモリコントローラチップ302であり得る、またはそれを含むことができる。また、いくつかの実施形態では、第3のメモリチップ1102は、メモリチップ102のストリング内の第1のメモリチップ104または第2のメモリチップ106であり得る、またはそれを含むことができる。そのような実施形態では、たとえば、プロセッサチップ924または1112は、図2に示されるプロセッサチップ202または図3に示されるメモリコントローラチップ302であり得る、またはそれを含むことができる。
いくつかの実施形態では、システム900、1000、及び1100のうちの任意の1つまたは複数のメモリチップは、図5に示されるメインメモリ508及び/またはデータストレージシステム512に含まれる場合がある。そのような実施形態及び他の実施形態では、システム900、1000、及び1100のいずれか1つまたは複数のプロセッサチップは、図5に示されるプロセッサ506であり得る、その一部であり得る、またはそれを含むことができる。
メモリチップ602と同様に、システム900、1000、及び1100のいずれか1つまたは複数のメモリチップの任意の1つまたは複数は、メモリチップに、またはメモリチップを介して移動されるデータを保護するための暗号化エンジン及び/または認証ゲートキーパーを含むことができる(たとえば、図8に示される暗号化エンジン802及びゲートキーパー804を参照)。また、メモリチップ602と同様に、システム900、1000、及び1100のうちの任意の1つまたは複数の任意の1つまたは複数のメモリチップは、データムーバー608などのデータムーバーを含むことができる。
また、本明細書で説明されるメモリチップのいずれか1つは、図9~図11に示される第1のメモリチップ902の1つまたは複数の態様を含むことができる。たとえば、本明細書で説明されるメモリチップの任意の1つまたは複数は、事前定義されたメモリ領域908、プログラム可能なエンジン910、及びコマンドキュー912を含むことができる。
前述の明細書では、本開示の実施形態は、その特定の例示的な実施形態を参照して説明されてきた。以下の特許請求の範囲に述べる本開示の実施形態のより広い趣旨及び範囲から逸脱することなく、様々な変更を加えることができることが明らかである。したがって、明細書及び図面は限定的な意味ではなく例示的な意味で考慮されるべきである。

プロセッサチップまたはSoC用のメモリのメモリチップのストリング内の第2のメモリチップは、メモリチップのストリング内の第3のメモリチップ(たとえば、フラッシュメモリチップ)にアクセスするためのバッファとして、たとえば第1のメモリチップによって直接的に、及びプロセッサチップまたはSoCによって間接的に構成できる部分を含むことができる。第2のメモリチップ内のメモリユニットの一部は、第3のメモリチップにアクセスするためのバッファとして使用することができる。また、第2のメモリチップは、たとえば第1のメモリチップによって直接的に、及びプロセッサチップまたはSoCによって間接的に、論理から物理へのアドレスマッピングのためのテーブル(論理から物理へのテーブル)として、または一般的な論理から物理へのアドレスマッピングとして構成できる部分を含むことができる。第2のメモリチップのメモリユニットの一部は、論理から物理へのアドレスマッピングに使用することができる。
メモリ(たとえば、メモリシステム100または400を参照)内では、第1のメモリチップ(たとえば、第1のメモリチップ104またはメモリチップ404aもしくは404bの1つを参照)は、プロセッサチップ、SoC、またはメモリコントローラチップ(たとえば、プロセッサチップ202及びメモリコントローラチップ302を参照)が、第2のメモリチップを認識することなく第1及び第2のメモリチップのストリングの利点を得るように、第2のメモリチップ(たとえば、第2のメモリチップ106またはメモリチップ406aもしくは406bの1つを参照)と直接配線することができ、第2のメモリチップと相互作用することができる。そして、第2のメモリチップ(たとえば、第2のメモリチップ106またはメモリチップ406aもしくは406bの1つを参照)は、プロセサチップ、SoC、またはメモリコントローラチップが、第1のメモリチップの下流の複数のチップを認識し、それらと相互作用することなく、複数のメモリチップのストリング(たとえば、メモリチップ102のストリングまたはメモリチップ402のグループのストリングを参照)の利点を得るように、第3のメモリチップ(たとえば、第3のメモリチップ108またはメモリチップ408aもしくは408bの1つを参照)などに直接配線することができる。また、いくつかの実施形態では、ストリング内の各チップは、さらに上流または下流のチップを認識することなく、ストリング内のすぐ上流のチップ及び下流のチップを認識し、それらと相互作用する。
プロセッサチップまたはSoC用のメモリのメモリチップのストリング内の第2のメモリチップは、たとえば第1のメモリチップによって直接的に、及びプロセッサチップまたはSoCによって間接的に、ストリング内の第3のメモリチップ(たとえば、フラッシュメモリチップ)にアクセスするためのバッファ(たとえば、第3のメモリチップのためのバッファ116を参照)として構成できる部分を含むことができる。第2のメモリチップ内のメモリユニットの一部は、第3のメモリチップにアクセスするためのバッファとして使用することができる。また、第2のメモリチップは、たとえば第1のメモリチップによって直接的に、及びプロセッサチップまたはSoCによって間接的に、論理から物理へのアドレスマッピングのためのテーブル(論理から物理へのテーブル)として、または一般的な論理から物理へのアドレスマッピング(たとえば、論理から物理へのマッピング118を参照)として構成できる部分を含むことができる。第2のメモリチップのメモリユニットの一部は、論理から物理へのアドレスマッピングに使用することができる。
図11では、第1のメモリチップ902は、第1のメモリチップ902が配線1106を介して第3のメモリチップ1102に結合されることを可能にするように構成されたピンのセット1104を含む。また示されるように、第3のメモリチップ1102は、第3のメモリチップ1102が配線1106を介して第1のメモリチップ902に結合されることを可能にするように構成されたピンのセット1105を有する。図9及び図10に示される実施形態と同様に、第1のメモリチップ902はまた、第1のメモリチップ902が、配線1106とは別個である第2の配線936を介して第2のメモリチップ926に結合されることを可能にするように構成された第2のピンのセット906を含む。また示されるように、第3のメモリチップ1102は、第3のメモリチップ1102が配線1110を介してプロセッサチップ1112に結合されることを可能にするように構成されたピンのセット1108を有する。そして、プロセッサチップ1112は、プロセッサチップ1112が配線1110を介して第3のメモリチップ1102に結合されることを可能にするように構成されたピンのセット1109を有する。

Claims (20)

  1. メモリチップであって、
    マイクロチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域と、
    前記事前定義されたメモリ領域に格納されたプログラムデータに従って第2のメモリチップからデータを読み取り、前記第2のメモリチップにデータを書き込むために、前記第2のメモリチップへのアクセスを容易にするように構成されたプログラム可能なエンジンと
    を備える、前記メモリチップ。
  2. 前記事前定義されたメモリ領域が、前記プログラム可能なエンジンのコマンドキューとして構成された部分を備え、
    前記プログラム可能なエンジンが、前記コマンドキューに従って前記第2のメモリチップへのアクセスを容易にするように構成される、請求項1に記載のメモリチップ。
  3. 前記事前定義されたメモリ領域に格納された前記プログラムデータの一部が、前記コマンドキューを制御するように構成される、請求項2に記載のメモリチップ。
  4. 前記第2のメモリチップに移動されるデータを格納するように構成されたメモリの一部を備え、
    前記メモリの一部に格納されたデータが、前記コマンドキューに従って移動される、請求項3に記載のメモリチップ。
  5. 前記メモリチップが、第1の配線を介して前記マイクロチップに結合されることを可能にするように構成された第1のピンのセットと、
    前記メモリチップが、前記第1の配線とは別個である第2の配線を介して前記第2のメモリチップに結合されることを可能にするように構成された第2のピンのセットと
    を備え、
    前記プログラム可能なエンジンが、前記事前定義されたメモリ領域に格納されたプログラムデータに従って前記第2のメモリチップからデータを読み取り、前記第2のメモリチップにデータを書き込むために、前記第2のピンのセットを介して、前記第2のメモリチップへのアクセスを容易にするように構成される
    請求項4に記載の前記メモリチップ。
  6. 前記メモリチップが、不揮発性ランダムアクセスメモリ(NVRAM)チップであり、
    前記メモリチップが、複数のNVRAMセルを備える、請求項1に記載のメモリチップ。
  7. 前記複数のNVRAMセルが複数の3D XPointメモリセルである、請求項6に記載のメモリチップ。
  8. 前記メモリチップが、ダイナミックランダムアクセスメモリ(DRAM)チップであり、
    前記メモリチップが、複数のDRAMセルを備える、請求項1に記載のメモリチップ。
  9. 前記メモリチップが、フラッシュメモリチップであり、
    前記メモリチップが、複数のフラッシュメモリセルを備える、請求項1に記載のメモリチップ。
  10. システムであって、
    第1のメモリチップと、
    第2のメモリチップと、
    マイクロチップと
    を備え、
    前記第1のメモリチップが、
    前記マイクロチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域と、
    前記事前定義されたメモリ領域に格納されたプログラムデータに従って前記第2のメモリチップからデータを読み取り、前記第2のメモリチップにデータを書き込むために、前記第2のメモリチップへのアクセスを容易にするように構成されたプログラム可能なエンジンと、を備え、
    前記マイクロチップが、前記第1のメモリチップの前記事前定義されたメモリ領域にデータを書き込むことによって前記プログラム可能なエンジンをプログラムするように構成される
    前記システム。
  11. 前記事前定義されたメモリ領域が、前記プログラム可能なエンジンのコマンドキューとして構成された部分を備え、
    前記プログラム可能なエンジンが、前記コマンドキューに従って前記第2のメモリチップへのアクセスを容易にするように構成される、請求項10に記載のシステム。
  12. 前記事前定義された領域に格納された前記プログラムデータの一部が前記コマンドキューを制御するように構成される、請求項11に記載のシステム。
  13. 前記第1のメモリチップが、前記第2のメモリチップに移動されるデータを格納するように構成されたメモリの一部を備え、
    前記メモリの一部に格納されたデータが、前記コマンドキューに従って移動される、請求項12に記載のシステム。
  14. 前記第1のメモリチップが、
    前記第1のメモリチップが、第1の配線を介して前記マイクロチップに結合されることを可能にするように構成された第1のピンのセットと、
    前記第1のメモリチップが、前記第1の配線とは別個である第2の配線を介して前記第2のメモリチップに結合されることを可能にするように構成された第2のピンのセットと
    を備え、
    前記プログラム可能なエンジンが、前記事前定義されたメモリ領域に格納されたプログラムデータに従って前記第2のメモリチップからデータを読み取り、前記第2のメモリチップにデータを書き込むために、前記第2のピンのセットを介して、前記第2のメモリチップへのアクセスを容易にするように構成される
    請求項13に記載の前記システム。
  15. 前記マイクロチップがプロセッサチップである、請求項14に記載のシステム。
  16. 前記マイクロチップが第3のメモリチップである、請求項14に記載のシステム。
  17. プロセッサチップが、前記第3のメモリチップを介して前記第1のメモリチップの前記事前定義されたメモリ領域にデータを書き込むことによって前記プログラム可能なエンジンをプログラムするように構成される、請求項16に記載のシステム。
  18. 前記第3のメモリチップが、前記第1のメモリチップのためのキャッシュを備え、
    前記プロセッサチップが、前記第1のメモリチップのための前記キャッシュを介して前記第1のメモリチップの前記事前定義されたメモリ領域にデータを書き込むことによって前記プログラム可能なエンジンをプログラムするように構成される、請求項17に記載のシステム。
  19. システムであって、
    第1のメモリチップと、
    第2のメモリチップと、
    第3のメモリチップと、
    前記第3のメモリチップを介して前記第1のメモリチップに接続されたプロセッサチップと
    を備え、
    前記第1のメモリチップが、
    前記第3のメモリチップを介して前記プロセッサチップから送信されたプログラムデータを格納するように構成された事前定義されたメモリ領域と、
    前記事前定義されたメモリ領域に格納されたプログラムデータに従って前記第2のメモリチップからデータを読み取り、前記第2のメモリチップにデータを書き込むために、前記第2のメモリチップへのアクセスを容易にするように構成されたプログラム可能なエンジンと
    を備え、
    前記プロセッサチップが、前記第3のメモリチップを介して前記第1のメモリチップの前記事前定義されたメモリ領域にデータを書き込むことによって前記プログラム可能なエンジンをプログラムするように構成される
    前記システム。
  20. 前記第3のメモリチップが、前記第1のメモリチップのためのキャッシュを備え、
    前記プロセッサチップが、前記第1のメモリチップのための前記キャッシュを介して前記事前定義されたメモリ領域にデータを書き込むことによって前記プログラム可能なエンジンをプログラムするように構成される、請求項19に記載のシステム。

JP2022517125A 2019-09-17 2020-09-09 データ移動のためのプログラム可能なエンジン Pending JP2022547730A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/573,785 2019-09-17
US16/573,785 US11163490B2 (en) 2019-09-17 2019-09-17 Programmable engine for data movement
PCT/US2020/049940 WO2021055207A1 (en) 2019-09-17 2020-09-09 Programmable engine for data movement

Publications (1)

Publication Number Publication Date
JP2022547730A true JP2022547730A (ja) 2022-11-15

Family

ID=74868617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022517125A Pending JP2022547730A (ja) 2019-09-17 2020-09-09 データ移動のためのプログラム可能なエンジン

Country Status (7)

Country Link
US (2) US11163490B2 (ja)
EP (1) EP4031979A4 (ja)
JP (1) JP2022547730A (ja)
KR (1) KR20220047839A (ja)
CN (1) CN114521250A (ja)
TW (1) TWI772877B (ja)
WO (1) WO2021055207A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397694B2 (en) 2019-09-17 2022-07-26 Micron Technology, Inc. Memory chip connecting a system on a chip and an accelerator chip
US11416422B2 (en) 2019-09-17 2022-08-16 Micron Technology, Inc. Memory chip having an integrated data mover
US20210096778A1 (en) * 2020-12-15 2021-04-01 Intel Corporation Host managed buffer to store a logical-to physical address table for a solid state drive

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004079583A1 (ja) * 2003-03-05 2004-09-16 Fujitsu Limited データ転送制御装置およびdmaデータ転送制御方法
JP2011146035A (ja) * 2009-11-10 2011-07-28 Apple Inc 周辺コンポーネントのためのコマンドキュー
JP2013205928A (ja) * 2012-03-27 2013-10-07 Fujitsu Semiconductor Ltd 半導体集積回路およびそのdma制御方法
JP2019518286A (ja) * 2016-06-07 2019-06-27 フュージョンメモリFusion Memory メモリバス上のマルチレベルデータキャッシュ及びストレージ

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030112613A1 (en) 2002-10-22 2003-06-19 Hitachi, Ltd. IC card
JP2003006041A (ja) 2001-06-20 2003-01-10 Hitachi Ltd 半導体装置
US20030023958A1 (en) 2001-07-17 2003-01-30 Patel Mukesh K. Intermediate language accelerator chip
US20030212845A1 (en) 2002-05-07 2003-11-13 Court John William Method for high-speed data transfer across LDT and PCI buses
US7895411B2 (en) * 2003-10-02 2011-02-22 Nvidia Corporation Physics processing unit
US7739479B2 (en) * 2003-10-02 2010-06-15 Nvidia Corporation Method for providing physics simulation data
US20050086040A1 (en) * 2003-10-02 2005-04-21 Curtis Davis System incorporating physics processing unit
US7210008B2 (en) * 2003-12-18 2007-04-24 Intel Corporation Memory controller for padding and stripping data in response to read and write commands
US7185153B2 (en) * 2003-12-18 2007-02-27 Intel Corporation Packet assembly
US7206915B2 (en) 2004-06-03 2007-04-17 Emc Corp Virtual space manager for computer having a physical address extension feature
US7406634B2 (en) 2004-12-02 2008-07-29 Cisco Technology, Inc. Method and apparatus for utilizing an exception handler to avoid hanging up a CPU when a peripheral device does not respond
US20070165457A1 (en) 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
JP5401444B2 (ja) 2007-03-30 2014-01-29 ラムバス・インコーポレーテッド 異なる種類の集積回路メモリ素子を有する階層メモリモジュールを含むシステム
US7627744B2 (en) * 2007-05-10 2009-12-01 Nvidia Corporation External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level
US8077644B2 (en) 2007-07-20 2011-12-13 Infineon Technologies Ag Data transfer in a computing device
US20090063786A1 (en) 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
US7721010B2 (en) 2007-10-31 2010-05-18 Qimonda North America Corp. Method and apparatus for implementing memory enabled systems using master-slave architecture
US20100217977A1 (en) * 2009-02-23 2010-08-26 William Preston Goodwill Systems and methods of security for an object based storage device
US8219746B2 (en) 2009-10-08 2012-07-10 International Business Machines Corporation Memory package utilizing at least two types of memories
US8463984B2 (en) * 2009-12-31 2013-06-11 Seagate Technology Llc Dynamic data flow management in a multiple cache architecture
US8595429B2 (en) 2010-08-24 2013-11-26 Qualcomm Incorporated Wide input/output memory with low density, low latency and high density, high latency blocks
US8726107B2 (en) * 2011-07-15 2014-05-13 Seagate Technology Llc Measurement of latency in data paths
WO2013048503A1 (en) 2011-09-30 2013-04-04 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9256915B2 (en) * 2012-01-27 2016-02-09 Qualcomm Incorporated Graphics processing unit buffer management
US9055069B2 (en) * 2012-03-19 2015-06-09 Xcelemor, Inc. Hardware computing system with software mediation and method of operation thereof
US9256369B2 (en) 2012-04-18 2016-02-09 Samsung Electronics Co., Ltd. Programmable memory controller
US9304828B2 (en) 2012-09-27 2016-04-05 Hitachi, Ltd. Hierarchy memory management
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9274951B2 (en) 2013-05-31 2016-03-01 Altera Corporation Cache memory controller for accelerated data transfer
WO2015101827A1 (en) * 2013-12-31 2015-07-09 Mosys, Inc. Integrated main memory and coprocessor with low latency
US10445025B2 (en) 2014-03-18 2019-10-15 Micron Technology, Inc. Apparatuses and methods having memory tier structure and recursively searching between tiers for address in a translation table where information is only directly transferred between controllers
US10437479B2 (en) 2014-08-19 2019-10-08 Samsung Electronics Co., Ltd. Unified addressing and hierarchical heterogeneous storage and memory
KR102208072B1 (ko) 2014-09-01 2021-01-27 삼성전자주식회사 데이터 처리 시스템
US20170017576A1 (en) 2015-07-16 2017-01-19 Qualcomm Incorporated Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications
US10237350B2 (en) 2016-04-06 2019-03-19 Reniac, Inc. System and method for a database proxy
US10397337B2 (en) 2016-07-27 2019-08-27 International Business Machines Corporation Independent internet connection generation
US10416896B2 (en) 2016-10-14 2019-09-17 Samsung Electronics Co., Ltd. Memory module, memory device, and processing device having a processor mode, and memory system
US10860244B2 (en) 2017-12-26 2020-12-08 Intel Corporation Method and apparatus for multi-level memory early page demotion
CN111656335B (zh) * 2018-01-29 2023-11-17 美光科技公司 存储器控制器
KR20190106228A (ko) 2018-03-08 2019-09-18 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10949356B2 (en) 2019-06-14 2021-03-16 Intel Corporation Fast page fault handling process implemented on persistent memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004079583A1 (ja) * 2003-03-05 2004-09-16 Fujitsu Limited データ転送制御装置およびdmaデータ転送制御方法
JP2011146035A (ja) * 2009-11-10 2011-07-28 Apple Inc 周辺コンポーネントのためのコマンドキュー
JP2013205928A (ja) * 2012-03-27 2013-10-07 Fujitsu Semiconductor Ltd 半導体集積回路およびそのdma制御方法
JP2019518286A (ja) * 2016-06-07 2019-06-27 フュージョンメモリFusion Memory メモリバス上のマルチレベルデータキャッシュ及びストレージ

Also Published As

Publication number Publication date
TW202125267A (zh) 2021-07-01
CN114521250A (zh) 2022-05-20
TWI772877B (zh) 2022-08-01
EP4031979A4 (en) 2023-09-27
US11163490B2 (en) 2021-11-02
WO2021055207A1 (en) 2021-03-25
US20220050639A1 (en) 2022-02-17
US20210081141A1 (en) 2021-03-18
EP4031979A1 (en) 2022-07-27
KR20220047839A (ko) 2022-04-19

Similar Documents

Publication Publication Date Title
US20220050639A1 (en) Programmable engine for data movement
US10275378B2 (en) Data buffer pointer fetching for direct memory access
CN107589905B (zh) 存储器系统及其操作方法
US10613778B2 (en) Dynamic host memory allocation to a memory controller
US10467037B2 (en) Storage device and user device supporting virtualization function
US10846017B2 (en) Secure digital (SD) to NVMe buffer manager
US20150370750A1 (en) Memory device for a hierarchical memory architecture
JP2022548889A (ja) 多層メモリの柔軟なプロビジョニング
KR102506135B1 (ko) 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
JP2022548643A (ja) システムオンチップ及びメモリチップを接続するアクセラレータチップ
US11561909B2 (en) Bandwidth allocation for storage system commands in peer-to-peer environment
US20220391330A1 (en) Memory chip having an integrated data mover
KR102462048B1 (ko) 이중 slc/qlc 프로그래밍 및 리소스 해제
KR20220048303A (ko) 크레딧을 이용하는 호스트 장치와 스토리지 장치의 동작 방법
US20210181980A1 (en) Storage System and Method for Improving Utilization of a Communication Channel between a Host and the Storage System
US11656994B2 (en) Non-volatile memory with optimized read

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220421

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230411

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231031