説明

複数のフラッシュメモリを内蔵したポータブルデータストレージデバイス

ホストコンピュータ(5)とのデータ伝送のために使用されるポータブルデータストレージデバイスを動作可能にするインターフェース(3)と、インターフェースを制御するためのインターフェースコントローラ(7)とを含むポータブルデータストレージデバイスを開示している。また、不揮発性メモリへのデータの書き込み、およびデータの読み込みを制御するためのマスターコントロールユニット(9)を有している。不揮発性メモリは少なくとも1つの単層セルフラッシュメモリ(11)と少なくとも1つの多層セルフラッシュメモリ(13)を含んでいる。書き込み指令を受け取ると、マスターコントロールユニット(9)は、指令に含まれたデータをいずれのメモリに書き込むべきかを判定し、データを同様に適切に書き込み、読み込み指令を受け取ると、マスターコントロールユニット(9)はメモリ(11,13)における適切な1つからのデータを読み込み、データをデバイスの外部に伝送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のフラッシュメモリを用いるポータブルデータストレージデバイスに関する。
【背景技術】
【0002】
近年、内部フラッシュメモリを有するポータブルデータストレージデバイスを設けることが一般的なことになってきている。そのようなデバイスは、発明の名称が「ポータブルデータストレージデバイス」という国際出願PCT/SG00/00029に開示されている。そこには、コンピュータ(又は他のデバイス)のUSBソケットに差し込まれる一体型のUSBプラグを有するポータブルデータストレージデバイスが記載されている。ポータブルデータストレージデバイスはユーザのデータを格納するためのフラッシュメモリを備えている。市販されているデバイスのメモリサイズは、一般的には少なくとも8MBであり、場合によってはそれより大きいものが用いられている。デバイスの全体のサイズは一般的には握り拳に入るような十分に小さな大きさである。
【0003】
一般的に、市販されているデバイスは、NANDフラッシュメモリを用いている。NANDフラッシュメモリは、単層セル(「SLC」)フラッシュメモリおよび多層セル(「MLC」)フラッシュメモリ、の2つの型式が入手可能である。SLCは、現在、高い読み/書き速度および長い寿命を有しているが、MLCはセル当たり1ビット以上(一般的には2ビット)の記憶が可能に製造されており、SLCより格納されたビット当たりの価格は安いものである。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、複数のフラッシュメモリデバイスを内蔵するポータブルデータストレージデバイスからデータを記憶し、取り込むための新規で有用な方法を提供することを目的とするものであり、特にフラッシュメモリデバイスがSLCおよびMLCのフラッシュメモリデバイスの両方を備えることを提案するものである。
【0005】
これは、SLCおよびMLCの相対的に有利な点の間を交替するデバイスを提供することを可能とするものである。例えば、デバイスの実質的に半分のメモリがSLCにより提供され、そこでそのデバイスはSLCとMLCのものとの間の略中間スピードを有しているが、デバイスはMLC単独で使用されていた場合より安くなる。
【0006】
基本的には、最初にSLCだけを用いるように、(例えば、デバイスがSLCの容量を超えて記憶しなければならないデータの量まで)ポータブルデータストレージデバイスを構成することは可能であろう、それはポータブルデータストレージデバイスの性能が、全データ記憶の機能が最初にSLCを使用して達成した場合と同じくらい高いことを意味している。しかしながら、これは、SLCが使い果たされると同時に性能が急激に落ち込み、デバイスはMLCの使用を始めなければならない。したがって、本発明の好適な実施例は、SLCおよびMLCの両方を初めから使用してデータを記憶するものである。
【課題を解決するための手段】
【0007】
本発明の1つの形態において、論理アドレスのシーケンスがSLCアドレスの1つ以上のブロックに対応し、その次にはMLCアドレスの1つ以上のブロックに対応し、その次にはSLCアドレスの1つ以上のブロック等に対応するように、論理アドレス(即ち、ホストによりポータブルデータストレージデバイスに送られたコマンドのアドレス)は、割り当てられる。したがって、大きな量のデータ(多くのブロック)がポータブルストレージデバイスにおける論理アドレスのシーケンスに書き込まれるとき、SLCメモリおよびMLCメモリの両方に書き込まれる。論理アドレスのシーケンスは、特に、SLCアドレスのブロックの既定の数およびMLCアドレスのブロックの既定の数に交互に対応してもよい。
【0008】
例えば、MLCメモリの実現された幾つかにおいては、MLCブロックがSLCメモリのブロックの2倍の大きさであるので、論理アドレスのシーケンスは、SLCの2つのブロックに対応し、その次にはMLCの1つのブロックに対応し、その次にはSLCの2つのブロック等に対応してもよい。これは、一般的には、大きな量のデータがSLCおよびMLCメモリの同じ量に書き込まれていくことを意味する。
【0009】
論理および物理メモリアドレスの間の対応関係は、マッピングテーブルにより与えられる。一般的なフラッシュメモリ書き込み方式において、物理アドレスのブロックの各々の連続性は、マスターコントロールユニットの制御下における論理アドレスの各セットに対応するようになるので、この対応関係は時間と共に変化する。しかしながら、論理アドレスの所定のセットがいつもSLCメモリのブロックと対応付けられるように、またはいつもMLCメモリのブロックと対応付けられるように、マッピングテーブルが変化することを保証するように構成してもよい。
【発明を実施するための最良の形態】
【0010】
本発明の一実施例であるポータブルデータストレージデバイスは、図1に模式的に示されている。ポータブルデータストレージデバイスは、USBインターフェース3を有する筐体1を含む。USBインターフェースは、外部デバイス、例えばホストコンピュータ5のシリアルバス(代表的にはUSBソケット)に電気的に接続されていてもよい。USBインターフェース3は、筐体1と一体化されており、ホスト5のソケットに挿入するUSBプラグでもよい。その代わりに、他の実施例においては、USBインターフェース3は、USBケーブルのプラグが差し込まれるソケットでもよい。
【0011】
さらに、ポータブルデータストレージデバイスは、USBインターフェース3を制御するUSBコントローラ7を含む。使用中において、ホスト5は、それ自身とポータブルデータストレージデバイスとの間でデータを相互に伝送する。ホストコンピュータ5からUSBインターフェース3へ伝送されたデータは、USBコントローラ7を介してデータパケットの形式でマスターコントロールユニット9に送られる。同様に、インターフェースコントローラ7は、マスターコントロールユニット9から受け取ったデータをインターフェース3を介して送るように構成されている。
【0012】
マスターコントロールユニット9は、例えば8ビットバスであるバス10に接続されている。バス10は、さらに、SLC型NANDフラッシュメモリ11およびMLC型NANDフラッシュメモリ13に接続されている。これらの2つのメモリのそれぞれは、1つ以上の物理的に分割された集積回路を含んでもよい。メモリ11,13は、ページのブロックで構成されている。代表的には、データの物理的なページは2048バイトで構成されている。代表的には、SLCメモリユニット11におけるデータのブロックは、64ページで構成され、MLCフラッシュメモリユニットにおけるデータのブロックは、128ページで構成されている。
【0013】
更に、マスターコントロールユニット9は、コントロールライン15の各セットにより、フラッシュメモリ11,13のそれぞれに接続されている。コントロールラインの各セットは、ENABLE、ALE、WRITEおよびREAD信号という制御信号を伝送する。
【0014】
マスターコントロールユニット9がメモリにデータを書き込むことを実行するとき、2つのメモリ11,13の1つにENABLE信号を送ることにより、そのメモリが動作可能な状態となる(したがって、2つのメモリ11,13のうちの1つは、1度は動作可能な状態となる。)。同時に、マスターコントロールユニット9は、動作可能なメモリにALE信号およびWRITE信号を送る。そこで、マスターコントロールユニット9は、アドレスデータ及び記憶されるべきデータを動作可能なメモリに8ビットバスを介して書き込む。動作可能なメモリユニット11,13は、アドレスデータにより示された位置にデータを記憶する。動作可能でないメモリユニット11,13は動作しない。
【0015】
同様に、メモリコントロールユニットがメモリ11,13の1つからデータを読むことを実行するとき、メモリコントロールユニットはそのメモリにENABLE信号を送るためにコントロールラインの1つを使用して、そのメモリ11,13を動作可能とする。そこで、メモリコントロールユニットは、他のコントロールラインを使用して動作可能なメモリにALE信号およびREAD信号を送り、そして8ビットバスを使用して動作可能なメモリにアドレスデータを送る。動作可能なメモリ11,13は、アドレスデータに対応する物理的な位置にデータをバス10により伝送する。
【0016】
本実施例により実行されるアルゴリズムを以下に説明する。説明を簡単にするために、SLC型NANDフラッシュメモリユニット11およびMLC型NANDフラッシュメモリユニット13は、それぞれが異なるアドレスマッピングテーブルを有しており、このアドレスマッピングテーブルは論理アドレスに対する各メモリ11,13内の物理アドレスをそれぞれにマッピングする。これらのアドレスマッピングテーブルは、一般的にはポータブルデータストレージデバイス内のRAM(図示無し)に記憶されており、これらをあわせて単一のマスターマッピングテーブルが構成されている。
【0017】
代表的な例において、ホスト3から受け取った、またはホスト3に伝送されたデータは、512バイトのサイズの論理ページに構成されている。しかしながら、前述のように、一般的には、データの物理的ページは2048バイトで構成されている。一般的に、SLCメモリユニット11におけるデータのブロックは64ページで構成されており、MLCフラッシュメモリユニットのデータのブロックは128ページで構成されている。
【0018】
図2を参照すると、特に図2Aを参照すると、ポータブルデータストレージデバイスがホスト3にプラグが差し込まれたとき、初期プロセスが開始し(ステップ21)、マスターコントロールユニット9およびUSBコントローラユニット7を初期化し、ホスト3がフラッシュのIDおよび、その位置と容量を判定する。
【0019】
初期プロセスの後、マスターコントロールユニット9はホスト3からの指令(データパケット)を受け取る準備を行う(ステップ23)。一度、ホスト3からの指令を受け取ると、マスターコントロールユニット9は受け取ったパケットが読み込みパケットか書き込みパケットかを判定する(ステップ25)。
【0020】
もしデータパケットが読み込みパケットであれば、マスターコントロールユニット9は、論理アドレスに対応するメモリ11,13がいずれであるかを、そのパケットにより特定された論理アドレスに基づき算出する(ステップ26)。そこで、それぞれのアドレスマッピングテーブルにより特定されたアドレスで判定されたメモリ11,13からのデータが読み込まれ(ステップ27)、そして次のパケットが受け取られるまで、その方法は終了となる(これは、ステップ23に戻るボックス「5」として図2に示されている。)。
【0021】
一方、もしデータパケットが書き込みパケットであれば、マスターコントロールユニット9は、ページ1を書き込むべきいずれかのメモリ11,13を算出する(ステップ28)。
【0022】
NANDフラッシュメモリ11,13の型式が選択された後、マスターコントロールユニット9は、RAMから対応するアドレスマッピングテーブルをリコールし(ステップ29)、それを論理アドレスに対応する物理アドレスを検出するために使用する。
【0023】
その次に、マスターコントロールユニットは物理アドレスのページが消去されたか否かを判定する(ステップ30)。もし消去されていなければ、マスターコントロールユニットは、新しいブロックを選択し、論理アドレスに対応するページの直前の古いブロックのページを新しいブロックにコピーする、そして書き込みパケットにおけるデータを論理アドレスに対応する新しいブロックのページに書き込む動作を実行する(ステップ31)。
【0024】
この方法は、次に、図2Cに示されたフロー図の部分に行く。ステップ36において、丁度書き込まれたページが新しいブロックの最後のページであるか否かを判定する。もしそうであれば、メモリマッピングアドレステーブルは、更新され、古いブロックは消去され(ステップ37)、そしてこの方法は終了する。反対に、ステップ36において判定が否定的であれば、この方法は、連続的に続くページに関して他の書き込みパケットが所定時間内に到着しているか否かをモニターする(ステップ38)。もし到着していれば、そのページのためのデータが同じ新しいブロックに書き込まれ(ステップ39)、そしてその次にこの方法はステップ36に戻る。逆に、もし、到着していなければ、ステップ40において、マスターコントロールユニット9は古いブロックの連続するページを新しいブロックにコピーし、その次にステップ37へ行き、マッピングテーブルを更新し、古いブロックを消去する。そこで、この方法は再び終了する。
【0025】
図2Aを参照すると、ステップ30において、判定が肯定的であれば、書き込み動作は、フラッシュのどの型式が書き込まれているかによって決まるSLCまたはMLCコマンドを使用して実行される(ステップ32)。この動作において、マスターコントロールユニット9は、書き込み動作の準備のため、NANDフラッシュメモリ11,13をチップイネーブルにするように、選択されたNANDフラッシュメモリ11,13にENABLE制御信号を送る。その次に、マスターコントロールユニット9は、NANDフラッシュメモリ11,13における物理アドレスを特定するデータ、およびそこに書き込まれるデータを送る。
【0026】
ページがフラッシュメモリ11,13に書き込まれた後においては、マスターコントロールユニット9がホスト5から入ってくる書き込みパケットをモニターする(ステップ33)。もし書き込みパケットを定められた時間内に受信しなかった場合には、書き込まれたデータをそのフラッシュにプログラミングするステップが実行される(ステップ34)。(書き込みステップ32は、データがフラッシュメモリの中にあることを意味しているが、もし電源が遮断された場合、プログラミングステップ34無しではそのデータが失われるであろう。以下のプログラミングステップ34では、そのデータが電源遮断されても保持されるであろう。)
【0027】
しかしながら、もしステップ33で新しいパケットを受け取ったと判定したとき、この方法は図2Bに示されたフロー図の部分に行く。ステップ45において、新しいパケットが書き込みパケットか否かが判定される。もし書き込みパケットでなければ、この方法はステップ34に戻る。反対に、もし書き込みパケットであるなら、この方法は、ステップ32において実行された書き込み動作が物理ページの最後の部分か否かが判定される(ステップ46)。もしそうであるなら、ステップ47において新しいページが選択される。
【0028】
如何なる場合においても、新しい書き込みパケットのための対応する物理アドレスは、ステップ48において、適切なアドレスマッピングテーブルから判定される。ステップ49において、この物理アドレスを有するページが消去されたか否かが判定される。もし消去されていなければ、ステップ51は、図2Aのステップ31と同等のことを実行し、そこでこの方法は図2Cのステップに行く。若しくは、もしそうならば、書き込み動作(ステップ50)が実行され(図2Aのステップ32と同等)、そしてこの方法はステップ33に戻る。
【0029】
前述のように、マスターマッピングテーブル(即ち、2つのアドレスマッピングテーブル)は、論理アドレスと物理アドレスとの間のマッピングを判定する。上記のように、SLCメモリ11の大きなブロックは、代表的には64ページ有しており、一方、MLCメモリ13の大きなブロックは128ページ有している。この場合において、マスターマッピングテーブルは、論理アドレスのシーケンスがSLCメモリ11の2つのブロックに対応し、その次にMLCメモリ13の1つのブロックに対応し、その次にSLCメモリ11の2つのブロック等に対応するようになっている。したがって、もしデータが連続的な論理アドレスに書き込まれた場合、マスターコントロールユニット9はSLCフラッシュメモリ11を動作可能な状態とし、そのメモリ11にデータの1つのブロックを送り、そしてその次にマスターコントロールユニット9はMLCフラッシュメモリユニット13を動作可能な状態とし、そのメモリユニット13にデータの2つのブロックを送る。このプロセスは、データの所望のブロックの全てが各フラッシュメモリユニットに送られるまで繰り返される。
【0030】
i もしデータがSLCフラッシュメモリ11に書き込まれるものであるなら、マスターコントロールユニット9はMLCメモリ13に切り換える前にSLCメモリ11に2つのブロックを書き込む。
ii もしデータがMLCフラッシュメモリ13に書き込まれるものであるなら、マスターコントロールユニット9は1つのブロックだけを書き込む。丁度書き込まれたページがブロックの最後のページであると判定されたとき、マスターコントロールユニット9は次の書き込み動作のために、SLCフラッシュメモリ11を動作可能な状態とする。
【0031】
ステップ31および51において、新しい物理ブロックが論理アドレスのセットと関連しているとき、もし論理アドレスの所定のセットがSLCメモリに予め対応していたならば、真実であるとしてこれを続け、そして、もし論理アドレスの所定のセットがMLCメモリに予め対応していたならば、真実であるとしてこれを続ける。言い換えれば、各アドレスマッピングテーブルは、論理アドレスがそれらの間で取り替えられることなく独立して更新される。
【0032】
本発明のただ1つの実施例を詳細に述べたが、当業者には明確であるように、多くの変形例が請求の範囲の範囲内で可能である。
【図面の簡単な説明】
【0033】
【図1】本発明の一実施例の概略ブロック図である。
【図2A】図1の実施例の動作のフロー図であり、図2は図2A、図2Bおよび図2Cで構成される。
【図2B】図1の実施例の動作のフロー図であり、図2は図2A、図2Bおよび図2Cで構成される。
【図2C】図1の実施例の動作のフロー図であり、図2は図2A、図2Bおよび図2Cで構成される。

【特許請求の範囲】
【請求項1】
(a)ホストコンピュータとデータ伝送を行うために使用されるポータブルデータストレージデバイスを動作可能とするためのインターフェース、
(b)前記インターフェースを制御するためのインターフェースコントローラ、
(c)少なくとも1つの単層セル(SLC)フラッシュメモリと少なくとも1つの多層セル(MLC)フラッシュメモリを備える不揮発性メモリ、および
(d)前記不揮発性メモリにデータへの書き込み、および前記不揮発性メモリからのデータの読み込みを制御するためのマスターコントローラ、を有するポータブルデータストレージデバイスであって、
前記マスターコントローラは、
前記インターフェースが前記ホストから書き込み指令を受け取ったとき、前記フラッシュメモリの中から1つのフラッシュメモリを識別するように、そして識別されたフラッシュメモリに書き込み指令により特定されたデータを書き込むように、および
前記インターフェースが前記ホストから読み込み指令を受け取ったとき、前記フラッシュメモリの中から1つのフラッシュメモリを識別するように、そして識別されたフラッシュメモリからのデータを読み込むように、構成されているポータブルデータストレージデバイス。
【請求項2】
マスターコントロールユニットは、前記指令に含まれた論理アドレスに基づいて、およびマッピングテーブルを使用して前記フラッシュメモリを識別するように構成されており、前記マッピングテーブルは、物理アドレスと論理アドレスとの間のマッピングを記憶するように構成されており、前記マッピングテーブルにおいて、論理アドレスのシーケンスがSLCアドレスのブロックの所定の数、およびMLCアドレスのブロックの所定の数と交互に対応するよう構成されている請求項1に記載のデバイス。
【請求項3】
前記単層セルフラッシュメモリのブロックの所定の数は、前記多層セルフラッシュメモリのブロックの所定の数より高い請求項2に記載のデバイス。
【請求項4】
前記単層セルフラッシュメモリのブロックの所定の数が2であり、前記多層セルフラッシュメモリのブロックの所定の数が1である請求項3に記載のデバイス。
【請求項5】
(a)ホストコンピュータとデータ伝送を行うために使用されるポータブルデータストレージデバイスを動作可能とするためのインターフェース、
(b)前記インターフェースを制御するためのインターフェースコントローラ、
(c)少なくとも1つの単層セル(SLC)フラッシュメモリと少なくとも1つの多層セル(MLC)フラッシュメモリを備える不揮発性メモリ、および
(d)前記不揮発性メモリにデータへの書き込み、および前記不揮発性メモリからのデータの読み込みを制御するためのマスターコントローラ、を有するポータブルデータストレージデバイスにおけるデータ格納方法であって、
前記方法は、
(i)前記ホストからの書き込み指令を受け取ること、
(ii)前記フラッシュメモリの中から1つのフラッシュメモリを識別すること、
(iii)前記識別されたフラッシュメモリに書き込み指令により特定されたデータを書き込むこと、を有するデータ格納方法。
【請求項6】
前記フラッシュメモリを識別する前記ステップ(ii)は、前記書き込み指令から1つの論理アドレスを抽出すること、およびマッピングテーブルから前記不揮発性メモリにおける物理アドレスを取得することを含み、前記マッピングテーブルは、物理アドレスと論理アドレスとの間のマッピングを記憶し、前記マッピングテーブルにおいて、論理アドレスのシーケンスがSLCアドレスのブロックの所定の数、およびMLCアドレスのブロックの所定の数と交互に対応する請求項5に記載の方法。
【請求項7】
前記単層セルフラッシュメモリのブロックの所定の数は、前記多層セルフラッシュメモリのブロックの所定の数より高い請求項6に記載の方法。
【請求項8】
前記単層セルフラッシュメモリのブロックの予め定められた数が2であり、前記多層セルフラッシュメモリのブロックの予め定められた数が1である請求項7に記載の方法。
【請求項9】
データを書き込む前記ステップ(iii)は、
取得された物理アドレスを有する不揮発性メモリが消去されたか否かを判定すること、
前記判定が肯定的であれば、取得された物理アドレスに前記データを書き込むこと、および
前記判定が否定的であれば、前記論理アドレスに新しいブロックを割り当てること、を含み、
前記取得された物理アドレスおよび前記割り当てられたブロックは、両方が単層セル(SLC)フラッシュメモリである、若しくは両方が多層セル(MLC)フラッシュメモリである請求項6乃至8のいずれか一項に記載の方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate


【公表番号】特表2009−524145(P2009−524145A)
【公表日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2008−551232(P2008−551232)
【出願日】平成18年12月13日(2006.12.13)
【国際出願番号】PCT/SG2006/000388
【国際公開番号】WO2007/084079
【国際公開日】平成19年7月26日(2007.7.26)
【出願人】(502158287)トレック・2000・インターナショナル・リミテッド (21)
【Fターム(参考)】