(57)【要約】【課題】本発明は、メモリにおいて後発欠陥が発生したとしても、多くのブロックに渡って論物変換の対応関係を変更する必要がないメモリシステムを提供する。【解決手段】本発明に係るメモリシステムは、ユーザ情報を記憶するために設けられ、互いに重複しない第１物理アドレスが個々に割り当てられる複数の第１ブロック４２と、複数の第１ブロック４２のうちの初期欠陥ブロックの第１物理アドレスを個々に記憶するために設けられる複数の第２ブロック５２ｂａと、複数の第１ブロック４２のうちの後発欠陥ブロックの第１物理アドレスを個々に記憶するために設けられる複数の第３ブロック５２ｂｂとを備えている。さらに、論理アドレスと、第２ブロック５２ｂａに格納される情報と、第３ブロック５２ｂｂに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求める演算装置５０を、備えている。【選択図】図１３
2010146495.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ情報を記憶するために設けられ、互いに重複しない第１物理アドレスが個々に割り当てられる複数の第１ブロックと、
前記複数の第１ブロックのうちの初期欠陥ブロックの前記第１物理アドレスを個々に記憶するために設けられる複数の第２ブロックと、
前記複数の第１ブロックのうちの後発欠陥ブロックの前記第１物理アドレスを個々に記憶するために設けられる複数の第３ブロックと、
論理アドレスと、前記第２ブロックに格納される情報と、前記第３ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める演算装置とを、備えている、
ことを特徴とするメモリシステム。
【請求項２】
前記第３ブロックには、
互いに重複しない第３物理アドレスが個々に割り当てられており、
前記第３ブロックに記憶される前記後発欠陥ブロックの前記第１物理アドレスは、
後発欠陥が発生した順に従って、前記第３物理アドレスの順で、前記第３ブロックに格納される、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記第２ブロックには、
互いに重複しない第２物理アドレスが個々に割り当てられており、
前記第２ブロックに記憶される前記初期欠陥ブロックの前記第１物理アドレスは、
前記第１物理アドレスの順に従って、前記第２物理アドレスの順に、前記第２ブロックに格納される、
ことを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記演算装置は、
（Ａ）前記論理アドレスと前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求め、
（Ｂ）前記（Ａ）で求めた前記第１物理アドレスが、前記第３ブロックに格納されている情報と一致するか否かを判断する、
ことを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記（Ｂ）において一致すると判断したときには、前記演算装置は、
（Ｃ）前記（Ａ）で求めた前記第１物理アドレスを格納している前記第３ブロックの前記第３物理アドレスと、予め用意されている先頭代替論理アドレスとに基づいて、代替論理アドレスを求め、
（Ｄ）前記代替論理アドレスと、前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める、
ことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記複数の第１ブロックのうちの前記初期欠陥ブロックの前記第１物理アドレスを記憶する第１予備ブロックと、
前記複数の第１ブロックのうちの前記後発欠陥ブロックの前記第１物理アドレスを記憶する第２予備ブロックと、
前記第１予備ブロックに記憶されている情報を、前記第２ブロックに転送し、前記第２予備ブロックに記憶されている情報を、前記第３ブロックに転送する転送部とを、さらに備えている、
ことを特徴とする請求項５記載のメモリシステム。
【請求項７】
前記演算装置は、
（Ｅ）前記論理アドレスと前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求め、
（Ｆ）前記（Ｅ）で求めた前記第１物理アドレスで特定される前記第１ブロックにアクセスした結果、当該第１ブロックが前記後発欠陥ブロックであるか否かを判断し、
（Ｇ）前記（Ｆ）において前記後発欠陥ブロックであると判断したときには、前記第１物理アドレスの情報を格納していない先頭の前記第３ブロックに、前記（Ｅ）で求めた前記第１物理アドレスを記録する、
ことを特徴とする請求項３に記載のメモリシステム。
【請求項８】
前記演算装置は、
（Ｈ）前記（Ｇ）後に、前記第３ブロックにおける前記第３物理アドレスと、予め用意されている先頭代替論理アドレスとに基づいて、代替論理アドレスを求め、
（Ｉ）前記代替論理アドレスと、前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める、
ことを特徴とする請求項７に記載のメモリシステム。
【請求項９】
前記演算装置は、
（Ｊ）前記（Ｄ）または前記（Ｉ）で求めた前記第１物理アドレスで特定される第１ブロックが、欠陥を有するか否かを判断する、
ことを特徴とする請求項５または請求項８に記載のメモリシステム。
【請求項１０】
前記（Ｊ）において欠陥を有すると判断したときには、前記演算装置は、
（Ｋ）前記（Ｄ）または前記（Ｉ）で求めた前記第１物理アドレスを、前記第１物理アドレスの情報を格納していない先頭の前記第２ブロックに記録する、
ことを特徴とする請求項９に記載のメモリシステム。
【請求項１１】
前記演算装置は、
（Ｌ）前記（Ｃ）または前記（Ｈ）で求めた前記代替論理アドレスと、前記（Ｋ）後の前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める、
ことを特徴とする請求項１０に記載のメモリシステム。
【請求項１２】
前記第２ブロックの情報を前記第１ブロックの一部で構成された第１管理領域に転送し、前記第３ブロックの情報を前記第１ブロックの他の一部で構成されたる第２管理領域に転送する、転送部とを、さらに備えている、
ことを特徴とする請求項７または請求項１１に記載のメモリシステム。
【請求項１３】
前記転送部は、
前記演算装置における前記論理アドレスに対応する前記第１物理アドレスの導出前に、前記第１管理領域の情報を前記第２ブロックに転送し、前記第２管理領域の情報を前記第３ブロックに転送する、
ことを特徴とする請求項１２記載のメモリシステム。
【請求項１４】
前記第２ブロックおよび前記第３ブロックは、
揮発性メモリに保持される、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項１５】
論理アドレスを生成するコンピュータと、
ユーザ情報を記憶するために設けられ、互いに重複しない第１物理アドレスが個々に割り当てられる複数の第１ブロックを有するメモリと、
前記複数の第１ブロックのうちの初期欠陥ブロックの前記第１物理アドレスを個々に記憶するために設けられ、互いに重複しない第２物理アドレスが個々に割り当てられる複数の第２ブロックと、前記複数の第１ブロックのうちの後発欠陥ブロックの前記第１物理アドレスを個々に記憶するために設けられ、互いに重複しない第３物理アドレスが個々に割り当てられる複数の第３ブロックとを、有するコントローラメモリと、
前記コンピュータから受信した前記論理アドレスと、前記第２ブロックに格納される情報と、前記第３ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める演算装置とを、備えている、
ことを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザによって直接利用されるデータ（ユーザデータ）を記憶するメモリにおいて、ユーザデータを直接記憶しない予備的な記憶領域の容量を抑制する技術に関する。
【背景技術】
【０００２】
一般的に、メモリでは、欠陥ブロックを許容するために、論理アドレスと物理アドレスとをそのまま対応付けることができない。したがって、従来より、メモリにおいて、論理アドレスと物理アドレスとの変換に必要な情報を記憶しておく予備的な記憶領域を設ける技術が知られている。
【０００３】
このような方法としては、アクセスの単位となるデータ領域（ブロック）に対応してそれぞれ予備領域を設け、当該予備領域に当該ブロックの良否を示す特性情報を記憶しておく。そして、所定のタイミング（例えば電源投入時）に、コントローラが全ての予備領域から特性情報を読み込んで、論理アドレスと物理アドレスとの対応関係を示すテーブルを作成する方法がある。また、メモリ内にこのようなテーブルを格納しておく方法もある。
【０００４】
また、アクセス速度を低下させることなく、論理アドレスと物理アドレスとの変換に用いられる予備的な記憶領域の必要容量を抑制する技術として、特許文献１に係る先行技術が存在する。
【０００５】
特許文献１に係る技術では、論理アドレスを昇順に、メモリの欠陥ブロックの物理アドレスをスキップさせながら、物理アドレスの昇順に対応づけるように、論理アドレスと物理アドレスとの相関関係を定める。そして、欠陥ブロックの物理アドレスを、当該物理アドレスの昇順に、第２ブロックの物理アドレスの昇順に、連続して個々に格納する。論理アドレスから物理アドレスを求める場合は、論理アドレスに基づいて、複数の第２ブロックからターゲットブロックを検索し、ターゲットブロックの物理アドレスを論理アドレスに加算することにより物理アドレスを求める。
【０００６】
【特許文献１】特開２００８−２０４１５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところが、上記特許文献１に係る技術では、工場における検査の際に検出される初期欠陥ブロックが存在する場合の論物変換処理については技術開示されているが、メモリシステム使用中にメモリにおいて後発的に欠陥が発生する場合の、論物変換処理については言及されていない。
【０００８】
また、後発欠陥ブロックが発生した場合に、多くのブロックに渡って論物変換の対応関係を変更することは望ましくない。
【０００９】
そこで、本発明は、メモリにおいて後発欠陥が発生したとしても、多くのブロックに渡って論物変換の対応関係を変更する必要がないメモリシステムおよび、コンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明に係る請求項１に記載のメモリシステムは、ユーザ情報を記憶するために設けられ、互いに重複しない第１物理アドレスが個々に割り当てられる複数の第１ブロックと、前記複数の第１ブロックのうちの初期欠陥ブロックの前記第１物理アドレスを個々に記憶するために設けられる複数の第２ブロックと、前記複数の第１ブロックのうちの後発欠陥ブロックの前記第１物理アドレスを個々に記憶するために設けられる複数の第３ブロックと、論理アドレスと、前記第２ブロックに格納される情報と、前記第３ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める演算装置とを、備えている。
【００１１】
また、本発明に係る請求項２に記載のメモリシステムは、請求項１に記載のメモリシステムであって、前記第３ブロックには、互いに重複しない第３物理アドレスが個々に割り当てられており、前記第３ブロックに記憶される前記後発欠陥ブロックの前記第１物理アドレスは、後発欠陥が発生した順に従って、前記第３物理アドレスの順で、前記第３ブロックに格納される。
【００１２】
また、本発明に係る請求項３に記載のメモリシステムは、請求項２に記載のメモリシステムであって、前記第２ブロックには、互いに重複しない第２物理アドレスが個々に割り当てられており、前記第２ブロックに記憶される前記初期欠陥ブロックの前記第１物理アドレスは、前記第１物理アドレスの順に従って、前記第２物理アドレスの順に、前記第２ブロックに格納される。
【００１３】
また、本発明に係る請求項４に記載のメモリシステムは、請求項３に記載のメモリシステムであって、前記演算装置は、（Ａ）前記論理アドレスと前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求め、（Ｂ）前記（Ａ）で求めた前記第１物理アドレスが、前記第３ブロックに格納されている情報と一致するか否かを判断する。
【００１４】
また、本発明に係る請求項５に記載のメモリシステムは、請求項４に記載のメモリシステムであって、前記（Ｂ）において一致すると判断したときには、前記演算装置は、（Ｃ）前記（Ａ）で求めた前記第１物理アドレスを格納している前記第３ブロックの前記第３物理アドレスと、予め用意されている先頭代替論理アドレスとに基づいて、代替論理アドレスを求め、（Ｄ）前記代替論理アドレスと、前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める。
【００１５】
また、本発明に係る請求項６に記載のメモリシステムは、請求項５に記載のメモリシステムであって、前記複数の第１ブロックのうちの前記初期欠陥ブロックの前記第１物理アドレスを記憶する第１予備ブロックと、前記複数の第１ブロックのうちの前記後発欠陥ブロックの前記第１物理アドレスを記憶する第２予備ブロックと、前記第１予備ブロックに記憶されている情報を、前記第２ブロックに転送し、前記第２予備ブロックに記憶されている情報を、前記第３ブロックに転送する転送部とを、さらに備えている。
【００１６】
また、本発明に係る請求項７に記載のメモリシステムは、請求項３に記載のメモリシステムであって、前記演算装置は、（Ｅ）前記論理アドレスと前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求め、（Ｆ）前記（Ｅ）で求めた前記第１物理アドレスで特定される前記第１ブロックにアクセスした結果、当該第１ブロックが前記後発欠陥ブロックであるか否かを判断し、（Ｇ）前記（Ｆ）において前記後発欠陥ブロックであると判断したときには、前記第１物理アドレスの情報を格納していない先頭の前記第３ブロックに、前記（Ｅ）で求めた前記第１物理アドレスを記録する。
【００１７】
また、本発明に係る請求項８に記載のメモリシステムは、請求項７に記載のメモリシステムであって、前記演算装置は、（Ｈ）前記（Ｇ）後に、前記第３ブロックにおける前記第３物理アドレスと、予め用意されている先頭代替論理アドレスとに基づいて、代替論理アドレスを求め、（Ｉ）前記代替論理アドレスと、前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める。
【００１８】
また、本発明に係る請求項９に記載のメモリシステムは、請求項５または請求項８に記載のメモリシステムであって、前記演算装置は、（Ｊ）前記（Ｄ）または前記（Ｉ）で求めた前記第１物理アドレスで特定される第１ブロックが、欠陥を有するか否かを判断する。
【００１９】
また、本発明に係る請求項１０に記載のメモリシステムは、請求項９に記載のメモリシステムであって、前記（Ｊ）において欠陥を有すると判断したときには、前記演算装置は、（Ｋ）前記（Ｄ）または前記（Ｉ）で求めた前記第１物理アドレスを、前記第１物理アドレスの情報を格納していない先頭の前記第２ブロックに記録する。
【００２０】
また、本発明に係る請求項１１に記載のメモリシステムは、請求項１０に記載のメモリシステムであって、前記演算装置は、（Ｌ）前記（Ｃ）または前記（Ｈ）で求めた前記代替論理アドレスと、前記（Ｋ）後の前記第２ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める。
【００２１】
また、本発明に係る請求項１２に記載のメモリシステムは、請求項７または請求項１１に記載のメモリシステムであって、前記第２ブロックの情報を前記第１ブロックの一部で構成された第１管理領域に転送し、前記第３ブロックの情報を前記第１ブロックの他の一部で構成されたる第２管理領域に転送する、転送部とを、さらに備えている。
【００２２】
また、本発明に係る請求項１３に記載のメモリシステムは、請求項１２に記載のメモリシステムであって、前記転送部は、前記演算装置における前記論理アドレスに対応する前記第１物理アドレスの導出前に、前記第１管理領域の情報を前記第２ブロックに転送し、前記第２管理領域の情報を前記第３ブロックに転送する。
【００２３】
また、本発明に係る請求項１４に記載のメモリシステムは、請求項１に記載のメモリシステムであって、前記第２ブロックおよび前記第３ブロックは、揮発性メモリに保持される。
【００２４】
また、本発明に係る請求項１５に記載のコンピュータシステムは、論理アドレスを生成するコンピュータと、ユーザ情報を記憶するために設けられ、互いに重複しない第１物理アドレスが個々に割り当てられる複数の第１ブロックを有するメモリと、前記複数の第１ブロックのうちの初期欠陥ブロックの前記第１物理アドレスを個々に記憶するために設けられ、互いに重複しない第２物理アドレスが個々に割り当てられる複数の第２ブロックと、前記複数の第１ブロックのうちの後発欠陥ブロックの前記第１物理アドレスを個々に記憶するために設けられ、互いに重複しない第３物理アドレスが個々に割り当てられる複数の第３ブロックとを、有するコントローラメモリと、前記コンピュータから受信した前記論理アドレスと、前記第２ブロックに格納される情報と、前記第３ブロックに格納される情報とに基づいて、前記論理アドレスに対応する前記第１物理アドレスを求める演算装置とを、備えている。
【発明の効果】
【００２５】
本発明の請求項１または請求項１５に記載の発明では、演算装置は、論理アドレスと、第２ブロックに格納される情報と、第３ブロックに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求める。ここで、第３ブロックは、後発欠陥ブロックの第１物理アドレスを個々に記憶するために設けられる。
【００２６】
したがって、メモリにおいて後発欠陥が発生したとしても、多くのブロックに渡って論物変換の対応関係を変更する必要がないメモリシステムおよび、コンピュータシステムを提供することができる。
【００２７】
また、本発明に係る請求項２に記載のメモリシステムでは、第３ブロックに記憶される後発欠陥ブロックの第１物理アドレスは、後発欠陥が発生した順に従って、第３物理アドレスの順で、第３ブロックに格納される。
【００２８】
したがって、第１物理アドレスを求めるために必要となる、第３ブロックの数を減らすことが可能となる。
【００２９】
また、本発明に係る請求項３に記載のメモリシステムでは、第２ブロックに記憶される初期欠陥ブロックの第１物理アドレスは、第１物理アドレスの順に従って、第２物理アドレスの順に、第２ブロックに格納される。
【００３０】
したがって、第１物理アドレスを求めるために必要となる、第２ブロックの数を減らすことが可能となる。
【００３１】
また、本発明に係る請求項４に記載のメモリシステムでは、演算装置は、（Ａ）論理アドレスと第２ブロックに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求め、（Ｂ）前記（Ａ）で求めた第１物理アドレスが、第３ブロックに格納されている情報と一致するか否かを判断する。
【００３２】
したがって、前記（Ａ）で求めた第１物理アドレスにアクセスすることを防止でき、更なる論物変換処理を行うか否かの判断もできる。
【００３３】
また、本発明に係る請求項５に記載のメモリシステムでは、演算装置は、前記（Ｂ）において一致すると判断したときには、演算装置は、（Ｃ）前記（Ａ）で求めた第１物理アドレスを格納している第３ブロックの第３物理アドレスと、予め用意されている先頭代替論理アドレスとに基づいて、代替論理アドレスを求め、（Ｄ）代替論理アドレスと、第２ブロックに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求める。
【００３４】
したがって、容易な方法で、請求項１に記載の発明を実現することができる。
【００３５】
また、本発明に係る請求項６に記載のメモリシステムは、第１予備ブロックに記憶されている情報を第２ブロックに転送し、第２予備ブロックに記憶されている情報を第３ブロックに転送する転送部とを、さらに備えている。
【００３６】
したがって、たとえばバックアップとして第１，２予備ブロックに格納されていた情報を、演算装置での高速演算が可能となる第２ブロックおよび第３ブロックに、転送させることができる。
【００３７】
また、本発明に係る請求項７に記載のメモリシステムでは、演算装置は、（Ｅ）論理アドレスと第２ブロックに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求め、（Ｆ）前記（Ｅ）で求めた第１物理アドレスで特定される第１ブロックにアクセスした結果、当該第１ブロックが後発欠陥ブロックであるか否かを判断し、（Ｇ）前記（Ｆ）において後発欠陥ブロックであると判断したときには、第１物理アドレスの情報を格納していない先頭の前記第３ブロックに、前記（Ｅ）で求めた第１物理アドレスを記録する。
【００３８】
したがって、前記（Ｅ）で求めた第１物理アドレスにアクセスする際に、当該アクセスした第１ブロックに後発欠陥が発生しているか否かの判断ができ、更なる論物変換処理を行うか否かの判断もできる。さらに、更新された第３ブロックの情報を元に、以後の論物変換処理を動的に行うことができる。
【００３９】
また、本発明に係る請求項８に記載のメモリシステムでは、演算装置は、（Ｈ）前記（Ｇ）後に、第３ブロックにおける第３物理アドレスと、予め用意されている先頭代替論理アドレスとに基づいて、代替論理アドレスを求め、（Ｉ）代替論理アドレスと、第２ブロックに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求める。
【００４０】
したがって、更新された第３ブロックの情報を用いた形で、容易な方法で、請求項１に記載の発明を実現することができる。
【００４１】
また、本発明に係る請求項９に記載のメモリシステムでは、演算装置は、（Ｊ）前記（Ｄ）または前記（Ｉ）で求めた第１物理アドレスで特定される第１ブロックが、欠陥を有するか否かを判断する。
【００４２】
したがって、代替後の第１ブロックにアクセスする際に、当該アクセスした第１ブロックに後発欠陥が発生しているか否かの判断ができ、更なる論物変換処理を行うか否かの判断もできる。
【００４３】
また、本発明に係る請求項１０に記載のメモリシステムでは、前記（Ｊ）において欠陥を有すると判断したときには、演算装置は、（Ｋ）前記（Ｄ）または前記（Ｉ）で求めた前記第１物理アドレスを、前記第１物理アドレスの情報を格納していない先頭の前記第２ブロックに記録する。
【００４４】
したがって、更新された第２ブロックの情報を元に、以後の論物変換処理を動的に行うことができる。さらに、記録後の第２ブロックには、第２物理アドレスの昇順に、第１物理アドレスが昇順に格納されることになる。これにより、第２ブロックに格納されている情報を、第２物理アドレスの昇順に、第１物理アドレスが昇順に格納されるように並び替える必要がなくなる。
【００４５】
また、本発明に係る請求項１１に記載のメモリシステムでは、演算装置は、（Ｌ）前記（Ｃ）または前記（Ｈ）で求めた代替論理アドレスと、前記（Ｋ）後の第２ブロックに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求める。
【００４６】
したがって、更新された第２ブロックの情報を用いた形で、容易な方法で、請求項１に記載の発明を実現することができる。
【００４７】
また、本発明に係る請求項１２に記載のメモリシステムは、第２ブロックの情報を第１ブロックの一部で構成された第１管理領域に転送し、第３ブロックの情報を第１ブロックの他の一部で構成されたる第２管理領域に転送する、転送部とを、さらに備えている。
【００４８】
したがって、第１ブロックおよび第２ブロック内の情報を、第１管理領域および第２管理領域にバックアップとして保存することができる。
【００４９】
また、本発明に係る請求項１３に記載のメモリシステムは、転送部は、演算装置における論理アドレスに対応する第１物理アドレスの導出前に、第１管理領域の情報を第２ブロックに転送し、第２管理領域の情報を第３ブロックに転送する。
【００５０】
したがって、たとえばバックアップとして第１，２管理領域に格納されていた情報を、演算装置での高速演算が可能となる第２ブロックおよび第３ブロックに、転送させることができる。
【００５１】
また、本発明に係る請求項１４に記載のメモリシステムでは、第２ブロックおよび第３ブロックは、揮発性メモリに保持される。
【００５２】
したがって、演算装置は、高速で第２ブロックおよび第３ブロックにアクセスすることができる。よって、論物変換処理の高速化が可能となる。
【発明を実施するための最良の形態】
【００５３】
まず、本願発明の前提となる構成および動作について説明する（特許文献１に開示されている構成・動作と把握できる）。
【００５４】
図１は、コンピュータシステム１を示す図である。コンピュータシステム１は、一般的なパーソナルコンピュータとしての機能を有するコンピュータ２と、コンピュータ２のカードスロットに挿入されるメモリカード３とから構成される。コンピュータ２と演算装置５０との間で論理アドレスが送受信され、演算装置５０とメモリ４との間で物理アドレスが送受信される。
【００５５】
コンピュータ２は、例えば、記憶装置に記憶されているアプリケーションソフトウェア等のプログラムに従って動作し、必要に応じてメモリカード３に対してアクセス要求を送信する。
【００５６】
なお、以下に言うアクセス要求とは、ユーザデータの書き込み要求や、メモリカード３（図２に示すメモリ４）に記憶されているユーザデータの読み出し要求等である。したがって、書き込み要求の場合には、コンピュータ２は、書き込むユーザデータの書き込み位置を示す論理アドレスを生成する。また、読み出し要求の場合には、コンピュータ２は、読み込むユーザデータが格納されている位置を示す論理アドレスを生成する。コンピュータ２において生成されるアクセス要求には、論理アドレスが含まれており、インタフェースを介して、メモリカード３に送信される。
【００５７】
図２は、メモリカード３の構成を示すブロック図である。メモリカード３は、メモリ４と、メモリ４を制御するメモリコントローラ５とを備え、コンピュータ２に対して着脱自在な構造となっている。
【００５８】
図３は、メモリ４の内部構造を示す概略図である。図３に示すように、メモリ４は、複数の第１ブロック４２から構成されるユーザ情報記憶領域４０と、複数の予備ブロック４３から構成される予備記憶領域４１とを備えている。
【００５９】
図４は、メモリ４におけるブロック６（第１ブロック４２及び予備ブロック４３）の構造を示す図である。メモリ４が有する複数のブロック６は、図４に示すように、それぞれが複数の記憶素子６０（記憶素子群）から構成され、互いに重複しない１の物理アドレス（第１物理アドレス）によってアクセスされる記憶素子の集まりである。
【００６０】
ここで、第１ブロック４２に含まれる記憶素子６０の数は、少なくとも、１の物理アドレスによって指定されるユーザデータを記憶するために必要な記憶素子６０の数であればよい。すなわち、１回のアクセスで読み込まれる（又は、書き込まれる）ユーザデータの容量によって決定される。
【００６１】
また、予備ブロック４３に含まれる記憶素子６０の数は、少なくとも、第１ブロック４２を個々に指定する物理アドレスを記憶するために必要な記憶素子６０の数であればよい。すなわち、物理アドレスの長さ（容量）は、メモリ４が備える第１ブロック４２の数によって決定される。
【００６２】
図５は、ユーザ情報記憶領域４０を例示する図である。本明細書では、例えば、特定（Ａ）の物理アドレス空間における物理アドレスを、「物理アドレスＡ」と総称し、そのうちのｋ番目の物理アドレスＡを「物理アドレスＡｋ」と称する（ただしｋは０以上の整数）。
【００６３】
ユーザ情報記憶領域４０は、先述のように、複数（Ｎ個）の第１ブロック４２から構成される記憶領域であって、ユーザデータを記憶する（Ｎは自然数）。各第１ブロック４２には、それぞれ重複しない物理アドレスＰＢＡ（物理アドレスＰＢＡ０乃至ＰＢＡ（Ｎ−１））が割り当てられる。なお、メモリ４上の物理アドレスＰＢＡは、本発明における第１物理アドレスに相当する。
【００６４】
一般に、製品としてのメモリ４に形成される第１ブロック４２には、正常にアクセスすることができるもの（正常ブロック）と、アクセスすることができないもの（欠陥ブロック）とが存在する。欠陥ブロックに対してはアクセスすることができない（利用することができない）ので、欠陥ブロックにはユーザデータは記憶されず、論理アドレスが割り当てられることはない。また、欠陥の種類としては、工場出荷時などメモリ４の使用前において既に発生している初期欠陥と、メモリ４の使用において発生する後発欠陥とがある。
【００６５】
図示の都合上、図５では、正常ブロック４２０に「Ｇｏｏｄ」、初期欠陥を有する初期欠陥ブロック４２１に「Ｉｎｉｔｉａｌ  Ｂａｄ」が、それぞれ情報として格納されているかのように示している。しかし、実際には、ユーザデータを格納する１つの単位を第１ブロック４２と定義するのであって、第１ブロック４２には、ブロックの状態を示す情報は記憶しない。後述する実施の形態１以降の説明に入るまでのここでの説明では、欠陥ブロックは、初期欠陥ブロックのみであるとして、話を進める（実施の形態１以降の説明では、欠陥ブロックとして、初期欠陥ブロックの他に後発欠陥ブロックをも含めて説明する）。
【００６６】
図６は、図５に示すユーザ情報記憶領域４０に対する予備記憶領域４１を例示する図である。予備記憶領域４１は、先述のように、複数（Ｍ個）の予備ブロック４３から構成される記憶領域であって、冗長情報４４（図２）を記憶する。冗長情報４４とは、後述するメモリコントローラ５が論理アドレスを物理アドレスに変換する際に必要な情報である。
【００６７】
個々の予備ブロック４３は、それぞれメモリ４上の物理アドレス（物理アドレスＰＢＡＮ乃至ＰＢＡ（Ｎ＋Ｍ−１））が割り当てられている。なお、ユーザ情報記憶領域４０における最後の第１ブロック４２の物理アドレスは、物理アドレスＰＢＡ（Ｎ−１）であり、予備記憶領域４１における先頭の予備ブロック４３の物理アドレスは物理アドレスＰＢＡＮである。すなわち、ユーザ情報記憶領域４０と予備記憶領域４１とは連続する記憶領域として割り当てられているが、もちろんこれに限定されるものではない。
【００６８】
また、予備ブロック４３には、当該予備ブロック４３が使用されていないことを示す無効情報（図６に示す「ＮＯＵ」）、又は、初期欠陥ブロック４２１の物理アドレスＰＢＡ（図６に示す例では物理アドレスＰＢＡ３，５，７，１５，２０，２１，２７）を格納する。なお、予備ブロック４３に格納する情報は、初期欠陥ブロック４２１の物理アドレスＰＢＡを得ることができる情報であればよい。
【００６９】
初期欠陥ブロック４２１はメモリ４に対する検査工程等で検出され、その物理アドレスＰＢＡがいずれかの予備ブロック４３に記憶される。検出された初期欠陥ブロック４２１の物理アドレスＰＢＡは、後述するメモリコントローラ５が予備記憶領域４１を読み出す順序（予備ブロック４３の物理アドレスＰＢＡの昇順）に、順次（初期欠陥ブロック４２１の物理アドレスＰＢＡの小さい順）に格納される。また、全ての初期欠陥ブロック４２１の検出が終了したときに、残りの予備ブロック４３に無効情報ＮＯＵを格納する。
【００７０】
図２に戻って、メモリコントローラ５は、演算装置５０、プログラム５４を格納するＲＯＭ５１、ＳＲＡＭとして構成されるコントローラメモリ５２、及びコンピュータ２に接続するためのインタフェース５３を備える。メモリコントローラ５は、コンピュータ２から受信するアクセス要求に応じて、メモリ４にアクセスする。
【００７１】
メモリコントローラ５の演算装置５０は、ＲＯＭ５１に格納されているプログラム５４に従って動作し、コントローラメモリ５２に記憶されている参照情報５５に基づいて、コンピュータ２から受信したアクセス要求に含まれる論理アドレスＬＢＡから、アクセス要求された第１ブロック４２の物理アドレスＰＢＡを演算により得る。
【００７２】
演算装置５０による演算処理の詳細は後述するが、演算装置５０は、論理アドレスＬＢＡとオフセットＯＦＦとを用いて、「ＰＢＡ＝ＬＢＡ＋ＯＦＦ、（式１）」により、アクセス要求された第１ブロック４２の物理アドレスＰＢＡを得る。
【００７３】
コントローラメモリ５２は、メモリ４のブロック６を構成する記憶素子６０よりも高速にアクセス可能な記憶素子（図示せず）で構成され（ＳＲＡＭで構成され）、予備記憶領域４１に記憶されている冗長情報４４が転送された結果である参照情報５５を記憶する。コントローラメモリ５２に記憶された参照情報５５は、演算装置５０により参照される。なお、コントローラメモリ５２を構成する記憶素子として、高速なアクセスを実現するために、揮発性の記憶素子を用いる。ここで、揮発性メモリとして、ＳＲＡＭの他に、レジスタやフリップフロップ回路などを採用することもできる。
【００７４】
図７は、図６に示す冗長情報４４がコントローラメモリ５２に参照情報５５として記憶される状態を例示する図である。
【００７５】
コントローラメモリ５２は、予備ブロック４３に格納されている情報（複数の第１ブロックのうちの初期欠陥ブロックの第１物理アドレス）を個々に格納することが可能な複数（Ｍ個）の第２ブロック５６を備えている。これら複数の第２ブロック５６には、互いに重複しない物理アドレスＲＡＤ（第２物理アドレス）が割り当てられている。
【００７６】
メモリコントローラ５の演算装置５０は、冗長情報４４をコントローラメモリ５２に転送する際に、予備記憶領域４１の物理アドレスＰＢＡの順に従って予備ブロック４３にアクセスし、当該予備ブロック４３に格納されている情報（初期欠陥ブロック４２１の物理アドレスＰＢＡ又は無効情報ＮＯＵ）を、第２ブロック５６の物理アドレスＲＡＤの順に、第２ブロック５６に格納する。すなわち、演算装置５０は、本発明における転送部としての機能も備えている。上記より分かるように、参照情報５５は、冗長情報４４と同一の情報としてコントローラメモリ５２上に作成される。
【００７７】
このような参照情報５５を作成することにより、第２ブロック５６に格納されている初期欠陥ブロック４２１の物理アドレスＰＢＡから、当該第２ブロック５６の物理アドレスＲＡＤを引くと、その値は、当該第２ブロック５６に格納されている初期欠陥ブロック４２１の物理アドレスＰＢＡより前方に存在する正常ブロック４２０の個数（初期欠陥ブロック以外の第１ブロックの個数）を示すこととなる。
【００７８】
インタフェース５３は、コンピュータ２のインタフェースとのデータの送受信を可能せしめる部分である。
【００７９】
次に、コンピュータシステム１の動作について説明する。
【００８０】
まず、メモリコントローラ５は、メモリカード３に電源が投入された否かを判定する。ここで、メモリカード３に電源が投入されるとは、メモリカード３への電源の供給が開始された場合であって、既に電源が投入されているコンピュータ２にメモリカード３が装着された場合を含む。
【００８１】
メモリカード３に電源が投入されたと判定すると、メモリコントローラ５（演算装置５０）は、メモリ４の予備記憶領域４１にアクセスして、そこに記憶されている冗長情報４４を読み出し、読み出した冗長情報４４のコントローラメモリ５２への転送を開始する。なお、初期欠陥ブロックに対する図６で例示する情報は製品に固定であり、製品出荷時等にメモリ４に記憶されているものとする。
【００８２】
メモリコントローラ５は、予備記憶領域４１を構成する予備ブロック４３のうち、先頭の予備ブロック４３から順に最後までアクセスして、アクセスした予備ブロック４３に格納されている情報を、順次、第２ブロック５６に転送する。これによって、図７に示すように、コントローラメモリ５２には、図６に示す予備記憶領域４１に記憶されている情報と同等の情報が記憶される。
【００８３】
その後、コンピュータ２がアクセス要求を生成して、メモリカード３に送信したとする。ここで、コンピュータ２から送信されるアクセス要求には、先述のように、論理アドレスＬＢＡが含まれる。メモリカード３がアクセス要求（論理アドレスＬＢＡ）を受信すると、演算装置５０が物理アドレスＰＢＡを演算する。
【００８４】
当該演算処理を以下に説明する。なお、以下の説明では、演算装置５０が注目する第２ブロック５６の物理アドレスＲＡＤを「インデックスＩ」と称し、インデックスＩで指定される第２ブロック５６（注目する第２ブロック５６）から読み出された値を「ＲＤＶ（Ｉ）」と称する。また、複数の第２ブロック５６のうち、オフセットＯＦＦを求めるための第２ブロック５６を「ターゲットブロック」と称する。
【００８５】
式１を演算するためには、演算装置５０はオフセットＯＦＦを決定する必要がある。演算装置５０は、１つの論理アドレスＬＢＡに対して１つのターゲットブロックを決定することによりオフセットＯＦＦを演算により求める。言い換えれば、演算装置５０は、論理アドレスＬＢＡに基づいて、コントローラメモリ５２に含まれる複数の第２ブロック５６からターゲットブロックを検索し、オフセットＯＦＦを求める。
【００８６】
まず、演算装置５０は、インデックスＩをＲＡＤ０（＝０）にセットし、先頭の第２ブロック５６に注目して、「ＲＤＶ（Ｉ）−Ｉ＝ＮＵＭ、（式２）」を演算する。
【００８７】
すなわち、ＮＵＭの値は、現在のインデックスＩで特定される注目している第２ブロック５６に格納されている初期欠陥ブロック４２１の物理アドレスＰＢＡから、当該注目している第２ブロック５６の物理アドレスＲＡＤを減算した値となる。このＮＵＭは、先述のように、注目している第２ブロック５６に格納されている物理アドレスＰＢＡによって特定される、初期欠陥ブロック４２１の前方に存在する正常ブロック４２０の個数（初期欠陥ブロック以外の第１ブロックの個数）を示す。
【００８８】
次に、演算装置５０は、「ＮＵＭ＞ＬＢＡ、（式３）」の真偽を判定する。
【００８９】
式３が「真」の場合は、インデックスＩ（物理アドレスＲＡＤ０）で指定される第２ブロック５６をターゲットブロックと決定する。
【００９０】
一方、式３が「偽」の場合において、複数の第２ブロック５６からターゲットブロックを検索する手法は、様々なバリエーションが考えられる。ここででは、２分探索法の一種を用いた例を説明する。
【００９１】
まず、カウンタに「ｎ」にセットし、ターゲットブロックの候補として残っている第２ブロック５６のうちで、中央に位置する第２ブロック５６に注目するように、インデックスＩを更新する。
【００９２】
ここで、偶数個の第２ブロック５６が存在する場合、中央の第２ブロック５６とは、物理アドレスＲＡＤの値の大きい方とする。例えば、物理アドレスＲＡＤ０乃至ＲＡＤ３で指定される４個の第２ブロック５６が候補として残っている場合、中央の第２ブロック５６は、物理アドレスＲＡＤ２で指定される第２ブロック５６とする。
【００９３】
インデックスＩを更新すると、カウンタの値をチェックする。カウンタの値が「１」より大きければ、演算装置５０は、再び、式２を演算してから、式３の真偽を判定する。
【００９４】
式３の判定結果が「真」であれば、インデックスＩで示される第２ブロック５６から後方の第２ブロック５６（インデックスＩで示される第２ブロック５６を含む）を、ターゲットブロックの候補から除外する。そして、カウンタをデクリメントしてから、上記インデックスＩの更新処理に戻る。
【００９５】
一方、式３の判定結果が「偽」であれば、インデックスＩで示される第２ブロック５６から前方の第２ブロック５６（インデックスＩで示される第２ブロック５６を含む）を、ターゲットブロックの候補から除外する。そして、カウンタをデクリメントしてから、上記インデックスＩの更新処理に戻る。
【００９６】
このようにして、Ｍ（２n）個の第２ブロック５６が存在する場合、ターゲットブロックの候補から、不要な第２ブロック５６を除外する処理をｎ−１回繰り返せば、ターゲットブロックの候補は１つに絞られる。
【００９７】
上記インデックスＩの更新処理以後の動作を繰り返し実施され、カウンタの値が「１」となると（カウンタの値が１より大きくない）、演算装置５０は、再び、式２を演算してから、式３の真偽を判定する。当該判定は、変換先の第１ブロック４２が初期欠陥ブロック４２１であるか否かを判定することを意味する。
【００９８】
当該式３の真偽判定において「偽」と判定すると、変換先の第１ブロック４２を１つ後方にずらすために、インデックスＩをインクリメントし、インデックスＩで指定される第２ブロック５６をターゲットブロックとする。
【００９９】
一方、当該式３の真偽判定において「真」と判定すると、変換先は正常ブロック４２０であるから、インデックスＩをインクリメントすることなく、インデックスＩで指定される第２ブロック５６をターゲットブロックとする。
【０１００】
上記においてターゲットブロックが決定されると、演算装置５０は、インデックスＩ（ターゲットブロックを指定する物理アドレスＲＡＤとなっている）をオフセットＯＦＦとし、式１を演算して、物理アドレスＰＢＡを得る。
【０１０１】
図８は、論理アドレスＬＢＡと物理アドレスＰＢＡとの対応を例示する図である。図８では、図５に示すように初期欠陥ブロック４２１が存在している例について示す。ここまでに示したように、論理アドレスＬＢＡから物理アドレスＰＢＡが求められることにより、コンピュータシステム１では、図８に示される変換関係となる。
【０１０２】
ここで、Ｎ＝３２、Ｍ＝２n＝２4＝１６であり、初期欠陥ブロック４２１が、図５に示すように存在している場合を例に、論理アドレスＬＢＡ５について物理アドレスＰＢＡが求められる様子を示す。
【０１０３】
まず、論理アドレスＬＢＡ５が与えられると、式３は「偽」となるので、上記２分探索法が実行され、カウンタにｎ（＝４）がセットされる。そして、２4-1＋１＝９であるから、インデックスＩは中央の第２ブロック５６として９番目の第２ブロック５６を指定する「ＲＡＤ（２4-1）」にセットされる。
【０１０４】
物理アドレスＲＡＤ（２4-1）（すなわち、物理アドレス８）には、ＮＯＵが格納されている。ここで、ＮＯＵは充分に大きい値を採用しているとすると、式２によって得られるＮＵＭは充分に大きい値となり、式３は「真」と判定される。したがって、物理アドレスＲＡＤ８より後方の第２ブロック５６は、ターゲットブロックの候補から除外され、カウンタの値が「３」にデクリメントされる。
【０１０５】
次に、インデックスＩは、残った候補の中央の「ＲＡＤ４」にセットされる。このとき、カウンタは「３」となっているので、当該カウンタの値「３」は「１」より大きい。したがって、演算器５０は、再び式２を演算する。式２からＮＵＭ＝１６となる。今、与えられている論理アドレスは「ＬＢＡ５」であるから、式３の判定結果は再び「真」となる。したがって、物理アドレスＲＡＤ４乃至ＲＡＤ７が候補から除外され、カウンタの値が「２」にデクリメントされる。
【０１０６】
次に、インデックスＩは、残った候補の中央の「ＲＡＤ２」にセットされる。このとき、カウンタは「２」となっているので、当該カウンタの値「３」は「１」より大きい。したがって、演算器５０は、再び式２を演算する。式２からＮＵＭ＝５となり、式３の判定結果は「偽」となる。したがって、物理アドレスＲＡＤ０乃至ＲＡＤ２が候補から除外され、カウンタの値が「１」にデクリメントされる。
【０１０７】
次に、インデックスＩが「ＲＡＤ３」にセットされるが、このとき候補は、アドレスＲＡＤ３で指定される第２ブロック５６の１つに絞られており、カウンタの値は「１」であるので、式２からＮＵＭ＝１２となり、式３の判定結果は「真」となる。したがって、ターゲットブロックの物理アドレスは、物理アドレスＲＡＤ３であると決定され、オフセットＯＦＦは「３」となる。
【０１０８】
したがって、式１により、５＋３＝８となり、論理アドレスＬＢＡ５は、物理アドレスＰＢＡ８に変換される。すなわち、論理アドレスＬＢＡ５によってアクセスされる第１ブロック４２は、物理アドレスＰＢＡ８で指定される第１ブロック４２であることがわかる。
【０１０９】
なお、演算装置５０により、受信した論理アドレスＬＢＡから物理アドレスＰＢＡが求まると、メモリコントローラ５は、求められた物理アドレスＰＢＡに基づいて、メモリ４にアクセスする。
【０１１０】
このとき、アクセス要求が書き込み処理である場合は、求めた物理アドレスＰＢＡで指定される第１ブロック４２にユーザデータを書き込むようにメモリ４を制御する。一方、アクセス要求が読み出し処理である場合は、求めた物理アドレスＰＢＡで指定される第１ブロック４２に格納されているユーザデータを読み出すようにメモリ４を制御する。読み出されたユーザデータは、インタフェースを介してコンピュータ２に転送される。
【０１１１】
今までの説明が、メモリ４に初期欠陥ブロックのみが存在し、後発欠陥ブロックが存在しない場合の論物変換説明である（以後、ここまでで説明した論物変換処理を、便宜上、第一の論物変換処理と称する）。
【０１１２】
後述の各実施の形態では、出荷後においてメモリ４に後発欠陥ブロックが発生した場合の論物変換処理について説明する。
【０１１３】
以下、この発明をその実施の形態を示す図面に基づいて具体的に説明する。
【０１１４】
＜実施の形態１＞
図９は、本実施の形態に係るメモリ４の構成を示す図である。
【０１１５】
図９に示すように、メモリ４における予備記憶領域４１は、二つの管理領域４１Ａ，４１Ｂを有する。図９におけるユーザ情報記憶領域４０の構成は、図３に示すユーザ情報記憶領域４０の構成と同じである。また、図９における第１管理領域４１Ａは、第１ブロック４２のうちの初期欠陥ブロックの第１物理アドレス情報を個々に記憶・管理する領域である（図６参照）。図９における第２管理領域４１Ｂは、第１ブロック４２のうちの後発欠陥ブロックの第１物理アドレス情報を個々に記憶・管理する領域である。
【０１１６】
各領域４０，４１Ａ，４１Ｂ内の各閉じた領域内において、各々複数のブロック４２，４３Ａ，４３Ｂが設けられており、当該閉じた領域内において、各ブロック４２，４３Ａ，４３Ｂには、連番にて物理アドレス付与されている。ここで、第１管理領域４１Ａを構成している各ブロックは、第１予備ブロック４３Ａであり、第２管理領域４１Ｂを構成している各ブロックは、第２予備ブロック４３Ｂである。
【０１１７】
各第１予備ブロックには、互いに重複せず連番にて物理アドレスが割り当てられている。また、各第２予備ブロックにおいても、互いに重複せず連番にて物理アドレスが割り当てられている。
【０１１８】
図６を用いて説明したように、初期欠陥ブロックはメモリ４に対する検査工程等で検出され、その物理アドレスが第１予備ブロック４３Ａに記憶される。検出された初期欠陥ブロックの物理アドレスは、メモリコントローラ５が予備記憶領域４１を読み出す順序（第１予備ブロック４３Ａの物理アドレスの昇順）に、順次（初期欠陥ブロックの物理アドレスの小さい順）に格納される。つまり、第１予備ブロック４３Ａの物理アドレスが昇順するに連れて、各第１予備ブロック４３Ａに格納される初期欠陥ブロックの（第１）物理アドレスは昇順する。また、全ての初期欠陥ブロックの検出が終了したときに、残りの第１予備ブロック４３Ａに無効情報ＮＯＵを格納する。
【０１１９】
後発欠陥ブロックはメモリ４の使用中において検出され、その第１物理アドレスが第２予備ブロック４３Ｂに記憶される。検出された後発欠陥ブロックの物理アドレスは、メモリコントローラ５が予備記憶領域４１を読み出す順序（第２予備ブロック４３Ｂの物理アドレスの昇順）に、順次（後発欠陥が発生した順の後発欠陥ブロックの物理アドレスの順）に格納される。つまり、第２予備ブロック４３Ｂの物理アドレスが昇順するに連れて、各第２予備ブロック４３Ｂには、後発欠陥ブロックが発生した順に、当該後発欠陥ブロックの（第１）物理アドレスが格納される。また、後発欠陥ブロックの検出・記憶されて、残りの第２予備ブロック４３Ｂに無効情報ＮＯＵを格納する。
【０１２０】
当該後発欠陥ブロックの検出は、たとえば、メモリコントローラ５がメモリ４の所定の第１ブロック４２にアクセスし、当該所定の第１ブロックのアクセスの結果、読み出し・書き込み等が正常に終了しなかった信号をメモリ４から受信することにより、メモリコントローラ５が検出する。当該検出後、メモリコントローラ５は、直接またはコントローラメモリ５２を介して、メモリ４の第２管理領域４１Ｂに、当該所定の第１ブロックの第１物理アドレスを記録する。
【０１２１】
次に、後発欠陥ブロックが発生した後の論物変換処理の動作について説明する。
【０１２２】
上記で説明したように、メモリカード３に電源が投入されたと判定すると、メモリコントローラ５（演算装置５０）は、メモリ４の予備記憶領域４１にアクセスして、そこに記憶されている冗長情報（第１，２管理領域４１Ａ，４１Ｂに記憶されている情報）４４を読み出し、読み出した冗長情報４４のコントローラメモリ５２への転送を開始する。
【０１２３】
なお、後述するように、第１管理領域４１Ａで記憶されている情報および第２管理領域４１Ｂで記憶されている情報は、メモリ４の使用状況に応じて更新される（つまり、欠陥ブロックの物理アドレスが随時記録される）。
【０１２４】
メモリコントローラ５（演算装置５０）は、第１管理領域４１Ａを構成する第１予備ブロック４３Ａのうち、先頭の第１予備ブロック４３Ａから順に最後までアクセスして、アクセスした第１予備ブロック４３Ａに格納されている情報を、順次、第２ブロックに転送する。これによって、コントローラメモリ５２には、第１管理領域４１Ａに記憶されている情報と同等の情報が、参照情報５５として記憶される。つまり、第２ブロックの第２物理アドレスが昇順するに連れて、各第２ブロックに格納される初期欠陥アドレスの（第１）物理アドレスは昇順する。
【０１２５】
また、メモリコントローラ５（演算装置５０）は、第２管理領域４１Ｂを構成する第２予備ブロック４３Ｂのうち、先頭の第２予備ブロック４３Ｂから順に最後までアクセスして、アクセスした第２予備ブロック４３Ｂに格納されている情報を、順次、第３ブロックに転送する。これによって、コントローラメモリ５２には、第２管理領域４１Ｂに記憶されている情報と同等の情報が、参照情報５５として記憶される。つまり、第３ブロックの第３物理アドレスが昇順するに連れて、各第３ブロックには、メモリ４における後発欠陥ブロックが発生した順に、当該後発欠陥ブロックの（第１）物理アドレスが格納される。
【０１２６】
図１０は、冗長情報４４がコントローラメモリ５２に参照情報５５として記憶される状態を例示する図である。
【０１２７】
コントローラメモリ５２における第１管理領域５２Ｉは、複数の第２ブロック５２ｂａで構成されている。ここで、第１管理領域５２Ｉ内において、第２ブロック５２ｂａのコントローラメモリ５２における物理アドレス（第２物理アドレス）は連番である。
【０１２８】
コントローラメモリ５２における第２管理領域５２Ａは、複数の第３ブロック５２ｂｂで構成されている。ここで、第２管理領域５２Ａ内において、第３ブロック５２ｂｂのコントローラメモリ５２における物理アドレス（第３物理アドレス）は連番である。第２ブロックには、互いに重複しない第２物理アドレスＩ＿ＲＡＤ０〜Ｉ＿ＲＡＤ７が個々に割り当てられており、第３ブロックには、互いに重複しない第３物理アドレスＡ＿ＲＡＤ０〜Ａ＿ＲＡＤ３が個々に割り当てられている。
【０１２９】
上記転送処理から分かるように、複数の第２ブロック５２ｂａは、複数の第１ブロック４２のうちの初期欠陥ブロックの第１物理アドレスを個々に記憶するために設けられる。また、複数の第３ブロックは、複数の第１ブロック４２のうちの後発欠陥ブロックの第１物理アドレスを個々に記憶するために設けられる。
【０１３０】
上記転送の結果、図１０に例示するように、第２ブロック５２ｂａの第２物理アドレスが昇順するに連れて（Ｉ＿ＲＡＤ０→Ｉ＿ＲＡＤ１・・・→Ｉ＿ＲＡＤ６→Ｉ＿ＲＡＤ７）、各第２ブロック５２ｂａに格納される初期欠陥アドレスの（第１）物理アドレスは昇順する（ＰＢＡ３→ＰＢＡ５・・・→ＰＢＡ２１→ＰＢＡ２７）。
【０１３１】
また、第３ブロック５２ｂｂの第３物理アドレスが昇順するに連れて（Ａ＿ＲＡＤ０→Ａ＿ＲＡＤ１→Ａ＿ＲＡＤ２→Ａ＿ＲＡＤ３）、各第３ブロック５２ｂｂには、メモリ４における後発欠陥ブロックが発生した順に、当該後発欠陥ブロックの（第１）物理アドレスが格納される。したがって、第１物理アドレスＰＢＡ１２の第１ブロック４２において最初に後発欠陥が発生し、次に、第１物理アドレスＰＢＡ６の第１ブロック４２において後発欠陥が発生し、次に、第１物理アドレスＰＢＡ１７において第１ブロック４２において後発欠陥が発生したと理解できる。なお、未使用のブロック５２ｂａ，５２ｂｂには、未使用であることを意味する無効情報「ＮＯＵ」が格納されている。
【０１３２】
さて、上記コントローラメモリ５２への情報の転送後、コンピュータ２がアクセス要求を生成して、メモリカード３に送信したとする。ここで、コンピュータ２から送信されるアクセス要求には、先述のように、論理アドレスＬＢＡが含まれる。メモリカード３がアクセス要求（論理アドレスＬＢＡ）を受信すると、演算装置５０が第１物理アドレスＰＢＡを演算する。演算装置５０における当該演算動作を、図１０、図１１および図１２を用いて説明する。
【０１３３】
ここで、図１１（Ａ）は、論理空間を模式的に例示した図である。また、図１１（Ｂ）は、後発欠陥ブロック発生前の物理空間を模式的に例示した図である。図１１（Ｂ）では、メモリ４のユーザ情報記憶領域４０は、３２個の第１ブロック４２により構成されている。各第１ブロック４２には、第１物理アドレスＰＢＡ０〜ＰＢＡ３１が昇順に設定されている。図１１（Ａ）では、当該第１ブロック４２の数（＝３２）と同数の論理アドレスＬＢＡ０〜ＰＢＡ３１が、昇順に設定されている。
【０１３４】
メモリ４のユーザ情報記憶領域４０には、ユーザ情報が格納されており、図１１の例では、当該ユーザ情報のデータ量は、第１ブロック４２の２０ブロック分である。したがって、図１１（Ａ）において、当該２０ブロック分の論理アドレスＬＢＡ０〜ＬＢＡ１９が昇順に設定される。なお、図１１（Ａ）において、残りの論理アドレスＬＢＡ２０〜ＬＢＡ３１は、「代替論理アドレス」として、昇順に設定されている。上記から分かるように、昇順に設定された論理アドレスＬＢＡ０〜ＬＢＡ３１が、代替論理アドレスに属するか否かの境界は、ユーザ情報のデータ量により決定される。また、代替論理アドレスＬＢＡ２０〜ＬＢＡ３１が属する領域を、図１１（Ａ）において「代替領域」と表記している。
【０１３５】
他方、図１１（Ｂ）では、正常ブロックと、初期欠陥ブロックとで構成されている。正常ブロック内には、便宜上、対応する論理アドレスが記載されている。また、初期欠陥ブロック（ＰＢＡ３，ＰＢＡ５，ＰＢＡ７，ＰＢＡ１５，ＰＢＡ２０，ＰＢＡ２１，ＰＢＡ２７）内には、便宜上、「Ｉｎｉｔｉａｌ  Ｂａｄ」が記載されている。上記第一の論物変換処理の結果、図１１（Ｂ）に示される、第１物理アドレスと論理アドレスとの対応関係が成立する。各第１物理アドレスには、初期欠陥ブロックをとばして、論理アドレスが昇順に対応している。なお、正常ブロックには、上記データ量のユーザ情報が格納されている。
【０１３６】
また、図１１（Ｂ）に示すように、第１物理アドレスの昇順に、正常ブロックにユーザ情報が順次格納された結果、第１物理アドレスＰＢＡ２５の第１ブロック４２がユーザ情報の末尾に当たる。したがって、第１物理アドレスＰＢＡ２６〜ＰＢＡ３１は、「代替物理アドレス」として、昇順に設定される。なお、代替物理アドレスＰＢＡ２６〜ＰＢＡ３１が属する領域を、図１１（Ｂ）において「代替領域」と表記している。
【０１３７】
第１物理アドレスＰＢＡ２７の第１ブロック４２は、初期欠陥ブロックである。したがって、第１物理アドレスＰＢＡ２７は、代替物理アドレスとはならない。上記から分かるように、昇順に設定された第１物理アドレスＰＢＡ０〜ＰＢＡ３１が、代替物理アドレスに属するか否かの境界は、ユーザ情報のデータ量および、先頭の第１ブロック４２から当該ユーザ情報の最後のデータが格納された第１ブロック４２までに発生している初期欠陥ブロック数（図１１（Ｂ）では６個）により決定される。
【０１３８】
図１１の例に従い、図１０に示す第１管理領域５２Ｉの第２ブロック５２ｂａには、初期欠陥ブロックの第１物理アドレスＰＢＡ３，ＰＢＡ５，ＰＢＡ７，ＰＢＡ１５，ＰＢＡ２０，ＰＢＡ２１，ＰＢＡ２７が、昇順に記憶される。
【０１３９】
さて、メモリ４の使用の結果、第１物理アドレスＰＢＡ１２，ＰＢＡ６，ＰＢＡ１７の第１ブロックが、当該順に後発欠陥ブロックとなったとする。この場合には、図１０に示すように、第２管理領域５２Ａの第３ブロック５２ｂｂには、後発欠陥発生順に、後発欠陥ブロックの第１物理アドレスＰＢＡ１２，ＰＢＡ６，ＰＢＡ１７が、当該順に記憶される。
【０１４０】
当該後発欠陥ブロック発生後の論物変換処理を、図１２のフローチャートを用いて説明する。具体的に、論理アドレスと、第２ブロック５２ｂａに格納される情報と、第３ブロック５２ｂｂに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求める演算装置５０の動作を、図１２を用いて説明する。
【０１４１】
コンピュータ２は、メモリカード３に、論理アドレスＬＢＡ４を含むアクセス要求（たとえば読出し要求）を送信したとする。この場合には、演算装置５０は、当該論理アドレスＬＢＡ４とコントローラメモリ５２内の第１管理領域５２Ｉの情報（第２ブロック５２ｂａに格納されている情報）とを用いた上記第一の論物変換処理により、論理アドレスＬＢＡ４に対応する第１物理アドレスＰＢＡ６を算出する（ステップＳ１０１）。
【０１４２】
次に、演算装置５０は、コントローラメモリ５２内の第２管理領域５２Ａ内の情報を検索する。具体的に、演算装置５０は、全ての第３ブロック５２ｂｂ内の情報を検索する。そして、第３ブロック５２ｂｂ内に、ステップＳ１０１で算出した第１物理アドレスである「ＰＢＡ６」の情報があるか否かを検索する（ステップＳ１０２）。換言すれば、演算装置５０は、ステップＳ１０１で求めた第１物理アドレスが、第３ブロック５２ｂｂに格納されている情報（第１物理アドレス）と一致するか否かを判断する（ステップＳ１０２）。
【０１４３】
ここで、この検索は、後発欠陥ブロック発生数が少ない場合には、第３ブロック５２ｂｂ全部に対して検索処理を実施しても良い。これに対して、後発欠陥ブロック数が多い場合には、例えば電源起動時などに第２管理領域をアドレス昇順に並び替えた、別テーブルを持ち、当該別テーブルにおける２分岐探索を実施しても良い。
【０１４４】
図１０の例では、第２管理領域５２Ａにおける２つ目の番地である第３物理アドレスＡ＿ＲＡＤ１には、第１物理アドレスＰＢＡ６が記憶されている。したがって、ステップＳ１０２で「有」で、演算装置５０はステップＳ１０３の処理へと移行する。
【０１４５】
ステップＳ１０３において、演算装置５０は、下式１１により、代替論理アドレスを算出する。
【０１４６】
代替論理アドレス＝先頭代替論理アドレス＋代替論理オフセット  ・・・式１１
ここで、図１１（Ａ）の例では、先頭代替論理アドレス（図１１（Ａ）における代替領域の先頭アドレス）は「ＬＢＡ２０」であり、コンピュータ２およびメモリカード３には、予めこの値が設定されている。また、代替論理オフセットは、ステップＳ１０１で求めた第１物理アドレスが格納されている第３ブロック５２ｂｂの第２管理領域５２Ａにおける物理アドレス（第３物理アドレス）から、一義的定まる（第３物理アドレスの連番の数値より一義的に決まる）。
【０１４７】
たとえば、先頭の第３ブロック５２ｂｂに、ステップＳ１０１で求めた第１物理アドレスが格納されているとする。この場合は、当該先頭の第３ブロック５２ｂｂの第３物理アドレスは「Ａ＿ＲＡＤ０」であるので、代替論理オフセットは「０」と決定される。また、２番目の第３ブロック５２ｂｂに、ステップＳ１０１で求めた第１物理アドレスが格納されているとする。この場合は、当該２番目の第３ブロック５２ｂｂの第３物理アドレスは「Ａ＿ＲＡＤ１」であるので、代替論理オフセットは「１」と決定される。同様に、３番目の第３ブロック５２ｂｂに、ステップＳ１０１で求めた第１物理アドレスが格納されているとする。この場合は、当該３番目の第３ブロック５２ｂｂの第３物理アドレスは「Ａ＿ＲＡＤ２」であるので、代替論理オフセットは「２」と決定される。
【０１４８】
さて、上記例では、第１物理アドレスＰＢＡ６である第１ブロック４２は、２番目に後発欠陥ブロックとなっている。したがって、図１０に示すように、第２管理領域５２Ａにおける第３物理アドレスＡ＿ＲＡＤ１に、ステップＳ１０１で求めた「ＰＢＡ６」が格納される。よって、代替論理オフセットは、「１」として決定される。
【０１４９】
したがって、式１１によりＬＢＡ２０＋１となり、演算装置５０は、代替論理アドレスとして、ＬＢＡ２１を得る（「２１」は、先頭代替論理アドレスの数字「２０」と代替論理オフセットの値「１」との和である）。
【０１５０】
次に、演算装置５０は、ステップＳ１０３で求めた代替論理アドレスＬＢＡ２１とコントローラメモリ５２内の第１管理領域５２Ｉの情報（第２ブロック５２ｂａに格納されている情報）とを用いた上記第一の論物変換処理（ただし、論理アドレスを代替論理アドレスと読み替える必要あり）により、代替論理アドレスＬＢＡ２１に対応する代替物理アドレスを算出する（ステップＳ１０４）。上記第一の論物変換処理を適用すると、代替物理アドレスは「ＰＢＡ２８」である。
【０１５１】
そして、演算装置５０は、ステップＳ１０４で算出した代替物理アドレスＰＢＡ２８を、入力された論理アドレスＬＢＡ４に対応する第１物理アドレスとして決定する。
【０１５２】
さて次に、コンピュータ２は、メモリカード３に、論理アドレスＬＢＡ５を含むアクセス要求（たとえば読出し要求）を送信したとする。この場合には、演算装置５０は、ステップＳ１０１により、論理アドレスＬＢＡ５に対応する第１物理アドレスＰＢＡ８を算出する。
【０１５３】
ステップＳ１０２の検索の結果、第２管理領域５２Ａを構成する全第３ブロック５２ｂｂ内に、ステップＳ１０１で求めた第１物理アドレスＰＢＡ８の情報が無い。この場合には、ステップＳ１０２で「無」となり、演算装置５０は、ステップＳ１０１で算出した第１物理アドレスＰＢＡ８を、入力された論理アドレスＬＢＡ５に対応する第１物理アドレスとして決定する。
【０１５４】
また、コンピュータ２は、メモリカード３に、論理アドレスＬＢＡ９を含むアクセス要求（たとえば読出し要求）を送信したとする。この場合には、演算装置５０は、ステップＳ１０１により、論理アドレスＬＢＡ９に対応する第１物理アドレスＰＢＡ１２を算出する。
【０１５５】
図１０の例では、第２管理領域５２Ａにおける１つ目の番地である第３物理アドレスＡ＿ＲＡＤ０には、第１物理アドレスＰＢＡ１２が記憶されている。したがって、ステップＳ１０２で「有」で、演算装置５０はステップＳ１０３の処理へと移行する。ステップＳ１０３において、演算装置５０は、式１１により、代替論理アドレスを算出する。今の場合、式１１によりＬＢＡ２０＋０となり、演算装置５０は、代替論理アドレスとして、ＬＢＡ２０を得る（「２０」は、先頭代替論理アドレスの数字「２０」と代替論理オフセットの値「０」との和である）。
【０１５６】
次に、演算装置５０は、ステップＳ１０４により、代替論理アドレスＬＢＡ２０に対応する代替物理アドレスＰＢＡ２６を算出する。そして、演算装置５０は、ステップＳ１０４で算出した代替物理アドレスＰＢＡ２６を、入力された論理アドレスＬＢＡ９に対応する第１物理アドレスとして決定する。
【０１５７】
また、コンピュータ２は、メモリカード３に、論理アドレスＬＢＡ１３を含むアクセス要求（たとえば読出し要求）を送信したとする。この場合には、演算装置５０は、ステップＳ１０１により、論理アドレスＬＢＡ１３に対応する第１物理アドレスＰＢＡ１７を算出する。
【０１５８】
図１０の例では、第２管理領域５２Ａにおける３つ目の番地である第３物理アドレスＡ＿ＲＡＤ２には、第１物理アドレスＰＢＡ１７が記憶されている。したがって、ステップＳ１０２で「有」で、演算装置５０はステップＳ１０３の処理へと移行する。ステップＳ１０３において、演算装置５０は、式１１により、代替論理アドレスを算出する。今の場合、式１１によりＬＢＡ２０＋２となり、演算装置５０は、代替論理アドレスとして、ＬＢＡ２２を得る（「２２」は、先頭代替論理アドレスの数字「２０」と代替論理オフセットの値「２」との和である）。
【０１５９】
次に、演算装置５０は、ステップＳ１０４により、代替論理アドレスＬＢＡ２２に対応する代替物理アドレスＰＢＡ２９を算出する。そして、演算装置５０は、ステップＳ１０４で算出した代替物理アドレスＰＢＡ２９を、入力された論理アドレスＬＢＡ１３に対応する第１物理アドレスとして決定する。
【０１６０】
なお、メモリコントローラ５は、上記で決定された第１物理アドレスの第１ブロック４２に対してアクセスを行う。後発欠陥ブロック発生後の図１２を用いて説明した動作の結果、図１３に示す論理アドレスと第１物理アドレスとの対応関係が成立する。
【０１６１】
図１３において、正常ブロック内には、便宜上、対応する論理アドレスが記載されている。また、初期欠陥ブロック（ＰＢＡ３，ＰＢＡ５，ＰＢＡ７，ＰＢＡ１５，ＰＢＡ２０，ＰＢＡ２１，ＰＢＡ２７）内には、便宜上、「Ｉｎｉｔｉａｌ  Ｂａｄ」が記載されている。また、後発欠陥ブロック（ＰＢＡ６，ＰＢＡ１２，ＰＢＡ１７）内には、便宜上、「後発Ｂａｄ」が記載されている。なお、代替アドレスＰＢＡ３０，ＰＢＡ３１の第１ブロック４２内には、未使用であるので、便宜上、「未使用」と記載されている。
【０１６２】
以上のように、本実施の形態では、演算装置５０は、論理アドレスＬＢＡ０〜ＬＢＡ３１と、第２ブロック５２ｂａに格納される情報と、第３ブロック５２ｂｂに格納される情報とに基づいて、入力された論理アドレスに対応する第１物理アドレスＰＢＡ０〜ＰＢＡ３１を求める。ここで、第３ブロック５２ｂｂは、後発欠陥ブロックの第１物理アドレスＰＢＡ０〜ＰＢＡ３１を個々に記憶するために設けられる。
【０１６３】
したがって、メモリ４において後発欠陥が発生したとしても、多くのブロックに渡って論物変換の対応関係を変更する必要がないメモリシステムおよび、コンピュータシステム１を提供することができる。
【０１６４】
また、本実施の形態では、第２ブロック５２ｂａに記憶される初期欠陥ブロックの第１物理アドレスＰＢＡ０〜ＰＢＡ３１は、第１物理アドレスＰＢＡ０〜ＰＢＡ３１の順に従って、第２物理アドレスＩ＿ＲＡＤ０〜Ｉ＿ＲＡＤ７の順に、第２ブロック５２ｂａに格納される。
【０１６５】
したがって、第１物理アドレスＰＢＡ０〜ＰＢＡ３１を求めるために必要となる、第２ブロック５２ｂａの数を減らすことが可能となる。
【０１６６】
また、本実施の形態では、第３ブロック５２ｂｂに記憶される後発欠陥ブロックの第１物理アドレスＰＢＡ０〜ＰＢＡ３１は、後発欠陥が発生した順に従って、第３物理アドレスＡ＿ＲＡＤ０〜Ａ＿ＬＡＤ３の順で、第３ブロック５２ｂｂに格納される。
【０１６７】
したがって、第１物理アドレスＰＢＡ０〜ＰＢＡ３１を求めるために必要となる、第３ブロック５２ｂｂの数を減らすことが可能となる。
【０１６８】
また、本実施の形態では、演算装置５０は、ターゲットブロックを検索し、ターゲットブロックから読み出される初期欠陥ブロックの第１物理アドレスＰＢＡ０〜ＰＢＡ３１と、ターゲットブロックの第２物理アドレスＩ＿ＲＡＤ０〜Ｉ＿ＲＡＤ７とに基づいて、ターゲットブロックから読み出された初期欠陥ブロックの第１物理アドレスＰＢＡ０〜ＰＢＡ３１より前方に存在する、初期欠陥ブロック以外の第１ブロック４２の個数を求め、論理アドレスＬＢＡ０〜ＬＢＡ３１と当該個数とに基づいて、入力された論理アドレスに対応する第１物理アドレスＰＢＡ０〜ＰＢＡ３１を求める。
【０１６９】
したがって、正常な第１ブロック４２の第１物理アドレスＰＢＡ０〜ＰＢＡ３１を記憶する必要がない。あるいは、全てのブロックに関する特性（欠陥の有無）と転送先の物理アドレスとを記憶する必要がない。したがって、第２ブロック５２ｂａの数を減らすことが可能となる。
【０１７０】
また、本実施の形態では、演算装置５０は、ステップＳ１０１で求めた第１物理アドレスＰＢＡ０〜ＰＢＡ３１が、第３ブロック５２ｂｂに格納されている情報と一致するか否かを判断する（ステップＳ１０２）。
【０１７１】
したがって、当該求めた第１物理アドレスＰＢＡ０〜ＰＢＡ３１にアクセスすることを防止でき、更なる論物変換処理を行うか否かの判断もできる。
【０１７２】
また、本実施の形態では、演算装置５０は、第３ブロック５２ｂｂの第３物理アドレスＡ＿ＲＡＤ０〜Ａ＿ＲＡＤ３と、予め用意されている先頭代替論理アドレス（ここでは、ＬＢＡ２０）とに基づいて、代替論理アドレスＬＢＡ２０〜ＬＢＡ３１を求める（ステップＳ１０３）。そして、代替論理アドレスＬＢＡ２０〜ＬＢＡ３１と、第２ブロック５２ｂａに格納される情報とに基づいて、入力された論理アドレスに対応する第１物理アドレスＰＢＡ０〜ＰＢＡ３１を求める（ステップＳ１０４）。
【０１７３】
したがって、メモリ４において後発欠陥が発生したとしても、多くのブロックに渡って論物変換の対応関係を変更する必要がないメモリシステムおよびコンピュータシステム１を、容易な方法で提供することができる。
【０１７４】
また、本実施の形態では、第１予備ブロック４３ａに記憶されている情報を第２ブロック５２ｂａに転送し、第２予備ブロック４３ｂに記憶されている情報を第３ブロック５２ｂｂに転送する演算装置（転送部）５０を、備えている。
【０１７５】
したがって、たとえばバックアップとして第１，２予備ブロック４３ａ，４３ｂに格納されていた情報を、演算装置５０での高速演算が可能となる第２ブロック５２ｂａおよび第３ブロック５２ｂｂに、転送させることができる。
【０１７６】
また、本実施の形態では、第２ブロック５２ｂａおよび第３ブロック５２ｂｂは、揮発性メモリ（たとえば、ＳＲＡＭ、レジスタやフリップフロップ回路など）で構成されるコントローラメモリ５２に保持される。
【０１７７】
したがって、演算装置５０は、高速で第２ブロック５２ｂａおよび第３ブロック５２ｂｂにアクセスすることができる。よって、論物変換処理の高速化が可能となる。
【０１７８】
＜実施の形態２＞
さて、メモリ４の所定の第１ブロック４２に対する消去または書き込みに関するアクセス要求が、コンピュータ２からメモリカード３に送信される。当該アクセス要求には所定の論理アドレスが含まれており、演算装置５０では実施の形態１で説明した入力されてきた所定の論理アドレスに対する第１物理アドレスを算出する。そして、メモリコントローラ５は、当該算出後の第１物理アドレスにアクセスする。当該アクセスのときに、上記所定の第１ブロック４２が後発欠陥ブロックとなることもある。
【０１７９】
本実施の形態は、上記状況に鑑みてなされたものである。以下、本実施の形態に係る論理アドレスと第１物理アドレスとの変換動作について説明する。
【０１８０】
上記で説明したように、メモリカード３に電源が投入されたと判定すると、メモリコントローラ５（演算装置５０）は、メモリ４の予備記憶領域４１にアクセスして、そこに記憶されている冗長情報（第１，２管理領域４１Ａ，４１Ｂに記憶されている情報）４４を読み出し、読み出した冗長情報４４のコントローラメモリ５２への転送を開始する。つまり、実施の形態１で説明したように、演算装置５０は、入力されてきた論理アドレスに対応する第１物理アドレスの導出前に、第１管理領域（図９の符号４１Ａ参照）の情報を第２ブロック（図１４の符号５２ｂａ参照）に転送し、第２管理領域（図９の符号４１Ｂ参照）の情報を第３ブロック（図１４の符号５２ｂｂ）に転送する。実施の形態１で説明した当該転送後には、コントローラメモリ５２内の第１管理領域５２Ｉと第２管理領域５２Ａには、図１４に示す情報が記憶される。
【０１８１】
図１４に示す第１管理領域５２Ｉの構成および当該第１管理領域５２Ｉに格納される情報は、図１０に示す第１管理領域５２Ｉと同じである。これに対して、図１４に示す第２管理領域５２Ａは、図１０に示す第２管理領域５２Ａと同様に第３ブロック５２ｂｂで構成されているが、当該第３ブロック５２ｂｂに格納されている情報は、図１４に示す第２管理領域５２Ａと図１０に示す第２管理領域５２Ａとで異なる。つまり、第１物理アドレスＰＢＡ１２，ＰＢＡ６で特定される第１ブロック４２のみが、既に当該順に後発欠陥が発生している。
【０１８２】
さて、上記コントローラメモリ５２への情報の転送後、コンピュータ２がアクセス要求（消去要求または書き込み要求）を生成して、メモリカード３に送信したとする。ここで、コンピュータ２から送信される当該アクセス要求には、論理アドレスＬＢＡ１３が含まれているものとする。メモリカード３がアクセス要求（論理アドレスＬＢＡ１３）を受信すると、演算装置５０が第１物理アドレスを演算する。具体的に、演算装置５０は、当該論理アドレスＬＢＡ１３とコントローラメモリ５２内の第１管理領域５２Ｉの情報（第２ブロック５２ｂａに格納されている情報）とを用いた上記第一の論物変換処理により、論理アドレスＬＢＡ１３に対応する第１物理アドレスＰＢＡ１７を算出する（ステップＳ１０１参照）。
【０１８３】
ステップＳ１０２の検索の結果、図１４では第２管理領域５２Ａを構成する全第３ブロック５２ｂｂ内に、ステップＳ１０１で求めた第１物理アドレスＰＢＡ１７の情報が無い。この場合には、ステップＳ１０２で「無」となり、演算装置５０は、ステップＳ１０１で算出した第１物理アドレスＰＢＡ１７を、入力された論理アドレスＬＢＡ１３に対応する第１物理アドレスとして決定する。
【０１８４】
以後、図１５のフローチャートを参照しつつ、説明を進める。
【０１８５】
そして、メモリコントローラ５は、メモリ４における第１物理アドレスＰＢＡ１７に対して、上記アクセス要求に基づいたアクセスを行う（ステップＳ２０１）。
【０１８６】
次に、本実施の形態では、演算装置５０は、ステップＳ１０１で求めた第１物理アドレスＰＢＡ１７で特定される第１ブロック４２が後発欠陥ブロックであるか否かを判断する（具体的に、上記アクセス時に、当該第１ブロック４２に対して後発欠陥が発生したか否かを判断する。ステップＳ２０２。）。
【０１８７】
ここで、本実施の形態では、図１６に示すように、上記アクセス時に、第１物理アドレスＰＢＡ１７で特定される第１ブロック４２に対して後発欠陥が発生したとする。図１６では、第１物理アドレスＰＢＡ１７で特定される第１ブロック４２内には、便宜上、「後発Ｂａｄ発生」と記載している。したがって、本実施の形態では、演算装置５０は、第１物理アドレスＰＢＡ１７で特定される第１ブロック４２が後発欠陥ブロックであると判断する（ステップＳ２０２で「Ｙ」）。当該判断は、たとえば、メモリコントローラ５がメモリ４からの、上記アクセスが正常に行われたか否かを示す信号を受信することにより、実施できる。
【０１８８】
なお、上記と異なるが、演算装置５０が、第１物理アドレスＰＢＡ１７で特定される第１ブロック４２が後発欠陥ブロックでないと判断した場合には（ステップＳ２０２で「Ｎ」）、アクセス要求に従ったメモリ４に対する処理を継続する。
【０１８９】
さて、ステップＳ２０２で「Ｙ」と判断されると、図１７に示すように、演算装置５０は、第２管理領域５２Ａに、ステップＳ１０１で求めた第１物理アドレスＰＢＡ１７を記録する（ステップＳ２０３）。ここで、第３ブロック５２ｂｂにおいて、１番目および２番目の番地Ａ＿ＲＡＤ０，Ａ＿ＲＡＤ１には、既に第１物理アドレス情報が格納されている（図１７参照）。そこで、第１物理アドレスＰＢＡ１７の情報は、第１物理アドレスの情報を格納していない先頭の第３ブロック（Ａ＿ＲＡＤ２）に記録される（図１７参照）。
【０１９０】
次に、ステップＳ２０４において、演算装置５０は、式１１により、代替論理アドレスを算出する。ここで、図１１（Ａ）の例と同様に本実施の形態においても、先頭代替論理アドレスはＬＢＡ２０であり、コンピュータ２およびメモリカード３には、予めこの値が設定されているものとする。また、代替論理オフセットは、ステップＳ１０１で求めた第１物理アドレスＰＢＡ１７が格納されている第３ブロック５２ｂｂの第２管理領域５２Ａにおける物理アドレス（第３物理アドレス）Ａ＿ＲＡＤ２から、「２」が一義的定まる。
【０１９１】
したがって、式１１によりＬＢＡ２０＋２となり、演算装置５０は、代替論理アドレスとして、ＬＢＡ２２を得る（「２２」は、先頭代替論理アドレスの数字「２０」と代替論理オフセットの値「２」との和である）。
【０１９２】
次に、演算装置５０は、ステップＳ２０４で求めた代替論理アドレスＬＢＡ２２とコントローラメモリ５２内の第１管理領域５２Ｉの情報（図１４の第２ブロック５２ｂａに格納されている情報）とを用いた上記第一の論物変換処理（ただし、論理アドレスを代替論理アドレスと読み替える必要あり）により、代替論理アドレスＬＢＡ２２に対応する代替物理アドレスを算出する（ステップＳ２０５）。上記第一の論物変換処理を適用すると、代替物理アドレスは「ＰＢＡ２９」である（図１６参照）。
【０１９３】
そして、演算装置５０は、ステップＳ２０５で算出した代替物理アドレスＰＢＡ２９を、入力された論理アドレスＬＢＡ１３に対応する第１物理アドレスとして決定する。その後、メモリコントローラ５は、当該決定した第１物理アドレスＰＢＡ２９に対して、上記アクセス要求に従った処理を実施する。
【０１９４】
また、上記アクセス要求に従った処理終了後、次のアクセス要求が生成されるまでのアイドル期間において、メモリコントローラ５（演算装置５０）は、コントローラメモリ５２の第１管理領域５２Ｉを構成する第２ブロック５２ｂａの情報を、メモリ４の第１ブロック４２の一部で構成された第１管理領域（図９の符号４１Ａ）に転送する。さらに、メモリコントローラ５（演算装置５０）は、コントローラメモリ５２の第２管理領域５２Ａを構成する第３ブロック５２ｂｂの情報を、メモリ４の第１ブロック４２の他の一部で構成された第２管理領域（図９の符号４１Ｂ）に転送する。
【０１９５】
なお、当該転送後において、第１管理領域５２Ｉと第１管理領域４１Ａとの間において、管理・記録される各情報の位置関係は、メモリ４からコントローラメモリ５２への転送のときと同様に、同じである。また、当該転送後において、第２管理領域５２Ａと第２管理領域４１Ｂとの間において、管理・記録される各情報の位置関係も、メモリ４からコントローラメモリ５２への転送のときと同様に、同じである。
【０１９６】
以上のように、本実施の形態では、演算装置５０は、ステップＳ１０１で求めた第１物理アドレスで特定される第１ブロック４２が後発欠陥ブロックであるか否かを判断する（ステップＳ２０２）。
【０１９７】
したがって、ステップＳ１０１で求めた第１物理アドレスにアクセスする際に、当該アクセスした第１ブロック４２に後発欠陥が発生しているか否かの判断ができ、更なる論物変換処理を行うか否かの判断もできる。
【０１９８】
また、本実施の形態では、演算装置５０は、第１物理アドレスの情報を格納していない先頭の第３ブロック５２ｂｂに、ステップＳ１０１で求めた第１物理アドレスを記録する（ステップＳ２０３）。
【０１９９】
したがって、更新された第３ブロック５２ｂｂの情報を元に、以後の論物変換処理を動的に行うことができる。
【０２００】
また、本実施の形態では、演算装置５０は、ステップＳ２０３の後に、第３ブロック５２ｂｂにおける第３物理アドレスと、予め用意されている先頭代替論理アドレス（ここでは、ＬＢＡ２０）とに基づいて、代替論理アドレスを求める（ステップＳ２０４）。そして、代替論理アドレスと、第２ブロック５２ｂａに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求める（ステップＳ２０５）。
【０２０１】
したがって、更新された第３ブロック５２ｂｂの情報を用いた形で、実施の形態１で説明した効果（多くのブロックに渡って論物変換の対応関係を変更する必要がない）を、容易な方法で提供することができる。
【０２０２】
＜実施の形態３＞
さて、実施の形態１，２において、算出された代替物理アドレスで特定される第１ブロック４２が、後発欠陥ブロックとなることも十分に想定される。本実施の形態は、当該状況に鑑みて創作されたものである。実施の形態２では、論理アドレスＬＢＡ１３に対応する第１物理アドレスとして「ＰＢＡ２９」を決定した。本実施の形態では、当該「ＰＢＡ２９」で特定される第１物理アドレスで、後発欠陥が発生した場合を例にとって説明を行う。なお、本実施の形態に係る論物変換処理の動作を、図１８に示すフローチャートを用いて説明する。
【０２０３】
メモリコントローラ５は、当該第１物理アドレスＰＢＡ２９に対して、コンピュータ２からのアクセス要求に基づいたアクセスを行う。本実施の形態では、演算装置５０は、代替物理アドレスである第１物理アドレスＰＢＡ２９で特定される第１ブロック４２が後発欠陥ブロックであるか否かを判断する（具体的に、上記アクセス時に、当該第１ブロック４２に対して後発欠陥が発生したか否かを判断する。ステップＳ３０１。）。
【０２０４】
ここで、本実施の形態では、図１９に示すように、上記アクセス時に、第１物理アドレスＰＢＡ２９で特定される第１ブロック４２に対して後発欠陥が発生したとする。図１９では、第１物理アドレスＰＢＡ２９で特定される第１ブロック４２内には、便宜上、「後発Ｂａｄ発生」と記載している。したがって、本実施の形態では、演算装置５０は、第１物理アドレスＰＢＡ２９で特定される第１ブロック４２が後発欠陥ブロックであると判断する（ステップＳ３０１で「Ｙ」）。当該判断は、たとえば、メモリコントローラ５がメモリ４からの、上記アクセスが正常に行われたか否かを示す信号を受信することにより、実施できる。
【０２０５】
なお、上記と異なるが、演算装置５０が、第１物理アドレスＰＢＡ２９で特定される第１ブロック４２が後発欠陥ブロックでないと判断した場合には（ステップＳ３０１で「Ｎ」）、アクセス要求に従ったメモリ４（第１物理アドレスＰＢＡ２９の第１ブロック４２）に対する処理を継続する。
【０２０６】
さて、ステップＳ３０１で「Ｙ」と判断されると、図２０に示すように、演算装置５０は、第１管理領域５２Ｉに、後発欠陥ブロックとなった第１物理アドレスＰＢＡ２９を記録する（ステップＳ３０２）。ここで、先頭番地からＩ＿ＲＡＤ６番地までの第２ブロック５２ｂｂには、第１物理アドレス情報が格納されている（図２０参照）。そこで、当該第１物理アドレスＰＢＡ２９の情報は、第１物理アドレスの情報を格納していない先頭の第２ブロック（Ｉ＿ＲＡＤ７）に記録される（図２０参照）。
【０２０７】
また、ここで注目すべきことは、１度代替された第１ブロック４２（代替領域における第１ブロック４２）において後発欠陥が発生した場合には、当該後発欠陥となった第１ブロック４２の第１物理アドレスは、第２管理領域５２Ａでなく、第１管理領域５２Ｉに追加・記録されるということである。
【０２０８】
実施の形態２でも説明したように、第１物理アドレスＰＢＡ２９で特定される第１ブロック４２は、既に他の第１ブロック４２の後発欠陥発生により、代替されたブロックである。当該代替先となった第１ブロック４２において後発欠陥が発生した。そこで、第１物理アドレスＰＢＡ２９のアドレス情報は、第１管理領域５２Ｉに追加・記録される。
【０２０９】
また、代替された複数の第１ブロック４２において後発欠陥が時系列的に発生し、当該後発欠陥が発生した順に、第１物理アドレスの情報を、第１物理アドレスの情報が未だ格納していない先頭の第２ブロックに順次記録する。こうすることにより、記録後の第１管理領域５２Ｉは、第２物理アドレスＩ＿ＲＡＤ０〜Ｉ＿ＲＡＤ７の昇順に、第１物理アドレスＰＢＡ０〜ＰＢＡ３１が昇順に格納されることになる。つまり、上記のように、第１管理領域５２Ｉへ、第１物理アドレスＰＢＡ２６〜ＰＢＡ３１を記録する。これにより、第２ブロック５２ｂａに格納されている情報を、第２物理アドレスＩ＿ＲＡＤ０〜Ｉ＿ＲＡＤ７の昇順に、第１物理アドレスＰＢＡ０〜ＰＢＡ３１が昇順に格納されるように並び替える必要がなくなる。
【０２１０】
次に、演算装置５０は、ステップＳ２０４で求めた代替論理アドレスＬＢＡ２２とコントローラメモリ５２内の第１管理領域５２Ｉの情報（「ＰＢＡ２９」が記録された図２０に示す第１管理領域５２Ｉの情報であり、第２ブロック５２ｂａに格納されている情報）とを用いた上記第一の論物変換処理（ただし、論理アドレスを代替論理アドレスと読み替える必要あり）により、代替論理アドレスＬＢＡ２２に対応する代替物理アドレスを算出する（ステップＳ３０３）。上記第一の論物変換処理を適用すると、代替物理アドレスは「ＰＢＡ３０」である（図１９参照）。
【０２１１】
そして、演算装置５０は、ステップＳ３０３で算出した代替物理アドレスＰＢＡ３０を、入力された論理アドレスＬＢＡ１３に対応する第１物理アドレスとして決定する。その後、メモリコントローラ５は、当該決定した第１物理アドレスＰＢＡ３０に対して、上記アクセス要求に従った処理を実施する。
【０２１２】
ここで、ステップＳ３０３で算出した代替物理アドレスＰＢＡ３０で特定される第１ブロック４２が、さらに後発欠陥ブロックである場合も想定される。そこで、算出された代替物理アドレスで特定される第１ブロック４２が正常ブロックと判断されるまで、ステップＳ３０１〜Ｓ３０３のフローを繰り返し実施することが好ましい。
【０２１３】
また、上記アクセス要求に従った処理終了後、次のアクセス要求が生成されるまでのアイドル期間において、メモリコントローラ５（演算装置５０）は、コントローラメモリ５２の第１管理領域５２Ｉを構成する第２ブロック５２ｂａの情報を、メモリ４の第１ブロック４２の一部で構成された第１管理領域（図９の符号４１Ａ）に転送する。さらに、メモリコントローラ５（演算装置５０）は、コントローラメモリ５２の第２管理領域５２Ａを構成する第３ブロック５２ｂｂの情報を、メモリ４の第１ブロック４２の他の一部で構成された第２管理領域（図９の符号４１Ｂ）に転送する。
【０２１４】
なお、当該転送後において、第１管理領域５２Ｉと第１管理領域４１Ａとの間において、管理・記録される各情報の位置関係は、メモリ４からコントローラメモリ５２への転送のときと同様に、同じである。また、当該転送後において、第２管理領域５２Ａと第２管理領域４１Ｂとの間において、管理・記録される各情報の位置関係も、メモリ４からコントローラメモリ５２への転送のときと同様に、同じである。
【０２１５】
なお、本実施の形態では、実施の形態２の動作を前提に話を進めた。しかし、実施の形態１の動作を前提として、本実施の形態を適用することもできる。つまり、実施の形態１に従い代替物理アドレスを求め、その後当該代替物理アドレスで特定される第１ブロック４２において後発欠陥が発生した場合も、本実施の形態を適用することができる（つまり、図１８のフローを適用することができる）。
【０２１６】
つまり、演算装置５０は、ステップＳ１０４で求めた代替物理アドレスである第１物理アドレスで特定される第１ブロック４２が後発欠陥ブロックであるか否かを判断する（ステップＳ３０１）。そして、後発欠陥ブロックであると判断したとき、演算装置５０は、第１管理領域５２Ｉに、後発欠陥ブロックと判定された、ステップＳ１０４で求めた第１物理アドレスの情報を、第１物理アドレスの情報を格納していない先頭の第２ブロック５２ｂａに記録する（ステップＳ３０２）。そして、演算装置５０は、ステップＳ１０３で求めた代替論理アドレスとコントローラメモリ５２内の第１管理領域５２Ｉの情報とを用いた上記第一の論物変換処理（ただし、論理アドレスを代替論理アドレスと読み替える必要あり）により、代替論理アドレスに対応する代替物理アドレスを算出する（ステップＳ３０３）。そして、演算装置５０は、ステップＳ３０３で算出した代替物理アドレスを、入力された論理アドレスに対応する第１物理アドレスとして決定する。
【０２１７】
以上のように、本実施の形態では、演算装置５０は、ステップＳ１０４またはステップＳ２０５で求めた第１物理アドレスで特定される第１ブロック（代替ブロック）４２が、後発欠陥を有するか否かを判断する（ステップＳ３０１）。
【０２１８】
したがって、代替後の第１ブロック４２にアクセスする際に、当該アクセスした第１ブロック４２に後発欠陥が発生しているか否かの判断ができ、更なる論物変換処理を行うか否かの判断もできる。
【０２１９】
また、本実施の形態では、演算装置５０は、ステップＳ１０４またはステップＳ２０５で求めた第１物理アドレスを、第１物理アドレスの情報を格納していない先頭の第２ブロック５２ｂａに記録する（ステップＳ３０２）。
【０２２０】
したがって、更新された第２ブロック５２ｂａの情報を元に、以後の論物変換処理を動的に行うことができる。
【０２２１】
また、本実施の形態では、演算装置５０は、ステップＳ１０３またはステップＳ２０４で求めた代替論理アドレスと、ステップＳ３０２後の第２ブロック５２ｂａに格納される情報とに基づいて、論理アドレスに対応する第１物理アドレスを求める（ステップＳ３０３）。
【０２２２】
したがって、更新された第２ブロック５２ｂａの情報を用いた形で、実施の形態１で説明した効果（多くのブロックに渡って論物変換の対応関係を変更する必要がない）を、容易な方法で提供することができる。
【０２２３】
また、本実施の形態においても、実施の形態２と同様に、第２ブロック５２ｂａの情報を第１ブロック４２の一部で構成された第１管理領域４１Ａに転送し、第３ブロック５２ｂｂの情報を第１ブロック４２の他の一部で構成されたる第２管理領域４１Ｂに転送する、演算装置（転送部）５０を、備えている。
【０２２４】
したがって、第１ブロック５２ｂａおよび第２ブロック５２ｂｂ内の情報を、第１管理領域４１Ａおよび第２管理領域４１Ｂにバックアップとして保存することができる。
【０２２５】
なお、実施の形態１でも説明したように、演算装置（転送部）５０は、論理アドレスに対応する第１物理アドレスの導出前に、第１管理領域４１Ａの情報を第２ブロック５２ｂａに転送し、第２管理領域４１Ｂの情報を第３ブロック５２ｂｂに転送する。
【０２２６】
したがって、たとえばバックアップとして第１，２管理領域４１Ａ，４１Ｂに格納されていた情報を、演算装置５０での高速演算が可能となる第２ブロック５２ｂａおよび第３ブロック５２ｂｂに、転送させることができる。
【図面の簡単な説明】
【０２２７】
【図１】本発明に係るコンピュータシステムを示す図である。
【図２】メモリカードの構成を示すブロック図である。
【図３】メモリの内部構造を示す概略図である。
【図４】メモリにおけるブロックの構造を示す図である。
【図５】ユーザ情報記憶領域を例示する図である。
【図６】予備記憶領域を例示する図である。
【図７】冗長情報がコントローラメモリに参照情報として記憶される状態を例示する図である。
【図８】論理アドレスと物理アドレスとの対応を例示する図である。
【図９】メモリの内部構造を示す概略図である。
【図１０】参照情報として、第１管理領域および第２管理領域に記憶される情報の構造を例示する図である。
【図１１】実施の形態１に係る論物変換処理動作を説明するための図である。
【図１２】実施の形態１に係る論物変換処理動作を説明するためのフローチャートである。
【図１３】論理アドレスと物理アドレスとの対応を例示する図である。
【図１４】参照情報として、第１管理領域および第２管理領域に記憶される情報の構造を例示する図である。
【図１５】実施の形態２に係る論物変換処理動作を説明するためのフローチャートである。
【図１６】実施の形態２に係る論物変換処理動作を説明するための図である。
【図１７】参照情報として、第１管理領域および第２管理領域に記憶される情報の構造を例示する図である。
【図１８】実施の形態３に係る論物変換処理動作を説明するためのフローチャートである。
【図１９】実施の形態３に係る論物変換処理動作を説明するための図である。
【図２０】参照情報として、第１管理領域および第２管理領域に記憶される情報の構造を例示する図である。
【符号の説明】
【０２２８】
１  コンピュータシステム
２  コンピュータ
３  メモリカード
４  メモリ
４０  ユーザ情報記憶領域
４１  予備記憶領域
４１Ａ  （メモリにおける）第１管理領域
４１Ｂ  （メモリにおける）第２管理領域
４３Ａ  第１予備ブロック
４３Ｂ  第２予備ブロック
４２  第１ブロック
４３  予備ブロック
４４  冗長情報
５０  演算装置
５２  コントローラメモリ
５２Ｉ  第１管理領域
５２Ａ  第２管理領域
５２ｂａ  第２ブロック
５２ｂｂ  第３ブロック
５５  参照情報
【図１】
2010146495.tif 000003
【図２】
2010146495.tif 000004
【図３】
2010146495.tif 000005
【図４】
2010146495.tif 000006
【図５】
2010146495.tif 000007
【図６】
2010146495.tif 000008
【図７】
2010146495.tif 000009
【図８】
2010146495.tif 000010
【図９】
2010146495.tif 000011
【図１０】
2010146495.tif 000012
【図１１】
2010146495.tif 000013
【図１２】
2010146495.tif 000014
【図１３】
2010146495.tif 000015
【図１４】
2010146495.tif 000016
【図１５】
2010146495.tif 000017
【図１６】
2010146495.tif 000018
【図１７】
2010146495.tif 000019
【図１８】
2010146495.tif 000020
【図１９】
2010146495.tif 000021
【図２０】
2010146495.tif 000022