(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記特許文献1には、リードディスターブ現象により、フラッシュメモリのデータに訂正不可能なエラーが発生した場合であっても、フラッシュメモリのデータを修復することができるデータ修復システムが記載されている。上記特許文献1において、情報処理装置は、フラッシュメモリから読み出したデータのエラーを訂正できない場合、読み出したデータと同一のデータをサーバから取得する。情報処理装置は、取得したデータを用いて、フラッシュメモリに書き込まれたデータを修復する。
【0008】
このように、上記特許文献1のデータ修復システムでは、フラッシュメモリに書き込まれているデータと同一のデータがネットワークを介して転送される。サーバから情報処理装置へデータが転送される間に、データにエラーが発生したり、データが第三者に取得されたりするおそれがある。また、訂正不可能なエラーが発生しなければ、フラッシュメモリに書き込まれたデータが修復されないため、フラッシュメモリに書き込まれたデータの信頼性が低下するという問題がある。
【0009】
上記特許文献1の他にも、リードディスターブ現象によりデータの信頼性が低下することを防ぐために、様々な方法がとられている。たとえば、フラッシュメモリの各ブロックからデータを定期的に読み出し、読み出したデータにエラーが発生しているか否かを確認する方法がある。読み出したデータからエラーが検出された場合、読み出したデータのエラーを訂正し、訂正したデータをメモリに再書き込みする。しかし、リードディスターブ現象は、読み出し処理が繰り返されることにより発生するため、エラー検出のための読み出し処理自体が、リードディスターブ現象の発生要因となる。
【0010】
エラー検出のための読み出し処理を削減するために、所定のアルゴリズムを用いて検査対象の領域を決定する方法がある。しかし、所定のアルゴリズムを実装した回路をメモリコントローラに組み込む必要があるため、メモリコントローラの構成が複雑となる。
【0011】
そこで、本発明は、前記問題点に鑑み、フラッシュメモリに負荷を掛けることなく、フラッシュメモリに書き込まれたデータの信頼性を向上することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記課題を解決するため、請求項1記載の発明は、
再書き込み可能な不揮発性の半導体メモリのホスト装置として動作する情報処理端末であって、前記半導体メモリに記録されたデータを、メモリコントローラを介して取得し、取得した前記データを処理するデータ処理部と、
前記半導体メモリに記録されたデータの種別を示す種別データをネットワークを介してアクセス可能な管理サーバに送信する種別データ送信部と、前記半導体メモリの記憶領域のう
ち検査対象として指定された検査領域が設定され
、かつ、前記種別データにより示される種別に対応する検査領域データ
を、前記種別データの送信に対する応答として前記管理サーバから取得する検査領域取得部と、取得した前記検査領域データを前記メモリコントローラに出力する検査領域出力部と、を備える。
【0013】
請求項2記載の発明は、請求項1に記載の情報処理端末であって、さらに、前記半導体メモリにおいてエラーが発生した領域を記録したエラー発生データを前記メモリコントローラから取得し、取得したエラー発生データを前記管理サーバに送信するエラー状況通知部、を備える。
【0014】
請求項3記載の発明は、請求
項2に記載の情報処理端末であって、さらに、前記エラー発生データを前記管理サーバに送信できない場合、前記情報処理端末と直接的に通信可能であるとともに、前記管理サーバと通信可能な装置を検索する検索部、を備え、前記エラー状況通知部は、前記検索部により検出された装置に前記エラー発生データを送信する。
【0015】
請求項4記載の発明は、請求項2に記載の情報処理端末であって、前記エラー状況通知部は、
前記半導体メモリとは別の半導体メモリのホスト装置として動作するとともに前記情報処理端末と直接的に通信可能な通信装置から
前記別の半導体メモリのエラー発生データを受信した場合、前記通信装置から受信した
前記別の半導体メモリのエラー発生データを前記管理サーバに送信する。
【0016】
請求項5記載の発明は、請求項1または請求項2に記載の情報処理端末であって、さらに、前記検査領域データを前記管理サーバから受信できない場合、
前記半導体メモリとは別の半導体メモリのホスト装置として動作する装置であって前記情報処理端末と直接的に通信可能であり、かつ、前記管理サーバとネットワークを介して通信可能な装置を検索する検索部、を備え、前記検査領域取得部は、
前記検索部により検出された装置に前記種別データを送信して、前記種別データにより示される種別に対応する検査領域データの送信を要求する。
【0017】
請求項6記載の発明は、請求項5に記載の情報処理端末であって、さらに、検査領域データを記憶する記憶部、を備え、前記検査領域取得部は、前記
検索部により検索された装置から送信された検査領域データが前記記憶部に記憶された検査領域データよりも新しい場合、前記
検索部により検索された装置から送信された検査領域データの出力を前記検査領域出力部に対して指示する。
【0018】
請求項7記載の発明は、請求項1または請求項2に記載の情報処理端末であって、前記検査領域取得部は、前
記管理サーバとネットワークを介してアクセス可能であり、かつ、前記情報処理端末と通信中の装置が存在する場合、前記通信中の装置に
前記種別データを送信して、前記種別データにより示される種別に対応する検査領域データの送信を要求する。
【0019】
請求項8記載の発明は、請求項7に記載の情報処理端末であって、さらに、検査領域データを記憶する記憶部、を備え、前記検査領域取得部は、前記通信中の装置から送信された検査領域データが前記記憶部に記憶された検査領域データよりも新しい場合、前記通信中の装置から送信された検査領域データの出力を前記検査領域出力部に対して指示する。
【0020】
請求項9記載の発明は、請求項5ないし請求項8のいずれかに記載の情報処理端末であって、さらに、
前記半導体メモリとは別の半導体メモリのホスト装置として動作するとともに前記情報処理端末と直接的に通信可能な通信装置から検査領域データの送信を要求された場合、前記管理サーバから取得した検査領域データを前記通信装置に送信する検査領域データ送信部、を備える。
【0021】
請求項10記載の発明は、再書き込み可能な不揮発性
の半導体メモリから取得したデータを処理する情報処理端末とネットワークを介して接続された管理サーバであって、前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを
、前記半導体メモリに記録されるデータの種別ごとに作成する検査領域設定部と、
前記半導体メモリに記録されるデータの種別を示す種別データを含む検査領域要求を前記情報処理端末から受信した場合、前記検査領域要求に含まれる種別データに対応する検査領域データを、前記検査領域設定部により作成された検査領域データの中から選択する選択部と、前記選択部により選択された検査領域データを前記情報処理端末へ送信する通信部と、を備える。
【0022】
請求項11記載の発明は、請求項10に記載の管理サーバであって、前記検査領域設定部は、前記半導体メモリにおいてエラーが発生した領域を
示すエラー領域データと、前記半導体メモリに記録されたデータの種別を示す種別データとを記録したエラー発生データを前記情報処理端末から受信した場合、
前記エラー発生データに含まれる種別データに基づいて、更新対象の検査領域データを特定し、前記エラー発生データに含まれるエラー領域データを用いて、特定した検査領域データを更新する。
【0025】
請求項
12記載の発明は、請求項11に記載の管理サーバであって、前記エラー発生データは、前記半導体メモリの使用状況を記録した使用状況データ、を含み、前記検査領域データは、半導体メモリの使用状況に応じた検査領域が設定された複数の個別検査領域データ、を含み、前記検査領域設定部は、前記エラー発生データを受信した場合、前記使用状況データを用いて更新対象の個別検査領域データを特定し、前記エラー
領域データを用いて、特定した前記個別検査領域データを更新する。
【0026】
請求項13記載の発明は、請求項12に記載の管理サーバであって、前記検査領域設定部は、
前記情報処理端末から受信した前記検査領域要求が使用状況データを含み、かつ、個別検査領域データの送信を要求している場合、前記検査領域に要求に含まれる種別データ及び使用状況データを用いて送信対象の個別検査領域データを特定し、特定した前記送信対象の個別検査領域データを前記情報処理端末に送信する。
【0027】
請求項14記載の発明は、
ホスト装置の読み出し要求に従って半導体メモリに対するアクセスを制御するメモリコントローラであって、前記ホスト装置は、ネットワークを介して管理サーバに接続可能であり、前記管理サーバは、前記ホスト装置を含め前記ネットワークに接続された装置で利用されるデータ種別ごとの検査領域データを管理しており、前記メモリコントローラは、前記ホスト装置の読み出し要求に従って、前記半導体メモリからデータを読み出し、読み出したデータに対するエラー検出処理を行うエラー検出部と、前記エラー検出部によるエラー検出結果に従って、前記半導体メモリにおいてエラーが発生した領域を示すエラー領域データを作成し、作成したエラー領域データと、前記半導体メモリに記録されたデータの種別を示す
情報とを含むエラー発生データを作成する作成部と、前記作成部により作成されたエラー発生データを前記ホスト装置に出力するインタフェースと、を備え
、前記ホスト装置から受信した前記エラー発生データに基づき、前記管理サーバにおいて前記検査領域データが更新される。
【0028】
請求項15記載の発明は、請求項14に記載のメモリコントローラであって、前記インタフェースは、前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを入力し、前記メモリコントローラは、さらに、前記
インタフェースに入力された検査領域データを用いて前記検査領域に記録されたデータを検査用データとして読み出し、前記検査用データに対するエラー検出処理を行う検査部と、前記検査用データからエラーが検出された場合、前記検査用データのエラーを訂正し、エラー訂正された検査用データを前記検査領域に再書き込みする再書き込み部と、を備える。
【0029】
請求項
16記載の発明は、半導体メモリのデータ検査システムであって、再書き込み可能な不揮発性の半導体メモリと、前記半導体メモリに対するアクセスを制御するメモリコントローラと、
前記半導体メモリのホスト装置として動作し、前記メモリコントローラにより前記半導体メモリから読み出されたデータを処理する情報処理端末と、前記情報処理端末とネットワークを介して接続された管理サーバと、を備え、
前記情報処理端末は、前記半導体メモリに記録されたデータの種別を示す種別データを含む検査領域要求を管理サーバに送信する検査領域要求部、を備え、前記管理サーバは、
前記半導体メモリの記憶領域のうち、検査対象として指定された検査領域が設定された検査領域データを
、前記半導体メモリに記録されるデータの種別ごとに作成する検査領域設定部と、
前記検査領域要求を前記情報処理端末から受信した場合、前記検査領域要求に含まれる種別データに対応する検査領域データを、前記検査領域設定部により作成された検査領域データの中から選択する選択部と、前記選択部により選択された検査領域データを前記情報処理端末へ送信する送信部と、を備え、前記情報処理端末は、
さらに、前記検査領域要求の応答として、前記送信部により送信された検査領域データ
を取得する検査領域取得部と、
前記検査領域取得部により取得された前記検査領域データを前記メモリコントローラに出力する検査領域出力部と、を備え、前記メモリコントローラは、
前記検査領域出力部から出力された検査領域データを用いて、前記検査領域に記録されたデータを検査用データとして読み出し、前記検査用データに対するエラー検出処理を行う検査部と、前記検査用データからエラーが検出された場合、前記検査用データのエラーを訂正し、エラー訂正された検査用データを前記検査領域に再書き込みする再書き込み部と、を備える。
【0030】
請求項
17記載の発明は、請求項
16に記載の半導体メモリのデータの検査システムであって、前記メモリコントローラは、さらに、前記半導体メモリから読み出したデータに対するエラー検出処理を行い、前記読み出したデータのエラー検出結果に基づいて、前記半導体メモリにおいてエラーが発生した領域を記録した
エラー領域データを作成し、作成したエラー領域データと、前記半導体メモリに記録されたデータの種別を示す種別データとを含むエラー発生データを作成するエラー発生データ作成部、を備え、前記情報処理端末は、さらに、前記エラー発生データを前記メモリコントローラから取得し、取得した前記エラー発生データを前記管理サーバに送信するエラー状況通知部、を備え、前記検査領域設定部は、前記エラー発生データを前記情報処理端末から受信した場合、
前記エラー発生データに含まれる種別データに基づいて更新対象の検査領域データを特定し、前記エラー発生データに含まれるエラー領域データを用いて、特定した検査領域データを更新する。
【発明の効果】
【0031】
本発明によれば、情報処理端末は、半導体メモリの記憶領域のうち、検査領域が設定された検査領域データを管理サーバから取得し、取得した検査領域データをメモリコントローラに出力する。メモリコントローラは、検査領域データを用いて、検査領域に記録されたデータを検査用データとして読み出す。検査領域以外の領域が、エラー検出のための読み出されることがないため、メモリの読み出し回数を削減することができる。したがって、半導体メモリに対する負荷を削減するともに、半導体メモリで訂正不可能なエラーが発生することを防止することができる。
【0032】
また、情報処理端末は、半導体メモリでエラーが発生した領域を記録したエラー発生データをメモリコントローラから取得し、取得したエラー発生データをサーバに送信する。これにより、管理サーバは、エラー発生データを用いて、半導体メモリで実際にエラーが発生しやすい領域を検査領域として設定することが可能となる。
【発明を実施するための形態】
【0034】
以下、図面を参照しつつ、本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係る半導体メモリのデータ検査システム100の構成を示す図である。
【0035】
{1.全体構成}
図1に示すように、データ検査システム100は、集計サーバ1と、情報処理端末4,5,6とを備える。集計サーバ1は、インターネット3に接続されている。情報処理端末4〜6は、無線LANのアクセスポイント2を介して、インターネット3に接続されている。
【0036】
情報処理端末4〜6は、携帯電話機、スマートフォンなどの携帯型端末である。情報処理端末4〜6は、記憶媒体としてフラッシュメモリを用いたメモリカードを挿入することができる機器である。メモリカード7A〜7Cには、情報処理端末4〜6のユーザがコンテンツを楽しむためのコンテンツデータA〜Cがそれぞれ記録されている。
【0037】
情報処理端末4〜6は、メモリカード7A〜7Cで発生したエラーに関するエラー発生データを集計サーバ1に送信する。エラー発生データは、メモリカード7A〜7Cが備えるフラッシュメモリにおいてエラーが発生した領域を記録したデータである。
【0038】
集計サーバ1は、情報処理端末4〜6から受信したエラー発生データを用いて、フラッシュメモリにおけるエラー発生状況を集計する。エラー発生状況は、フラッシュメモリに記録されたコンテンツデータごとに集計される。集計サーバ1は、集計結果に基づいて、フラッシュメモリの記憶領域のうち、検査対象として指定された検査領域をコンテンツデータごとに設定する。すなわち、集計サーバ1は、コンテンツデータA〜Cをそれぞれ記憶するフラッシュメモリにおいて設定された検査領域を管理する管理サーバとして機能する。
【0039】
{2.情報処理端末の構成}
図2は、情報処理端末4及びメモリカード7Aの機能的構成を示すブロック図である。情報処理端末5,6の構成は、情報処理端末4の構成と同じである。メモリカード7B,7Cの構成は、メモリカード7Aの構成と同じである。
図2に示すように、情報処理端末4は、制御部40と、表示部41と、操作部42と、記憶部43と、無線通信部44と、カードスロット45とを備える。
【0040】
制御部40は、CPU(Central Processing Unit)及びRAM(Random Access Memory)を備え、情報処理端末4の全体制御を行う。
【0041】
表示部41は、液晶パネルなどにより構成される。操作部42は、十字キー、ボタンなどのハードウェアキーである。表示部41及び操作部42は、タッチパネル式ディスプレイにより構成されていてもよい。
【0042】
記憶部43は、不揮発性のメモリや、ハードディスク装置などにより構成される。記憶部43は、メモリコントローラ72から出力されるエラー発生データ75Aなどを格納する。記憶部43が格納するデータの詳細は、後述する。
【0043】
無線通信部44は、無線LANを用いて、TCP(Transmission
Control Protocol)/IP(Internet Protocol)などの各種プロトコルに基づく通信を実行する。無線通信部44は、無線LANだけでなく、Bluetoothあるいは赤外線通信などの近距離無線通信を用いてもよい。
【0044】
カードスロット45は、メモリカード7A〜7Cのいずれか一つを挿入するためのスロットである。メモリカードインタフェース45Aは、カードスロット45に挿入されたメモリカードと接続して、メモリコントローラ72とデータの送受信を行う。
【0045】
制御部40は、エラー状況通知部46と、検査領域取得部47と、検索部48とを備える。エラー状況通知部46は、メモリ71でエラーが発生した領域を記録したエラー発生データ75Aを、集計サーバ1に送信する。検査領域取得部47は、集計サーバ1に対して、検査領域が記録された検査領域データの送信を要求する。検査領域とは、メモリ71の記憶領域の中で検査対象として指定された領域であり、集計サーバ1により設定される。検索部48は、情報処理端末4と直接通信することができる機能と、集計サーバ1にアクセスすることができる機能とを有する装置(情報処理端末5,6)を検索する。なお、情報処理端末5,6は、情報処理端末4との通信と、集計サーバ1との通信とを並行して実行することはなく、それぞれの通信を異なるタイミングで実行する。
【0046】
メモリカード7Aは、インタフェース70と、メモリ71と、メモリコントローラ72とを備える。インタフェース70は、メモリカード7Aがカードスロット45に挿入されているときに、ホスト装置である情報処理端末4とデータの送受信を行う。メモリ71は、再書き込み可能な不揮発性半導体メモリである。本実施の形態において、メモリ71は、NANDフラッシュメモリである。メモリ71は、コンテンツデータA及びエラー発生データ75Aを記録する。
【0047】
メモリコントローラ72は、メモリ71に対するデータの読み出し及び書き込みを制御する。メモリコントローラ72は、検査部73と、再書き込み部74と、エラー発生データ作成部75とを備える。検査部73は、検査領域データに基づいて、メモリ71の検査領域に記録されたデータを検査用データとして読み出し、検査用データに対するエラー検出処理を実行する。再書き込み部74は、検査用データからエラーが検出された場合、検査用データのエラーを訂正し、エラー訂正されたデータを検査領域に再び書き込む。エラー発生データ作成部75は、メモリ71から読み出されたデータに対してエラー検出処理を行い、エラー検出結果に基づいて、エラー発生データ75Aを作成する。
図2では、エラー発生データ75Aがメモリ71に記録される例を示しているが、エラー発生データ75Aは、メモリコントローラ72に設けられた不揮発性メモリに記録されてもよい。
【0048】
図3は、メモリ71の構成を示す図である。具体的には、メモリ71は、1枚のダイで構成される。ダイは、複数のブロックを含む。
図3に示す例では、ダイは、M個のブロックを含む。ブロックは、複数のページを含む。
図3に示す例では、ブロックは、Z個のページを含む。
【0049】
ページは、メモリ71におけるデータの読み出し単位及び書き込み単位である。メモリコントローラ72は、メモリ71に記録されているデータをページ単位で読み出し、書き込みが指示されたデータをページ単位でメモリ71に書き込むことができる。
【0050】
ブロックは、メモリ71におけるデータの消去単位である。メモリ71に書き込まれたデータの再書き込みは、ブロック単位で行われる。具体的には、メモリコントローラ72は、再書き込み対象のデータをブロック単位でメモリ71から読み出し、読み出されたデータをブロック単位で消去する。メモリ71から読み出されたデータが、データが消去されたブロックに再び書き込まれる。
【0051】
{3.集計サーバ1の機能的構成}
図4は、集計サーバ1の機能的構成を示すブロック図である。
図4に示すように、集計サーバ1は、制御部10と、記憶部11と、通信部12とを備える。制御部10は、CPU及びRAMを備え、集計サーバ1の全体制御を行う。
【0052】
制御部10は、検査領域設定部13を備える。検査領域設定部13は、情報処理端末4〜6から受信したエラー発生データを集計する。検査領域設定部13は、集計結果に基づいて、各コンテンツデータが記録されたメモリにおける検査領域を設定する。
【0053】
記憶部11は、ハードディスク装置などの記憶装置であり、検査領域管理データ15A,15B,15Cを記憶する。検査領域管理データ15A〜15Cは、コンテンツデータA,B,C(
図1参照)に対応する。検査領域管理データ15A〜15Cは、各コンテンツデータが記録されたメモリカードにおいて検査領域として設定されたブロックのアドレスを管理するデータである。検査領域管理データ15Aは、個別検査領域データ16A,16A,・・・を含む。個別検査領域データ16Aには、メモリカード7Aの使用状況別に設定された検査領域が記録される。
【0054】
通信部12は、TCP/IPなどの各種プロトコルを用いて、インターネットに接続された情報処理端末4〜6と通信を行う。
【0055】
{4.動作概要}
以下、情報処理端末4が集計サーバ1に対してエラー発生データ75Aを送信し、集計サーバ1から検査領域データを取得する場合を例にして、データ検査システム100の動作の概要を説明する。
【0056】
図5は、データ検査システム100の動作の概略を示すシーケンス図である。最初に、情報処理端末4のユーザは、コンテンツデータAが記録されたメモリカード7Aを購入する。ユーザは、メモリカード7Aをカードスロット45に挿入して、情報処理端末4の電源を入れる。
【0057】
ユーザがコンテンツの表示を情報処理端末4に指示した場合、メモリコントローラ72は、情報処理端末4から出力される読み出しコマンドに基づいて、メモリ71からデータを読み出す(ステップS1)。
図5に示していないが、メモリコントローラ72は、メモリ71から読み出したデータを情報処理端末4に出力する。制御部40は、メモリコントローラ72から出力されたデータを処理して、コンテンツを表示部41に表示する。
【0058】
エラー発生データ作成部75は、メモリ71から読み出されたデータに対するエラー検出処理を行う。エラー発生データ作成部75は、検出結果に基づいて、エラー発生データ75Aを作成する(ステップS2)。エラー発生データ75Aは、エラーが発生したメモリ71のブロックのアドレスを記録したデータである。メモリコントローラ72は、作成したエラー発生データ75Aを情報処理端末4へ出力する(ステップS3)。情報処理端末4は、メモリカード7Aから入力したエラー発生データ75Aを、集計サーバ1へ送信する(ステップS4)。
【0059】
図5では、ステップS1〜S4の処理が連続して実行されている。しかし、メモリコントローラ72及び情報処理端末4は、電源が投入されたとき、あるいは電源の切断が指示されたときなど、予め設定されたタイミングでステップS3,S4の処理を実行する。
【0060】
集計サーバ1は、受信したエラー発生データ75Aを用いて、コンテンツデータAが記録されたメモリにおけるエラーの発生状況を集計する。集計サーバ1は、集計結果に基づいて、コンテンツデータAが記録されたメモリにおける検査領域を設定する(ステップS5)。集計サーバ1は、検査領域が設定された個別検査領域データ16Aを作成して、検査領域管理データ15Aに登録する。
【0061】
情報処理端末4は、コンテンツデータ7Aのタイトルなど、個別検査領域データ16Aの取得条件が設定された取得条件データ35Aを集計サーバ1に送信する(ステップS6)。集計サーバ1は、取得条件を満たす個別検査領域データ16Aを検査領域管理データ15Aから抽出する。抽出された個別検査領域データ16Aを含む検査領域通知データ25Aが、情報処理端末4へ送信される(ステップS7)。情報処理端末4は、受信した検査領域通知データ25Aをメモリコントローラ72に出力する(ステップS8)。メモリコントローラ72は、検査領域通知データ25Aに含まれる個別検査領域データ16Aを用いて、メモリ71の検査領域に対するエラー検出処理を行う(ステップS9)。
【0062】
このように、メモリコントローラ72は、情報処理端末4を介して、検査領域のアドレスを取得する。メモリコントローラ72は、エラー訂正が不可能なブロックが発生する前に、エラーが発生しやすいブロックを前もって検査することができるため、メモリ71に記録されたデータの信頼性を向上させることができる。メモリ71に記録されたデータを修復するために、エラーのないデータを集計サーバ1から情報処理端末4に転送する必要がないため、第三者がコンテンツデータAを不正に取得することが防止される。また、検査領域以外の領域が、エラー検出(検査)のために読み出されることがない。メモリ71の読み出し負荷を削減することができるため、リードディスターブ現象を抑制することができる。
【0063】
{5.エラー発生データ75Aの転送}
以下、エラー発生データ75Aを集計サーバ1へ送信する情報処理端末4の動作を詳しく説明する。
図6は、エラー発生データ75Aを集計サーバ1へ送信する情報処理端末4の動作を示すフローチャートである。
【0064】
{5.1.エラー発生データ75Aの集計サーバ1への転送}
情報処理端末4は、電源がオン、あるいは電源のオフが指示されたときに、
図6に示す処理を開始する。
【0065】
最初に、情報処理端末4は、メモリ71のエラー発生データ75Aを、メモリカード7Aから取得する(ステップS101)。ステップS101の処理は、
図5に示すステップS3の処理に対応する。具体的には、エラー状況通知部46は、メモリコントローラ72に対して、エラー発生データ75Aの出力を指示する。メモリコントローラ72は、エラー発生データ75Aをメモリ71から読み出して、情報処理端末4へ出力する。
【0066】
図7は、エラー発生データ75Aの記録内容を示す図である。メモリコントローラ72は、メモリ71からデータを読み出すたびに、読み出したデータに対してエラー検出処理を行う。エラー検出結果が、エラー発生データ75Aに反映される。
【0067】
図7に示すように、エラー発生データ75Aには、メモリ71に固有のメモリIDと、エラー発生データ75Aの作成時刻と、メモリ71に記録されたコンテンツデータAのタイトル名(コンテンツA)が記録される。また、エラー発生データ75Aには、メモリカード7Aの起動時間と、メモリカード7Aの起動回数とが記録される。起動時間は、メモリカード7Aが挿入された情報処理端末4において電源が投入されていた時間である。起動回数は、メモリカード7Aが挿入された情報処理端末4において電源が投入された回数である。起動時間及び起動回数は、メモリ71の使用状況を示すデータである。
【0068】
エラー発生データ75Aには、メモリ71の全ブロックの中で、エラービット数が上位5位のブロックのアドレスが記録される。エラー発生データ75Aに記録されるブロックのアドレスは、上位5位のブロックのアドレスに限定されない。上位10位のブロックのアドレスでもよいし、全ブロックのエラービット数を記録してもよい。メモリコントローラ72は、メモリ71の各ブロックのアドレスと、各ブロックのエラービット数とが記録されたテーブルを保持している。テーブルは、メモリ71から読み出されたデータにエラーが検出されるたびに更新される。メモリコントローラ72は、更新されたテーブルを参照して、エラービット数が上位5位のブロックのアドレスを、エラー発生データ75Aに記録する。
【0069】
情報処理端末4は、メモリカード7Aから取得したエラー発生データ75Aを記憶部43に格納する。
図8は、情報処理端末4の記憶部43に格納されるデータを示す図である。
図8に示すように、記憶部43は、エラー発生データ75A,75B,75Cと、検査領域通知データ25A,25B,25Cと、間接送信データ76,76,・・・と、送信管理データ77とを格納する。検査領域通知データ25A〜25C、間接送信データ76、及び送信管理データ77の詳細は、後述する。
【0070】
エラー発生データ75B,75Cは、それぞれ、コンテンツデータB,C(
図1参照)が記録されたメモリカード7B,7Cで作成される。メモリカード7B,7Cが情報処理端末4に挿入されているときに、情報処理端末4は、エラー発生データ75B,75Cをメモリカード7B,7Cから取得して記憶部43に格納する。
【0071】
再び、
図6を参照する。エラー状況通知部46は、集計サーバ1へアクセス可能か否かを判断する(ステップS102)。たとえば、エラー状況通知部46は、予め設定されたユーザID及びパスワードを集計サーバ1へ送信してログインを要求する。エラー状況通知部46は、集計サーバ1からの応答の有無に基づいて、集計サーバ1へアクセス可能か否かを判断する。
【0072】
集計サーバ1へアクセスできない場合(ステップS102においてNo)、情報処理端末4は、間接送信処理を実行する(ステップS108)。間接送信処理は、記憶部43に格納されたエラー発生データ75A〜75Cを情報処理端末5などに送信する処理である。情報処理端末5は、受信したエラー発生データ75A〜75Cを間接送信データとして集計サーバ1へ送信する。間接送信処理(ステップS108)の詳細は、後述する。
【0073】
集計サーバ1からログインを許可する応答を受信した場合、エラー状況通知部46は、集計サーバ1へアクセスできると判断する(ステップS102においてYes)。エラー状況通知部46は、送信管理データ77を参照して、エラー発生データ75A〜75Cの中で未送信のデータがあるか否かを確認する(ステップS103)。
【0074】
図9は、送信管理データ77を示す図である。送信管理データ77は、エラー発生データ75A〜75Cが集計サーバ1または他の情報処理端末に送信されたか否かを示すデータである。
図9に示すように、エラー発生データ75Aの送信済みフラグは、集計サーバ1及び他の情報処理端末のいずれにも送信されていないことを示す「0」に設定されている。エラー発生データ75Bの送信済みフラグは、間接送信処理により他の情報処理端末に既に送信されたことを示す「1」に設定されている。エラー発生データ75Cの送信済みフラグは、集計サーバ1に既に送信されたことを示す「2」に設定されている。
【0075】
エラー状況通知部46は、
図9に示す送信管理データ77を参照して、エラー発生データ75A,75Bが集計サーバ1へ送信されていないことを確認する(ステップS103においてYes)。エラー状況通知部46は、エラー発生データ75A,75Bを集計サーバ1へ送信する(ステップS104)。
【0076】
エラー発生データ75Bは、間接送信処理(ステップS108)により、既に他の情報処理端末へ送信されている。しかし、情報処理端末4は、他の情報処理端末がエラー発生データ75Bを集計サーバ1へ送信したか否かを確認することができない。このため、エラー状況通知部46がエラー発生データ75Bを集計サーバ1へ送信することにより、集計サーバ1が、確実にエラー発生データ75Bを取得できるようにしている。
【0077】
エラー状況通知部46は、送信管理データ77を更新する(ステップS105)。集計サーバ1へ送信されたエラー発生データ75A,75Bの送信済みフラグが、集計サーバ1へ送信されたことを示す「2」に更新される。
【0078】
ステップS103に戻る。集計サーバ1へ送信していないエラー発生データが存在しない場合(ステップS103においてNo)、情報処理端末4は、ステップS106に進む。
【0079】
エラー状況通知部46は、記憶部43に間接送信データ76(
図8参照)が格納されているか否かを確認する(ステップ106)。
【0080】
間接送信データ76は、たとえば、情報処理端末5が間接送信処理(ステップS108)を実行することにより、情報処理端末4へ送信したエラー発生データである。間接送信データ76,76が記憶部43に格納されているため(ステップS106においてYes)、エラー状況通知部46は、間接送信データ76,76を集計サーバ1へ送信する(ステップS107)。ステップS107の処理後、記憶部43に格納された間接送信データ76,76は、削除される。間接送信データ76が記憶部43に格納されていない場合(ステップS106においてNo)、情報処理端末4は、
図6に示す処理を終了する。
【0081】
このように、情報処理端末4は、メモリカード7A〜7Cが挿入された場合、メモリカード7A〜7Cで作成されたエラー発生データ75A〜75Cを取得して集計サーバ1へ送信する。これにより、集計サーバ1は、各情報処理端末4から送信されるエラー発生データ75A〜75Cに基づいて、各コンテンツデータが記録されたメモリにおいて、ビットエラーが発生しやすいブロックを特定することができる。
【0082】
{5.2.間接送信処理(ステップS108)}
以下、間接送信処理(ステップS108)について詳しく説明する。間接送信処理は、情報処理端末4が集計サーバ1にアクセスできないとき(ステップS102においてNo、
図6参照)に実行される処理であり、エラー発生データを他の情報処理端末へ送信する処理である。
【0083】
図10は、間接送信処理を実行するときの情報処理端末4の動作を示すフローチャートである。最初に、検索部48は、所定の時間を経過したか否かを確認する(ステップS201)。電源のオフが指示されたときに、集計サーバ1にアクセスできなかった場合、情報処理端末4は、スリープ状態に移行して、ステップS201を実行する。
【0084】
所定の時間を経過した場合(ステップS201においてYes)、検索部48は、通信可能な他の情報処理端末を検索する(ステップS202)。つまり、検索部48は、情報処理端末4と直接通信することができる機能と、集計サーバ1にアクセスする機能とを有する装置を検索する。
【0085】
情報処理端末5が他の情報処理端末として検出された場合(ステップS203においてYes)、エラー状況通知部46は、送信済みフラグが「0」に設定されたエラー発生データが存在するか否かを確認する(ステップS204)。
図9に示すように、エラー発生データ75Aの送信済みフラグが「0」に設定されているため(ステップS204においてYes)、エラー状況通知部46は、エラー発生データ75Aの格納が可能か否かを確認する確認メッセージを情報処理端末5に送信する(ステップS205)。
【0086】
情報処理端末4は、情報処理端末5からエラー発生データ75Aを格納できないことを通知する応答メッセージを受信した場合(ステップS206においてNo)、ステップS201に戻る。
【0087】
一方、情報処理端末5からエラー発生データ75Aの格納が可能であることを通知する応答メッセージを受信した場合(ステップS206においてYes)、エラー状況通知部46は、エラー発生データ75Aを情報処理端末5へ送信する(ステップS207)。送信管理データ77において、エラー発生データ75Aの送信済みフラグが、「1」に更新される(ステップS208)。これにより、間接送信処理が終了する。
【0088】
このように、情報処理端末4は、集計サーバ1にアクセスできない場合、情報処理端末5へエラー発生データ75Aを送信する。情報処理端末4が集計サーバ1へアクセスできない状態が継続したとしても、情報処理端末4は、エラー発生データ75Aを、情報処理端末5を経由させて集計サーバ1へ送信することが可能となる。
【0089】
図10に示す処理では、情報処理端末4は、通信可能な情報処理端末を検出するまで(ステップS203においてYes)、ステップS201〜S203を繰り返している。しかし、情報処理端末4は、ステップS201〜S203の処理を予め設定された所定の回数繰り返した場合、
図10に示す処理を終了してもよい。この場合、情報処理端末4は、
図6に示す処理を実行して、集計サーバ1に対するアクセスを再び試みてもよい。
【0090】
{5.3.間接送信データの受信}
図11は、情報処理端末4からエラー発生データ75Aを受信したときの情報処理端末5の動作を示すフローチャートである。
【0091】
図11に示すように、情報処理端末5は、エラー発生データ75Aの格納が可能か否かを確認する確認メッセージを情報処理端末4から受信した場合(ステップS301においてYes)、エラー発生データ75Aを格納できるか否かを確認する(ステップS302)。情報処理端末4〜6には、他の情報処理端末から受信したエラー発生データ(間接送信データ76)を格納できる数(格納許可値)が予め設定されている。
【0092】
情報処理端末5の記憶部に格納された間接送信データ76の数が格納許可値以上である場合(ステップS302においてNo)、情報処理端末5は、情報処理端末4に対して、エラー発生データ75Aを格納できないことを通知する(ステップS306)。
【0093】
一方、情報処理端末5の記憶部に格納された間接送信データ76の数が格納許可値よりも小さい場合(ステップS302においてYes)、情報処理端末5は、情報処理端末4に対して、エラー発生データ75Aを格納できることを通知する(ステップS303)。情報処理端末5は、エラー発生データ75Aを情報処理端末4から受信した場合(ステップS304においてYes)、受信したエラー発生データ75Aを間接送信データ76として記憶部に格納する(ステップS305)。
【0094】
図10及び
図11に示す処理において、情報処理端末4は、確認メッセージを送信する(ステップS205)ことなく、エラー発生データ75Aを情報処理端末5へ送信してもよい。情報処理端末5は、受信したエラー発生データ75Aを記憶部に格納できない場合、受信エラーを情報処理端末4に通知する。
【0095】
{6.エラー発生データの集計}
以下、エラー発生データを集計する集計サーバ1の動作を説明する。集計サーバ1は、エラー発生データ75A,75A,・・・を、情報処理端末4〜6から受信する。検査領域設定部13は、予め設定された日時に、受信したエラー発生データ75Aを集計する。
【0096】
しかし、情報処理端末4がエラー発生データ75Aの間接送信処理(ステップS108)を実行した場合、集計サーバ1は、情報処理端末4,5からエラー発生データ75Aを重複して受信することが考えられる。このため、集計サーバ1は、エラー発生データ75Aに記録されたメモリIDと作成時刻とに基づいて、内容が重複する複数のエラー発生データ75A,75A,・・・が存在するか否かを確認する。内容が重複する複数のエラー発生データ75A,75A,・・・が存在する場合、複数のエラー発生データ75A,75A,・・・のうち、いずれか一つが集計に用いられる。
【0097】
検査領域設定部13は、集計結果に基づいて、コンテンツデータAを格納するメモリにおける検査領域を設定する。検査領域設定部13は、同様に、エラー発生データ75B,75Cを集計することにより、コンテンツデータB,Cをそれぞれ格納するメモリにおける検査領域を設定する。
【0098】
メモリカード7A,7A,・・・が備えるメモリ71は、同一の論理アドレス空間を有する。複数のメモリ71,71,・・・にコンテンツデータAがそれぞれ書き込まれる場合、同一のアドレスを有するブロックには、同一のデータが書き込まれる。このため、エラー発生データ75Aに記録されたエラーブロックのアドレスを集計することにより、コンテンツデータAが書き込まれたメモリ71において、エラーが発生しやすい領域を特定することが可能となる。
【0099】
図12は、検査領域管理データ15Aを示す図である。検査領域管理データ15Aは、コンテンツデータAを格納するメモリ71における検査領域が設定されたデータである。
図12に示すように、検査領域管理データ15Aは、全体の集計結果、起動回数、及び起動時間に基づいて設定された個別検査領域データ16A,16A,・・・を備える。
【0100】
バージョン情報は、検査領域管理データ15Aが変更されるたびに更新される。検査領域管理データ15Aは、バージョン情報に代えて、検査領域管理データ15Aの更新日を記録してもよい。
【0101】
全体の集計結果に基づく検査領域の設定方法を説明する。検査領域設定部13は、受信した全てのエラー発生データ75Aに記録されたエラーブロックをカウントする。このとき、エラー発生データ75Aに記録されている起動回数及び起動時間は、考慮されない。検査領域設定部13は、全体の集計結果に基づく検査領域として、カウント数が上位3位のブロックを設定する。上位3位のブロックのアドレスが、個別検査領域データ16Aとして、検査領域管理データ15Aの全体集計の欄に記録される。
【0102】
起動回数に基づく検査領域の設定方法を説明する。検査領域設定部13は、エラー発生データ75Aの起動回数を確認して、エラー発生データ75Aを、起動回数1〜100回、101〜200回、201回以上の3つのグループのいずれかに分類する。たとえば、
図7に示すエラー発生データ75Aは、起動回数1〜100回のグループに分類される。検査領域設定部13は、起動回数のグループごとに、エラー発生データ75Aに記録されたエラーブロックをカウントする。検査領域設定部13は、起動回数のグループごとに、カウント数が上位3位のブロックを検査領域として設定する。起動回数の各グループで検査領域に設定されたブロックのアドレスが、個別検査領域データ16Aとして、検査領域管理データ15Aの起動回数の欄に記録される。
【0103】
起動時間に基づく検査領域の設定方法を説明する。検査領域設定部13は、エラー発生データ75Aの起動時間を確認して、エラー発生データ75Aを、起動時間0時間以上50時間未満、50時間以上100時間未満、100時間以上の3つのグループのいずれかに分類する。たとえば、
図7に示すエラー発生データ75Aは、50時間以上100時間未満のグループに分類される。検査領域設定部13は、起動時間のグループごとに、エラー発生データ75Aに記録されたエラーブロックをカウントする。検査領域設定部13は、起動時間のグループごとに、カウント数が上位3位のブロックを検査領域として設定する。起動時間の各グループで検査領域に設定されたブロックのアドレスが、個別検査領域データ16Aとして、検査領域管理データ15Aの起動時間の欄に記録される。
【0104】
このように、検査領域設定部13は、メモリ71の使用状況を示す起動時間、起動回数に基づいて、検査領域を設定する。なお、メモリ71の使用状況を示すパラメータとして、起動時間、起動回数以外のパラメータを用いてもよい。たとえば、ユーザの操作に応じてユーザに付与されるレベルや、コンテンツデータAに基づいて作成されたコンテンツページのうち、ユーザに対して閲覧が許可されたコンテンツページの数を用いてもよい。この場合、エラー発生データ75Aには、レベルや、ユーザが閲覧可能なコンテンツページの数などを特定する情報が記録される。
【0105】
{7.個別検査領域データの取得}
以下、情報処理端末4が、個別検査領域データ16Aを取得する処理について詳しく説明する。情報処理端末4は、個別検査領域データ16Aを含む検査領域通知データ25A(
図5参照)を、集計サーバ1または他の情報処理端末から取得する。
【0106】
{7.1.集計サーバ1からの取得}
図13は、集計サーバ1から検査領域通知データ25Aを取得するときの情報処理端末4の動作を示すフローチャートである。情報処理端末4は、電源投入時または電源切断時など、予め設定されたタイミングで
図13に示す処理を開始する。最初に、検査領域取得部47が、集計サーバ1へアクセスできるか否かを確認する(ステップS401)。ステップS401の処理は、ステップS102(
図6参照)と同様である。つまり、検査領域取得部47は、集計サーバ1に対してログインを要求する。検査領域取得部47は、集計サーバ1からの応答の有無によって、集計サーバ1へアクセス可能か否かを判断する。
【0107】
集計サーバ1へアクセスできない場合(ステップS401においてNo)、検査領域取得部47は、他の情報処理端末から検査領域通知データ25Aを取得する間接取得処理を開始する(ステップS406)。間接取得処理の詳細は後述する。
【0108】
集計サーバ1へアクセスできる場合(ステップS401においてYes)、検査領域取得部47は、取得条件データ35Aを集計サーバ1に送信する(ステップS402)。ステップS402の処理は、
図5に示すステップS6の処理に対応する。検査領域取得部47は、ステップS402の処理により、検査領域通知データ25Aの送信を集計サーバ1に要求する。
【0109】
取得条件データ35Aは、個別検査領域データ16Aの取得条件が設定されたデータである。検査領域取得部47は、エラー発生データ75A(
図7参照)を用いて、取得条件データ35Aを作成する。たとえば、起動時間に基づくメモリ71の検査領域を要求する場合、検査領域取得部47は、コンテンツデータAのタイトルと、メモリ71の起動時間(57時間)とが記録された取得条件データ35Aを作成する。
【0110】
集計サーバ1が取得条件データ35Aを受信したときの動作を説明する。取得条件として、コンテンツデータAのタイトルと、メモリ71の起動時間(57時間)が設定されていた場合、集計サーバ1は、検査領域管理データ15Aから、起動時間が50時間以上100時間未満に対応する個別検査領域データ16Aを抽出する。集計サーバ1は、抽出した検査領域データ16Aを含む検査領域通知データ25Aを作成する。検査領域通知データ25Aが、集計サーバ1から情報処理端末4へ送信される。
【0111】
図14は、検査領域通知データ25Aを示す図である。検査領域通知データ25Aは、コンテンツデータAのコンテンツタイトルと、検査領域管理データ15Aのバージョン情報と、個別検査領域データ16Aとが記録されたデータである。
【0112】
再び、
図13を参照する。検査領域通知データ25Aを受信した場合(ステップS403においてYes)、検査領域取得部47は、受信した検査領域通知データ25Aのバージョン情報と、記憶部43に格納されている検査領域通知データ25A(格納済みデータ)のバージョン情報とを比較する(ステップS404)。具体的には、受信した検査領域通知データ25Aのバージョン番号が、格納済みデータのバージョン番号よりも大きい場合、検査領域取得部47は、受信した検査領域通知データ25Aが新しいデータであると判断する。
【0113】
受信した検査領域通知データ25Aが新しいデータでない場合(ステップS404においてNo)、情報処理端末4は、
図13に示す処理を終了する。これは、格納済みデータに基づいて、メモリ71の検査が既に実行されていると考えられるためである。
【0114】
受信した検査領域通知データ25Aが新しいデータである場合(ステップS404においてYes)、格納済みデータが、受信した検査領域通知データ25Aに更新される。メモリカードインタフェース45Aは、記憶部43に新たに格納された検査領域通知データ25Aを、メモリコントローラ72に出力する(ステップS405)。
【0115】
メモリカードインタフェース45Aから検査領域通知データ25Aが出力されたときのメモリコントローラの動作について説明する。検査部73は、検査領域通知データ25Aから個別検査領域データ16Aを抽出する。検査部73は、個別検査領域データ16Aに設定された論理アドレスに基づいて、検査領域のブロックを特定する。検査部73は、検査領域のブロックからデータを読み出し、読み出したデータに対してエラー検出処理を行う。再書き込み部74は、読み出したデータからエラーが検出された場合、検査対象のブロックを再書き込みするか否かを判定する。たとえば、検査領域のブロックから検出されたエラービット数が、予め設定された閾値を超えた場合、再書き込み部74は、検査領域のブロックを再書き込みすると判定する。再書き込み部74は、再書き込みすると判定した場合、読み出したデータに対してエラー訂正処理を行い、訂正されたデータを検査領域のブロックに書き戻す。
【0116】
このように、メモリコントローラ72は、情報処理端末4を介して集計サーバ1から、個別検査領域データ16Aを取得し、個別検査領域データ16Aで指定された検査領域を検査する。エラーが発生しやすい領域を確実に検査することができるため、メモリ71において、エラー訂正が不可能なブロックが発生することを防止することができる。検査部73は、個別検査領域データ16Aに設定されたブロックを検査する。このため、検査対象のブロックを決定するための回路をメモリコントローラ71に実装しなくてもよい。また、検査部73は、個別検査領域データ16Aに設定されたアドレスのブロックを検査すればよく、他のブロックのアドレスを検査しなくてもよい。したがって、エラー検出のための読み出し処理の回数を削減でき、フラッシュメモリの負荷を低減すること可能となる。
【0117】
検査領域取得部47は、検査領域通知データ25Aを取得する際に、コンテンツデータB,Cが記録されたメモリカード7B,7Cに関する検査領域通知データ25B,25Cも取得する。記憶部43において、検査領域通知データ25B,25Cが更新された場合、情報処理端末4は、メモリカード7B,7Cがそれぞれ挿入されたときに、検査領域通知データ25B,25Cをメモリカード7B,7Cに出力する。
【0118】
{7.2.間接取得処理}
間接取得処理(ステップS406)について、詳しく説明する。間接取得処理は、検査領域取得部47が集計サーバ1にアクセスできないとき(ステップS402においてNo、
図13参照)に実行される処理であり、検査領域通知データを他の情報処理端末から取得する処理である。以下、情報処理端末4が、コンテンツデータAに対応する検査領域通知データ25Aを情報処理端末5から取得する場合を例に説明する。
【0119】
図15は、間接取得処理を実行する情報処理端末4の動作を示すフローチャートである。情報処理端末4は、電源のオフを指示された場合、スリープ状態に移行した後に、間接取得処理を実行する。検索部48は、所定の時間を経過した場合(ステップS501においてYes)、検索部48は、通信可能な他の情報処理端末を検索する(ステップS502)。ステップS502の処理は、ステップS202の処理と同じ処理である。
【0120】
情報処理端末5が他の情報処理端末として検出された場合(ステップS503においてYes)、検査領域取得部47は、検査領域通知データ25Aの送信を要求するために、取得条件データ35Aを情報処理端末5へ送信する(ステップS504)。なお、情報処理端末4は、ステップS501〜S503の処理を所定回数繰り返しても、他の情報処理端末を検出できない場合、
図15に示す処理を終了してもよい。この場合、情報処理端末4は、集計サーバ1へのアクセスを再び試みてもよい。
【0121】
情報処理端末5は、取得条件データ35Aを受信した場合、取得条件を満たす検査領域通知データ25Aを保持しているか否かを確認する。保持していない場合、情報処理端末5は、エラーメッセージを情報処理端末4へ送信する。たとえば、情報処理端末5が、メモリ71の起動回数に基づく検査領域が設定された検査領域通知データ25Aを保持しているのにも関わらず、メモリ71の起動時間が設定された取得条件データ35Aを受信するケースが考えられる。この場合、情報処理端末5は、取得条件を満たす検査領域通知データ25Aを送信することができないため、エラーメッセージを送信する。一方、情報処理端末5は、取得条件を満たす検査領域通知データ25Aを保持している場合、検査領域通知データ25Aを情報処理端末4へ送信する。
【0122】
情報処理端末4は、エラーメッセージを受信した場合(ステップS505においてNo)、
図15に示す処理を終了する。
【0123】
一方、情報処理端末4が検査領域通知データ25Aを受信した場合(ステップS505においてYes)、ステップS504の処理が実行される。すなわち、検査領域取得部47は、受信した検査領域通知データ25Aが記憶部43に格納された検査領域通知データ25A(格納済みデータ)よりも新しいか否かを確認する(ステップS506)。ステップS504の処理は、
図13に示すステップS404の処理と同じ処理である。
【0124】
受信した検査領域通知データ25Aが新しいデータである場合(ステップS506においてYes)、格納済みデータが、受信した検査領域通知データ25Aに更新される。メモリカードインタフェース45Aは、受信した検査領域通知データ25Aを、メモリコントローラ72に出力する(ステップS507)。一方、受信した検査領域通知データ25Aが新しいデータでない場合(ステップS506においてNo)、検査領域取得部47は、
図15に示す処理を終了する。
【0125】
図15では、検索部48により検出された情報処理端末から、検査領域通知データ25Aを取得する例を説明した。しかし、情報処理端末4は、他の情報処理端末4を検索することなく、検査領域通知データ25Aを取得してもよい。たとえば、情報通信端末4は、電話帳などのデータあるいは、コンテンツAに関するデータなどを情報処理端末5から受信中である場合、ステップS505〜S507の処理を実行してもよい。情報処理端末4は、ユーザの指示に応じて情報処理端末5との通信を開始した場合に、ステップS505〜S507の処理を実行してもよい。すなわち、情報処理端末4は、他の情報処理端末と通信中である場合、通信中の他の情報処理端末に対して、検査領域通データ25Aの送信を要求してもよい。
【0126】
このように、情報処理端末4は、集計サーバ1から検査領域通知データ25Aを取得できない場合、他の情報処理端末から検査領域通知データ25Aを取得する。これにより、情報処理端末4は、集計サーバ1にアクセスできなくても、メモリ71に記録されたデータの信頼性を向上させることができる。
【0127】
以上説明したように、本実施の形態に係るデータ検査システム100において、情報処理端末4は、メモリ71でエラーが発生したブロックのアドレスをエラー発生データ75Aとして集計サーバ1に送信する。集計サーバ1は、様々な情報処理端末から受信したエラー発生データ75Aを集計して、メモリ71における検査領域を設定する。情報処理端末4は、検査領域が設定された個別検査領域データ75Aを取得して、メモリコントローラ72に出力する。
【0128】
検査領域は、メモリ71においてエラーが発生しやすい領域である。メモリコントローラ72は、訂正不可能なエラーがメモリ71で発生する前に、エラーの発生しやすい領域を検査することが可能となる。したがって、メモリ71に格納されるデータの信頼性を確保することができる。メモリコントローラ72は、個別検査領域データ16Aに設定されたブロックを検査すればよいため、検査対象のブロックを決定するための回路を備えなくてもよい。また、メモリコントローラ72は、個別検査領域データ16Aに設定されたアドレスのブロック以外のアドレスを検査しなくてもよい。したがって、エラー検出のためのブロックの読み出し処理の回数を削減でき、フラッシュメモリの負荷を低減すること可能となる。
【0129】
上記実施の形態において、集計サーバ1の検査領域設定部13が、情報処理端末から受信したエラー発生データに基づいて、コンテンツデータごとの検査領域を設定する例を説明した。しかし、検査領域設定部13は、予め設定された検査領域を情報処理端末に通知してもよい。たとえば、メモリ71の構造上、ビットエラーが発生しやすいと予測される領域(予測領域)が既に明らかである場合、予測領域を予め検査領域に設定しておいてもよい。この場合、情報処理端末4〜6は、検査領域通知データを取得する処理のみを実行すればよい。あるいは、集計サーバ1は、エラー発生データに基づいて設定される検査領域と、予測領域とが設定された検査領域通知データを情報処理端末4〜6に送信してもよい。
【0130】
上記実施の形態において、コンテンツの種別ごとに検査領域管理データを作成する例を説明した。しかし、コンテンツの種別ごと作成された検査領域管理データを、さらにメモリ71のメーカごとに区分して作成してもよい。メモリ71の構造がメーカによって異なるため、エラーブロックが発生しやすい領域もメーカによって変化する可能性があるためである。この場合、検査領域取得部47は、取得条件データ35Aにメモリ71のメーカ名を設定する。これにより、集計サーバ1は、メモリ71のメーカ名を用いて、個別検査領域データ16Aを抽出することが可能となる。
【0131】
上記実施の形態において、集計サーバ1は、取得条件データ35Aに設定された取得条件を満たす検査領域データ16Aを情報処理端末4に送信する例を説明した。しかし、集計サーバ1は、検査領域管理データ15Aを情報処理端末4〜6に送信してもよい。この場合、情報処理端末4は、検査領域通知データ25Aの間接取得処理を実行するときに、取得条件データ35を満たす検査領域通知データ25Aを確実に取得することができる。
【0132】
上記実施の形態において、エラー状況通知部46がエラー発生データ75Aを間接送信処理により情報処理端末5に送信した場合、エラー発生データ75Aの送信済みフラグを「0」から「1」に更新する例を説明した(
図9、
図10参照)。しかし、エラー状況通知部46は、間接送信処理(
図10参照)を実行した際に、エラー発生データ75Aの送信済みフラグを「1」に変更せず、「0」のままとしてもよい。この場合、エラー状況通知部46は、エラー発生データ75Aを集計サーバ1へ送信するまで、間接送信処理を一定の間隔で繰り返せばよい。上記に実施の形態に比べて、エラー発生データ75Aを様々な経路で集計サーバ1へ送信することができるため、エラー発生データ75Aを確実に集計サーバ1へ送信することができる。
【0133】
また、エラー状況通知部46は、エラー発生データ75Aの送信済みフラグが「1」に設定された後も、間接送信処理を予め設定された回数分繰り返し実行してもよい。この場合、エラー状況通知部46は、間接送信処理の実行回数をカウントするカウンタを備える。上記に実施の形態に比べて、エラー発生データ75Aを様々な経路で送信することができるため、エラー発生データ75Aを確実に集計サーバ1へ送信することができる。