(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-05
(54)【発明の名称】エンタープライズホストメモリバッファ
(51)【国際特許分類】
G06F 13/12 20060101AFI20240628BHJP
G06F 13/16 20060101ALI20240628BHJP
G06F 12/00 20060101ALI20240628BHJP
G06F 13/14 20060101ALI20240628BHJP
【FI】
G06F13/12 340E
G06F13/16 510F
G06F12/00 560B
G06F13/14 320H
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024502240
(86)(22)【出願日】2022-05-21
(85)【翻訳文提出日】2024-01-15
(86)【国際出願番号】 US2022030407
(87)【国際公開番号】W WO2023107151
(87)【国際公開日】2023-06-15
(32)【優先日】2021-12-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】504056130
【氏名又は名称】ウェスタン デジタル テクノロジーズ インコーポレーテッド
(74)【代理人】
【識別番号】100207837
【氏名又は名称】小松原 寿美
(72)【発明者】
【氏名】ハーン、ジュダ ガムリエル
(72)【発明者】
【氏名】ホーディス、アヴィチャイ ハイム
(72)【発明者】
【氏名】ベニスティ、シェイ
(72)【発明者】
【氏名】ジェームズ、マイケル
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CB01
5B160MM01
(57)【要約】
記憶システムは、1つ以上のデータ記憶デバイスと、1つ以上のデータ記憶デバイスに結合されたPCIeスイッチと、PCIeスイッチに結合されたコントローラユニットとを含む。コントローラユニットは、ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラ及びDRAMプール又はコントローラメモリバッファ(CMB)コントローラと、ルートコンプレックス/ポートと、DRAMプールとを含む。DRAMプールは、1つ以上のDRAMデバイスを含む。1つ以上のデータ記憶デバイスは、コントローラユニットと対話し、コントローラユニットのDRAMプールのDRAMにデータを記憶するように構成される。
【特許請求の範囲】
【請求項1】
記憶システムであって、
1つ以上のデータ記憶デバイスと、
前記1つ以上のデータ記憶デバイスに結合されたPCIeスイッチと、
前記PCIeスイッチに結合されたコントローラユニットと、を備え、前記コントローラユニットが、
ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラと、
DRAMプールであって、前記DRAMプールが、1つ以上のDRAMデバイスを備える、DRAMプールと、を備える、記憶システム。
【請求項2】
前記PCIeスイッチが、前記DRAM HMBコントローラに直接結合される、請求項1に記載の記憶システム。
【請求項3】
前記1つ以上のデータ記憶デバイスの各データ記憶デバイスが、
HMBコントローラと、
PCIe/NVMeフロントエンドユニットと、
メモリデバイス管理ユニットと、
メモリデバイスインターフェースユニットと、
メモリデバイスと、を備える、請求項1に記載の記憶システム。
【請求項4】
前記コントローラユニットが、前記1つ以上のデータ記憶デバイスのためのルートコンプレックスとして機能する、請求項1に記載の記憶システム。
【請求項5】
前記1つ以上のデータ記憶デバイスが、前記コントローラユニットとは別個である、請求項1に記載の記憶システム。
【請求項6】
前記コントローラユニットが、前記1つ以上のデータ記憶デバイスに対してピアPCIeデバイスとして見える、請求項1に記載の記憶システム。
【請求項7】
前記DRAMプールが、前記1つ以上のデータ記憶デバイスによって共有される、請求項1に記載の記憶システム。
【請求項8】
前記1つ以上のデータ記憶デバイスが、2つ以上のデータ記憶デバイスである、請求項1に記載の記憶システム。
【請求項9】
前記1つ以上のデータ記憶デバイスの各データ記憶デバイスが、第1のポート及び第2のポートを備え、前記第1のポートが、前記PCIeスイッチに結合される、請求項1に記載の記憶システム。
【請求項10】
記憶システムであって、
第1のデータ記憶デバイスと、
第2のデータ記憶デバイスと、
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに結合されたPCIeスイッチと、
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに結合されたコントローラユニットと、を備え、前記コントローラユニットが、
ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラと、
DRAMプールであって、前記DRAMプールが、1つ以上のDRAMデバイスを備える、DRAMプールと、を備える、記憶システム。
【請求項11】
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスが各々、第1のポート及び第2のポートを有し、前記第1のポートが、前記PCIeスイッチに結合される、請求項10に記載の記憶システム。
【請求項12】
前記第2のポートが、前記コントローラユニットに結合される、請求項11に記載の記憶システム。
【請求項13】
前記第2のポートが、HMBコントローラに結合される、請求項12に記載の記憶システム。
【請求項14】
前記HMBコントローラが、前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイス内に配置される、請求項13に記載の記憶システム。
【請求項15】
前記第2のポートが、前記DRAM HMBコントローラに結合される、請求項12に記載の記憶システム。
【請求項16】
前記コントローラユニットが、前記コントローラユニットの電源障害イベントを検出すると、前記DRAMプールのデータを前記第1のデータ記憶デバイス、前記第2のデータ記憶デバイスのいずれか、又は前記第1のデータ記憶デバイス及び前記データ記憶デバイスの両方にプッシュするように構成される、請求項10に記載の記憶システム。
【請求項17】
記憶システムであって、
第1のメモリ手段を備える第1のデータ記憶デバイスと、
第2のメモリ手段を備える第2のデータ記憶デバイスと、
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに結合されたPCIeスイッチと、
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに結合されたコントローラユニットと、を備え、前記コントローラユニットが、
コントローラメモリバッファ(CMB)コントローラと、
ルートコンプレックス/ポートと、を備える、記憶システム。
【請求項18】
前記第1のデータ記憶デバイス、前記第2のデータ記憶デバイス、及び前記コントローラユニットが各々、
メモリ手段インターフェースと、
メモリ手段管理ユニットと、
PCIe/NVMeフロントエンドユニットと、を備える、請求項17に記載の記憶システム。
【請求項19】
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスが各々、第1のポート及び第2のポートを備え、前記第1のポートが前記PCIeスイッチに結合され、前記第2のポートが前記ルートコンプレックス/ポートに結合される、請求項17に記載の記憶システム。
【請求項20】
前記CMBコントローラが、DRAMプールに結合される、請求項17に記載の記憶システム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2021年12月6日に出願された「Enterprise Host Memory Buffer」と題する米国非仮出願第17/543,473号の利益を主張し、その内容の全体はあらゆる目的のために参照により本出願に組み込まれる。
【背景技術】
【0002】
技術分野
本開示の実施形態は、一般に、ソリッドステートドライブ(SSD)などのデータ記憶デバイスに関し、より具体的には、データ記憶デバイスとホストデバイスとの間のインターフェースを介して外部記憶デバイスを使用することに関する。
【0003】
関連技術の説明
エンタープライズSSDは、データセンタ環境に統合するために特定の要件を有する。例えば、要件は、読み取り動作の予測可能性及び短いレイテンシ、並びにSSDの論理アドレス範囲の任意の部分からの読み取りについて同じレベルのサービス品質(QoS)を維持することを含んでもよい。要件に起因して、論理ブロックアドレス(LBA)対物理ブロックアドレス(PBA)(L2P)テーブルがDRAMに記憶され得、ここで、DRAM容量は、1:1000の比であり得る(例えば、L2Pテーブルキャッシングの場合、2TB SSD=2GB DRAM)。いくつかの実施例では、比は、増加した間接化に起因して性能を犠牲にして、より大きくなり得る(例えば、1:2000)。したがって、SSDの容量が増大すると、SSDに含まれるDRAMの容量も増大し、SSDのコストが増大する可能性がある。
【0004】
エンタープライズ記憶システムのためのデータ記憶デバイスは、ドライブの寿命の間の1日当たりのドライブ書き込み回数(DWPD)に基づいて評価され得る。顧客は、デバイスをより早く消耗させることを犠牲にして、データ記憶デバイスのDWPDを超えることを選択し得る。したがって、データ記憶デバイスのコストは、書き込みサイクル(例えば、プログラム消去サイクル(PEC))の数に変換される。DRAMは、NANDメモリなどの不揮発性メモリと同じ速度で消耗しないので、大容量データ記憶デバイスは、DRAMが使用から撤退される必要がある前に不揮発性メモリが使用から撤退され得るように、不均一なメモリ使用量を有し得る。
【0005】
したがって、当該技術分野では、データセンタ環境へのより良好な統合のための改善された記憶システムが必要とされている。
【発明の概要】
【0006】
本開示は、一般に、ソリッドステートドライブ(SSD)などのデータ記憶デバイスに関し、より具体的には、データ記憶デバイスとホストデバイスとの間のインターフェースを介して外部記憶デバイスを使用することに関する。記憶システムは、1つ以上のデータ記憶デバイスと、1つ以上のデータ記憶デバイスに結合されたPCIeスイッチと、PCIeスイッチに結合されたコントローラユニットとを含む。コントローラユニットは、ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラ及びDRAMプール又はコントローラメモリバッファ(CMB)コントローラと、ルートコンプレックス/ポートと、DRAMプールとを含む。DRAMプールは、1つ以上のDRAMデバイスを含む。1つ以上のデータ記憶デバイスは、コントローラユニットと対話し、コントローラユニットのDRAMプールのDRAMにデータを記憶するように構成される。
【0007】
一実施形態では、記憶システムは、1つ以上のデータ記憶デバイスと、1つ以上のデータ記憶デバイスに結合されたPCIeスイッチと、PCIeスイッチに結合されたコントローラユニットとを含む。コントローラユニットは、ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラ及びDRAMプールを含む。DRAMプールは、1つ以上のDRAMデバイスを含む。
【0008】
別の実施形態では、記憶システムは、第1のデータ記憶デバイスと、第2のデータ記憶デバイスと、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに結合されたPCIeスイッチと、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに結合されたコントローラユニットとを含む。コントローラユニットは、ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラ及びDRAMプールを含む。DRAMプールは、1つ以上のDRAMデバイスを含む。
【0009】
別の実施形態では、記憶システムは、第1のメモリ手段を備える第1のデータ記憶デバイスと、第2のメモリ手段を備える第2のデータ記憶デバイスと、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに結合されたPCIeスイッチと、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに結合されたコントローラユニットとを含む。コントローラユニットは、コントローラメモリバッファ(CMB)コントローラ及びルートコンプレックス/ポートを含む。
【図面の簡単な説明】
【0010】
本開示の上記の特徴を詳細に理解することができるように、簡潔に上で要約した本開示のより具体的な説明は、実施形態を参照することによってなされ得、それらのいくつかが添付の図面に例示されている。しかしながら、添付の図面は、本開示の典型的な実施形態のみを例示し、したがって、その範囲を限定するものと見なされるべきではなく、本開示が他の同等に有効な実施形態を認め得ることに留意すべきである。
【0011】
【
図1】特定の実施形態による、データ記憶デバイスがホストデバイスの記憶デバイスとして機能し得る記憶システムを示す概略ブロック図である。
【
図2】特定の実施形態による、外部コントローラユニットがデータ記憶デバイスのための記憶デバイスとして機能し得る記憶システムを示す概略ブロック図である。
【
図3】特定の実施形態による、外部コントローラユニットが第1のデータ記憶デバイス及び第2のデータ記憶デバイスのための記憶デバイスとして機能し得る記憶システムを示す概略ブロック図である。
【
図4】特定の実施形態による、外部コントローラユニットが第1のデータ記憶デバイス及び第2のデータ記憶デバイスのための記憶デバイスとして機能し得る記憶システムを示す概略ブロック図である。
【
図5】特定の実施形態による、外部コントローラユニットにデータを記憶する方法を示すフロー図である。
【
図6】特定の実施形態による、外部コントローラユニットからデータを読み取る方法を示すフロー図である。
【0012】
理解を容易にするために、図面に共通する同一の要素を示すために、可能な限り、同一の参照番号を使用している。一実施形態で開示される要素は、特に断ることなく、他の実施形態に有益に利用され得ることが企図される。
【発明を実施するための形態】
【0013】
以下では、本開示の実施形態を参照する。しかしながら、本開示は、具体的に説明される実施形態に限定されないことを理解されたい。その代わりに、以下の特徴及び要素の任意の組み合わせが、異なる実施形態に関連するか否かに関わらず、本開示を実施及び実践すると企図される。更に、本開示の実施形態は、他の可能な解決策に勝る、及び/又は先行技術に勝る利点を達成し得るが、特定の利点が所与の実施形態によって達成されるか否かは、本開示を限定するものではない。したがって、以下の態様、特徴、実施形態、及び利点は、単なる例示に過ぎず、請求項(複数可)に明示的に記載されている場合を除いて、添付の特許請求の範囲の要素又は限定と見なされない。同様に、「本開示」への言及は、本明細書に開示される任意の発明の主題の一般化として解釈されるものではなく、請求項に明示的に記載されている場合を除いて、添付の特許請求の範囲の要素又は限定であると見なされるべきではない。
【0014】
本開示は、一般に、ソリッドステートドライブ(SSD)などのデータ記憶デバイスに関し、より具体的には、データ記憶デバイスとホストデバイスとの間のインターフェースを介して外部記憶デバイスを使用することに関する。記憶システムは、1つ以上のデータ記憶デバイスと、1つ以上のデータ記憶デバイスに結合されたPCIeスイッチと、PCIeスイッチに結合されたコントローラユニットとを含む。コントローラユニットは、ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラ及びDRAMプール又はコントローラメモリバッファ(CMB)コントローラと、ルートコンプレックス/ポートと、DRAMプールとを含む。DRAMプールは、1つ以上のDRAMデバイスを含む。1つ以上のデータ記憶デバイスは、コントローラユニットと対話し、コントローラユニットのDRAMプールのDRAMにデータを記憶するように構成される。
【0015】
図1は、特定の実施形態による、ホストデバイス104がデータ記憶デバイス106と通信する記憶システム100を示す概略ブロック図である。例えば、ホストデバイス104は、データ記憶デバイス106に含まれる不揮発性メモリ(NVM)110を利用して、データを記憶及び取得し得る。ホストデバイス104は、ホストDRAM138を備える。いくつかの実施例では、記憶システム100は、記憶アレイとして動作し得るデータ記憶デバイス106などの複数の記憶デバイスを含み得る。例えば、記憶システム100は、ホストデバイス104のための大量記憶デバイスとして集合的に機能する安価/独立ディスクの冗長アレイ(RAID)として構成された複数のデータ記憶デバイス106を含み得る。
【0016】
ホストデバイス104は、データ記憶デバイス106などの1つ以上の記憶デバイスに及び/又はからデータを記憶及び/又は取得し得る。
図1に例示されるように、ホストデバイス104は、インターフェース114を介してデータ記憶デバイス106と通信し得る。ホストデバイス104は、コンピュータサーバ、ネットワーク接続記憶(NAS)ユニット、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話機、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、又はデータ記憶デバイスからデータを送信又は受信することができる他のデバイスなどを含む、広範なデバイスのうちのいずれも備え得る。
【0017】
データ記憶デバイス106は、コントローラ108、NVM110、電源111、揮発性メモリ112、インターフェース114、及び書き込みバッファ116を含む。いくつかの実施例では、データ記憶デバイス106は、明瞭化のために
図1に示されていない追加の構成要素を含み得る。例えば、データ記憶デバイス106は、データ記憶デバイス106などの構成要素が機械的に取り付けられ、データ記憶デバイス106の構成要素を電気的に相互接続する導電性トレースを含む、プリント回路基板(PCB)を含み得る。いくつかの実施例では、データ記憶デバイス106の物理的寸法及びコネクタ構成は、1つ以上の標準的フォームファクタに適合し得る。いくつかの例示的な標準的フォームファクタとしては、3.5”データ記憶デバイス(例えば、HDD又はSSD)、2.5”データ記憶デバイス、1.8”データ記憶デバイス、周辺部品相互接続(PCI)、PCI拡張(PCI-X)、PCIエクスプレス(PCIe)(例えば、PCIe×1、×4、×8、×16、PCIeミニカード、ミニPCIなど)が挙げられるが、これらに限定されない。いくつかの実施例では、データ記憶デバイス106は、ホストデバイス104のマザーボードに直接結合(例えば、コネクタに直接半田付け又はプラグ接続)され得る。
【0018】
インターフェース114は、ホストデバイス104とデータを交換するためのデータバス及びホストデバイス104とコマンドを交換するための制御バスの一方又は両方を含み得る。インターフェース114は、任意の適切なプロトコルに従って動作し得る。例えば、インターフェース114は、PCI、PCIe、NVMe(Non-Volatile Memory Express)、OpenCAPI、GenZ、CCIX(Cache Coherent Interface Accelerator)、OCSSD(Open Channel SSD)などのプロトコルのうち1つ以上に従って動作し得る。列挙されていない他のプロトコルが、本明細書で説明される実施形態に適用可能であり得ることを理解されたい。インターフェース114(例えば、データバス、制御バス、又はその両方)は、コントローラ108に電気的に接続され、ホストデバイス104とコントローラ108との間の電気的接続を提供し、ホストデバイス104とコントローラ108との間でデータを交換することを可能にする。いくつかの実施例では、インターフェース114の電気的接続はまた、データ記憶デバイス106がホストデバイス104から電力を受け取ることを可能にし得る。例えば、
図1に例示されるように、電源111は、インターフェース114を介してホストデバイス104から電力を受け取り得る。
【0019】
NVM110は、複数のメモリデバイス又はメモリユニットを含み得る。NVM110は、データを記憶及び/又は取得するように構成され得る。例えば、NVM110のメモリユニットは、データと、データを記憶するようにメモリユニットに命令するメッセージと、をコントローラ108から受信し得る。同様に、メモリユニットは、データを取得するようにメモリユニットに命令するメッセージをコントローラ108から受信し得る。いくつかの実施例では、メモリユニットの各々は、ダイと称され得る。いくつかの実施例では、NVM110は、複数のダイ(すなわち、複数のメモリユニット)を含み得る。いくつかの実施例では、各メモリユニットは、比較的大量のデータ(例えば、128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TBなど)を記憶するように構成され得る。
【0020】
いくつかの実施例では、各メモリユニットは、フラッシュメモリデバイス、相変化メモリ(PCM)デバイス、抵抗ランダムアクセスメモリ(ReRAM)デバイス、磁気抵抗ランダムアクセスメモリ(MRAM)デバイス、強誘電性ランダムアクセスメモリ(F-RAM)、ホログラフィックメモリデバイス、及び任意の他のタイプの不揮発性メモリデバイスなどの、任意のタイプの不揮発性メモリデバイスを含み得る。
【0021】
NVM110は、複数のフラッシュメモリデバイス又はメモリユニットを備え得る。NVMフラッシュメモリデバイスは、NAND又はNORベースのフラッシュメモリデバイスを含み得、各フラッシュメモリセルのトランジスタの浮遊ゲートに含まれる電荷に基づいてデータを記憶し得る。NVMフラッシュメモリデバイスでは、フラッシュメモリデバイスは複数のダイに分割されてもよく、複数のダイの各ダイは複数の物理ブロック又は論理ブロックを含み、複数の物理ブロック又は論理ブロックは複数のページに更に分割されてもよい。特定のメモリデバイス内の複数のブロックの各ブロックは、複数のNVMセルを含み得る。NVMセルの行は、複数のページの各ページを定義するためにワード線を使用して電気的に接続され得る。複数のページの各々におけるそれぞれのセルは、それぞれのビット線に電気的に接続され得る。更に、NVMフラッシュメモリデバイスは、2D又は3Dデバイスであってもよく、単一レベルセル(SLC)、マルチレベルセル(MLC)、トリプルレベルセル(TLC)、又はクアッドレベルセル(QLC)であってもよい。コントローラ108は、ページレベルで、NVMフラッシュメモリデバイスにデータを書き込み、かつNVMフラッシュメモリデバイスからデータを読み取り得、ブロックレベルで、NVMフラッシュメモリデバイスからデータを消去し得る。
【0022】
電源111は、データ記憶デバイス106の1つ以上の構成要素に電力を供給し得る。標準モードで動作するとき、電源111は、ホストデバイス104などの外部デバイスによって提供される電力を使用して、1つ以上の構成要素に電力を提供し得る。例えば、電源111は、インターフェース114を介してホストデバイス104から受け取った電力を使用して、1つ以上の構成要素に電力を供給し得る。いくつかの実施例では、電源111は、外部デバイスから電力を受け取ることを停止する場合などのシャットダウンモードで動作するときに、1つ以上の構成要素に電力を供給するように構成された1つ以上の電力貯蔵構成要素を含み得る。このように、電源111は、積載電源として機能し得る。1つ以上の電力貯蔵構成要素のいくつかの実施例としては、コンデンサ、超コンデンサ、バッテリなどが挙げられるが、これらに限定されない。いくつかの実施例では、1つ以上の電力貯蔵構成要素によって貯蔵され得る電力の量は、1つ以上の電力貯蔵構成要素のコスト及び/又はサイズ(例えば、面積/体積)の関数であり得る。換言すれば、1つ以上の電力貯蔵構成要素によって貯蔵される電力の量が増加するにつれて、1つ以上の電力貯蔵構成要素のコスト及び/又はサイズも増加する。
【0023】
揮発性メモリ112は、情報を記憶するためにコントローラ108によって使用され得る。揮発性メモリ112は、1つ以上の揮発性メモリデバイスを含み得る。いくつかの実施例では、コントローラ108は、揮発性メモリ112をキャッシュとして使用し得る。例えば、コントローラ108は、キャッシュされた情報がNVM110に書き込まれるまで、揮発性メモリ112にキャッシュされた情報を記憶し得る。
図1に例示されるように、揮発性メモリ112は、電源111から受け取った電力を消費し得る。揮発性メモリ112の例としては、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックRAM(SRAM)、及び同期ダイナミックRAM(SDRAM(例えば、DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4など))が挙げられるが、これらに限定されない。
【0024】
コントローラ108は、データ記憶デバイス106の1つ以上の動作を管理し得る。例えば、コントローラ108は、NVM110からのデータの読み取り及び/又はNVM110へのデータの書き込みを管理し得る。いくつかの実施形態では、データ記憶デバイス106がホストデバイス104から書き込みコマンドを受信すると、コントローラ108は、データ記憶コマンドを開始して、データをNVM110に記憶し、データ記憶コマンドの進捗を監視し得る。コントローラ108は、記憶システム100の少なくとも1つの動作特性を判定し、少なくとも1つの動作特性をNVM110に記憶し得る。いくつかの実施形態では、データ記憶デバイス106がホストデバイス104から書き込みコマンドを受信すると、コントローラ108は、データをNVM110に送信する前に、内部メモリ又は書き込みバッファ116内の書き込みコマンドに関連付けられたデータを一時的に記憶する。
【0025】
図2は、特定の実施形態による、コントローラユニット206がデータ記憶デバイス212の記憶デバイスとして機能し得る記憶システム200を示す概略ブロック図である。データ記憶デバイス212は、
図1のデータ記憶デバイス106であってもよい。記憶システム200は、PCIeスイッチ204に結合されたホストデバイス202を含む。PCIeスイッチ204は、コントローラユニット206及びデータ記憶デバイス212に結合される。PCIeスイッチ204は、2つ以上のデータ記憶デバイスがPCIeスイッチ204に接続され得るように、2つ以上のポートを有し得る。
【0026】
コントローラユニット206は、DRAMホストメモリバッファ(HMB)コントローラ208及びDRAMプール210を含む。いくつかの実施例では、DRAMプール210はHMBと類似し得る。コントローラユニット206は、データ記憶デバイス212の簡略化されたバージョンであってもよく、コントローラユニット206はデータ記憶デバイス212とは別個である。DRAMプール210は、1つ以上のDRAMデバイスを含む。いくつかの実施形態では、DRAMプール210は、揮発性メモリデバイスの任意のプールであり得る。
【0027】
いくつかの実施例では、コントローラユニット206は、NVMデバイスを更に含み得る。電源障害保護が必要な場合、コントローラユニット206は、DRAMプール210に記憶されたデータをNVMデバイスにフラッシュし得る。他の実施例では、コントローラユニット206は、DRAMプール210に記憶されたデータをデータ記憶デバイス212のメモリデバイス222にフラッシュし得る。DRAM HMBコントローラ208は、DRAMプール210からデータ記憶デバイス212への1つ以上のDRAMデバイスの割り当て、並びにDRAMプール210の1つ以上のDRAMデバイスへのデータの書き込み及びDRAMプールの1つ以上のDRAMデバイスからのデータの読み取りを担当し得る。
【0028】
データ記憶デバイス212は、HMBコントローラ214、PCIe/NVMeフロントエンド(FE)216、メモリデバイス管理ユニット218、メモリデバイスインターフェースユニット220、及びメモリデバイスのプールであり得るメモリデバイス222を含む。メモリデバイス222は、NVMデバイスであり得る。ホストデバイス202がデータ記憶デバイス212に書き込みコマンドを送信すると、PCIe/NVMe FE 216が書き込みコマンドを受信する。PCIe/NVMe FE 216は、書き込みコマンドを処理し得、書き込みコマンドのデータに対するエラー訂正コードを生成して符号化することを含み得る。メモリデバイス管理ユニット218は、メモリデバイス222にデータをプログラムするための書き込みコマンドと、メモリデバイス222からデータを読み取るための読み取りコマンドとをスケジューリングし得る。メモリデバイスインターフェースユニット220は、メモリデバイス222にデータをプログラムし得、又はメモリデバイス222からデータを読み取りし得るように、メモリデバイス222にアクセスし得る。
【0029】
データがメモリデバイス222にプログラムされると、データのLBAからPBAへのマッピングは、L2Pテーブルに記憶され得る。コントローラユニット206は、データ記憶デバイス212にとってピアPCIeデバイスのように見えてもよく、標準的なPCIe方法を使用してアドレス指定されてもよい。したがって、HMBコントローラ214は、L2P記述子を記憶及び取得するために、外部記憶デバイスとしてコントローラユニット206にアクセスし得る。例えば、データ記憶デバイス212のL2Pテーブルは、データ記憶デバイス212のDRAMデバイスではなく、DRAMプール210のDRAMデバイスに記憶されてもよい。
【0030】
図3は、特定の実施形態による、コントローラユニット322が第1のデータ記憶デバイス306a及び第2のデータ記憶デバイス306bのための記憶デバイスとして機能し得る記憶システム300を示す概略ブロック図である。記憶システム300の態様は、
図2の記憶システム200と同様であってもよい。1つ以上のデータ記憶デバイスが、PCIeスイッチ304及びコントローラユニット322に結合され得ることを理解されたい。
【0031】
ホストデバイス302は、PCIeスイッチ304に結合される。第1のデータ記憶デバイス306a及び第2のデータ記憶デバイス306bは各々、第1のポート308、第2のポート310、HMBコントローラ312、PCIe/NVMe FE 314、メモリデバイス管理ユニット316、メモリデバイスインターフェースユニット318、及びメモリデバイスのプールであり得るメモリデバイス320を含む。メモリデバイス222は、NVMデバイスであり得る。
【0032】
コントローラユニット322は、DRAM HMBコントローラ326及びDRAMプール324を含む。いくつかの実施例では、DRAMプール324はHMBと類似し得る。コントローラユニット322は、第1のデータ記憶デバイス306a及び第2のデータ記憶デバイス306bの簡略化されたバージョンであり得る。DRAMプール324は、1つ以上のDRAMデバイスを含む。いくつかの実施形態では、DRAMプール324は、揮発性メモリデバイス(例えば、SRAM、DRAM、又は両方)の任意のプールであり得る。いくつかの実施例では、コントローラユニット322は、NVMデバイスを更に含み得る。
【0033】
第1のポート308は、ホストデバイス302との対話のためにPCIeスイッチ304に結合され得る。第1のデータ記憶デバイス306a及び第2のデータ記憶デバイス306bの第2のポート310は、冗長性のために使用されてもよく(第1のポート308が故障した場合)、又はいくつかの実施形態では、コントローラユニット322のDRAM HMBコントローラ326に接続されてもよい。DRAM HMBコントローラ326は、1つ以上のデータ記憶デバイスのためのルートコンプレックスとして機能し得る。データ記憶デバイスは、3つ以上のポートを有してもよいことを理解されたい。
【0034】
コントローラユニット322のDRAMプール324を外部メモリデバイスとして使用することによって、第2のポート310がコントローラユニット322に結合される場合、第2のポートがコントローラユニット322に向けられた読み取りコマンド及び書き込みコマンドのために使用され得るので、レイテンシは一貫して保たれ得る。同様に、PCIeスイッチ304におけるPCIeベースの優先順位付けは、DRAMプール324に記憶されたL2Pエントリへの一貫した読み取りアクセスを保証するために、DRAMプール324へのアクセスが通常のデータスループットよりも高く優先順位付けされることを保証するために使用され得る。
【0035】
電源障害保護が必要な場合、コントローラユニット322は、DRAMプール324に記憶されたデータをNVMデバイスにフラッシュし得る。他の実施例では、コントローラユニット206は、DRAMプール324に記憶されたデータを、第1のデータ記憶デバイス306a、第2のデータ記憶デバイス306bのいずれか、又は第1のデータ記憶デバイス306a及び第2のデータ記憶デバイス306bの両方のメモリデバイス320にフラッシュし得る。DRAM HMBコントローラ326は、DRAMプール324のDRAMデバイスをDRAMプールから第1のデータ記憶デバイス306a及び第2のデータ記憶デバイス306bに割り当て、並びにDRAMプール324の1つ以上のDRAMデバイスへのデータの書き込み及び1つ以上のDRAMデバイスからのデータの読み取りを担当し得る。
【0036】
図4は、特定の実施形態による、コントローラユニット402が第1のデータ記憶デバイス306a及び第2のデータ記憶デバイス306bのための記憶デバイスとして機能し得る記憶システム400を示す概略ブロック図である。記憶システム400の態様は、
図3の記憶システム300と同様であってもよい。簡略化のために、記憶システム400と記憶システム300との間の共通の要素は、同一又は同様の参照番号を有し得る。
【0037】
コントローラユニット402においてHMBコントローラを使用するのではなく、コントローラユニット402は、コントローラメモリバッファ(CMB)コントローラ406を使用する。コントローラユニット402は、複数のデータ記憶デバイスに接続可能であり得るルートコンプレックス/ポート1 404と、DRAMプール408に結合されたCMBコントローラ406と、PCIe/NVMe FE 410と、メモリデバイス管理ユニット412と、メモリデバイスインターフェースユニット414とを含む。いくつかの実施例では、コントローラユニット402は、NVMデバイスを含まないデータ記憶デバイスであってもよい。他の実施例では、コントローラユニット402は、共有DRAMインターフェースとして再使用されるデータ記憶デバイスであってもよい。いくつかの実施例では、DRAMプール408への相互接続は、相互接続としてPCIeを使用する複数の処理デバイス間のキャッシュコヒーレントアクセスを可能にするコンピュートエクスプレスリンクを使用する。したがって、コントローラユニット402は、CXLメモリデバイスであってもよい。
【0038】
図5は、特定の実施形態による、コントローラユニットにデータを記憶する方法500を示すフロー図である。方法500は、上述した記憶システム200、300、400のいずれかによって使用され得る。例示の目的で、記憶システム200の態様を参照し得る。ブロック502において、HMBコントローラ214などのデータ記憶デバイス212のコントローラは、コントローラユニット206などの外部コントローラユニットがデータ記憶デバイス212に接続されていると判定する。接続は、直接接続又は間接接続であってもよい。
【0039】
ブロック504において、HMBコントローラ214は、DRAMプール210からDRAM割り当てを受信する。例えば、DRAM HMBコントローラ208は、データ記憶デバイス212による使用のために、DRAMプール210から1つ以上のDRAMデバイスを割り当ててもよい。ブロック506において、HMBコントローラ214は、DRAMデバイスへの書き込みが必要であると判定する。この判定は、メモリデバイス222への書き込み、ガベージコレクションなどのメモリデバイス222へのデータ管理動作などに起因し得る。したがって、マッピング(LBAからPBA)が変更され得るので、対応するL2Pテーブル内の対応するL2Pエントリは、更新される必要がある。ブロック508において、HMBコントローラ214は、データ記憶デバイス212のDRAMを使用する代わりに、DRAMプール210から割り当てられたDRAMにデータを書き込むために、書き込みコマンドをDRAM HMBコントローラ208に送信する。したがって、L2Pテーブルは、DRAMプール210のDRAM内など、外部で維持され得る。
【0040】
図6は、特定の実施形態による、コントローラユニットからデータを読み取る方法600を示すフロー図である。方法600は、上述した記憶システム200、300、400のいずれかによって使用され得る。例示の目的で、記憶システム200の態様を参照し得る。ブロック602において、HMBコントローラ214などのデータ記憶デバイス212のコントローラは、メモリデバイス222に記憶されたデータに対するホストデバイス202からの読み取りコマンドを受信する。
【0041】
ブロック604において、HMBコントローラ214は、データ記憶デバイス212に対応するコントローラユニット206内のL2Pテーブルを見つける。ブロック606において、HMBコントローラ214は、読み取りコマンドをDRAM HMBコントローラ208に送信して、読み取りコマンドに対応するデータをL2Pテーブルから取得する。ブロック608において、データは、取得されたL2Pテーブル情報を使用してメモリデバイス222から読み取られ、データはホストデバイス202に配信される。
【0042】
1つ以上のデータ記憶デバイスのための揮発性メモリプールとして使用するための外部コントローラユニット又は記憶デバイスを含む記憶システムを有することによって、1つ以上のデータ記憶デバイスのコストは、1つ以上のデータ記憶デバイスの低減された揮発性メモリ要件に起因して低減され得る。
【0043】
一実施形態では、記憶システムは、1つ以上のデータ記憶デバイスと、1つ以上のデータ記憶デバイスに結合されたPCIeスイッチと、PCIeスイッチに結合されたコントローラユニットとを含む。コントローラユニットは、ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラ及びDRAMプールを含む。DRAMプールは、1つ以上のDRAMデバイスを含む。
【0044】
PCIeスイッチは、DRAM HMBコントローラに直接結合される。1つ以上のデータ記憶デバイスの各データ記憶デバイスは、HMBコントローラと、PCIe/NVMeフロントエンドユニットと、メモリデバイス管理ユニットと、メモリデバイスインターフェースユニットと、メモリデバイスとを含む。コントローラユニットは、1つ以上のデータ記憶デバイスのためのルートコンプレックスとして機能する。1つ以上のデータ記憶デバイスは、コントローラユニットとは別個である。コントローラユニットは、1つ以上のデータ記憶デバイスにとってピアPCIeデバイスのように見える。DRAMプールは、1つ以上のデータ記憶デバイスによって共有される。1つ以上のデータ記憶デバイスは、2つ以上のデータ記憶デバイスである。1つ以上のデータ記憶デバイスの各データ記憶デバイスは、第1のポート及び第2のポートを含む。第1のポートは、PCIeスイッチに結合される。
【0045】
別の実施形態では、記憶システムは、第1のデータ記憶デバイスと、第2のデータ記憶デバイスと、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに結合されたPCIeスイッチと、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに結合されたコントローラユニットとを含む。コントローラユニットは、ダイナミックランダムアクセスメモリ(DRAM)ホストメモリバッファ(HMB)コントローラ及びDRAMプールを含む。DRAMプールは、1つ以上のDRAMデバイスを含む。
【0046】
第1のデータ記憶デバイス及び第2のデータ記憶デバイスは各々、第1のポート及び第2のポートを有する。第1のポートは、PCIeスイッチに結合される。第2のポートはコントローラユニットに結合される。第2のポートは、HMBコントローラに結合される。HMBコントローラは、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに配置される。第2のポートは、DRAM HMBコントローラに結合される。コントローラユニットは、コントローラユニットの電源障害イベントを検出すると、DRAMプールのデータを第1のデータ記憶デバイス、第2のデータ記憶デバイスのいずれか、又は第1のデータ記憶デバイス及びデータ記憶デバイスの両方にプッシュするように構成される。
【0047】
別の実施形態では、記憶システムは、第1のメモリ手段を備える第1のデータ記憶デバイスと、第2のメモリ手段を備える第2のデータ記憶デバイスと、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに結合されたPCIeスイッチと、第1のデータ記憶デバイス及び第2のデータ記憶デバイスに結合されたコントローラユニットとを含む。コントローラユニットは、コントローラメモリバッファ(CMB)コントローラ及びルートコンプレックス/ポートを含む。
【0048】
第1のデータ記憶デバイス、第2のデータ記憶デバイス及びコントローラユニットは各々、メモリ手段インターフェース、メモリ手段管理ユニット及びPCIe/NVMeフロントエンドユニットを含む。第1のデータ記憶デバイス及び第2のデータ記憶デバイスは各々、第1のポート及び第2のポートを含む。第1のポートは、PCIeスイッチに結合される。第2のポートは、ルートコンプレックス/ポートに結合される。CMBコントローラは、DRAMプールに結合される。
【0049】
上記は本開示の実施形態を目的とするが、本開示の他の及び更なる実施形態が、その基本的範囲から逸脱することなく考案され得、その範囲は、以下の特許請求の範囲によって決定される。
【手続補正書】
【提出日】2024-03-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
記憶システムであって、
1つ以上のデータ記憶デバイスと、
前記1つ以上のデータ記憶デバイスに結合されたPCIeスイッチと、
前記PCIeスイッチに結合されたコントローラユニットと、を備え、
前記コントローラユニットが、前記1つ以上のデータ記憶デバイスとは別個のデータ記憶デバイスであり、
前記コントローラユニットが、
ホストデバイスのホストメモリバッファ(HMB)とは別個の前記コントローラユニットの1つ以上のダイナミックランダムアクセスメモリ(DRAM)
デバイスを制御するためのDRAM HM
Bコントローラと、
DRAMプール
と、を備え、
前記DRAMプールが、
前記コントローラユニットに設けられる前記1つ以上のDRAMデバイスを備
え、
前記1つ以上のDRAMデバイスの各々が、前記1つ以上のデータ記憶デバイスによる使用のために、前記DRAM HMBコントローラによって前記1つ以上のデータ記憶デバイスに割り当てられる、記憶システム。
【請求項2】
前記PCIeスイッチが、前記DRAM HMBコントローラに直接結合される、請求項1に記載の記憶システム。
【請求項3】
前記1つ以上のデータ記憶デバイスの各データ記憶デバイスが、
HMBコントローラと、
PCIe/NVMeフロントエンドユニットと、
メモリデバイス管理ユニットと、
メモリデバイスインターフェースユニットと、
メモリデバイスと、を備える、請求項1に記載の記憶システム。
【請求項4】
前記コントローラユニットが、前記1つ以上のデータ記憶デバイスのためのルートコンプレックスとして機能する、請求項1に記載の記憶システム。
【請求項5】
前記1つ以上のデータ記憶デバイスが、前記コントローラユニットとは別個である、請求項1に記載の記憶システム。
【請求項6】
前記コントローラユニットが、前記1つ以上のデータ記憶デバイスに対してピアPCIeデバイスとして見える、請求項1に記載の記憶システム。
【請求項7】
前記DRAMプールが、前記1つ以上のデータ記憶デバイスによって共有される、請求項1に記載の記憶システム。
【請求項8】
前記1つ以上のデータ記憶デバイスが、2つ以上のデータ記憶デバイスである、請求項1に記載の記憶システム。
【請求項9】
前記1つ以上のデータ記憶デバイスの各データ記憶デバイスが、第1のポート及び第2のポートを備え、前記第1のポートが、前記PCIeスイッチに結合される、請求項1に記載の記憶システム。
【請求項10】
記憶システムであって、
第1のデータ記憶デバイスと、
第2のデータ記憶デバイスと、
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに結合されたPCIeスイッチと、
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに結合されたコントローラユニットと、を備え、
前記コントローラユニットが、前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスとは別個のデータ記憶デバイスであり、
前記コントローラユニットが、
ホストデバイスのホストメモリバッファ(HMB)とは別個の前記コントローラユニットの1つ以上のダイナミックランダムアクセスメモリ(DRAM)
デバイスを制御するためのDRAM HM
Bコントローラと、
DRAMプール
と、を備え、
前記DRAMプールが、
前記コントローラユニットに設けられる前記1つ以上のDRAMデバイスを備
え、
前記1つ以上のDRAMデバイスの各々が、前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスによる使用のために、前記DRAM HMBコントローラによって前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに割り当てられる、記憶システム。
【請求項11】
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスが各々、第1のポート及び第2のポートを有し、前記第1のポートが、前記PCIeスイッチに結合される、請求項10に記載の記憶システム。
【請求項12】
前記第2のポートが、前記コントローラユニットに結合される、請求項11に記載の記憶システム。
【請求項13】
前記第2のポートが、HMBコントローラに結合される、請求項12に記載の記憶システム。
【請求項14】
前記HMBコントローラが、前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイス内に配置される、請求項13に記載の記憶システム。
【請求項15】
前記第2のポートが、前記DRAM HMBコントローラに結合される、請求項12に記載の記憶システム。
【請求項16】
前記コントローラユニットが、前記コントローラユニットの電源障害イベントを検出すると、前記DRAMプールのデータを前記第1のデータ記憶デバイス、前記第2のデータ記憶デバイスのいずれか、又は前記第1のデータ記憶デバイス及び前記データ記憶デバイスの両方にプッシュするように構成される、請求項10に記載の記憶システム。
【請求項17】
記憶システムであって、
第1のメモリ手段を備える第1のデータ記憶デバイスと、
第2のメモリ手段を備える第2のデータ記憶デバイスと、
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに結合されたPCIeスイッチと、
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに結合されたコントローラユニットと、を備え、
前記コントローラユニットが、前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスとは別個のデータ記憶デバイスであり、
前記コントローラユニットが、
ホストデバイスのホストメモリバッファ(HMB)とは別個の前記コントローラユニットの1つ以上のダイナミックランダムアクセスメモリ(DRAM)デバイスを制御するためのコントローラメモリバッファ(CMB)コントローラと、
ルートコンプレックス/ポートと、
DRAMプールと、を備え
、
前記DRAMプールが、前記コントローラユニットに設けられる前記1つ以上のDRAMデバイスを備え、
前記1つ以上のDRAMデバイスの各々が、前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスによる使用のために、前記CMBコントローラによって前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスに割り当てられる、記憶システム。
【請求項18】
前記第1のデータ記憶デバイス、前記第2のデータ記憶デバイス、及び前記コントローラユニットが各々、
メモリ手段インターフェースと、
メモリ手段管理ユニットと、
PCIe/NVMeフロントエンドユニットと、を備える、請求項17に記載の記憶システム。
【請求項19】
前記第1のデータ記憶デバイス及び前記第2のデータ記憶デバイスが各々、第1のポート及び第2のポートを備え、前記第1のポートが前記PCIeスイッチに結合され、前記第2のポートが前記ルートコンプレックス/ポートに結合される、請求項17に記載の記憶システム。
【請求項20】
前記CMBコントローラが、
前記DRAMプールに結合される、請求項17に記載の記憶システム。
【国際調査報告】