JP5736439B2 - ソリッドステート記憶装置におけるトランスレーションレイヤ - Google Patents

ソリッドステート記憶装置におけるトランスレーションレイヤ Download PDF

Info

Publication number
JP5736439B2
JP5736439B2 JP2013239909A JP2013239909A JP5736439B2 JP 5736439 B2 JP5736439 B2 JP 5736439B2 JP 2013239909 A JP2013239909 A JP 2013239909A JP 2013239909 A JP2013239909 A JP 2013239909A JP 5736439 B2 JP5736439 B2 JP 5736439B2
Authority
JP
Japan
Prior art keywords
memory
memory device
block
information
solid state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013239909A
Other languages
English (en)
Other versions
JP2014063511A (ja
Inventor
マニング,トロイ
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2014063511A publication Critical patent/JP2014063511A/ja
Application granted granted Critical
Publication of JP5736439B2 publication Critical patent/JP5736439B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、概して、記憶素子に関し、かつ特定の実施形態において、本発明は不揮発性記憶素子に関する。
記憶素子としては、コンピュータまたは他の電子機器内の内部回路、半導体回路、集積回路を挙げることができる。メモリには、随時アクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックRAM(SRAM)、同期型DRAM(SDRAM)、および不揮発性メモリ(例えばフラッシュメモリ)を含む、多数の異なる種類がある。
フラッシュメモリ素子は、電子回路の応用における不揮発性メモリとして広く使用されるようになってきた。フラッシュメモリ素子は、典型的に、高いメモリ密度および信頼性と、少ない電力消費を可能にする1トランジスタ型メモリセルを使用する。フラッシュメモリの一般的な用途しては、パーソナルコンピュータ、携帯情報端末(PDA)、デジタルカメラ、および携帯電話が挙げられる。基本入出力システム(BIOS)などのプログラムコードおよびシステムデータは、典型的に、パーソナルコンピュータシステムにおける使用のためフラッシュメモリ素子に収容される。
フラッシュメモリ素子は、ソリッドステートドライブのようなソリッドステート記憶デバイスにも組み込まれることができる。ソリッドステートドライブは、各パッケージが多くのメモリダイから成る多数のフラッシュパッケージから成っている。ソリッドステートドライブは、大容量のデータを収容するため典型的に磁気ディスクまたは光ディスクを使用してきたハードディスクドライブに代わり、コンピュータ内で使用される。ソリッドステートドライブは、可動部分を使用しないのに対して、ハードディスクドライブは、磁気ディスク/光ディスクと相互に作用するため、複雑で繊細なドライブおよび書き込み/読み取りヘッドアセンブリを必要とする。従って、ソリッドステートドライブは、より振動および衝撃による損傷およびデータの損失に強い。
現在のソリッドステートドライブ技術の1つの欠点は、各ドライブに多数のメモリダイを使用することにより、ドライブの製造過程で欠陥のあるメモリダイを有する可能性が大幅に増加することである。従って、そのドライブは廃棄されるか、または高コストとなる選択肢として、ソリッドステートドライブコントローラが、システムがメモリダイにアクセスしている間、欠陥のあるメモリダイをマッピングし、補償しなければならない。
フラッシュトランスレーションレイヤ(FTL)は、オペレーティングシステムと連動して動作し、オペレーティングシステムにフラッシュメモリをディスクドライブとして見せかける。これは、FTLがフラッシュイレースブロックから、セクタとしても知られている仮想の小規模なデータブロックを作成することで行われる。FTLはまた、ソリッドステートドライブ上のデータを管理し、マッピングするため、実際はシステムがウェアレベリング手法でフラッシュメモリの異なる個所に収容されていても、特定の個所で書き込まれたシステムに見せかける。
FTLは、これらの動作をディスクドライブの1つのセクタへのホスト要求から、ソリッドステートドライブのフラッシュメモリダイにある実際のデータの個所へマッピングするため、メモリ内に大規模テーブルを生成し、維持することにより実行する。これらのテーブルは非常に大規模になり得るため、システムRAMはこれらを保持することができず、フラッシュメモリはテーブルの一部を保持するためオーバーフローメモリとして使用されなければならない。大規模テーブルは他のタスクに使用され得るRAMを消費するだけでなく、FTLがテーブルデータを読み出すためフラッシュメモリにアクセスしなければならない場合、フラッシュメモリは読み取りおよび書き込みにおいてRAMより遅いため、システム性能は大きく低下する。
上述の理由および本明細書を読解したとき当業者に明らかになる下記に述べる本発明の他の理由により、より効果的なフラッシュトランスレーションレイヤが当技術分野において求められている。
フラッシュトランスレーションレイヤを組み込んだソリッドステートドライブである。 図1のソリッドステートドライブに準じたフラッシュメモリ配列およびメモリ通信路を組み込む不揮発性メモリデバイスの一実施形態におけるブロック図である。 図1および図2の不揮発性メモリデバイスに準じた不揮発性メモリ配列の一部の一実施形態の概略図である。 フラッシュトランスレーションレイヤ法の一実施形態のフローチャートである。 図4のフラッシュトランスレーションレイヤ法に準じた平行ユニット参照テーブルの一実施形態である。 図4のフラッシュトランスレーションレイヤ法に準じた平行ユニット参照テーブルの他の実施形態である。 図4の方法に準じたデータブロック参照テーブル概念の略図である。
以下の発明を実施するための形態では、本明細書の一部を構成し、本発明を実施することができる特定の実施形態が例として示される、添付の図面を参照する。図面では、幾つかの図にわたって同じ数字が、実質上類似の構成材を表す。これらの実施形態は当業者が本発明を実施することができるよう、十分詳細に説明される。他の実施形態は利用することが可能で、構造上、論理上、および電気的な改変は、本発明の範囲から逸脱することなく行われ得る。以下の詳細な説明は、それゆえ、限定的な意味にとらわれることなく、本発明が特許請求の範囲及びその均等物によってのみ規定されることが意図されている。
図1は、フラッシュトランスレーションレイヤ(FTL)120を組み込むソリッドステートドライブの一実施形態のブロック図である。図1のドライブはコントローラ130から成り、コントローラ130は101〜108の8つの通信路を有し、FTL120を実行する。各通信路101〜108は、4つに並んだメモリパッケージに接続される。これらの装置はNANDメモリパッケージとして示される。代替の実施形態は、他種のソリッドステートメモリを使用することができる。
NANDパッケージ内の単一のダイは、論理ユニット(LUN)と呼ばれ、平行処理によってアクセスすることが可能である。LUNは多数の平面を含み、各平面は平行ユニット(PU)である。各PUは、固有の数字または幾つかの他の一意の識別子を割当てられる。
各論理ユニットは、同じチップセレクト(CE)信号を共有する可能性があるため、各論理ユニットは、パッケージ内の多数のダイを識別するためアドレスビットによってアクセスされる。多数のダイは異なるコマンドを同時に平行して行うことができる。言い換えれば、1つのダイはもう一方が読取動作を行っている間、書き込み動作を行うことができる。FTLは、平面のみをPUと呼ぶことを意図している。FTL法もまた、平行ユニットにおける異なる平面について言及している。各平面は、異なるメモリダイから成り得る。
図2は、集積回路ダイ上に組み込まれることできる不揮発性メモリデバイス200の構成ブロック図を示す。一実施形態において、不揮発性メモリ200は、フラッシュメモリである。
不揮発性メモリデバイス200は、図3において示され、その後考察されているフローティングゲートメモリセルのような不揮発性メモリセルの配置230を含む。メモリ配列230は、アクセス線(例えばワード線)行およびデータ線(例えばビット線)列に層を成して配列される。一実施形態において、メモリ配列230のカラムは一連のメモリセルの列から成る。当技術分野で周知の通り、セルのビット線への接続は、配列がNANDアーキテクチャか、ANDアーキテクチャか、またはNORアーキテクチャのいずれかであるかを決定する。
メモリ配列230は、メモリブロックとして構成されることができる。メモリブロックの数量は、典型的にメモリデバイスの大きさ(すなわち512MB、1GB)によって決定される。一実施形態において、各メモリブロックは64ページで構成されている。
アドレスバッファ回路240は、I/O電気回路260を介して送られたアドレス信号をラッチするために設けられる。アドレス信号は、メモリ配列230にアクセスするため、行デコーダ244および列デコーダ246に受信され、解読される。アドレス入力接続数はメモリ配列230の密度およびアーキテクチャに依るということが本発明の利点であるということは当業者に理解されよう。すなわち、アドレス数は、メモリセル数増加およびバンク、ブロック数増加の両方により増加する。データもまた制御信号272のタイミングに基づき、I/O電気回路260を介して入力および出力される。
不揮発性メモリデバイス200は、センスアンプ回路250を用いてメモリ配列のカラムでおこる電圧または電流の変化を感知することによりメモリ配列230内のデータを読み込む。一実施形態において、センスアンプ回路250は、メモリ配列230からデータ行を読み込みラッチするため結合される。データ入出力バッファ回路260は、複数のデータ接続262を使用して外部コントローラと通信するアドレス通信と同様に、双方向のデータ通信を含む。書き込み回路255は、メモリ配列へデータを書き込むために設けられている。
メモリ制御回路270は、外部コントローラから制御バス272上に与えられた信号をデコードする。これらの信号は、メモリデバイス200の他の電気回路と同様にメモリ配列230上で動作を制御するために使用される他の制御信号と同様に、リード/ライト(R/反転W)情報、チップイネーブル(CE)情報、コマンドラッチイネーブル(CLE)情報、アドレスラッチイネーブル(ALE)情報を含む。一実施形態において、これらはアクティブロー信号であるが、代替の実施形態ではアクティブハイ信号を使用することができる。メモリ制御回路270は、状態機械、シーケンス制御装置、またはメモリ制御信号を生成する幾つかの他の種類のコントローラであってよい。
不揮発性メモリデバイス200は、図1で示されるように、通信路290を使用して外部コントローラと通信する。一実施形態において、通信路290は、メモリアドレス、データ、およびソリッドステートドライブコントローラとメモリデバイス200の間の制御信号から成る。図2の実施形態は、I/O電気回路260への1つのバスとして結合されたアドレスとデータを示す。代替の実施形態において、アドレスバスおよびデータバスは、メモリデバイス200と別々の入出力である。
図3は、不揮発性メモリセルの一連の列を含むNANDアーキテクチャメモリ配列の一部の概略図を示す。後記の説明はNANDメモリデバイスに関して言及するが、本発明の実施形態はアーキテクチャなどに限定されない。
メモリ配列は、一連の列304、305のようなカラムに配列される不揮発性メモリセル301の配列(例えば、フローティングゲート)から成る。各セル301は、各一連の列304、305においてドレインからソースに結合されている。多数の一連の列304、305に跨がるワード線WL0-WL31は、行におけるメモリセルの制御ゲートにバイアスをかけるため、行における各メモリセルの制御ゲートに接続される。ビット線BL1、BL2は、最終的に特定のビット線の電流を感知することにより各セルの状態を検波するセンスアンプ(図示せず)に接続される。
各一連のメモリセルの列304、305は、ソースセレクトゲート316、317によってソース線306と結合され、ドレインセレクトゲート312、313によって個別のビット線BL1、BL2と結合される。ソースセレクトゲート316、317は、それらの制御ゲートと結合したソースセレクトゲート制御線SG(S)318によって制御される。ドレインセレクトゲート312、313は、ドレインセレクトゲート制御線SG(D)314によって制御される。
各メモリセルはシングルレベルセル(SLC)またはマルチレベルセル(MLC)としてプログラミングされることが可能である。各セルのしきい電圧(Vt)は、セルに収容されるデータを示す。例えば、SLCにおいて、0.5VのVtは、プログラムされたセルを指す可能性があると同時に−0.5VのVtは、消去されたセルを指す可能性がある。MLCは、それぞれが異なる状態を示す多数のVtウィンドウを有し得る。マルチレベルセルは、セル上に収容された特定の電圧範囲にビットパターンを割り当てることで、既存のフラッシュセルのアナログ性能を活かすことができる。この技術は、セルに割り当てられた電圧範囲の量次第で、1つのセルにつき2ビット以上の保存を可能にする。
図4は、図1のソリッドステートドライブのようなソリッドステートメモリデバイスにおけるFTL法の一実施形態のフローチャートを示す。FTL法は、図1のソリッドステートドライブに関して説明されているが、トランスレーションレイヤを必要とする他のメモリデバイスもまたこのような方法を使用することが可能である。
ソリッドステートドライブに初めに電源が投入された際、ソリッドステートドライブ内の全てのメモリデバイスの存在および位置の属性(例えば、チャネル、チップイネーブル、論理ユニット、平面)を判別する調査が行われる401。デバイスは、全ての通信路およびチップイネーブルにわたって列挙される。平行ユニット参照テーブル(PULT)は、通信路情報、CE情報、論理ユニット(LUN)情報および平行ユニットの平面情報により連続して生成される403。この初期化は、最高優先の通信路および最低優先の平行ユニット平面にわたる帯域幅を利用する固有の平行アクセススキームをセットアップする。他の実施形態において、特定のアーキテクチャ要求により、PUは最高優先として平面情報、CE情報またはLUN情報と共に順序付けられる可能性がある。
一実施形態において、PULTはメモリデバイスのブロック0に収容される。ブロック0は、エラーが何もないとして検査された典型的なメモリブロックである。代替の実施形態は、RAM内のPULTまたは幾つかの他の記憶個所を収容することができる。
そのようなテーブルの例を図5に示す。この図は、デバイスの初期調査後に、テーブル内に列挙された8つのチャネル情報、2つのチップイネーブル情報、1つのLUN情報、および2つの平面情報を示す。
図6は、初期化ルーチンの間、或るNANDデバイスが発見されない場合に、FTLによって生成されるテーブルに関する代替の実施形態を示す。この図は、通信路3/CE1が欠落しており、結果として2つの平面601、602が損失していることを示す。PULTは、30個のPUが発見される以外は、図5の実施形態と同様に構成される。
PULTが構成された後、FTLはホストシステムから、セクタ要求を受信する準備をする。ソリッドステートドライブが、セクタから成るハードドライブをエミュレートするので、本実施形態のFTLは、ホストコンピュータシステムからセクタ識別子(例えばセクタ番号)を受信し、メモリ内の適した個所にアクセスすることが可能になる。ホストからのセクタ番号は、読み込みコマンドまたは書き込みコマンドのどちらかの形式になり得る。FTLまたは幾つかの他のソリッドステートドライブアルゴリズムは、消去およびウェアレべリングの動作がホストに透過的になるように、これらの動作に関与する。
ホストからのセクタ要求はコマンド(例えば、読み込み、書き取り)を伴うセクタ番号から成る。FTLは、ソリッドステートドライブのアクセスにおいて論理ブロックアドレス(LBA)として、セクタ番号を使用する。一実施形態において、各NANDページは、8つのLBAデータを直線的に収容する。FTLが、ハードドライブセクタではなくLBAで対処するので、後記の説明でセクタ要求の代わりにホストからのLBA要求に言及する。
再度、図4のフローチャートを参照すると、LBA要求がホストから受信された場合、FTLは、まずソリッドステートデバイス内のLBAのPUの個所を判別する405。図で示した実施形態において、これはモジュロ算術関数を用いて達成される。
モジュロ関数は、(Q,R)=MOD(LBA>>(j=3),N)と表現され、Qは、後の計算に使用される商であり、Rはモジュロ演算からの剰余であり、NはPULTの初期化の間に発見されたPUの数量である。例えば、図5の実施形態では32個のPUが発見され、一方、図6の実施形態では30個のPUが発見された。
モジュロ関数は、ホストから受信したLBAが、1ページにつき8つのLBAとの計算になるように3つの位置だけ右シフトされることを示す。当技術分野で周知のように、右方に数を3度シフトすると、8で除算することと等価になる。右シフトの回数は、ソリッドステートデバイス内のより大容量のセクタサイズ(すなわちより大規模のNANDページ)に対応して変更される。これは、1ページにつき2LBAであるとき、jだけ右シフトとして表現される。
PUの数であるNは、後に2進数で表現されている。ただし、Nは2進数のみに限定されない。
受信したLBAからPUを発見する際の、上記モジュロ関数の演算についての2例が、後に説明される。これらの例は図6の実施形態に示されているように、2つのPUが欠落しているPULTに基づいている。言い換えると、下記の例はN=30と仮定する。
第1の例では、受信LBA=3であり、以下のように2進法で表される。

00000000 00000000 00000000 00000011

LBAが、右シフトを3度行った場合、右から3ビットは、切り捨てとなり、その結果、0となる。モジュロ関数は、(0,0)=MOD(0,30)として表される。剰余R=0をPU指数として使用し、この数は通信路情報、チップイネーブル(CE)情報、論理ユニット(LUN)情報、およびPU平面番号情報の観点でのLBAの個所を決定するため、PULTで使用される。図6を参照すると、PULT(0)=チャネル0、CE0、LUN0、および平面0は3のLBAの個所であると分かる。
第2の例において、受信したLBA=30,500,129である。このLBAは、二進法で以下のように表される。

00000001 11010001 01100101 00100001
LBAは、右シフトを3度行った場合、最右の「001」は切り捨てとなり、その結果、以下のように二進法で表される。

00000000 00111010 00101100 10100100

言い換えると、LBA>>3=3,812,516となる。よって、モジュロ関数は、(127083,26)=MOD(3812516,30)と表される。剰余が26であるので、これはPULTの指数として使用される。従って、再度図6を参照すると、PULT(26)=チャネル4、CE1、LUN0、および平面1は、LBA=30,500,129の個所であると分かる。8以上のLBAインクリメントは、アルゴリズム的に次のPUへプッシュされる。
一度PUが発見されると、データブロック参照テーブル(DBLT)が生成される407。DBLTは、どのLBA群が特定のPU上のいずれのメモリブロックに収容されているかを示す直接アクセステーブルである。DBLTでの各エントリは、受信したLBAのブロック番号を示す。DBLTでのエントリ数は、PULTを組み立てる間に発見されたPU数に1つのPUあたりのブロック数を掛けたものと等しい。例えば、ソリッドステートドライブが256PUから成る場合(8チャネル、8CE、2LUNおよび2平面)、また1平面あたり2048ブロックである場合、DBLTは524,288エントリから成る。
一実施形態において、DBLTでの各エントリは4バイトから成るため、テーブルは2,097,152バイトである。各エントリの2バイトは特定のPUにおけるブロック番号である。他のもう一つのバイトは、当該ブロックの最高位のプログラムされたページを指示し、埋設されたページテーブルへの高速アクセスを可能にする。最後のバイトは、ステータスバイトであり、指示されたブロックの状態を指示するために使用されることができる。例えば、ステータスバイトは、当該ブロックの消去状況、当該ブロックが順序付けられているか、フォールドが必要か、またはフォールドされているか、を指示することができる。本発明の実施形態は、DBLTエントリの形式に限定されない。
DBLTは、上記で説明されたようにPULT演算から(Q,R)を用いて生成される。kが、2=ページ/メモリブロックとして定義される場合、DBLT[index]=(R*PUあたりのブロック数)+(Q>>k)となる。変数kは、メモリブロックの記憶密度に対応して決定される。MLCメモリデバイスにおける512バイトLBAに対して、128ページ/ブロックの場合はk=7である。SLCメモリデバイスにおける512バイトLBAに対して、64ページ/ブロックの場合はk=6である。DBLT[index]の結果は、LBAを含む標的メモリブロックを指す。
DBLT[index]方式の計算の例において、上記で説明されたPULT例と同じ変数が用いられる。LBA=3の例で、結果はQ=0、R=0、PULT[0]=チャネル0、CE0、LUN0、平面0となる。これらの結果をDBLT方式に当てはめると、DBLT[index]=(Q>>k+R*2048)=0となる。DBLTのステータスバイトが、ブロックが順序付けられていることを示した場合、標的メモリブロック上でのLBAは、そのページにおいて、ページ(Q=0&&k bits)=0、位置(LBA && J)=3となる。ステータスバイトが、メモリブロックが順序付けられていないことを示した場合、該メモリブロック内の位置のための埋設ページテーブルが使用される。
LBA=30,500,138の例において、前記の結果は、Q=127,083、R=26,PULT[26]=チャネル4、CE1、LUN0、および平面1であった。これらの結果をDBLT方式に当てはめると、DBLT[index]=(127,083>>6+26*2048)=55,233となる。DBLTのステータスバイトが、メモリブロックが順序付けられていることを示した場合、標的メモリブロック上でのLBAは、ページ(11111000001101011 && 00111111)=43およびそのページにおける位置(1111100000100100001 && 0000011)=1となる。
図7は、上記で説明したDBLT方式の結果の主要部分を示す略図である。図の左側は各PU番号701に割り当てられたメモリブロックを示す。この略図は、例えば、PU0がBLK0〜BLK2047を有し、0から2047の論理メモリの領域にあることを示す。
図式702の中央は、物理ブロック0〜2047を含むPU0の拡張を示し、図式703には物理ブロックiが更に拡張されたことを示す。物理ブロックのiの拡張は、ブロック内の64ページ(SLCメモリデバイスと仮定)のそれぞれと、各エントリが論理ブロックであることを示す。各エントリの2バイトは物理ブロックを示し、1バイトは該ブロックの最高位にプログラムされたページであり、残りはステータスバイトである。
結論
要約すれば、1つ以上のトランスレーションレイヤ法の実施形態は、ソリッドステート記憶装置に、ホストコンピュータシステムから受信したハードディスクセクタ番号をメモリページおよびそのページ内の位置へ変換する能力を与える。これによって、典型的に使用された従来の変換の技術であるメモリの集中した大規模の変換テーブルを大幅に減少させることが可能になる。トランスレーションレイヤは、通信路情報およびチップイネーブル情報の非二進数と同様に、柔軟なディスクドライブセクタサイズ、ページサイズ、1ブロックあたりのページ、1平面あたりのブロック、1論理ユニットあたりの平面をサポートする。
本発明の特定の実施形態を図示説明したが、当業者であれば、同一目的を達成するための構成を図示の特定の実施形態に置き換え可能であることがわかるであろう。当業者には、本発明の多くの適合が明らかであろう。従って、本出願は、本発明のいずれの適合もしくは変形をも包含することを意図する。本発明は以下の特許請求の範囲およびその均等物によってのみ限定されることも明白に意図されている。

Claims (16)

  1. ソリッドステートデバイスにおいてセクタ識別子と記憶個所との間での変換を行う方法であって、
    前記ソリッドステートデバイス内のメモリデバイスを検出し、検出されたメモリデバイスの各々に対する記憶個所についての情報を決定することと、
    前記検出されたメモリデバイス及び該検出されたメモリデバイスの各々に対する前記記憶個所についての情報を列挙するメモリデバイステーブルであって、該メモリデバイステーブルに列挙される各メモリデバイスに付与される唯一の連続したメモリデバイス識別子を含む前記メモリデバイステーブルを生成することと、
    前記セクタ識別子に対応する論理ブロックアドレスとして前記セクタ識別子が使用され、前記セクタ識別子および前記メモリデバイスの記憶個所に対応する前記メモリデバイステーブルの前記メモリデバイス識別子に基づいて、前記検出されたメモリデバイスのうちの標的メモリデバイスの位置を特定することと、
    前記標的メモリデバイスにおける論理ブロックアドレスのグループを含むデータブロック参照テーブルであって、各論理ブロックアドレスが、異なるデータブロック参照テーブルのエントリに関連付けられ、各エントリは、関連付けられた論理ブロックアドレスによって示される1つのメモリブロックの最高位にプログラムされるページの表示、及び、前記メモリブロックが順序付けられているときに該メモリブロックが順序付けられていることを示し、前記メモリブロックが順序付けられていないときに該メモリブロックが順序付けられていないことを示すよう設定されるステータス標識を含む、前記データブロック参照テーブルを生成することと、
    前記セクタ識別子に対応する前記論理ブロックアドレスを含む前記データブロック参照テーブル内の標的データブロックの位置を特定することと、
    を含む、方法。
  2. ホストコンピュータシステムから前記セクタ識別子を受信することをさらに含む、請求項1に記載の方法。
  3. 検出された各メモリデバイスの前記記憶個所についての情報は、通信路情報、チップイネーブル情報、論理ユニット情報、および平面情報を含む、請求項1に記載の方法。
  4. 複数のメモリデバイスは同一のチップイネーブル情報を有する、
    請求項3に記載の方法。
  5. 前記セクタ識別子に対応する前記論理ブロックアドレスは、1ページ当たりの論理ブロックアドレスの量及び前記ソリッドステートデバイスのページサイズに応じて複数回シフトされる、
    請求項1に記載の方法。
  6. 複数の異なるメモリデバイスは、同一の通信路情報を有する、
    請求項3に記載の方法。
  7. 前記検出されたメモリデバイス及び検出された各メモリデバイスに対する前記記憶個所についての情報を列挙するメモリデバイステーブルを生成することは、前記メモリデバイステーブルに、唯一の連続するメモリデバイス識別子及び検出された各メモリデバイスに対する前記記憶個所についての情報を書き入れることを含む、
    請求項3に記載の方法。
  8. 前記論理ブロックアドレスのモジュロ関数に対応して前記標的メモリデバイスのどのメモリブロックが前記論理ブロックアドレスを含むかを示す前記データブロック参照テーブルが生成される、
    請求項1に記載の方法。
  9. 前記モジュロ関数が、(Q,R)=MOD(LBA>>(j=3),N)を含み、Qは商であり、Rは剰余であり、Nは前記メモリデバイステーブル内のメモリデバイスの数であり、jは、1ページあたりのセクタ数2のjである、請求項8に記載の方法。
  10. 前記メモリデバイステーブルが、前記R番目の検出された前記メモリデバイスに対する前記記憶個所について情報を決定するために、前記Rによって指示される、請求項9に記載の方法。
  11. 前記データブロック参照テーブルが、(R*BlocksPerPU)+(Q>>k)によって生成され、BlocksPerPUは、各メモリデバイス内のメモリブロックの数であり、kは1つのメモリブロックあたりのメモリのページ数を示す、請求項9に記載の方法。
  12. ソリッドステートメモリデバイスであって、
    少なくとも1つのメモリ配列と、
    少なくとも1つの通信路を使用して前記少なくとも1つのメモリ配列と結合するコントローラであって、
    前記ソリッドステートメモリデバイスの初期化で検出された前記少なくとも1つのメモリ配列および各メモリ配列の記憶個所が、連続した唯一の識別子を付与されて列挙されたメモリ配列参照テーブルの生成と、
    ディスクドライブセクタ識別子および前記メモリ配列個所に対応する前記唯一の識別子に基づく前記少なくとも1つのメモリ配列のうちの標的メモリ配列の決定と、前記標的メモリ配列および前記標的メモリ配列に含まれるデータブロックの数である記憶密度を決定することに対応する前記標的メモリ配列内の標的データブロックおよび前記記憶個所の決定とに対応して、前記ディスクドライブセクタ識別子と前記記憶個所との間での変換とを行うように構成され、
    さらに、前記標的メモリ配列のメモリブロックを含むデータブロック参照テーブルであって、該データブロック参照テーブルは、特定の論理ブロックアドレス、特定のメモリブロックの最高位にプログラムされるページの表示、およびステータス標識を含み、該ステータス標識は、前記メモリブロックが順序付けられているときに該メモリブロックが順序付けられていることを示し、前記メモリブロックが順序付けられていないときに該メモリブロックが順序付けられていないことを示すよう設定される、前記データブロック参照テーブルを生成するように構成される、コントローラと、
    を含む、ソリッドステートメモリデバイス。
  13. 前記コントローラが、各メモリ配列に対する通信路情報、各メモリ配列に対するチップイネーブル情報、各メモリ配列に対する論理ユニット情報、および各メモリ配列に対する平面情報を列挙する前記メモリ配列参照テーブルを生成するようにさらに構成される、請求項12に記載のソリッドステートメモリデバイス。
  14. 前記ディスクドライブセクタ識別子が、前記ディスクドライブセクタ識別子に対応する論理ブロックアドレスとして使用される、請求項13に記載のソリッドステートメモリデバイス。
  15. 前記コントローラが、モジュロ関数の実行に応答し、前記データブロック参照テーブルを生成するようにさらに構成される、請求項12に記載のソリッドステートメモリデバイス。
  16. 前記ディスクドライブセクタ識別子に対応する前記論理ブロックアドレスは、前記標的メモリ配列の位置を生成するために、1ページ当たりの論理ブロックアドレスの量及び前記ソリッドステートメモリデバイスのページサイズに応じて複数回シフトされる、
    請求項14に記載のソリッドステートメモリデバイス。
JP2013239909A 2008-10-13 2013-11-20 ソリッドステート記憶装置におけるトランスレーションレイヤ Active JP5736439B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/250,043 US8838876B2 (en) 2008-10-13 2008-10-13 Translation layer in a solid state storage device
US12/250,043 2008-10-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011531060A Division JP2012505472A (ja) 2008-10-13 2009-09-25 ソリッドステート記憶装置におけるトランスレーションレイヤ

Publications (2)

Publication Number Publication Date
JP2014063511A JP2014063511A (ja) 2014-04-10
JP5736439B2 true JP5736439B2 (ja) 2015-06-17

Family

ID=42099944

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011531060A Pending JP2012505472A (ja) 2008-10-13 2009-09-25 ソリッドステート記憶装置におけるトランスレーションレイヤ
JP2013239909A Active JP5736439B2 (ja) 2008-10-13 2013-11-20 ソリッドステート記憶装置におけるトランスレーションレイヤ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011531060A Pending JP2012505472A (ja) 2008-10-13 2009-09-25 ソリッドステート記憶装置におけるトランスレーションレイヤ

Country Status (7)

Country Link
US (4) US8838876B2 (ja)
EP (1) EP2345037B1 (ja)
JP (2) JP2012505472A (ja)
KR (1) KR101418631B1 (ja)
CN (1) CN102177556B (ja)
TW (1) TWI563382B (ja)
WO (1) WO2010044999A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101574540B1 (ko) * 2009-04-15 2015-12-07 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
WO2011021237A1 (en) * 2009-08-20 2011-02-24 Hitachi,Ltd. Storage subsystem and its data processing method
US9753847B2 (en) * 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8458435B1 (en) 2010-12-20 2013-06-04 Western Digital Technologies, Inc. Sequential write thread detection
US9514838B2 (en) * 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
US20140343765A1 (en) 2012-12-28 2014-11-20 Sean Patrick Suiter Flight Assistant with Automatic Configuration and Landing Site Selection
US11657721B1 (en) 2013-08-26 2023-05-23 Otto Aero Company Aircraft with flight assistant
US10502584B1 (en) 2012-12-28 2019-12-10 Sean Patrick Suiter Mission monitor and controller for autonomous unmanned vehicles
US9821910B1 (en) * 2015-05-19 2017-11-21 uAvionix Corporation Unmanned vehicle control system and apparatus
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
JP6072661B2 (ja) * 2013-09-30 2017-02-01 ルネサスエレクトロニクス株式会社 データ処理装置、マイクロコントローラ、及び半導体装置
US20160011810A1 (en) * 2014-03-26 2016-01-14 2419265 Ontario Limited Solid-state memory device with plurality of memory devices
US20160062696A1 (en) * 2014-03-26 2016-03-03 2419265 Ontario Limited Solid-state memory device with plurality of memory devices
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9607447B2 (en) * 2015-03-31 2017-03-28 Honeywell International Inc. Automated transmission of aircraft anomalous incident data via preferred transmission modes
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
KR20170044782A (ko) * 2015-10-15 2017-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN105786406A (zh) * 2016-02-26 2016-07-20 湖南国科微电子股份有限公司 支持多通道主控并发的CE NAND Flash的页模型构建方法及页模型
US10121555B2 (en) * 2016-05-26 2018-11-06 Advanced Micro Devices, Inc. Wear-limiting non-volatile memory
US10642497B2 (en) * 2016-08-31 2020-05-05 International Business Machines Corporation System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics
CN109597565B (zh) * 2017-09-30 2024-04-05 北京忆恒创源科技股份有限公司 虚拟Plane管理
KR102492729B1 (ko) 2017-12-13 2023-01-27 마이크론 테크놀로지, 인크. 가변 폭 수퍼 블록 어드레싱
JP7077151B2 (ja) * 2018-06-06 2022-05-30 キオクシア株式会社 メモリシステム
KR102438063B1 (ko) 2018-08-31 2022-08-30 (주)커니스 로라 네트워크 멀티 채널을 이용한 밀폐공간 작업자 안전 관리 시스템
KR102438064B1 (ko) 2018-08-31 2022-08-30 (주)커니스 로라 네트워크 스타 토폴로지를 이용한 메쉬 알고리즘 기반의 밀폐 공간 작업자 안전 관리 시스템

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4737909A (en) * 1985-04-01 1988-04-12 National Semiconductor Corp. Cache memory address apparatus
EP0508577A1 (en) * 1991-03-13 1992-10-14 International Business Machines Corporation Address translation mechanism
JPH07302176A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US6260102B1 (en) * 1996-12-26 2001-07-10 Intel Corporation Interface for flash EEPROM memory arrays
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US7886108B2 (en) * 2000-01-06 2011-02-08 Super Talent Electronics, Inc. Methods and systems of managing memory addresses in a large capacity multi-level cell (MLC) based flash memory device
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
JP2001142774A (ja) * 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US6425051B1 (en) * 2000-09-25 2002-07-23 International Business Machines Corporation Method, system, program, and data structures for enabling a controller accessing a storage device to handle requests to data in a first data format when the storage device includes data in a second data format
US7013376B2 (en) * 2000-12-20 2006-03-14 Hewlett-Packard Development Company, L.P. Method and system for data block sparing in a solid-state storage device
US7472231B1 (en) * 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
JP3822081B2 (ja) 2001-09-28 2006-09-13 東京エレクトロンデバイス株式会社 データ書込装置、データ書込制御方法及びプログラム
WO2005069288A1 (en) * 2004-01-19 2005-07-28 Trek 2000 International Ltd. Portable data storage device using a memory address mapping table
US7421537B2 (en) * 2004-03-22 2008-09-02 Intel Corporation Migrating data between storage volumes
US7490283B2 (en) * 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US8429313B2 (en) * 2004-05-27 2013-04-23 Sandisk Technologies Inc. Configurable ready/busy control
US20060044934A1 (en) * 2004-09-02 2006-03-02 Micron Technology, Inc. Cluster based non-volatile memory translation layer
SG130988A1 (en) 2005-09-29 2007-04-26 Trek 2000 Int Ltd Portable data storage device incorporating multiple flash memory units
US7882320B2 (en) 2006-05-23 2011-02-01 Dataram, Inc. Multi-processor flash memory storage device and management system
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
KR100881052B1 (ko) * 2007-02-13 2009-01-30 삼성전자주식회사 플래시 메모리의 매핑 테이블 검색 시스템 및 그에 따른검색방법
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
JP4987962B2 (ja) * 2008-02-29 2012-08-01 株式会社東芝 情報処理装置及び不揮発性半導体メモリドライブ
US7945752B1 (en) * 2008-03-27 2011-05-17 Netapp, Inc. Method and apparatus for achieving consistent read latency from an array of solid-state storage devices

Also Published As

Publication number Publication date
TWI563382B (en) 2016-12-21
WO2010044999A3 (en) 2010-07-01
US20140365720A1 (en) 2014-12-11
KR101418631B1 (ko) 2014-07-14
CN102177556A (zh) 2011-09-07
CN102177556B (zh) 2014-04-09
US20150149712A1 (en) 2015-05-28
KR20110071091A (ko) 2011-06-28
US20160026564A1 (en) 2016-01-28
EP2345037A2 (en) 2011-07-20
US8966165B2 (en) 2015-02-24
EP2345037B1 (en) 2017-04-19
US9405679B2 (en) 2016-08-02
WO2010044999A2 (en) 2010-04-22
EP2345037A4 (en) 2013-01-16
JP2014063511A (ja) 2014-04-10
US9176868B2 (en) 2015-11-03
US20100095084A1 (en) 2010-04-15
TW201022938A (en) 2010-06-16
JP2012505472A (ja) 2012-03-01
US8838876B2 (en) 2014-09-16

Similar Documents

Publication Publication Date Title
JP5736439B2 (ja) ソリッドステート記憶装置におけるトランスレーションレイヤ
US9418017B2 (en) Hot memory block table in a solid state storage device
US8832360B2 (en) Solid state storage device controller with expansion mode
US9671962B2 (en) Storage control system with data management mechanism of parity and method of operation thereof
US8677058B2 (en) Memory system selecting write mode of data block and data write method thereof
TWI436213B (zh) 基於等量記憶體區之非揮發性多階記憶體操作
KR101421366B1 (ko) 메모리 디바이스들 및 시스템들에서의 부트 파티션들
KR20100105127A (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
CN113515466A (zh) 用于多内核之间动态逻辑块地址分布的系统和方法
CN112306386B (zh) 存储装置及其操作方法
CN115132252A (zh) 存储装置及其操作方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150107

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150420

R150 Certificate of patent or registration of utility model

Ref document number: 5736439

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250