(57)【要約】  一実施形態において、ソリッドステートドライブ（ＳＳＤ）は、１または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイと、それぞれ１または複数の通信チャネルと通信可能に結合された１または複数のチャネルコントローラと、１または複数のチャネルコントローラを介して複数の不揮発性メモリダイと通信可能に結合されたメモリコントローラと、を具備し、メモリコントローラは、（ｉ）複数の不揮発性メモリダイの第１のダイの複数の物理ブロックを第１の領域のみに割り当て、（ｉｉ）複数の不揮発性メモリダイの第２のダイの複数の物理ブロックを第２の領域のみに割り当て、第１の動作モードにおいて、第１の領域における読出し動作のみを実行し、第１の動作モードにおける第１の領域での読出し動作とともに、第２の動作モードにおいて、第２の領域における書込み動作または保守動作を実行する、ように構成される。
2020529684.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイと、
それぞれ前記１または複数の通信チャネルと通信可能に結合された１または複数のチャネルコントローラと、
前記１または複数のチャネルコントローラを介して前記複数の不揮発性メモリダイと通信可能に結合されたメモリコントローラと、を具備し、
前記メモリコントローラは、
（ｉ）前記複数の不揮発性メモリダイの第１のダイの前記複数の物理ブロックを第１の領域のみに割り当て、（ｉｉ）前記複数の不揮発性メモリダイの第２のダイの前記複数の物理ブロックを第２の領域のみに割り当て、
第１の動作モードにおいて、前記第１の領域における読出し動作のみを実行し、
前記第１の動作モードにおける前記第１の領域での読出し動作とともに、第２の動作モードにおいて、前記第２の領域における書込み動作または保守動作を実行する、ように構成される、
ソリッドステートドライブ（ＳＳＤ）。
【請求項２】
前記第１の領域および前記第２の領域の少なくとも１つは、１または複数の通信チャネルにおける前記不揮発性メモリダイの各々の前記複数の物理ブロックを具備する請求項１に記載のＳＳＤ。
【請求項３】
前記第１の領域および前記第２の領域の少なくとも１つは、前記１または複数の通信チャネルの各々からの１または複数の不揮発性メモリダイの前記複数の物理ブロックを具備する請求項１に記載のＳＳＤ。
【請求項４】
前記メモリコントローラは更に、前記第１の領域および前記第２の領域の少なくとも１つにおいて１または複数のネームスペースを生成するように構成される請求項１に記載のＳＳＤ。
【請求項５】
前記メモリコントローラは更に、
前記第１の領域および前記第２の領域の各々に関する保守カウンタを保持し、
前記対応する領域が前記第１の動作モードである場合、前記保守カウンタを単調に減らし、
前記対応する領域が前記第２の動作モードである場合、前記保守カウンタを単調に増やす、
ように構成される請求項１に記載のＳＳＤ。
【請求項６】
前記第１の領域および前記第２の領域の各々は、前記対応する保守カウンタが第１の閾値を上回る場合、前記第１の動作モードで動作し、前記対応する保守カウンタが第２の閾値を下回る場合、前記第２の動作モードで動作する請求項５に記載のＳＳＤ。
【請求項７】
前記メモリコントローラは更に、
前記第１の領域および前記第２の領域の各々に関する保守カウンタを保持し、
前記対応する領域が前記第１の動作モードである場合、前記保守カウンタを単調に増やし、
前記対応する領域が前記第２の動作モードである場合、前記保守カウンタを単調に減らす、
ように構成される請求項１に記載のＳＳＤ。
【請求項８】
前記第１の領域および前記第２の領域の各々は、前記対応する保守カウンタが第１の閾値を下回る場合、前記第１の動作モードで動作し、前記対応する保守カウンタが第２の閾値を上回る場合、前記第２の動作モードで動作する請求項７に記載のＳＳＤ。
【請求項９】
１または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイと、
それぞれ前記１または複数の通信チャネルと通信可能に結合された１または複数のチャネルコントローラと、
前記１または複数のチャネルコントローラを介して前記複数の不揮発性メモリダイと通信可能に結合されたメモリコントローラと、
を各々が具備する複数のＳＳＤを具備し、
前記メモリコントローラは、
（ｉ）前記複数の不揮発性メモリダイの第１のダイの前記複数の物理ブロックを第１の領域のみに割り当て、（ｉｉ）前記複数の不揮発性メモリダイの第２のダイの前記複数の物理ブロックを第２の領域のみに割り当て、
第１の動作モードにおいて、前記第１の領域における読出し動作のみを実行し、
前記第１の動作モードとともに、第２の動作モードにおいて、前記第２の領域における書込み動作または保守動作を実行する、ように構成される
ストレージ装置。
【請求項１０】
前記複数のＳＳＤの前記第１の領域および前記第２の領域の少なくとも１つは、１または複数の通信チャネルにおける前記不揮発性メモリダイの各々の前記複数の物理ブロックを具備する請求項９に記載のストレージ装置。
【請求項１１】
前記複数のＳＳＤの前記第１の領域および前記第２の領域の少なくとも１つは、前記１または複数の通信チャネルの各々からの１または複数の不揮発性メモリダイの前記複数の物理ブロックを具備する請求項９に記載のストレージ装置。
【請求項１２】
前記複数のＳＳＤの各々の前記メモリコントローラは更に、
前記複数のＳＳＤの前記第１の領域および前記第２の領域の各々に関する保守カウンタを保持し、
前記対応する領域が前記第１の動作モードである場合、前記保守カウンタを単調に減らし、
前記対応する領域が前記第２の動作モードである場合、前記保守カウンタを単調に増やす、
ように構成される請求項９に記載のストレージ装置。
【請求項１３】
前記複数のＳＳＤの前記第１の領域および第２の領域の各々は、前記対応する保守カウンタが第１の閾値を上回る場合、前記第１の動作モードで動作し、前記対応する保守カウンタが第２の閾値を下回る場合、前記第２の動作モードで動作する請求項１２に記載のストレージ装置。
【請求項１４】
前記複数のＳＳＤの各々の前記メモリコントローラは更に、
前記複数のＳＳＤの前記第１の領域および前記第２の領域の各々に関する保守カウンタを保持し、
前記対応する領域が前記第１の動作モードである場合、前記保守カウンタを単調に増やし、
前記対応する領域が前記第２の動作モードである場合、前記保守カウンタを単調に減らす、
ように構成される請求項９に記載のストレージ装置。
【請求項１５】
前記複数のＳＳＤの前記第１の領域および第２の領域の各々は、前記対応する保守カウンタが第１の閾値を下回る場合、前記第１の動作モードで動作し、前記対応する保守カウンタが第２の閾値を上回る場合、前記第２の動作モードで動作する請求項１４に記載のストレージ装置。
【請求項１６】
ＳＳＤを動作させる方法であって、
１または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイの第１のダイを、第１の領域のみに割り当てることと、
前記複数の不揮発性メモリダイの第２のダイを第２の領域のみに割り当てることと、
第１の動作モードにおいて、前記第１の領域における読出し動作のみを実行することと、
前記第１の動作モードでの前記第１の領域における読出し動作とともに、第２の動作モードにおいて、前記第２の領域における書込み動作または保守動作を実行することと、
を具備する方法。
【請求項１７】
前記第１の領域および前記第２の領域の少なくとも１つは、１または複数の通信チャネルにおける前記不揮発性メモリダイの各々の前記複数の物理ブロックを具備する請求項１６に記載の方法。
【請求項１８】
前記第１の領域および前記第２の領域の少なくとも１つは、前記１または複数の通信チャネルの各々からの１または複数の不揮発性メモリダイの前記複数の物理ブロックを具備する請求項１６に記載の方法。
【請求項１９】
前記第１の領域および前記第２の領域の少なくとも１つにおいて１または複数のネームスペースを生成することを更に具備する請求項１６に記載の方法。
【請求項２０】
前記第１の領域および前記第２の領域の各々に関する保守カウンタを保持することと、
前記対応する領域が前記第１の動作モードである場合、前記保守カウンタを単調に減らすことと、
前記対応する領域が前記第２の動作モードである場合、前記保守カウンタを単調に増やすことと、
を更に具備する請求項１６に記載の方法。
【請求項２１】
前記対応する保守カウンタが第１の閾値を上回る場合、前記第１の領域および前記第２の領域を前記第１の動作モードで動作させることと、
前記対応する保守カウンタが第２の閾値を下回る場合、前記第１の領域および前記第２の領域を前記第２の動作モードで動作させることと、
を更に具備する請求項２０に記載の方法。
【請求項２２】
前記第１の領域および前記第２の領域の各々に関する保守カウンタを保持することと、
前記対応する領域が前記第１の動作モードである場合、前記保守カウンタを単調に増やすことと、
前記対応する領域が前記第２の動作モードである場合、前記保守カウンタを単調に減らすことと、
を更に具備する請求項１６に記載の方法。
【請求項２３】
前記対応する保守カウンタが第１の閾値を下回る場合、前記第１の領域および前記第２の領域を前記第１の動作モードで動作させることと、
前記対応する保守カウンタが第２の閾値を上回る場合、前記第１の領域および前記第２の領域を前記第２の動作モードで動作させることと、
を更に具備する請求項２２に記載の方法。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、２０１７年１１月１日に出願された特許出願第１５／８００，７４２号の継続出願であり、その全体の参照によってここに組み込まれる、２０１７年８月７日に出願された仮特許出願第６２／５４２，１０８号に基づき、その利益を主張するものである。
【技術分野】
【０００２】
本発明は、一般にソリッドステートドライブ（ＳＳＤ）アーキテクチャに関し、より詳しくは、低レイテンシ動作をサポートするＳＳＤアーキテクチャに関する。
【背景技術】
【０００３】
従来、ＳＳＤアーキテクチャおよび設計は、主に、入力および出力（Ｉ／Ｏ）動作（すなわち、データの読出しおよび書込み）のために高い平均帯域幅またはスループットを得ることに着目してきた。たとえばハードディスクドライブ（ＨＤＤ）などの従来の磁気記憶デバイスと比較すると、ＳＳＤは、ＨＤＤと比較して毎秒数千倍とはいかずとも数百倍のＩ／Ｏ動作を実行することが可能である。そのような従来のＳＳＤは、そのアーキテクチャにおける並列性によって、そのような高い平均帯域幅を得ることが可能である。
【０００４】
ＳＳＤは、一般に、チャネルコントローラによって制御されるチャネルに結合されたグループに配列された、たとえばＮＡＮＤフラッシュメモリなどの多くの不揮発性メモリダイを備える。たとえば、１２８の不揮発性メモリダイが、８つのダイからなる１６のグループに配列され、各グループがチャネルに結合される。不揮発性メモリダイの各々からの物理記憶ブロックは、一般に、たとえばコンピュータまたはストレージ装置などの１または複数のホストデバイスがそれぞれデータを書込みおよび読出すための論理ブロックまたはスーパーブロックを生成するために選択される。スーパーブロックを形成するために不揮発性メモリダイの各々から物理ブロックを選択することは、全チャネルにわたる全ての不揮発性メモリダイへの並列アクセスを可能にし、最大帯域幅またはスループットを実現する。ダイは、更に、多数の「プレーン」に組織化されてよく（各ダイが２、４、またはそれ以上のプレーンを備え）、各プレーンは、Ｉ／Ｏ動作を並列に処理し得る。
【０００５】
そのようなＳＳＤアーキテクチャは、ＳＳＤの帯域幅またはスループットを最大化するが、このアーキテクチャは、また、Ｉ／Ｏレイテンシ（すなわち、Ｉ／Ｏ動作を完了するために要する時間）に影響を及ぼす数々の問題に苛まれる。不揮発性メモリダイの物理的制限によって、一度に不揮発性メモリダイごとにプレーン当たり単一の物理ブロックしかＩ／Ｏ動作を実行できず、それにより、同じ不揮発性メモリダイの同じプレーンの様々な物理ブロックへのＩ／Ｏ動作間の衝突がもたらされ、Ｉ／Ｏ動作は、同じプレーンにおける異なるブロックへの先の動作が完了するまで待機しなければならない。これに関連して、チャネルコントローラごとに多数の不揮発性メモリダイが存在するため、コントローラと任意の不揮発性メモリダイとの間で任意の時間に１つのデータ転送のみが進行し得るというチャネルの共有性質により、チャネルコントローラにおける様々なスーパーブロックへのＩ／Ｏ動作に関するコマンド間での衝突も存在し得、ＳＳＤの各チャネルコントローラでのボトルネックがもたらされる。
【０００６】
ホストからのＩ／Ｏ動作に加えて、ＳＳＤは、新たなデータを書き込むためのフリーエリアを生成するために、有効データを集約し、無効データを消去するガベッジコレクション、および、たとえばＮＡＮＤフラッシュメモリダイなどの不揮発性メモリダイの性質によってデータが経時的に失われないことを確実にするために、必要に応じて、不揮発性メモリダイに格納されたデータを読み出し、それらを再書込みするデータ信頼性動作などの保守動作を、ＳＳＤの寿命を通して実行しなければならない。これらの保守動作は、一般に、随時、ＳＳＤの寿命を通して不確定の回数発生し、不確定の期間継続するので、チャネルコントローラおよび不揮発性メモリダイの両方においてホストＩ／Ｏ動作との衝突を必然的にもたらす。ホストＩ／Ｏ動作またはＳＳＤ保守動作のいずれかに起因するこれらの衝突は、一貫性がなく予測不可能なＳＳＤレイテンシ性能をもたらす。
【０００７】
たとえば、一般的なホスト読出し動作は、いかなる衝突もなければ完了までに７０〜１００μｓあたりを要し得る。しかし、衝突が存在する場合、読出し動作のレイテンシは、大幅に増加し得る。不揮発性メモリダイが現在書込み中である場合、読出し動作は、既に発生している書込み（プログラム）動作と衝突することになり、読出し動作が実行され得る前に書込み動作が完了するまで待機しなければならない。この例において、読出し動作のレイテンシは、ＴＬＣ  ＮＡＮＤメモリの２５００〜３０００μｓの２倍より大きくなり得る。更に悪い場合、たとえば読出し、書込み、および消去動作の３つ全てを必要とするガベッジコレクションなどの保守動作が現在実行中である場合、現在保守の最中である不揮発性メモリダイの物理ブロックに対する読出し動作のレイテンシは著しく大きく、読出し動作の完了までミリ秒範囲になり得る。この問題は更に、多数のホストアプリケーションによって常時アクセスされている多数のＳＳＤにわたりデータを格納する（すなわち、ＳＳＤが常時、書込みおよび読出し中である）データセンタまたはストレージセンタの環境において激化し、Ｉ／Ｏ動作と保守動作との間の衝突の可能性を大幅に増加させる。データセンタにおける増え続ける記憶の必要性、およびクラウドベースおよびウェブベースのアプリケーションの増え続ける要望があるとすれば、高い平均帯域幅の実現に着目した従来のＳＳＤアーキテクチャによって提供される一貫性がなく予測不可能なＳＳＤ性能は、もはや、そのような消費者の現在の需要および要求を十分に満たすものではない。
【０００８】
したがって、一貫性があり予測可能なＩ／Ｏ動作および性能を提供するための低レイテンシ動作をサポートする、改善されたＳＳＤアーキテクチャが必要とされる。
【発明の概要】
【０００９】
一実施形態において、ソリッドステートドライブ（ＳＳＤ）は、１または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイと、それぞれ１または複数の通信チャネルと通信可能に結合された１または複数のチャネルコントローラと、１または複数のチャネルコントローラを介して複数の不揮発性メモリダイと通信可能に結合されたメモリコントローラと、を具備し、メモリコントローラは、（ｉ）複数の不揮発性メモリダイの第１のダイの複数の物理ブロックを第１の領域のみに割り当て、（ｉｉ）複数の不揮発性メモリダイの第２のダイの複数の物理ブロックを第２の領域のみに割り当て、第１の動作モードにおいて、第１の領域における読出し動作のみを実行し、第１の動作モードにおける第１の領域での読出し動作とともに、第２の動作モードにおいて、第２の領域における書込み動作または保守動作を実行する、ように構成される。一実施形態において、第１の領域および第２の領域の少なくとも１つは、１または複数の通信チャネルにおける不揮発性メモリダイの各々の複数の物理ブロックを具備する。一実施形態において、第１の領域および第２の領域の少なくとも１つは、１または複数の通信チャネルの各々からの１または複数の不揮発性メモリダイの複数の物理ブロックを具備する。
【００１０】
一実施形態において、メモリコントローラは更に、第１の領域および第２の領域の少なくとも１つにおいて１または複数のネームスペースを生成するように構成される。一実施形態において、メモリコントローラは更に、第１の領域および第２の領域の各々に関する保守カウンタを保持し、対応する領域が第１の動作モードである場合、保守カウンタを単調に減らし、対応する領域が第２の動作モードである場合、保守カウンタを単調に増やすように構成される。一実施形態において、第１の領域および第２の領域の各々は、対応する保守カウンタが第１の閾値を上回る場合、第１の動作モードで動作し、対応する保守カウンタが第２の閾値を下回る場合、第２の動作モードで動作する。一実施形態において、メモリコントローラは更に、第１の領域および第２の領域の各々に関する保守カウンタを保持し、対応する領域が第１の動作モードである場合、保守カウンタを単調に増やし、対応する領域が第２の動作モードである場合、保守カウンタを単調に減らす、ように構成される。一実施形態において、第１の領域および第２の領域の各々は、対応する保守カウンタが第１の閾値を下回る場合、第１の動作モードで動作し、対応する保守カウンタが第２の閾値を上回る場合、第２の動作モードで動作する。
【００１１】
一実施形態において、ＳＳＤを動作させる方法は、１または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイの第１のダイを、第１の領域のみに割り当てることと、複数の不揮発性メモリダイの第２のダイを第２の領域のみに割り当てることと、第１の動作モードにおいて、第１の領域における読出し動作のみを実行することと、第１の動作モードでの第１の領域における読出し動作とともに、第２の動作モードにおいて、第２の領域における書込み動作または保守動作を実行することとを具備する。一実施形態において、第１の領域および第２の領域の少なくとも１つは、１または複数の通信チャネルにおける不揮発性メモリダイの各々の複数の物理ブロックを具備する。一実施形態において、第１の領域および第２の領域の少なくとも１つは、１または複数の通信チャネルの各々からの１または複数の不揮発性メモリダイの複数の物理ブロックを具備する。一実施形態において、方法は更に、第１の領域および第２の領域の少なくとも１つにおいて１または複数のネームスペースを生成することを具備する。一実施形態において、方法は更に、第１の領域および第２の領域の各々に関する保守カウンタを保持することと、対応する領域が第１の動作モードである場合、保守カウンタを単調に減らすことと、対応する領域が第２の動作モードである場合、保守カウンタを単調に増やすこととを具備する。一実施形態において、方法は更に、対応する保守カウンタが第１の閾値を上回る場合、第１の領域および第２の領域を第１の動作モードで動作させることと、対応する保守カウンタが第２の閾値を下回る場合、第１の領域および第２の領域を第２の動作モードで動作させることとを具備する。一実施形態において、方法は更に、第１の領域および第２の領域の各々に関する保守カウンタを保持することと、対応する領域が第１の動作モードである場合、保守カウンタを単調に増やすことと、対応する領域が第２の動作モードである場合、保守カウンタを単調に減らすこととを具備する。一実施形態において、方法は更に、対応する保守カウンタが第１の閾値を下回る場合、第１の領域および第２の領域を第１の動作モードで動作させることと、対応する保守カウンタが第２の閾値を上回る場合、第１の領域および第２の領域を第２の動作モードで動作させることとを具備する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の一実施形態に係る、ＳＳＤの構造のブロック図である。
【００１３】
【図２ａ】図２ａは、本発明の一実施形態に係る、低レイテンシ動作をサポートするＳＳＤアーキテクチャのブロック図である。
【００１４】
【図２ｂ】図２ｂは、本発明の様々な実施形態に係る、２つの分離領域構成のブロック図である。
【００１５】
【図３】図３は、本発明の一実施形態に係る、低レイテンシ動作をサポートするＳＳＤアーキテクチャの動作のタイミング図である。
【００１６】
【図４】図４は、本発明の様々な実施形態に係る低レイテンシ動作をサポートする２つのＳＳＤアーキテクチャに対応する読出しレイテンシのプロットである。
【００１７】
【図５ａ】図５ａは、本発明の様々な実施形態に係る、ＳＳＤにおける分離領域の割り当てのブロック図である。
【図５ｂ】図５ｂは、本発明の様々な実施形態に係る、ＳＳＤにおける分離領域の割り当てのブロック図である。
【００１８】
【図５ｃ】図５ｃは、本発明の様々な実施形態に係る、ＳＳＤにおける分離領域の様々な構成のブロック図である。
【図５ｄ】図５ｄは、本発明の様々な実施形態に係る、ＳＳＤにおける分離領域の様々な構成のブロック図である。
【図５ｅ】図５ｅは、本発明の様々な実施形態に係る、ＳＳＤにおける分離領域の様々な構成のブロック図である。
【００１９】
【図６】図６は、本発明の一実施形態に係る、分離領域内のネームスペースの様々な構成のブロック図である。
【００２０】
【図７】図７は、本発明の一実施形態に係る、低レイテンシ動作をサポートするＳＳＤアーキテクチャにおけるデータのフローのブロック図である。
【００２１】
【図８】図８は、本発明の一実施形態に係る、ＳＳＤ内で分離領域およびネームスペースを構成するための方法ステップのフローチャートである。
【００２２】
【図９】図９は、本発明の一実施形態に係る、各々が低レイテンシ動作をサポートするアーキテクチャを有するＳＳＤのアレイの動作のタイミング図である。
【００２３】
【図１０】図１０は、本発明の一実施形態に係る、ＳＳＤの低レイテンシ動作に関する方法ステップのフローチャートである。
【００２４】
【図１１】図１１は、本発明の一実施形態に係る、ＳＳＤによる読出しデータエラー処理に関する方法ステップのフローチャートである。
【００２５】
【図１２】図１２は、本発明の一実施形態に係る、１または複数のＳＳＤと接続されたホストデバイスによる読出しデータエラー処理に関する方法ステップのフローチャートである。
【発明を実施するための形態】
【００２６】
パート１：低レイテンシ動作のためのＩ／Ｏ確定性およびＩ／Ｏ確定性をサポートするＳＳＤアーキテクチャ
【００２７】
図１は、本発明の一実施形態に係る、ＳＳＤ１００の構造のブロック図である。図１に示されるように、ＳＳＤメモリコントローラ１２０は、ホストインタフェース１１０を介して、１または複数のホストデバイスまたはホストアプリケーション（不図示）との通信状態にある。ホストデバイスは、たとえばコンピュータまたはストレージ装置などの任意の適切なデバイスを備えてもよい。ＳＳＤ１００は、揮発性メモリ１３０と、不揮発性メモリダイ１４０のアレイとの両方を含む。揮発性メモリ１３０および不揮発性メモリダイ１４０のアレイは、それぞれＳＳＤメモリコントローラ１２０との通信状態１２４および１２２にある。
【００２８】
不揮発性メモリダイ１４０のアレイは、ＳＳＤメモリコントローラ１２０との通信状態１２２にある１または複数のチャネルに配列され得る不揮発性メモリダイ１４２ａ〜ｄ、１４４ａ〜ｄ、１４６ａ〜ｄ、および１４８ａ〜ｄを備える。１６の不揮発性メモリダイ１４２ａ〜ｄ、１４４ａ〜ｄ、１４６ａ〜ｄ、および１４８ａ〜ｄが図１に示されるが、ＳＳＤ１００の不揮発性メモリダイ１４０のアレイは、ＳＳＤメモリコントローラ１２０との通信状態１２２にある１または複数のチャネルに配列された任意の適切な数の不揮発性メモリダイ１４０を備えてもよい。一実施形態において、揮発性メモリデバイス１３０は、揮発性メモリＤＲＡＭバッファを備える。揮発性メモリデバイス１３０は、一体型の単一デバイスである必要はなく、ＳＳＤ１００のための揮発性メモリバッファを提供することができる様々な種類の多数のデバイスを備えてもよい。一実施形態において、不揮発性メモリダイ１４２ａ〜ｄ、１４４ａ〜ｄ、１４６ａ〜ｄ、および１４８ａ〜ｄは、ＮＡＮＤフラッシュメモリを備える。
【００２９】
図２ａは、本発明の一実施形態に係る、低レイテンシ動作をサポートするＳＳＤアーキテクチャのブロック図である。図２ａに示されるように、３２の不揮発性メモリダイは、各チャネルに４つの不揮発性メモリダイが結合され、８つのチャネル（ＣＨ０〜ＣＨ７）にわたり配列される。従来技術においてなされたように８つ全てのチャネルにわたり不揮発性メモリダイの各々から物理ブロックを選択することによって形成されたスーパーブロックではなく、図２ａのＳＳＤアーキテクチャは、同じチャネルおよび（同様の影模様で表された）隣接チャネル上の不揮発性メモリダイの各々から物理ブロックの全てを選択することによって形成されたスーパーブロックを含む。これらのスーパーブロックの各々は、ＳＳＤの他の領域内のアクティビティによる影響を比較的受けない、ＳＳＤ内の分離領域を形成する。したがって、図２ａに示されるように、（左から右への方向で）最初の２つのチャネル上の不揮発性メモリダイの物理ブロックは、分離領域２０２を備え、次の２つのチャネルにおける不揮発性メモリダイの物理ブロックは、分離領域２０４を備え、分離領域２０６および２０８についても以下同様である。
【００３０】
たとえば図２ａに示されるように、分離領域を形成するために同じチャネル（複数も可）内の同じ不揮発性メモリダイからの物理ブロックを用いてスーパーブロックを構成することによって、不揮発性メモリダイおよびチャネルコントローラにおけるＩ／Ｏ動作衝突は、最小化または完全に回避され得るので、ＳＳＤの、より低いレイテンシ、より高い予測性、より一貫性のあるＩ／Ｏ性能が可能になる。もちろん、図２ａに示される方式でスーパーブロックを構成することは、図２ａの分離領域２０２、２０４、２０６、および２０８が、不揮発性メモリダイの全てへの最大並列アクセスを実現するために、８つ全ての利用可能なチャネルを活用するものではないため、従来技術の較正と比較して、ＳＳＤの最大可能スループットを低減させる。しかし、このトレードオフは、分離領域２０２、２０４、２０６、および２０８ごとに２つのチャネルにわたる不揮発性メモリダイの各々から物理ブロックを選択することによる、図２ａに示されるアーキテクチャにおけるオフセットであり、したがってホストＩ／Ｏ動作を処理するために分離領域ごとに２つのチャネルコントローラを活用する。
【００３１】
分離領域を形成するための物理ブロックの選択および配列、ならびにこのアーキテクチャを用いるＳＳＤ内のデータのフローおよび分離領域の集成は、以下でより詳しく説明される。
【００３２】
図２ｂは、本発明の様々な実施形態に係る、２つの分離領域構成２２０および２３０のブロック図である。図２ｂに示されるように、１６の不揮発性メモリダイ２１０ａ〜２１０ｄ、２１２ａ〜２１２ｄ、２１４ａ〜２１４ｄ、および２１６ａ〜２１６ｄは、チャネルごとに４つの不揮発性メモリダイをもち、４つのチャネルＣＨ０〜ＣＨ３にわたり配列される。図２ａに示される構成と同様、分離領域２２０は、チャネルＣＨ０の不揮発性メモリダイ２１０ａ〜２１０ｄおよびチャネルＣＨ１の不揮発性メモリダイ２１２ａ〜２１２ｄの物理ブロックの各々を備える。ここでもまた、図２ａに関して前述したように、分離領域２２０は、不揮発性メモリダイ２１０ａ〜ｄおよび２１２ａ〜ｄとチャネルＣＨ０およびＣＨ１のチャネルコントローラとの両方におけるＩ／Ｏ動作衝突を最小化し、最大Ｉ／Ｏスループットを犠牲にして、より低いレイテンシおよびより予測可能な動作を可能にする。
【００３３】
あるいは、たとえば図２ｂに示される分離領域２２０または図２ａに示される分離領域２０２、２０４、２０６、および２０８のように、チャネルまたは多数のチャネルの不揮発性メモリダイ全ての物理ブロックの各々を選択するのではなく、分離領域２３０は、チャネルＣＨ０の不揮発性メモリダイ２１０ａおよび２１０ｂの物理ブロックの各々、チャネルＣＨ１の不揮発性メモリダイ２１２ａおよび２１２ｂの物理ブロックの各々、チャネルＣＨ２の不揮発性メモリダイ２１４ａおよび２１４ｂの物理ブロックの各々、および不揮発性メモリダイ２１６ａおよび２１６ｂの物理ブロックの各々を備える。
【００３４】
分離領域２２０と比較すると、分離領域２３０は、分離領域２２０の場合の２つのチャネルＣＨ０およびＣＨ１に限定されるのではなく、４つ全てのチャネルＣＨ０〜ＣＨ３にわたる不揮発性メモリダイからの物理ブロックへの並列アクセスを提供することにより、向上したＩ／Ｏスループットを有することができる。しかし、分離領域２３０の物理ブロック構成の場合、ＳＳＤの他の領域が、たとえばチャネルＣＨ０の不揮発性メモリダイ２１０ｃおよび２１０ｄの物理ブロック、チャネルＣＨ１の不揮発性メモリダイ２１２ｃおよび２１２ｄの物理ブロック、チャネルＣＨ２の不揮発性メモリダイ２１４ｃおよび２１４ｄの物理ブロック、およびチャネルＣＨ３の不揮発性メモリダイ２１６ｃおよび２１６ｄの物理ブロックを備える分離領域のように、分離領域２３０と同様に構成される（すなわち、チャネルＣＨ０〜ＣＨ３にわたる不揮発性メモリダイからの物理ブロックの各々を備える）とすると、チャネルＣＨ０〜ＣＨ３のチャネルコントローラにおいて何らかのＩ／Ｏ動作衝突が存在し得る。分離領域２３０内の不揮発性メモリダイへのＩ／Ｏ動作は、同じチャネル上にある他の同様に構成された分離領域の他の不揮発性メモリダイへのＩ／Ｏ動作と衝突し得（すなわちチャネル衝突）、何らかの予測不可能なＩ／Ｏ性能および期待より高いレイテンシをもたらす可能性がある。
【００３５】
後により詳しく説明するように、不揮発性メモリダイおよびチャネルコントローラの両方におけるＩ／Ｏ動作の衝突は、分離領域およびＳＳＤの動作の管理によって、分離領域２２０の構成または分離領域２３０の構成のいずれかを用いるＳＳＤアーキテクチャに関して最小化または回避され得る。また、ＳＳＤアーキテクチャは、単一の分離領域構成のみ（すなわち、分離領域２２０のような分離領域のみ、または分離領域２３０のような分離領域のみ）を備える必要はなく、１または複数のチャネルの不揮発性メモリダイの各物理ブロックを備える（分離領域２２０のそれと同様の）分離領域、および多数のチャネルにわたる不揮発性メモリダイの各物理ブロックを備える（分離領域２３０のそれと同様の）分離領域を備えてもよい。
【００３６】
図３は、本発明の一実施形態に係る、低レイテンシ動作をサポートするＳＳＤアーキテクチャの動作のタイミング図３００である。図３に示されるように、図２ａおよび図２ｂに示され説明された様々な構成に準じた分離領域は、期間にわたり、確定的モード３０２および非確定的または保守モード３０４という２つの異なるモードで動作する。確定的モード３０２において、分離領域は読出し動作のみを実行し、これは前述したように、最小レイテンシ（たとえば、ＴＬＣ  ＮＡＮＤフラッシュメモリの場合、一般に６０μｓ〜１００μｓ）で比較的迅速に完了する。一実施形態において、分離領域が確定的モード３０２である場合、分離領域のためのライトコマンドは、分離領域が確定的モード３０４に入るまで、ＳＳＤのメモリコントローラ内でキューに入れられる。他の実施形態において、ホストデバイスは、分離領域が確定的モード３０２であることを認識しており、分離領域が非確定的モード３０４に入るまで分離領域へのライトコマンドを発行しない。
【００３７】
分離領域は、ある不揮発性メモリダイの物理ブロック全てを備えるので、確定的モード３０２の間の読出し動作は、不揮発性メモリダイレベルで、ＳＳＤ内の他の分離領域における他のＩ／Ｏ動作および保守動作による影響を受けない。また、分離領域が、図２ｂに示される分離領域２２０または図２ａに示されるような分離領域２０２〜２０８と同様に構成される場合、分離領域は不揮発性メモリダイのための専用チャネルコントローラ（複数も可）を有することができるので、チャネルコントローラ衝突も回避される。したがって、確定的モード３０２で動作する場合、分離領域のＩ／Ｏ性能は確定的であり、読出し動作は、このモードにおいて最小レイテンシで完了する。
【００３８】
確定的モード３０２の間に分離領域内で読出し動作が実行されると、それに応じて、分離領域における保守動作を実行する必要性が増加する。加えて、（確定的モード３０２の間、読出し動作のみが実行される場合）分離領域のためのホストアプリケーションにおいて保留中の書込み動作の蓄積が存在し得る。よって、確定的モード３０２における期間の後、保守タスクの閾値レベルが必須になると、分離領域は非確定的モード３０４に入る。非確定的モード３０４において、分離領域は、保守タスクおよび書込み動作を実行する。これが可能であるうちは、分離領域が確定的モード３０２に再び入る前に、保守タスクおよび書込み動作の全てが実行される必要はない。一実施形態において、分離領域は、保守タスクの閾値レベルが完了すると、非確定的モード３０４から確定的モード３０２に入ってもよい。
【００３９】
このように、分離領域は、確定的モード３０２と非確定的モード３０４とを交互に切り換える。分離領域の確定的および非確定的動作、ならびにＳＳＤの内外の多数の分離領域間での調整は、後により詳しく説明される。
【００４０】
図４は、本発明の様々な実施形態に係る低レイテンシ動作をサポートする２つのＳＳＤアーキテクチャに対応する読出しレイテンシのプロットである。図４に示されるように、３つの読出しレイテンシプロット４０２、４０４、および４０６が示される。読出しレイテンシプロット４０２は、従来技術のＳＳＤアーキテクチャに対応し、ここで、全てのチャネルにわたる各不揮発性メモリダイからの物理ブロックが、論理ブロック（スーパーブロック）を形成するために選択される。読出しレイテンシプロット４０４は、分離領域２３０の構成と同様、ＳＳＤの分離領域が全てのチャネルにわたる不揮発性メモリダイの各物理ブロックを備える、図２ｂに示されるＳＳＤアーキテクチャに対応する。最後に、読出しレイテンシプロット４０６は、図２ａおよび図２ｂに示されるＳＳＤアーキテクチャに対応し、ここでＳＳＤの分離領域は、図２ａに示される分離領域２０２〜２０８または図２ｂに示される分離領域２２０の構成と同様、１または複数のチャネルからの全ての不揮発性メモリダイの各物理ブロックを備える。
【００４１】
３つ全ての読出しレイテンシプロット４０２、４０４、および４０６によって表されたデータは、同じ試験システムおよびパラメータ（すなわち、同じプロセッサ、マザーボード、オペレーティングシステム、およびワークロード）を用いて測定されている。読出しレイテンシプロット４０４および４０６に関して、ＳＳＤアーキテクチャは４つの分離領域を備え、１つの分離領域は確定的モード（すなわち読出し動作のみ）であり、残り３つの分離領域は全て、書込み動作のみを実行している。読出しレイテンシプロット４０４および４０６は、確定的モードにおける分離領域の読出し動作レイテンシを測定することによって生成される。
【００４２】
図４に示されるように、読出しレイテンシプロット４０２の場合、読出し動作の９０パーセントの読出しレイテンシは、約１００μｓ〜５ｍｓという広範囲のレイテンシにわたる。読出し動作の９９番目のパーセンタイルに関するレイテンシは、約１０ｍｓまで更に増加し、９９．９番目のパーセンタイルおよび９９．９９番目のパーセンタイルの場合は更に悪化し、完了までにほぼ２０ｍｓに達する。１０ｍｓ〜３０ｍｓの読出し動作は、比較的低い発生確率（すなわち、１０００〜１００００回の読出し動作につき１回）を有するように見えるが、一般的なＳＳＤは、毎秒発生する１００００または１０００００のＩ／Ｏ動作を有し、これは、毎秒の動作中、多数の読出し動作が１０ｍｓ〜３０ｍｓを要する可能性が高いことを意味する。読出しレイテンシプロット４０２の著しく増加するレイテンシは、背景技術において前述したように、従来技術のＳＳＤアーキテクチャによる、不揮発性メモリダイレベルおよびチャネルコントローラの両方において読出し動作が他のＩ／Ｏ動作および保守動作と衝突することに起因する。更に、動作が「ハイパースケール」である（すなわち、たとえばウェブページ提示などの動作が数千のサーバの数千のサブ動作として広がり、集約された数千のサブ動作の結果を有する）データセンタにおいて、１０００に１つのレイテンシ外れ値の可能性は、全ての動作が遅延することを意味する。
【００４３】
読出しレイテンシプロット４０４は、マーク付けされた読出しレイテンシプロット４０２に対する改善を示し、読出し動作の９０パーセントの読出しレイテンシが約４００μｓ未満であり、読出し動作の９９．９９パーセントの読出しレイテンシが約１１００μｓ未満である。読出しレイテンシプロット４０４は、読出しレイテンシプロット４０２に対し約１５倍（１５ｘ）の改善を示し、大幅に小さい変動幅をもつ。読出しレイテンシプロット４０４は、読出し動作が約１１００μｓ以内に完了することがほぼ保証され、読出し動作の大半（９９パーセント）は約７００μｓ以内に完了することを示す。したがって、図２ｂの分離領域２３０の構成と同様、ＳＳＤの分離領域が、全てのチャネルにわたる不揮発性メモリダイの各物理ブロックを備える、読出しレイテンシプロット４０４に対応するＳＳＤアーキテクチャは、従来技術のＳＳＤアーキテクチャと比較して、大幅に低い読出しレイテンシ動作、およびより高い予測性、確定的な動作を提供する。
【００４４】
ただし、読出しレイテンシプロット４０４に示されるように、より高いパーセンタイル値の動作において読出しレイテンシの増加が未だ存在する。読出しレイテンシの増加は、このＳＳＤアーキテクチャの分離領域の構成（すなわち、ＳＳＤの分離領域が、図２ｂの分離領域２３０の構成と同様、全てのチャネルにわたる不揮発性メモリダイの各物理ブロックを備える）によるチャネルコントローラでの衝突に起因する。前述したように、このＳＳＤアーキテクチャによる確定的モードでの分離領域に対する読出し動作は、多数の分離領域が同じチャネルコントローラを共有するためにチャネルコントローラレベルでの他の分離領域に対する書込み動作の次にキューに入れられ、そのため確定的モードでの分離領域に対する読出し動作は、実行前に、これらの動作の完了を待機する必要がある。
【００４５】
読出しレイテンシプロット４０６は、読出しレイテンシを改善する傾向を継続し、読出し動作の９０パーセントの読出しレイテンシが約１００μｓ〜１８０μｓである。９９番目のパーセンタイル、９９．９番目のパーセンタイル、および９９．９９番目のパーセンタイルの読出しレイテンシは、それぞれ約２００μｓ、２２０μｓ、および２８０μｓで最大に到達し、読出し動作の９９．９９９９番目のパーセンタイルにおいて３００μｓを少し超えるあたりで先細りになる。読出しレイテンシプロット４０６は、読出しレイテンシプロット４０２に対し５０倍（５０ｘ）を超える改善、および読出しレイテンシプロット４０４と比較して更に小さい範囲の変動を示し、読出し動作の９９．９９９９９パーセントが約１００μｓ〜３００μｓで完了する。読出しレイテンシプロット４０６に対応するＳＳＤアーキテクチャは、あるチャネルにわたる多数の分離領域に及ばないので、チャネルコントローラレベルおよび不揮発性メモリダイレベルにおける衝突を回避するため、前述したように読出しレイテンシプロット４０２に対応する従来技術のＳＳＤアーキテクチャに対し既に大幅に改善された、読出しレイテンシプロット４０４に対応するＳＳＤアーキテクチャと比較して、改善された低レイテンシ動作および確定的挙動をもつ。
【００４６】
よって、読出しレイテンシプロット４０４に対応するＳＳＤアーキテクチャと同様、読出しレイテンシプロット４０６に対応するＳＳＤアーキテクチャもまた、従来技術のＳＳＤアーキテクチャと比較して、低レイテンシ動作および予測性があり、確定的な動作を提供する。
【００４７】
パート２：ＳＳＤアーキテクチャにおける分離領域、ネームスペース、およびデータのフロー
【００４８】
図５ａは、本発明の一実施形態に係る、ＳＳＤの不揮発性メモリアレイ内の複数のスーパーブロックのブロック図である。図５ａの不揮発性メモリアレイは、チャネルバス（不図示）によって各チャネルに結合された４つの不揮発性メモリダイ（Ｄ０〜Ｄ３）をもつ８つのチャネル（ＣＨ０〜ＣＨ７）を含む。各不揮発性メモリダイは、複数の物理ブロック（不図示）を含む。ＳＳＤの初期ブートアップ中、ファームウェアは、不揮発性メモリアレイの物理ブロックを４つのスーパーブロック５０２、５０４、５０６、および５０８にマッピングする。スーパーブロック５０２、５０４、５０６、および５０８の各々は、不揮発性メモリアレイ内の複数の物理ブロックが割り当てられた論理ブロックである。スーパーブロック５０２は、チャネルＣＨ０およびＣＨ１のダイＤ０〜Ｄ３における全ての物理ブロックを含む。スーパーブロック５０４は、チャネルＣＨ２およびＣＨ３のダイＤ０〜Ｄ３における全ての物理ブロックを含む。スーパーブロック５０６は、チャネルＣＨ４およびＣＨ５のダイＤ０〜Ｄ３における全ての物理ブロックを含む。スーパーブロック５０８は、チャネルＣＨ６およびＣＨ７のダイＤ０〜Ｄ３における全ての物理ブロックを含む。スーパーブロック５０２、５０４、５０６、および５０８の各々は、同じ数の物理ブロックを有し、図５ａの実施形態において、５１２ＧＢ（約０．５ＴＢ）の記憶容量を提供する。図５ａの実施形態における各スーパーブロックは、２つのチャネル上の全ての不揮発性メモリダイを含むが、任意の数のチャネル上の全ての不揮発性メモリダイを含むスーパーブロックが本発明の範囲内である。
【００４９】
ＳＳＤの初期ブートアップ中、ファームウェアはまた、スーパーブロック５０２、５０４、５０６、５０８の各々を分離領域に割り当てる。分離領域は、１または複数のスーパーブロックを含んでもよく、各スーパーブロックは、１つの分離領域のみに属し得る。たとえば一実施形態において、ファームウェアは、スーパーブロック５０２を分離領域５１０に割り当て、スーパーブロック５０４およびスーパーブロック５０６を分離領域５２０に割り当てる。この実施形態において、分離領域５１０は、５１２ＧＢの記憶容量を有し、ファームウェアは、不揮発性メモリアレイ内の他の全ての分離領域のための保守動作とは別に、分離領域５１０に割り当てられた物理ブロックのための、たとえばガベッジコレクションおよび信頼性動作などの保守動作を制御する。たとえば、ガベッジコレクション中、消去される物理ブロック内の有効データのページは、分離領域５１０内の別の物理ブロックに移動される。この実施形態において、分離領域５２０は、１ＴＢの記憶容量（スーパーブロック５０４の５１２ＧＢの記憶容量＋スーパーブロック５０６の５１２ＧＢの記憶容量）を有する。ファームウェアは、分離領域５２０に割り当てられた物理ブロックのための保守動作を、不揮発性メモリアレイ内の他の全ての物理領域のための保守動作とは別に制御する。スーパーブロック５０２、５０４、５０６、および５０８の各々は、２つの専用チャネルを有し、スーパーブロック５０２、５０４、５０６、５０８の１つにおけるＩ／Ｏ動作および保守動作は、スーパーブロック５０２、５０４、５０６、５０８の他のいずれかにおけるＩ／Ｏ動作での遅延を一切もたらさない。
【００５０】
図５ｂは、本発明の一実施形態に係る、ＳＳＤの不揮発性メモリアレイにおける複数のスーパーブロックのブロック図である。図５ｂの不揮発性メモリアレイは、チャネルバス（不図示）によって各チャネルに結合された２つの不揮発性メモリダイ（Ｄ０〜Ｄ１）をもつ８つのチャネル（ＣＨ０〜ＣＨ７）を含む。各不揮発性メモリダイは、複数の物理ブロック（不図示）を含む。ＳＳＤの初期ブートアップ中、ファームウェアは、不揮発性メモリアレイの物理ブロックを４つのスーパーブロック５１２、５１４、５１６、および５１８にマッピングする。スーパーブロック５１２、５１４、５１６、および５１８の各々は、不揮発性メモリアレイ内の複数の物理ブロックを割り当てられた論理ブロックである。スーパーブロック５１２は、チャネルＣＨ０およびＣＨ１の不揮発性メモリダイＤ０〜Ｄ１における全ての物理ブロックを含む。スーパーブロック５１４は、チャネルＣＨ２およびＣＨ３の不揮発性メモリダイＤ０〜Ｄ１における全ての物理ブロックを含む。スーパーブロック５１６は、チャネルＣＨ４およびＣＨ５の不揮発性メモリダイＤ０〜Ｄ１における全ての物理ブロックを含む。スーパーブロック５１８は、チャネルＣＨ６およびＣＨ７の不揮発性メモリダイＤ０〜Ｄ１における全ての物理ブロックを含む。スーパーブロック５１２、５１４、５１６、および５１８の各々は、同じ数の物理ブロックを有し、図５ｂの実施形態において、２５６ＧＢ（約０．２５ＴＢ）の記憶容量を提供する。
【００５１】
ＳＳＤの初期ブートアップ中、ファームウェアはまた、スーパーブロック５１２、５１４、５１６、５１８の各々を分離領域に割り当てる。分離領域は、１または複数のスーパーブロックを含んでもよく、各スーパーブロックは、１つの分離領域のみに属し得る。たとえば一実施形態において、ファームウェアは、スーパーブロック５１２を分離領域５３０に割り当て、スーパーブロック５１４、スーパーブロック５１６、およびスーパーブロック５１８を分離領域５４０に割り当てる。この実施形態において、分離領域５３０は、２５６ＧＢの記憶容量を有し、分離領域５４０は、７６８ＧＢの記憶容量（スーパーブロック５１４、スーパーブロック５１６、およびスーパーブロック５１８の各々における２５６ＧＢの記憶容量）を有する。
【００５２】
図５ａおよび図５ｂに関して前述したように、ＳＳＤのファームウェアは、均一なサイズの複数のスーパーブロックを生成し、それから、様々なサイズの分離領域を生成するためにスーパーブロックを割り当てる。この方式において、ＳＳＤの総記憶容量は、様々なユーザの要望を満たすために、様々な構成で、１または複数の分離領域に組織化され得る。図５ｃ〜５ｅは、本発明の様々な実施形態に係る、ＳＳＤにおけるスーパーブロックおよび分離領域の様々な構成のブロック図である。図５ｃのＳＳＤの不揮発性メモリアレイは、４つの分離領域５６０、５６２、５６４、および５６６を含み、ここで各分離領域は、２つのチャネルに結合された全ての不揮発性メモリダイにおける全ての物理ブロックを含む１つのスーパーブロックから成る。図５ｄのＳＳＤの不揮発性メモリアレイは、３つの分離領域５７０、５７２、および５７４を含む。分離領域５７０および５７２の各々は、２つのチャネルに結合された全ての不揮発性メモリダイにおける全ての物理ブロックを含む１つのスーパーブロックから成り、分離領域５７０は、チャネルＣＨ０およびＣＨ１の不揮発性メモリダイＤ０〜Ｄ３における全ての物理ブロックを含み、分離領域５７２は、チャネルＣＨ２およびＣＨ３の不揮発性メモリダイＤ０〜Ｄ３における全ての物理ブロックを含む。分離領域５７４は、チャネルＣＨ４およびＣＨ５の不揮発性メモリダイＤ０〜Ｄ３における全ての物理ブロックを含む第１のスーパーブロックと、チャネルＣＨ６およびＣＨ７の不揮発性メモリダイＤ０〜Ｄ３における全ての物理ブロックを含む第２のスーパーブロックとの２つのスーパーブロックから成る。図５ｅのＳＳＤの不揮発性メモリアレイは、４つのスーパーブロックを含む１つの分離領域５８０を含む。
【００５３】
図６は、本発明の一実施形態に係る、分離領域内のネームスペースの様々な構成のブロック図である。一実施形態において、ＳＳＤ内の各分離領域は、ネームスペースとして構成される。たとえば、４ＴＢ  ＳＳＤは、各々が単一の１ＴＢネームスペースとして定義された４つの１ＴＢ分離領域として構成され得る。しかし他の実施形態において、ネームスペースは、図６に示されるように、分離領域に割り当てられた物理ブロックのサブセットとして定義される。ＳＳＤの分離領域６１０は、ネームスペース６１２、ネームスペース６１４、ネームスペース６１６、および物理ブロックの未割り当て部分６１８を含む。ＳＳＤの分離領域６２０は、ネームスペース６２２、ネームスペース６２４、および物理ブロックの未割り当て部分６２８を含む。ＳＳＤの分離領域６３０は、ネームスペース６３２および物理ブロックの未割り当て部分６３８を含む。分離領域の利点を維持するために、ネームスペース６１２、６１４、６１６、６２２、６２４、および６３２の各々は、単一の分離領域内に含まれる。たとえば、分離領域６１０のネームスペース６１２内で発生する、たとえばガベッジコレクションなどの保守動作は、分離領域６３０のネームスペース６３２内の読出し動作に影響を及ぼさない。未割り当て部分６１８、６２８、および６３８の各々は、それぞれ対応する分離領域６１０、６２０、および６３０内の１または複数のネームスペースに割り当てられ得る。
【００５４】
図７は、本発明の一実施形態に係る、低レイテンシ動作をサポートするＳＳＤアーキテクチャにおけるデータのフローのブロック図である。ＳＳＤアーキテクチャは、ホストインタフェースレイヤ７１０、データキャッシュ７１５、フラッシュ管理レイヤ７２５、フラッシュ転換レイヤ７２０、アドレスマップテーブル７３０、フラッシュインタフェースレイヤ７３５、フラッシュインタフェースレイヤ７４０、４つのデュアルチャネルコントローラ７４５、７５０、７５５、および７６０、および不揮発性メモリアレイ７７０を含むが、これに限定されない。不揮発性メモリアレイ７７０は、分離領域７７２、分離領域７７４、分離領域７７６、および分離領域７７８を含む。分離領域７７２、７７４、７７６、および７７８の各々は、２つのチャネルに結合された全ての不揮発性メモリダイにおける全ての物理ブロックを含むスーパーブロックを備える。アドレスマップテーブル７３０は、論理スーパーブロックおよび分離領域への、不揮発性メモリアレイ７７０内の物理ブロックのアドレスの割当てを格納する。デュアルチャネルコントローラ７４５は、分離領域７７２の２つのチャネルを介した通信を管理し、デュアルチャネルコントローラ７５０は、分離領域７７４の２つのチャネルを介した通信を管理し、デュアルチャネルコントローラ７５５は、分離領域７７６の２つのチャネルを介した通信を管理し、デュアルチャネルコントローラ７６０は、分離領域７７８の２つのチャネルを介した通信を管理する。図７の実施形態において、分離領域７７２、７７４、７７６、および７７８の各々は、ネームスペースに対応する。他の実施形態において、不揮発性メモリアレイは、たとえば４または１６など他の数のチャネルを含んでもよく、ＳＳＤアーキテクチャは、不揮発性メモリアレイの各チャネルに対して１つのシングルチャネルコントローラを含んでよい。
【００５５】
不揮発性メモリアレイ７７０の４つの分離領域７７２、７７４、７７６、および７７８は、ホストアプリケーションと１つの分離領域との間のデータ交換が、別のホストアプリケーションと異なる分離領域との間のデータ交換と干渉しないように、４つの独立した「データパイプ」として、ＳＳＤが１または複数のホストデバイスまたはアプリケーション（不図示）と不揮発性メモリアレイ７７０との間のデータ交換を管理することを可能にする。ＳＳＤのたとえばＤＲＡＭなどの揮発性メモリ内の記憶域のセットであるデータキャッシュ７１５は、各分離領域に対するコマンドおよびデータを独立してキャッシュする。フラッシュ転換レイヤ７２０は、分離領域７７２へ書き込まれまたは分離領域７７２から読み出されたデータ７０２、分離領域７７４へ書き込まれまたは分離領域７７４から読み出されたデータ７０４、分離領域７７６へ書き込まれまたは分離領域７７６から読み出されたデータ７０６、および分離領域７７８へ書き込まれまたは分離領域７７８から読み出されたデータ７０８を、互いに独立して管理する。たとえば、分離領域７７２へ書き込まれるデータ７０２は、フラッシュ転換レイヤ７２０によって、フラッシュインタフェースレイヤ７３５およびデュアルチャネルコントローラ７４５へ経路指定される。同様に、分離レイヤ７７６から読み出されたデータ７０６は、デュアルチャネルコントローラ７５５およびフラッシュインタフェースレイヤ７４０を通るように経路指定され、フラッシュ転換レイヤ７２０によってデータ７０６は、データキャッシュ７１５の適切な領域に格納される。
【００５６】
図８は、本発明の一実施形態に係る、ＳＳＤの不揮発性メモリアレイ内にスーパーブロックおよび分離領域を生成するための方法ステップのフローチャートである。ステップ８０２において、ＳＳＤのファームウェアは、ＳＳＤが１回目にブートまたはスタートアップされていること（すなわち、初期ブートアップ）を検出する。ステップ８０４において、ファームウェアは、不揮発性メモリアレイ内に生成される各スーパーブロックおよび各分離領域の容量を識別するために、過去にファームウェアにプログラムされた構成ファイルを読み出す。各スーパーブロックの容量は、ＳＳＤ製造元によって定められ、ＳＳＤの総記憶容量、たとえば１ＴＢ、２ＴＢ、または４ＴＢに基づいて変動する。構成ファイルに定義された各分離領域の容量は、ユーザの要求を満たすためにカスタマイズされ得る。たとえばユーザは、等しいサイズの複数の分離領域を生成することを望んでもよく、あるいは、各分離領域が異なるサイズである複数の分離領域を生成することを望んでもよい。ステップ８０６において、ファームウェアは、各スーパーブロックに対して適切なチャネルの数を選択する。適切なチャネルの数は、ＳＳＤのハードウェアアーキテクチャに依存し得る。一実施形態において、ファームウェアは、各スーパーブロックに対して２つのチャネルを選択する。ステップ８０８において、ファームウェアは、構成ファイルに記載されたスーパーブロック要件を満たすように不揮発性メモリアレイの物理ブロックを各スーパーブロックに割り当て、各論理スーパーブロックに関する物理ブロックの個別のリストを生成する。一実施形態において、ファームウェアは、隣接した２つのチャネルを選択し、これら２つのチャネル上の各不揮発性メモリダイの各物理ブロックを第１のスーパーブロックに割り当てる。それから、ファームウェアは、次の２つの隣接したチャネルを選択し、これら２つのチャネル上の各不揮発性メモリダイの各物理ブロックを第２のスーパーブロックに割り当てる。ファームウェアは、不揮発性メモリアレイの全ての物理ブロックがスーパーブロックに割り当てられるまで、この方式を継続する。ファームウェアは、各スーパーブロックに割り当てられた物理ブロックのアドレスのリストを作成し、これらの個別リストをアドレスマッピングテーブルに格納する。
【００５７】
ステップ８１０において、ファームウェアは、分離領域にスーパーブロックを割り当て、割当てをテーブルに格納する。ファームウェアは、構成ファイルに記載された分離領域容量を満たすように、スーパーブロックを分離領域に割り当てる。一般に、各分離領域は、１または複数のスーパーブロックを含む。たとえば一実施形態において、ファームウェアは、分離領域の数がスーパーブロックの数と等しいように、複数の分離領域の各々に１つのスーパーブロックを割り当て、そのような実施形態は図５ｃに示される。他の実施形態において、ファームウェアは、第１の分離領域に１つのスーパーブロックを、第２の分離領域に１つのスーパーブロックを、第３の分離領域に２つのスーパーブロックを割り当て、そのような実施形態は図５ｄに示される。任意的なステップ８１２において、ファームウェアは、分離領域をネームスペース識別子に割り当てる。一実施形態において、ファームウェアは、ＳＳＤ内のネームスペースの数が分離領域の数と一致するように、各分離領域を個別のネームスペース識別子に割り当てる。他の実施形態において、ネームスペースは、ＳＳＤの初期ブートアップ後の何らかの時点で定義される。図６に関して前述したように、単一の分離領域内で多数のネームスペースが定義され得る。
【００５８】
パート３：ＳＳＤの低レイテンシ動作
【００５９】
図９は、本発明の一実施形態に係る、各々が低レイテンシ動作をサポートするアーキテクチャを有するＳＳＤ９１０、９２０、および９３０のアレイの動作のタイミング図である。説明の簡素化のために、図９のタイミング図は、ＳＳＤ９１０、９２０、および９３０の各々における単一の分離領域の動作を示す。ただし、図９のタイミング図に関して示され説明される動作は、そのようには限定されず、ＳＳＤ内の、または１または複数のＳＳＤにわたる３つの分離領域にも等しく適用可能である。
【００６０】
ＳＳＤ９１０、９２０、および９３０の分離領域は、図２ａに示されるような分離領域２０２〜２０８および図２ｂに示されるような分離領域２２０と同様、１または複数のチャネルの不揮発性メモリダイの各々からの物理ブロック、あるいは図２ｂに示されるような分離領域２３０と同様、多数のチャネルにわたる不揮発性メモリダイからの物理ブロックのいずれかで、図２ａ、２ｂ、５ａ〜ｅに関して前述したように構成され得る。図３に関して前述した動作と同様、ＳＳＤ９１０、９２０、および９３０の分離領域の各々は、確定的モード９０２および非確定的（すなわち保守）モード９０４における動作を交互に行う。前述したように、確定的モード９０２において、分離領域は読出し動作のみを実行し、非確定的モード９０４において、分離領域は、たとえばガベッジコレクションなどの保守タスクを実行し、確定的モード９０２の間に分離領域に関して蓄積された書込み動作を実行する。
【００６１】
図９に示されるように、ある時点において、ＳＳＤ９１０、９２０、および９３０の少なくとも１つは、確定的な読出し動作を提供するために確定的モード９０２である。一般に重要なデータの十分な冗長性およびバックアップを確実にするためにデータセンタおよびストレージセンタの環境において発生する、ＳＳＤ９１０、９２０、および９３０の分離領域の各々が同じデータのコピーを有する場合、ＳＳＤ９１０、９２０、および９３０の図９に示される動作は、データの少なくとも１つのコピーが任意の時間に確定的に読み出され得ることを保証する。他の実施形態において、冗長性を提供するために抹消符号化が用いられ、データの再構成を可能にするために任意のＭ個のフラグメント（ここでＭ＜Ｎ）が必要とされるように、データがＮ個の符号化フラグメントで書き込まれる場合、ＳＳＤの動作は、Ｎ個のＳＳＤのうちＭ個が任意の時間に確定的に読み出され得ることを保証する。また、必要な保守および書込みは、データの確定的な読出し動作に干渉することなく、分離領域に対して実行され得る。ＳＳＤ９１０、９２０、および９３０の動作は、データが絶えず多数のデバイスによって一斉にＳＳＤから読み出されＳＳＤへ書き込まれる、大規模データセンタまたはストレージセンタの環境に特に適している。
【００６２】
図９には３つの分離領域／ＳＳＤ９１０、９２０、および９３０が示されるが、ここでもまた、図９のタイミング図に関して示され説明された動作は、そのようには限定されず、本発明の様々な実施形態に係る１または複数のＳＳＤにおける２つ以上の分離領域で実現され得る。たとえば、単一のＳＳＤ内の２つの分離領域が、データのコピーを格納するために用いられる場合、１つの分離領域は、データの読出し動作を実行するために確定的モードでなくてはならず、その間、他の分離領域は、非確定的モードにおいて保守中であり、および／または書込み動作を実行する。同様に、２つのＳＳＤにわたる４つの分離領域が、データのコピーを格納するために用いられる場合、たとえば、分離領域のうち最大３つが任意の時点で非確定的モードであってよく、残りの１または複数の分離領域が、読出し動作を提供するために確定的モードである。ただし、後により詳しく説明するように、読出しデータエラー処理のための柔軟性を提供するために２つ以上の分離領域が常時確定的モードで動作するようにＳＳＤを動作させることが好ましい。
【００６３】
図１０は、本発明の一実施形態に係る、ＳＳＤの低レイテンシ動作のための方法ステップ１０００のフローチャートである。方法ステップ１０００は、説明の簡素化のためにＳＳＤ内の単一の分離領域に関して説明され、本発明の様々な実施形態と合致するＳＳＤまたはＳＳＤのアレイの他の分離領域にも同様に適用され得る。図１０に示されるように、ステップ１００２において、分離領域は確定的モードに入る。ステップ１００４において、分離領域からデータが読み出される。ステップ１００６において、分離領域のための１または複数の保守カウンタが減少する。一実施形態において、保守カウンタは、分離領域における読出し動作の数を追跡し、保守カウンタの初期値は、保守動作が要求される前に実行され得る読出し動作の典型的な数である。この実施形態または他の実施形態において、保守カウンタは、時間の増分、分離領域に関してキューに入れられた書込み動作の数、または読出し動作の数、書込み動作の数、および／または時間の増分の組み合わせを追跡する。ステップ１００８において、保守カウンタが、分離領域において保守が実行される必要があることを示す最小閾値を下回るかを判定するために、保守カウンタのチェックが行われる。保守カウンタが未だ最小閾値を上回る場合、保守が実行される必要は未だなく、分離領域は、リードコマンドの処理を継続してもよく、ステップ１００４において再びデータを読み出す。
【００６４】
しかし、保守カウンタが、分離領域において保守が実行される必要があることを示す最小閾値を下回る場合、ステップ１０１０において、分離領域は非確定的モードに入る。ステップ１０１２において、分離領域は、保守動作および蓄積された書込み動作を実行する。ステップ１０１４において、保守動作が実行されたとして保守カウンタが調和的に増加する。ステップ１０１６において、十分な保守動作が実行され、分離領域が確定的モードでの動作に戻ることができるかを判定するために、保守カウンタがチェックされる。そうである場合、分離領域は、ステップ１００２で確定的モードに再び入り、方法ステップ１０００は繰り返す。そうでない場合、ステップ１０１２で追加の保守動作および書込み動作が再び実行される。
【００６５】
保守カウンタは、たとえば一実施形態において状態レジスタとして、任意の適切な方式で実装され得る。一実施形態において、状態レジスタは、ステップ１００４および１００６において分離領域からデータが読み出される度、単調に減少し、ステップ１０１２および１０１４において保守および書込み動作が実行される度、単調に増加する。また、保守カウンタが、ステップ１００４において読出し動作が実行されるとステップ１００６において減少し、ステップ１０１２において保守動作が実行されるとステップ１０１４において増加することは重大ではない。他の実施形態において、保守カウンタは、ステップ１００４において読出し動作が実行されると増加し、１０１２において保守動作が実行されると減少する。この実施形態において、ステップ１００８におけるチェックは、保守カウンタが、分離領域において保守動作が実行される必要があることを示す最大閾値を上回るかを判定し、ステップ１０１６におけるチェックは、保守カウンタが、十分な保守動作が実行され、分離領域が確定的モードでの動作に戻ることができることを示す許容可能閾値を下回るかを判定する。
【００６６】
一実施形態において、分離領域は、ステップ１００８において保守カウンタが最小閾値を下回ると判定された場合にステップ１０１０において確定的モードの動作から非確定的モードの動作へ自動的に移行するのではなく、ステップ１０１６において保守カウンタが許容可能閾値を上回ると判定された場合にステップ１００２において非確定的モードの動作から確定的モードの動作へ自動的に移行するわけではない。むしろ、ホストデバイスが、分離領域の動作モード（すなわち、確定的または非確定的）を設定するように構成され得る。この実施形態において、ＳＳＤは、分離領域がいつ保守を必要とするかに関する推定をホストデバイスに提供する。
【００６７】
たとえば、保守カウンタが最小閾値を下回ると判定された場合、ＳＳＤは、ある期間内またはある読出し動作回数内に分離領域において保守が実行される必要があることをホストに示す通知をホストデバイスへ送信してもよい。ホストデバイスはそれから、図９に関して前述したように、現在の分離領域において保守が実行されている間、データのコピーが別の分離領域から確定的にアクセスされ得ることを確実にするために、分離領域がいつ保守動作を実行するために非確定的モードに入るかのタイミングを、同じデータのコピーを格納している他の分離領域と調整してもよい。
【００６８】
更に、十分な保守および書込み動作が実行され、保守カウンタが許容可能閾値を上回ると、ＳＳＤは、分離領域が確定的モードでの動作を再開する準備ができたことをホストに示す別の通知をホストデバイスへ送信してもよく、ホストデバイスは、分離領域またはネームスペースがいつ非確定的モードから確定的モードへ再び入るかのタイミングを、同じデータのコピーを有し保守を必要としている他の分離領域と調整してもよい。一実施形態において、ホストデバイスは、確定的モードから非確定的モードへ、またはその逆に分離領域の動作モードを変更するためにＳＳＤからの指示を待機する必要はなく、同じデータのコピーを格納している様々な分離領域の保守必要性に依存して、それを行ってもよい。一実施形態において、ＳＳＤがホストへ指示を送信するのではなく、ホストデバイスは、分離領域によって保守が必要とされているかを判定するために、ＳＳＤの保守カウンタを定期的にチェックする。他の実施形態において、ホストは、任意のある時間における読出しおよび書込み動作の作業負荷バランスに従って、確定的モードに入る／確定的モードから出る。たとえば、読出し動作が優位である場合、確定的モードが選択され得、書込み動作が優位である場合、非確定的モードが選択され得る。他の実施形態において、ホストは、保守カウンタ閾値に基づいて確定的モードおよび非確定的モードの持続期間を推定し、時間のみに基づいてモード間での分離領域の切換えをスケジュールするが、このスケジュールの例外を生成するために現在の保守カウンタ値も用いる。
【００６９】
パート４：読出しデータエラー処理
【００７０】
一実施形態において、たとえば図１のＳＳＤ１００などのＳＳＤは、不揮発性メモリアレイからのデータの正しい読出しを支援するために、多数レベルのエラー補正を実装するように構成される。エラー補正のレベルは、複雑性および必要な処理リソースの量において異なる。ＳＳＤ１００のコントローラ１２０は、最も低いレベルのエラー補正複雑性から始めて、不揮発性メモリのページから読み出したデータにエラー補正を適用し、データがうまく復旧されない場合、データがうまく復旧されるまで、または利用可能なエラー補正が使い尽くされ、データが復旧不可能であるとみなされるまで、次に高いレベルのエラー補正を適用するように構成される。一実施形態において、エラー補正技術のレベルは、複雑性が高くなる順に、硬判定低密度パリティ検査（ＬＤＰＣ）、１または複数のレベルの軟判定ＬＤＰＣ、およびＱＳＢＣ（Quadruple Swing-By-Code）を含む。たとえばＢＣＨ（Bose-Chaudhuri-Hocquenghem）ブロックコードなどの他の種類のエラー補正符号化は、本発明の範囲内である。多重レベルの誤り補正を適用することは、データをうまく読み出すＳＳＤの能力を向上させるが、大幅なレイテンシをもたらし得る。
【００７１】
図９に関して前述したように、データセンタは多くの場合、ＳＳＤ内および／または同じまたは異なる地理的位置における様々なＳＳＤ内の様々な分離領域またはネームスペースにデータの多数のコピーを格納する。そのような環境において、ホストアプリケーションは、利用可能な様々な位置のいずれかからデータを読み出す能力を有する。１つのＳＳＤ、分離領域、またはネームスペースへのリードコマンドが不成功、すなわちリードコマンドがエラーを返した場合、ホストアプリケーションは、同じデータを別の場所から読み出そうと試みることができる。たとえば、ＳＳＤ９１０がリードコマンドに関するエラーを返した場合、データは、ＳＳＤ９２０またはＳＳＤ９３０から読み出され得る。
【００７２】
一実施形態において、コントローラ１２０のファームウェアは、エラー補正のレベルに対応して、一般的な読出しレイテンシで、ホストアプリケーションが最大読出し復旧レベルを選択することを可能にするように構成される。ホストアプリケーションは、特定のＳＳＤ、分離領域、またはネームスペースへの全てのリードコマンドに対して、最大読出し復旧レベルおよびそれに関連する読出しレイテンシを選択してもよく、あるいは、各リードコマンドに対して個々に選択を行ってよい。ホストアプリケーションが、ＳＳＤのコントローラが可能である最高レベルのエラー補正よりも低い最大読出し復旧レベルを選択した場合、ＳＳＤは、全てのレベルのエラー補正が適用された場合よりも早く読出しエラーを返す。それからホストアプリケーションは、別のＳＳＤ、分離領域、またはネームスペースからデータを読み出すことを試みてよい。ホストアプリケーションが、リードコマンドに関する最大読出し復旧レベルを選択することによって「オプトイン」しなかった場合、ＳＳＤは、データがうまく読み出されるまで、またはエラー補正技術が使い尽くされるまで、複雑性のレベルを高めてエラー補正技術を適用する。読出し復旧レベルおよび関連する読出しレイテンシのセットの一実施形態が、表１に示される。
【表１】
2020529684.tif 000003
【００７３】
図１１は、本発明の一実施形態に係る、ＳＳＤによる読出しデータエラー処理に関する方法ステップ１１００のフローチャートである。ステップ１１０２において、ＳＳＤのファームウェアは、ホストアプリケーションから受信したリードコマンドに関する最大読出し復旧レベルを識別する。一実施形態において、ＳＳＤ、分離領域、またはネームスペースは、全てのリードコマンドに関して最大読出し復旧レベルを用いるように前もって構成されている。他の実施形態において、ホストアプリケーションは、各リードコマンドに関して個々に最大読出し復旧レベルの選択を行う。ステップ１１０４において、ＳＳＤは、適用可能なエラー補正レベルを含むリードコマンドを実行する。たとえば、ホストアプリケーションが表１における読出し復旧レベル「１」を選択した場合、ＳＳＤはまず、硬判定ＬＤＰＣ技術をデータに適用し、データがうまく復旧されない場合、次に軟判定ＬＤＰＣ技術を適用する。ステップ１１０６において、ＳＳＤのファームウェアは、データが、最大読出し復旧レベルで、関連する読出しレイテンシ以内にうまく読み出されたかを判定する。データがうまく復旧された場合、次にステップ１１０８において、ＳＳＤは、ホストアプリケーションの完了キューに読出し完了を書き込む。データがうまく復旧されなかった場合、次にステップ１１１０において、ＳＳＤは、ホストアプリケーションの完了キューに読出しエラーを報告する。
【００７４】
図１２は、本発明の一実施形態に係る、１または複数のＳＳＤに接続されたホストアプリケーションによる読出しデータエラー処理に関する方法ステップ１２００のフローチャートである。ステップ１２０２において、ホストアプリケーションは、リードコマンドに関する最大読出し復旧レベルを設定する。他の実施形態において、ホストアプリケーションは、特定のネームスペース、分離領域、またはＳＳＤに発行された全てのリードコマンドに関して包括的に最大読出し復旧レベルを設定する。ステップ１２０４において、ホストアプリケーションは、ＳＳＤ内のネームスペースにリードコマンドを発行する。ステップ１２０６において、ホストアプリケーションは、ＳＳＤが要求されたデータに関する補正不可能なエラーまたは他の何らかのエラー応答を返したかを判定するために、自身の完了キューをチェックする。ＳＤＤがエラーを返した場合、次にステップ１２０８において、ホストアプリケーションは、別のネームスペース、分離領域、またはＳＳＤに、要求されたデータの別のコピーが格納されているかを判定する。そうである場合、それから方法はステップ１２０２へ戻り、ここでホストアプリケーションは、別のネームスペースからデータを読み出すことを試みる。ステップ１２０８において、ホストアプリケーションが、データの別のコピーが別のネームスペースで利用可能ではないと判定した場合、たとえばデータの他のコピーが存在しない、あるいは他のデータ場所が停電中である場合、次にステップ１２１０において、ホストアプリケーションは、より高い読出し復旧レベルが利用可能であるかを判定する。そのネームスペースに利用可能なより高い読出し復旧レベルがない場合、方法は終了する（リードコマンドはエラーとして返される）。より高い読出し復旧レベルが利用可能である場合、ステップ１２１２において、ホストアプリケーションは、利用可能な最も高いレベルのエラー補正であり得る、より高い読出し復旧レベルを選択する。方法はそれからステップ１２０４へ戻る。
【００７５】
本発明の様々な態様の他の目的、利点、および実施形態は、本発明の分野の当業者に対して明らかであり、本明細書および添付図面の範囲内である。たとえば、限定を伴わず、本発明と合致して、構造要素または機能要素は、再配置されてよく、方法ステップは並べ替えられてよい。同様に、本発明に係る原理は他の例に適用されてよく、これらは、本明細書で特に詳しく説明されない場合でも、本発明の範囲内である。
【図１】
2020529684.tif 000004
【図２ａ】
2020529684.tif 000005
【図２ｂ】
2020529684.tif 000006
【図３】
2020529684.tif 000007
【図４】
2020529684.tif 000008
【図５ａ】
2020529684.tif 000009
【図５ｂ】
2020529684.tif 000010
【図５ｃ】
2020529684.tif 000011
【図５ｄ】
2020529684.tif 000012
【図５ｅ】
2020529684.tif 000013
【図６】
2020529684.tif 000014
【図７】
2020529684.tif 000015
【図８】
2020529684.tif 000016
【図９】
2020529684.tif 000017
【図１０】
2020529684.tif 000018
【図１１】
2020529684.tif 000019
【図１２】
2020529684.tif 000020
【国際調査報告】
2020529684.tif 000021
2020529684.tif 000022