(57)【要約】【課題】複数の記憶媒体を用いて構成され、保守作業の負荷を軽減することができる記憶媒体管理装置、記憶媒体管理方法、コンピュータプログラム及び記憶媒体管理システムを提供することである。【解決手段】実施形態の記憶媒体管理装置は、記憶部と、故障情報登録部と、先天性不良ブロック情報登録部とを持つ。記憶部は、不揮発性を有し、複数の記憶媒体の不良ブロックの位置を示す不良ブロック情報を記憶する。故障情報登録部は、記憶媒体の読み書きにおいてエラーが発生したことを示す故障情報を記憶部に記憶させる。先天性不良ブロック情報登録部は、記憶媒体が交換された場合、故障情報に基づいて交換された記憶媒体を判断し、交換された記憶媒体の所定のブロックから、先天的な不良ブロックの位置を示す先天性不良ブロック情報を読み出し、交換前の記憶媒体の不良ブロック情報を、交換後の記憶媒体から読み出された先天性不良ブロック情報に置き換える。【選択図】図２
2016114958.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性を有し、複数の記憶媒体における不良ブロックの位置を示す不良ブロック情報を記憶する記憶部と、
前記記憶媒体の読み書きにおいてエラーが発生したことを示す故障情報を前記記憶部に記憶させる故障情報登録部と、
前記複数の記憶媒体の一部又は全部が交換された場合、前記故障情報に基づいて交換された記憶媒体を判断し、前記交換された記憶媒体の所定のブロックから、先天的な不良ブロックの位置を示す先天性不良ブロック情報を読み出し、交換前の記憶媒体の不良ブロック情報を、交換後の記憶媒体から読み出された前記先天性不良ブロック情報に置き換える先天性不良ブロック情報登録部と、
を備える記憶媒体管理装置。
【請求項２】
前記故障情報は、前記記憶媒体の読み書きにおいて発生したエラーの回数を前記記憶媒体ごとに示す情報であり、
前記先天性不良ブロック情報登録部は、前記回数が所定の閾値を越えている前記記憶媒体を前記交換された記憶媒体であると判断する、
請求項１に記載の記憶媒体管理装置。
【請求項３】
前記記憶媒体管理装置は、ユーザデータの読み書きを行うユーザモードと、自装置をユーザモードで動作させるための前処理を行う保守モードと、のいずれかのモードで動作し、
自装置を前記ユーザモード又は前記保守モードで動作させるモード管理部をさらに備え、
前記先天性不良ブロック情報登録部は、前記保守モードにおいて動作する、
請求項１又は請求項２に記載の記憶媒体管理装置。
【請求項４】
前記記憶媒体は、ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙである、
請求項１から請求項３のいずれか一項に記載の記憶媒体管理装置。
【請求項５】
前記不良ブロック情報に基づいて、前記複数の記憶媒体の正常なブロックにデータの読み書きを行う入出力部をさらに備える、
請求項１から請求項４のいずれか一項に記載の記憶媒体管理装置。
【請求項６】
不揮発性を有し、複数の記憶媒体における不良ブロックの位置を示す不良ブロック情報を記憶する記憶部を備える記憶媒体管理装置が行う記憶媒体管理方法であって、
前記記憶媒体の読み書きにおいてエラーが発生したことを示す故障情報を前記記憶部に記憶させる故障情報登録ステップと、
前記複数の記憶媒体の一部又は全部が交換された場合、前記故障情報に基づいて交換された記憶媒体を判断し、前記交換された記憶媒体の所定のブロックから、先天的な不良ブロックの位置を示す先天性不良ブロック情報を読み出し、交換前の記憶媒体の不良ブロック情報を、交換後の記憶媒体から読み出された前記先天性不良ブロック情報に置き換える先天性不良ブロック情報登録ステップと、
前記不良ブロック情報に基づいて、前記複数の記憶媒体の正常なブロックにデータの読み書きを行う入出力ステップと、
を有する記憶媒体管理方法。
【請求項７】
不揮発性を有し、複数の記憶媒体における不良ブロックの位置を示す不良ブロック情報を記憶する記憶部を備える記憶媒体管理装置が行う記憶媒体管理方法における、
前記記憶媒体の読み書きにおいてエラーが発生したことを示す故障情報を前記記憶部に記憶させる故障情報登録ステップと、
前記複数の記憶媒体の一部又は全部が交換された場合、前記故障情報に基づいて交換された記憶媒体を判断し、前記交換された記憶媒体の所定のブロックから、先天的な不良ブロックの位置を示す先天性不良ブロック情報を読み出し、交換前の記憶媒体の不良ブロック情報を、交換後の記憶媒体から読み出された前記先天性不良ブロック情報に置き換える先天性不良ブロック情報登録ステップと、
前記不良ブロック情報に基づいて、前記複数の記憶媒体の正常なブロックにデータの読み書きを行う入出力ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項８】
複数の記憶媒体と、
不揮発性を有し、前記複数の記憶媒体における不良ブロックの位置を示す不良ブロック情報を記憶する記憶部と、
前記記憶媒体の読み書きにおいてエラーが発生したことを示す故障情報を前記記憶部に記憶させる故障情報登録部と、
前記複数の記憶媒体の一部又は全部が交換された場合、前記故障情報に基づいて交換された記憶媒体を判断し、前記交換された記憶媒体の所定のブロックから、先天的な不良ブロックの位置を示す先天性不良ブロック情報を読み出し、交換前の記憶媒体の不良ブロック情報を、交換後の記憶媒体から読み出された前記先天性不良ブロック情報に置き換える先天性不良ブロック情報登録部と、
を備える記憶媒体管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶媒体管理装置、記憶媒体管理方法、コンピュータプログラム及び記憶媒体管理システムに関する。
【背景技術】
【０００２】
従来、複数のＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ（以下、「ＮＡＮＤメモリ」という。）を用いて構成されたメモリユニットが実用化されている。ＮＡＮＤメモリの記憶領域には、一般にある程度の数の先天的な不良ブロック（以下、「先天性不良ブロック」という。）が含まれる。そのため、ユーザは、ＮＡＮＤメモリを使用する際、どのブロックが先天性不良ブロックであるかを示す先天性不良ブロック情報に基づいて、先天性不良ブロック以外の正常なブロックを使用する必要がある。ＮＡＮＤメモリは、所定のブロックに先天性不良ブロック情報が記憶された状態で出荷される。先天性不良ブロック情報は、ユーザが使用可能なブロックに記憶されるため、一度ＮＡＮＤメモリの使用が開始されると、ユーザの使用により上書きされる可能性がある。そのため、ユーザは、ＮＡＮＤメモリの使用開始時に必ず先天性不良ブロック情報をＮＡＮＤメモリから読み出して、別の記憶装置に記憶させる必要がある。
【０００３】
このようなＮＡＮＤメモリを用いて構成されるメモリユニットでは、電源投入時に全てのＮＡＮＤメモリから先天性不良ブロック情報を読み出し、不良ブロックを管理するための不良ブロック管理テーブルに記憶させる。メモリユニットは、不良ブロック管理テーブルに登録された先天性不良ブロックを含む不良ブロック以外の正常なブロックを使用してデータを保持する。
【０００４】
しかしながら、このようなメモリユニットにおいて、一部のＮＡＮＤメモリに故障が発生した場合、保守員は、故障したＮＡＮＤメモリの交換後、手動で不良ブロック管理テーブルのメンテナンスを行う必要があった。そのため、メモリユニットの保守作業には、多くのコストを要する可能性があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１８６６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、記憶媒体の保守作業の負荷を軽減することができる記憶媒体管理装置、記憶媒体管理方法、コンピュータプログラム及び記憶媒体管理システムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の記憶媒体管理装置は、記憶部と、故障情報登録部と、先天性不良ブロック情報登録部とを持つ。記憶部は、不揮発性を有し、複数の記憶媒体における不良ブロックの位置を示す不良ブロック情報を記憶する。故障情報登録部は、前記記憶媒体の読み書きにおいてエラーが発生したことを示す故障情報を前記記憶部に記憶させる。先天性不良ブロック情報登録部は、前記複数の記憶媒体の一部又は全部が交換された場合、前記故障情報に基づいて交換された記憶媒体を判断し、前記交換された記憶媒体の所定のブロックから、先天的な不良ブロックの位置を示す先天性不良ブロック情報を読み出し、交換前の記憶媒体の不良ブロック情報を、交換後の記憶媒体から読み出された前記先天性不良ブロック情報に置き換える。
【図面の簡単な説明】
【０００８】
【図１】実施形態の記憶媒体管理装置のハードウェア構成を示す概略図。
【図２】記憶媒体管理装置１の機能構成を示す機能ブロック図。
【図３】不良ブロック情報の具体例を示す図。
【図４】ブロックアドレスと各記憶媒体６との対応付けを示す図。
【図５】故障情報の具体例を示す図。
【図６】実施形態の記憶媒体管理装置１のユーザモードにおける動作の流れを示すフローチャート。
【図７】実施形態の記憶媒体管理装置１の保守モードにおける動作の流れを示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、実施形態の記憶媒体管理装置、記憶媒体管理方法、コンピュータプログラム及び記憶媒体管理システムを、図面を参照して説明する。
【００１０】
図１は実施形態の記憶媒体管理装置のハードウェア構成を示す概略図である。
記憶媒体管理装置１は、複数の記憶媒体６−１〜６−ｎを用いて構成される記憶装置において、記憶媒体６−１〜６−ｎの管理と、記憶媒体６−１〜６−ｎに対するデータの読み書きの制御とを行う記憶媒体管理装置である。記憶媒体６−１〜６−ｎは、ＮＡＮＤメモリを用いて構成され、記憶媒体管理装置１の制御によりデータの読み書きが行われる記憶媒体である。
【００１１】
記憶媒体６−１〜６−ｎは、先天的に不良ブロック（以下、「先天性不良ブロック」という。）を有する可能性がある記憶媒体である。記憶媒体６−１〜６−ｎの所定のブロックには、先天性不良ブロックの位置を示す先天性不良ブロック情報が製造時に記録される。以下、説明の便宜のため、特に区別しない限り記憶媒体６−１〜６−ｎを記憶媒体６と記載する。
【００１２】
このような先天性不良ブロックを有する可能性のある記憶媒体６を用いて構成される記憶装置は、先天性不良ブロックを除く正常なブロックに対してデータの読み書きを行う必要がある。そのため、記憶媒体管理装置１は、先天性不良ブロック情報が示すブロック以外のブロックに対してデータの読み書きを行うように構成される。製造時に記録される先天性不良ブロック情報は、記憶媒体６においてユーザデータの読み書きに使用可能なブロックに記憶される。そのため、記憶媒体管理装置１は、ユーザの使用によって先天性不良ブロック情報が消失しないように、ユーザが記憶装置の使用を開始する前に、記憶媒体６から先天性不良ブロック情報を読み出して、不揮発性を有する他の記憶媒体に保存するように構成される。従来、このような先天性不良ブロック情報の保存は、記憶装置の電源投入時に、全ての記憶媒体６を対象として行われるように構成されていた。
【００１３】
このような記憶装置において、一部又は全部の記憶媒体６に故障が発生した場合、保守員は、故障が発生した記憶媒体６の交換を行う。その際、交換後の記憶媒体６は、交換前の記憶媒体６と異なる位置のブロックに先天性不良ブロックを有する可能性がある。そのため、保守員は、不揮発性を有する他の記憶媒体に保存された先天性不良ブロックのうち、交換前の記憶媒体６から取得された先天性不良ブロック情報を、交換後の記憶媒体６から取得される先天性不良ブロック情報に置き換える作業を手動で行う必要があった。
【００１４】
このような手動による先天性不良ブロック情報の置き換え置き換え作業には、作業ミスが発生する可能性があるという問題がある。例えば、本来置き換える必要のない先天性不良ブロック情報を置き換えてしまう場合が考えられる。この場合、本来置き換えられる必要がなかった先天性不良ブロック情報は、ユーザの使用により既に記憶媒体６に存在しない可能性がある。すなわち、このような作業ミスにより、必要な先天性不良ブロック情報が消失する可能性がある。
【００１５】
このような問題を解決するため、実施形態の記憶媒体管理装置１は、記憶媒体６の交換時における先天性不良ブロック情報の置き換えを自動的に行う構成を備える。以下、実施形態の記憶媒体管理装置１の構成について詳細に説明する。
【００１６】
記憶媒体管理装置１は、バスで接続されたＣＰＵ２（Central Processing Unit）やメモリ３や補助記憶装置４やコントローラ５などを備え、記憶媒体管理プログラムを実行する。記憶媒体管理装置１は、記憶媒体管理プログラムの実行によって不良ブロック情報記憶部１１、故障情報記憶部１２、モード管理部１３、入出力部１４、故障情報登録部１５及び先天性不良ブロック情報登録部１６を備える装置として機能する。なお、記憶媒体管理装置１の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。記憶媒体管理プログラムは、コンピュータ読み取り可能な記憶媒体に記録されてもよい。コンピュータ読み取り可能な記憶媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。記憶媒体管理プログラムは、電気通信回線を介して送信されてもよい。
【００１７】
図２は、記憶媒体管理装置１の機能構成を示す機能ブロック図である。
不良ブロック情報記憶部１１は、磁気ハードディスク装置や半導体記憶装置などの不揮発性を有する記憶装置を用いて構成される。不良ブロック情報記憶部１１は、不良ブロック情報を記憶する。不良ブロック情報は、記憶媒体６における不良ブロックの位置を示す情報である。不良ブロック情報は、入出力部１４及び先天性不良ブロック情報登録部１６によって不良ブロック情報記憶部１１に登録される。
【００１８】
故障情報記憶部１２は、磁気ハードディスク装置や半導体記憶装置などの不揮発性を有する記憶装置を用いて構成される。故障情報記憶部１２は、記憶媒体６の読み書きにおいて発生したエラーに関する情報を示す故障情報を記憶する。故障情報は、故障情報登録部１５によって故障情報記憶部１２に登録される。
【００１９】
不良ブロック情報記憶部１１及び故障情報記憶部１２は、例えば、図１の補助記憶装置４によって実現される。
【００２０】
モード管理部１３は、自装置の動作モードを管理する。動作モードには、ユーザモードと保守モードとがある。ユーザモードは、ユーザデータの読み書きを行うモードである。保守モードは、自装置をユーザモードで動作させるための前処理を行うモードである。例えば、モード管理部１３は、自装置の起動時において動作する。そして、モード管理部１３は、起動時において動作モードの入力を受け付け、入力に応じた動作モードで自装置を起動させる。一方、起動時において動作モードが入力されなかった場合、モード管理部１３は、ユーザモードで自装置を起動させる。
【００２１】
入出力部１４は、記憶媒体６に対してデータの読み書きを行う。入出力部１４は、例えば、図１のコントローラ５によって実現される。入出力部１４は、不良ブロック情報に基づいて、記憶媒体６の正常なブロックにデータの読み書きを行う。入出力部１４は、データの読み書きにおいてエラーが発生した場合、エラーが発生したブロックの位置を不良ブロック情報に追加する。また、その場合、入出力部１４は、発生したエラーに関する情報を故障情報登録部１５に出力する。
【００２２】
故障情報登録部１５は、入出力部１４から出力されるエラーに関する情報を取得する。故障情報登録部１５は、取得された情報に基づいて、故障情報記憶部１２に記憶される故障情報を更新する。
【００２３】
先天性不良ブロック情報登録部１６は、先天性不良ブロック情報を不良ブロック情報記憶部１１に記憶させる。具体的には、先天性不良ブロック情報登録部１６は、記憶媒体６の所定のブロックから先天性不良ブロック情報を読み出す。先天性不良ブロック情報登録部１６は、読み出された先天性不良ブロック情報が示す不良ブロックの位置を、不良ブロック情報に追加する。
【００２４】
なお、上記のモード管理部１３、入出力部１４、故障情報登録部１５及び先天性不良ブロック情報登録部１６は、ＣＰＵ２又はコントローラ５のいずれか一方で実現される機能部として構成されてもよいし、ＣＰＵ２及びコントローラ５の両方で実現される機能部として構成されてもよい。
【００２５】
図３は、不良ブロック情報の具体例を示す図である。
不良ブロック情報は、例えば、図３の例に示される不良ブロック情報テーブル１１１として不良ブロック情報記憶部１１に記憶される。不良ブロック情報テーブル１１１は、ブロックアドレスごとに不良ブロック情報レコードを有する。不良ブロック情報レコードは、ブロックアドレス及び不良情報の各値を有する。ブロックアドレスは、記憶媒体管理装置１が管理する記憶領域について、記憶領域の位置をブロックの単位で識別するためのアドレス情報である。図３の例では、ブロックアドレスは、４桁の１６進数で表されている。この場合、ブロックアドレスは、“００００”〜“ＦＦＦＦ”の範囲の値を取り得る。
【００２６】
不良情報は、ブロックアドレスが示すブロックが不良ブロックであるか否かを示す情報である。例えば、図３の例では、不良情報は、不良ブロックであることを示す“１”と、不良ブロックではないことを示す“０”と、のいずれかの値を取り得る情報として表されている。
【００２７】
不良ブロック情報テーブル１１１は、不良情報の値が“０”（不良ブロックではない）に初期化された状態から、入出力部１４又は先天性不良ブロック情報登録部１６によって更新される。
【００２８】
図４は、ブロックアドレスと各記憶媒体６との対応付けを示す図である。
図３で説明した不良ブロック情報において、ある１つの記憶媒体６により提供される記憶領域は、連続したブロックアドレスで管理される。記憶媒体６が記憶媒体６−１〜６−ｎのｎ個の記憶媒体で構成される場合、例えば、ブロックアドレスと記憶媒体６との対応付けは、図４の例のように管理される。
【００２９】
図４は、１つの記憶媒体６により提供される記憶領域のブロック数が、“０ＦＦＦ”個である場合の例を示している。図４の例では、記憶媒体管理装置１が管理する記憶領域の先頭のブロックアドレス“００００”から、記憶媒体６−１、６−２、・・・、６−ｎの順に対応するブロックアドレスが割り当てられている。記憶媒体６−１は、“００００”から“０ＦＦＦ”のブロックアドレスに割り当てられている。記憶媒体６−２は、“１０００”から“１ＦＦＦ”のブロックアドレスに割り当てられている。記憶媒体６−３は、“２０００”から“２ＦＦＦ”のブロックアドレスに割り当てられている。すなわち、図４の例の場合、ブロックアドレスは、４桁目が記憶媒体６ごとに異なる値となるように割り当てられる。図４の例の場合、ｎ個の記憶媒体６のうち、ｋ個目の記憶媒体６は、“（ｋ−１）０００”から“（ｋ−１）ＦＦＦ”に割り当てられる。
【００３０】
なお、図４の例は、記憶媒体６の個数ｋが１６以下の場合の例である。記憶媒体６の数に応じてブロックアドレスの桁数が決定されれば、記憶媒体管理装置１は、任意の数の記憶媒体６を管理することができる。
【００３１】
図５は、故障情報の具体例を示す図である。
故障情報は、故障情報記憶部１２により、例えば図５の例に示される故障情報テーブル１２１として記憶される。故障情報テーブル１２１は、記憶媒体識別情報ごとに故障情報レコードを有する。例えば、故障情報レコードは、記憶媒体識別情報、不良ブロックアドレス情報及びエラー発生回数の各値を有する。
【００３２】
記憶媒体識別情報は、各記憶媒体６の識別情報である。図１の例のように、記憶媒体６がｎ個の記憶媒体で構成される場合、記憶媒体識別情報は、例えば図５の例のように、“０”〜“ｎ”のｎ個の識別情報のいずれかを値に持つ。
【００３３】
不良ブロックアドレス情報は、記憶媒体識別情報が示す記憶媒体６における不良ブロックのブロックアドレスを示す。不良ブロックアドレス情報にブロックアドレスが１つも登録されていない故障情報レコードは、対応する記憶媒体識別情報が示す記憶媒体６に不良ブロックが存在しないことを表す。不良ブロックを持つ記憶媒体６は、対応する故障情報レコードの不良ブロックアドレス情報の値に、１つ以上のブロックアドレスの値を持つ。図５の例は、記憶媒体６−１により提供される記憶領域“００００”〜“０ＦＦＦ”のうち、“００００”、“０１４２”及び“０Ｆ１０”のブロックアドレスで表されるブロックが不良ブロックであることを示している。
【００３４】
エラー発生回数は、記憶媒体識別情報が示す記憶媒体６のブロックの読み書きにおいて、エラーが発生した回数を示す。図５の例は、記憶媒体６−１の読み書きにおいて１５回のエラーが発生したことを示している。すなわち、不良ブロックアドレス情報が示すブロックアドレス“００００”、“０１４２”及び“０Ｆ１０”のブロックに対する読み書きにおいて発生したエラーの回数の総数が１５回であることを示している。
故障情報レコードは、故障情報登録部１５によって故障情報記憶部１２に登録される。
【００３５】
図６は、実施形態の記憶媒体管理装置１のユーザモードにおける動作の流れを示すフローチャートである。
まず、入出力部１４は、記憶媒体６に対するデータ読み書きの要求が発生したか否かを判定する（ステップＳ１０１）。データ読み書きの要求が発生していない場合（ステップＳ１０１−ＮＯ）、入出力部１４は、ステップＳ１０１の処理を繰り替えし、データ読み書きの要求の発生を待機する。
【００３６】
一方、データ読み書きの要求が発生した場合（ステップＳ１０１−ＹＥＳ）、入出力部１４は、発生したデータ読み書きの要求が、データの読み出しの要求であるか、又はデータの書き込みの要求であるかを判定する（ステップＳ１０２）。
【００３７】
データ読み書きの要求が、データの書き込みの要求である場合（ステップＳ１０２：書き込み）、入出力部１４は、不良ブロック情報に基づいてデータの書き込み先のブロックを決定する（ステップＳ１０３）。具体的には、入出力部１４は、不良ブロック情報テーブル１１１を参照し、不良情報の値に“０”を持つ不良ブロック情報レコードを選択する。入出力部１４は、選択された不良ブロック情報レコードからブロックアドレスの値を取得する。入出力部１４は、書き込み対象のデータのサイズや、各記憶媒体６に対するデータの書き込みの状態等に基づいて、取得されたブロックアドレスの中から、データの書き込み先となるブロックアドレスを決定する。
【００３８】
入出力部１４は、データの書き込み先として決定されたブロックアドレスが示すブロックにデータの書き込みを実行する（ステップＳ１０４）。入出力部１４は、データの書き込みが成功したか否かを判定する（ステップＳ１０５）。データの書き込みが成功した場合（ステップＳ１０５−ＹＥＳ）、ステップＳ１０１に戻り、入出力部１４は、次のデータ読み書きの要求の発生を待機する。
【００３９】
一方、データの書き込みが失敗した場合（ステップＳ１０５−ＮＯ）、入出力部１４は、不良ブロック情報の登録を行う（ステップＳ１０６）。具体的には、入出力部１４は、不良ブロック情報テーブル１１１を参照し、データの書き込みに失敗したブロックを示すブロックアドレスを値に持つ不良ブロック情報レコードを選択する。入出力部１４は、選択された不良ブロック情報レコードの不良情報の値を、“０”から“１”に変更する。
【００４０】
入出力部１４は、不良ブロック情報の登録を行うと、データの書き込みが失敗したブロックのブロックアドレスと、当該ブロックを有する記憶媒体６の記憶媒体識別情報と、を故障情報登録部１５に出力する。故障情報登録部１５は、入出力部１４から出力されたブロックアドレスと、記憶媒体識別情報と、を取得する。故障情報登録部１５は、取得したブロックアドレスと、記憶媒体識別情報と、に基づいて故障情報を登録する（ステップＳ１０７）。
【００４１】
具体的には、故障情報登録部１５は、故障情報テーブル１２１を参照し、入出力部１４から取得した記憶媒体識別情報を値に持つ故障情報レコードを選択する。故障情報登録部１５は、選択された故障情報レコードから不良ブロックアドレス情報の値を取得する。故障情報登録部１５は、取得した不良ブロックアドレス情報の値に、入出力部１４から取得されたブロックアドレスが含まれるか否かを判断する。取得した不良ブロックアドレス情報の値に、入出力部１４から取得されたブロックアドレスが含まれない場合、故障情報登録部１５は、入出力部１４から取得されたブロックアドレスを不良ブロックアドレス情報に追加するとともに、エラー発生回数の値に“１”を加算して故障情報レコードを更新する。一方、取得した不良ブロックアドレス情報の値に、入出力部１４から取得されたブロックアドレスが含まれる場合、故障情報登録部１５は、不良ブロックアドレス情報の更新を行わず、エラー発生回数の値に“１”を加算して故障情報レコードを更新する。
【００４２】
故障情報登録部１５は、故障情報を登録すると、ステップＳ１０３に戻り、書き込みに失敗した不良ブロックの書き込みをリトライする。
【００４３】
一方、ステップＳ１０２において、データ読み書きの要求が、データの読み出しの要求である場合（ステップＳ１０２：読み出し）、入出力部１４は、要求されたデータの読み出しを実行する（ステップＳ１０８）。このとき、データの読み出しの要求には、読み出しの対象となるブロックのブロックアドレスが含まれているものとする。入出力部１４は、データ読み出しの要求に含まれるブロックアドレスが示すブロックからデータの読み出しを実行する。
【００４４】
入出力部１４は、データの読み出しが成功したか否かを判定する（ステップＳ１０９）。データの読み出しが成功した場合（ステップＳ１０９−ＹＥＳ）、ステップＳ１０１に戻り、入出力部１４は、次のデータ読み書きの要求の発生を待機する。
【００４５】
一方、データの読み出しが失敗した場合（ステップＳ１０９−ＮＯ）、入出力部１４は、不良ブロック情報の登録を行う（ステップＳ１１０）。具体的には、入出力部１４は、不良ブロック情報テーブル１１１を参照し、データの読み出しに失敗したブロックを示すブロックアドレスを値に持つ不良ブロック情報レコードを選択する。入出力部１４は、選択された不良ブロック情報レコードの不良情報の値を、“０”から“１”に変更する。
【００４６】
入出力部１４は、不良ブロック情報の登録を行うと、データの読み出しが失敗したブロックのブロックアドレスと、当該ブロックを有する記憶媒体６の記憶媒体識別情報と、を故障情報登録部１５に出力する。故障情報登録部１５は、入出力部１４から出力されたブロックアドレスと、記憶媒体識別情報と、を取得する。故障情報登録部１５は、取得したブロックアドレスと、記憶媒体識別情報と、に基づいて故障情報を登録する（ステップＳ１１１）。ここで故障情報登録部１５が行う故障情報の登録は、ステップＳ１０７における処理と同様である。
【００４７】
故障情報登録部１５により、故障情報の登録が行われると、入出力部１４は、要求されたデータの読み出しが失敗したことを示すエラーを出力する（ステップＳ１１２）。そして、入出力部１４は、ステップＳ１０１に戻り、次のデータ読み書きの要求の発生を待機する。
【００４８】
図７は、実施形態の記憶媒体管理装置１の保守モードにおける動作の流れを示すフローチャートである。
まず、先天性不良ブロック情報登録部１６は、処理対象の記憶媒体６を示す変数ｉを“１”に初期化する（ステップＳ２０１）。例えば、記憶媒体管理装置１により管理される記憶媒体６が、図１のようにｎ個の記憶媒体６で構成される場合、この変数ｉの初期化により、記憶媒体６−１が最初の処理対象として設定される。
【００４９】
次に、先天性不良ブロック情報登録部１６は、故障情報記憶部１２から処理対象の記憶媒体６について故障情報を読み出す（ステップＳ２０２）。先天性不良ブロック情報登録部１６は、故障情報に基づいて、処理対象の記憶媒体６が交換対象か否かを判断する（ステップＳ２０３）。
【００５０】
具体的には、先天性不良ブロック情報登録部１６は、故障情報テーブル１２１を参照し、記憶媒体識別情報に変数ｉの値を持つ故障情報レコードを選択する。故障情報テーブル１２１は、選択された故障情報レコードからエラー発生回数の値を取得する。先天性不良ブロック情報登録部１６は、取得したエラー発生回数の値が、所定の閾値を越えている場合、その記憶媒体識別情報が示す記憶媒体６−ｉを交換対象の記憶媒体６であると判断する。なお、ここで交換対象と判断された記憶媒体６は、予め保守員によって交換済みであるものと仮定する。
【００５１】
処理対象の記憶媒体６が交換対象である場合（ステップＳ２０３−ＹＥＳ）、先天性不良ブロック情報登録部１６は、処理対象の記憶媒体６から先天性不良ブロック情報を読み出す（ステップＳ２０４）。先天性不良ブロック情報登録部１６は、読み出された先天性不良ブロック情報が示すブロックアドレスを、不良ブロック情報として不良ブロック情報記憶部１１に登録する（ステップＳ２０５）。このとき、先天性不良ブロック情報登録部１６は、処理対象の記憶媒体６について既に登録されている不良ブロック情報を削除したうえで、読み出された先天性不良ブロック情報が示すブロックアドレスを登録する。すなわち、ステップＳ２０５の処理によって、交換前の記憶媒体６について登録された不良ブロック情報が、交換後の記憶媒体６の先天性不良ブロック情報に置き換えられることとなる。
【００５２】
ステップＳ２０５における不良ブロック情報の登録後、又はステップＳ２０３において、処理対象の記憶媒体６が交換対象でない場合（ステップＳ２０３−ＮＯ）、先天性不良ブロック情報登録部１６は、処理対象の記憶媒体６が最後の処理対象であるか否かを判定する。記憶媒体管理装置１により管理される記憶媒体６が、図１のようにｎ個の記憶媒体６で構成される場合、具体的には、先天性不良ブロック情報登録部１６は、変数ｉがｎに等しいか否かを判定する（ステップＳ２０６）。
【００５３】
変数ｉがｎに等しくない場合（ステップＳ２０６−ＮＯ）、先天性不良ブロック情報登録部１６は、処理対象の記憶媒体６は最後の処理対象でないと判断し、処理対象の記憶媒体６を次の処理対象に変更する。具体的には、先天性不良ブロック情報登録部１６は、変数ｉをインクリメントし（ステップＳ２０７）する。一方、変数ｉがｎに等しい場合（ステップＳ２０６−ＹＥＳ）、先天性不良ブロック情報登録部１６は、処理対象の記憶媒体６が最後の処理対象であると判断し、処理を終了する。
【００５４】
このように構成された実施形態の記憶媒体管理装置１は、ユーザモードでの動作において、各記憶媒体６の故障情報を記録する。記憶媒体管理装置１は、保守モードにおいて、ユーザモードでの動作において記録された故障情報に基づいて交換対象の記憶媒体６を識別し、交換対象の記憶媒体６についてのみ、先天性不良ブロック情報を読み出し、不良ブロック情報を更新する。そのため、実施形態の記憶媒体管理装置１は、記憶媒体の交換時における保守作業の負荷を軽減することができる。
【００５５】
以下、実施形態の記憶媒体管理装置１の変形例について説明する。
【００５６】
故障情報テーブル１２１に登録される故障情報は、図５の例と異なる態様に構成されてもよい。例えば、故障情報は、読み書きの種別ごとのエラー発生回数を示す情報として構成されてもよい。この場合、先天性不良ブロック情報登録部１６は、各種別のエラー発生回数を、各種別の閾値と比較することによって、交換対象の記憶媒体６を判断してもよい。また、例えば、故障情報は、不良ブロックごとのエラー発生回数を示す情報として構成されてもよい。この場合、故障情報に登録されたブロックのうち、エラー発生回数が所定の閾値を越えるブロックの数に応じて、交換対象の記憶媒体６を判断してもよい。このように、故障情報は、記憶媒体６を交換対象として判断する基準に応じて、他のどのような態様に構成されてもよい。また、交換対象の記憶媒体６の判断は、上述した以外のどのような基準に基づいて判断されてもよい。
【００５７】
また、故障情報テーブル１２１は、交換された記憶媒体６を直接的に示す交換情報を含むように構成されてもよい。例えば、交換情報の値に“１”を持つ故障情報レコードは、対応する記憶媒体６が交換されたことを示し、交換情報の値に“０”を持つ故障情報レコードは、対応する記憶媒体６が交換されていないことを示すものと仮定する。この場合、保守員は、交換対象の記憶媒体６を交換した後、交換した記憶媒体に対応する故障情報レコードの交換情報の値を“１”に更新して記憶媒体管理装置１を保守モードで起動させる。先天性不良ブロック情報登録部１６は、故障情報テーブル１２１を参照し、交換情報の値に“１”を持つ故障情報レコードを選択する。先天性不良ブロック情報登録部１６は、選択された故障情報レコードの記憶媒体識別情報が示す記憶媒体６を交換対象として判断する。先天性不良ブロック情報登録部１６は、交換対象として判断された記憶媒体６から先天性不良ブロック情報を取得し、取得した先天性不良ブロック情報が示すブロックアドレスを不良ブロック情報として登録する。不良ブロック情報の登録後、先天性不良ブロック情報登録部１６は、交換対象として判断した記憶媒体６に対応する故障情報レコードについて、交換情報の値を“０”に更新する。このような交換情報が故障情報テーブル１２１に記録されることによって、記憶媒体管理装置１は、交換された記憶媒体６を確実に識別することが可能となる。
【００５８】
実施形態の記憶媒体管理装置１は、記憶媒体６を備える記憶媒体管理システムとして構成されてもよい。
【００５９】
以上説明した少なくともひとつの実施形態によれば、各記憶媒体の読み書きにおいて発生したエラーに関する情報を、故障情報として登録する故障情報登録部と、故障情報に基づいて交換対象の記憶媒体を識別し、交換対象の記憶媒体のみから先天性不良ブロック情報を読み出す先天性不良ブロック情報登録部と、を持つことにより、記憶媒体の保守作業の負荷を軽減することができる。
【００６０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６１】
１…記憶媒体管理装置，１１…不良ブロック情報記憶部，１１１…不良ブロック情報テーブル，１２…故障情報記憶部，１２１…故障情報テーブル，１３…モード管理部，１４…入出力部，１５…故障情報登録部，１６…先天性不良ブロック情報登録部，２…ＣＰＵ（Central Processing Unit），３…メモリ，４…補助記憶装置，５…コントローラ，６、６−１〜６−ｎ…記憶媒体
【図１】
2016114958.tif 000003
【図２】
2016114958.tif 000004
【図３】
2016114958.tif 000005
【図４】
2016114958.tif 000006
【図５】
2016114958.tif 000007
【図６】
2016114958.tif 000008
【図７】
2016114958.tif 000009