(57)【特許請求の範囲】
【請求項１】
再書き込み可能な不揮発性の半導体メモリのホスト装置として動作する情報処理端末であって、
前記半導体メモリに記録されたデータを、メモリコントローラを介して取得し、取得した前記データを処理するデータ処理部と、
前記半導体メモリに記録されたデータの種別を示す種別データをネットワークを介してアクセス可能な管理サーバに送信する種別データ送信部と、
前記半導体メモリの記憶領域のうち検査対象として指定された検査領域が設定され、かつ、前記種別データにより示される種別に対応する検査領域データを、前記種別データの送信に対する応答として前記管理サーバから取得する検査領域取得部と、
取得した前記検査領域データを前記メモリコントローラに出力する検査領域出力部と、
を備える情報処理端末。
【請求項２】
請求項１に記載の情報処理端末であって、さらに、
前記半導体メモリにおいてエラーが発生した領域を記録したエラー発生データを前記メモリコントローラから取得し、取得したエラー発生データを前記管理サーバに送信するエラー状況通知部、
を備える情報処理端末。
【請求項３】
請求項２に記載の情報処理端末であって、さらに、
前記エラー発生データを前記管理サーバに送信できない場合、前記情報処理端末と直接的に通信可能であるとともに、前記管理サーバと通信可能な装置を検索する検索部、
を備え、
前記エラー状況通知部は、前記検索部により検出された装置に前記エラー発生データを送信する情報処理端末。
【請求項４】
請求項２に記載の情報処理端末であって、
前記エラー状況通知部は、前記半導体メモリとは別の半導体メモリのホスト装置として動作するとともに前記情報処理端末と直接的に通信可能な通信装置から前記別の半導体メモリのエラー発生データを受信した場合、前記通信装置から受信した前記別の半導体メモリのエラー発生データを前記管理サーバに送信する情報処理端末。
【請求項５】
請求項１または請求項２に記載の情報処理端末であって、さらに、
前記検査領域データを前記管理サーバから受信できない場合、前記半導体メモリとは別の半導体メモリのホスト装置として動作する装置であって前記情報処理端末と直接的に通信可能であり、かつ、前記管理サーバとネットワークを介して通信可能な装置を検索する検索部、
を備え、
前記検査領域取得部は、前記検索部により検出された装置に前記種別データを送信して、前記種別データにより示される種別に対応する検査領域データの送信を要求する情報処理端末。
【請求項６】
請求項５に記載の情報処理端末であって、さらに、
検査領域データを記憶する記憶部、
を備え、
前記検査領域取得部は、前記検索部により検索された装置から送信された検査領域データが前記記憶部に記憶された検査領域データよりも新しい場合、前記検索部により検索された装置から送信された検査領域データの出力を前記検査領域出力部に対して指示する情報処理端末。
【請求項７】
請求項１または請求項２に記載の情報処理端末であって、
前記検査領域取得部は、前記管理サーバとネットワークを介してアクセス可能であり、かつ、前記情報処理端末と通信中の装置が存在する場合、前記通信中の装置に前記種別データを送信して、前記種別データにより示される種別に対応する検査領域データの送信を要求する情報処理端末。
【請求項８】
請求項７に記載の情報処理端末であって、さらに、
検査領域データを記憶する記憶部、
を備え、
前記検査領域取得部は、前記通信中の装置から送信された検査領域データが前記記憶部に記憶された検査領域データよりも新しい場合、前記通信中の装置から送信された検査領域データの出力を前記検査領域出力部に対して指示する情報処理端末。
【請求項９】
請求項５ないし請求項８のいずれかに記載の情報処理端末であって、さらに、
前記半導体メモリとは別の半導体メモリのホスト装置として動作するとともに前記情報処理端末と直接的に通信可能な通信装置から検査領域データの送信を要求された場合、前記管理サーバから取得した検査領域データを前記通信装置に送信する検査領域データ送信部、
を備える情報処理端末。
【請求項１０】
再書き込み可能な不揮発性の半導体メモリから取得したデータを処理する情報処理端末とネットワークを介して接続された管理サーバであって、
前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを、前記半導体メモリに記録されるデータの種別ごとに作成する検査領域設定部と、
前記半導体メモリに記録されるデータの種別を示す種別データを含む検査領域要求を前記情報処理端末から受信した場合、前記検査領域要求に含まれる種別データに対応する検査領域データを、前記検査領域設定部により作成された検査領域データの中から選択する選択部と、
前記選択部により選択された検査領域データを前記情報処理端末へ送信する通信部と、
を備える管理サーバ。
【請求項１１】
請求項１０に記載の管理サーバであって、
前記検査領域設定部は、前記半導体メモリにおいてエラーが発生した領域を示すエラー領域データと、前記半導体メモリに記録されたデータの種別を示す種別データとを記録したエラー発生データを前記情報処理端末から受信した場合、前記エラー発生データに含まれる種別データに基づいて、更新対象の検査領域データを特定し、前記エラー発生データに含まれるエラー領域データを用いて、特定した検査領域データを更新する管理サーバ。
【請求項１２】
請求項１１に記載の管理サーバであって、
前記エラー発生データは、
前記半導体メモリの使用状況を記録した使用状況データ、
を含み、
前記検査領域データは、
半導体メモリの使用状況に応じた検査領域が設定された複数の個別検査領域データ、
を含み、
前記検査領域設定部は、前記エラー発生データを受信した場合、前記使用状況データを用いて更新対象の個別検査領域データを特定し、前記エラー領域データを用いて、特定した前記個別検査領域データを更新する管理サーバ。
【請求項１３】
請求項１２に記載の管理サーバであって、
前記検査領域設定部は、前記情報処理端末から受信した前記検査領域要求が使用状況データを含み、かつ、個別検査領域データの送信を要求している場合、前記検査領域要求に含まれる種別データ及び使用状況データを用いて送信対象の個別検査領域データを特定し、特定した前記送信対象の個別検査領域データを前記情報処理端末に送信する管理サーバ。
【請求項１４】
ホスト装置の読み出し要求に従って半導体メモリに対するアクセスを制御するメモリコントローラであって、
前記ホスト装置は、ネットワークを介して管理サーバに接続可能であり、前記管理サーバは、前記ホスト装置を含め前記ネットワークに接続された装置で利用されるデータ種別ごとの検査領域データを管理しており、
前記メモリコントローラは、
前記ホスト装置の読み出し要求に従って、前記半導体メモリからデータを読み出し、読み出したデータに対するエラー検出処理を行うエラー検出部と、
前記エラー検出部によるエラー検出結果に従って、前記半導体メモリにおいてエラーが発生した領域を示すエラー領域データを作成し、作成したエラー領域データと、前記半導体メモリに記録されたデータの種別を示す情報とを含むエラー発生データを作成する作成部と、
前記作成部により作成されたエラー発生データを前記ホスト装置に出力するインタフェースと、
を備え、
前記ホスト装置から受信した前記エラー発生データに基づき、前記管理サーバにおいて前記検査領域データが更新されるメモリコントローラ。
【請求項１５】
請求項１４に記載のメモリコントローラであって、
前記インタフェースは、前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを入力し、
前記メモリコントローラは、さらに、
前記インタフェースに入力された検査領域データを用いて前記検査領域に記録されたデータを検査用データとして読み出し、前記検査用データに対するエラー検出処理を行う検査部と、
前記検査用データからエラーが検出された場合、前記検査用データのエラーを訂正し、エラー訂正された検査用データを前記検査領域に再書き込みする再書き込み部と、
を備えるメモリコントローラ。
【請求項１６】
再書き込み可能な不揮発性の半導体メモリと、
前記半導体メモリに対するアクセスを制御するメモリコントローラと、
前記半導体メモリのホスト装置として動作し、前記メモリコントローラにより前記半導体メモリから読み出されたデータを処理する情報処理端末と、
前記情報処理端末とネットワークを介して接続された管理サーバと、
を備え、
前記情報処理端末は、
前記半導体メモリに記録されたデータの種別を示す種別データを含む検査領域要求を管理サーバに送信する検査領域要求部、
を備え、
前記管理サーバは、
前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを、前記半導体メモリに記録されるデータの種別ごとに作成する検査領域設定部と、
前記検査領域要求を前記情報処理端末から受信した場合、前記検査領域要求に含まれる種別データに対応する検査領域データを、前記検査領域設定部により作成された検査領域データの中から選択する選択部と、
前記選択部により選択された検査領域データを前記情報処理端末へ送信する送信部と、
を備え、
前記情報処理端末は、さらに、
前記検査領域要求の応答として、前記送信部により送信された検査領域データを取得する検査領域取得部と、
前記検査領域取得部により取得された前記検査領域データを前記メモリコントローラに出力する検査領域出力部と、
を備え、
前記メモリコントローラは、
前記検査領域出力部から出力された検査領域データを用いて、前記検査領域に記録されたデータを検査用データとして読み出し、前記検査用データに対するエラー検出処理を行う検査部と、
前記検査用データからエラーが検出された場合、前記検査用データのエラーを訂正し、エラー訂正された検査用データを前記検査領域に再書き込みする再書き込み部と、
を備える半導体メモリのデータ検査システム。
【請求項１７】
請求項１６に記載の半導体メモリのデータの検査システムであって、
前記メモリコントローラは、さらに、
前記半導体メモリから読み出したデータに対するエラー検出処理を行い、前記読み出したデータのエラー検出結果に基づいて、前記半導体メモリにおいてエラーが発生した領域を記録したエラー領域データを作成し、作成したエラー領域データと、前記半導体メモリに記録されたデータの種別を示す種別データとを含むエラー発生データを作成するエラー発生データ作成部、
を備え、
前記情報処理端末は、さらに、
前記エラー発生データを前記メモリコントローラから取得し、取得した前記エラー発生データを前記管理サーバに送信するエラー状況通知部、
を備え、
前記検査領域設定部は、前記エラー発生データを前記情報処理端末から受信した場合、前記エラー発生データに含まれる種別データに基づいて更新対象の検査領域データを特定し、前記エラー発生データに含まれるエラー領域データを用いて、特定した検査領域データを更新する半導体メモリのデータ検査システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられるリードディスターブ現象に対処する技術に関する。
【背景技術】
【０００２】
ＮＡＮＤフラッシュメモリは、再書き込み可能な不揮発性半導体メモリである。ＮＡＮＤフラッシュメモリは、高集積化を実現しながら、低コスト化が図られているため、ＳＤメモリカードなどの形態で広く普及している。
【０００３】
ＮＡＮＤフラッシュメモリにおいては、特定のセルが繰り返し読み出されることにより、記憶データが意図せず書き換えられる現象が生じることが分かっている。この現象は、リードディスターブ（Ｒｅａｄ  Ｄｉｓｔｕｒｂ）現象と呼ばれている現象であり、ＮＡＮＤフラッシュメモリを利用する上での課題となっている。
【０００４】
特定のセルに対する読み出し処理が繰り返し行われた場合であっても、一旦、そのセルを含む領域に対してデータの更新が行われれば、セルの状態が修復されるため、リードディスターブの発生が情報処理に影響を与えることを回避できる。しかし、特定のセルに対して書き込み処理が行われず、読み出し処理だけが繰り返し行われる場合、リードディスターブの発生する可能性が高くなり、情報処理に影響を与える可能性もある。
【０００５】
最近では、ＮＡＮＤフラッシュメモリは、情報処理装置のプログラムメモリとしてＲＯＭのような役割で利用されるケースが多くなっている。ＮＡＮＤフラッシュメモリがそのように利用された場合、連続的な読み出し処理のみが行われるため、リードディスターブの発生可能性が高くなる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１９２０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１には、リードディスターブ現象により、フラッシュメモリのデータに訂正不可能なエラーが発生した場合であっても、フラッシュメモリのデータを修復することができるデータ修復システムが記載されている。上記特許文献１において、情報処理装置は、フラッシュメモリから読み出したデータのエラーを訂正できない場合、読み出したデータと同一のデータをサーバから取得する。情報処理装置は、取得したデータを用いて、フラッシュメモリに書き込まれたデータを修復する。
【０００８】
このように、上記特許文献１のデータ修復システムでは、フラッシュメモリに書き込まれているデータと同一のデータがネットワークを介して転送される。サーバから情報処理装置へデータが転送される間に、データにエラーが発生したり、データが第三者に取得されたりするおそれがある。また、訂正不可能なエラーが発生しなければ、フラッシュメモリに書き込まれたデータが修復されないため、フラッシュメモリに書き込まれたデータの信頼性が低下するという問題がある。
【０００９】
上記特許文献１の他にも、リードディスターブ現象によりデータの信頼性が低下することを防ぐために、様々な方法がとられている。たとえば、フラッシュメモリの各ブロックからデータを定期的に読み出し、読み出したデータにエラーが発生しているか否かを確認する方法がある。読み出したデータからエラーが検出された場合、読み出したデータのエラーを訂正し、訂正したデータをメモリに再書き込みする。しかし、リードディスターブ現象は、読み出し処理が繰り返されることにより発生するため、エラー検出のための読み出し処理自体が、リードディスターブ現象の発生要因となる。
【００１０】
エラー検出のための読み出し処理を削減するために、所定のアルゴリズムを用いて検査対象の領域を決定する方法がある。しかし、所定のアルゴリズムを実装した回路をメモリコントローラに組み込む必要があるため、メモリコントローラの構成が複雑となる。
【００１１】
そこで、本発明は、前記問題点に鑑み、フラッシュメモリに負荷を掛けることなく、フラッシュメモリに書き込まれたデータの信頼性を向上することができる技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、請求項１記載の発明は、再書き込み可能な不揮発性の半導体メモリのホスト装置として動作する情報処理端末であって、前記半導体メモリに記録されたデータを、メモリコントローラを介して取得し、取得した前記データを処理するデータ処理部と、前記半導体メモリに記録されたデータの種別を示す種別データをネットワークを介してアクセス可能な管理サーバに送信する種別データ送信部と、前記半導体メモリの記憶領域のうち検査対象として指定された検査領域が設定され、かつ、前記種別データにより示される種別に対応する検査領域データを、前記種別データの送信に対する応答として前記管理サーバから取得する検査領域取得部と、取得した前記検査領域データを前記メモリコントローラに出力する検査領域出力部と、を備える。
【００１３】
請求項２記載の発明は、請求項１に記載の情報処理端末であって、さらに、前記半導体メモリにおいてエラーが発生した領域を記録したエラー発生データを前記メモリコントローラから取得し、取得したエラー発生データを前記管理サーバに送信するエラー状況通知部、を備える。
【００１４】
請求項３記載の発明は、請求項２に記載の情報処理端末であって、さらに、前記エラー発生データを前記管理サーバに送信できない場合、前記情報処理端末と直接的に通信可能であるとともに、前記管理サーバと通信可能な装置を検索する検索部、を備え、前記エラー状況通知部は、前記検索部により検出された装置に前記エラー発生データを送信する。
【００１５】
請求項４記載の発明は、請求項２に記載の情報処理端末であって、前記エラー状況通知部は、前記半導体メモリとは別の半導体メモリのホスト装置として動作するとともに前記情報処理端末と直接的に通信可能な通信装置から前記別の半導体メモリのエラー発生データを受信した場合、前記通信装置から受信した前記別の半導体メモリのエラー発生データを前記管理サーバに送信する。
【００１６】
請求項５記載の発明は、請求項１または請求項２に記載の情報処理端末であって、さらに、前記検査領域データを前記管理サーバから受信できない場合、前記半導体メモリとは別の半導体メモリのホスト装置として動作する装置であって前記情報処理端末と直接的に通信可能であり、かつ、前記管理サーバとネットワークを介して通信可能な装置を検索する検索部、を備え、前記検査領域取得部は、前記検索部により検出された装置に前記種別データを送信して、前記種別データにより示される種別に対応する検査領域データの送信を要求する。
【００１７】
請求項６記載の発明は、請求項５に記載の情報処理端末であって、さらに、検査領域データを記憶する記憶部、を備え、前記検査領域取得部は、前記検索部により検索された装置から送信された検査領域データが前記記憶部に記憶された検査領域データよりも新しい場合、前記検索部により検索された装置から送信された検査領域データの出力を前記検査領域出力部に対して指示する。
【００１８】
請求項７記載の発明は、請求項１または請求項２に記載の情報処理端末であって、前記検査領域取得部は、前記管理サーバとネットワークを介してアクセス可能であり、かつ、前記情報処理端末と通信中の装置が存在する場合、前記通信中の装置に前記種別データを送信して、前記種別データにより示される種別に対応する検査領域データの送信を要求する。
【００１９】
請求項８記載の発明は、請求項７に記載の情報処理端末であって、さらに、検査領域データを記憶する記憶部、を備え、前記検査領域取得部は、前記通信中の装置から送信された検査領域データが前記記憶部に記憶された検査領域データよりも新しい場合、前記通信中の装置から送信された検査領域データの出力を前記検査領域出力部に対して指示する。
【００２０】
請求項９記載の発明は、請求項５ないし請求項８のいずれかに記載の情報処理端末であって、さらに、前記半導体メモリとは別の半導体メモリのホスト装置として動作するとともに前記情報処理端末と直接的に通信可能な通信装置から検査領域データの送信を要求された場合、前記管理サーバから取得した検査領域データを前記通信装置に送信する検査領域データ送信部、を備える。
【００２１】
請求項１０記載の発明は、再書き込み可能な不揮発性の半導体メモリから取得したデータを処理する情報処理端末とネットワークを介して接続された管理サーバであって、前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを、前記半導体メモリに記録されるデータの種別ごとに作成する検査領域設定部と、前記半導体メモリに記録されるデータの種別を示す種別データを含む検査領域要求を前記情報処理端末から受信した場合、前記検査領域要求に含まれる種別データに対応する検査領域データを、前記検査領域設定部により作成された検査領域データの中から選択する選択部と、前記選択部により選択された検査領域データを前記情報処理端末へ送信する通信部と、を備える。
【００２２】
請求項１１記載の発明は、請求項１０に記載の管理サーバであって、前記検査領域設定部は、前記半導体メモリにおいてエラーが発生した領域を示すエラー領域データと、前記半導体メモリに記録されたデータの種別を示す種別データとを記録したエラー発生データを前記情報処理端末から受信した場合、前記エラー発生データに含まれる種別データに基づいて、更新対象の検査領域データを特定し、前記エラー発生データに含まれるエラー領域データを用いて、特定した検査領域データを更新する。
【００２５】
請求項１２記載の発明は、請求項１１に記載の管理サーバであって、前記エラー発生データは、前記半導体メモリの使用状況を記録した使用状況データ、を含み、前記検査領域データは、半導体メモリの使用状況に応じた検査領域が設定された複数の個別検査領域データ、を含み、前記検査領域設定部は、前記エラー発生データを受信した場合、前記使用状況データを用いて更新対象の個別検査領域データを特定し、前記エラー領域データを用いて、特定した前記個別検査領域データを更新する。
【００２６】
請求項１３記載の発明は、請求項１２に記載の管理サーバであって、前記検査領域設定部は、前記情報処理端末から受信した前記検査領域要求が使用状況データを含み、かつ、個別検査領域データの送信を要求している場合、前記検査領域に要求に含まれる種別データ及び使用状況データを用いて送信対象の個別検査領域データを特定し、特定した前記送信対象の個別検査領域データを前記情報処理端末に送信する。
【００２７】
請求項１４記載の発明は、ホスト装置の読み出し要求に従って半導体メモリに対するアクセスを制御するメモリコントローラであって、前記ホスト装置は、ネットワークを介して管理サーバに接続可能であり、前記管理サーバは、前記ホスト装置を含め前記ネットワークに接続された装置で利用されるデータ種別ごとの検査領域データを管理しており、前記メモリコントローラは、前記ホスト装置の読み出し要求に従って、前記半導体メモリからデータを読み出し、読み出したデータに対するエラー検出処理を行うエラー検出部と、前記エラー検出部によるエラー検出結果に従って、前記半導体メモリにおいてエラーが発生した領域を示すエラー領域データを作成し、作成したエラー領域データと、前記半導体メモリに記録されたデータの種別を示す情報とを含むエラー発生データを作成する作成部と、前記作成部により作成されたエラー発生データを前記ホスト装置に出力するインタフェースと、を備え、前記ホスト装置から受信した前記エラー発生データに基づき、前記管理サーバにおいて前記検査領域データが更新される。
【００２８】
請求項１５記載の発明は、請求項１４に記載のメモリコントローラであって、前記インタフェースは、前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを入力し、前記メモリコントローラは、さらに、前記インタフェースに入力された検査領域データを用いて前記検査領域に記録されたデータを検査用データとして読み出し、前記検査用データに対するエラー検出処理を行う検査部と、前記検査用データからエラーが検出された場合、前記検査用データのエラーを訂正し、エラー訂正された検査用データを前記検査領域に再書き込みする再書き込み部と、を備える。
【００２９】
請求項１６記載の発明は、半導体メモリのデータ検査システムであって、再書き込み可能な不揮発性の半導体メモリと、前記半導体メモリに対するアクセスを制御するメモリコントローラと、前記半導体メモリのホスト装置として動作し、前記メモリコントローラにより前記半導体メモリから読み出されたデータを処理する情報処理端末と、前記情報処理端末とネットワークを介して接続された管理サーバと、を備え、前記情報処理端末は、前記半導体メモリに記録されたデータの種別を示す種別データを含む検査領域要求を管理サーバに送信する検査領域要求部、を備え、前記管理サーバは、前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを、前記半導体メモリに記録されるデータの種別ごとに作成する検査領域設定部と、前記検査領域要求を前記情報処理端末から受信した場合、前記検査領域要求に含まれる種別データに対応する検査領域データを、前記検査領域設定部により作成された検査領域データの中から選択する選択部と、前記選択部により選択された検査領域データを前記情報処理端末へ送信する送信部と、を備え、前記情報処理端末は、さらに、前記検査領域要求の応答として、前記送信部により送信された検査領域データを取得する検査領域取得部と、前記検査領域取得部により取得された前記検査領域データを前記メモリコントローラに出力する検査領域出力部と、を備え、前記メモリコントローラは、前記検査領域出力部から出力された検査領域データを用いて、前記検査領域に記録されたデータを検査用データとして読み出し、前記検査用データに対するエラー検出処理を行う検査部と、前記検査用データからエラーが検出された場合、前記検査用データのエラーを訂正し、エラー訂正された検査用データを前記検査領域に再書き込みする再書き込み部と、を備える。
【００３０】
請求項１７記載の発明は、請求項１６に記載の半導体メモリのデータの検査システムであって、前記メモリコントローラは、さらに、前記半導体メモリから読み出したデータに対するエラー検出処理を行い、前記読み出したデータのエラー検出結果に基づいて、前記半導体メモリにおいてエラーが発生した領域を記録したエラー領域データを作成し、作成したエラー領域データと、前記半導体メモリに記録されたデータの種別を示す種別データとを含むエラー発生データを作成するエラー発生データ作成部、を備え、前記情報処理端末は、さらに、前記エラー発生データを前記メモリコントローラから取得し、取得した前記エラー発生データを前記管理サーバに送信するエラー状況通知部、を備え、前記検査領域設定部は、前記エラー発生データを前記情報処理端末から受信した場合、前記エラー発生データに含まれる種別データに基づいて更新対象の検査領域データを特定し、前記エラー発生データに含まれるエラー領域データを用いて、特定した検査領域データを更新する。
【発明の効果】
【００３１】
本発明によれば、情報処理端末は、半導体メモリの記憶領域のうち、検査領域が設定された検査領域データを管理サーバから取得し、取得した検査領域データをメモリコントローラに出力する。メモリコントローラは、検査領域データを用いて、検査領域に記録されたデータを検査用データとして読み出す。検査領域以外の領域が、エラー検出のための読み出されることがないため、メモリの読み出し回数を削減することができる。したがって、半導体メモリに対する負荷を削減するともに、半導体メモリで訂正不可能なエラーが発生することを防止することができる。
【００３２】
また、情報処理端末は、半導体メモリでエラーが発生した領域を記録したエラー発生データをメモリコントローラから取得し、取得したエラー発生データをサーバに送信する。これにより、管理サーバは、エラー発生データを用いて、半導体メモリで実際にエラーが発生しやすい領域を検査領域として設定することが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態に係るデータ検査システムの構成を示す図である。
【図２】図１に示す情報処理端末の機能ブロック図である。
【図３】図２に示すメモリの構成を示す図である。
【図４】図１に示す集計サーバの機能ブロック図である。
【図５】図１に示すデータ検査システムの動作の概略を示すシーケンス図である。
【図６】図１に示す情報処理端末の動作を示すフローチャートである。
【図７】図２に示すエラー発生データを示す図である。
【図８】図２に示す情報処理端末の記憶部に格納されるデータを示す図である。
【図９】図８に示す送信管理データの内容を示す図である。
【図１０】図６に示す間接送信処理を実行する情報処理端末のフローチャートである。
【図１１】図１に示す情報処理端末がエラー発生データを受信するときの動作を示すフローチャートである。
【図１２】図４に示す検査領域管理データの内容を示す図である。
【図１３】図１に示す情報処理端末が検査領域通知データを取得するときの動作を示すフローチャートである。
【図１４】図８に示す検査領域通知データの内容を示す図である。
【図１５】図１３に示す間接取得処理を実行する情報処理端末のフローチャートである。
【発明を実施するための形態】
【００３４】
以下、図面を参照しつつ、本発明の実施の形態を説明する。図１は、本発明の実施の形態に係る半導体メモリのデータ検査システム１００の構成を示す図である。
【００３５】
｛１．全体構成｝
図１に示すように、データ検査システム１００は、集計サーバ１と、情報処理端末４，５，６とを備える。集計サーバ１は、インターネット３に接続されている。情報処理端末４〜６は、無線ＬＡＮのアクセスポイント２を介して、インターネット３に接続されている。
【００３６】
情報処理端末４〜６は、携帯電話機、スマートフォンなどの携帯型端末である。情報処理端末４〜６は、記憶媒体としてフラッシュメモリを用いたメモリカードを挿入することができる機器である。メモリカード７Ａ〜７Ｃには、情報処理端末４〜６のユーザがコンテンツを楽しむためのコンテンツデータＡ〜Ｃがそれぞれ記録されている。
【００３７】
情報処理端末４〜６は、メモリカード７Ａ〜７Ｃで発生したエラーに関するエラー発生データを集計サーバ１に送信する。エラー発生データは、メモリカード７Ａ〜７Ｃが備えるフラッシュメモリにおいてエラーが発生した領域を記録したデータである。
【００３８】
集計サーバ１は、情報処理端末４〜６から受信したエラー発生データを用いて、フラッシュメモリにおけるエラー発生状況を集計する。エラー発生状況は、フラッシュメモリに記録されたコンテンツデータごとに集計される。集計サーバ１は、集計結果に基づいて、フラッシュメモリの記憶領域のうち、検査対象として指定された検査領域をコンテンツデータごとに設定する。すなわち、集計サーバ１は、コンテンツデータＡ〜Ｃをそれぞれ記憶するフラッシュメモリにおいて設定された検査領域を管理する管理サーバとして機能する。
【００３９】
｛２．情報処理端末の構成｝
図２は、情報処理端末４及びメモリカード７Ａの機能的構成を示すブロック図である。情報処理端末５，６の構成は、情報処理端末４の構成と同じである。メモリカード７Ｂ，７Ｃの構成は、メモリカード７Ａの構成と同じである。図２に示すように、情報処理端末４は、制御部４０と、表示部４１と、操作部４２と、記憶部４３と、無線通信部４４と、カードスロット４５とを備える。
【００４０】
制御部４０は、ＣＰＵ（Central Processing Unit）及びＲＡＭ（Random Access Memory）を備え、情報処理端末４の全体制御を行う。
【００４１】
表示部４１は、液晶パネルなどにより構成される。操作部４２は、十字キー、ボタンなどのハードウェアキーである。表示部４１及び操作部４２は、タッチパネル式ディスプレイにより構成されていてもよい。
【００４２】
記憶部４３は、不揮発性のメモリや、ハードディスク装置などにより構成される。記憶部４３は、メモリコントローラ７２から出力されるエラー発生データ７５Ａなどを格納する。記憶部４３が格納するデータの詳細は、後述する。
【００４３】
無線通信部４４は、無線ＬＡＮを用いて、ＴＣＰ（Transmission
Control Protocol）／ＩＰ（Internet Protocol）などの各種プロトコルに基づく通信を実行する。無線通信部４４は、無線ＬＡＮだけでなく、Ｂｌｕｅｔｏｏｔｈあるいは赤外線通信などの近距離無線通信を用いてもよい。
【００４４】
カードスロット４５は、メモリカード７Ａ〜７Ｃのいずれか一つを挿入するためのスロットである。メモリカードインタフェース４５Ａは、カードスロット４５に挿入されたメモリカードと接続して、メモリコントローラ７２とデータの送受信を行う。
【００４５】
制御部４０は、エラー状況通知部４６と、検査領域取得部４７と、検索部４８とを備える。エラー状況通知部４６は、メモリ７１でエラーが発生した領域を記録したエラー発生データ７５Ａを、集計サーバ１に送信する。検査領域取得部４７は、集計サーバ１に対して、検査領域が記録された検査領域データの送信を要求する。検査領域とは、メモリ７１の記憶領域の中で検査対象として指定された領域であり、集計サーバ１により設定される。検索部４８は、情報処理端末４と直接通信することができる機能と、集計サーバ１にアクセスすることができる機能とを有する装置（情報処理端末５，６）を検索する。なお、情報処理端末５，６は、情報処理端末４との通信と、集計サーバ１との通信とを並行して実行することはなく、それぞれの通信を異なるタイミングで実行する。
【００４６】
メモリカード７Ａは、インタフェース７０と、メモリ７１と、メモリコントローラ７２とを備える。インタフェース７０は、メモリカード７Ａがカードスロット４５に挿入されているときに、ホスト装置である情報処理端末４とデータの送受信を行う。メモリ７１は、再書き込み可能な不揮発性半導体メモリである。本実施の形態において、メモリ７１は、ＮＡＮＤフラッシュメモリである。メモリ７１は、コンテンツデータＡ及びエラー発生データ７５Ａを記録する。
【００４７】
メモリコントローラ７２は、メモリ７１に対するデータの読み出し及び書き込みを制御する。メモリコントローラ７２は、検査部７３と、再書き込み部７４と、エラー発生データ作成部７５とを備える。検査部７３は、検査領域データに基づいて、メモリ７１の検査領域に記録されたデータを検査用データとして読み出し、検査用データに対するエラー検出処理を実行する。再書き込み部７４は、検査用データからエラーが検出された場合、検査用データのエラーを訂正し、エラー訂正されたデータを検査領域に再び書き込む。エラー発生データ作成部７５は、メモリ７１から読み出されたデータに対してエラー検出処理を行い、エラー検出結果に基づいて、エラー発生データ７５Ａを作成する。図２では、エラー発生データ７５Ａがメモリ７１に記録される例を示しているが、エラー発生データ７５Ａは、メモリコントローラ７２に設けられた不揮発性メモリに記録されてもよい。
【００４８】
図３は、メモリ７１の構成を示す図である。具体的には、メモリ７１は、１枚のダイで構成される。ダイは、複数のブロックを含む。図３に示す例では、ダイは、Ｍ個のブロックを含む。ブロックは、複数のページを含む。図３に示す例では、ブロックは、Ｚ個のページを含む。
【００４９】
ページは、メモリ７１におけるデータの読み出し単位及び書き込み単位である。メモリコントローラ７２は、メモリ７１に記録されているデータをページ単位で読み出し、書き込みが指示されたデータをページ単位でメモリ７１に書き込むことができる。
【００５０】
ブロックは、メモリ７１におけるデータの消去単位である。メモリ７１に書き込まれたデータの再書き込みは、ブロック単位で行われる。具体的には、メモリコントローラ７２は、再書き込み対象のデータをブロック単位でメモリ７１から読み出し、読み出されたデータをブロック単位で消去する。メモリ７１から読み出されたデータが、データが消去されたブロックに再び書き込まれる。
【００５１】
｛３．集計サーバ１の機能的構成｝
図４は、集計サーバ１の機能的構成を示すブロック図である。図４に示すように、集計サーバ１は、制御部１０と、記憶部１１と、通信部１２とを備える。制御部１０は、ＣＰＵ及びＲＡＭを備え、集計サーバ１の全体制御を行う。
【００５２】
制御部１０は、検査領域設定部１３を備える。検査領域設定部１３は、情報処理端末４〜６から受信したエラー発生データを集計する。検査領域設定部１３は、集計結果に基づいて、各コンテンツデータが記録されたメモリにおける検査領域を設定する。
【００５３】
記憶部１１は、ハードディスク装置などの記憶装置であり、検査領域管理データ１５Ａ，１５Ｂ，１５Ｃを記憶する。検査領域管理データ１５Ａ〜１５Ｃは、コンテンツデータＡ，Ｂ，Ｃ（図１参照）に対応する。検査領域管理データ１５Ａ〜１５Ｃは、各コンテンツデータが記録されたメモリカードにおいて検査領域として設定されたブロックのアドレスを管理するデータである。検査領域管理データ１５Ａは、個別検査領域データ１６Ａ，１６Ａ，・・・を含む。個別検査領域データ１６Ａには、メモリカード７Ａの使用状況別に設定された検査領域が記録される。
【００５４】
通信部１２は、ＴＣＰ／ＩＰなどの各種プロトコルを用いて、インターネットに接続された情報処理端末４〜６と通信を行う。
【００５５】
｛４．動作概要｝
以下、情報処理端末４が集計サーバ１に対してエラー発生データ７５Ａを送信し、集計サーバ１から検査領域データを取得する場合を例にして、データ検査システム１００の動作の概要を説明する。
【００５６】
図５は、データ検査システム１００の動作の概略を示すシーケンス図である。最初に、情報処理端末４のユーザは、コンテンツデータＡが記録されたメモリカード７Ａを購入する。ユーザは、メモリカード７Ａをカードスロット４５に挿入して、情報処理端末４の電源を入れる。
【００５７】
ユーザがコンテンツの表示を情報処理端末４に指示した場合、メモリコントローラ７２は、情報処理端末４から出力される読み出しコマンドに基づいて、メモリ７１からデータを読み出す（ステップＳ１）。図５に示していないが、メモリコントローラ７２は、メモリ７１から読み出したデータを情報処理端末４に出力する。制御部４０は、メモリコントローラ７２から出力されたデータを処理して、コンテンツを表示部４１に表示する。
【００５８】
エラー発生データ作成部７５は、メモリ７１から読み出されたデータに対するエラー検出処理を行う。エラー発生データ作成部７５は、検出結果に基づいて、エラー発生データ７５Ａを作成する（ステップＳ２）。エラー発生データ７５Ａは、エラーが発生したメモリ７１のブロックのアドレスを記録したデータである。メモリコントローラ７２は、作成したエラー発生データ７５Ａを情報処理端末４へ出力する（ステップＳ３）。情報処理端末４は、メモリカード７Ａから入力したエラー発生データ７５Ａを、集計サーバ１へ送信する（ステップＳ４）。
【００５９】
図５では、ステップＳ１〜Ｓ４の処理が連続して実行されている。しかし、メモリコントローラ７２及び情報処理端末４は、電源が投入されたとき、あるいは電源の切断が指示されたときなど、予め設定されたタイミングでステップＳ３，Ｓ４の処理を実行する。
【００６０】
集計サーバ１は、受信したエラー発生データ７５Ａを用いて、コンテンツデータＡが記録されたメモリにおけるエラーの発生状況を集計する。集計サーバ１は、集計結果に基づいて、コンテンツデータＡが記録されたメモリにおける検査領域を設定する（ステップＳ５）。集計サーバ１は、検査領域が設定された個別検査領域データ１６Ａを作成して、検査領域管理データ１５Ａに登録する。
【００６１】
情報処理端末４は、コンテンツデータ７Ａのタイトルなど、個別検査領域データ１６Ａの取得条件が設定された取得条件データ３５Ａを集計サーバ１に送信する（ステップＳ６）。集計サーバ１は、取得条件を満たす個別検査領域データ１６Ａを検査領域管理データ１５Ａから抽出する。抽出された個別検査領域データ１６Ａを含む検査領域通知データ２５Ａが、情報処理端末４へ送信される（ステップＳ７）。情報処理端末４は、受信した検査領域通知データ２５Ａをメモリコントローラ７２に出力する（ステップＳ８）。メモリコントローラ７２は、検査領域通知データ２５Ａに含まれる個別検査領域データ１６Ａを用いて、メモリ７１の検査領域に対するエラー検出処理を行う（ステップＳ９）。
【００６２】
このように、メモリコントローラ７２は、情報処理端末４を介して、検査領域のアドレスを取得する。メモリコントローラ７２は、エラー訂正が不可能なブロックが発生する前に、エラーが発生しやすいブロックを前もって検査することができるため、メモリ７１に記録されたデータの信頼性を向上させることができる。メモリ７１に記録されたデータを修復するために、エラーのないデータを集計サーバ１から情報処理端末４に転送する必要がないため、第三者がコンテンツデータＡを不正に取得することが防止される。また、検査領域以外の領域が、エラー検出（検査）のために読み出されることがない。メモリ７１の読み出し負荷を削減することができるため、リードディスターブ現象を抑制することができる。
【００６３】
｛５．エラー発生データ７５Ａの転送｝
以下、エラー発生データ７５Ａを集計サーバ１へ送信する情報処理端末４の動作を詳しく説明する。図６は、エラー発生データ７５Ａを集計サーバ１へ送信する情報処理端末４の動作を示すフローチャートである。
【００６４】
｛５．１．エラー発生データ７５Ａの集計サーバ１への転送｝
情報処理端末４は、電源がオン、あるいは電源のオフが指示されたときに、図６に示す処理を開始する。
【００６５】
最初に、情報処理端末４は、メモリ７１のエラー発生データ７５Ａを、メモリカード７Ａから取得する（ステップＳ１０１）。ステップＳ１０１の処理は、図５に示すステップＳ３の処理に対応する。具体的には、エラー状況通知部４６は、メモリコントローラ７２に対して、エラー発生データ７５Ａの出力を指示する。メモリコントローラ７２は、エラー発生データ７５Ａをメモリ７１から読み出して、情報処理端末４へ出力する。
【００６６】
図７は、エラー発生データ７５Ａの記録内容を示す図である。メモリコントローラ７２は、メモリ７１からデータを読み出すたびに、読み出したデータに対してエラー検出処理を行う。エラー検出結果が、エラー発生データ７５Ａに反映される。
【００６７】
図７に示すように、エラー発生データ７５Ａには、メモリ７１に固有のメモリＩＤと、エラー発生データ７５Ａの作成時刻と、メモリ７１に記録されたコンテンツデータＡのタイトル名（コンテンツＡ）が記録される。また、エラー発生データ７５Ａには、メモリカード７Ａの起動時間と、メモリカード７Ａの起動回数とが記録される。起動時間は、メモリカード７Ａが挿入された情報処理端末４において電源が投入されていた時間である。起動回数は、メモリカード７Ａが挿入された情報処理端末４において電源が投入された回数である。起動時間及び起動回数は、メモリ７１の使用状況を示すデータである。
【００６８】
エラー発生データ７５Ａには、メモリ７１の全ブロックの中で、エラービット数が上位５位のブロックのアドレスが記録される。エラー発生データ７５Ａに記録されるブロックのアドレスは、上位５位のブロックのアドレスに限定されない。上位１０位のブロックのアドレスでもよいし、全ブロックのエラービット数を記録してもよい。メモリコントローラ７２は、メモリ７１の各ブロックのアドレスと、各ブロックのエラービット数とが記録されたテーブルを保持している。テーブルは、メモリ７１から読み出されたデータにエラーが検出されるたびに更新される。メモリコントローラ７２は、更新されたテーブルを参照して、エラービット数が上位５位のブロックのアドレスを、エラー発生データ７５Ａに記録する。
【００６９】
情報処理端末４は、メモリカード７Ａから取得したエラー発生データ７５Ａを記憶部４３に格納する。図８は、情報処理端末４の記憶部４３に格納されるデータを示す図である。図８に示すように、記憶部４３は、エラー発生データ７５Ａ，７５Ｂ，７５Ｃと、検査領域通知データ２５Ａ，２５Ｂ，２５Ｃと、間接送信データ７６，７６，・・・と、送信管理データ７７とを格納する。検査領域通知データ２５Ａ〜２５Ｃ、間接送信データ７６、及び送信管理データ７７の詳細は、後述する。
【００７０】
エラー発生データ７５Ｂ，７５Ｃは、それぞれ、コンテンツデータＢ，Ｃ（図１参照）が記録されたメモリカード７Ｂ，７Ｃで作成される。メモリカード７Ｂ，７Ｃが情報処理端末４に挿入されているときに、情報処理端末４は、エラー発生データ７５Ｂ，７５Ｃをメモリカード７Ｂ，７Ｃから取得して記憶部４３に格納する。
【００７１】
再び、図６を参照する。エラー状況通知部４６は、集計サーバ１へアクセス可能か否かを判断する（ステップＳ１０２）。たとえば、エラー状況通知部４６は、予め設定されたユーザＩＤ及びパスワードを集計サーバ１へ送信してログインを要求する。エラー状況通知部４６は、集計サーバ１からの応答の有無に基づいて、集計サーバ１へアクセス可能か否かを判断する。
【００７２】
集計サーバ１へアクセスできない場合（ステップＳ１０２においてＮｏ）、情報処理端末４は、間接送信処理を実行する（ステップＳ１０８）。間接送信処理は、記憶部４３に格納されたエラー発生データ７５Ａ〜７５Ｃを情報処理端末５などに送信する処理である。情報処理端末５は、受信したエラー発生データ７５Ａ〜７５Ｃを間接送信データとして集計サーバ１へ送信する。間接送信処理（ステップＳ１０８）の詳細は、後述する。
【００７３】
集計サーバ１からログインを許可する応答を受信した場合、エラー状況通知部４６は、集計サーバ１へアクセスできると判断する（ステップＳ１０２においてＹｅｓ）。エラー状況通知部４６は、送信管理データ７７を参照して、エラー発生データ７５Ａ〜７５Ｃの中で未送信のデータがあるか否かを確認する（ステップＳ１０３）。
【００７４】
図９は、送信管理データ７７を示す図である。送信管理データ７７は、エラー発生データ７５Ａ〜７５Ｃが集計サーバ１または他の情報処理端末に送信されたか否かを示すデータである。図９に示すように、エラー発生データ７５Ａの送信済みフラグは、集計サーバ１及び他の情報処理端末のいずれにも送信されていないことを示す「０」に設定されている。エラー発生データ７５Ｂの送信済みフラグは、間接送信処理により他の情報処理端末に既に送信されたことを示す「１」に設定されている。エラー発生データ７５Ｃの送信済みフラグは、集計サーバ１に既に送信されたことを示す「２」に設定されている。
【００７５】
エラー状況通知部４６は、図９に示す送信管理データ７７を参照して、エラー発生データ７５Ａ，７５Ｂが集計サーバ１へ送信されていないことを確認する（ステップＳ１０３においてＹｅｓ）。エラー状況通知部４６は、エラー発生データ７５Ａ，７５Ｂを集計サーバ１へ送信する（ステップＳ１０４）。
【００７６】
エラー発生データ７５Ｂは、間接送信処理（ステップＳ１０８）により、既に他の情報処理端末へ送信されている。しかし、情報処理端末４は、他の情報処理端末がエラー発生データ７５Ｂを集計サーバ１へ送信したか否かを確認することができない。このため、エラー状況通知部４６がエラー発生データ７５Ｂを集計サーバ１へ送信することにより、集計サーバ１が、確実にエラー発生データ７５Ｂを取得できるようにしている。
【００７７】
エラー状況通知部４６は、送信管理データ７７を更新する（ステップＳ１０５）。集計サーバ１へ送信されたエラー発生データ７５Ａ，７５Ｂの送信済みフラグが、集計サーバ１へ送信されたことを示す「２」に更新される。
【００７８】
ステップＳ１０３に戻る。集計サーバ１へ送信していないエラー発生データが存在しない場合（ステップＳ１０３においてＮｏ）、情報処理端末４は、ステップＳ１０６に進む。
【００７９】
エラー状況通知部４６は、記憶部４３に間接送信データ７６（図８参照）が格納されているか否かを確認する（ステップ１０６）。
【００８０】
間接送信データ７６は、たとえば、情報処理端末５が間接送信処理（ステップＳ１０８）を実行することにより、情報処理端末４へ送信したエラー発生データである。間接送信データ７６，７６が記憶部４３に格納されているため（ステップＳ１０６においてＹｅｓ）、エラー状況通知部４６は、間接送信データ７６，７６を集計サーバ１へ送信する（ステップＳ１０７）。ステップＳ１０７の処理後、記憶部４３に格納された間接送信データ７６，７６は、削除される。間接送信データ７６が記憶部４３に格納されていない場合（ステップＳ１０６においてＮｏ）、情報処理端末４は、図６に示す処理を終了する。
【００８１】
このように、情報処理端末４は、メモリカード７Ａ〜７Ｃが挿入された場合、メモリカード７Ａ〜７Ｃで作成されたエラー発生データ７５Ａ〜７５Ｃを取得して集計サーバ１へ送信する。これにより、集計サーバ１は、各情報処理端末４から送信されるエラー発生データ７５Ａ〜７５Ｃに基づいて、各コンテンツデータが記録されたメモリにおいて、ビットエラーが発生しやすいブロックを特定することができる。
【００８２】
｛５．２．間接送信処理（ステップＳ１０８）｝
以下、間接送信処理（ステップＳ１０８）について詳しく説明する。間接送信処理は、情報処理端末４が集計サーバ１にアクセスできないとき（ステップＳ１０２においてＮｏ、図６参照）に実行される処理であり、エラー発生データを他の情報処理端末へ送信する処理である。
【００８３】
図１０は、間接送信処理を実行するときの情報処理端末４の動作を示すフローチャートである。最初に、検索部４８は、所定の時間を経過したか否かを確認する（ステップＳ２０１）。電源のオフが指示されたときに、集計サーバ１にアクセスできなかった場合、情報処理端末４は、スリープ状態に移行して、ステップＳ２０１を実行する。
【００８４】
所定の時間を経過した場合（ステップＳ２０１においてＹｅｓ）、検索部４８は、通信可能な他の情報処理端末を検索する（ステップＳ２０２）。つまり、検索部４８は、情報処理端末４と直接通信することができる機能と、集計サーバ１にアクセスする機能とを有する装置を検索する。
【００８５】
情報処理端末５が他の情報処理端末として検出された場合（ステップＳ２０３においてＹｅｓ）、エラー状況通知部４６は、送信済みフラグが「０」に設定されたエラー発生データが存在するか否かを確認する（ステップＳ２０４）。図９に示すように、エラー発生データ７５Ａの送信済みフラグが「０」に設定されているため（ステップＳ２０４においてＹｅｓ）、エラー状況通知部４６は、エラー発生データ７５Ａの格納が可能か否かを確認する確認メッセージを情報処理端末５に送信する（ステップＳ２０５）。
【００８６】
情報処理端末４は、情報処理端末５からエラー発生データ７５Ａを格納できないことを通知する応答メッセージを受信した場合（ステップＳ２０６においてＮｏ）、ステップＳ２０１に戻る。
【００８７】
一方、情報処理端末５からエラー発生データ７５Ａの格納が可能であることを通知する応答メッセージを受信した場合（ステップＳ２０６においてＹｅｓ）、エラー状況通知部４６は、エラー発生データ７５Ａを情報処理端末５へ送信する（ステップＳ２０７）。送信管理データ７７において、エラー発生データ７５Ａの送信済みフラグが、「１」に更新される（ステップＳ２０８）。これにより、間接送信処理が終了する。
【００８８】
このように、情報処理端末４は、集計サーバ１にアクセスできない場合、情報処理端末５へエラー発生データ７５Ａを送信する。情報処理端末４が集計サーバ１へアクセスできない状態が継続したとしても、情報処理端末４は、エラー発生データ７５Ａを、情報処理端末５を経由させて集計サーバ１へ送信することが可能となる。
【００８９】
図１０に示す処理では、情報処理端末４は、通信可能な情報処理端末を検出するまで（ステップＳ２０３においてＹｅｓ）、ステップＳ２０１〜Ｓ２０３を繰り返している。しかし、情報処理端末４は、ステップＳ２０１〜Ｓ２０３の処理を予め設定された所定の回数繰り返した場合、図１０に示す処理を終了してもよい。この場合、情報処理端末４は、図６に示す処理を実行して、集計サーバ１に対するアクセスを再び試みてもよい。
【００９０】
｛５．３．間接送信データの受信｝
図１１は、情報処理端末４からエラー発生データ７５Ａを受信したときの情報処理端末５の動作を示すフローチャートである。
【００９１】
図１１に示すように、情報処理端末５は、エラー発生データ７５Ａの格納が可能か否かを確認する確認メッセージを情報処理端末４から受信した場合（ステップＳ３０１においてＹｅｓ）、エラー発生データ７５Ａを格納できるか否かを確認する（ステップＳ３０２）。情報処理端末４〜６には、他の情報処理端末から受信したエラー発生データ（間接送信データ７６）を格納できる数（格納許可値）が予め設定されている。
【００９２】
情報処理端末５の記憶部に格納された間接送信データ７６の数が格納許可値以上である場合（ステップＳ３０２においてＮｏ）、情報処理端末５は、情報処理端末４に対して、エラー発生データ７５Ａを格納できないことを通知する（ステップＳ３０６）。
【００９３】
一方、情報処理端末５の記憶部に格納された間接送信データ７６の数が格納許可値よりも小さい場合（ステップＳ３０２においてＹｅｓ）、情報処理端末５は、情報処理端末４に対して、エラー発生データ７５Ａを格納できることを通知する（ステップＳ３０３）。情報処理端末５は、エラー発生データ７５Ａを情報処理端末４から受信した場合（ステップＳ３０４においてＹｅｓ）、受信したエラー発生データ７５Ａを間接送信データ７６として記憶部に格納する（ステップＳ３０５）。
【００９４】
図１０及び図１１に示す処理において、情報処理端末４は、確認メッセージを送信する（ステップＳ２０５）ことなく、エラー発生データ７５Ａを情報処理端末５へ送信してもよい。情報処理端末５は、受信したエラー発生データ７５Ａを記憶部に格納できない場合、受信エラーを情報処理端末４に通知する。
【００９５】
｛６．エラー発生データの集計｝
以下、エラー発生データを集計する集計サーバ１の動作を説明する。集計サーバ１は、エラー発生データ７５Ａ，７５Ａ，・・・を、情報処理端末４〜６から受信する。検査領域設定部１３は、予め設定された日時に、受信したエラー発生データ７５Ａを集計する。
【００９６】
しかし、情報処理端末４がエラー発生データ７５Ａの間接送信処理（ステップＳ１０８）を実行した場合、集計サーバ１は、情報処理端末４，５からエラー発生データ７５Ａを重複して受信することが考えられる。このため、集計サーバ１は、エラー発生データ７５Ａに記録されたメモリＩＤと作成時刻とに基づいて、内容が重複する複数のエラー発生データ７５Ａ，７５Ａ，・・・が存在するか否かを確認する。内容が重複する複数のエラー発生データ７５Ａ，７５Ａ，・・・が存在する場合、複数のエラー発生データ７５Ａ，７５Ａ，・・・のうち、いずれか一つが集計に用いられる。
【００９７】
検査領域設定部１３は、集計結果に基づいて、コンテンツデータＡを格納するメモリにおける検査領域を設定する。検査領域設定部１３は、同様に、エラー発生データ７５Ｂ，７５Ｃを集計することにより、コンテンツデータＢ，Ｃをそれぞれ格納するメモリにおける検査領域を設定する。
【００９８】
メモリカード７Ａ，７Ａ，・・・が備えるメモリ７１は、同一の論理アドレス空間を有する。複数のメモリ７１，７１，・・・にコンテンツデータＡがそれぞれ書き込まれる場合、同一のアドレスを有するブロックには、同一のデータが書き込まれる。このため、エラー発生データ７５Ａに記録されたエラーブロックのアドレスを集計することにより、コンテンツデータＡが書き込まれたメモリ７１において、エラーが発生しやすい領域を特定することが可能となる。
【００９９】
図１２は、検査領域管理データ１５Ａを示す図である。検査領域管理データ１５Ａは、コンテンツデータＡを格納するメモリ７１における検査領域が設定されたデータである。図１２に示すように、検査領域管理データ１５Ａは、全体の集計結果、起動回数、及び起動時間に基づいて設定された個別検査領域データ１６Ａ，１６Ａ，・・・を備える。
【０１００】
バージョン情報は、検査領域管理データ１５Ａが変更されるたびに更新される。検査領域管理データ１５Ａは、バージョン情報に代えて、検査領域管理データ１５Ａの更新日を記録してもよい。
【０１０１】
全体の集計結果に基づく検査領域の設定方法を説明する。検査領域設定部１３は、受信した全てのエラー発生データ７５Ａに記録されたエラーブロックをカウントする。このとき、エラー発生データ７５Ａに記録されている起動回数及び起動時間は、考慮されない。検査領域設定部１３は、全体の集計結果に基づく検査領域として、カウント数が上位３位のブロックを設定する。上位３位のブロックのアドレスが、個別検査領域データ１６Ａとして、検査領域管理データ１５Ａの全体集計の欄に記録される。
【０１０２】
起動回数に基づく検査領域の設定方法を説明する。検査領域設定部１３は、エラー発生データ７５Ａの起動回数を確認して、エラー発生データ７５Ａを、起動回数１〜１００回、１０１〜２００回、２０１回以上の３つのグループのいずれかに分類する。たとえば、図７に示すエラー発生データ７５Ａは、起動回数１〜１００回のグループに分類される。検査領域設定部１３は、起動回数のグループごとに、エラー発生データ７５Ａに記録されたエラーブロックをカウントする。検査領域設定部１３は、起動回数のグループごとに、カウント数が上位３位のブロックを検査領域として設定する。起動回数の各グループで検査領域に設定されたブロックのアドレスが、個別検査領域データ１６Ａとして、検査領域管理データ１５Ａの起動回数の欄に記録される。
【０１０３】
起動時間に基づく検査領域の設定方法を説明する。検査領域設定部１３は、エラー発生データ７５Ａの起動時間を確認して、エラー発生データ７５Ａを、起動時間０時間以上５０時間未満、５０時間以上１００時間未満、１００時間以上の３つのグループのいずれかに分類する。たとえば、図７に示すエラー発生データ７５Ａは、５０時間以上１００時間未満のグループに分類される。検査領域設定部１３は、起動時間のグループごとに、エラー発生データ７５Ａに記録されたエラーブロックをカウントする。検査領域設定部１３は、起動時間のグループごとに、カウント数が上位３位のブロックを検査領域として設定する。起動時間の各グループで検査領域に設定されたブロックのアドレスが、個別検査領域データ１６Ａとして、検査領域管理データ１５Ａの起動時間の欄に記録される。
【０１０４】
このように、検査領域設定部１３は、メモリ７１の使用状況を示す起動時間、起動回数に基づいて、検査領域を設定する。なお、メモリ７１の使用状況を示すパラメータとして、起動時間、起動回数以外のパラメータを用いてもよい。たとえば、ユーザの操作に応じてユーザに付与されるレベルや、コンテンツデータＡに基づいて作成されたコンテンツページのうち、ユーザに対して閲覧が許可されたコンテンツページの数を用いてもよい。この場合、エラー発生データ７５Ａには、レベルや、ユーザが閲覧可能なコンテンツページの数などを特定する情報が記録される。
【０１０５】
｛７．個別検査領域データの取得｝
以下、情報処理端末４が、個別検査領域データ１６Ａを取得する処理について詳しく説明する。情報処理端末４は、個別検査領域データ１６Ａを含む検査領域通知データ２５Ａ（図５参照）を、集計サーバ１または他の情報処理端末から取得する。
【０１０６】
｛７．１．集計サーバ１からの取得｝
図１３は、集計サーバ１から検査領域通知データ２５Ａを取得するときの情報処理端末４の動作を示すフローチャートである。情報処理端末４は、電源投入時または電源切断時など、予め設定されたタイミングで図１３に示す処理を開始する。最初に、検査領域取得部４７が、集計サーバ１へアクセスできるか否かを確認する（ステップＳ４０１）。ステップＳ４０１の処理は、ステップＳ１０２（図６参照）と同様である。つまり、検査領域取得部４７は、集計サーバ１に対してログインを要求する。検査領域取得部４７は、集計サーバ１からの応答の有無によって、集計サーバ１へアクセス可能か否かを判断する。
【０１０７】
集計サーバ１へアクセスできない場合（ステップＳ４０１においてＮｏ）、検査領域取得部４７は、他の情報処理端末から検査領域通知データ２５Ａを取得する間接取得処理を開始する（ステップＳ４０６）。間接取得処理の詳細は後述する。
【０１０８】
集計サーバ１へアクセスできる場合（ステップＳ４０１においてＹｅｓ）、検査領域取得部４７は、取得条件データ３５Ａを集計サーバ１に送信する（ステップＳ４０２）。ステップＳ４０２の処理は、図５に示すステップＳ６の処理に対応する。検査領域取得部４７は、ステップＳ４０２の処理により、検査領域通知データ２５Ａの送信を集計サーバ１に要求する。
【０１０９】
取得条件データ３５Ａは、個別検査領域データ１６Ａの取得条件が設定されたデータである。検査領域取得部４７は、エラー発生データ７５Ａ（図７参照）を用いて、取得条件データ３５Ａを作成する。たとえば、起動時間に基づくメモリ７１の検査領域を要求する場合、検査領域取得部４７は、コンテンツデータＡのタイトルと、メモリ７１の起動時間（５７時間）とが記録された取得条件データ３５Ａを作成する。
【０１１０】
集計サーバ１が取得条件データ３５Ａを受信したときの動作を説明する。取得条件として、コンテンツデータＡのタイトルと、メモリ７１の起動時間（５７時間）が設定されていた場合、集計サーバ１は、検査領域管理データ１５Ａから、起動時間が５０時間以上１００時間未満に対応する個別検査領域データ１６Ａを抽出する。集計サーバ１は、抽出した検査領域データ１６Ａを含む検査領域通知データ２５Ａを作成する。検査領域通知データ２５Ａが、集計サーバ１から情報処理端末４へ送信される。
【０１１１】
図１４は、検査領域通知データ２５Ａを示す図である。検査領域通知データ２５Ａは、コンテンツデータＡのコンテンツタイトルと、検査領域管理データ１５Ａのバージョン情報と、個別検査領域データ１６Ａとが記録されたデータである。
【０１１２】
再び、図１３を参照する。検査領域通知データ２５Ａを受信した場合（ステップＳ４０３においてＹｅｓ）、検査領域取得部４７は、受信した検査領域通知データ２５Ａのバージョン情報と、記憶部４３に格納されている検査領域通知データ２５Ａ（格納済みデータ）のバージョン情報とを比較する（ステップＳ４０４）。具体的には、受信した検査領域通知データ２５Ａのバージョン番号が、格納済みデータのバージョン番号よりも大きい場合、検査領域取得部４７は、受信した検査領域通知データ２５Ａが新しいデータであると判断する。
【０１１３】
受信した検査領域通知データ２５Ａが新しいデータでない場合（ステップＳ４０４においてＮｏ）、情報処理端末４は、図１３に示す処理を終了する。これは、格納済みデータに基づいて、メモリ７１の検査が既に実行されていると考えられるためである。
【０１１４】
受信した検査領域通知データ２５Ａが新しいデータである場合（ステップＳ４０４においてＹｅｓ）、格納済みデータが、受信した検査領域通知データ２５Ａに更新される。メモリカードインタフェース４５Ａは、記憶部４３に新たに格納された検査領域通知データ２５Ａを、メモリコントローラ７２に出力する（ステップＳ４０５）。
【０１１５】
メモリカードインタフェース４５Ａから検査領域通知データ２５Ａが出力されたときのメモリコントローラの動作について説明する。検査部７３は、検査領域通知データ２５Ａから個別検査領域データ１６Ａを抽出する。検査部７３は、個別検査領域データ１６Ａに設定された論理アドレスに基づいて、検査領域のブロックを特定する。検査部７３は、検査領域のブロックからデータを読み出し、読み出したデータに対してエラー検出処理を行う。再書き込み部７４は、読み出したデータからエラーが検出された場合、検査対象のブロックを再書き込みするか否かを判定する。たとえば、検査領域のブロックから検出されたエラービット数が、予め設定された閾値を超えた場合、再書き込み部７４は、検査領域のブロックを再書き込みすると判定する。再書き込み部７４は、再書き込みすると判定した場合、読み出したデータに対してエラー訂正処理を行い、訂正されたデータを検査領域のブロックに書き戻す。
【０１１６】
このように、メモリコントローラ７２は、情報処理端末４を介して集計サーバ１から、個別検査領域データ１６Ａを取得し、個別検査領域データ１６Ａで指定された検査領域を検査する。エラーが発生しやすい領域を確実に検査することができるため、メモリ７１において、エラー訂正が不可能なブロックが発生することを防止することができる。検査部７３は、個別検査領域データ１６Ａに設定されたブロックを検査する。このため、検査対象のブロックを決定するための回路をメモリコントローラ７１に実装しなくてもよい。また、検査部７３は、個別検査領域データ１６Ａに設定されたアドレスのブロックを検査すればよく、他のブロックのアドレスを検査しなくてもよい。したがって、エラー検出のための読み出し処理の回数を削減でき、フラッシュメモリの負荷を低減すること可能となる。
【０１１７】
検査領域取得部４７は、検査領域通知データ２５Ａを取得する際に、コンテンツデータＢ，Ｃが記録されたメモリカード７Ｂ，７Ｃに関する検査領域通知データ２５Ｂ，２５Ｃも取得する。記憶部４３において、検査領域通知データ２５Ｂ，２５Ｃが更新された場合、情報処理端末４は、メモリカード７Ｂ，７Ｃがそれぞれ挿入されたときに、検査領域通知データ２５Ｂ，２５Ｃをメモリカード７Ｂ，７Ｃに出力する。
【０１１８】
｛７．２．間接取得処理｝
間接取得処理（ステップＳ４０６）について、詳しく説明する。間接取得処理は、検査領域取得部４７が集計サーバ１にアクセスできないとき（ステップＳ４０２においてＮｏ、図１３参照）に実行される処理であり、検査領域通知データを他の情報処理端末から取得する処理である。以下、情報処理端末４が、コンテンツデータＡに対応する検査領域通知データ２５Ａを情報処理端末５から取得する場合を例に説明する。
【０１１９】
図１５は、間接取得処理を実行する情報処理端末４の動作を示すフローチャートである。情報処理端末４は、電源のオフを指示された場合、スリープ状態に移行した後に、間接取得処理を実行する。検索部４８は、所定の時間を経過した場合（ステップＳ５０１においてＹｅｓ）、検索部４８は、通信可能な他の情報処理端末を検索する（ステップＳ５０２）。ステップＳ５０２の処理は、ステップＳ２０２の処理と同じ処理である。
【０１２０】
情報処理端末５が他の情報処理端末として検出された場合（ステップＳ５０３においてＹｅｓ）、検査領域取得部４７は、検査領域通知データ２５Ａの送信を要求するために、取得条件データ３５Ａを情報処理端末５へ送信する（ステップＳ５０４）。なお、情報処理端末４は、ステップＳ５０１〜Ｓ５０３の処理を所定回数繰り返しても、他の情報処理端末を検出できない場合、図１５に示す処理を終了してもよい。この場合、情報処理端末４は、集計サーバ１へのアクセスを再び試みてもよい。
【０１２１】
情報処理端末５は、取得条件データ３５Ａを受信した場合、取得条件を満たす検査領域通知データ２５Ａを保持しているか否かを確認する。保持していない場合、情報処理端末５は、エラーメッセージを情報処理端末４へ送信する。たとえば、情報処理端末５が、メモリ７１の起動回数に基づく検査領域が設定された検査領域通知データ２５Ａを保持しているのにも関わらず、メモリ７１の起動時間が設定された取得条件データ３５Ａを受信するケースが考えられる。この場合、情報処理端末５は、取得条件を満たす検査領域通知データ２５Ａを送信することができないため、エラーメッセージを送信する。一方、情報処理端末５は、取得条件を満たす検査領域通知データ２５Ａを保持している場合、検査領域通知データ２５Ａを情報処理端末４へ送信する。
【０１２２】
情報処理端末４は、エラーメッセージを受信した場合（ステップＳ５０５においてＮｏ）、図１５に示す処理を終了する。
【０１２３】
一方、情報処理端末４が検査領域通知データ２５Ａを受信した場合（ステップＳ５０５においてＹｅｓ）、ステップＳ５０４の処理が実行される。すなわち、検査領域取得部４７は、受信した検査領域通知データ２５Ａが記憶部４３に格納された検査領域通知データ２５Ａ（格納済みデータ）よりも新しいか否かを確認する（ステップＳ５０６）。ステップＳ５０４の処理は、図１３に示すステップＳ４０４の処理と同じ処理である。
【０１２４】
受信した検査領域通知データ２５Ａが新しいデータである場合（ステップＳ５０６においてＹｅｓ）、格納済みデータが、受信した検査領域通知データ２５Ａに更新される。メモリカードインタフェース４５Ａは、受信した検査領域通知データ２５Ａを、メモリコントローラ７２に出力する（ステップＳ５０７）。一方、受信した検査領域通知データ２５Ａが新しいデータでない場合（ステップＳ５０６においてＮｏ）、検査領域取得部４７は、図１５に示す処理を終了する。
【０１２５】
図１５では、検索部４８により検出された情報処理端末から、検査領域通知データ２５Ａを取得する例を説明した。しかし、情報処理端末４は、他の情報処理端末４を検索することなく、検査領域通知データ２５Ａを取得してもよい。たとえば、情報通信端末４は、電話帳などのデータあるいは、コンテンツＡに関するデータなどを情報処理端末５から受信中である場合、ステップＳ５０５〜Ｓ５０７の処理を実行してもよい。情報処理端末４は、ユーザの指示に応じて情報処理端末５との通信を開始した場合に、ステップＳ５０５〜Ｓ５０７の処理を実行してもよい。すなわち、情報処理端末４は、他の情報処理端末と通信中である場合、通信中の他の情報処理端末に対して、検査領域通データ２５Ａの送信を要求してもよい。
【０１２６】
このように、情報処理端末４は、集計サーバ１から検査領域通知データ２５Ａを取得できない場合、他の情報処理端末から検査領域通知データ２５Ａを取得する。これにより、情報処理端末４は、集計サーバ１にアクセスできなくても、メモリ７１に記録されたデータの信頼性を向上させることができる。
【０１２７】
以上説明したように、本実施の形態に係るデータ検査システム１００において、情報処理端末４は、メモリ７１でエラーが発生したブロックのアドレスをエラー発生データ７５Ａとして集計サーバ１に送信する。集計サーバ１は、様々な情報処理端末から受信したエラー発生データ７５Ａを集計して、メモリ７１における検査領域を設定する。情報処理端末４は、検査領域が設定された個別検査領域データ７５Ａを取得して、メモリコントローラ７２に出力する。
【０１２８】
検査領域は、メモリ７１においてエラーが発生しやすい領域である。メモリコントローラ７２は、訂正不可能なエラーがメモリ７１で発生する前に、エラーの発生しやすい領域を検査することが可能となる。したがって、メモリ７１に格納されるデータの信頼性を確保することができる。メモリコントローラ７２は、個別検査領域データ１６Ａに設定されたブロックを検査すればよいため、検査対象のブロックを決定するための回路を備えなくてもよい。また、メモリコントローラ７２は、個別検査領域データ１６Ａに設定されたアドレスのブロック以外のアドレスを検査しなくてもよい。したがって、エラー検出のためのブロックの読み出し処理の回数を削減でき、フラッシュメモリの負荷を低減すること可能となる。
【０１２９】
上記実施の形態において、集計サーバ１の検査領域設定部１３が、情報処理端末から受信したエラー発生データに基づいて、コンテンツデータごとの検査領域を設定する例を説明した。しかし、検査領域設定部１３は、予め設定された検査領域を情報処理端末に通知してもよい。たとえば、メモリ７１の構造上、ビットエラーが発生しやすいと予測される領域（予測領域）が既に明らかである場合、予測領域を予め検査領域に設定しておいてもよい。この場合、情報処理端末４〜６は、検査領域通知データを取得する処理のみを実行すればよい。あるいは、集計サーバ１は、エラー発生データに基づいて設定される検査領域と、予測領域とが設定された検査領域通知データを情報処理端末４〜６に送信してもよい。
【０１３０】
上記実施の形態において、コンテンツの種別ごとに検査領域管理データを作成する例を説明した。しかし、コンテンツの種別ごと作成された検査領域管理データを、さらにメモリ７１のメーカごとに区分して作成してもよい。メモリ７１の構造がメーカによって異なるため、エラーブロックが発生しやすい領域もメーカによって変化する可能性があるためである。この場合、検査領域取得部４７は、取得条件データ３５Ａにメモリ７１のメーカ名を設定する。これにより、集計サーバ１は、メモリ７１のメーカ名を用いて、個別検査領域データ１６Ａを抽出することが可能となる。
【０１３１】
上記実施の形態において、集計サーバ１は、取得条件データ３５Ａに設定された取得条件を満たす検査領域データ１６Ａを情報処理端末４に送信する例を説明した。しかし、集計サーバ１は、検査領域管理データ１５Ａを情報処理端末４〜６に送信してもよい。この場合、情報処理端末４は、検査領域通知データ２５Ａの間接取得処理を実行するときに、取得条件データ３５を満たす検査領域通知データ２５Ａを確実に取得することができる。
【０１３２】
上記実施の形態において、エラー状況通知部４６がエラー発生データ７５Ａを間接送信処理により情報処理端末５に送信した場合、エラー発生データ７５Ａの送信済みフラグを「０」から「１」に更新する例を説明した（図９、図１０参照）。しかし、エラー状況通知部４６は、間接送信処理（図１０参照）を実行した際に、エラー発生データ７５Ａの送信済みフラグを「１」に変更せず、「０」のままとしてもよい。この場合、エラー状況通知部４６は、エラー発生データ７５Ａを集計サーバ１へ送信するまで、間接送信処理を一定の間隔で繰り返せばよい。上記に実施の形態に比べて、エラー発生データ７５Ａを様々な経路で集計サーバ１へ送信することができるため、エラー発生データ７５Ａを確実に集計サーバ１へ送信することができる。
【０１３３】
また、エラー状況通知部４６は、エラー発生データ７５Ａの送信済みフラグが「１」に設定された後も、間接送信処理を予め設定された回数分繰り返し実行してもよい。この場合、エラー状況通知部４６は、間接送信処理の実行回数をカウントするカウンタを備える。上記に実施の形態に比べて、エラー発生データ７５Ａを様々な経路で送信することができるため、エラー発生データ７５Ａを確実に集計サーバ１へ送信することができる。
【符号の説明】
【０１３４】
１００  データ検査システム
１  集計サーバ
４，５，６  情報処理端末
７Ａ〜７Ｃ  メモリカード
１３  検査領域設定部
１５Ａ〜１５Ｃ  検査領域管理データ
１６Ａ  検査領域データ
２５Ａ〜２５Ｃ  検査領域通知データ
４３  記憶部
４６  エラー状況通知部
４７  検査領域取得部
４８  検索部
７１  メモリ
７２  メモリコントローラ
７３  検査部
７４  再書き込み部
７５  エラー発生データ作成部
７５Ａ〜７５Ｃ  エラー発生データ
Ａ〜Ｃ  コンテンツデータ
【図１】
0005762139.tif 000002
【図２】
0005762139.tif 000003
【図３】
0005762139.tif 000004
【図４】
0005762139.tif 000005
【図５】
0005762139.tif 000006
【図６】
0005762139.tif 000007
【図７】
0005762139.tif 000008
【図８】
0005762139.tif 000009
【図９】
0005762139.tif 000010
【図１０】
0005762139.tif 000011
【図１１】
0005762139.tif 000012
【図１２】
0005762139.tif 000013
【図１３】
0005762139.tif 000014
【図１４】
0005762139.tif 000015
【図１５】
0005762139.tif 000016