(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】メモリデバイスベースの加速化深層学習システム
(51)【国際特許分類】
G06N 3/0985 20230101AFI20241024BHJP
G06F 12/02 20060101ALI20241024BHJP
【FI】
G06N3/0985
G06F12/02 570A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024526651
(86)(22)【出願日】2022-05-21
(85)【翻訳文提出日】2024-05-02
(86)【国際出願番号】 US2022030419
(87)【国際公開番号】W WO2023149916
(87)【国際公開日】2023-08-10
(32)【優先日】2022-02-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】504056130
【氏名又は名称】ウェスタン デジタル テクノロジーズ インコーポレーテッド
(74)【代理人】
【識別番号】100207837
【氏名又は名称】小松原 寿美
(72)【発明者】
【氏名】ナボン、アリエル
(72)【発明者】
【氏名】バザルスキー、アレクサンダー
(72)【発明者】
【氏名】ハーン、ジュダ ガムリエル
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AB26
(57)【要約】
データ記憶デバイスは、メモリデバイス、及びメモリデバイスに結合されたコントローラを含む。コントローラは、ホストデバイスに結合されるように構成される。コントローラは、複数のコマンドを受信し、複数のコマンドの各々について論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピングを生成し、生成されたL2Pマッピングに従って複数のコマンドのデータをそれぞれのPBAに記憶するように更に構成される。L2Pマッピングの各々は、ニューラルネットワーク(NN)構造を使用する深層学習(DL)トレーニングモデルの結果に基づいて生成される。コントローラは、NNコマンド解釈ユニットと、NNコマンド解釈ユニットに結合されたL2Pマッピング生成器とを含む。コントローラは、メモリデバイスからトレーニングデータ及びNNパラメータをフェッチするように構成される。
【特許請求の範囲】
【請求項1】
データ記憶デバイスであって、
メモリデバイスと、
前記メモリデバイスに結合されたコントローラと、を備え、前記コントローラが、ホストデバイスに結合されるように構成されており、前記コントローラが、
複数のコマンドを受信し、
前記複数のコマンドの各々について論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピングを生成し、前記L2Pマッピングの各々が、ニューラルネットワーク(NN)構造を使用する深層学習(DL)トレーニングモデルの結果に基づいて生成され、
前記生成されたL2Pマッピングに従って、前記複数のコマンドのデータをそれぞれのPBAに記憶する、ように更に構成されている、データ記憶デバイス。
【請求項2】
前記コントローラが、
前記NN構造及び1つ以上のハイパーパラメータ値を受信し、
前記NN構造及び前記ハイパーパラメータ値を前記メモリデバイスに記憶する、ように更に構成されている、請求項1に記載のデータ記憶デバイス。
【請求項3】
前記NN構造が、ホストデバイスから受信される、請求項2に記載のデータ記憶デバイス。
【請求項4】
前記メモリデバイスが、不揮発性メモリデバイスである、請求項2に記載のデータ記憶デバイス。
【請求項5】
前記1つ以上のハイパーパラメータ値が、前記DLトレーニングモデルのトレーニング手順を定義する、請求項2に記載のデータ記憶デバイス。
【請求項6】
前記NN構造及び前記1つ以上のハイパーパラメータ値が、前記トレーニング手順の開始時に前記DLトレーニングモデルに提供される、請求項5に記載のデータ記憶デバイス。
【請求項7】
前記DLトレーニングモデルが、1つ以上の所定のパラメータセットの所定のハイパーパラメータ値を使用する、請求項5に記載のデータ記憶デバイス。
【請求項8】
前記DLトレーニングモデルが、前記L2Pマッピングの各々を生成した後に更新される、請求項1に記載のデータ記憶デバイス。
【請求項9】
前記コントローラが、前記NN構造に従って重みを読み取るように更に構成されており、前記重みが、前記L2Pマッピングの各々を生成した後に更新される、請求項1に記載のデータ記憶デバイス。
【請求項10】
前記コントローラが、前記複数のコマンドの前記データを指定されたバッファに配置するように更に構成されており、前記配置が、ホストデバイスの関与なしに完了される、請求項1に記載のデータ記憶デバイス。
【請求項11】
データ記憶デバイスであって、
メモリデバイスと、
前記メモリデバイスに結合されたコントローラと、を備え、前記コントローラが、
ニューラルネットワーク(NN)コマンド解釈ユニットと、
前記NNコマンド解釈ユニットに結合された論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピング生成器と、を備え、前記コントローラが、前記メモリデバイスからトレーニングデータ及びNNパラメータをフェッチするように構成されている、データ記憶デバイス。
【請求項12】
前記NNコマンド解釈ユニットが、ホストデバイス内に配置されたNNインターフェースコマンド生成器とインターフェースするように構成されている、請求項11に記載のデータ記憶デバイス。
【請求項13】
前記NNパラメータが、KVペアデータである、請求項11に記載のデータ記憶デバイス。
【請求項14】
前記トレーニングデータ及び前記NNパラメータが、深層学習(DL)トレーニングモデルにおいて利用される、請求項11に記載のデータ記憶デバイス。
【請求項15】
前記DLトレーニングモデルの1つ以上の部分が無効にされる、請求項14に記載のデータ記憶デバイス。
【請求項16】
前記コントローラが、前記メモリデバイスからの前記トレーニングデータ及び前記NNパラメータの自律的フェッチを実行するように構成されている、請求項11に記載のデータ記憶デバイス。
【請求項17】
前記コントローラが、深層学習(DL)トレーニングモデルに関連付けられた1つ以上の重みを更新するように更に構成されており、前記更新が、前記1つ以上の重みの以前の読み取りと同じアドレスに対するものである、請求項11に記載のデータ記憶デバイス。
【請求項18】
データ記憶デバイスであって、
不揮発性メモリ手段と、
前記不揮発性メモリ手段に結合されたコントローラであって、前記コントローラが、
ニューラルネットワーク(NN)パラメータ及び1つ以上のハイパーパラメータ値を前記不揮発性メモリ手段に記憶し、
完全自律深層学習(DL)トレーニングモデルを実行する、又は
半自律DLトレーニングモデルを実行し、
前記実行されたDLトレーニングモデルに従ってデータを記憶する、ように構成されている、データ記憶デバイス。
【請求項19】
前記不揮発性メモリ手段が、NANDベースのメモリ手段である、請求項18に記載のデータ記憶デバイス。
【請求項20】
前記実行が、所定のトレーニングスケジュールに従って読み取り及び書き込みを行うことを含む、請求項18に記載のデータ記憶デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2022年02月04日に出願された「MEMORY DEVICE BASED ACCELERATED DEEP-LEARNING SYSTEM」と題する米国非仮出願第17/592,953号の全内容を、あらゆる目的のために、参照により本明細書に組み込む。
【0002】
(発明の分野)
本開示の実施形態は、概して、ソリッドステートドライブ(SSD)などのデータ記憶デバイスに関し、より具体的には、不揮発性メモリに記憶された深層学習トレーニングモデルを利用して、データ記憶デバイスの読み取り及び書き込み性能を向上させることに関する。
【背景技術】
【0003】
深層学習(Deep Learning、DL)システムは、様々な分野における能力を有する発展しつつある技術である。しかしながら、DLシステムの能力の増加に起因して、DLシステムに対する対応するハードウェアリソース消費も同様に増加する。データセット及びDLモデルのサイズに起因して、DLシステムは、非常に大容量の高速メモリを必要とし得る。そのようなメモリは、ランダムアクセスメモリ(RAM)であり得る。しかしながら、NANDメモリデバイスなどの不揮発性メモリは、DLハードウェア計算においてインターレースされ得る。
【0004】
典型的には、DLモデルはデータ記憶デバイスのダイナミックRAM(DRAM)に保持される。DLモデルのサイズが増大するにつれて、より多くのDRAMが必要とされる可能性があり、したがって、データ記憶デバイスのコストが増大する。しかしながら、NANDメモリなどの不揮発性メモリは、容量当たりのコストがDRAMほど高くない場合がある。しかしながら、NANDメモリは、DRAMと性能出力が同等ではない場合がある。例えば、データセットは、約100GB以上のサイズであってもよい。データセットは、DLモデルを調整するために使用されるデータサンプル及びラベルの集合である。
【0005】
したがって、当技術分野では、DLモデルのトレーニングのために不揮発性メモリを使用する改善されたDLシステムが必要とされている。
【発明の概要】
【0006】
本開示は、概して、ソリッドステートドライブ(SSD)などのデータ記憶デバイスに関し、より具体的には、不揮発性メモリに記憶された深層学習トレーニングモデルを利用して、データ記憶デバイスの読み取り及び書き込み性能を向上させることに関する。データ記憶デバイスは、メモリデバイス、及びメモリデバイスに結合されたコントローラを含む。コントローラは、ホストデバイスに結合されるように構成される。コントローラは、複数のコマンドを受信し、複数のコマンドの各々について論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピングを生成し、生成されたL2Pマッピングに従って複数のコマンドのデータをそれぞれのPBAに記憶するように更に構成される。L2Pマッピングの各々は、ニューラルネットワーク(NN)構造を使用する深層学習(DL)トレーニングモデルの結果に基づいて生成される。コントローラは、NNコマンド解釈ユニットと、NNコマンド解釈ユニットに結合されたL2Pマッピング生成器とを含む。コントローラは、メモリデバイスからトレーニングデータ及びNNパラメータをフェッチするように構成される。
【0007】
一実施形態では、データ記憶デバイスは、メモリデバイスと、メモリデバイスに結合されたコントローラと、を含む。コントローラは、ホストデバイスに結合されるように構成される。コントローラは、複数のコマンドを受信し、複数のコマンドの各々について論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピングを生成し、生成されたL2Pマッピングに従って複数のコマンドのデータをそれぞれのPBAに記憶するように更に構成される。L2Pマッピングの各々は、ニューラルネットワーク(NN)構造を使用する深層学習(DL)トレーニングモデルの結果に基づいて生成される。
【0008】
別の実施形態では、データ記憶デバイスは、メモリデバイスと、メモリデバイスに結合されたコントローラと、を含む。コントローラは、ニューラルネットワーク(NN)コマンド解釈ユニットと、NNコマンド解釈ユニットに結合された論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピング生成器とを含む。コントローラは、メモリデバイスからトレーニングデータ及びNNパラメータをフェッチするように構成される。
【0009】
別の実施形態では、データ記憶デバイスは、不揮発性メモリ手段と、不揮発性メモリ手段に結合されたコントローラと、を含む。コントローラは、ニューラルネットワーク(NN)パラメータ及び1つ以上のハイパーパラメータ値を不揮発性メモリ手段に記憶し、完全自律深層学習(DL)トレーニングモデルを実行するか、又は半自律DLトレーニングモデルを実行し、実行されたDLトレーニングモデルに従ってデータを記憶するように構成される。
【図面の簡単な説明】
【0010】
本開示の上記の特徴を詳細に理解することができるように、簡潔に上で要約した本開示のより具体的な説明は、実施形態を参照することによってなされ得、それらのいくつかが添付の図面に例示されている。しかしながら、添付の図面は、本開示の典型的な実施形態のみを例示し、したがって、その範囲を限定するものと見なされるべきではなく、本開示が他の同等に有効な実施形態を認め得ることに留意すべきである。
【
図1】特定の実施形態による、データ記憶デバイスがホストデバイスの記憶デバイスとして機能し得る記憶システムを示す概略ブロック図である。
【
図2】特定の実施形態による、深層ニューラルネットワークの例示的な図である。
【
図3】特定の実施形態による、LBA/PBAアドレス指定システムを示す概略ブロック図である。
【
図4】特定の実施形態による、LBA/PBAアドレス指定システムを示す概略ブロック図である。
【
図5】特定の実施形態による、深層学習トレーニング中の完全自律データ記憶デバイス動作の方法を示す流れ図である。
【
図6】特定の実施形態による、深層学習トレーニング中の半自律データ記憶デバイス動作の方法を示す流れ図である。
【0011】
理解を容易にするために、図面に共通する同一の要素を示すために、可能な限り、同一の参照番号を使用している。一実施形態で開示される要素は、特に断ることなく、他の実施形態に有益に利用され得ることが企図される。
【発明を実施するための形態】
【0012】
以下では、本開示の実施形態を参照する。しかしながら、本開示は、具体的に説明される実施形態に限定されないことを理解されたい。その代わりに、以下の特徴及び要素の任意の組み合わせが、異なる実施形態に関連するか否かに関わらず、本開示を実施及び実践すると企図される。更に、本開示の実施形態は、他の可能な解決策に勝る、及び/又は先行技術に勝る利点を達成し得るが、特定の利点が所与の実施形態によって達成されるか否かは、本開示を限定するものではない。したがって、以下の態様、特徴、実施形態、及び利点は、単なる例示に過ぎず、請求項(複数可)に明示的に記載されている場合を除いて、添付の特許請求の範囲の要素又は限定と見なされない。同様に、「本開示」への言及は、本明細書に開示される任意の発明の主題の一般化として解釈されるものではなく、請求項に明示的に記載されている場合を除いて、添付の特許請求の範囲の要素又は限定であると見なされるべきではない。
【0013】
本開示は、概して、ソリッドステートドライブ(SSD)などのデータ記憶デバイスに関し、より具体的には、不揮発性メモリに記憶された深層学習トレーニングモデルを利用して、データ記憶デバイスの読み取り及び書き込み性能を向上させることに関する。データ記憶デバイスは、メモリデバイス、及びメモリデバイスに結合されたコントローラを含む。コントローラは、ホストデバイスに結合されるように構成される。コントローラは、複数のコマンドを受信し、複数のコマンドの各々について論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピングを生成し、生成されたL2Pマッピングに従って複数のコマンドのデータをそれぞれのPBAに記憶するように更に構成される。L2Pマッピングの各々は、ニューラルネットワーク(NN)構造を使用する深層学習(DL)トレーニングモデルの結果に基づいて生成される。コントローラは、NNコマンド解釈ユニットと、NNコマンド解釈ユニットに結合されたL2Pマッピング生成器とを含む。コントローラは、メモリデバイスからトレーニングデータ及びNNパラメータをフェッチするように構成される。
【0014】
図1は、特定の実施形態による、ホストデバイス104がデータ記憶デバイス106と通信する記憶システム100を示す概略ブロック図である。例えば、ホストデバイス104は、データ記憶デバイス106に含まれる不揮発性メモリ(NVM)110を利用して、データを記憶及び取得し得る。ホストデバイス104は、ホストDRAM138を備える。いくつかの実施例では、記憶システム100は、記憶アレイとして動作し得るデータ記憶デバイス106などの複数の記憶デバイスを含み得る。例えば、記憶システム100は、ホストデバイス104のための大量記憶デバイスとして集合的に機能する安価/独立ディスクの冗長アレイ(RAID)として構成された複数のデータ記憶デバイス106を含み得る。
【0015】
ホストデバイス104は、データ記憶デバイス106などの1つ以上の記憶デバイスに及び/又はからデータを記憶及び/又は取得し得る。
図1に例示されるように、ホストデバイス104は、インターフェース114を介してデータ記憶デバイス106と通信し得る。ホストデバイス104は、コンピュータサーバ、ネットワーク接続記憶(NAS)ユニット、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話機、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、又はデータ記憶デバイスからデータを送信又は受信することができる他のデバイスなどを含む、広範なデバイスのうちのいずれも備え得る。
【0016】
データ記憶デバイス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のマザーボードに直接結合(例えば、コネクタに直接半田付け又はプラグ接続)され得る。
【0017】
インターフェース114は、ホストデバイス104とデータを交換するためのデータバス及びホストデバイス104とコマンドを交換するための制御バスの一方又は両方を含み得る。インターフェース114は、任意の適切なプロトコルに従って動作し得る。例えば、インターフェース114は、以下のプロトコルのうちの1つ以上:先進技術アタッチメント(ATA)(例えば、シリアルATA(SATA)及びパラレルATA(PATA))、ファイバチャネルプロトコル(FCP)、シリアル接続SCSI(SAS)、PCI、及びPCIe、スモールコンピュータシステムインターフェース(SCSI)、不揮発性メモリエクスプレス(NVMe)、OpenCAPI、GenZ、キャッシュ・コヒーレント・インターフェース・アクセラレータ(CCIX)、オープンチャネルSSD(OCSSD)などに従って動作し得る。インターフェース114(例えば、データバス、制御バス、又はその両方)は、コントローラ108に電気的に接続され、ホストデバイス104とコントローラ108との間の電気的接続を提供し、ホストデバイス104とコントローラ108との間でデータを交換することを可能にする。いくつかの実施例では、インターフェース114の電気的接続はまた、データ記憶デバイス106がホストデバイス104から電力を受け取ることを可能にし得る。例えば、
図1に例示されるように、電源111は、インターフェース114を介してホストデバイス104から電力を受け取り得る。
【0018】
NVM110は、複数のメモリデバイス又はメモリユニットを含み得る。NVM110は、データを記憶及び/又は取得するように構成され得る。例えば、NVM110のメモリユニットは、データと、データを記憶するようにメモリユニットに命令するメッセージと、をコントローラ108から受信し得る。同様に、メモリユニットは、データを取得するようにメモリユニットに命令するメッセージをコントローラ108から受信し得る。いくつかの実施例では、メモリユニットの各々は、ダイと称され得る。いくつかの実施例では、NVM110は、複数のダイ(すなわち、複数のメモリユニット)を含み得る。いくつかの実施例では、各メモリユニットは、比較的大量のデータ(例えば、128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TBなど)を記憶するように構成され得る。
【0019】
いくつかの実施例では、各メモリユニットは、フラッシュメモリデバイス、相変化メモリ(PCM)デバイス、抵抗ランダムアクセスメモリ(ReRAM)デバイス、磁気抵抗ランダムアクセスメモリ(MRAM)デバイス、強誘電性ランダムアクセスメモリ(F-RAM)、ホログラフィックメモリデバイス、及び任意の他のタイプの不揮発性メモリデバイスなどの、任意のタイプの不揮発性メモリデバイスを含み得る。
【0020】
NVM110は、複数のフラッシュメモリデバイス又はメモリユニットを備え得る。NVMフラッシュメモリデバイスは、NAND又はNORベースのフラッシュメモリデバイスを含み得、各フラッシュメモリセルのトランジスタの浮遊ゲートに含まれる電荷に基づいてデータを記憶し得る。NVMフラッシュメモリデバイスでは、フラッシュメモリデバイスは複数のダイに分割されてもよく、複数のダイの各ダイは複数の物理ブロック又は論理ブロックを含み、複数の物理ブロック又は論理ブロックは複数のページに更に分割されてもよい。特定のメモリデバイス内の複数のブロックの各ブロックは、複数のNVMセルを含み得る。NVMセルの行は、複数のページの各ページを定義するためにワード線を使用して電気的に接続され得る。複数のページの各々におけるそれぞれのセルは、それぞれのビット線に電気的に接続され得る。更に、NVMフラッシュメモリデバイスは、2D又は3Dデバイスであってもよく、単一レベルセル(SLC)、マルチレベルセル(MLC)、トリプルレベルセル(TLC)、又はクアッドレベルセル(QLC)であってもよい。コントローラ108は、ページレベルで、NVMフラッシュメモリデバイスにデータを書き込み、かつNVMフラッシュメモリデバイスからデータを読み取り得、ブロックレベルで、NVMフラッシュメモリデバイスからデータを消去し得る。
【0021】
電源111は、データ記憶デバイス106の1つ以上の構成要素に電力を供給し得る。標準モードで動作するとき、電源111は、ホストデバイス104などの外部デバイスによって提供される電力を使用して、1つ以上の構成要素に電力を提供し得る。例えば、電源111は、インターフェース114を介してホストデバイス104から受け取った電力を使用して、1つ以上の構成要素に電力を供給し得る。いくつかの実施例では、電源111は、外部デバイスから電力を受け取ることを停止する場合などのシャットダウンモードで動作するときに、1つ以上の構成要素に電力を供給するように構成された1つ以上の電力貯蔵構成要素を含み得る。このように、電源111は、積載電源として機能し得る。1つ以上の電力貯蔵構成要素のいくつかの実施例としては、コンデンサ、超コンデンサ、バッテリなどが挙げられるが、これらに限定されない。いくつかの実施例では、1つ以上の電力貯蔵構成要素によって貯蔵され得る電力の量は、1つ以上の電力貯蔵構成要素のコスト及び/又はサイズ(例えば、面積/体積)の関数であり得る。換言すれば、1つ以上の電力貯蔵構成要素によって貯蔵される電力の量が増加するにつれて、1つ以上の電力貯蔵構成要素のコスト及び/又はサイズも増加する。
【0022】
揮発性メモリ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など))が挙げられるが、これらに限定されない。
【0023】
コントローラ108は、データ記憶デバイス106の1つ以上の動作を管理し得る。例えば、コントローラ108は、NVM110からのデータの読み取り及び/又はNVM110へのデータの書き込みを管理し得る。いくつかの実施形態では、データ記憶デバイス106がホストデバイス104から書き込みコマンドを受信すると、コントローラ108は、データ記憶コマンドを開始して、データをNVM110に記憶し、データ記憶コマンドの進捗を監視し得る。コントローラ108は、記憶システム100の少なくとも1つの動作特性を判定し、少なくとも1つの動作特性をNVM110に記憶し得る。いくつかの実施形態では、データ記憶デバイス106がホストデバイス104から書き込みコマンドを受信すると、コントローラ108は、データをNVM110に送信する前に、内部メモリ又は書き込みバッファ116内の書き込みコマンドに関連付けられたデータを一時的に記憶する。
【0024】
図2は、特定の実施形態による、深層ニューラルネットワーク(DNN)200の例示的な図である。DNN200は、入力層202と、第1の隠れ層204aと、第2の隠れ層204bと、第3隠れ層204cと、出力層206とを含む。図示されている隠れ層の数は、限定することを意図するものではなく、可能な実施形態の例を提供することを意図している。更に、入力層202、第1の隠れ層204a、第2の隠れ層204b、第3隠れ層204c及び出力層206は、各々複数のノードを含む。入力層202の各ノードは、データ入力のための入力ノードであってもよい。第1の隠れ層204a、第2の隠れ層204b、及び第3の隠れ層204cの各ノードは、データからの入力を、その入力を増幅又は減衰させる係数又は重みのセットと組み合わせ、それによって、アルゴリズムが学習しようとしているタスクに関して入力に有意性を割り当てる。第3の隠れ層204cの結果は、出力層206のノードに渡される。
【0025】
DNN200における単一ノード活性化の基本前進計算動作(例えば、フィードフォワード)は、以下の式によって表されてもよい:
【0026】
【数1】
積和(MAC)演算が合計され、活性化関数が計算され、活性化関数は、最大値(例えば、整流活性化関数又はReLU)又はシグモイド関数であり得る。言い換えれば、前進計算動作は、ネット内の各ニューロン又はノードへの入力値とバイアスとを乗算した重みの和に適用される活性化シグモイド関数である。DNN200学習方式は、ニューラルネットワーク(NN)重みを更新するために使用される逆伝搬方程式に基づく。逆伝搬方程式は、出力層206のノード、並びに第1の隠れ層204a、第2の隠れ層204b、及び第3の隠れ層204cのノードに対して行列及びベクトル形式で以下に与えられる計算されたデルタ項を使用する加重和に基づく。
【0027】
【0028】
逆伝搬方程式(BP1、BP2、BP3、及びBP4)は、変更されず、静的メモリ(例えば、
図1のNVM110)内で処理され得る固定入力(z)が存在すること、及び一時的に調整又は計算され、動的メモリ(例えば、DRAM)内で処理され得る調整可能な値(C、δ及びw)が存在することを示す。別のメモリ消費要素は、DLモデル自体である(すなわち、NNパラメータであり、これは「重み」又はC、δ及びwであり得る)である。DNN200の能力が増大するにつれて、DLモデルのサイズも増大する。完全接続NNアーキテクチャが例示されているが、本明細書で説明される実施形態は、他のNNアーキテクチャに適用可能であり得ることを理解されたい。
【0029】
図3は、特定の実施形態による、論理ブロックアドレス(LBA)/物理ブロックアドレス(PBA)アドレス指定システム300を示す概略ブロック図である。LBA/PBAアドレス指定システム300は、データ記憶デバイス308に結合されたホストデバイス302を含む。データ記憶デバイス308は、複数のNVM316a~316nを含むNVMストレージシステムに結合される。複数のNVM316a~316nは、データ記憶デバイス308内に配置されてもよいことを理解されたい。いくつかの例では、複数のNVM316a~316nはNANDデバイスである。ホストデバイス302は、CPU/GPUユニット304及びブロックベースのコマンド生成器ユニット306を含む。ブロックベースのコマンド生成器ユニット306は、複数のNVM316a~316nのうちのNVMのブロックにプログラムされるコマンドを生成する。ホストデバイス302は、データが記憶されているLBAを認識しており、データ記憶デバイス308は、複数のNVM316a~316nにおいてデータが記憶されているPBAを認識している。
【0030】
データ記憶デバイス308は、コマンド解釈ユニット310、ブロックベースのフラッシュ変換層(FTL)変換ユニット312、及びフラッシュインターフェースユニット314を含み、それらのすべては、
図1のコントローラ108などのコントローラ内に配置され得る。コマンド解釈ユニット310は、ブロックベースのコマンド生成器ユニット306からコマンドを受信又は取り出すように構成され得る。コマンド解釈ユニット310は、コマンドを処理し、処理されたコマンドに対する関連制御情報を生成することができる。次に、コマンドはブロックベースのFTL変換ユニット312に渡され、そこでコマンドはLBAからPBAに変換される。フラッシュインターフェースユニット314は、PBAに基づいて複数のNVM316a~316nのうちの関連するNVMに読み取り/書き込みコマンドを渡す。言い換えれば、LBAとPBAとの間の変換層は、コマンドがホストデバイス302からデータ記憶デバイス308に渡されるたびに、コマンドに関連付けられたLBAのための対応するPBAが変換層から抽出されるように、データ記憶デバイス308に記憶される。
【0031】
図4は、特定の実施形態による、LBA/PBAアドレス指定システム400を示す概略ブロック図である。LBA/PBAアドレス指定システム400は、データ記憶デバイス408に結合されたホストデバイス402を含む。データ記憶デバイス408は、複数のNVM416a~416nを含むNVMストレージシステムに結合される。複数のNVM416a~416nは、データ記憶デバイス408内に配置されてもよいことを理解されたい。ホストデバイス402は、CPU/GPUユニット404及びNNインターフェースコマンド生成器ユニット406を含む。NNインターフェースコマンド生成器ユニット406は、複数のNVM416a~416nのうちのNVMのブロックにプログラムされるコマンドを生成する。いくつかの例では、複数のNVM416a~416nはNANDデバイスである。コマンドは、NN構造及び1つ以上のハイパーパラメータ値を含み得る。NN構造及び1つ以上のハイパーパラメータ値は、複数のNVM416a~416nのうちの1つ以上のNVMに記憶される。1つ以上のハイパーパラメータ値は、DLモデルのトレーニング手順を定義し得る。ホストデバイス402は、データが記憶されているLBAを認識しており、データ記憶デバイス408は、複数のNVM416a~416nにおいてデータが記憶されているPBAを認識している。
【0032】
データ記憶デバイス408は、NNインターフェースコマンド解釈ユニット410、スケジュールベースのFTL変換ユニット412、及びフラッシュインターフェースユニット414を含み、これらはすべて、
図1のコントローラ108などのコントローラ内に配置され得る。NNインターフェースコマンド解釈ユニット410は、NNインターフェースコマンド生成器ユニット406からコマンドを受信又は取り出すように構成され得る。NNインターフェースコマンド解釈ユニット410は、コマンドを処理し、処理されたコマンドに対する関連制御情報を生成することができる。いくつかの実施形態では、複数のNVM416a~416nのうちの1つのNVMに記憶されたデータなどの動的パラメータ(例えば、「重み」及びコスト計算)及び静的パラメータの両方についてのオーバーヘッドを低減し、ストレージ利用を改善するために、データ記憶デバイスは、NN構造及びハイパーパラメータ値の一部又は全部を保持することができる。
【0033】
次いで、コマンドはスケジュールベースのFTL変換ユニット412に渡され、ここでコマンドは、ホストデバイス402からデータ記憶デバイス408に渡されるスケジュール(例えば、DLモデル)に基づいて、LBAからPBAに変換される。フラッシュインターフェースユニット414は、PBAに基づいて複数のNVM416a~416nのうちの関連するNVMに読み取り/書き込みコマンドを渡す。言い換えれば、LBAとPBAとの間の変換層は、コマンドがホストデバイス402からデータ記憶デバイス408に渡されるたびに、コマンドに関連付けられたLBAのための対応するPBAが変換層から抽出されるように、データ記憶デバイス408に記憶される。
【0034】
図5は、特定の実施形態による、深層学習トレーニング中の完全自律データ記憶デバイス動作の方法500を示す流れ図である。方法500は、
図4のデータ記憶デバイス408又は
図1のコントローラ108によって実装され得る。例示の目的で、LBA/PBAアドレス指定システム400の態様を本明細書で参照することができる。完全自律データ記憶デバイス動作は、CPU/GPUユニット404からデータ記憶デバイス408への特定の読み取り及び書き込みコマンドのNNパラメータの明示的な転送を省略することができる。CPUに加えてGPUが利用される場合、デュアル読み取り/書き込み直接ストレージアクセスが、GPUと複数のNVM416a~416nとの間で可能にされ得る。
【0035】
むしろ、データ記憶デバイス408は、NN構造及びハイパーパラメータ値を保持してもよい。NNインターフェースコマンド解釈ユニット410は、トレーニングプロセスの前にNN構造及び/又はハイパーパラメータ値を受信してもよく、又は静的構成で記憶された(すなわち、オフラインで記憶された)NN構造及び/又はハイパーパラメータ値を選択してもよい。したがって、トレーニングプロセス及びバッファへのデータの配置(すなわち、L2Pマッピングに基づく複数のNVM416a~416nのうちのあるNVMへのデータの配置)は、ホストデバイス402からのフィードバックを必要としないなど、「完全自律」方式で完了することができる。
【0036】
ブロック502において、ホストデバイス402は、所定の構成からNN構造を選択するか、又はNN構造を明示的に渡す。所定の構成は、以前にトレーニングされたNN構造又はデフォルトNN構造であってもよい。ブロック504において、ホストデバイス402は、専用インターフェースを介してデータ位置を渡すことによってトレーニングプロセスを開始する。例えば、トレーニングプロセスは、
図2の入力層202のノードに値又はデータ位置を配置することによって開始され得る。ブロック506において、データ記憶デバイス408、又はより具体的にはコントローラ108は、所定のスケジュールに従って読み取り及び書き込みを行う。所定のスケジュールは、トレーニングプロセスの前にホストデバイス402からデータ記憶デバイス408に渡されるか、又はオフライン位置(例えば、複数のNVM416a~416nのうちのあるNVM)のデータ記憶デバイス408に保持されるNN構造及び/又はハイパーパラメータ値であってもよい。ブロック508において、ホストデバイス402は、データ記憶デバイス408に向けられたバッファ内のデータを読み取り及び配置することによって計算を行う。
【0037】
方法500は、ブロック506及びブロック508のいずれかを独立して、又はブロック506及びブロック508の両方を一緒に実装することができる。例えば、コントローラ108は、ブロック508を実行せずに、ブロック506を実行してもよい。いくつかの例では、ブロック506の結果は、ブロック508において実装するためにホストデバイス402に渡されてもよく、及び/又はブロック508の結果は、ブロック506において実装するためにデータ記憶デバイス408に渡されてもよい。ランダムな読み取り及び書き込みの必要性が減少するにつれて、データは、完全なブロックサイズ又は部分的なブロックサイズのいずれかでアドレス指定され得る。したがって、NNパラメータは、開始点及びオフセットを介して所定のスケジュールにおいてアドレス指定され得る。ブロック510において、DLモデルトレーニングは、反復の閾値数に達した(すなわち、所定トレーニングスケジュールが終了した)場合、又はコスト計算が一定のままであることなどによりホストデバイス402がトレーニングプロセスを終了することによって終了する。
【0038】
代替アドレス指定方式では、PBAからLBAへのマッピングではなく、キー値(KV)ペアインターフェースを使用することができる。各データインスタンス(例えば、値)は、キーを使用することによってアドレス指定され得る。NNパラメータは、反復又は反復の一部に関連する構造においてアドレス指定され得る。例えば、第1の反復に属するすべてのNNパラメータ(例えば、100より大きいノードのリストからのノード1~100)は、単一のキーを介してアドレス指定され得る。
【0039】
モデルオーバーフィッティング(例えば、冗長計算、不必要なシフトなど)を低減するために、DLモデルトレーニングはドロップアウトを使用し得る。ドロップアウトは、1つ又は隠れ層のノードのうちのいくつかをアルゴリズムの各反復において無効にさせ、DLモデルのロバスト性を改善し、したがって、アルゴリズムの性能を改善する。しかしながら、ドロップアウトはある程度の不確実性をもたらす。ネットワーク接続は各反復において効果的に変化するので、NNパラメータは異なって使用されてもよい。ドロップアウトがトレーニングプロセスの前に適用され得る場合、修正されたNN接続は、NNハイパーパラメータに既に反映されていてもよい。例えば、コントローラ108又はデータ記憶デバイス408は、反復ごとにNN構造反復を解析することによって、又は各反復においてどのノードがスキップされるかを示すことによって、特定のノードにドロップアウトを適用することができる。いくつかの例では、データ記憶デバイス408又はコントローラ108は、所定のランダム化設定に従って、各反復において除外されるノードをランダム化することができる。
【0040】
図6は、特定の実施形態による、深層学習トレーニング中の半自律データ記憶デバイス動作の方法600を示す流れ図である。方法600は、
図4のデータ記憶デバイス408又は
図1のコントローラ108によって実装され得る。例示の目的で、LBA/PBAアドレス指定システム400の態様を本明細書で参照することができる。データ記憶デバイス408が半自律モードで動作しているとき、CPU/GPUユニット404は、各反復において読み取るNNパラメータを指示し得る。したがって、L2Pマッピングに基づいて複数のNVM416a~416nにデータを記憶するときに、読み取り/書き込みを同期させるという課題を低減することができ、ドロップアウトを処理することを低減することができる。
【0041】
データ記憶デバイス408又はコントローラ108は、DLモデルトレーニング作業負荷の一意の特徴を利用し、所定の決定論的方法で各読み取り及び損失計算の後にNNパラメータを更新することができる。したがって、データ記憶デバイス408又はコントローラ108は、書き込みコマンドを半自律的に実施することによって「重み」を更新することができる。言い換えれば、NNパラメータ又は「重み」に対する各更新又は書き込みは、以前の読み取りと同じアドレスに対して完了される。したがって、特定の書き込みコマンドを送信する必要はない場合がある。むしろ、CPU/GPUユニット404は、各反復の後に、更新するNNパラメータ「重み」のリストをデータ記憶デバイス408に転送する。
【0042】
ブロック602において、ホストデバイス402は、所定の構成からNN構造を選択するか、又は1回の反復に対してNN構造を明示的に渡す。所定の構成は、以前にトレーニングされたNN構造又はデフォルトNN構造であってもよい。ブロック604において、ホストデバイス402は、専用インターフェースを介してデータ位置を渡すことによってトレーニングプロセスを開始する。例えば、トレーニングプロセスは、
図2の入力層202のノードに値又はデータ位置を配置することによって開始され得る。ブロック606において、データ記憶デバイス408、又はより具体的にはコントローラ108は、1回のトレーニング反復のための所定のスケジュールに従って読み取り及び書き込みを行う。所定のスケジュールは、トレーニングプロセスの前にホストデバイス402からデータ記憶デバイス408に渡されるか、又はオフライン位置(例えば、複数のNVM416a~416nのうちのあるNVM)のデータ記憶デバイス408に保持されるNN構造及び/又はハイパーパラメータ値であってもよい。ブロック608において、ホストデバイス402は、データ記憶デバイス408に向けられたバッファ内のデータを読み取り及び配置することによって計算を行う。
【0043】
方法600は、ブロック606及びブロック608のいずれかを独立して、又はブロック606及びブロック608の両方を一緒に実装することができる。例えば、コントローラ108は、ブロック608を実行せずに、ブロック606を実行してもよい。いくつかの例では、ブロック606の結果は、ブロック608において実装するためにホストデバイス402に渡されてもよく、及び/又はブロック608の結果は、ブロック606において実装するためにデータ記憶デバイス408に渡されてもよい。ランダムな読み取り及び書き込みの必要性が減少するにつれて、データは、完全なブロックサイズ又は部分的なブロックサイズのいずれかでアドレス指定され得る。したがって、NNパラメータは、開始点及びオフセットを介して所定のスケジュールにおいてアドレス指定され得る。ブロック610において、データ記憶デバイス408又はコントローラ108は、DLモデルトレーニングが終了したかどうかを判定する。例えば、反復の閾値数に達した(すなわち、所定のトレーニングスケジュールが終了した)場合、又はホストデバイス402が、コスト計算が一定のままであることなどによりトレーニングプロセスを終了した場合、トレーニングは終了している。ブロック610においてトレーニングが終了していない場合、方法600はブロック602に戻る。しかしながら、ブロック610においてトレーニングが終了した場合、方法600はブロック612において終了する。
【0044】
機械学習アプリケーションを実行するホストデバイスとデータ記憶デバイスのフラッシュメモリとの間のコマンド転送及び解釈のオーバーヘッドを低減することによって、電力消費が低減され得、スループットが改善され得る。
【0045】
一実施形態では、データ記憶デバイスは、メモリデバイスと、メモリデバイスに結合されたコントローラと、を含む。コントローラは、ホストデバイスに結合されるように構成される。コントローラは、複数のコマンドを受信し、複数のコマンドの各々について論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピングを生成し、生成されたL2Pマッピングに従って複数のコマンドのデータをそれぞれのPBAに記憶するように更に構成される。L2Pマッピングの各々は、ニューラルネットワーク(NN)構造を使用する深層学習(DL)トレーニングモデルの結果に基づいて生成される。
【0046】
コントローラは、NN構造及び1つ以上のハイパーパラメータ値を受信し、NN構造及びハイパーパラメータ値をメモリデバイスに記憶するように更に構成される。NN構造はホストデバイスから受信される。メモリデバイスは不揮発性メモリデバイスである。1つ以上のハイパーパラメータ値は、DLトレーニングモデルのトレーニング手順を定義する。NN構造及び1つ以上のハイパーパラメータ値は、トレーニング手順の開始時にDLトレーニングモデルに提供される。DLトレーニングモデルは、1つ以上の所定のパラメータセットの所定のハイパーパラメータ値を使用する。DLトレーニングモデルは、L2Pマッピングの各々を生成した後に更新される。コントローラは、NN構造に従って重みを読み取るように更に構成される。重みは、L2Pマッピングの各々を生成した後に更新される。コントローラは、複数のコマンドのデータを指定されたバッファに配置するように更に構成される。配置は、ホストデバイスの関与なしに完了する。
【0047】
別の実施形態では、データ記憶デバイスは、メモリデバイスと、メモリデバイスに結合されたコントローラと、を含む。コントローラは、ニューラルネットワーク(NN)コマンド解釈ユニットと、NNコマンド解釈ユニットに結合された論理ブロックアドレス(LBA)から物理ブロックアドレス(PBA)への(L2P)マッピング生成器とを含む。コントローラは、メモリデバイスからトレーニングデータ及びNNパラメータをフェッチするように構成される。
【0048】
NNコマンド解釈ユニットは、ホストデバイス内に配置されたNNインターフェースコマンド生成器とインターフェースするように構成されている。NNパラメータは、KVペアデータである。トレーニングデータ及びNNパラメータは、深層学習(DL)トレーニングモデルにおいて利用される。DLトレーニングモデルの1つ以上の部分は無効にされる。コントローラは、メモリデバイスからのトレーニングデータ及びNNパラメータの自律的フェッチを実行するように構成されている。コントローラは、深層学習(DL)トレーニングモデルに関連付けられた1つ以上の重みを更新するように更に構成される。更新は、1つ以上の重みの以前の読み取りと同じアドレスに対するものである。
【0049】
別の実施形態では、データ記憶デバイスは、不揮発性メモリ手段と、不揮発性メモリ手段に結合されたコントローラと、を含む。コントローラは、ニューラルネットワーク(NN)パラメータ及び1つ以上のハイパーパラメータ値を不揮発性メモリ手段に記憶し、完全自律深層学習(DL)トレーニングモデルを実行するか、又は半自律DLトレーニングモデルを実行し、実行されたDLトレーニングモデルに従ってデータを記憶するように構成される。
【0050】
不揮発性メモリ手段は、NANDベースのメモリ手段である。実行とは、所定のトレーニングスケジュールに従って読み取り及び書き込みを行うことを含む。
【0051】
上記は本開示の実施形態を目的とするが、本開示の他の及び更なる実施形態が、その基本的範囲から逸脱することなく考案され得、その範囲は、以下の特許請求の範囲によって決定される。
【国際調査報告】