(57)【要約】      （修正有）【課題】ソリッドステート記憶装置およびフラッシュトランスレーションレイヤの方法を提供する。【解決手段】１つのトランスレーションレイヤにおいて、セクタ識別子は初期化時にメモリデバイスの列挙によって構成される平行ユニット参照テーブルによって記憶個所へ変換される。各テーブルエントリは、発見された各動作中のメモリデバイスに対する通信路情報、チップイネーブル情報、論理ユニット情報、および平面情報から成る。セクタ識別子が受信されると、モジュロ関数は、セクタ識別子に関連付けられる記憶個所を決定するため参照テーブルのエントリに作用する。【選択図】図１
2014063511.tif 000002
【特許請求の範囲】
【請求項１】
ソリッドステートデバイスにおいてセクタ識別子と記憶個所との間での変換を行う方法であって、
前記ソリッドステートデバイス内のメモリデバイスを検出し、検出されたメモリデバイスの各々に対する記憶個所についての情報を決定することと、
前記検出されたメモリデバイス及び該検出されたメモリデバイスの各々に対する前記記憶個所についての情報を列挙するメモリデバイステーブルであって、該メモリデバイステーブルに列挙される各メモリデバイスに付与される唯一の連続したメモリデバイス識別子を含む前記メモリデバイステーブルを生成することと、
前記セクタ識別子に対応する論理ブロックアドレスとして前記セクタ識別子が使用され、前記セクタ識別子および前記メモリデバイスの記憶個所に対応する前記メモリデバイステーブルの前記メモリデバイス識別子に基づいて、前記検出されたメモリデバイスのうちの標的メモリデバイスの位置を特定することと、
前記標的メモリデバイスにおける論理ブロックアドレスのグループを含むデータブロック参照テーブルであって、各論理ブロックアドレスが、異なるデータブロック参照テーブルのエントリに関連付けられ、各エントリは、関連付けられた論理ブロックアドレスによって示される１つのメモリブロックの最高位にプログラムされるページの表示、及び、前記メモリブロックが順序付けられているときに該メモリブロックが順序付けられていることを示し、前記メモリブロックが順序付けられていないときに該メモリブロックが順序付けられていないことを示すよう設定されるステータス標識を含む、前記データブロック参照テーブルを生成することと、
前記セクタ識別子に対応する前記論理ブロックアドレスを含む前記データブロック参照テーブル内の標的データブロックの位置を特定することと、
を含む、方法。
【請求項２】
ホストコンピュータシステムから前記セクタ識別子を受信することをさらに含む、請求項１に記載の方法。
【請求項３】
検出された各メモリデバイスの前記記憶個所についての情報は、通信路情報、チップイネーブル情報、論理ユニット情報、および平面情報を含む、請求項１に記載の方法。
【請求項４】
複数のメモリデバイスは同一のチップイネーブル情報を有する、
請求項３に記載の方法。
【請求項５】
前記セクタ識別子に対応する前記論理ブロックアドレスは、１ページ当たりの論理ブロックアドレスの量及び前記ソリッドステートデバイスのページサイズに応じて複数回シフトされる、
請求項１に記載の方法。
【請求項６】
複数の異なるメモリデバイスは、同一の通信路情報を有する、
請求項３に記載の方法。
【請求項７】
前記検出されたメモリデバイス及び検出された各メモリデバイスに対する前記記憶個所についての情報を列挙するメモリデバイステーブルを生成することは、前記メモリデバイステーブルに、唯一の連続するメモリデバイス識別子及び検出された各メモリデバイスに対する前記記憶個所についての情報を書き入れることを含む、
請求項３に記載の方法。
【請求項８】
前記データブロック参照テーブルが生成される、
請求項１に記載の方法。
【請求項９】
モジュロ関数が、（Ｑ，Ｒ）＝ＭＯＤ（ＬＢＡ＞＞（ｊ＝３），Ｎ）を含み、Ｑは商であり、Ｒは剰余であり、Ｎは前記メモリデバイステーブル内のメモリデバイスの数であり、ｊは、１ページあたりのセクタ数２ｊのｊである、請求項８に記載の方法。
【請求項１０】
前記メモリデバイステーブルが、前記Ｒ番目の検出された前記メモリデバイスに対する前記記憶個所について情報を決定するために、前記Ｒによって指示される、請求項９に記載の方法。
【請求項１１】
前記データブロック参照テーブルが、（Ｒ＊ＢｌｏｃｋｓＰｅｒＰＵ）＋（Ｑ＞＞ｋ）によって生成され、ＢｌｏｃｋｓＰｅｒＰＵは、各メモリデバイス内のメモリブロックの数であり、ｋは１つのメモリブロックあたりのメモリのページ数を示す、請求項９に記載の方法。
【請求項１２】
ソリッドステートメモリデバイスであって、
少なくとも１つのメモリ配列と、
少なくとも１つの通信路を使用して前記少なくとも１つのメモリ配列と結合するコントローラであって、
前記ソリッドステートメモリデバイスの初期化で検出された前記少なくとも１つのメモリ配列および各メモリ配列の記憶個所が、連続した唯一の識別子を付与されて列挙されたメモリ配列参照テーブルの生成と、
ディスクドライブセクタ識別子および前記メモリ配列個所に対応する前記唯一の識別子に基づく前記少なくとも１つのメモリ配列のうちの標的メモリ配列の決定と、前記標的メモリ配列および前記標的メモリ配列に含まれるデータブロックの数である記憶密度を決定することに対応する前記標的メモリ配列内の標的データブロックおよび前記記憶個所の決定とに対応して、前記ディスクドライブセクタ識別子と前記記憶個所との間での変換とを行うように構成され、
さらに、前記標的メモリ配列のメモリブロックを含むデータブロック参照テーブルであって、該データブロック参照テーブルは、特定の論理ブロックアドレス、特定のメモリブロックの最高位にプログラムされるページの表示、およびステータス標識を含み、該ステータス標識は、前記メモリブロックが順序付けられているときに該メモリブロックが順序付けられていることを示し、前記メモリブロックが順序付けられていないときに該メモリブロックが順序付けられていないことを示すよう設定される、前記データブロック参照テーブルを生成するように構成される、コントローラと、
を含む、ソリッドステートメモリデバイス。
【請求項１３】
前記コントローラが、各メモリ配列に対する通信路情報、各メモリ配列に対するチップイネーブル情報、各メモリ配列に対する論理ユニット情報、および各メモリ配列に対する平面情報を列挙する前記メモリ配列参照テーブルを生成するようにさらに構成される、請求項１２に記載のソリッドステートメモリデバイス。
【請求項１４】
前記ディスクドライブセクタ識別子が、前記ディスクドライブセクタ識別子に対応する論理ブロックアドレスとして使用される、請求項１３に記載のソリッドステートメモリデバイス。
【請求項１５】
前記コントローラが、モジュロ関数の実行に応答し、前記データブロック参照テーブルを生成するようにさらに構成される、請求項１２に記載のソリッドステートメモリデバイス。
【請求項１６】
前記ディスクドライブセクタ識別子に対応する前記論理ブロックアドレスは、前記ターゲットメモリ配列の位置を生成するために、１ページ当たりの論理ブロックアドレスの量及び前記ソリッドステートメモリデバイスのページサイズに応じて複数回シフトされる、
請求項１４に記載のソリッドステートメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、記憶素子に関し、かつ特定の実施形態において、本発明は不揮発性記憶素子に関する。
【背景技術】
【０００２】
記憶素子としては、コンピュータまたは他の電子機器内の内部回路、半導体回路、集積回路を挙げることができる。メモリには、随時アクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、同期型ＤＲＡＭ（ＳＤＲＡＭ）、および不揮発性メモリ（例えばフラッシュメモリ）を含む、多数の異なる種類がある。
【０００３】
フラッシュメモリ素子は、電子回路の応用における不揮発性メモリとして広く使用されるようになってきた。フラッシュメモリ素子は、典型的に、高いメモリ密度および信頼性と、少ない電力消費を可能にする１トランジスタ型メモリセルを使用する。フラッシュメモリの一般的な用途しては、パーソナルコンピュータ、携帯情報端末（ＰＤＡ）、デジタルカメラ、および携帯電話が挙げられる。基本入出力システム（ＢＩＯＳ）などのプログラムコードおよびシステムデータは、典型的に、パーソナルコンピュータシステムにおける使用のためフラッシュメモリ素子に収容される。
【０００４】
フラッシュメモリ素子は、ソリッドステートドライブのようなソリッドステート記憶デバイスにも組み込まれることができる。ソリッドステートドライブは、各パッケージが多くのメモリダイから成る多数のフラッシュパッケージから成っている。ソリッドステートドライブは、大容量のデータを収容するため典型的に磁気ディスクまたは光ディスクを使用してきたハードディスクドライブに代わり、コンピュータ内で使用される。ソリッドステートドライブは、可動部分を使用しないのに対して、ハードディスクドライブは、磁気ディスク／光ディスクと相互に作用するため、複雑で繊細なドライブおよび書き込み／読み取りヘッドアセンブリを必要とする。従って、ソリッドステートドライブは、より振動および衝撃による損傷およびデータの損失に強い。
【０００５】
現在のソリッドステートドライブ技術の１つの欠点は、各ドライブに多数のメモリダイを使用することにより、ドライブの製造過程で欠陥のあるメモリダイを有する可能性が大幅に増加することである。従って、そのドライブは廃棄されるか、または高コストとなる選択肢として、ソリッドステートドライブコントローラが、システムがメモリダイにアクセスしている間、欠陥のあるメモリダイをマッピングし、補償しなければならない。
【０００６】
フラッシュトランスレーションレイヤ（ＦＴＬ）は、オペレーティングシステムと連動して動作し、オペレーティングシステムにフラッシュメモリをディスクドライブとして見せかける。これは、ＦＴＬがフラッシュイレースブロックから、セクタとしても知られている仮想の小規模なデータブロックを作成することで行われる。ＦＴＬはまた、ソリッドステートドライブ上のデータを管理し、マッピングするため、実際はシステムがウェアレベリング手法でフラッシュメモリの異なる個所に収容されていても、特定の個所で書き込まれたシステムに見せかける。
【０００７】
ＦＴＬは、これらの動作をディスクドライブの１つのセクタへのホスト要求から、ソリッドステートドライブのフラッシュメモリダイにある実際のデータの個所へマッピングするため、メモリ内に大規模テーブルを生成し、維持することにより実行する。これらのテーブルは非常に大規模になり得るため、システムＲＡＭはこれらを保持することができず、フラッシュメモリはテーブルの一部を保持するためオーバーフローメモリとして使用されなければならない。大規模テーブルは他のタスクに使用され得るＲＡＭを消費するだけでなく、ＦＴＬがテーブルデータを読み出すためフラッシュメモリにアクセスしなければならない場合、フラッシュメモリは読み取りおよび書き込みにおいてＲＡＭより遅いため、システム性能は大きく低下する。
【０００８】
上述の理由および本明細書を読解したとき当業者に明らかになる下記に述べる本発明の他の理由により、より効果的なフラッシュトランスレーションレイヤが当技術分野において求められている。
【図面の簡単な説明】
【０００９】
【図１】フラッシュトランスレーションレイヤを組み込んだソリッドステートドライブである。
【図２】図１のソリッドステートドライブに準じたフラッシュメモリ配列およびメモリ通信路を組み込む不揮発性メモリデバイスの一実施形態におけるブロック図である。
【図３】図１および図２の不揮発性メモリデバイスに準じた不揮発性メモリ配列の一部の一実施形態の概略図である。
【図４】フラッシュトランスレーションレイヤ法の一実施形態のフローチャートである。
【図５】図４のフラッシュトランスレーションレイヤ法に準じた平行ユニット参照テーブルの一実施形態である。
【図６】図４のフラッシュトランスレーションレイヤ法に準じた平行ユニット参照テーブルの他の実施形態である。
【図７】図４の方法に準じたデータブロック参照テーブル概念の略図である。
【発明を実施するための形態】
【００１０】
以下の発明を実施するための形態では、本明細書の一部を構成し、本発明を実施することができる特定の実施形態が例として示される、添付の図面を参照する。図面では、幾つかの図にわたって同じ数字が、実質上類似の構成材を表す。これらの実施形態は当業者が本発明を実施することができるよう、十分詳細に説明される。他の実施形態は利用することが可能で、構造上、論理上、および電気的な改変は、本発明の範囲から逸脱することなく行われ得る。以下の詳細な説明は、それゆえ、限定的な意味にとらわれることなく、本発明が特許請求の範囲及びその均等物によってのみ規定されることが意図されている。
【００１１】
図１は、フラッシュトランスレーションレイヤ（ＦＴＬ）１２０を組み込むソリッドステートドライブの一実施形態のブロック図である。図１のドライブはコントローラ１３０から成り、コントローラ１３０は１０１〜１０８の８つの通信路を有し、ＦＴＬ１２０を実行する。各通信路１０１〜１０８は、４つに並んだメモリパッケージに接続される。これらの装置はＮＡＮＤメモリパッケージとして示される。代替の実施形態は、他種のソリッドステートメモリを使用することができる。
【００１２】
ＮＡＮＤパッケージ内の単一のダイは、論理ユニット（ＬＵＮ）と呼ばれ、平行処理によってアクセスすることが可能である。ＬＵＮは多数の平面を含み、各平面は平行ユニット（ＰＵ）である。各ＰＵは、固有の数字または幾つかの他の一意の識別子を割当てられる。
【００１３】
各論理ユニットは、同じチップセレクト（ＣＥ）信号を共有する可能性があるため、各論理ユニットは、パッケージ内の多数のダイを識別するためアドレスビットによってアクセスされる。多数のダイは異なるコマンドを同時に平行して行うことができる。言い換えれば、１つのダイはもう一方が読取動作を行っている間、書き込み動作を行うことができる。ＦＴＬは、平面のみをＰＵと呼ぶことを意図している。ＦＴＬ法もまた、平行ユニットにおける異なる平面について言及している。各平面は、異なるメモリダイから成り得る。
【００１４】
図２は、集積回路ダイ上に組み込まれることできる不揮発性メモリデバイス２００の構成ブロック図を示す。一実施形態において、不揮発性メモリ２００は、フラッシュメモリである。
【００１５】
不揮発性メモリデバイス２００は、図３において示され、その後考察されているフローティングゲートメモリセルのような不揮発性メモリセルの配置２３０を含む。メモリ配列２３０は、アクセス線（例えばワード線）行およびデータ線（例えばビット線）列に層を成して配列される。一実施形態において、メモリ配列２３０のカラムは一連のメモリセルの列から成る。当技術分野で周知の通り、セルのビット線への接続は、配列がＮＡＮＤアーキテクチャか、ＡＮＤアーキテクチャか、またはＮＯＲアーキテクチャのいずれかであるかを決定する。
【００１６】
メモリ配列２３０は、メモリブロックとして構成されることができる。メモリブロックの数量は、典型的にメモリデバイスの大きさ（すなわち５１２ＭＢ、１ＧＢ）によって決定される。一実施形態において、各メモリブロックは６４ページで構成されている。
【００１７】
アドレスバッファ回路２４０は、Ｉ／Ｏ電気回路２６０を介して送られたアドレス信号をラッチするために設けられる。アドレス信号は、メモリ配列２３０にアクセスするため、行デコーダ２４４および列デコーダ２４６に受信され、解読される。アドレス入力接続数はメモリ配列２３０の密度およびアーキテクチャに依るということが本発明の利点であるということは当業者に理解されよう。すなわち、アドレス数は、メモリセル数増加およびバンク、ブロック数増加の両方により増加する。データもまた制御信号２７２のタイミングに基づき、Ｉ／Ｏ電気回路２６０を介して入力および出力される。
【００１８】
不揮発性メモリデバイス２００は、センスアンプ回路２５０を用いてメモリ配列のカラムでおこる電圧または電流の変化を感知することによりメモリ配列２３０内のデータを読み込む。一実施形態において、センスアンプ回路２５０は、メモリ配列２３０からデータ行を読み込みラッチするため結合される。データ入出力バッファ回路２６０は、複数のデータ接続２６２を使用して外部コントローラと通信するアドレス通信と同様に、双方向のデータ通信を含む。書き込み回路２５５は、メモリ配列へデータを書き込むために設けられている。
【００１９】
メモリ制御回路２７０は、外部コントローラから制御バス２７２上に与えられた信号をデコードする。これらの信号は、メモリデバイス２００の他の電気回路と同様にメモリ配列２３０上で動作を制御するために使用される他の制御信号と同様に、リード／ライト（Ｒ／反転Ｗ）情報、チップイネーブル（ＣＥ）情報、コマンドラッチイネーブル（ＣＬＥ）情報、アドレスラッチイネーブル（ＡＬＥ）情報を含む。一実施形態において、これらはアクティブロー信号であるが、代替の実施形態ではアクティブハイ信号を使用することができる。メモリ制御回路２７０は、状態機械、シーケンス制御装置、またはメモリ制御信号を生成する幾つかの他の種類のコントローラであってよい。
【００２０】
不揮発性メモリデバイス２００は、図１で示されるように、通信路２９０を使用して外部コントローラと通信する。一実施形態において、通信路２９０は、メモリアドレス、データ、およびソリッドステートドライブコントローラとメモリデバイス２００の間の制御信号から成る。図２の実施形態は、Ｉ／Ｏ電気回路２６０への１つのバスとして結合されたアドレスとデータを示す。代替の実施形態において、アドレスバスおよびデータバスは、メモリデバイス２００と別々の入出力である。
【００２１】
図３は、不揮発性メモリセルの一連の列を含むＮＡＮＤアーキテクチャメモリ配列の一部の概略図を示す。後記の説明はＮＡＮＤメモリデバイスに関して言及するが、本発明の実施形態はアーキテクチャなどに限定されない。
【００２２】
メモリ配列は、一連の列３０４、３０５のようなカラムに配列される不揮発性メモリセル３０１の配列（例えば、フローティングゲート）から成る。各セル３０１は、各一連の列３０４、３０５においてドレインからソースに結合されている。多数の一連の列３０４、３０５に跨がるワード線ＷＬ０-ＷＬ３１は、行におけるメモリセルの制御ゲートにバイアスをかけるため、行における各メモリセルの制御ゲートに接続される。ビット線ＢＬ１、ＢＬ２は、最終的に特定のビット線の電流を感知することにより各セルの状態を検波するセンスアンプ（図示せず）に接続される。
【００２３】
各一連のメモリセルの列３０４、３０５は、ソースセレクトゲート３１６、３１７によってソース線３０６と結合され、ドレインセレクトゲート３１２、３１３によって個別のビット線ＢＬ１、ＢＬ２と結合される。ソースセレクトゲート３１６、３１７は、それらの制御ゲートと結合したソースセレクトゲート制御線ＳＧ（Ｓ）３１８によって制御される。ドレインセレクトゲート３１２、３１３は、ドレインセレクトゲート制御線ＳＧ（Ｄ）３１４によって制御される。
【００２４】
各メモリセルはシングルレベルセル（ＳＬＣ）またはマルチレベルセル（ＭＬＣ）としてプログラミングされることが可能である。各セルのしきい電圧（Ｖｔ）は、セルに収容されるデータを示す。例えば、ＳＬＣにおいて、０．５ＶのＶｔは、プログラムされたセルを指す可能性があると同時に−０．５ＶのＶｔは、消去されたセルを指す可能性がある。ＭＬＣは、それぞれが異なる状態を示す多数のＶｔウィンドウを有し得る。マルチレベルセルは、セル上に収容された特定の電圧範囲にビットパターンを割り当てることで、既存のフラッシュセルのアナログ性能を活かすことができる。この技術は、セルに割り当てられた電圧範囲の量次第で、１つのセルにつき２ビット以上の保存を可能にする。
【００２５】
図４は、図１のソリッドステートドライブのようなソリッドステートメモリデバイスにおけるＦＴＬ法の一実施形態のフローチャートを示す。ＦＴＬ法は、図１のソリッドステートドライブに関して説明されているが、トランスレーションレイヤを必要とする他のメモリデバイスもまたこのような方法を使用することが可能である。
【００２６】
ソリッドステートドライブに初めに電源が投入された際、ソリッドステートドライブ内の全てのメモリデバイスの存在および位置の属性（例えば、チャネル、チップイネーブル、論理ユニット、平面）を判別する調査が行われる４０１。デバイスは、全ての通信路およびチップイネーブルにわたって列挙される。平行ユニット参照テーブル（ＰＵＬＴ）は、通信路情報、ＣＥ情報、論理ユニット（ＬＵＮ）情報および平行ユニットの平面情報により連続して生成される４０３。この初期化は、最高優先の通信路および最低優先の平行ユニット平面にわたる帯域幅を利用する固有の平行アクセススキームをセットアップする。他の実施形態において、特定のアーキテクチャ要求により、ＰＵは最高優先として平面情報、ＣＥ情報またはＬＵＮ情報と共に順序付けられる可能性がある。
【００２７】
一実施形態において、ＰＵＬＴはメモリデバイスのブロック０に収容される。ブロック０は、エラーが何もないとして検査された典型的なメモリブロックである。代替の実施形態は、ＲＡＭ内のＰＵＬＴまたは幾つかの他の記憶個所を収容することができる。
【００２８】
そのようなテーブルの例を図５に示す。この図は、デバイスの初期調査後に、テーブル内に列挙された８つのチャネル情報、２つのチップイネーブル情報、１つのＬＵＮ情報、および２つの平面情報を示す。
【００２９】
図６は、初期化ルーチンの間、或るＮＡＮＤデバイスが発見されない場合に、ＦＴＬによって生成されるテーブルに関する代替の実施形態を示す。この図は、通信路３／ＣＥ１が欠落しており、結果として２つの平面６０１、６０２が損失していることを示す。ＰＵＬＴは、３０個のＰＵが発見される以外は、図５の実施形態と同様に構成される。
【００３０】
ＰＵＬＴが構成された後、ＦＴＬはホストシステムから、セクタ要求を受信する準備をする。ソリッドステートドライブが、セクタから成るハードドライブをエミュレートするので、本実施形態のＦＴＬは、ホストコンピュータシステムからセクタ識別子（例えばセクタ番号）を受信し、メモリ内の適した個所にアクセスすることが可能になる。ホストからのセクタ番号は、読み込みコマンドまたは書き込みコマンドのどちらかの形式になり得る。ＦＴＬまたは幾つかの他のソリッドステートドライブアルゴリズムは、消去およびウェアレべリングの動作がホストに透過的になるように、これらの動作に関与する。
【００３１】
ホストからのセクタ要求はコマンド（例えば、読み込み、書き取り）を伴うセクタ番号から成る。ＦＴＬは、ソリッドステートドライブのアクセスにおいて論理ブロックアドレス（ＬＢＡ）として、セクタ番号を使用する。一実施形態において、各ＮＡＮＤページは、８つのＬＢＡデータを直線的に収容する。ＦＴＬが、ハードドライブセクタではなくＬＢＡで対処するので、後記の説明でセクタ要求の代わりにホストからのＬＢＡ要求に言及する。
【００３２】
再度、図４のフローチャートを参照すると、ＬＢＡ要求がホストから受信された場合、ＦＴＬは、まずソリッドステートデバイス内のＬＢＡのＰＵの個所を判別する４０５。図で示した実施形態において、これはモジュロ算術関数を用いて達成される。
【００３３】
モジュロ関数は、（Ｑ，Ｒ）＝ＭＯＤ（ＬＢＡ＞＞（ｊ＝３），Ｎ）と表現され、Ｑは、後の計算に使用される商であり、Ｒはモジュロ演算からの剰余であり、ＮはＰＵＬＴの初期化の間に発見されたＰＵの数量である。例えば、図５の実施形態では３２個のＰＵが発見され、一方、図６の実施形態では３０個のＰＵが発見された。
モジュロ関数は、ホストから受信したＬＢＡが、１ページにつき８つのＬＢＡとの計算になるように３つの位置だけ右シフトされることを示す。当技術分野で周知のように、右方に数を３度シフトすると、８で除算することと等価になる。右シフトの回数は、ソリッドステートデバイス内のより大容量のセクタサイズ（すなわちより大規模のＮＡＮＤページ）に対応して変更される。これは、１ページにつき２ｊＬＢＡであるとき、ｊだけ右シフトとして表現される。
【００３４】
ＰＵの数であるＮは、後に２進数で表現されている。ただし、Ｎは２進数のみに限定されない。
受信したＬＢＡからＰＵを発見する際の、上記モジュロ関数の演算についての２例が、後に説明される。これらの例は図６の実施形態に示されているように、２つのＰＵが欠落しているＰＵＬＴに基づいている。言い換えると、下記の例はＮ＝３０と仮定する。
【００３５】
第１の例では、受信ＬＢＡ＝３であり、以下のように２進法で表される。
００００００００ ００００００００ ００００００００ ００００００１１
ＬＢＡが、右シフトを３度行った場合、右から３ビットは、切り捨てとなり、その結果、０となる。モジュロ関数は、（０，０）＝ＭＯＤ（０，３０）として表される。剰余Ｒ＝０をＰＵ指数として使用し、この数は通信路情報、チップイネーブル（ＣＥ）情報、論理ユニット（ＬＵＮ）情報、およびＰＵ平面番号情報の観点でのＬＢＡの個所を決定するため、ＰＵＬＴで使用される。図６を参照すると、ＰＵＬＴ（０）＝チャネル０、ＣＥ０、ＬＵＮ０、および平面０は３のＬＢＡの個所であると分かる。
【００３６】
第２の例において、受信したＬＢＡ＝３０，５００，１２９である。このＬＢＡは、二進法で以下のように表される。
０００００００１ １１０１０００１ ０１１００１０１ ００１００００１
【００３７】
ＬＢＡは、右シフトを３度行った場合、最右の「００１」は切り捨てとなり、その結果、以下のように二進法で表される。
００００００００ ００１１１０１０ ００１０１１００ １０１００１００
言い換えると、ＬＢＡ＞＞３＝３，８１２，５１６となる。よって、モジュロ関数は、（１２７０８３，２６）＝ＭＯＤ（３８１２５１６，３０）と表される。剰余が２６であるので、これはＰＵＬＴの指数として使用される。従って、再度図６を参照すると、ＰＵＬＴ（２６）＝チャネル４、ＣＥ１、ＬＵＮ０、および平面１は、ＬＢＡ＝３０，５００，１２９の個所であると分かる。８以上のＬＢＡインクリメントは、アルゴリズム的に次のＰＵへプッシュされる。
【００３８】
一度ＰＵが発見されると、データブロック参照テーブル（ＤＢＬＴ）が生成される４０７。ＤＢＬＴは、どのＬＢＡ群が特定のＰＵ上のいずれのメモリブロックに収容されているかを示す直接アクセステーブルである。ＤＢＬＴでの各エントリは、受信したＬＢＡのブロック番号を示す。ＤＢＬＴでのエントリ数は、ＰＵＬＴを組み立てる間に発見されたＰＵ数に１つのＰＵあたりのブロック数を掛けたものと等しい。例えば、ソリッドステートドライブが２５６ＰＵから成る場合（８チャネル、８ＣＥ、２ＬＵＮおよび２平面）、また１平面あたり２０４８ブロックである場合、ＤＢＬＴは５２４，２８８エントリから成る。
【００３９】
一実施形態において、ＤＢＬＴでの各エントリは４バイトから成るため、テーブルは２，０９７，１５２バイトである。各エントリの２バイトは特定のＰＵにおけるブロック番号である。他のもう一つのバイトは、当該ブロックの最高位のプログラムされたページを指示し、埋設されたページテーブルへの高速アクセスを可能にする。最後のバイトは、ステータスバイトであり、指示されたブロックの状態を指示するために使用されることができる。例えば、ステータスバイトは、当該ブロックの消去状況、当該ブロックが順序付けられているか、フォールドが必要か、またはフォールドされているか、を指示することができる。本発明の実施形態は、ＤＢＬＴエントリの形式に限定されない。
【００４０】
ＤＢＬＴは、上記で説明されたようにＰＵＬＴ演算から（Ｑ，Ｒ）を用いて生成される。ｋが、２ｋ＝ページ／メモリブロックとして定義される場合、ＤＢＬＴ［ｉｎｄｅｘ］＝（Ｒ＊ＰＵあたりのブロック数）＋（Ｑ＞＞ｋ）となる。変数ｋは、メモリブロックの記憶密度に対応して決定される。ＭＬＣメモリデバイスにおける５１２バイトＬＢＡに対して、１２８ページ／ブロックの場合はｋ＝７である。ＳＬＣメモリデバイスにおける５１２バイトＬＢＡに対して、６４ページ／ブロックの場合はｋ＝６である。ＤＢＬＴ［ｉｎｄｅｘ］の結果は、ＬＢＡを含む標的メモリブロックを指す。
【００４１】
ＤＢＬＴ［ｉｎｄｅｘ］方式の計算の例において、上記で説明されたＰＵＬＴ例と同じ変数が用いられる。ＬＢＡ＝３の例で、結果はＱ＝０、Ｒ＝０、ＰＵＬＴ［０］＝チャネル０、ＣＥ０、ＬＵＮ０、平面０となる。これらの結果をＤＢＬＴ方式に当てはめると、ＤＢＬＴ［ｉｎｄｅｘ］＝（Ｑ＞＞ｋ＋Ｒ＊２０４８）＝０となる。ＤＢＬＴのステータスバイトが、ブロックが順序付けられていることを示した場合、標的メモリブロック上でのＬＢＡは、そのページにおいて、ページ（Ｑ＝０＆＆ｋ ｂｉｔｓ）＝０、位置（ＬＢＡ ＆＆ Ｊ）＝３となる。ステータスバイトが、メモリブロックが順序付けられていないことを示した場合、該メモリブロック内の位置のための埋設ページテーブルが使用される。
【００４２】
ＬＢＡ＝３０，５００，１３８の例において、前記の結果は、Ｑ＝１２７，０８３、Ｒ＝２６，ＰＵＬＴ［２６］＝チャネル４、ＣＥ１、ＬＵＮ０、および平面１であった。これらの結果をＤＢＬＴ方式に当てはめると、ＤＢＬＴ［ｉｎｄｅｘ］＝（１２７，０８３＞＞６＋２６＊２０４８）＝５５，２３３となる。ＤＢＬＴのステータスバイトが、メモリブロックが順序付けられていることを示した場合、標的メモリブロック上でのＬＢＡは、ページ（１１１１１０００００１１０１０１１ ＆＆ ００１１１１１１）＝４３およびそのページにおける位置（１１１１１０００００１００１００００１ ＆＆ ０００００１１）＝１となる。
【００４３】
図７は、上記で説明したＤＢＬＴ方式の結果の主要部分を示す略図である。図の左側は各ＰＵ番号７０１に割り当てられたメモリブロックを示す。この略図は、例えば、ＰＵ０がＢＬＫ０〜ＢＬＫ２０４７を有し、０から２０４７の論理メモリの領域にあることを示す。
【００４４】
図式７０２の中央は、物理ブロック０〜２０４７を含むＰＵ０の拡張を示し、図式７０３には物理ブロックｉが更に拡張されたことを示す。物理ブロックのｉの拡張は、ブロック内の６４ページ（ＳＬＣメモリデバイスと仮定）のそれぞれと、各エントリが論理ブロックであることを示す。各エントリの２バイトは物理ブロックを示し、１バイトは該ブロックの最高位にプログラムされたページであり、残りはステータスバイトである。
【００４５】
結論
要約すれば、１つ以上のトランスレーションレイヤ法の実施形態は、ソリッドステート記憶装置に、ホストコンピュータシステムから受信したハードディスクセクタ番号をメモリページおよびそのページ内の位置へ変換する能力を与える。これによって、典型的に使用された従来の変換の技術であるメモリの集中した大規模の変換テーブルを大幅に減少させることが可能になる。トランスレーションレイヤは、通信路情報およびチップイネーブル情報の非二進数と同様に、柔軟なディスクドライブセクタサイズ、ページサイズ、１ブロックあたりのページ、１平面あたりのブロック、１論理ユニットあたりの平面をサポートする。
【００４６】
本発明の特定の実施形態を図示説明したが、当業者であれば、同一目的を達成するための構成を図示の特定の実施形態に置き換え可能であることがわかるであろう。当業者には、本発明の多くの適合が明らかであろう。従って、本出願は、本発明のいずれの適合もしくは変形をも包含することを意図する。本発明は以下の特許請求の範囲およびその均等物によってのみ限定されることも明白に意図されている。
【図１】
2014063511.tif 000003
【図２】
2014063511.tif 000004
【図３】
2014063511.tif 000005
【図４】
2014063511.tif 000006
【図５】
2014063511.tif 000007
【図６】
2014063511.tif 000008
【図７】
2014063511.tif 000009