(57)【要約】【課題】  フラッシュメモリを制御する装置および方法に関し、所定の揮発性メモリに格納されたフラッシュメモリの制御情報をフラッシュメモリの種類が変わる毎に更新し、更新された制御情報を用いて変更されたフラッシュメモリを制御するフラッシュメモリを制御する装置および方法を提供する。【解決手段】  フラッシュメモリを制御する装置は、自身の制御情報を格納するフラッシュメモリと、前記フラッシュメモリを制御するためのプログラミングコードを格納する第１メモリと、前記プログラミングコードに前記制御情報を代入することによって、前記フラッシュメモリを制御するための制御コードを生成する制御部と、および前記制御コードを送信する送受信部とを含む。【選択図】  図２
2007226798.tif 000002
【特許請求の範囲】
【請求項１】
自身の制御情報を格納するフラッシュメモリと、
前記フラッシュメモリを制御するためのプログラミングコードを格納する第１メモリと、
前記プログラミングコードに前記制御情報を代入することによって、前記フラッシュメモリを制御するための制御コードを生成する制御部と、
前記制御コードを送信する送受信部とを含むフラッシュメモリを制御する装置。
【請求項２】
前記制御情報は、ダイの数、前記ダイ別プレーンの数、ブロックの数、ページの大きさ、前記ブロック別前記ページの数、前記ページ別セクタの数、バッドマークの位置、キャッシュオペレーションの支援有無およびコピーバックオペレーションの支援有無のうち少なくとも１つを含む請求項１に記載のフラッシュメモリを制御する装置。
【請求項３】
前記第１メモリは、非揮発性メモリを含む請求項１に記載のフラッシュメモリを制御する装置。
【請求項４】
前記第１メモリは、ユーザによって任意に選択された特定フラッシュメモリに対する制御情報を格納する請求項１に記載のフラッシュメモリを制御する装置。
【請求項５】
前記制御部は、前記フラッシュメモリと前記特定フラッシュメモリとが同一である場合、前記プログラミングコードに前記特定フラッシュメモリに対する制御情報を代入することによって、前記フラッシュメモリを制御するための制御コードを生成する請求項４に記載のフラッシュメモリを制御する装置。
【請求項６】
前記制御情報を臨時的に格納する第２メモリをさらに含む請求項１に記載のフラッシュメモリを制御する装置。
【請求項７】
前記第２メモリは、揮発性メモリを含む請求項６に記載のフラッシュメモリを制御する装置。
【請求項８】
（ａ）フラッシュメモリから制御情報を受信するステップと、
（ｂ）所定のプログラミングコードに前記制御情報を代入することによって、前記フラッシュメモリを制御するための制御コードを生成するステップと、
（ｃ）前記制御コードを送信するステップとを含むフラッシュメモリを制御する方法。
【請求項９】
前記制御情報は、ダイの数、前記ダイ別プレーンの数、ブロックの数、ページの大きさ、前記ブロック別前記ページの数、前記ページ別セクタの数、バッドマークの位置、キャッシュオペレーションの支援有無およびコピーバックオペレーションの支援有無のうち少なくとも１つを含む請求項８に記載のフラッシュメモリを制御する方法。
【請求項１０】
前記プログラミングコードは、非揮発性メモリの第１メモリに格納されている情報である請求項８に記載のフラッシュメモリを制御する方法。
【請求項１１】
前記第１メモリに、ユーザによって任意に選択された特定フラッシュメモリに対する制御情報を格納するステップを含む請求項１０に記載のフラッシュメモリを制御する方法。
【請求項１２】
前記（ｂ）ステップは、前記フラッシュメモリと前記特定フラッシュメモリとが同一である場合、前記プログラミングコードに前記特定フラッシュメモリに対する制御情報を代入することによって、前記フラッシュメモリを制御するための制御コードを生成するステップを含む請求項１１に記載のフラッシュメモリを制御する方法。
【請求項１３】
前記制御情報を臨時的に格納するステップをさらに含む請求項８に記載のフラッシュメモリを制御する方法。
【請求項１４】
前記臨時的に格納される制御情報は揮発性メモリに格納される請求項１３に記載のフラッシュメモリを制御する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ（登録商標）を制御する装置および方法に関し、より詳しくは、所定の揮発性メモリに格納されたフラッシュメモリの制御情報をフラッシュメモリの種類が変わる毎に更新して、更新された制御情報を用いて変更されたフラッシュメモリを制御するフラッシュメモリを制御する装置および方法に関するものである。
【背景技術】
【０００２】
フラッシュメモリは、持続的に電源が供給される非揮発性メモリとして、ブロック単位で内容を消去することができ、再びプログラムすることもできる。フラッシュメモリは、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）の変形のうちの１つであるが、バイトレベルで消去することもできて修正することもできるＥＥＰＲＯＭとは異なり、ブロック単位で修正されるために速度が速い。フラッシュメモリは、度々パーソナルコンピュータ（PC）のバイオス（ＢＩＯＳ）のような制御コードを格納するのに用いられる。バイアスを修正しなければならない必要がある時、フラッシュメモリはバイト単位でないブロック単位で記録されるために修正が易しい。一方、フラッシュメモリが一般のラムのように流用できない理由は、ラムがブロックでないバイト単位のアドレス指定が可能でなければならないためである。
【０００３】
フラッシュメモリは、メモリセルの一部分が閃光（フラッシュ）のように、ただ一度の動作によって消去することができるようにマイクロチップが組織化されているために、このような名前を得た。削除はファウラーノルドハイム（Ｆｏｗｌｅｒ−Ｎｏｒｄｈｅｉｍ）トンネル効果によって生じるが、電子が薄い誘電体物質を貫通して、各メモリセルと結合している浮遊ゲートから電荷を除去する。
【０００４】
フラッシュメモリは、ＤＲＡＭのように単純に記憶装置とリフレッシュ（ｒｅｆｒｅｓｈ）回路、エラー訂正回路だけを有する受動的なデバイスではなく、プログラマーの命令を受けてこれを行う能動的なデバイスである。命令はＣＵＩ（Ｃｏｍｍａｎｄ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を介して形成され、システム全体の状態はＷＳＭ（Ｗｒｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）が管理する。提供されている命令の種類には、読み出し命令、書き込み命令およびその他の制御命令がある。
【０００５】
図１は、従来のフラッシュメモリ制御システムを示す図面であり、フラッシュメモリ制御システムはフラッシュメモリコントローラ１０およびフラッシュメモリ２０を含んで構成される。
【０００６】
ここで、フラッシュメモリコントローラ１０は、コアプロセッサ１１、ＯＴＰメモリ（Ｏｎｅ−Ｔｉｍｅ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｍｅｍｏｒｙ）１２、状態確認部１３および制御コード送信部１４を含んで構成される。
【０００７】
ＯＴＰメモリ１２は、フラッシュメモリ２０を制御するための制御コードを格納する役割をする。制御コードには、読み出し制御コード、書き込み制御コード、リセット制御コードおよびブロックロック（Ｂｌｏｃｋ  Ｌｏｃｋｉｎｇ）制御コードなどが含まれる。
【０００８】
状態確認部１３は、フラッシュメモリ２０の状態を確認する役割をする。すなわち、フラッシュメモリ２０が現在動作中であるか待機中であるかを確認するものである。
【０００９】
制御コード送信部１４は、ＯＴＰメモリ１２に格納された制御コードをフラッシュメモリ２０に送信する役割をする。
【００１０】
コアプロセッサ１１は、状態確認部１３によって確認されたフラッシュメモリ２０の状態を参照してＯＴＰメモリ１２から制御コードを抽出し、制御コード送信部１４によって抽出される制御コードを送信させるようにする。そして、コアプロセッサ１１は、ＯＴＰメモリ１２、状態確認部１３および制御コード送信部１４に対する全般的な制御を行う。
【００１１】
ここで、特定フラッシュメモリに対する制御コードだけを格納しているため、フラッシュメモリの種類が変わる場合、フラッシュメモリコントローラ１０は新しいフラッシュメモリを制御できなくなる。
【００１２】
したがって、互いに異なる制御情報を有するフラッシュメモリを制御するためには対応する制御コードを格納しているＯＴＰメモリが備えられた別のフラッシュメモリコントローラが必要であり、これによる費用の損失が発生する。
【００１３】
特許文献１は、メモリ要求に応答して、非揮発性メモリおよび揮発性メモリのアクセスを制御し、揮発性メモリに格納されたデータのアドレス情報を格納するメモリを含むメモリコントローラと、ナンドフラッシュメモリと、ナンドフラッシュメモリのデータを格納するラム等から構成されているメモリシステムを開示している。
【００１４】
しかし、これはラムにナンドフラッシュメモリのデータを格納するためには別の作業を行わなければならない不便さが存在する。例えば、互いに異なるフラッシュメモリを順次制御するために、ユーザはフラッシュメモリを交換する度毎にラムに新しいナンドフラッシュメモリのデータを格納しなければならないのである。
【００１５】
したがって、互いに異なるフラッシュメモリに対する制御を簡便に行えるようにする発明の登場が要求される。
【特許文献１】米国公開特許第２００５−１８２８９３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、所定の揮発性メモリに格納されたフラッシュメモリの制御情報をフラッシュメモリの種類が変わる毎に更新し、更新された制御情報を用いて変更されたフラッシュメモリを制御することにその目的がある。
【００１７】
また、本発明は、制御情報を格納しているフラッシュメモリから制御情報を抽出し、抽出された制御情報を用いてフラッシュメモリを制御できるようにすることにその目的がある。
【００１８】
本発明の目的は、以上で言及した目的に制限されず、言及していないまた他の目的は下記記載によって当業者が明確に理解できるものである。
【課題を解決するための手段】
【００１９】
前記目的を達成するために、本発明の一態様に係わるフラッシュメモリを制御する装置は、自身の制御情報を格納するフラッシュメモリと、前記フラッシュメモリを制御するためのプログラミングコードを格納する第１メモリと、前記プログラミングコードに前記制御情報を代入することによって、前記フラッシュメモリを制御するための制御コードを生成する制御部と、および前記制御コードを送信する送受信部とを含む。
【００２０】
本発明の他の態様に係わるフラッシュメモリを制御する方法は、（ａ）フラッシュメモリから制御情報を受信するステップと、（ｂ）所定のプログラミングコードに前記制御情報を代入することによって、前記フラッシュメモリを制御するための制御コードを生成するステップと、（ｃ）前記制御コードを送信するステップとを含む。
【発明の効果】
【００２１】
前記のような本発明のフラッシュメモリを制御する装置および方法によれば、次のような効果が１つあるいはそれ以上ある。
【００２２】
第１に、所定の揮発性メモリに格納されたフラッシュメモリの制御情報をフラッシュメモリの種類が変わる毎に更新し、更新された制御情報を用いて変更されたフラッシュメモリを制御することによって、フラッシュメモリの種類に応じた別のフラッシュメモリコントローラを備えなければならない費用を節減できる利点がある。
【００２３】
第２に、制御情報を格納しているフラッシュメモリから制御情報を抽出し、抽出された制御情報を用いてフラッシュメモリを制御することによって、互いに異なるフラッシュメモリに対する制御を簡便に行える利点もある。
【発明を実施するための最良の形態】
【００２４】
その他、実施形態の具体的な事項は、詳細な説明および図面に含まれている。
本発明の利点および特徴、そしてそれらを達成する方法は、添付する図面と共に詳細に後述する実施形態を参照すれば明確になる。しかし、本発明は以下にて開示する実施形態に限定されず、互いに異なる多様な形態によって実施され、単に本実施形態は本発明の開示が完全なものとなるようにし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであって、本発明は請求項の範疇によってのみ定義されるものである。明細書の全体に亘り、同一参照符号は同一構成要素を示す。
【００２５】
以下、添付した図面を参照して、本発明の好ましい実施形態を詳細に説明することにする。
【００２６】
図２は、本発明の実施形態に係わるフラッシュメモリを制御する装置を示すブロック図であって、フラッシュメモリを制御する装置（以下、フラッシュメモリ制御装置という）１００はフラッシュメモリ制御部２００およびフラッシュメモリ３００を含んで構成され、フラッシュメモリ制御部２００は制御情報受信部２１０、制御部２２０、状態確認部２３０、第１メモリ２４０および第２メモリ２５０、送受信部２６０を含んで構成される。
【００２７】
フラッシュメモリ３００は、自身の制御情報を格納する役割をする。フラッシュメモリ３００は、持続的に電源が供給される非揮発性メモリとして、ブロック単位で内容を消去することができ、再びプログラムすることもできるが、ここで、制御情報はフラッシュメモリ３００を制御するために必要な情報としてダイ（ｄｉｅ）の数、ダイ別プレーン（ｐｌａｎｅ）の数、ブロック（ｂｌｏｃｋ）の数、ページ（ｐａｇｅ）の大きさ、ブロック別前記ページの数、ページ別セクタの数、バッドマーク（ｂａｄ  ｍａｒｋ）の位置、キャッシュオペレーション（ｃａｃｈｅ  ｏｐｅｒａｔｉｏｎ）の支援有無およびコピーバックオペレーション（ｃｏｐｙ  ｂａｃｋ  ｏｐｅｒａｔｉｏｎ）の支援有無のうち少なくとも１つを含む。
【００２８】
例えば、フラッシュメモリ３００のデータを読み取る作業、フラッシュメモリ３００にデータを書き込む作業、フラッシュメモリ３００のデータを消去する作業、フラッシュメモリ３００のリセットおよびブロックのロック作業などのための情報が制御情報に含まれている。
【００２９】
ここで、ブロックのロックとは、フラッシュメモリ３００にデータを書き込んだり、フラッシュメモリ３００のデータを削除する場合に必要とする時間に、格納されたデータが読み取られたり、他の命令が実行されたりしないようにブロックの接近を制限することを意味する。
【００３０】
第１メモリ２４０は、フラッシュメモリ３００を制御するためのプログラミングコードを格納する役割をする。プログラミングコードは、フラッシュメモリ３００に対する読み出し、書き込みおよびその他の制御のためのコードであって、特定のフラッシュメモリのみに限定されて使われず、すべてのフラッシュメモリに適用されるためにフラッシュメモリの固有情報は含まれないことがある。
【００３１】
また、第１メモリ２４０は、ユーザによって任意に選択された特定フラッシュメモリに対する制御情報を格納することもできる。例えば、ユーザは自身が主に作業する特定の１つのフラッシュメモリに対する制御情報を第１メモリ２４０に格納させることによって、フラッシュメモリに格納された制御情報を第２メモリ２５０に格納する過程が省約されるようにできる。ここで、第１メモリ２４０は複数の特定フラッシュメモリに対する制御情報を格納することもできる。
【００３２】
第１メモリ２４０は、非揮発性メモリであることが好ましいが、費用節減のためにＯＴＰ（Ｏｎｅ−Ｔｉｍｅ  Ｐｒｏｇｒａｍｍａｂｌｅ）メモリであることがより好ましい。これによって、第１メモリ２４０に格納されたプログラミングコードおよび特定フラッシュメモリの制御情報は、一旦格納されると更新されないことがあり得る。
【００３３】
第２メモリ２５０は、フラッシュメモリ３００の制御情報を臨時的に格納する役割をする。ここで、フラッシュメモリ３００の制御情報はフラッシュメモリ３００から受信したものであり得、別に入力されたものでもあり得る。例えば、フラッシュメモリ３００を制御するためにフラッシュメモリ３００に格納された制御情報が受信され、これが第２メモリ２５０に臨時的に格納されることもでき、フラッシュメモリ３００を更新するために入力された制御情報がフラッシュメモリ３００に送信される前に臨時的に格納されることもできる。
【００３４】
制御部２２０は、プログラミングコードに制御情報を代入することによって、フラッシュメモリ３００を制御するための制御コードを生成する役割をする。ここで、制御情報は第１メモリ２４０に格納されたものでもあり得、第２メモリ２５０に格納されたものでもあり得るし、フラッシュメモリ３００から直接抽出されたものでもあり得る。
【００３５】
例えば、第２メモリ２５０が備わっていない場合、制御部２２０はフラッシュメモリ３００に格納された制御情報と第１メモリ２４０に格納された制御情報とを比較し、その結果、２つが同じであれば第１メモリ２４０に格納された制御情報をプログラミングコードに代入して制御コードを生成し、２つが同じでなければフラッシュメモリ３００から抽出した制御情報をプログラミングコードに代入して制御コードを生成する。
【００３６】
一方、第２メモリ２５０が備わっている場合制御部２２０は、フラッシュメモリ３００に格納された制御情報と第１メモリ２４０に格納された制御情報とを比較し、その結果、２つが同じであれば第１メモリ２４０に格納された制御情報をプログラミングコードに代入して制御コードを生成し、２つが同じでなければフラッシュメモリ３００から抽出した制御情報を第２メモリ２５０に格納した後に第２メモリ２５０に格納された制御情報をプログラミングコードに代入して制御コードを生成する。
【００３７】
また、制御部２２０は、制御情報受信部２１０、状態確認部２３０、第１メモリ２４０、第２メモリ２５０、送受信部２６０、フラッシュメモリ３００およびフラッシュメモリ制御装置１００の全般的な制御を行う。
【００３８】
送受信部２６０は、制御部２２０で生成された制御コードをフラッシュメモリ３００に送信する役割をする。また、送受信部２６０は、フラッシュメモリ３００に格納された制御情報を第２メモリ２５０に格納するためにフラッシュメモリ３００の制御情報を受信する役割も行い、フラッシュメモリ３００を更新するための更新された制御情報をフラッシュメモリ３００に送信する役割も行う。
【００３９】
制御情報受信部２１０は、フラッシュメモリ３００を更新するための新しい制御情報を受信する役割をする。受信した制御情報は、送受信部２６０を介して直接フラッシュメモリ３００に伝達されることができ、第２メモリ２５０に臨時的に格納された後にフラッシュメモリ３００に伝達されることもできる。フラッシュメモリ３００が更新されれば、更新されたフラッシュメモリ３００は新しい制御情報を格納するようになるが、以後更新されたフラッシュメモリ３００が制御される場合、新しい制御情報に対応する制御コードが制御部２２０によって生成されて更新されたフラッシュメモリ３００に伝達される。
【００４０】
状態確認部２３０は、フラッシュメモリ３００の状態を確認する。すなわち、フラッシュメモリ３００が現在読み出し作業中であるか、書き込み作業中であるか、またはその他の制御作業中であるかを確認するものであり、制御部２２０は状態確認部２３０によって確認されたフラッシュメモリ３００の状態を参照し、フラッシュメモリ３００での制御コード送信有無を決定する。
【００４１】
図３は、本発明の実施形態に係わる制御情報が格納されたフラッシュメモリを示す図面である。
【００４２】
フラッシュメモリ３００は、大ブロックフラッシュメモリ（Ｌａｒｇｅ  Ｂｌｏｃｋ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ）３１０と小ブロックフラッシュメモリ（Ｓｍａｌｌ  Ｂｌｏｃｋ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ）３２０とに区分されるが、これによって各ブロックに含まれたセクタの配置が変われる。すなわち、大ブロックフラッシュメモリ３１０の場合に１つのページに複数のセクタが存在する一方、ブロックフラッシュメモリ３２０の場合に１つのページに１つのセクタが存在する。
【００４３】
したがって、フラッシュメモリ３００の制御情報は、最初のブロック３１１，３２１の最初のページ３１２，３２２のうちの最初のセクタ３１３，３２３に格納されることが好ましい。なぜならば、フラッシュメモリ３００の制御情報が任意の位置に格納されている場合にフラッシュメモリ３００の制御情報を知らないフラッシュメモリ制御部２００は、その制御情報を抽出するための制御コードを送信できないためである。
【００４４】
また、制御情報はユーザによって設定された任意の位置に格納されることもできるが、この時フラッシュメモリ制御部２００はすべてのフラッシュメモリに対してユーザによって設定された位置で制御情報を抽出することができる。
【００４５】
そして、制御情報を格納しているフラッシュメモリ３００は、その他のデータを格納するにおいて制御情報が格納されている領域を除いた領域だけを用いて、その他のデータを格納して更新することができる。
【００４６】
図４は、本発明の実施形態に係わる制御情報がフラッシュメモリに伝達されることを示す概念図である。
【００４７】
フラッシュメモリ３００を製作するにおいて、ユーザはフラッシュメモリ３００に制御情報４３０を挿入することができる。この時、フラッシュメモリ制御部２００を用いて制御情報４３０を挿入することができるが、フラッシュメモリ制御部２００の制御情報受信部２１０は制御情報４２０を受信し、受信した制御情報４２０は第２メモリ２５０に臨時的に格納されながら、臨時的に格納された制御情報４２０は送受信部２６０を介してフラッシュメモリ３００に送信される。
【００４８】
この時、制御情報４２０は、図３を介して前述したように最初のブロック３１１，３２１の最初のページ３１２，３２２のうちの最初のセクタ３１３，３２３に格納され、ユーザによって設定された別途の位置に格納されることもできる。
【００４９】
フラッシュメモリ制御部２００は、特定フラッシュメモリだけでなく、すべてのフラッシュメモリに対する制御情報挿入を行うこともできるため、これによって送受信部２６０とフラッシュメモリ３００とが連結する結合手段においては、フラッシュメモリ３００の結合および結合解除が容易であることが好ましい。そして、フラッシュメモリ制御部２００は、結合したフラッシュメモリ３００に対応する制御情報４２０をユーザから受信してフラッシュメモリ３００に挿入する。
【００５０】
一方、フラッシュメモリ制御部２００は、結合したフラッシュメモリ３００がユーザによって任意に選択された特定フラッシュメモリである場合、第１メモリ２４０に格納している特定フラッシュメモリの制御情報を結合したフラッシュメモリ３００の所定領域に挿入することもできる。この時、第１メモリ２４０に格納されている制御情報は、複数の特定フラッシュメモリに対する制御情報でもあり得る。すなわち、互いに異なる複数の制御情報が第１メモリ２４０に格納されているものであるが、この時、フラッシュメモリ制御部２００は、フラッシュメモリ３００から受信したフラッシュメモリ３００の固有ＩＤ４１０を用いて伝達しなければならない制御情報４３０を抽出することができる。
【００５１】
例えば、フラッシュメモリ３００は、フラッシュメモリ制御部２００との連結と同時に自身の固有ＩＤ４１０を送信し、これを受信したフラッシュメモリ制御部２００は固有ＩＤ４１０に対応する制御情報があるかを確認した後に、対応する制御情報があればこれを抽出してフラッシュメモリ３００に送信し、対応する制御情報がなければ制御情報受信部２１０を介してユーザから入力された制御情報４２０をフラッシュメモリ３００に送信する。
【００５２】
上述したように、フラッシュメモリ３００は、大ブロックフラッシュメモリ３１０と小ブロックフラッシュメモリ３２０とに区分され、各々のフラッシュメモリ３１０，３２０に対する書き込み方式が異なり得る。したがって、制御情報４３０をフラッシュメモリ３００に挿入するにおいて、フラッシュメモリ制御部２００はフラッシュメモリ３００の種類に対応する２つの方式を試みることができる。
【００５３】
図５は、本発明の実施形態に係わる制御情報が第２メモリ２５０に格納されることを示す概念図である。
【００５４】
フラッシュメモリ３００を制御するために、フラッシュメモリ制御部２００は先ずフラッシュメモリ３００から固有ＩＤ５１０を受信する。そうして受信した固有ＩＤ５１０に対応する制御情報が第１メモリ２４０に格納されているかを確認して、格納されていれば格納された制御情報とプログラミングコードを用いて連結されたフラッシュメモリ３００に対する制御コードを生成し、生成された制御コードを用いてフラッシュメモリ３００を制御する。
【００５５】
一方、受信した固有ＩＤ５１０に対応する制御情報が第１メモリ２４０に格納されていない場合、フラッシュメモリ制御部２００はフラッシュメモリ３００の所定領域に格納されている制御情報５２０を抽出する。この時、フラッシュメモリ制御部２００は、フラッシュメモリ３００の格納領域のうちの最初のブロック３１１，３２１の最初のページ３１２，３２２のうちの最初のセクタ３１３，３２３で制御情報５２０を抽出することができ、事前に設定された位置で制御情報５２０を抽出することもできる。
【００５６】
また、フラッシュメモリ３００は、大ブロックフラッシュメモリ３１０と小ブロックフラッシュメモリ３２０とに区分され、各々のフラッシュメモリ３１０，３２０に対する読み出し方式が異なり得る。したがって、制御情報５２０をフラッシュメモリ３００で抽出するにおいて、フラッシュメモリ制御部２００はフラッシュメモリ３００の種類に対応する２つの方式を試みることができる。
【００５７】
図６は、本発明の一実施形態によりフラッシュメモリが制御される過程を示すフローチャートである。
【００５８】
フラッシュメモリ３００を制御するためにフラッシュメモリ制御部２００の送受信部２６０は、先ずフラッシュメモリ３００から固有ＩＤを受信する（Ｓ６１０）。受信した固有ＩＤは制御部２２０に伝達され、制御部２２０は第１メモリ２４０に格納された複数の特定フラッシュメモリの制御情報のうちの固有ＩＤに対応する制御情報があるかを確認する（Ｓ６２０）。ここで、特定フラッシュメモリは、ユーザによって任意に選択されたフラッシュメモリであり、例えばユーザは自身が希望するフラッシュメモリに対する制御情報を第１メモリ２４０に格納することによってフラッシュメモリの制御情報が第２メモリ２５０に格納される過程が省約されるようにできる。
【００５９】
ここで、第１メモリ２４０は非揮発性メモリであり得、そのうちのＯＴＰメモリであり得る。そして、制御情報はダイの数、前記ダイ別プレーンの数、ブロックの数、ページの大きさ、前記ブロック別前記ページの数、前記ページ別セクタの数、バッドマークの位置、キャッシュオペレーションの支援有無およびコピーバックオペレーションの支援有無のうち少なくとも１つを含む。
【００６０】
そして、対応する制御情報が格納されている場合、制御部２２０は対応する制御情報と第１メモリ２４０に格納されたプログラミングコードを用いて制御コードを生成する（Ｓ６５０）。
【００６１】
そして、状態確認部２３０は、フラッシュメモリ３００の状態を確認する。すなわち、フラッシュメモリ３００が読み出しまたは書き込みなどの作業を実行中であるかを確認するものであり、状態確認結果は制御部２２０に伝達される。
【００６２】
そして、フラッシュメモリ３００が作業中である場合、制御部２２０は制御コード送信を保留し、フラッシュメモリ３００が作業中でない場合、送受信部２６０を介して制御コードを送信する（Ｓ６６０）。
【００６３】
一方、第１メモリ２４０に対応する制御情報が格納されていない場合、送受信部２６０はフラッシュメモリ３００から制御情報を抽出する（Ｓ６３０）。そして、抽出された制御情報を揮発性メモリの第２メモリ２５０に格納する（Ｓ６４０）。
【００６４】
制御情報が第２メモリ２５０に格納されれば、制御部２２０は第１メモリ２４０に格納されたプログラミングコードと第２メモリ２５０に格納された制御情報を用いてフラッシュメモリ３００を制御するための制御コードとを生成する（Ｓ６５０）。
【００６５】
そして、制御部２２０は状態確認部２３０を介して確認されたフラッシュメモリ３００の状態を参照して、フラッシュメモリ３００が動作中でなければ送受信部２６０を介して生成された制御コードを送信する（Ｓ６６０）。
【００６６】
図２のブロック図の各ブロックと図６のフローチャートの各ステップの組合せは、コンピュータプログラムインストラクションによって実行される可能性があることを理解できる。これらのコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータ、または、その他のプログラム可能なデータプロセシング装備のプロセッサに搭載されるため、コンピュータ、または、その他のプログラム可能なデータプロセシング装備のプロセッサを介して実行されるそのインストラクションが、ブロック図の各ブロックまたはフローチャートの各ステップで説明された機能を行う手段を生成するようになる。これらのコンピュータプログラムインストラクションは、特定の方式で機能を実現するためにコンピュータ、または、その他のプログラム可能なデータプロセシング装備を指向できるコンピュータ利用可能またはコンピュータ読取可能メモリに格納されることも可能であるため、そのコンピュータ利用可能またはコンピュータ読取可能メモリに格納されたインストラクションは、ブロック図の各ブロックまたはフローチャートの各ステップで説明された機能を行うインストラクション手段を内包する製造品目を生産することも可能である。コンピュータプログラムインストラクションは、コンピュータ、または、その他のプログラム可能なデータプロセシング装備上に搭載されることも可能であるため、コンピュータ、または、その他のプログラム可能なデータプロセシング装備上で一連の動作ステップが実行され、コンピュータで実行されるプロセスを生成し、コンピュータ、または、その他のプログラム可能なデータプロセシング装備を行うインストラクションは、ブロック図の各ブロックおよびフローチャートの各ステップで説明された機能を実行するためのステップを提供することも可能である。
【００６７】
また、各ブロックまたは各ステップは、特定された論理的機能を実行するための１つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を示すことができる。また、いくつかの代替実行例においては、ブロックまたはステップで言及した機能が、順序を外れ出て発生することも可能であることに注目しなければならない。例えば、続けて図示されている２つのブロックまたはステップは、実質的に同時に実行することも可能であり、または、そのブロックまたはステップが時折該当する機能によって逆順に実行されることも可能である。
【００６８】
以上、添付した図面を参照して本発明の実施形態を説明したが、本発明が属する技術分野で通常の知識を有する者であれば、本発明がその技術的思想や必須の特徴を変更せず、他の具体的な形態によって実施することができるということを理解できる。したがって、以上で記述した実施形態はすべての面で例示的なものであり、限定的なものではないことを理解しなければならない。
【図面の簡単な説明】
【００６９】
【図１】従来のフラッシュメモリ制御システムを示す図である。
【図２】本発明の実施形態に係わるフラッシュメモリを制御する装置を示すブロック図である。
【図３】本発明の実施形態に係わる制御情報が格納されたフラッシュメモリを示す図である。
【図４】本発明の実施形態に係わる制御情報がフラッシュメモリに伝達されることを示す概念図である。
【図５】本発明の実施形態に係わる制御情報が第２メモリに格納されることを示す概念図である。
【図６】本発明の一実施形態によりフラッシュメモリが制御される過程を示すフローチャートである。
【符号の説明】
【００７０】
２００      フラッシュメモリ制御部
２１０      制御情報受信部
２２０      制御部
２３０      状態確認部
２４０      第１メモリ
２５０      第２メモリ
２６０      送受信部
３００      フラッシュメモリ
【図１】
2007226798.tif 000003
【図２】
2007226798.tif 000004
【図３】
2007226798.tif 000005
【図４】
2007226798.tif 000006
【図５】
2007226798.tif 000007
【図６】
2007226798.tif 000008