(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-24
(54)【発明の名称】擬似非同期マルチプレーン独立読み取り
(51)【国際特許分類】
G06F 12/06 20060101AFI20230714BHJP
G06F 12/00 20060101ALI20230714BHJP
【FI】
G06F12/06 550A
G06F12/00 597U
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022578922
(86)(22)【出願日】2020-11-06
(85)【翻訳文提出日】2022-12-20
(86)【国際出願番号】 CN2020126971
(87)【国際公開番号】W WO2022094901
(87)【国際公開日】2022-05-12
(81)【指定国・地域】
(71)【出願人】
【識別番号】519237948
【氏名又は名称】長江存儲科技有限責任公司
【氏名又は名称原語表記】Yangtze Memory Technologies Co.,Ltd.
【住所又は居所原語表記】No.88 Weilai 3rd Road,East Lake High-tech Development Zone,Wuhan,Hubei,China
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】シャオジアン・グオ
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CA12
5B160CD02
(57)【要約】
本開示の態様により、ホストとマルチプレーンフラッシュメモリとの間のインターフェースが提供される。例えば、インターフェースは、第1ストレージユニット、第2ストレージユニット、およびコントローラを含むことができる。第1ストレージユニットは、ホストから発行された第1プレーンパイプラインコマンドを受信して格納し、第1プレーンパイプラインコマンドをフラッシュメモリの第1プレーンに出力するように構成され得る。第2ストレージユニットは、ホストから発行された第2プレーンパイプラインコマンドを受信して格納し、第2プレーンパイプラインコマンドをフラッシュメモリの第2プレーンに出力するように構成され得る。コントローラは、第1ストレージユニットと第2ストレージユニットに電気的に接続され得て、読み取りプロセスが第1プレーンと第2プレーンに対して実行されていないときに、第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドをそれぞれ第1プレーンと第2プレーンに出力するように構成され得る。
【特許請求の範囲】
【請求項1】
ホストとマルチプレーンフラッシュメモリとの間のインターフェースであって、
前記ホストから発行された第1プレーンパイプラインコマンドを受信して格納し、前記第1プレーンパイプラインコマンドを前記フラッシュメモリの第1プレーンに出力するように構成された第1ストレージユニットと、
前記ホストから発行された第2プレーンパイプラインコマンドを受信して格納し、前記第2プレーンパイプラインコマンドを前記フラッシュメモリの第2プレーンに出力するように構成された第2ストレージユニットと、
前記第1ストレージユニットと前記第2ストレージユニットとに電気的に接続され、前記フラッシュメモリの前記第1プレーンと前記第2プレーンとに対して読み取りプロセスが実行されていないときに、前記第1プレーンパイプラインコマンドを前記第1プレーンに出力し、前記第2プレーンパイプラインコマンドを前記第2プレーンに出力するように構成されたコントローラと
を含むインターフェース。
【請求項2】
前記第1プレーンパイプラインコマンドは、第1プレーンパイプライン読み取りコマンドと第1プレーンパイプライン読み取り終了コマンドを含む、請求項1に記載のインターフェース。
【請求項3】
前記第1ストレージユニットは、一度に前記第1プレーンパイプライン読み取りコマンドまたは前記第1プレーンパイプライン読み取り終了コマンドのいずれかを格納するように構成される、請求項2に記載のインターフェース。
【請求項4】
前記第1ストレージユニットは、一度に1つだけの前記第1プレーンパイプライン読み取りコマンドを格納するように構成される、請求項2に記載のインターフェース。
【請求項5】
前記コントローラは、一端が前記第1ストレージユニットに電気的に接続され、他端が前記ホストに電気的に接続されて、前記第1プレーンパイプラインコマンドを受信し、前記第1ストレージユニットが空になった後に閉じている第1スイッチを含む、請求項1に記載のインターフェース。
【請求項6】
前記第1ストレージユニットは、キューである、請求項1に記載のインターフェース。
【請求項7】
前記フラッシュメモリは、NANDフラッシュメモリである、請求項1に記載のインターフェース。
【請求項8】
前記フラッシュメモリは、前記第1プレーンと前記第2プレーンに対して同期的に読み取りプロセスを実行する、請求項1に記載のインターフェース。
【請求項9】
前記ホストは、前記第1プレーンパイプラインコマンドと前記第2プレーンパイプラインコマンドを非同期的に発行する、請求項1に記載のインターフェース。
【請求項10】
前記第1ストレージユニットと前記第2ストレージユニットは、単一のメモリを構成する、請求項1に記載のインターフェース。
【請求項11】
ホストから発行されたコマンドをマルチプレーンフラッシュメモリに出力する方法であって、
前記ホストから発行された第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドとをそれぞれ第1ストレージユニットと第2ストレージユニットとに格納するステップと、
前記フラッシュメモリの第1プレーンと第2プレーンとに対して読み取りプロセスが実行されていないときに、前記第1プレーンパイプラインコマンドと前記第2プレーンパイプラインコマンドとを前記フラッシュメモリのそれぞれ前記第1プレーンと前記第2プレーンとに出力するステップと
を含む方法。
【請求項12】
前記第1プレーンパイプラインコマンドは、第1プレーンパイプライン読み取りコマンドと第1プレーンパイプライン読み取り終了コマンドを含む、請求項11に記載の方法。
【請求項13】
前記第1ストレージユニットは、一度に前記第1プレーンパイプライン読み取りコマンドまたは前記第1プレーンパイプライン読み取り終了コマンドのいずれかを格納するように構成される、請求項12に記載の方法。
【請求項14】
前記第1ストレージユニットは、一度に1つだけの前記第1プレーンパイプライン読み取りコマンドを格納するように構成される、請求項12に記載の方法。
【請求項15】
前記第1プレーンパイプラインコマンドは、前記第1ストレージユニットが空になった後に前記第1ストレージユニットに格納される、請求項11に記載の方法。
【請求項16】
前記第1ストレージユニットは、キューである、請求項11に記載の方法。
【請求項17】
前記フラッシュメモリは、NANDフラッシュメモリである、請求項11に記載の方法。
【請求項18】
前記フラッシュメモリは、前記第1プレーンと前記第2プレーンに対して同期的に読み取りプロセスを実行する、請求項11に記載の方法。
【請求項19】
前記ホストは、前記第1プレーンパイプラインコマンドと前記第2プレーンパイプラインコマンドを非同期的に発行する、請求項11に記載の方法。
【請求項20】
前記第1ストレージユニットと前記第2ストレージユニットは、単一のメモリを構成する、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般に半導体メモリデバイスに関連する実施形態を説明する。
【背景技術】
【0002】
半導体メモリデバイスは、揮発性メモリデバイスと不揮発性メモリデバイスに分類され得る。一般に、揮発性メモリデバイスは電源がオフになるとデータを失うが、不揮発性メモリデバイスは電源が切れても保存されたデータを保持することができる。より高いデータ記憶密度を実現するために、3次元(3D)NANDフラッシュメモリ技術などの垂直デバイス技術が、半導体製造業者によって開発された。このような3D_NANDフラッシュメモリは、不揮発性メモリデバイスの一種である。マルチプレーンNANDフラッシュメモリは、複数のプレーンを持つことができ、同期的または非同期的に読み取られ得る。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の態様により、ホストとマルチプレーンフラッシュメモリとの間に配置されるか、またはフラッシュメモリに組み込まれ得るインターフェースが提供される。例えば、インターフェースは、第1ストレージユニット、第2ストレージユニット、およびコントローラを含むことができる。第1ストレージユニットは、ホストから発行された第1プレーンパイプラインコマンドを受信して格納し、第1プレーンパイプラインコマンドをフラッシュメモリの第1プレーンに出力するように構成され得る。第2ストレージユニットは、ホストから発行された第2プレーンパイプラインコマンドを受信して格納し、第2プレーンパイプラインコマンドをフラッシュメモリの第2プレーンに出力するように構成され得る。コントローラは、第1ストレージユニットと第2ストレージユニットに電気的に接続され得て、読み取りプロセスがフラッシュメモリの第1プレーンと第2プレーンに対して実行されていないときに、第1プレーンパイプラインコマンドを第1プレーンに出力し、第2プレーンパイプラインコマンドを第2プレーンに出力するように構成され得る。例えば、第1ストレージユニットおよび第2ストレージユニットは、単一のメモリを構成することができる。
【0004】
いくつかの実施形態では、第1プレーンパイプラインコマンドは、第1プレーンパイプライン読み取りコマンドと第1プレーンパイプライン読み取り終了コマンドを含むことができる。例えば、第1ストレージユニットは、一度に第1プレーンパイプライン読み取りコマンドまたは第1プレーンパイプライン読み取り終了コマンドのいずれかを格納するように構成され得る。他の例では、第1ストレージユニットは、一度に1つだけの第1プレーンパイプライン読み取りコマンドを格納するように構成される。
【0005】
他の実施形態では、コントローラは、第1スイッチを含むことができる。第1スイッチは、第1プレーンパイプラインコマンドを受信するために、一端が第1ストレージユニットに、他端がホストに、電気的に接続され得る。他の実施形態では、第1スイッチは、第1ストレージユニットが空になった後、閉じているように構成され得る。
【0006】
第1ストレージユニットは、キューとされ得る。他の実施形態では、フラッシュメモリは、NANDフラッシュメモリとされ得る。さまざまな実施形態において、フラッシュメモリは、第1プレーンと第2プレーンに対して同期的に読み取りプロセスを実行することができる。いくつかの他の実施形態では、ホストは、第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドを非同期的に発行することができる。
【0007】
本開示の態様により、ホストから発行されたコマンドをマルチプレーンフラッシュメモリに出力する方法も提供される。例えば、この方法は、ホストから発行された第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドを、それぞれ第1ストレージユニットと第2ストレージユニットに格納することを含むことができる。この方法はさらに、読み取りプロセスがフラッシュメモリの第1プレーンと第2プレーンに対して実行されていないときに、第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドをフラッシュメモリのそれぞれ第1プレーンと第2プレーンに出力することを含むことができる。いくつかの実施形態では、第1プレーンパイプラインコマンドは、第1ストレージユニットが空になった後、第1ストレージユニットに格納される。
【0008】
本開示の例示的な実施形態は、以下の詳細な説明を添付の図とともに読むと最もよく理解される。さまざまな特徴が、業界の標準的な慣行に従って、一定の縮尺で描かれていないことに注意されたい。実際、さまざまな特徴の寸法が、議論を明確にするために、任意に増減されることがある。
【図面の簡単な説明】
【0009】
【
図1】本開示のいくつかの実施形態による例示的なNANDフラッシュメモリセルを示す。
【
図2】本開示のいくつかの実施形態による例示的なNANDフラッシュメモリブロックを示す。
【
図3】本開示のいくつかの実施形態による例示的なマルチプレーンNANDフラッシュメモリダイを示す。
【
図4】本開示のいくつかの実施形態による例示的なソリッドステートドライブ(SSD)を示す。
【
図5】本開示のいくつかの実施形態による擬似非同期マルチプレーン読み取りプロセスが描かれた例示的なタイミング図を示す。
【
図6】本開示のいくつかの実施形態による擬似非同期マルチプレーン読み取りプロセスが実装された例示的なインターフェースの機能ブロック図を示す。
【
図7】本開示のいくつかの実施形態による例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【0010】
以下の開示により、提示される発明の対象の異なる特徴を実装するための多くの異なる実施形態または例が提供される。本開示を簡略化するために、構成要素と配列の特定の例が以下に説明される。もちろん、これらは単なる例であり、限定的であることは意図されていない。例えば、以下の説明において、第1の特徴が第2の特徴の上方または上面に形成されることには、第1および第2の特徴が直接接触して形成される実施形態が含まれ得て、第1および第2の特徴が直接接触しなくてもよいように両者の間に追加の特徴が形成されてもよい実施形態も含まれ得る。さらに、本開示ではさまざまな例において参照番号および/または文字が繰り返されることがある。この繰り返しは、単純かつ明確であることが目的とされていて、議論されるさまざまな実施形態および/または構成の間の関係がそれ自体において決定されるものではない。
【0011】
さらに、「の下(beneath)」、「より下(below)」、「下方(lower)」、「より上(above)」、「上方(upper)」などの空間的に相対的な用語は、図に描かれているような、ある要素または特徴と別の要素または特徴との関係を説明するために、説明を容易にするために、本明細書において使用されることがある。空間的に相対的な用語は、図に描かれている向きに加えて、使用中または動作中のデバイスのさまざまな向きを包含することが意図されている。装置は別の方向に向けられてもよく(90度回転または他の方向に)、本明細書において使用される空間的に相対的な記述子も同様にそれに従って解釈され得る。
【0012】
本開示のいくつかの実施形態による擬似非同期マルチプレーン独立(PAMPI)読み取り方式が、提案され得る。擬似非同期マルチプレーン独立読み取り方式では、ホストによって同期的または非同期的に発行され得る第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドが、マルチプレーンフラッシュメモリの第1プレーンと第2プレーンに対して同期的に実行され得る。本開示のいくつかの実施形態による擬似非同期マルチプレーン読み取りプロセスを実装するためのインターフェースが、提案され得る。例えば、インターフェースは、ホストとマルチプレーンフラッシュメモリとの間に配置され得る。他の実施形態では、インターフェースは、読み取りプロセスが第1プレーンおよび/または第2プレーンに対して実行されるときに、第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドを格納することができ、それらを第1プレーンと第2プレーンに同期的に出力することができる。したがって、第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドは、ホストによって非同期的に発行された場合でも、第1プレーンと第2プレーンに対して同期的に実行され得る。
【0013】
高速で回転する磁気ディスク上の位置にアクセスするために物理的に移動しなければならない機械的なドライブヘッドを使用することによって動作する従来のハードディスクドライブ(HDD)と比較して、ソリッドステートドライブ(SSD)は、フラッシュメモリの薄いくさびに過ぎず、可動部品がなく、フラッシュメモリに保存されたデータがSSDの任意の場所に同じ速度と精度でアクセスされ得る。したがって、SSDランダム読み取りプロセスは、従来のHDDランダム読み取りプロセスよりも10~50倍高速に実行され得る。
【0014】
一般に、フラッシュメモリは、NORとNANDの2種類がある。いくつかの要因によって、NORよりもNANDのフラッシュメモリセルを使用することが推奨される。例えば、NORフラッシュメモリセルは別個の金属を接触させる必要があるので、標準のNANDフラッシュメモリセルは、標準のNORフラッシュメモリセルよりも小さく、例えば4F2対10F2であり、NORフラッシュメモリセルより高密度に、結果的に安価に作成され得る。
【0015】
図1は、本開示のいくつかの実施形態による例示的なNANDフラッシュメモリセル100を示す。NANDセル100は、それぞれ上下が上部酸化物絶縁層140と下部酸化物絶縁層120によって分離された浮遊ゲート130に電荷が蓄積され得る。浮遊ゲート130が充電されると、NANDセル100をプログラムすることができ、これは2進値「0」を表す。浮遊ゲート130が電荷を持たないと、NANDセル100を消去することができ、これは2進値「1」を表す。NANDセル100をプログラムするためには、高電圧を上部酸化物絶縁層140の上の制御ゲート150に印加することができ、電子が下部酸化物絶縁層120を通して「トンネリング」することによって下部酸化物絶縁層120の下のシリコン基板110から浮遊ゲート130に移動する。電子は、その後、最大数年間にわたって、浮遊ゲート130にトラップされ得る。NANDセル100を消去するためには、高電圧をシリコン基板110に印加することができ、電子が浮遊ゲート130からシリコン基板110に移動する。NANDセル100を読み取るためには、読み取り基準電圧が制御ゲート150に印加され得る。ソース160とドレイン170との間に電流が流れると、浮遊ゲート130は充電されず、2進値「1」が読み取られる。ソース160とドレイン170との間に電流が流れないと、浮遊ゲート130は充電され、2進値「0」が読み取られる。
【0016】
図1に示す例は、シングルレベルセル(SLC)NANDセルで、1ビットのデータが格納され得る。また、マルチレベルセル(MLC)NANDセル、トリプルレベルセル(TLC)NANDセル、クアッドレベルセル(QLC)NANDセルもあり、それぞれ2ビット、3ビット、4ビットのデータが格納され得る。データの1、2、3、4ビットは、それぞれ2、4、8、16の異なる電圧レベルに対応する。各NANDセルに印加される最大電圧は、ほぼ同じである。したがって、SLC_NANDセルは、その2つの電圧レベル間に十分に大きなガードバンドを持つことができ、極端な温度やその他の悪影響、劣化率などに、MLC、TLC、およびQLC_NANDセルよりもよく耐えることができる。
【0017】
図2は、本開示の例示的な実施形態による例示的なNANDフラッシュメモリブロック200を示す。ブロックは、消去するための最小単位である。NANDブロック200は、配列状に配置された複数のSLC_NANDセル100を含むことができる。他の実施形態では、NANDブロック200は、複数のMLC、TLCまたはQLC_NANDセルを含むことができる。NANDブロック200内のストリング210(列として示される)は、読み取るための最小単位であり、各々が互いに直列に接続された通常32個または64個のNANDセル100を含むことができ、各NANDセル100はデータのビットを表す(2進値「0」または「1」)。
【0018】
図に示すように、各ストリング210は、グラウンド選択線(GSL)260によって制御されるGSLトランジスタ220を介して一端で共通ソース線250に接続され、ストリング選択線(SSL)280によって制御されるSSLトランジスタ230を介して他端でビット線270に接続される。各ストリング210の動作は、それらのGSLトランジスタ220とSSLトランジスタ230をオンまたはオフにすることによって制御され得る。例えば、SSLトランジスタ230は、ストリングの動作を可能にするために使用され得て、GSLトランジスタ220は、ストリングを読み取りプロセス中にグラウンドに接続するために使用され得る。ストリングのシングルNANDセルを読み取るためには、同じストリングの残りのすべてのNANDセル(すなわち読み取られていないNANDセル)に(例えば、通過電圧をそこに印加することによって)スイッチを入れて、読み取られているシングルNANDセルの2進値がストリングに接続されたセンスアンプ(図示せず)へ通過するようにしなければならない。NANDブロック200内のページ240(行として示される)は、プログラムするための最小単位であり、各々が同じワード線290を共有するNANDセル100を通常少なくとも32,768(すなわち4K)含むことができる。
【0019】
図3は、本開示の例示的な実施形態による例示的なマルチプレーンNANDフラッシュメモリダイ300を示す。NANDダイ300は、互いの上に積み重ねることができる複数のNANDフラッシュメモリプレーン_0~_n-1を含むことができる。例えば、NANDダイ300は、2つのプレーン、例えばプレーン_0 310およびプレーン_1 311を含むことができる。NANDダイ300はまた、4つまたは6つのプレーンを含むことができる。各NANDプレーン_0~_n-1は、複数のNANDブロック200、例えばNANDブロック#0~#m-1を含むことができる。1つまたは複数のNANDダイ300は、NANDフラッシュメモリチップを構成することができる。SSDは、複数のチャネルを使用してNANDフラッシュメモリコントローラに接続された複数のNANDチップを含むことができる。
【0020】
図4は、本開示の例示的な実施形態による例示的なSSD 400を示す。SSD 400は、ホストバス420を介してホスト410と通信することができる。例えば、ホスト410は、ホストバス420を介してSSD 400にコマンドとデータを送信することができ、SSD 400は、ホストバス420を介してホスト410にデータを送信することができる。ホスト410は、コンピュータとされ得る。ホストバス420は、ユニバーサルシリアルバス(USB)、シリアルATA(advanced technology attachment)(SATA)、パラレルATA(PATA)、またはPCI(peripheral component interconnect)エクスプレス(PCIe)のいずれかとされ得る。SSD 400は、NANDダイ300(例えば、プレーン_0 310やプレーン_1 311)、I/Oおよびロジックコントローラ430、周辺回路440などを含むことができる。
【0021】
周辺回路440は、アドレスレジスタ、ステータスレジスタ、論理制御回路、入出力回路、レディ/ビジー制御回路(図示せず)などを含むことができ、I/Oおよびロジックコントローラ430と、行デコーダ401や411、列デコーダ402や412、プレーン_0 310やプレーン_1 311との間に結合され得る。周辺回路440は、I/Oおよびロジックコントローラ430から、チップイネーブル信号、コマンドラッチイネーブル信号、アドレスラッチイネーブル信号、書き込みイネーブル信号、読み取りイネーブル信号など、さまざまな制御信号を受信することができる。周辺回路440はさらに、書き込みデータをI/Oおよびロジックコントローラ430からプレーン_0 310とプレーン_1 311に、読み取りデータをプレーン_0 310とプレーン_1 311からI/Oおよびロジックコントローラ430に送信することができる。行デコーダ401と411は、それぞれプレーン_0 310とプレーン_1 311のターゲットメモリセルに対応するワード線を選択することができ、選択されたワード線と他の選択されていないワード線に所望の電圧を印加することができる。ページレジスタ403と413は、プレーン_0 310とプレーン_1 311の動作中に、データを保持することができる。キャッシュ_0 404とキャッシュ_1 414は、それぞれのセンスアンプ(図示せず)に含めることができ、それぞれプレーン_0 310とプレーン_1 311からデータを読み取ってそれらのデータをI/Oおよびロジックコントローラ430に出力することができ、書き込みデータをI/Oおよびロジックコントローラ430からそれぞれプレーン_0 310とプレーン_1 311に送信することができる。
【0022】
I/Oおよびロジックコントローラ430は、ウェアレベリング、エラーチェックと訂正、書き込み中断、欠陥管理、ガベージコレクションなどのさまざまな機能を備えることができる。I/Oおよびロジックコントローラ430はまた、ホスト410から送信されたコマンドに応答して、NANDダイ300のプレーン_0 310とプレーン_1 311を制御して、読み取り、書き込み、消去などを行うことができる。I/Oおよびロジックコントローラ430はさらに、入出力信号をプレーン_0 310やプレーン_1 311との間で送受信することができる。例えば、I/Oおよびロジックコントローラ430は、さまざまな制御信号をプレーン_0 310および/またはプレーン_1 311に送信することができ、レディ/ビジー信号(例えば、
図5に示すtrue_rbn_p0やtrue_rbn_p1)をそれぞれプレーン_0 310とプレーン_1 311から受信することができる。レディ/ビジー信号は、プレーン_0 310やプレーン_1 311がレディ状態にあるかビジー状態にあるかを示すために使用され得る。レディ状態は、プレーン_0 310やプレーン_1 311がコマンドを受信してもよい状態を指すことができる。ビジー状態は、例えば読み取りプロセスがプレーン_0 310やプレーン_1 311に対して実行されていて、それらがコマンドを受信することができないなど、他の状態を指すことができる。例えば、読み取りプロセスがプレーン_0 310に対して実行されていてビジーでコマンドを受信することができない間、true_rbn_p0は「L」レベルにあると考えることができる。他の例では、プレーン_1 311が読み取りプロセスを終了していてコマンドを受信する準備ができている間、true_rbn_p1は「H」レベルにあると考えることができる。
【0023】
I/Oおよびロジックコントローラ430はまた、さまざまな制御信号をホスト410との間で送受信することができる。例えば、プレーン_0 310やプレーン_1 311から読み取られたデータは、キャッシュ(例えば、キャッシュ_0 404やキャッシュ_1 414)に一時的に格納され得て、cache_rbn_p0やcache_rbn_p1(
図5に示す)は、キャッシュ_0 404やキャッシュ_1 414がレディ状態またはビジー状態のいずれかをホスト410に通知するのに使用され得る。例えば、プレーン_0 310に対して実行された読み取りプロセスが終了しておらず、プレーン_0 310に格納されたデータがキャッシュ_0 404に完全にはキャッシュされておらず、かつホスト410がキャッシュ_0 404にキャッシュされたデータを取得することが許可されていない間、cache_rbn_p0は「L」レベルにあると考えることができる。他の実施形態では、プレーン_1 311に対して実行される読み取りプロセスが終了していて、プレーン_1 311に格納されたデータがキャッシュ_1に完全にキャッシュされていて、かつホスト410がキャッシュ_1 414にキャッシュされたデータを今や取得することが許可されている間、cache_rbn_p1は「H」レベルにあると考えることができる。
【0024】
読み取りプロセスは、例えば単一プレーン読み取りプロセスが、一度にNANDダイ300のプレーン_0 310とプレーン_1 311の1つに対して実行され得る。例えば、ホスト410は、ホストバス420を介してI/Oおよびロジックコントローラ430に、読み取りコマンド「00h」を発行して送信することができる。読み取りコマンド「00h」は、読み取りアドレス入力受付コマンドと同等とされ得て、読み取りプロセスを実行するようにNANDダイ300に指示するために使用され得る。次に、ホスト410は、プレーン_0 310を指定するための情報を含むアドレス情報add0_p0をI/Oおよびロジックコントローラ430に送信することができ、I/Oおよびロジックコントローラ430は、アドレス情報add0_p0をNANDダイ300のプレーン_0 310に送信することができる。その後、ホスト410は、読み取り開始コマンド「30h」をI/Oおよびロジックコントローラ430に発行して送信して読み取り開始コマンドとアドレス情報add0_p0に基づく読み取りプロセスとをプレーン_0 310に対して開始するように指示することができる。プレーン_0 310は、その後にレディ状態からビジー状態に入ることができ、これは「H」レベルから変化した「L」レベルのtrue_rbn_p0によって示される。読み取りプロセスが終了すると、プレーン_0 310は「H」レベルのtrue_rbn_p0によって示されるレディ状態に入ることができ、アドレス情報add0_p0によって指定されてプレーン_0 310に格納されたデータはキャッシュ_0 404にキャッシュされ得て、かつホスト410はキャッシュ_0 404に格納されたデータをその後に取り出すことができる。
【0025】
NANDダイ300のプレーン_0 310とプレーン_1 311も、同期的または非同期的なマルチプレーン読み取りプロセス中に読み取られ得て読み取りスループットを向上させることができ、それによって高いチップスループットがもたらされる。例えば、同期マルチプレーン独立(MPI)読み取り方式では、I/Oおよびロジックコントローラ430は、(ホスト410から発行された)読み取りコマンド「00h」をNANDダイ300に送信することができる。その後、I/Oおよびロジックコントローラ430は、プレーン_0 310を指定するための情報を含むアドレス情報add0_p0を送信することができる。次に、I/Oおよびロジックコントローラ430は、マルチプレーン読み取りコマンド「32h」をNANDダイ300に送信することができ、これは同期MPIプロセスを指示し、これまでに送信されたコマンドとアドレス情報が1つのプレーンに対応することを示すために使用される。続いて、I/Oおよびロジックコントローラ430は、読み取りコマンド「00h」、プレーン_1 311を指定するための情報を含むアドレス情報add1_p1、および読み取り開始コマンド「30h」を、プレーン_1 311に順次送信することができる。マルチプレーン読み取りプロセスは、プレーン_0 310とプレーン_1 311に対して同期的に実行され得て、その間にプレーン_0 310とプレーン_1 311はビジー状態に入ることができ、これらはそれぞれ「L」レベルのtrue_rbn_p0と「L」レベルのtrue_rbn_p1とによって示され得る。
【0026】
同期MPIプロセスが終了すると、プレーン_0 310とプレーン_1 311はレディ状態に入ることができ、これはそれぞれ「H」レベルのtrue_rbn_p0と「H」レベルのtrue_rbn_p1とによって示され、アドレス情報add0_p0によって指定されてプレーン_0 310に格納されたデータと、アドレス情報add1_p1によって指定されてプレーン_1 311に格納されたデータが、それぞれキャッシュ_0 404とキャッシュ_1 414にキャッシュされ得る。同期MPIプロセスが実現されるためには、読み取りコマンドが、プレーン_0 310とプレーン_1 311に出力される前に互いに調整されなければならず、これはホスト410にとってファームウェアが余分に複雑になることを伴う。
【0027】
非同期マルチプレーン独立(AMPI)読み取り方式では、ホスト410は、プレーン_0 310とプレーン_1 311のための2つの読み取りコマンドとそれらに対応するアドレス情報を、I/Oおよびロジックコントローラ430に異なる時間に発行して送信することができ、I/Oおよびロジックコントローラ430は、2つの非同期読み取りコマンドをプレーン_0 310とプレーン_1 311に送信して、プレーン_0 310とプレーン_1 311のそれぞれに対して読み取りプロセスを実行することができる。AMPIプロセスを実現するためには、プレーン_0 310とプレーン_1 311の独立したワード線バイアスをサポートする追加の回路が必要になる。さらに、プレーン_0 310とプレーン_1 311は、ノイズが注入されることを緩和するために、それぞれのチャージポンプとレギュレータを備えなければならない。高度な3D_NANDフラッシュメモリ設計では、サーキットアンダーアレイ(CUA)またはXタッキングが採用されていて、相補型金属酸化膜半導体(CMOS)回路がアレイの下に隠され、それによってダイ全体のサイズが縮小される。小さくて高密度なダイはすべての周辺回路を隠すことができないので、このようなダイに対してCUAまたはXタッキングを実行することは困難または不可能にさえなりつつある。
【0028】
図5は、本開示の例示的な実施形態による擬似非同期マルチプレーン独立(PAMPI)読み取り方式を描いた例示的なタイミング図を示す。擬似非同期マルチプレーン独立読み取り方式では、読み取りコマンドは、ホスト410から異なるプレーンに対して同期的または非同期的に発行されて実行され得るが、SSD 400に対して同期的に実行され得る。例えば、プレーン_0 310とプレーン_1 311に対して実行される同期的または非同期的な読み取りコマンドは、読み取りプロセスがプレーン_0 310および/またはプレーン_1 311に対して実行されているときに、別個のストレージユニット、例えばそれぞれキュー_0とキュー_1に格納され得て、その後、プレーン_0 310とプレーン_1 311に対して読み取りプロセスが実行されていないときに、プレーン_0 310とプレーン_1 311に同期的に出力されてそれらに対して実行され得る。
【0029】
最初は、キュー_0とキュー_1は空とされ得て、キュー_0とキュー_1がビジー状態かレディ状態かを示すqueue_rbn_p0とqueue_rbn_p1はいずれも「H」レベルとされ得て、それによりキュー_0とキュー_1がいずれもレディ状態にあって読み取りコマンドを受信して格納する準備ができていることが示される。読み取りプロセスがプレーン_0 310とプレーン_1 311に対して実行されず、プレーン_0 310とプレーン_1 311がビジー状態かレディ状態かを示すtrue_rbn_p0とtrue_rbn_p1はいずれも「H」レベルにあり、それによりプレーン_0 310とプレーン_1 311がレディ状態にあってそれらに対して読み取りプロセスが実行される準備ができていることが示される。かつcache_rbn_p0とcache_rbn_p1も「H」レベルにある。
【0030】
ステージ#1では、読み取りコマンドadd0_p0「38h」が受信され得て、プレーン_0 310に対して実行されることになる。例えば、
図5に示す読み取りコマンドadd0_p0「38h」は、プレーン_0パイプライン読み取りコマンドとそれに対応するプレーン_0アドレス情報を含むことができる。読み取りコマンドがなく、プレーン_0 310とプレーン_1 311に対して読み取りプロセスが実行されずにキュー_0とキュー_1がいずれも空なので、読み取りコマンドadd0_p0「38h」がプレーン_0 310に対して実行される。読み取りコマンドがキュー_0とキュー_1に格納されていないので、キュー_0とキュー_1はまだ空であり、queue_rbn_p0とqueue_rbn_p1はまだ「H」レベルにある。いくつかの実施形態では、破線で示すように、queue_rbn_p0は「L」レベルになってすぐに「H」レベルに戻ることになる。読み取りコマンドadd0_p0「38h」がプレーン_0 310に対して実行されているので、true_rbn_p0が「L」レベルになり、cache_rbn_p0も「L」レベルになり、それにより、プレーン_0アドレス情報によってアドレス指定されてプレーン_0 310に格納されたデータがキャッシュ_0 404にキャッシュされていて、キャッシュ_0 404がビジー状態にあってホスト410によってアクセスされる準備ができていないことが示される。読み取りコマンドがプレーン_1 311に対して実行されていないので、true_rbn_p1はまだ「H」レベルにあり、cache_rbn_p1もまだ「H」レベルにある。
【0031】
ステージ#2では、読み取りコマンドadd1_p1「38h」が受信され得て、プレーン_1 311に対して実行されることになる。例えば、
図5に示す読み取りコマンドadd1_p1「38h」は、プレーン_1パイプライン読み取りコマンドとそれに対応するプレーン_1アドレス情報を含むことができる。読み取りコマンドadd0_p0「38h」とそれに従って読み取りプロセスがプレーン_0 310に対して実行されるので、読み取りコマンドadd1_p1「38h」は実行されないことになってキュー_1に格納される。したがって、queue_rbn_p1は「L」レベルになり、それによりキュー_1が空でないことが示され、cache_rbn_p1は「L」レベルになり、それによりホスト410がそこから取り出す準備ができているデータがないことが示される。
【0032】
ステージ#3では、読み取りコマンドadd2_p0「38h」が受信され得て、プレーン_0 310に対して実行されることになる。例えば、
図5に示す読み取りコマンドadd2_p0「38h」は、プレーン_0パイプライン読み取りコマンドとそれに対応するプレーン_0アドレス情報を含むことができる。読み取りコマンドadd0_p0「38h」とそれに従って読み取りプロセスがプレーン_0 310に対して実行されるので、読み取りコマンドadd2_p0「38h」は実行されないことになってキュー_0に格納される。したがって、queue_rbn_p0は「L」レベルになり、それによりキュー_0が空でないことが示される。
【0033】
ステージ#4では、読み取りコマンドadd0_p0「38h」によるプレーン_0 310に対する読み取りプロセスが終了していて、cache_rbn_p0が「H」レベルになり、それにより、プレーン_0アドレス情報によってアドレス指定されてプレーン_0 310に格納されたデータがキャッシュ_0 404にキャッシュされていて、キャッシュ_0 404はレディ状態にあってホスト410によってアクセスされる準備ができていることが示される。いくつかの実施形態では、読み取りコマンドadd0_p0「38h」によってプレーン_0 310に対して実行される読み取りプロセスが終了した後、true_rbn_p0は破線で示すように「H」レベルになってもよい。他の実施形態では、読み取りコマンドadd0_p0「38h」が完全に実行された後、キャッシュ_0 404とキャッシュ_1 414にそれぞれ格納された読み取りコマンドadd2_p0「38h」とadd1_p1「38h」が直ちに実行されるので、プレーン_0 310に対して実行された放電プロセスはまだ終了しておらず、true_rbn_p0はまだ「L」レベルにあり得る。読み取りコマンドadd2_p0「38h」とadd1_p1「38h」がそれぞれプレーン_0とプレーン_1に対して実行された後、queue_rbn_p0とqueue_rbn_p1は再び「H」レベルになり、それにより両者が空であって読み取りコマンドを格納する準備ができていることが示される。さらに、読み取りコマンドadd1_p1「38h」がプレーン_1 311に対して実行されるので、true_rbn_p1が「L」レベルになる。したがって、読み取りコマンドadd2_p0「38h」とadd1_p1「38h」は、非同期的に受信されるが、同期的に実行され得る。
【0034】
ステージ#5では、キュー_0にキャッシュされているデータがホスト410に出力され得て、読み取りコマンドadd3_p1「38h」が受信され得る。例えば、
図5に示す読み取りコマンドadd3_p1「38h」は、プレーン_1パイプライン読み取りコマンドとそれに対応するプレーン_1アドレス情報を含むことができる。読み取りコマンドadd2_p0「38h」とadd1_p1「38h」とそれに従って読み取りプロセスがそれぞれプレーン_0 310とプレーン_1 311とに対して実行されるので、読み取りコマンドadd3_p1「38h」は実行されないことになってキュー_1に格納される。したがって、queue_rbn_p1は「L」レベルになり、それによりキュー_1が空でないことが示される。
【0035】
ステージ#6では、読み取りコマンドadd4_p0「38h」が受信され得る。例えば、
図5に示す読み取りコマンドadd4_p0「38h」は、プレーン_0パイプライン読み取りコマンドとそれに対応するプレーン_0アドレス情報を含むことができる。読み取りコマンドadd2_p0「38h」とadd1_p1「38h」とそれに従って読み取りプロセスがそれぞれプレーン_0 310とプレーン_1 311とに対して実行されるので、読み取りコマンドadd4_p0「38h」は実行されないことになってキュー_0に格納される。したがって、queue_rbn_p0は「L」レベルになり、それによりキュー_0が空でないことが示される。プレーン_0アドレス情報によってアドレス指定されてプレーン_0に格納されたデータをキュー_0がキャッシュしようとしていて、ホスト410によってアクセスされ得ないので、cache_rbn_p0も読み取りコマンドadd4_p0「38h」が受信された後に「L」レベルになる。
【0036】
ステージ#7では、読み取りコマンドadd2_p0「38h」とadd1_p1「38h」による、それぞれプレーン_0 310とプレーン_1 311に対する読み取りプロセスが終了とされ得て、cache_rbn_p0とcache_rbn_p1が「H」レベルになることができ、それにより、プレーン_0アドレス情報によってアドレス指定されてプレーン_0 310に格納されたデータと、プレーン_1アドレス情報によってアドレス指定されてプレーン_1 311に格納されたデータが、それぞれキャッシュ_0 404とキャッシュ_1 414にキャッシュされていて、キャッシュ_0 404とキャッシュ_1 414はレディ状態にあってホスト410によってアクセスされる準備ができていることが示される。読み取りコマンドadd2_p0「38h」とadd1_p1「38h」による読み取りプロセスが終了した後、キャッシュ_0 404とキャッシュ_1 414にそれぞれ格納された読み取りコマンドadd4_p0「38h」とadd3_p1「38h」が出力されて実行され、queue_rbn_p0とqueue_rbn_p1が「H」レベルになり、それによりキュー_0とキュー_1が空であって読み取りコマンドを受信して格納する準備ができていることが示される。読み取りコマンドadd4_p0「38h」とadd3_p1「38h」も、非同期的に受信されるが同期的に実行され得る。
【0037】
ステージ#8では、キュー_0とキュー_1にキャッシュされたデータが、ホスト410に出力され得る。
図5は、読み取りコマンドadd1_p1「38h」に応答してプレーン_1 311から読み取られてキュー_1にキャッシュされたデータが、読み取りコマンドadd2_p0「38h」に応答してプレーン_0 310から読み取られてキュー_0にキャッシュされたデータよりも前に出力され得ることを示す。いくつかの実施形態では、読み取りコマンドadd2_p0「38h」に応答してプレーン_0 310から読み取られてキュー_0にキャッシュされたデータも、読み取りコマンドadd1_p1「38h」に応答してプレーン_1 311から読み取られてキュー_1にキャッシュされたデータよりも前に出力され得る。
【0038】
ステージ#9では、読み取りコマンドaddx_p0「3Dh」が受信され得て、プレーン_0 310に対して実行されることになる。例えば、
図5に示す読み取りコマンドaddx_p0「3Dh」は、プレーン_0パイプライン読み取り終了コマンドを含むことができる。いくつかの実施形態では、読み取りコマンドaddx_p0「3Dh」は、いかなるアドレス情報にも対応しない。読み取りコマンドadd4_p0「38h」とadd3_p1「38h」による読み取りプロセスが、それぞれプレーン_0 310とプレーン_1 311に対して実行されているので、読み取りコマンドaddx_p0「3Dh」は実行されないことになってキュー_0に格納される。したがって、queue_rbn_p0は「L」レベルになり、それによりキュー_0は空でないことが示され、cache_rbn_p0は「L」レベルになり、それによりホスト410がそこから取り出す準備ができているデータがないことが示される。
【0039】
ステージ#10では、読み取りコマンドadd5_p1「38h」が受信され得る。例えば、
図5に示す読み取りコマンドadd5_p1「38h」は、プレーン_1パイプライン読み取りコマンドとそれに対応するプレーン_1アドレス情報を含むことができる。読み取りコマンドadd4_p0「38h」とadd3_p1「38h」とそれに従って読み取りプロセスがそれぞれプレーン_0 310とプレーン_1 311に対して実行されているので、読み取りコマンドadd5_p0「38h」は実行されないことになってキュー_1に格納される。したがって、queue_rbn_p1は「L」レベルになり、それによりキュー_1が空でないことが示される。cache_rbn_p1も読み取りコマンドadd5_p1「38h」が受信された後に「L」レベルになり、これは読み取りコマンドadd3_p1「38h」によって実行される読み取りプロセス中に、プレーン_1 311に格納されたデータをキャッシュ_1 414がキャッシュしようとしていて、ホスト410によってアクセスされ得ないからである。
【0040】
ステージ#11では、読み取りコマンドadd4_p0「38h」とadd3_p1「38h」による、それぞれプレーン_0 310とプレーン_1 311に対する読み取りプロセスが終了とされ得て、その後にcache_rbn_p0とcache_rbn_p1は「H」レベルになり、それにより、プレーン_0アドレス情報によってアドレス指定されてプレーン_0 310に格納されたデータと、プレーン_1アドレス情報によってアドレス指定されてプレーン_1 311に格納されたデータが、それぞれキャッシュ_0 404とキャッシュ_1 414にキャッシュされていて、キャッシュ_0 404とキャッシュ_1 414がいずれもレディ状態にあってホスト410によってアクセスされる準備ができていることが示される。キュー_0に格納された読み取りコマンドaddx_p0「3Dh」と、キュー_1に格納された読み取りコマンドadd5_p1「38h」が、その後にそれぞれプレーン_0 310とプレーン_1 311に対して実行され得る。したがって、queue_rbn_p0とqueue_rbn_p1が「H」レベルになり、それによりキュー_0とキュー_1が空であって読み取りコマンドを受信して格納する準備ができていることが示される。読み取りコマンドaddx_p0「3Dh」がプレーン_0に対して実行された後は、読み取りコマンドがキュー_0に格納されておらず実行されないことになり、放電プロセスがプレーン_0 310に対して完全に実行され得て、その後にtrue_rbn_p0が「H」レベルになる。
【0041】
ステージ#12では、キュー_0とキュー_1にキャッシュされたデータがホスト410に出力される。
図5は、読み取りコマンドadd4_p0「38h」に応答してプレーン_0 310から読み取られてキュー_0にキャッシュされたデータが、読み取りコマンドadd3_p1「38h」に応答してプレーン_1 311から読み取られてキュー_1にキャッシュされたデータよりも前に出力されることを示す。いくつかの実施形態では、読み取りコマンドadd3_p1「38h」に応答してプレーン_1 311から読み取られてキュー_1にキャッシュされたデータも、読み取りコマンドadd4_p0「38h」に応答してプレーン_0 310から読み取られてキュー_0にキャッシュされたデータよりも前に出力され得る。
【0042】
ステージ#13では、読み取りコマンドaddx_p1「3Dh」が受信され、プレーン_1 311に対して実行されることになる。例えば、
図5に示す読み取りコマンドaddx_p1「3Dh」は、プレーン_1パイプライン読み取り終了コマンドを含むことができる。いくつかの実施形態では、読み取りコマンドaddx_p1「3Dh」は、いかなるアドレス情報にも対応しない。読み取りコマンドadd5_p1「38h」によるプレーン_1 311に対する読み取りプロセスがまだ実行中なので、読み取りコマンドaddx_p1「3Dh」は実行されないことになってキュー_1に格納される。したがって、queue_rbn_p1は「L」レベルになり、それによりキュー_1が空でないことが示され、cache_rbn_p1は「L」レベルになり、それにより、読み取りコマンドadd5_p1「38h」に応答してプレーン_1 311から読み取られたデータをキュー_1がキャッシュしようとしていて、ホスト410がそこから取り出す準備ができているデータがないことが示される。
【0043】
ステージ#14では、読み取りコマンドadd5_p1「38h」による読み取りプロセスが終了していて、その後にcache_rbn_p1が「H」レベルになり、それにより、プレーン_1アドレス情報によってアドレス指定されてプレーン_1 311に格納されたデータがキャッシュ_1 414にキャッシュされていて、キャッシュ_1 414はレディ状態にあってホスト410によってアクセスされる準備ができていることが示される。キュー_1に格納された読み取りコマンドaddx_p1「3Dh」が、その後にプレーン_1 311に対して実行される。したがって、queue_rbn_p1は「H」レベルになり、それによりキュー_1が空であって読み取りコマンドを受信して格納する準備ができていることが示され、true_rbn_1も「H」レベルになる。
【0044】
PAMPI読み取り方式は、さまざまなプレーン構成において使用され得る。Table 1(表1)は、マルチプレーンフラッシュメモリ400のいくつかの可能な構成を列挙する。マルチプレーンフラッシュメモリ400の面積コストは下方に増加し、それによりフラッシュメモリ400が採用するPAMPIプロセスが多いほどフラッシュメモリ400のコストが低くなることが示される。
【0045】
【0046】
したがって、本開示のいくつかの実施形態によるPAMPI読み取り方式は、従来のAMPI読み取り方式と比べて、回路面積コストを大幅に削減することができる。さらに、ホスト410は、それ自体にとってファームウェアが余分に複雑になってオーバーヘッドを伴うような、異なるプレーンに対する読み取り要求の調整を行う必要がない。PAMPI読み取り方式は、ランダム読み取りのパフォーマンスも大幅に向上させることができる。PAMPI読み取り方式は、AMPI読み取り方式とは異なり、異なるプレーンに対しての読み取りプロセスが内部で同期的に実行されるので、異なるプレーン間のノイズ干渉を受けない。
【0047】
図6は、本開示のいくつかの実施形態による例示的なインターフェース600の機能ブロック図を示す。インターフェース600は、擬似非同期マルチプレーン読み取りプロセスを実装することができる。いくつかの実施形態では、インターフェース600は、スタンドアロング(stand-along)とされ得てホスト410とSSD 400との間に配置され得る。例えば、ホスト410は、コンピュータとされ得て、第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドを同期的または非同期的に発行することができる。他の実施形態では、インターフェース600は、SSD 400に組み込まれ得る。例えば、SSD 400は、NANDフラッシュメモリなどのフラッシュメモリとされ得る。いくつかの実施形態では、フラッシュメモリ400は、第1プレーン310と第2プレーン311に対して同期的に読み取りプロセスを実行することができる。インターフェース600は、第1ストレージユニット610(例えば、第1メモリ)、第2ストレージユニット620(例えば、第2メモリ)、およびコントローラ630を含むことができる。一実施形態では、コントローラ630は、I/Oおよびロジックコントローラ430とは別個のものとされ得る。他の実施形態では、コントローラ630とI/Oおよびロジックコントローラ430は、単一の処理チップに含めることができる。いくつかの実施形態では、第1ストレージユニット610は、第2ストレージユニット620とは別個のものとされ得る。他の実施形態では、第1ストレージユニット610と第2ストレージユニット620は、単一のストレージユニットに含めることができる。例えば、第1ストレージユニット610は、キュー(例えば、
図6に示すキュー_0)とされ得て、第2ストレージユニット620も、キュー(例えば、
図6に示すキュー_1)とされ得る。さまざまな実施形態において、第1ストレージユニット610と第2ストレージユニット620のうちの少なくとも1つは、フラッシュメモリ400に含めることができる。
【0048】
第1ストレージユニット610は、ホスト410から発行された第1プレーンパイプラインコマンドを受信して格納し、第1プレーンパイプラインコマンドをフラッシュメモリ400の第1プレーン(例えば、プレーン_0 311)に出力するように構成され得る。例えば、第1プレーンパイプラインコマンドは、第1プレーンパイプライン読み取りコマンド(例えば、add0_p0「38h」、add2_p0「38h」、add4_p0「38h」など)や第1プレーンパイプライン読み取り終了コマンド(例えば、addx_p0「3Dh」)を含むことができる。いくつかの実施形態では、第1ストレージユニット610は、空でないときはもはや第1プレーンパイプラインコマンドを格納することができない。例えば、第1ストレージユニット610は、一度に第1プレーンパイプライン読み取りコマンドまたは第1プレーンパイプライン読み取り終了コマンドのいずれかを格納することができる。他の例では、第1ストレージユニット610は、一度に1つだけの第1プレーンパイプライン読み取りコマンドを格納することができる。
【0049】
第2ストレージユニット620は、ホスト410から発行された第2プレーンパイプラインコマンドを受信して格納し、第2プレーンパイプラインコマンドをフラッシュメモリ400の第2プレーン(例えば、プレーン_1 311)に出力するように構成され得る。例えば、第2プレーンパイプラインコマンドは、第2プレーンパイプライン読み取りコマンド(例えば、add1_p1「38h」、add3_p1「38h」、add5_p1「38h」など)や第2プレーンパイプライン読み取り終了コマンド(例えば、addx_p1「3Dh」)を含むことができる。いくつかの実施形態では、第2ストレージユニット620は、空でないときはもはや第2プレーンパイプラインコマンドを格納することができない。例えば、第2ストレージユニット620は、一度に第2プレーンパイプライン読み取りコマンドまたは第2プレーンパイプライン読み取り終了コマンドのいずれかを格納することができる。他の例では、第2ストレージユニット620は、一度に1つだけの第2プレーンパイプライン読み取りコマンドを格納することができる。
【0050】
コントローラ630は、第1ストレージユニット610と第2ストレージユニット620に電気的に接続され得て、読み取りプロセスがフラッシュメモリ400の第1プレーン310と第2プレーン311に対して実行されていないときに、第1プレーンパイプラインコマンドを第1プレーン310に出力し、第2プレーンパイプラインコマンドを第2プレーン311に出力するように構成され得る。例えば、読み取りプロセスがフラッシュメモリ400のプレーン_0 310に対して実行されていないことを示す「プレーン_0に対する読み取りプロセス」という信号と、読み取りプロセスがフラッシュメモリ400のプレーン_1 311に対して実行されていないことを示す「プレーン_1に対する読み取りプロセス」という信号を受信すると、コントローラ630は、第1ストレージユニット610に格納された第1プレーンパイプラインコマンドと第2ストレージユニット620に格納された第2パイプラインコマンドがそれぞれプレーン_0 310とプレーン_1 311に対して同期的に出力されて実行されるように制御することができる。いくつかの実施形態では、コントローラ630は、ANDゲート633を含むことができ、そうすることで、読み取りプロセスがフラッシュメモリ400のプレーン_0 310に対して実行されていないことが信号「プレーン_0に対する読み取りプロセス」によって示され(例えば、信号「プレーン_0に対する読み取りプロセス」が「H」レベルにある)、読み取りプロセスがフラッシュメモリ400のプレーン_1 311に対して実行されていないことが信号「プレーン_1に対する読み取りプロセス」によって示される(例えば、信号「プレーン_1に対する読み取りプロセス」が「H」レベルにある)ときに、信号「プレーン_0に対する読み取りプロセス」と「プレーン_1に対する読み取りプロセス」を受信し、第1ストレージユニット610に格納された第1プレーンパイプラインコマンドと第2ストレージユニット620に格納された第2パイプラインコマンドがそれぞれプレーン_0 310とプレーン_1 311に対して同期的に出力されて実行されるように制御することができる。
【0051】
いくつかの実施形態では、コントローラ630は、さらに第1スイッチ631および/または第2スイッチ632を含むことができる。例えば、第1スイッチ631は、第1プレーンパイプラインコマンドを受信するために、一端が第1ストレージユニット610に、他端がホスト410に、電気的に接続され得て、第2スイッチ632は、第2プレーンパイプラインコマンドを受信するために、一端が第2ストレージユニット620に、他端がホスト410に、電気的に接続され得る。第1スイッチ631は、第1ストレージユニット610が空になった後、例えば「H」レベルにあるqueue_rbn_p0を受信することによって閉じることができ、第1プレーンパイプライン読み取りコマンド(例えば、add0_p0「38h」、add2_p0「38h」、add4_p0「38h」など)または第1プレーンパイプライン読み取り終了コマンド(例えば、addx_p0「3Dh」)のいずれかの第1プレーンパイプラインコマンドが第1ストレージユニット610に格納され得る。第2スイッチ632は、第2ストレージユニット620が空になった後、例えば「H」レベルにあるqueue_rbn_p1を受信することによって閉じることができ、第2プレーンパイプライン読み取りコマンド(例えば、add1_p1「38h」、add3_p1「38h」、add5_p1「38h」)または第2プレーンパイプライン読み取り終了コマンド(例えば、addx_p1「3Dh」)のいずれかの第2プレーンパイプラインコマンドが第2ストレージユニット620に格納され得る。
【0052】
本開示によるさまざまな実施形態において、インターフェース600のコントローラ630は、ソフトウェアと組み合わせて、またはソフトウェアなしで、本明細書に記載された機能とプロセスを実行するように構成された回路を含むことができる。さまざまな例において、コントローラ630は、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル拡張回路、もしくは同等のデバイス、またはそれらの組み合わせとされ得る。本開示によるいくつかの他の実施形態では、コントローラ630は、本明細書に記載されたさまざまな機能とプロセスを実行するためのプログラム指示を実行するように構成された中央処理装置(CPU)とされ得る。
【0053】
インターフェース600は、オプションとして、入出力デバイス、追加処理回路または信号処理回路などの他の構成要素を含むことができる。したがって、インターフェース600は、アプリケーションプログラムの実行や代替通信プロトコルの処理などの他の追加機能を実行することができてもよい。
【0054】
図7は、本開示のいくつかの実施形態による例示的な方法700を描いたフローチャートを示す。方法700は、ホスト410から同期的または非同期的に発行されたコマンドを、マルチプレーンフラッシュメモリ400に同期的に出力することができる。さまざまな実施形態において、示される方法700のいくつかのステップは、同時にもしくは示されるものとは異なる順序で実行され得るか、他の方法ステップによって置換され得るか、または省略され得る。追加の方法ステップも、必要に応じて実行され得る。方法700の態様は、前の図に描かれて説明されたインターフェース600などの電子デバイスによって実装され得る。
【0055】
ステップ710では、第1ストレージユニット610は、ホスト410から発行された第1プレーンパイプラインコマンドを受信して格納することができる。例えば、第1プレーンパイプラインコマンドは、第1プレーンパイプライン読み取りコマンド(例えば、add0_p0「38h」、add2_p0「38h」、add4_p0「38h」など)や第1プレーンパイプライン読み取り終了コマンド(例えば、addx_p0「3Dh」)を含むことができる。いくつかの実施形態では、第1ストレージユニット610は、一度に第1プレーンパイプライン読み取りコマンドまたは第1プレーンパイプライン読み取り終了コマンドのいずれかを格納することができる。他の実施形態では、第1ストレージユニット610は、一度に1つだけの第1プレーンパイプライン読み取りコマンドを格納することができる。
【0056】
ステップ720では、第2ストレージユニット620は、ホスト410から発行された第2プレーンパイプラインコマンドを受信して格納することができる。例えば、第2プレーンパイプラインコマンドは、第2プレーンパイプライン読み取りコマンド(例えば、add1_p1「38h」、add3_p1「38h」、add5_p1「38h」など)や第2プレーンパイプライン読み取り終了コマンド(例えば、addx_p1「3Dh」)を含むことができる。いくつかの実施形態では、第2ストレージユニット620は、一度に第2プレーンパイプライン読み取りコマンドまたは第2プレーンパイプライン読み取り終了コマンドのいずれかを格納することができる。他の実施形態では、第2ストレージユニット610は、一度に1つだけの第2プレーンパイプライン読み取りコマンドを格納することができる。
図7に示す例では、ステップ710にステップ720が続く。いくつかの実施形態では、ステップ710がステップ720に続くことができる、すなわち第2プレーンパイプラインコマンドが格納され、続いて第1プレーンパイプラインコマンドが格納される。他の実施形態では、ステップ710とステップ720は同期的に実行され得る、すなわち第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドがそれぞれ第1メモリと第2メモリに同期的に格納される。
【0057】
ステップ730では、第1ストレージユニット610に格納された第1プレーンパイプラインコマンドと第2ストレージユニット620に格納された第2プレーンパイプラインコマンドが、読み取りプロセスがフラッシュメモリ400の第1プレーン310と第2プレーン311に対して実行されていないときに、フラッシュメモリ400の第1プレーン310(すなわち、プレーン_0 310)と第2プレーン311(すなわち、プレーン_1 311)に同期的に出力され、それらに対して実行され得る。例えば、第1プレーンパイプラインコマンドと第2プレーンパイプラインコマンドは、それらがホスト410によって発行されて第1ストレージユニット610と第2ストレージユニット620において同期的に受信されるか非同期的に受信されるかに関わらず、第1プレーン310と第2プレーン311に同期的に出力され、それらに対して実行され得る。いくつかの実施形態では、第1プレーンパイプラインコマンドは、第1ストレージユニット610が空になった後、第1ストレージユニット610に格納され得る。他の実施形態では、第2プレーンパイプラインコマンドは、第2ストレージユニット620が空になった後、第2ストレージユニット620に格納され得る。
【0058】
本明細書に記載されたプロセスと機能は、1つまたは複数のプロセッサによって実行される場合に、各々のプロセスと機能を1つまたは複数のプロセッサに実行させることができるコンピュータプログラムとして実装され得る。コンピュータプログラムは、他のハードウェアとともに、またはその一部として供給される光記憶媒体またはソリッドステート媒体などの適切な媒体に保存されて配布されてもよい。コンピュータプログラムはまた、インターネットまたは他の有線もしくは無線電気通信システムなどを介して、他の形式で配布されてもよい。例えば、コンピュータプログラムは、例えばインターネットに接続されたサーバからなど物理媒体または分散システムを介して取得されることも含め、取得されて装置にロードされ得る。
【0059】
コンピュータプログラムは、コンピュータまたは任意の指示実行システムによって、またはそれらと接続して使用するためのプログラム指示を与えるコンピュータ可読媒体からアクセスされてもよい。コンピュータ可読媒体は、指示実行システム、装置、もしくはデバイスによって、またはそれらと接続して使用するためのコンピュータプログラムを保存、通信、伝達、または転送する任意の装置を含んでもよい。コンピュータ可読媒体は、磁気、光学、電子、電磁気、赤外線、もしくは半導体のシステム(もしくは装置もしくはデバイス)、または伝播媒体とされ得る。コンピュータ可読媒体は、半導体メモリまたはソリッドステートメモリ、磁気テープ、フロッピーディスク(リムーバブルコンピュータディスケット)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、磁気ディスクや光ディスクなどのコンピュータ可読非一時的記憶媒体を含んでもよい。コンピュータ可読非一時的記憶媒体は、磁気記憶媒体、光記憶媒体、フラッシュ媒体やソリッドステート記憶媒体をはじめ、すべての種類のコンピュータ可読媒体を含むことができる。
【0060】
以上は、当業者が本開示の態様をよりよく理解することができるように、いくつかの実施形態の特徴を概説したものである。当業者は、本明細書において導入された実施形態と同じ目的を実行し、かつ/または同じ利点を実現するために、他のプロセスや構造を設計または修正するための基礎として、本開示を容易に使用することができることを理解すべきである。当業者はまた、そのような同等の構成が本開示の精神と範囲から逸脱しないこと、それらが本開示の精神と範囲から逸脱することなくさまざまな変更、置換や改変を本明細書において行うことができることを認識すべきである。
【符号の説明】
【0061】
100 NANDフラッシュメモリセル
110 シリコン基板
120 下部酸化物絶縁層
130 浮遊ゲート
140 上部酸化物絶縁層
150 制御ゲート
160 ソース
170 ドレイン
200 NANDフラッシュメモリブロック
210 ストリング
220 グラウンド選択線(GSL)トランジスタ
230 ストリング選択線(SSL)トランジスタ
240 ページ
250 共通ソース線
260 グラウンド選択線
270 ビット線
280 ストリング選択線
290 ワード線
300 NANDフラッシュメモリダイ
310 プレーン_0
311 プレーン_1
400 ソリッドステートドライブ(SSD)
401 行デコーダ
402 列デコーダ
403 ページレジスタ
404 キャッシュ_0
410 ホスト
411 行デコーダ
412 列デコーダ
413 ページレジスタ
414 キャッシュ_1
420 ホストバス
430 I/Oおよびロジックコントローラ
440 周辺回路
600 インターフェース
610 第1ストレージユニット
620 第2ストレージユニット
630 コントローラ
631 第1スイッチ
632 第2スイッチ
633 ANDゲート
700 方法
710 ステップ
720 ステップ
730 ステップ
【国際調査報告】