JP2022151589A - スケーリング可能なメタデータを有するダイナミックランダムアクセスメモリ(dram) - Google Patents

スケーリング可能なメタデータを有するダイナミックランダムアクセスメモリ(dram) Download PDF

Info

Publication number
JP2022151589A
JP2022151589A JP2022005048A JP2022005048A JP2022151589A JP 2022151589 A JP2022151589 A JP 2022151589A JP 2022005048 A JP2022005048 A JP 2022005048A JP 2022005048 A JP2022005048 A JP 2022005048A JP 2022151589 A JP2022151589 A JP 2022151589A
Authority
JP
Japan
Prior art keywords
memory
data
metadata
page
sections
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
JP2022005048A
Other languages
English (en)
Inventor
エス. ベインズ クルジット
S Bains Kuljit
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2022151589A publication Critical patent/JP2022151589A/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0625Power saving in storage 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/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/0656Data buffering 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/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]
    • 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/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • 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 Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

【課題】バースト転送処理の一部として転送されるべきメタデータを提供するメモリ、コンピューティングシステム、メモリコントローラ及び装置を提供する。【解決手段】メモリは、ページを格納する行バッファ102を含む。ページは、セクションに分割される。ページのセクションのうちの少なくとも1つは、メタデータのストレージのために隔離される。列アドレスビットの第1のサブセットは、1)そのデータがバーストアクセスによってターゲットとされている、ページの少なくとも1つの隔離されたセクション以外の、ページの特定のセクションを画定し、2)特定のセクションのためのメタデータを格納するページの隔離されたセクションのうちの少なくとも1つの中にフィールドを画定する。【選択図】図2

Description

本発明の技術分野は、一般に計算科学に関し、より具体的には、スケーリング可能なメタデータを有するダイナミックランダムアクセスメモリ(DRAM)に関する。
ますます、コンピューティングシステムの設計者は、メモリシステム内に格納される(例えば、顧客)データのユニットと共にメタデータを格納するやり方を求めている。例えば、中央処理装置(CPU)は一般に、64Bキャッシュ配線のユニットにおいてメインメモリシステムにアクセスする。各キャッシュ配線によってメタデータを格納する能力は、ますますより望ましいものになりつつあるが、それにもかかわらず、メモリシステムを実装するように用いられるメモリチップは、そのようなメタデータの格納のためのいかなるネイティブリソースも含まない。したがって、メタデータのストレージのために追加のメモリチップが追加されなければならず、および/または、顧客データのストレージ以外の機能に用いられるメモリチップ(例えば、ECCメモリチップ)が、メタデータのストレージのために用いられる。後者はデータ信頼性を危険にさらすが、前者は費用を増大させる。
本発明のより良好な理解が、以下の図面と組み合わせて、以下の詳細な説明から取得できるであろう。
改良されたメモリを示す。
メタデータのために隔離されたセクションを有するページを示す。
X4メモリに関する動作の第1の実施形態を示す。 X4メモリに関する動作の第1の実施形態を示す。
X8メモリに関する動作の第1の実施形態を示す。 X8メモリに関する動作の第1の実施形態を示す。
X16メモリに関する動作の第1の実施形態を示す。 X16メモリに関する動作の第1の実施形態を示す。
メタデータのために隔離された第1および第2のセクションを有するページを示す。
X4メモリに関する動作の第2の実施形態を示す。 X4メモリに関する動作の第2の実施形態を示す。
X8メモリに関する動作の第2の実施形態を示す。 X8メモリに関する動作の第2の実施形態を示す。
X16メモリに関する動作の第2の実施形態を示す。 X16メモリに関する動作の第2の実施形態を示す。
コンピューティングシステムを示す。
データセンタを示す。
ラックを示す。
図1は、改良されたダイナミックランダムアクセスメモリ(DRAM)メモリチップの高レベル図を示す。図面の簡略化のために、図1は、メモリの読み出されたデータパスの主要なアーキテクチャの特徴のみを示す。すぐ後の考察で説明されるように、メモリは、バースト転送処理の一部として転送されるべきメタデータを提供する。
動作中において、メモリは、読み出しまたは書き込みコマンド、および対応するアドレスを受信する。アドレスは、バンク成分、行成分、および列成分に分割される。メモリは、メモリバンクのアレイを含み、アドレスのバンク成分は、バンクアレイにおける特定のバンクを定める。図面の簡略化のために、図1は、アドレスのバンク成分によって識別される特定のバンクのみを示す。
図1に見られるように、バンク内で、各データI/Oピンは、それ自身の専用メモリアレイ101を有するように表示され得る(図面の簡略化のため、第1の読み出しデータパスの特徴のみに符号をつける)。これは、例えば(図1に見られるように)アレイ位置ごとに単一ビットを格納する個別のメモリアレイによって、または、アレイ位置ごとのデータI/Oピンの数に等しい数のビットを格納する単一アレイ(またはそれらのいくつかの組み合わせ)によって、実現され得る。説明の簡略化のために、以下の説明では、各データI/Oピンに関して別個のメモリがあると仮定する。
メモリがアドレスを受信すると、当該アドレスの行成分は、ターゲットのバンクのメモリアレイ101の各々の中にある同じ特定の行に定まる。ソフトウェアプログラムは、メモリから読み出すとき、またはメモリへ書き込むとき、数値的に同じメモリアドレスを呼び出す傾向がある。したがって、メモリシステムは、異なる「ページ」で構成されるとして表示される。ソフトウェアプログラムが新しいアドレス範囲にジャンプするとき、それは、メモリの対応するページをアクティブ化する。一般に、ソフトウェアによって呼び出されるすぐ後の多くのアドレスが、同じページをターゲットとする。
ここで、メモリアレイ101内の各特定の行は、メモリにおける異なるページに対応する。まず特定のページがアクセスされると、当該ページの対応する行がアクティブ化される。当該行に沿った各メモリアレイ101の各列の内容は、その後、行バッファ102にロードされる(各メモリアレイはそれ自身の関連付けられた行バッファ102を有する)。したがって、行がまずアクセスされるとき、各行バッファ102はそのメモリアレイ101のページ全体を受信する。
一度メモリページコンテンツが行バッファ102にロードされると、1または複数のすぐ後のアクセスが同じページをターゲットとする場合、そのようなアクセスは、(メモリアレイ101への/からのより遅いアクセスよりむしろ)行バッファ102を介してページの内容への高速アクセスを享受する。
図2を参照すると、各行バッファに格納されるページは、K個の異なるデータセクションとして表示され得る。列アドレス成分の、より低い桁の(n)個のビットは、特定のデータセクションを識別するが、列アドレス成分の、より高い桁の(m)個のビットは、選択されたセクション内の特定の列を識別する。
コンピューティングシステムにおいて、メモリへの/からのCPUアクセスは、通常、ホストとメモリとの間の一連の連続データ転送を要求するキャッシュ配線のユニットにおいて行われる。例えば、DDR6メモリチャネルの場合において、データバスの幅は16bである(ECCを除外する)。メモリチャネルがX4メモリチップによって実装される場合、4メモリチップのランクは、16bワイドデータチャネルをもたらす。
従来のキャッシュ配線のサイズは64Bである。単一のユニットとして64Bキャッシュ配線を転送すべく、メモリチップは、メモリとホストとの間で32個の連続データ転送を実行する「バースト」モードを使用する((16b/サイクル)(32サイクル)=512b=64B)。したがって、「バースト」モードの場合、図1のメモリは各々その出力ピンにおいて32ビットを連続して転送するであろう。
図1のメモリにおいて、バースト読み出しの連続的な転送を供給するように、先読みバッファ104が用いられる。ここで、各I/Oピンの関連付けられた読み出しデータチャネルに関して、第1マルチプレクサ103は103個のデータを、より低い桁のnビットによって識別されるページのセクションから選択し、セクションを先読みバッファ104にロードする。
図1に示された特定の実施形態によると、第1マルチプレクサ103は、より低い桁のnビットによってポイントされるセクション全体を選択し、そのセクション全体を先読みバッファ104にロードする。第2マルチプレクサ105はその後、バーストを供給するセクション内で、ビットの正しい部分を選択するように、残るm個のより高い桁の列アドレスビットを用いる。
別の実施形態によると、第2マルチプレクサ105は、バーストを供給する必要があるビットのみが選択されて先読みバッファ104にロードされるように、第1マルチプレクサ103と統合される。
どのアプローチが採用されるかに関わらず、バーストに関する正しいビットが、先読みバッファからデータピンを介して連続して送信される。説明の簡略化のために、以下の説明は、主として第1のアプローチが採用されると仮定する。
一例として、X=4およびn=5であるメモリを考える。メモリはX4メモリである(X=4)。n=5個の低い桁のビットC0-C4は、メモリページのどのセクションがバーストに関してアクセスされているかを決定する。したがって、ページあたり32個のセクションがある(2=32)。さらに、各個別の行バッファ102内のセクションごとに64bがあり、ページが4つのメモリアレイ全てにわたる合計のメモリ容量に関して定義されるとき、セクションごとに256bになる(64b×4=256b)。これは、1KBの4つのメモリアレイ全てにわたる合計のページサイズに対応する(256b×32=8192b=1024B)。
したがって、上記の識別されたバースト転送を実行すべく、ターゲットのセクション(64b)が、各データパスに沿って第1マルチプレクサ103によって選択され、対応する先読みバッファ104にロードされる(すなわち、合計256bのデータがメモリ内に先読みされる)。第2のマルチプレクシングアプローチが採用されたならば、データパスごとに32bのみのデータが先読みバッファ104にロードされるであろう(合計128bのデータがメモリに先読みされることになる)。
メタデータ転送をさらにサポートすべく、図2に簡単に言及すると、各行バッファにつき1つのセクション201がメタデータ情報のために保留(隔離)される。従って、上記の例に続くと、ホストの観点から、各ページは31セクションのデータに対応する(256×31=7936b=992B)。
一実施形態によると、1バイトのメタデータは4つのI/Oピンによってバーストごとに転送される。従って、X=4の場合、1バイトのメタデータは、メモリの4つのI/Oピンの各々を介して、32bのバーストによって転送される。第1のアプローチによると、図3aにおいて見られるように、メタデータは追加のI/Oピン106を介してデータと同時に転送される。第2のアプローチによると、図3bにおいて見られるように、追加のピン106およびそのサポートデータパス要素107、108は存在せず、メタデータは4つのデータI/Oピン(D0-D3)を介して、例えば、4つのI/Oピンの各々を介して32bのデータが転送されたすぐ後に多重化される。
バーストと共にメタデータを含むべく、各データパスに沿って、メタデータが先読みされ、先読みバッファ104にロードされる。一実施形態において、4つのデータパスの各々に関するメタデータにおいて隔離された2ビットが、セクション201において保留される。ここで、再び具体例において、4つのデータパス全てにわたって、セクションサイズは256bであり、ページごとに31個のセクションがデータのために用いられ、ページごとに1個のセクションがメタデータのために隔離される。したがって、ページにおけるデータの各セクションに関して、1バイトのメタデータが保留され得る(256b/8=32)。
隔離されたメタデータセクションはページと同じ数のセクションに分割されるので、列アドレスの、低い桁の同じC0-C4ビットは、任意の特定のセクション/バーストに関する正しいメタデータをフェッチするように用いられ得る。すなわち、列アドレスのそのビットC0-C4の再呼び出しが、バーストアクセスによってターゲットとされる特定のセクションを識別するように用いられる、なぜならば、隔離されたメタデータセクションは、セクションごとにメタデータを保留し、C0-C4メタデータビットもまた、ページのデータの他のセクションの各々に関する正しいメタデータをフェッチするように用いられ得るからである。
したがって、各データパス内の第1マルチプレクサ103の論理回路は、バーストのソースとなる特定のセクションに関するメタデータをさらにフェッチするように設計される。具体的に、マルチプレクサ103がバーストによってターゲットとされるデータのセクションを選択し、それを先読みバッファ104に転送した後に、第2マルチプレクサは次に、メタデータに対応する行バッファ102のセクションにアクセスし、バーストによってターゲットとされるデータのセクションに関して保留されるセクション内の特定の2ビットを選択する。あるいは、メタデータの、いくつかのより大きいセクションが選択され、第2マルチプレクサ105(それもまた、C0-C4ビットを受信するであろう)が、特定のバーストに関する正しい2ビットを選択するであろう。
図3aの第1のアプローチの場合(追加のピン)、第1マルチプレクサ103によって選択されるメタデータは、追加のピン106を供給する追加の先読みバッファ107にルーティングされる。正しい2ビットのみが第1マルチプレクサ103から追加の先読みバッファ107に送信される基礎的アプローチにおいて、追加の先読みバッファは、組み合された4つのメモリアレイからフルバイトのメタデータ情報を収集する。その後、第2マルチプレクサ108は、図3aに示された8個の連続する1ビット転送によって、情報のバイトをストリーミングする。追加の先読みバッファ107がデータパスごとに正しい2ビット以上を受信する場合、第2マルチプレクサは、C0-C4ビットを受信するように設計され、追加の先読みバッファ107におけるより大きいデータフィールドから、情報の正しいバイトを選択する。メタデータを選択するための時間を第1マルチプレクサ103に与え、データと共に他の先読みバッファ104をロードした後に追加の先読みバッファ107をロードするように、メタデータがバーストの後のサイクルに存在する。
図3bの第2のアプローチの場合において(追加のピンがない)、各データパスにおいて、第1マルチプレクサ103によって選択されるメタデータが、第2の先読み動作として先読みバッファ104にルーティングされる。例えば、バーストのデータの最後のビットの送信の前に、先読みバッファ104から既に送信されていたデータのより早いビットが、メタデータの2ビットで上書きされる。第2マルチプレクサ105はその後、1対のビットが、バーストの終わりに一連で送信されることを引き起こす。2ビットのデータが4b幅データバスを介して送信されることにより、1バイトのメタデータがバーストに転送される。
上記の説明はX4メモリに関する。上記の説明は、X8メモリ(X=8)およびX16メモリ(X=16)などの異なる数のデータI/Oを有する他のメモリに容易に拡張され得る。図4aおよび4bは、X8メモリに関するバースト転送の例を示し、図5aおよび図5bは、X16メモリの例を示す。
X8メモリの動作に関して(図4aおよび4b)、4つのI/Oにわたるバーストごとに1バイトのメタデータの送信が、バーストごとに転送される2バイトのメタデータになる。X16メモリの動作に関して(図5aおよび5b)、4つのI/Oにわたるバーストごとに1バイトのメタデータの送信が、バーストごとに転送される4バイトのメタデータになる。
図1の説明は、X8およびX16メモリの両方を説明するように容易に拡張され得る。X8メモリに関する追加のピンアプローチにおいて(図4a)、追加の先読みバッファ107は16bのメタデータを含むであろう(8個のアレイの各々から2b)。16bは追加のピンを介してシリアルに転送される2バイトに対応する。追加のピンを有しないアプローチに関して(図4b)、バーストのために転送される合計で2バイトのメタデータになる上の説明のように、データバーストの終わりに8つのデータパスの各々が、2bのメタデータを受信および送信する。X16メモリ(図5aおよび5b)も同様のスケールを有する。
一実施形態において、4個のI/Oにわたるバーストごとのメタデータのバイトの関連は、メタデータサポートに関する名目上の動作点である。さらなる実施形態において、メモリは、バーストごとの追加のメタデータ転送をサポートするように、モードレジスタ(MR)空間109を介して特に構成されてよい。例えば、1つのアプローチによると、MRスペース109は、4個のデータI/O(1バイトのメタデータ情報の代わりに)にわたるバーストごとに2バイトのメタデータ情報を構成することを、ユーザに可能にする。
MRスペースがバーストごとに追加のメタデータを可能にするよう構成される場合、図6に見られるように、ページにおいて別のセクション602がメタデータのために隔離される。したがって、ページごとに、K-2個のセクションがデータのために用いられ、2個のセクションがメタデータのために用いられる(ホストは、ページのうちK-2個のみのセクションがデータのために用いられることを理解するよう期待される)。1つのアプローチによると、ページのデータセクションのうち特定の1つのためのメタデータのストレージに専用のセクション内のフィールドサイズは、ダブルにされる。
例えば、再び、n=5であり、ページが単一のデータパスに沿って64bの32個のセクションで構成される例を続けると、各隔離されたセクション601、602は、各フィールドがページのデータセクションのうち特定の1つに専用である4bのフィールドに分割される。メタデータの第2の先読み(データが先読みされた後で生じる先読み)は、従って、2bのメタデータではなく、むしろ4bのメタデータを先読みする。
一実施形態において、より低い桁のnビットのうち最高桁のビットは、隔離されたセクション601、602のうち1つを選択するように用いられる。より低い桁のnビットのうち残りのビットは、特定の隔離されたセクションにおける適切な4bフィールドを選択するように用いられる。例えば、再びn=5の場合、C4は、隔離されたセクション601、602のうちどれが起動されるかを決定し、ビットC0-C3は、呼び出された隔離されたセクション内の特定のフィールドを決定する。
動作は上で説明したとおりである。図7aおよび図7bはX4動作を示し、図8aおよび図8bはX8動作を示し、図9aおよび図9bはX16動作を示す。再び、追加のピンを有するアプローチおよび追加のピンを有しないアプローチが示される。X16メモリに関して、2つの追加のピンが利用される。
書き込みバーストは、上で説明された動作と同様に、しかし反転して実行される。
図1に戻って言及すると、メモリコントローラ110はメモリ100に結合される。(読み出しデータを受信し、書き込みデータを送信し、列アドレスビットなどのアドレスビットを適用し、MRスペースに書き込むなどの回路を含む)上で説明されたような読み出し方向と書き込み方向の両方でデータ転送を実行する論理回路(図示しない)から離れて、メモリコントローラ110はまた、上記バースト動作のいずれかによる書き込み動作の最中にメタデータを適切に準備および送信するように、および/または、上記バースト動作のいずれかによる読み出し動作の最中にメタデータを適切に受信するように設計された論理回路111を含む。
メモリチップに格納されるメタデータは、後述の種類のメタデータ、すなわち、セキュリティ、ディレクトリ、ポイズン、キャッシュタグ、整合性、暗号化、復号、圧縮、メモリ階層ビットのうちのいくつか/全てを格納するなどの、複数の用途のいずれかを有し得る。
上の実施形態は4つのI/Oピンごとにバーストごとに1または2バイトのメタデータ、および32Bのデータバーストを強調するが、これは、上の教示が、バーストごとのI/Oピンの数ごとの他の量のメタデータへと(例えば、ページごとにより多くまたはより少ないセクションを割り当てることによって、ページごとにより多くまたはより少ないセクションを隔離することによってなど)、および/または、バーストごとの他の量のデータ(例えば、16B,64Bなど)へと容易にスケーリングし得ることを指摘することに関する。
図10は一例のシステムを示す。システムは、上で説明されたようなデータバーストを有するメタデータを含むメモリを用い得る。システム1000は、システム1000のための処理、動作管理および命令の実行を提供するプロセッサ1010を含む。プロセッサ1010は、システム1000に処理を提供するための任意のタイプのマイクロプロセッサ、中央処理装置(CPU)、グラフィック処理装置(GPU)、処理コアもしくは他の処理ハードウェアまたはプロセッサの組み合わせを含んでよい。プロセッサ1010は、システム1000の全体的な動作を制御し、1つまたは複数のプログラム可能な汎用または専用マイクロプロセッサ、デジタル信号プロセッサ(DSP)、プログラマブルコントローラ、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)など、またはそのようなデバイスの組み合わせとすることができるか、または含むことができる。
一例において、システム1000は、プロセッサ1010に結合されたインタフェース1012を含み、当該インタフェースは、システムコンポーネントのための、メモリサブシステム1020もしくはグラフィックインタフェースコンポーネント1040、またはアクセラレータ1042などのより高帯域幅の接続を必要とするより高速なインタフェースまたは高スループットインタフェースを表してよい。インタフェース1012は、スタンドアロンコンポーネントであってよいか、またはプロセッサダイ上に統合されてよいインタフェース回路を表す。存在する場合、グラフィックインタフェース1040は、システム1000のユーザに視覚表示を提供するためのグラフィックスコンポーネントにインタフェースする。一例において、グラフィックインタフェース1040は、出力をユーザに提供する高解像度(HD)ディスプレイを駆動してよい。高解像度とは、およそ100PPI(インチ当たりのピクセル)以上のピクセル密度を有するディスプレイを指してよく、それは、フルHD(例えば、1080p)、網膜ディスプレイ、4K(超高解像度またはUHD)またはその他などといったフォーマットを含んでよい。一例において、ディスプレイは、タッチスクリーンディスプレイを含み得る。一例において、グラフィックインタフェース1040は、メモリ1030に格納されたデータに基づき、または、プロセッサ1010により実行される動作に基づき、あるいはそれら両方に基づき、表示を生成する。一例において、グラフィックインタフェース1040は、メモリ1030に格納されたデータに基づき、または、プロセッサ1010により実行される動作に基づき、あるいはそれら両方に基づき、表示を生成する。
アクセラレータ1042は、プロセッサ1010によってアクセス可能であるか、または使用可能である固定のファンクションオフロードエンジンであってよい。例えば、アクセラレータ1042中のアクセラレータは、圧縮(DC)機能、公開鍵暗号化(PKE)、暗号(cipher)、ハッシュ/認証機能、復号化などの暗号サービス、または他の機能もしくはサービスを提供してよい。いくつかの実施形態において、加えてまたは代替的に、アクセラレータ1042中のアクセラレータは、本明細書で説明されるフィールド選択コントローラ機能を提供する。いくつかの場合において、アクセラレータ1042は、1つのCPUソケット(例えば、CPUを含み、当該CPUとの電気的インタフェースを提供するマザーボードまたは回路基板へのコネクタ)に統合されてよい。例えば、アクセラレータ1042は、シングルまたはマルチコアプロセッサ、グラフィック処理装置、論理実行ユニットシングルまたはマルチレベルキャッシュ、プログラムまたはスレッドを独立して実行するために利用可能な機能ユニット、特定用途向け集積回路(ASIC)、ニューラルネットワークプロセッサ(NNP)、「X」処理ユニット(XPU)、プログラマブル制御ロジック、およびフィールドプログラマブルゲートアレイ(FPGA)などのプログラマブル処理要素を含むことができる。アクセラレータ1042は、複数のニューラルネットワーク、プロセッサコアを提供してよく、または、グラフィック処理装置が、人工知能(AI)モデルもしくは機械学習(ML)モデルによる使用のために利用可能にされてよい。例えば、AIモデルは、強化学習スキーム、Q学習スキーム、深層Q学習、または非同期強化学習(Asynchronous Advantage Actor‐Critic(A3C))、組み合わせニューラルネットワーク(combinatorial neural network)、再帰組み合わせニューラルネットワークまたは他のAIモデルもしくはMLモデルのうちの任意のもの、またはこれらの組み合わせを用いてよいか、または含んでよい。複数のニューラルネットワーク、プロセッサコアまたはグラフィック処理装置が、AIモデルもしくはMLモデルによる使用のために利用可能にされてよい。
メモリサブシステム1020は、システム1000のメインメモリを表わし、プロセッサ1010によって実行されるコード、または、ルーチンの実行時に用いられるデータ値のためのストレージを提供する。メモリサブシステム1020は、リードオンリメモリ(ROM)、フラッシュメモリ、揮発性メモリまたはそのようなデバイスの組み合わせなどの1または複数のメモリデバイス1030を含んでよい。メモリ1020は、上記の長さで説明されたようなバーストを有するメタデータを含むメモリによって実装され得る。
メモリ1030は、中でも特に、システム1000で命令を実行するためのソフトウェアプラットフォームを提供する、オペレーティングシステム(OS)1032を格納しホストする。さらに、アプリケーション1034は、メモリ1030にあるOS1032のソフトウェアプラットフォーム上で実行されてよい。アプリケーション1034は、1または複数の機能の実行を行うための自身の動作ロジックを有するプログラムを表す。処理1036は、OS1032もしくは1または複数のアプリケーション1034、またはこれらの組み合わせに補助機能を提供するエージェントまたはルーチンを表す。OS1032、アプリケーション1034および処理1036は、システム1000用の機能を提供するためのソフトウェアロジックを提供する。一例において、メモリサブシステム1020は、メモリコントローラ1022を含み、メモリコントローラは、コマンドを生成し、メモリ1030にコマンドを発する。メモリコントローラ1022は、プロセッサ1010の物理的部分またはインタフェース1012の物理的部分であり得ることを理解されたい。例えば、メモリコントローラ1022は、プロセッサ1010を持つ回路に統合された統合メモリコントローラであってよい。いくつかの例では、システムオンチップ(SOCまたはSoC)は、プロセッサ、グラフィックス、メモリ、メモリコントローラ、および入力/出力(I/O)制御ロジックの1または複数を1つのSoCパッケージに組み合わせる。
揮発性メモリは、デバイスへの電力が遮断された場合、状態(従ってそこに格納されたデータ)が不定であるメモリである。ダイナミック揮発性メモリは、状態を維持すべく、デバイス内に格納されたデータのリフレッシュを要求する。ダイナミック揮発性メモリの一例には、DRAM(ダイナミックランダムアクセスメモリ)、またはシンクロナスDRAM(SDRAM)などの変形がある。本明細書に説明されるように、メモリサブシステムは、DDR3(ダブルデータレートバージョン3、2007年6月27日にJEDEC(半導体技術協会)によって最初にリリース)、DDR4(DDRバージョン4、JEDECによって2012年9月に発表された初期の仕様)、DDR4E(DDRバージョン4)、LPDDR3(Low Power DDRバージョン3、JESD209-3B、2013年8月、JEDECによる)、LPDDR4(LPDDRバージョン4、JESD209-4、当初発表は2014年8月、JEDECによる)、WIO2(Wide Input/Outputバージョン2、JESD229-2、当初発表は2014年8月、JEDECによる)、HBM(高帯域幅メモリ、JESD325、当初発表は2013年10月、JEDECによる)、LPDDR5(JEDECにより現在検討中)、HBM2(HBMバージョン2)、JEDECにより現在検討中、またはメモリ技術およびこのような仕様(例えばDDR6)の派生または拡張に基づく技術の他のものまたは組み合わせ、などの多くのメモリ技術と互換性があり得る。JEDEC規格は、www.jedec.orgで入手できる。
具体的には示されていないが、システム1000は、メモリバス、グラフィックスバス、インタフェースバスまたは他のものなど、デバイス間の1または複数のバスまたはバスシステムを含み得ることが理解される。バスまたは他の信号線は、通信可能にまたは電気的に複数のコンポーネントを合わせて結合してよく、あるいは、通信可能且つ電気的に当該複数のコンポーネントを結合してよい。バスは、物理的な通信回線、二地点間接続、ブリッジ、アダプタ、コントローラ、もしくは他の回路またはこれらの組み合わせを含んでよい。バスは例えば、システムバス、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)バス、ハイパートランスポートまたは業界標準アーキテクチャ(ISA)バス、スモールコンピュータシステムインタフェース(SCSI)バス、リモートダイレクトメモリアクセス(RDMA)、インターネットスモールコンピュータシステムインタフェース(iSCSI)、NVMエクスプレス(NVMe)、コヒーレントアクセラレータインタフェース(CXL)、コヒーレントアクセラレータプロセッサインタフェース(CAPI)、ユニバーサルシリアルバス(USB)、または米国電気電子学会(IEEE)規格1394バスのうちの1または複数を含むことができる。
一例において、システム1000は、インタフェース1012に結合され得るインタフェース1014を含む。一例において、インタフェース1014は、スタンドアロンコンポーネントと集積回路とを含み得るインタフェース回路を表す。一例において、複数のユーザインタフェースコンポーネントもしくは周辺機器コンポーネントまたはその両方がインタフェース1014に結合される。ネットワークインタフェース1050は、1または複数のネットワーク経由でリモートデバイス(例えばサーバまたは他のコンピューティングデバイス)と通信する能力をシステム1000に提供する。ネットワークインタフェース1050は、イーサネット(登録商標)アダプタ、無線相互接続コンポーネント、セルラネットワーク相互接続コンポーネント、USB(ユニバーサルシリアルバス)、または他の有線規格ベースもしくは無線規格ベースのインタフェースまたは独自のインタフェースを含むことができる。ネットワークインタフェース1050は、データをリモートデバイスに送信してよく、リモートデバイスは、メモリ内に格納された送信データを含んでよい。ネットワークインタフェース1050は、リモートデバイスからデータを受信してよく、リモートデバイスは、受信されたデータをメモリに格納することを含んでよい。様々な実施形態を、ネットワークインタフェース1050、プロセッサ1010、およびメモリサブシステム1020に関連して使用できる。
一例において、システム1000は、1または複数の入力/出力(I/O)インタフェース1060を含む。I/Oインタフェース1060は、1または複数のインタフェース構成要素を含み得る。当該インタフェース構成要素を通じて、ユーザは、システム1000とインタラクトする(例えば、オーディオ、英数字、触知/タッチまたは他のインタフェース方式)。周辺機器インタフェース1070は、上で具体的に言及されていない任意のハードウェアインタフェースを含んでよい。一般に周辺機器とは、システム1000に従属的に接続されるデバイスを指す。従属的な接続とは、システム1000が、オペレーションが実行され、且つ、ユーザがやり取りするソフトウェアプラットフォームまたはハードウェアプラットフォームまたはその両方を提供するものである。
一例において、システム1000は、データを不揮発性方式で格納するためのストレージサブシステム1080を含む。一例において、特定のシステム実装例では、ストレージ1080の少なくとも特定のコンポーネントが、メモリサブシステム1020のコンポーネントと重複してよい。ストレージサブシステム1080は、ストレージデバイス1084を含み、1または複数の磁気、ソリッドステートもしくは光学ベースのディスク、または組み合わせなどの不揮発性方式で大量のデータを格納する任意の従来の媒体であるか、またはこれらを含み得る。ストレージ1084は、永続的状態で、コードまたは複数の命令およびデータ1086を保持する(例えば、値はシステム1000への電力が遮断されても保持される)。ストレージ1084は一般的に「メモリ」であると見なされ得るが、メモリ1030は通常、命令をプロセッサ1010に提供するために実行または動作するメモリである。ストレージ1084は不揮発性であるが、メモリ1030は揮発性メモリ(例えば、システム1000への電力が遮断されると、データの値または状態が不定になる)を含み得る。一例において、ストレージサブシステム1080は、ストレージ1084とインタフェースするためのコントローラ1082を含む。一例では、コントローラ1082は、インタフェース1014またはプロセッサ1010の物理的部分であるか、またはプロセッサ1010およびインタフェース1014の両方の回路またはロジックを含むことができる。
不揮発性メモリ(NVM)デバイスは、たとえデバイスへの電力が遮断された場合でさえも、状態が確定的であるメモリである。一実施形態において、NVMデバイスにはブロックアドレス指定可能なメモリデバイスが含まれてよく、例えば、NAND技術、またはより具体的には、マルチスレッショルドレベルNANDフラッシュメモリ(例えば、シングルレベルセル("SLC")、マルチレベルセル("MLC")、クアッドレベルセル("QLC")、トリレベルセル("TLC")またはいくつかの他のNAND)などが挙げられる。NVMデバイスはまた、シングルもしくはマルチレベル相変化メモリ(PCM)またはスイッチ付き相変化メモリ(PCMS)、カルコゲナイド相変化材料(例えば、カルコゲナイドガラス)を用いるNVMデバイス、金属酸化ベース、酸素空孔ベースを含む抵抗変化メモリおよび導電性ブリッジランダムアクセスメモリ(CB‐RAM)、ナノワイヤメモリ、強誘電体ランダムアクセスメモリ(FeRAM、FRAM(登録商標))、メモリスタ技術を組み込んだ磁気抵抗メモリ(MRAM)、スピントランスファトルク(STT)‐MRAM、スピントロニック磁気接合メモリベースデバイス、磁気トンネル接合(MTJ)ベースデバイス、DW(磁壁)およびSOT(スピン軌道移行)ベースデバイス、サイリスタベースメモリデバイス、または上記の任意の組み合わせまたは他のメモリなどの、バイトアドレス指定可能書き込みインプレース三次元クロスポイントメモリデバイスまたは他のバイトアドレス指定可能書き込みインプレースNVMデバイス(永続的メモリとも称される)も含んでよい。
電源(図示せず)は、システム1000のコンポーネントに電力を供給する。より具体的には、電源は通常、システム1200の1または複数の電源にインタフェースして、システム1000のコンポーネントに電力を供給する。一例では、電源は、壁のコンセントに差し込むためのAC-DC(交流から直流)アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電)電源となり得る。一例において、電源は、例えば、外部AC-DCコンバータなどのDC電源を含む。一例において、電源または電力供給は、充電場の近接を介して充電する無線充電ハードウェアを含む。一例において、電源は、内蔵バッテリ、交流電流供給部、動きベースの電力供給部、太陽光電力供給部、または燃料電池電源を含むことができる。
一例では、システム1000は、分離されたコンピューティングシステムとして実装できる。例えば、システム1000は、相互接続されたプロセッサ、メモリ、ストレージ、ネットワークインタフェース、および他の構成要素のコンピュートスレドで実装できる。PCIe、イーサネット(登録商標)、または光相互接続(または、それらの組み合わせ)などの高速相互接続を使用できる。例えば、スレドは、主要なアーキテクチャコンピュータ構成要素をラックプラグ可能な構成要素(例えば、ラックプラグ可能な処理構成要素、ラックプラグ可能なメモリ構成要素、ラックプラグ可能なストレージ構成要素、ラックプラグ可能なアクセラレータ構成要素など)にモジュール化しようとする、オープンコンピュートプロジェクト(OCP)またはその他の分離されたコンピューティング作業によって公布された仕様に従って設計できる。
図11は、データセンタの一例を示す。様々な実施形態を、図11のデータセンタ内、またはデータセンタと共に使用できる。図11に示すように、データセンタ1100は、光ファブリック1112を含み得る。光ファブリック1112は、一般に、光シグナリング媒体(光ケーブルなど)およびデータセンタ1100内の任意の特定のスレドがデータセンタ1100内の他のスレドに信号を送信する(およびデータセンタ1100から信号を受信する)ことができる光スイッチングインフラストラクチャの組み合わせを含み得る。しかしながら、光、無線、および/または電気信号は、ファブリック1112を使用して送信できる。光ファブリック1112が任意の所与のスレドに提供するシグナリング接続は、同じラック内の他のスレドと他のラック内のスレドの両方への接続を含み得る。データセンタ1100は、4つのラック1102A~1102Dを含み、ラック1102A~1102Dは、スレド1104A-1および1104A-2、1104B-1および1104B-2、1104C-1および1104C-2、ならびに1104D-1および1104D-2のそれぞれの対を収容する。従って、この例では、データセンタ1100は合計8つのスレドを含む。光ファブリック1112は、7つの他のスレドのうちの1または複数とのスレドシグナリング接続を提供できる。例えば、光ファブリック1112を介して、ラック1102A内のスレド1104A-1は、ラック1102A内のスレド1104A-2、ならびにデータセンタ1100の他のラック1102B、1102C、および1102Dに分散されている、6つの他のスレド1104B-1、1104B-2、1104C-1、1104C-2、1104D-1および1104D-2とのシグナリング接続を有し得る。実施形態は、この例に限定されるものではない。例えば、ファブリック1112は、光および/または電気信号を提供できる。
図12は、環境1200が、それぞれがトップオブラック(ToR)スイッチ1204、ポッドマネージャ1206、および複数のプールされたシステムドロワを含む複数のコンピューティングラック1202を含むことを示す。一般に、プールされたシステムドロワは、例えば、分離されたコンピューティングシステムを実行するために、プールされたコンピュートドロワおよびプールされたストレージドロワを含み得る。任意選択で、プールされたシステムドロワは、プールされたメモリドロワやプールされた入出力(I/O)ドロワもまた含んでよい。例示された実施形態では、プールされたシステムドロワは、INTEL(登録商標)XEON(登録商標)プールされたコンピュータドロワ1208、およびINTEL(登録商標)ATOM(商標)プールされたコンピュートドロワ210、プールされたストレージドロワ212、プールされたメモリドロワ214、およびプールされたI/Oドロワ1216を含む。プールされたシステムドロワの各々は、40ギガビット/秒(Gb/s)または100Gb/sイーサネット(登録商標)リンクまたは100Gb+/sシリコンフォトニクス(SiPh)光リンクなどの高速リンク1218を介してToRスイッチ1204に接続される。一実施形態において、高速リンク1218は、800Gb/s SiPh光リンクを含む。
再び、ドロワは、主要なアーキテクチャコンピュータ構成要素をラックプラグ可能な構成要素(例えば、ラックプラグ可能な処理構成要素、ラックプラグ可能なメモリ構成要素、ラックプラグ可能なストレージ構成要素、ラックプラグ可能なアクセラレータ構成要素など)にモジュール化しようとする、オープンコンピュートプロジェクト(OCP)またはその他の分離されたコンピューティング作業によって公布された仕様に従って設計できる。
ネットワーク1220への接続によって示されるように、複数のコンピューティングラック1200は、それらのToRスイッチ1204を介して(例えば、ポッドレベルスイッチまたはデータセンタスイッチに)相互接続され得る。いくつかの実施形態において、コンピューティングラック1202のグループは、ポッドマネージャ1206を介して別個のポッドとして管理される。一実施形態において、単一のポッドマネージャを使用して、ポッド内の全てのラックを管理する。代替的に、ポッドマネジメントの運用には、分散型のポッドマネージャを使用することもできる。
RSD環境1200はさらに、RSD環境の様々な態様を管理するように用いられる管理インタフェース1222を含む。これは、ラック構成を管理することを含み、対応するパラメータは、ラック構成データ1224として格納される。
本明細書の実施形態は、様々なタイプのコンピューティング、スマートフォン、タブレット、パーソナルコンピュータ、スイッチ、ルータ、ラックなどのネットワーク機器、およびデータセンタおよび/またはサーバファーム環境で使用されるものなどのようなブレードサーバで実装されてよい。データセンタおよびサーバファームで用いられるサーバは、ラックベースのサーバまたはブレードサーバなどのアレイのサーバ構成を含む。これらのサーバは、様々なネットワークプロビジョニングを介して通信するように相互接続され、例えば、サーバのセットをローカルエリアネットワーク(LAN)にパーティショニングし、LANは、LAN間に適切なスイッチ機能およびルーティング機能を有し、プライベートイントラネットを形成するなどする。例えば、クラウドホスト機能は通常、多数のサーバを持つ大規模なデータセンタを使用してよい。ブレードは、サーバタイプの機能を実行するよう構成される別個のコンピューティングプラットフォーム、すなわち、「カード上のサーバ」を含む。従って、各ブレードは、適切な集積回路(IC)およびボードに搭載された他の構成要素を結合するための内部配線(例えば、バス)を提供するメインプリント回路基板(メインボード)を含む、従来のサーバに共通の構成要素を含む。
様々な例が、ハードウェア要素、ソフトウェア要素、またはこれら両方の組み合わせを用いて実装されてよい。いくつかの例において、ハードウェア要素は、デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗器、キャパシタ、インダクタなど)、集積回路、ASIC、PLD、DSP、FPGA、メモリユニット、ロジックゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含んでよい。いくつかの例では、ソフトウェア要素は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインタフェース、API、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはこれらの任意の組み合わせを含んでよい。ハードウェア要素および/またはソフトウェア要素を使用して一例を実装するかどうかの決定は、所望の計算レート、電力レベル、耐熱性、処理サイクルの予算、入力データレート、出力データレート、メモリリソース、データバス速度および所与の実装に所望のその他の設計または性能の制約など、様々な要因に従って異なり得る。ハードウェア、ファームウェアおよび/またはソフトウェア要素は、本明細書において集約的にまたは個別に"モジュール"、"ロジック"、"回路(circuit)"または"回路(circuitry)"と称されてよいことを留意されたい。
いくつかの例は、製品または少なくとも1つのコンピュータ可読媒体を用いて、または、製品または少なくとも1つのコンピュータ可読媒体として実装されてよい。コンピュータ可読媒体は、ロジックを格納するための非一時的格納媒体を含んでよい。いくつかの例において、非一時的格納媒体は、揮発性メモリまたは不揮発性メモリ、リムーバブルまたは非リムーバブルメモリ、消去可能または非消去可能メモリ、書き込み可能または再書き込み可能なメモリなどを含む、電子データを格納可能な1または複数のタイプのコンピュータ可読格納媒体を含んでよい。いくつかの例において、ロジックは、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインタフェース、API、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはその任意の組み合わせなどの様々なソフトウェア要素を含んでよい。
いくつかの例によれば、コンピュータ可読媒体は、命令を格納または維持するための非一時的格納媒体を含んでよく、マシン、コンピューティングデバイス、またはシステムによって命令が実行されるとき、命令はマシン、コンピューティングデバイス、またはシステムに、説明された例に従って方法および/または動作を実行させる。命令は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コードなどの任意の好適なタイプのコードを含んでよい。命令は、マシン、コンピューティングデバイスまたはシステムに、特定の機能を実行するように命令するために、事前定義されたコンピュータ言語、態様、または構文によって実装されてよい。命令は、任意の好適な高レベル、低レベル、オブジェクト指向型、ビジュアル型、コンパイル済みおよび/または解釈済みプログラミング言語を使用して実装されてよい。
少なくとも1つの例の1または複数の態様は、少なくとも1つのマシン可読媒体上に格納された代表的な命令によって実装されてよく、当該媒体は、プロセッサ内の様々なロジックを表わし、これらの命令が、マシン、コンピューティングデバイス、またはシステムによって読み出されるとき、マシン、コンピューティングデバイス、またはシステムに、本明細書に説明された技術を実行させるためのロジックを作成する。「IPコア」として知られる、そのような表現は、有形の機械可読媒体に格納され、様々な顧客または製造施設に供給されて、実際にロジックまたはプロセッサを作成する製造機械にロードされ得る。
「一例」または「一つの例」という文言の出現は、必ずしも全てが同じ例または実施形態を指しているわけではない。本明細書に説明される任意の態様は、本明細書に説明される任意の他の態様または同様の態様と組み合わされてよく、これらの態様が、同一の図面また要素に関し説明されているかどうかを問わない。添付の図面内に記載のブロック機能の分割、省略または包含は、これらの機能を実装するためのハードウェアコンポーネント、回路、ソフトウェアおよび/または要素が、実施形態において必ず分割、省略または包含されていることを示唆しない。
いくつかの例は、「結合された(coupled)」および「接続された(connected)」という表現とその派生語を使用して説明できる。これらの用語は、必ずしも互いの類義語であることを意図していない。例えば、「接続された(connected)」および/または「結合された(coupled)」という用語を使用した説明は、2以上の要素が互いに直接物理的または電気的に接触していることを示し得る。しかしながら、「結合された(coupled)」という用語は、2以上の要素が互いに直接接触していないが、なお互いに協働または相互作用していることを意味する場合もある。
本明細書では、「第1」「第2」などの用語は、順序、量、重要性を示すものではなく、むしろ1の要素を他の要素から区別するために使用されている。本明細書における「a」および「an」という用語は、数量の限定を示すものではなく、むしろ言及された事項のうちの少なくとも1つの存在を示すものである。本明細書において、信号に関し用いられる「アサート(asserted)」という用語は、信号がアクティブであるという信号の状態を示しており、その状態は、ロジック0またはロジック1のいずれかのロジックレベルを信号に適用することで達成され得る。「後に」または「後」という用語は、他のイベントまたは出来事のすぐ後や後に続くことを指し得る。ステップの他のシーケンスもまた、代替的な実施形態により実行されてよい。さらに、特定の用途に応じて、追加のステップが追加または削除されてよい。任意の組み合わせの変更が用いられてよく、本開示の恩恵を受ける当業者であれば、本開示の多くの変形例、修正例および代替的な実施形態を理解するであろう。
特に明記しない限り、句「X、YまたはZのうちの少なくとも1つ」などの選言的な言葉は、さもなければ、項目、用語などがX、YもしくはZまたはそのいずれかの組み合わせ(例えば、X、Yおよび/またはZ)であってもよいことを表すために一般的に用いられるとして文脈の中で理解される。従って、そのような選言的な言葉は、特定の実施形態がXのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つがそれぞれ存在することを要求することを示唆することを一般的に意図しておらず、意図するべきではない。さらに、特に明記しない限り、句「X、Y、およびZのうちの少なくとも1つ」などの接続的な文言は、X、Y、Z、または「X、Y、および/またはZ」を含むそれらの任意の組み合わせを意味すると理解されるべきである。
メモリが説明された。メモリはページを格納する行バッファ回路を含む。ページはセクションに分割される。ページのセクションのうちの少なくとも1つは、メタデータのストレージのために隔離されるものである。列アドレスビットの第1のサブセットは、1)そのデータがバーストアクセスによってターゲットとされている、ページの少なくとも1つの隔離されたセクション以外の、ページの特定のセクションを画定し、2)特定のセクションのためのメタデータを格納するページの隔離されたセクションのうちの少なくとも1つの中にフィールドを画定するものである。
様々な実施形態において、メモリは、第1の先読みによってデータを受信し、第2の先読みによってメタデータを受信する、先読みバッファを含む。
様々な実施形態において、フィールドはバーストごとに1バイトのメタデータに対応する。さらなる実施形態において、メモリはさらに、4つのデータI/Oピンごとに2バイトのメタデータにフィールドを拡張するモードレジスタ空間を含む。
様々な実施形態において、メタデータは、データが転送されるデータI/Oピンとは異なるI/Oピンを介して転送される。様々な実施形態において、メタデータは、データもまた転送されるデータI/Oピンを介して転送される。様々な実施形態において、バーストは32個のデータ転送を含む。様々な実施形態において、メモリは、X4メモリ、X8メモリ、X16メモリのうちの1つである。
コンピューティングシステムが説明された。コンピューティングシステムは、ネットワークインタフェース、複数のプロセッシングコア、および複数のプロセッシングコアと結合されたメモリコントローラを含む。上に説明されたようなメモリは、メモリコントローラに結合される。
メモリコントローラが説明された。メモリコントローラはバーストアクセスによってページにアクセスする回路を含む。ページはメモリチップの中にある。ページはセクションに分割される。ページのセクションのうちの少なくとも1つは、メタデータのストレージのために隔離される。メモリコントローラによってメモリチップに送信される列アドレスビットの第1のサブセットは、1)そのデータがバースト動作によってターゲットとされている、ページの少なくとも1つの隔離されたセクション以外の、ページの特定のセクションを画定し、2)特定のセクションのためにメタデータを格納するページの隔離されたセクションのうちの少なくとも1つの中にフィールドを画定するものである。
メモリコントローラの様々な実施形態において、メタデータは、データが転送されるデータI/Oピンとは異なるI/Oピンを介して転送される。メモリコントローラの様々な実施形態において、メタデータは、データもまた転送されるデータI/Oピンを介して転送される。様々な実施形態において、フィールドはバーストごとに1バイトのメタデータに対応する。
他の可能な項目
(項目1)
ページを格納する行バッファ回路であって、上記ページはセクションに分割され、上記ページの上記セクションのうちの少なくとも1つは、メタデータのストレージのために隔離されるものであり、列アドレスビットの第1のサブセットは、1)そのデータがバーストアクセスによってターゲットとされている、上記ページの上記少なくとも1つの隔離されたセクション以外の、上記ページの特定のセクションを画定し、2)上記特定のセクションのためのメタデータを格納する上記ページの上記隔離されたセクションのうちの上記少なくとも1つの中にフィールドを画定するものである、行バッファ回路を備える、
メモリ。
(項目2)
第1の先読みによって上記データを受信し、第2の先読みによって上記メタデータを受信する、先読みバッファをさらに含む、項目1に記載のメモリ。
(項目3)
上記フィールドはバーストごとに1バイトのメタデータに対応する、項目1に記載のメモリ。
(項目4)
上記メモリはさらに、4つのデータI/Oピンごとに2バイトのメタデータに上記フィールドを拡張するモードレジスタ空間を含む、項目2に記載のメモリ。
(項目5)
上記メタデータは、上記データが転送されるデータI/Oピンとは異なるI/Oピンを介して転送される、項目1に記載のメモリ。
(項目6)
上記メタデータは、上記データもまた転送されるデータI/Oピンを介して転送される、項目1に記載のメモリ。
(項目7)
上記バーストは32個のデータ転送を含む、項目1に記載のメモリ。
(項目8)
上記メモリは、
X4メモリ、
X8メモリ、
X16メモリのうちの1つである、
項目1に記載のメモリ。
(項目9)
ネットワークインタフェースと、
複数のプロセッシングコアと、
上記複数のプロセッシングコアと結合されたメモリコントローラと、
上記メモリコントローラに結合されるメモリであって、上記メモリは、ページに格納される行バッファ回路を含み、上記ページはセクションに分割され、上記ページの上記セクションのうちの少なくとも1つは、メタデータのストレージのために隔離されるものであり、列アドレスビットの第1のセットは、1)そのデータがバーストアクセスによってターゲットとされている、ページの上記少なくとも1つの隔離されたセクション以外の、ページの特定のセクションを画定し、2)上記特定のセクションのためのメタデータを格納する上記ページの上記隔離されたセクションのうちの上記少なくとも1つの中にフィールドを画定するものである、メモリ
を備える、コンピューティングシステム。
(項目10)
第1の先読みによって上記データを受信し、第2の先読みによって上記メタデータを受信する、先読みバッファをさらに備える、項目9に記載のコンピューティングシステム。
(項目11)
上記フィールドは、4つのデータI/Oピンごとにバーストごとに1バイトのメタデータに対応する、項目9に記載のコンピューティングシステム。
(項目12)
上記メモリはさらに、4つのデータI/Oピンごとに2バイトのメタデータに上記フィールドを拡張するモードレジスタ空間を含む、項目10に記載のコンピューティングシステム。
(項目13)
上記メタデータは、上記データが転送されるデータI/Oピンとは異なるI/Oピンを介して転送される、項目9に記載のコンピューティングシステム。
(項目14)
上記メタデータは、上記データもまた転送されるデータI/Oピンを介して転送される、項目9に記載のコンピューティングシステム。
(項目15)
上記バーストは32個のデータ転送を含む、項目9に記載のコンピューティングシステム。
(項目16)
上記メモリは、
X4メモリ、
X8メモリ、
X16メモリのうちの1つである、
項目9に記載のコンピューティングシステム。
(項目17)
バーストアクセスによってページにアクセスする回路であって、上記ページはメモリチップの中にあり、上記ページはセクションに分割され、上記ページの上記セクションのうちの少なくとも1つは、メタデータのストレージのために隔離され、上記メモリコントローラによって上記メモリチップに送信される列アドレスビットの第1のサブセットは、1)そのデータがバースト動作によってターゲットとされている、上記ページの上記少なくとも1つの隔離されたセクション以外の、上記ページの特定のセクションを画定し、2)上記特定のセクションのためのメタデータを格納する上記ページの上記隔離されたセクションのうちの上記少なくとも1つの中にフィールドを画定する、回路
を備える、メモリコントローラ。
(項目18)
上記メタデータは、上記データが転送されるデータI/Oピンとは異なるI/Oピンを介して転送される、項目17に記載のメモリコントローラ。
(項目19)
上記メタデータは、上記データもまた転送されるデータI/Oピンを介して転送される、項目17に記載のメモリコントローラ。
(項目20)
上記フィールドは、4つのデータI/Oピンごとにバーストごとに1バイトのメタデータに対応する、項目17に記載のメモリコントローラ。

Claims (21)

  1. ページを格納する行バッファ回路であって、前記ページはセクションに分割され、前記ページの前記セクションのうちの少なくとも1つは、メタデータのストレージのために隔離されるものであり、列アドレスビットの第1のサブセットは、1)そのデータがバーストアクセスによってターゲットとされている、前記ページの前記少なくとも1つの隔離されたセクション以外の、前記ページの特定のセクションを画定し、2)前記特定のセクションのためのメタデータを格納する前記ページの前記隔離されたセクションのうちの前記少なくとも1つの中にフィールドを画定するものである、行バッファ回路を備える、
    メモリ。
  2. 第1の先読みによって前記データを受信し、第2の先読みによって前記メタデータを受信する、先読みバッファをさらに含む、請求項1に記載のメモリ。
  3. 前記フィールドはバーストごとに1バイトのメタデータに対応する、請求項1または2に記載のメモリ。
  4. 前記メモリはさらに、4つのデータI/Oピンごとに2バイトのメタデータに前記フィールドを拡張するモードレジスタ空間を含む、請求項2に記載のメモリ。
  5. 前記メタデータは、前記データが転送されるデータI/Oピンとは異なるI/Oピンを介して転送される、請求項1から4のいずれか一項に記載のメモリ。
  6. 前記メタデータは、前記データもまた転送されるデータI/Oピンを介して転送される、請求項1から5のいずれか一項に記載のメモリ。
  7. 前記バーストは32個のデータ転送を含む、請求項3に記載のメモリ。
  8. 前記メモリは、
    X4メモリ、
    X8メモリ、
    X16メモリのうちの1つである、
    請求項1から7のいずれか一項に記載のメモリ。
  9. ネットワークインタフェースと、
    複数のプロセッシングコアと、
    前記複数のプロセッシングコアと結合されたメモリコントローラと、
    前記メモリコントローラに結合されるメモリであって、前記メモリは、ページに格納される行バッファ回路を含み、前記ページはセクションに分割され、前記ページの前記セクションのうちの少なくとも1つは、メタデータのストレージのために隔離されるものであり、列アドレスビットの第1のセットは、1)そのデータがバーストアクセスによってターゲットとされている、ページの前記少なくとも1つの隔離されたセクション以外の、ページの特定のセクションを画定し、2)前記特定のセクションのためのメタデータを格納する前記ページの前記隔離されたセクションのうちの前記少なくとも1つの中にフィールドを画定するものである、メモリ
    を備える、コンピューティングシステム。
  10. 第1の先読みによって前記データを受信し、第2の先読みによって前記メタデータを受信する、先読みバッファをさらに備える、請求項9に記載のコンピューティングシステム。
  11. 前記フィールドは、4つのデータI/Oピンごとにバーストごとに1バイトのメタデータに対応する、請求項9または10に記載のコンピューティングシステム。
  12. 前記メモリはさらに、4つのデータI/Oピンごとに2バイトのメタデータに前記フィールドを拡張するモードレジスタ空間を含む、請求項10に記載のコンピューティングシステム。
  13. 前記メタデータは、前記データが転送されるデータI/Oピンとは異なるI/Oピンを介して転送される、請求項9から12のいずれか一項に記載のコンピューティングシステム。
  14. 前記メタデータは、前記データもまた転送されるデータI/Oピンを介して転送される、請求項9から13のいずれか一項に記載のコンピューティングシステム。
  15. 前記バーストは32個のデータ転送を含む、請求項11に記載のコンピューティングシステム。
  16. 前記メモリは、
    X4メモリ、
    X8メモリ、
    X16メモリのうちの1つである、
    請求項9から15のいずれか一項に記載のコンピューティングシステム。
  17. バーストアクセスによってページにアクセスする回路であって、前記ページはメモリチップの中にあり、前記ページはセクションに分割され、前記ページの前記セクションのうちの少なくとも1つは、メタデータのストレージのために隔離され、メモリコントローラによって前記メモリチップに送信される列アドレスビットの第1のサブセットは、1)そのデータがバースト動作によってターゲットとされている、前記ページの前記少なくとも1つの隔離されたセクション以外の、前記ページの特定のセクションを画定し、2)前記特定のセクションのためのメタデータを格納する前記ページの前記隔離されたセクションのうちの前記少なくとも1つの中にフィールドを画定する、回路
    を備える、メモリコントローラ。
  18. 前記メタデータは、前記データが転送されるデータI/Oピンとは異なるI/Oピンを介して転送される、請求項17に記載のメモリコントローラ。
  19. 前記メタデータは、前記データもまた転送されるデータI/Oピンを介して転送される、請求項17または18に記載のメモリコントローラ。
  20. 前記フィールドは、4つのデータI/Oピンごとにバーストごとに1バイトのメタデータに対応する、請求項17から19のいずれか一項に記載のメモリコントローラ。
  21. バーストアクセスによってページにアクセスする手段であって、前記ページはメモリチップの中にあり、前記ページはセクションに分割され、前記ページの前記セクションのうちの少なくとも1つは、メタデータのストレージのために隔離され、前記メモリチップに送信される列アドレスビットの第1のサブセットは、1)そのデータがバースト動作によってターゲットとされている、前記ページの前記少なくとも1つの隔離されたセクション以外の、前記ページの特定のセクションを画定し、2)前記特定のセクションのためのメタデータを格納する前記ページの前記隔離されたセクションのうちの前記少なくとも1つの中にフィールドを画定する、手段
    を備える、装置。
JP2022005048A 2021-03-26 2022-01-17 スケーリング可能なメタデータを有するダイナミックランダムアクセスメモリ(dram) Pending JP2022151589A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/214,749 US20210286727A1 (en) 2021-03-26 2021-03-26 Dynamic random access memory (dram) with scalable meta data
US17/214,749 2021-03-26

Publications (1)

Publication Number Publication Date
JP2022151589A true JP2022151589A (ja) 2022-10-07

Family

ID=77664902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022005048A Pending JP2022151589A (ja) 2021-03-26 2022-01-17 スケーリング可能なメタデータを有するダイナミックランダムアクセスメモリ(dram)

Country Status (4)

Country Link
US (1) US20210286727A1 (ja)
JP (1) JP2022151589A (ja)
CN (1) CN115129239A (ja)
DE (1) DE102022101639A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12072761B2 (en) * 2022-06-02 2024-08-27 Micron Technology, Inc. Memory sub-system addressing for data and additional data portions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806112B2 (en) * 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
CN110609796B (zh) * 2018-06-15 2023-07-21 伊姆西Ip控股有限责任公司 用于存储系统中预取的方法、设备和计算机程序产品
US11288213B2 (en) * 2019-03-29 2022-03-29 Intel Corporation Memory protection with hidden inline metadata
US11556545B2 (en) * 2020-07-24 2023-01-17 Sap Se Disk based hybrid transactional analytical processing system
JP2022129524A (ja) * 2021-02-25 2022-09-06 ソニーセミコンダクタソリューションズ株式会社 メモリコントローラおよびメモリアクセス方法

Also Published As

Publication number Publication date
CN115129239A (zh) 2022-09-30
US20210286727A1 (en) 2021-09-16
DE102022101639A1 (de) 2022-09-29

Similar Documents

Publication Publication Date Title
US11036398B2 (en) High-throughput low-latency hybrid memory module
US9921751B2 (en) Methods and systems for mapping a peripheral function onto a legacy memory interface
TWI518686B (zh) 基於追蹤使用統計之產生遠記憶體存取信號的技術
US9830083B2 (en) Memory chip, memory system, and method of accessing the memory chip
CN108780423A (zh) 多级存储器管理
US11409440B2 (en) Systems, methods and apparatus for memory access and scheduling
US20210286551A1 (en) Data access ordering for writing-to or reading-from memory devices
NL2032113B1 (en) Stacked memory chip solution with reduced package inputs/outputs (i/os)
CN108062201A (zh) 用于固态驱动器的自虚拟化闪速存储器
JP2022172443A (ja) メモリチップロウハンマー脅威バックプレッシャー信号およびホスト側応答に関する方法および装置
US10216685B1 (en) Memory modules with nonvolatile storage and rapid, sustained transfer rates
JP2022151589A (ja) スケーリング可能なメタデータを有するダイナミックランダムアクセスメモリ(dram)
US20220108743A1 (en) Per bank refresh hazard avoidance for large scale memory
US11783893B2 (en) Utilizing NAND buffer for DRAM-less multilevel cell programming
CN107301872A (zh) 半导体存储器装置的操作方法
US20210279128A1 (en) Buffer that supports burst transfers having parallel crc and data transmissions
CN111435337A (zh) 存储器系统和数据处理系统
US12099408B2 (en) Memory striping approach that interleaves sub protected data words
US20210191811A1 (en) Memory striping approach that interleaves sub protected data words
US20230297520A1 (en) Compute express link memory and storage module
US20240152461A1 (en) Swap memory device providing data and data block, method of operating the same, and method of operating electronic device including the same
JP2022100221A (ja) マザーボードの配線空間を節約する改良されたメモリモジュール
KR20220150199A (ko) 최적화된 판독을 갖는 비휘발성 메모리