(57)【要約】【課題】信頼性を向上させることができるメモリ装置、サーバ装置、及びメモリ制御方法を提供することである。【解決手段】実施形態のメモリ装置は、複数のメモリユニットと、誤り訂正処理部と、メモリ制御部とを備える。複数のメモリユニットは、複数の半導体メモリをそれぞれが有し、並列に書き込み及び読み出しが可能である。誤り訂正処理部は、入力されたコンテンツデータを誤り訂正符号を含む記録用データに変換するとともに、複数のメモリユニットから読み出された記録用データに誤り訂正を含む変換を行って、コンテンツデータを復号する。メモリ制御部は、記録用データを複数のメモリユニットにまたがる複数のエリアのうちのいずれかのエリアに書き込むとともに、記録用データをエリアに書き込む際に、異常が検出された半導体メモリの数が所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定する。【選択図】図２
2015055910.tif 000002
【特許請求の範囲】
【請求項１】
複数の半導体メモリをそれぞれが有し、並列に書き込み及び読み出しが可能な複数のメモリユニットと、
入力されたコンテンツデータを当該コンテンツデータ及び誤り訂正符号を含む記録用データに変換するとともに、前記複数のメモリユニットから読み出された前記記録用データに誤り訂正を含む変換を行って、コンテンツデータを復号する誤り訂正処理部と、
所定の数の分割データに分割された前記記録用データを前記複数のメモリユニットにまたがる複数のエリアのうちのいずれかのエリアに書き込むとともに、分割された前記記録用データを前記エリアから読み出すメモリ制御部であって、分割された前記記録用データを前記いずれかのエリアに書き込む際に、異常が検出された前記半導体メモリの数が、前記誤り訂正処理部によって訂正可能な所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定するメモリ制御部と
を備えるメモリ装置。
【請求項２】
前記メモリ制御部は、
分割された前記記録用データを前記いずれかのエリアに書き込む際に、前記所定の個数を超える前記半導体メモリの異常が検出された回数が、所定の閾値回数に達した場合に、当該異常の検出回数が前記所定の閾値回数に達した当該エリアを使用禁止にする
請求項１に記載のメモリ装置。
【請求項３】
前記メモリ制御部は、
前記所定の個数を超える前記半導体メモリの異常が検出された回数が、連続して第１の閾値回数に達した場合に、当該エリアを使用禁止にする
請求項２に記載のメモリ装置。
【請求項４】
前記メモリ制御部は、
前記所定の個数を超える前記半導体メモリの異常が検出された回数が、所定の期間における累積回数として第２の閾値回数に達した場合に、当該エリアを使用禁止にする
請求項２又は請求項３に記載のメモリ装置。
【請求項５】
前記メモリ制御部は、
前記複数のメモリユニットのそれぞれが有する部分メモリ制御部であって、前記複数のメモリユニットのそれぞれに対応した部分メモリ制御部を備え、
部分メモリ制御部は、
前記エリアのうちの１つの前記メモリユニットに対応する部分エリアに前記分割データを書き込む際に、前記部分エリアにおいて異常が検出された前記半導体メモリの個数を示す異常個数を検出し、
検出した当該異常個数と、前記複数のメモリユニット間において相互に通信して取得した各部分エリアにおける前記異常個数とに基づいて、前記エリアにおける前記異常個数の合計を算出し、
算出した当該異常個数の合計に基づいて、異常が検出された前記半導体メモリの数が、前記誤り訂正処理部によって訂正可能な所定の個数以下であるか否かを判定する
請求項１から請求項４のいずれか一項に記載のメモリ装置。
【請求項６】
前記エリアのうちの１つの前記メモリユニットに対応する部分エリアに前記分割データを書き込む際に、前記部分エリアにおいて異常が検出された前記半導体メモリの個数を示す異常個数を取得し、取得した前記異常個数に基づいて、前記エリアにおける前記異常個数の合計を算出する算出部を備え、
前記メモリ制御部は、
前記複数のメモリユニットのそれぞれが有する部分メモリ制御部であって、前記複数のメモリユニットのそれぞれに対応した部分メモリ制御部を備え、
前記部分メモリ制御部は、
前記部分エリアに前記分割データを書き込む際に、前記部分エリアにおいて異常が検出された前記半導体メモリの個数を示す異常個数を検出し、検出した当該異常個数を前記算出部に出力するとともに、前記算出部が算出した前記異常個数の合計に基づいて、異常が検出された前記半導体メモリの数が、前記所定の個数以下であるか否かを判定する
請求項１から請求項４のいずれか一項に記載のメモリ装置。
【請求項７】
複数の半導体メモリをそれぞれが有し、並列に書き込み及び読み出しが可能な複数のメモリユニットと、
所定の数の分割データに分割されたコンテンツデータに基づく記録用データを前記複数のメモリユニットにまたがる複数のエリアのうちのいずれかのエリアに書き込むとともに、分割された前記記録用データを前記エリアから読み出すメモリ制御部であって、分割された前記記録用データを前記いずれかのエリアに書き込む際に、前記複数の半導体メモリのうち、いずれかの半導体メモリの異常が検出された回数が、所定の閾値回数に達した場合に、当該異常の検出回数が前記所定の閾値回数に達した当該エリアを使用禁止にするメモリ制御部と
を備えるメモリ装置。
【請求項８】
請求項１から請求項７のいずれか一項に記載のメモリ装置と、
コンテンツデータを取得する取得部と、
前記取得部によって取得した前記コンテンツデータを前記メモリ装置が有する前記半導体メモリに記録させるとともに、前記半導体メモリに記録された前記コンテンツデータを前記メモリ装置から読み出すサーバ制御部と、
前記メモリ装置から読み出された前記コンテンツデータを出力する出力部と
を備えるサーバ装置。
【請求項９】
複数の半導体メモリをそれぞれが有し、並列に書き込み及び読み出しが可能な複数のメモリユニットを備えるメモリ装置のメモリ制御方法であって、
誤り訂正処理部が、入力されたコンテンツデータを当該コンテンツデータ及び誤り訂正符号を含む記録用データに変換するステップと、
メモリ制御部が、所定の数の分割データに分割された前記記録用データを前記複数のメモリユニットにまたがる複数のエリアのうちのいずれかのエリアに書き込むとともに、分割された前記記録用データを前記エリアに書き込む際に、異常が検出された前記半導体メモリの数が、前記誤り訂正処理部によって訂正可能な所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定するステップと、
前記メモリ制御部が、分割された前記記録用データを前記エリアから読み出すステップと、
前記誤り訂正処理部が、前記複数のメモリユニットから読み出された前記記録用データに誤り訂正を含む変換を行って、コンテンツデータを復号するステップと
を含むメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリ装置、サーバ装置、及びメモリ制御方法に関する。
【背景技術】
【０００２】
近年、フラッシュメモリなどの半導体メモリを備えたサーバ装置が知られている（例えば、特許文献１を参照）。このようなサーバ装置は、複数の半導体メモリを有するメモリユニットを並列処理することにより、スループットを高めることが可能である。この種のサーバ装置は、例えば、素材データなどのコンテンツデータを記録・再生するサーバ装置として好適に使用される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２０４１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のサーバ装置は、信頼性が十分でない場合があった。
本発明が解決しようとする課題は、信頼性を向上させることができるメモリ装置、サーバ装置、及びメモリ制御方法を提供することである。
【課題を解決するための手段】
【０００５】
実施形態のメモリ装置は、複数のメモリユニットと、誤り訂正処理部と、メモリ制御部とを備える。複数のメモリユニットは、複数の半導体メモリをそれぞれが有し、並列に書き込み及び読み出しが可能である。誤り訂正処理部は、入力されたコンテンツデータを当該コンテンツデータ及び誤り訂正符号を含む記録用データに変換するとともに、前記複数のメモリユニットから読み出された前記記録用データに誤り訂正を含む変換を行って、コンテンツデータを復号する。メモリ制御部は、所定の数の分割データに分割された前記記録用データを前記複数のメモリユニットにまたがる複数のエリアのうちのいずれかのエリアに書き込むとともに、分割された前記記録用データを前記エリアから読み出すメモリ制御部であって、分割された前記記録用データを前記いずれかのエリアに書き込む際に、異常が検出された前記半導体メモリの数が、前記誤り訂正処理部によって訂正可能な所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態によるビデオサーバの一例を示すブロック図である。
【図２】第１の実施形態によるメモリ装置の一例を示すブロック図である。
【図３】第１の実施形態におけるメモリ装置の書き込み処理の一例を示すフローチャートである。
【図４】第１の実施形態におけるメモリユニットの書き込み処理の一例を示すフローチャートである。
【図５】第１の実施形態におけるメモリ装置の読み出し処理の一例を示すフローチャートである。
【図６】第２の実施形態によるメモリ装置の一例を示すブロック図である。
【図７】第２の実施形態におけるメモリ装置の書き込み処理の一例を示すフローチャートである。
【図８】第２の実施形態におけるメモリユニットの書き込み処理の一例を示すフローチャートである。
【図９】第３の実施形態によるメモリ装置の一例を示すブロック図である。
【図１０】第３の実施形態におけるメモリユニットの書き込み処理の一例を示すフローチャートである。
【図１１】第４の実施形態によるメモリ装置の一例を示すブロック図である。
【図１２】第４の実施形態におけるメモリユニットの書き込み処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態によるサーバ装置及びメモリ装置について図面を参照して説明する。
［第１の実施形態］
本実施形態では、サーバ装置の一例として、映像データなどのコンテンツデータを記録するとともに、記録したコンテンツデータを出力するビデオサーバである実施形態について説明する。
【０００８】
図１は、第１の実施形態によるビデオサーバ１の一例を示すブロック図である。
この図において、ビデオサーバ１は、収録部２と、再生部３と、サーバ制御部４と、メモリ装置１００とを備えている。ビデオサーバ１は、例えば、カメラ、再生デッキ、ノンリニア編集機などからのオンエア用放送番組の素材データを記録（収録）し、オンエア指示にしたがって該当する素材データを選択的に再生（送出）する。ビデオサーバ１は、利用者の操作に基づく指示にしたがい、素材データの書き込み制御、又は読み出し制御が行われる。
【０００９】
収録部２は、例えば、カメラやビデオデッキなどから送られてくる映像信号などの素材データを取得し、取得した素材データを符号化する収録処理を実行する。収録部２は、後述するサーバ制御部４の制御に基づいて、この収録処理を実行し、符号化された素材データをメモリ装置１００に出力する。ここで、素材データには、例えば、映像データ、音声データなどが含まれる。なお、実施形態において、収録部２は、取得部の一例であり、素材データは、コンテンツデータの一例である。
【００１０】
再生部３は、メモリ装置１００から読み出された素材データを復号し、復号した素材データ（例えば、映像信号）を出力する再生処理を実行する。このように、再生部３は、メモリ装置１００から読み出された素材データを出力する。なお、実施形態において、再生部３は、出力部の一例である。
【００１１】
サーバ制御部４は、例えば、ＣＰＵ（Central Processing Unit）などを含むプロセッサであり、ビデオサーバ１を統括的に制御する。サーバ制御部４は、例えば、素材データを収録する場合に、収録部２に対して素材データの取得を指示するとともに、取得した素材データを符号化させる指示をする。そして、サーバ制御部４は、メモリ装置１００に対して素材データの書き込みを指示する。これにより、サーバ制御部４は、収録部２によって取得した素材データをメモリ装置１００が有するフラッシュメモリ６１に記録させるとともに、フラッシュメモリ６１に記録された素材データをメモリ装置１００から読み出す。
また、サーバ制御部４は、例えば、素材データを再生する場合に、メモリ装置１００に対して素材データの読み出しを指示するとともに、再生部３に対して、読み出した素材データを符号化されたデータから復号して、復号した素材データを出力させる指示をする。
【００１２】
メモリ装置１００は、サーバ制御部４の制御に基づいて、素材データを収録（記憶）する記憶装置である。メモリ装置１００は、複数のメモリセット（５−１〜５−Ｐ）を備えている。なお、メモリセット５−１〜５−Ｐは、同一の構成であり、ビデオサーバ１又はメモリ装置１００が備える任意のメモリセットを示す場合、又は特に区別しない場合には、メモリセット５として説明する。
【００１３】
メモリセット５は、メモリ制御ユニット５０と、複数のメモリユニット６（６−１、６−２、・・・、６−Ｎ）とを備えている。なお、メモリユニット６−１〜６−Ｎは、同一の構成であり、ビデオサーバ１又はメモリ装置１００が備える任意のメモリユニットを示す場合、又は特に区別しない場合には、メモリユニット６として説明する。メモリセット５は、サーバ制御部４からの書き込み指示を受けた場合に、メモリ制御ユニット５０の制御に基づいて、収録部２から出力された素材データを複数のメモリユニット６に、並列して書き込む（記憶させる）。また、メモリセット５は、サーバ制御部４からの読み出し指示を受けた場合に、メモリ制御ユニット５０の制御に基づいて、複数のメモリユニット６から並列して素材データを読み出し、読み出した素材データを再生部３に出力する。
ここで、図２を参照して、本実施形態のよるメモリ装置１００及びメモリセット５の構成について、詳細に説明する。
【００１４】
図２は、本実施形態によるメモリ装置１００の一例を示すブロック図である。
この図において、メモリ装置１００は、メモリセット５を備え、メモリセット５は、上述したように、メモリ制御ユニット５０と、複数のメモリユニット６（６−１、６−２、・・・、６−Ｎ）とを備えている。なお、メモリ装置１００は、複数のメモリセット５を備えるが、この図においては、メモリセット５の構成を説明する上で１つのメモリセット５に簡略化して記載している。
【００１５】
複数のメモリユニット６は、複数のフラッシュメモリ６１をそれぞれが有し、並列に書き込み及び読み出しが可能な構成になっている。複数のメモリユニット６は、例えば、複数メモリユニットにまたがるエリアであって、所定の個数のフラッシュメモリ６１により構成されるエリアを複数有しており（例えば、エリアＡ１〜エリアＡＭ）、このエリア単位で並列に書き込み及び読み出しが可能な構成になっている。ここで、エリアとは、所定のサイズのデータを並列に書き込み及び読み出し可能な領域のことである。なお、各エリアは、メモリユニット６単位で並列に書き込み及び読み出し可能な部分エリア（例えば、部分エリアＡ１１）を複数有している。メモリユニット６は、この部分エリア単位で複数のフラッシュメモリ６１に対して、並列にデータを書き込み、並列にデータを読み出す。
なお、図２に示す例では、メモリセット５は、Ｎ個のメモリユニット（６−１〜６−Ｎ）を備えるとともに、Ｍ個のエリア（エリアＡ１〜エリアＡＭ）を有している。メモリユニット６の詳細な構成については、後述する。
【００１６】
メモリ制御ユニット５０は、例えば、ＣＰＵなどを含むプロセッサであり、メモリセット５を統括的に制御する。メモリ制御ユニット５０は、書き込み制御部５１と、読み出し制御部５２とを備えている。
【００１７】
書き込み制御部５１は、メモリセット５に入力された素材データを当該素材データ及び誤り訂正符号を含む記録用データに変換するとともに、複数のメモリユニット６に分散して並列に書き込み処理させるために、記録用データを分割して、複数のメモリユニット６に出力する。また、書き込み制御部５１は、誤り訂正符号化部５１１と、分割処理部５１２とを備えている。
【００１８】
誤り訂正符号化部５１１は、入力された素材データを誤り訂正可能な記録用データに変換する。すなわち、誤り訂正符号化部５１１は、入力された素材データを当該素材データ及び誤り訂正符号を含む記録用データに変換する。誤り訂正符号化部５１１は、例えば、リードソロモン符号による誤り訂正手法に基づいて、素材データを誤り訂正符号化する。具体的に、誤り訂正符号化部５１１は、素材データに基づいて、リードソロモン符号による誤り訂正のための冗長データ（誤り訂正符号）を生成し、生成した冗長データを素材データに付加することで、素材データを誤り訂正符号化する。ここで、上述した記録用データは、素材データに冗長データを付加したデータである。なお、誤り訂正符号化部５１１は、リードソロモン符号による誤り訂正手法により、素材データに、所定の数（例えば、フラッシュメモリ６１の所定の個数）以下の誤りが生じた場合に、誤りを訂正できるように冗長データを生成する。
【００１９】
分割処理部５１２は、誤り訂正符号化部５１１が変換した記録用データを所定の数（例えば、Ｎ個）の分割データに分割し、分割した記録用データ（分割データ）をメモリユニット６に出力する。分割処理部５１２は、記録用データを分割する分割データの数を、メモリユニット６により並列に処理するために、例えば、メモリユニット６の数と等しくなるように分割する。分割処理部５１２から出力された記録用データは、各メモリユニット６によってフラッシュメモリ６１の上述したエリア単位に、並列に記憶（記録）される。
【００２０】
読み出し制御部５２は、複数のメモリユニット６から分割された記録用データ（分割データ）を読み出して統合するとともに、読み出された記録用データを素材データに復号（復元）する。読み出し制御部５２は、復号した素材データを再生部３に出力する。読み出し制御部５２は、統合処理部５２１と、誤り訂正復号部５２２とを備えている。
【００２１】
統合処理部５２１は、複数のメモリユニット６の各部分エリアに記録されている分割された記録用データ（分割データ）を複数のメモリユニット６から読み出して取得する。統合処理部５２１は、エリアから読み出した分割データ（例えば、Ｎ個の分割データ）を統合して、復元した記録用データを誤り訂正復号部５２２に出力する。
【００２２】
誤り訂正復号部５２２は、統合処理部５２１から出力された記録用データに含まれる誤り訂正のための冗長データに基づいて、複数のメモリユニット６から読み出されたデータに誤り（例えば、書き込み時又は読み出し時の異常などによるデータ化け）があるか否かを判定する。誤り訂正復号部５２２は、読み出されたデータに誤り（データ化け）がない場合には、読み出された記録用データから誤り訂正のための冗長データを除いて、素材データを復号する。
【００２３】
また、誤り訂正復号部５２２は、読み出されたデータに誤りがある場合には、さらに誤りの個数が訂正可能な個数以下であるか否かを判定する。誤り訂正復号部５２２は、誤りの個数が訂正可能な個数以下である場合に、誤り訂正の処理を行った上で素材データを復号する。このように、誤り訂正復号部５２２は、複数のメモリユニット６から読み出された記録用データに誤り訂正を含む変換を行って、素材データを復号し、復号した素材データを再生部３に出力する。
【００２４】
また、誤り訂正復号部５２２は、誤りの個数が訂正可能な個数を超えている場合に、例えば、正常な素材データが読み出せないことを示すエラー通知情報をサーバ制御部４に通知するエラー処理を実行する。
【００２５】
なお、本実施形態では、上述した誤り訂正符号化部５１１及び誤り訂正復号部５２２が、誤り訂正処理部７０に対応する。上述したように、誤り訂正処理部７０は、入力された素材データを当該素材データ及び誤り訂正符号を含む記録用データに変換するとともに、複数のメモリユニット６から読み出された記録用データに誤り訂正を含む変換を行って、素材データを復号する。
【００２６】
次に、メモリユニット６の構成について説明する。
本実施形態において、メモリユニット６は、メモリコントローラ６０と、複数のフラッシュメモリ６１とを備えている。なお、図２において、複数のメモリユニット（６−１、６−２、・・・、６−Ｎ）のそれぞれが備えるメモリコントローラ（６０−１、６０−２、・・・、６０−Ｎ）は、同一の構成であり、メモリ装置１００が備える任意のメモリコントローラを示す場合、又は特に区別しない場合には、メモリコントローラ６０として説明する。
【００２７】
フラッシュメモリ６１は、電気的に書き換え可能な不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリである。ここで、フラッシュメモリ６１は、例えば、データを並列に書き込み及び読み出す際の単位メモリである。また、メモリユニット６が有する複数のフラッシュメモリ６１には、並列に書き込み及び読み出し可能な複数の部分エリアを有している。なお、本実施形態において、フラッシュメモリ６１は、半導体メモリの一例である。
【００２８】
メモリコントローラ６０は、メモリユニット６が有する複数のフラッシュメモリ６１に対するデータの書き込み及び読み出しを制御する。メモリコントローラ６０は、例えば、所定の数の分割データ（例えば、Ｎ個の分割データ）に分割された記録用データを複数のメモリユニット６にまたがる複数のエリア（例えば、エリアＡ１〜ＡＭ）のうちのいずれかのエリアに書き込むとともに、分割された記録用データをエリアから読み出す。メモリコントローラ６０は、例えば、エリアＡ１に対応するフラッシュメモリ６１に分割データを書き込んだ後に、次の書き込み処理の際には、エリアＡ１と異なるエリア（例えば、エリアＡ２など）に分割データを書き込むように、複数のエリアのうち（エリアＡ１〜エリアＡＭ）のいずれかのエリアに書き込む。
また、メモリコントローラ６０は、メモリ制御ユニット５０からの書き込み要求に応じて、書き込み制御部５１から出力された分割データ（分割された記録用データ）を分割エリアに書き込む。ここで、メモリコントローラ６０は、分割された記録用データをエリアに書き込む際に、異常が検出されたフラッシュメモリ６１の数が、誤り訂正処理部７０によって訂正可能な所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定する。ここで、訂正可能な所定の個数とは、上述した誤り訂正処理部７０が、誤り訂正可能な数に対応するフラッシュメモリ６１の個数である。すなわち、メモリコントローラ６０は、記録用データの書き込みに失敗した場合であっても、書き込みに失敗したフラッシュメモリ６１の個数が誤り訂正処理部７０により訂正可能な個数以下であれば、正常に終了したと判定して処理を継続する。
【００２９】
具体的に、メモリコントローラ６０は、メモリユニット６におけるエリアの部分エリアに分割データを書き込む際に、部分エリアにおいて異常が検出されたフラッシュメモリ６１の個数を示す異常個数を検出する。なお、メモリコントローラ６０は、書き込みに異常が生じたか否かを、例えば、書き込みコマンドに対してフラッシュメモリ６１から出力されるステータス情報に基づいて判定する。メモリコントローラ６０は、検出した当該異常個数と、複数のメモリユニット６間において相互に通信して取得した各部分エリアにおける異常個数とに基づいて、１つのエリア全体における異常個数の合計を算出する。そして、メモリコントローラ６０は、算出した当該異常個数の合計に基づいて、異常が検出されたフラッシュメモリ６１の数が、誤り訂正処理部７０によって訂正可能な所定の個数以下であるか否かを判定する。
【００３０】
また、メモリコントローラ６０は、分割された記録用データを、複数のエリアのうちのいずれかのエリアに書き込む際に、所定の個数を超えるフラッシュメモリ６１の異常が検出された回数が、所定の閾値回数に達した場合に、書き込み処理を中断し、異常終了を示す情報をメモリ制御ユニット５０に通知する。具体的に、メモリコントローラ６０は、異常が検出されたフラッシュメモリ６１の数が、誤り訂正処理部７０によって訂正可能な所定の個数を超える場合に、書き込みのリトライ処理（再実行処理）を実行する。そして、このリトライ処理を含めた書き込み処理が、連続して所定の閾値回数（例えば、３回）失敗した場合に、書き込み処理を中断し、異常終了を示す情報をメモリ制御ユニット５０に通知する。
【００３１】
また、メモリコントローラ６０は、メモリ制御ユニット５０からの読み出し要求に応じて、メモリユニット６の部分エリアから分割データを読み出し、読み出した部分データを読み出し制御部５２に出力する。
なお、本実施形態において、メモリコントローラ６０は、部分メモリ制御部の一例であり、複数のメモリコントローラ６０（６０−１〜６０−Ｎ）は、メモリ制御部８０に対応する。
【００３２】
次に、本実施形態におけるメモリ装置１００の動作について、図面を参照して説明する。
＜書き込み処理＞
図３は、本実施形態におけるメモリ装置１００の書き込み処理の一例を示すフローチャートである。
メモリ装置１００は、サーバ制御部４からの素材データの書き込み指示に基づいて、図３に示す書き込み処理を開始する。
【００３３】
図３において、まず、メモリ装置１００は、素材データを記録用データに変換する（ステップＳ１０１）。すなわち、サーバ制御部４からの素材データの書き込み指示に基づいて、メモリ制御ユニット５０の誤り訂正符号化部５１１が、素材データを収録部２から取得する。誤り訂正符号化部５１１は、素材データに基づいて、リードソロモン符号による誤り訂正のための冗長データを生成し、生成した冗長データを素材データに付加することで、素材データを誤り訂正符号化した記録用データを生成する。
【００３４】
次に、メモリ制御ユニット５０の分割処理部５１２は、記録用データを分割した分割データを生成する（ステップＳ１０２）。すなわち、分割処理部５１２は、誤り訂正符号化部５１１が変換した記録用データを所定の数（例えば、Ｎ個）の分割データに分割する。
次に、メモリ制御ユニット５０の書き込み制御部５１は、分割データをメモリユニット６に書き込む（ステップＳ１０３）。ここでは、分割処理部５１２が、分割した記録用データ（分割データ）を各メモリユニット６に出力し、各メモリユニット６が、分割データの書き込み処理を実行する。ここで、メモリユニット６は、複数のエリア（例えば、エリアＡ１〜ＡＭ）のうちのいずれかのエリア（例えば、エリアＡ１）に書き込む。なお、メモリユニット６による書き込み処理については後述する。
【００３５】
次に、書き込み制御部５１は、書き込みが正常終了したか否かを判定する（ステップＳ１０４）。すなわち、書き込み制御部５１は、メモリユニット６からの通知により、書き込みが正常終了したか否かを判定する。書き込み制御部５１は、書き込みが正常終了した場合（ステップＳ１０４：ＹＥＳ）に、処理を終了する。また、書き込み制御部５１は、書き込みが正常終了していない（異常終了である）場合（ステップＳ１０４：ＮＯ）に、処理をステップＳ１０５に進める。
【００３６】
ステップＳ１０５において、書き込み制御部５１は、エラー処理を実行する。書き込み制御部５１は、例えば、素材データの書き込みを失敗したことを示すエラー通知情報をサーバ制御部４に通知するエラー処理を実行し、処理を終了する。
【００３７】
次に、図３のステップＳ１０３の処理について、図４を参照して説明する。
図４は、本実施形態におけるメモリユニット６の書き込み処理の一例を示すフローチャートである。
この図において、まず、メモリユニット６は、分割データを取得する（ステップＳ２０１）。すなわち、メモリユニット６は、書き込み制御部５１からの書き込み指示に基づいて、分割処理部５１２から出力された分割データを取得する。なお、メモリユニット６は、例えば、分割データを一時記憶する不図示の記憶部を備えており、取得した分割データは、この記憶部に記憶される。
【００３８】
次に、メモリユニット６のメモリコントローラ６０は、リトライカウンタを初期化する（ステップＳ２０２）。例えば、メモリコントローラ６０は、リトライカウンタ（不図示）を“０”にする（ＲＴＣＮＴ←０）。
次に、メモリコントローラ６０は、分割データをエリアに対応するフラッシュメモリ６１に書き込む（ステップＳ２０３）。ここでは、メモリコントローラ６０は、エリアのうちの当該メモリユニット６に対応する部分エリアに、分割処理部５１２から取得した分割データを書き込む。
【００３９】
次に、メモリコントローラ６０は、フラッシュメモリ６１からステータスを取得する（ステップＳ２０４）。すなわち、メモリコントローラ６０は、分割データの書き込みを行った部分エリアに対応する各フラッシュメモリ６１から書き込みコマンドに対するステータスを取得する。
【００４０】
次に、メモリコントローラ６０は、当該部分エリアにおけるフラッシュメモリ６１の異常個数を算出する（ステップＳ２０５）。すなわち、メモリコントローラ６０は、例えば、各フラッシュメモリ６１から取得したステータスに基づいて、部分エリアにおいて異常が検出されたフラッシュメモリ６１の個数を示す異常個数を算出する。
【００４１】
次に、メモリコントローラ６０は、複数のメモリユニット６間で相互に通信して、他のメモリユニット６の異常個数を取得するステップＳ２０６）。すなわち、メモリコントローラ６０は、他のメモリユニット６が有するメモリコントローラ６０が算出した異常個数を取得する。また、メモリコントローラ６０は、自身が算出した異常個数を他のメモリユニット６に出力する。
【００４２】
次に、メモリコントローラ６０は、当該エリアにおける異常個数の合計を算出する（ステップＳ２０７）。すなわち、メモリコントローラ６０は、自身が算出した異常個数と、他のメモリユニット６から取得した異常個数とに基づいて、異常個数の合計を算出する。
【００４３】
次に、メモリコントローラ６０は、異常個数の合計が訂正可能な個数（所定の個数）以下であるか否かを判定する（ステップＳ２０８）。メモリコントローラ６０は、異常個数の合計が訂正可能な個数以下である場合（ステップＳ２０８：ＹＥＳ）に、処理をステップＳ２０９に進める。また、メモリコントローラ６０は、異常個数の合計が訂正可能な個数を超える場合（ステップＳ２０８：ＮＯ）に、処理をステップＳ２１０に進める。
【００４４】
ステップＳ２０９において、メモリコントローラ６０は、正常終了を通知する。すなわち、メモリコントローラ６０は、異常個数の合計が訂正可能な個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定し、正常に終了したことを示す通知を書き込み制御部５１に対して通知して、処理を終了する。
【００４５】
また、ステップＳ２１０において、メモリコントローラ６０は、リトライカウンタに“１”を加算する（ＲＴＣＮＴ←ＲＴＣＮＴ＋１）。
次に、メモリコントローラ６０は、失敗回数が３回（ＲＴＣＮＴ≧３）であるか否かを判定する（ステップＳ２１１）。すなわち、メモリコントローラ６０は、リトライカウンタの値が“３”に達しているか否かを判定する。メモリコントローラ６０は、失敗回数が３回（ＲＴＣＮＴ≧３）に達した場合（ステップＳ２１１：ＹＥＳ）に、処理をステップＳ２１２に進める。また、メモリコントローラ６０は、失敗回数が３回未満（ＲＴＣＮＴ＜３）である場合（ステップＳ２１１：ＮＯ）に、処理をステップＳ２０３に戻してリトライ処理を実行する。
【００４６】
ステップＳ２１２において、メモリコントローラ６０は、書き込み処理を中断し、異常終了を示す情報をメモリ制御ユニット５０に通知して、処理を終了する。
このように、本実施形態では、メモリ装置１００は、書き込み処理の際に、書き込み異常を検出した場合であっても、誤り訂正処理部７０により訂正可能な範囲であれば、書き込みが正常に終了したと判定して処理を継続する。
【００４７】
次に、図５を参照して、本実施形態におけるメモリ装置１００の読み出し処理の一例について説明する。
＜読み出し処理＞
図５は、本実施形態におけるメモリ装置１００の読み出し処理の一例を示すフローチャートである。
メモリ装置１００は、サーバ制御部４からの素材データの読み出し指示に基づいて、図５に示す読み出し処理を開始する。
【００４８】
図５において、まず、メモリ装置１００は、分割データをメモリユニット６から読み出す（ステップＳ３０１）。すなわち、サーバ制御部４からの素材データの読み出し指示に基づいて、メモリ制御ユニット５０の読み出し制御部５２が、分割データを各メモリユニット６から読み出す。ここで、各メモリユニット６のメモリコントローラ６０は、部分エリアから分割データを読み出して、読み出し制御部５２の統合処理部５２１に出力する。
【００４９】
次に、統合処理部５２１は、分割データを統合して、記録用データを生成する（ステップＳ３０２）。すなわち、統合処理部５２１は、各メモリユニット６から読み出した分割データを統合して、復元した記録用データを誤り訂正復号部５２２に出力する。
【００５０】
次に、誤り訂正復号部５２２は、統合した記録用データに誤りがあるか否かを判定する（ステップＳ３０３）。すなわち、誤り訂正復号部５２２は、統合処理部５２１から出力された記録用データに含まれる誤り訂正のための冗長データに基づいて、複数のメモリユニット６から読み出されたデータに誤り（例えば、データ化け）があるか否かを判定する。誤り訂正復号部５２２は、記録用データに誤りがある場合（ステップＳ３０３：ＹＥＳ）に、処理をステップＳ３０４に進める。また、誤り訂正復号部５２２は、記録用データに誤りがない場合（ステップＳ３０３：ＮＯ）に、処理をステップＳ３０６に進める。
【００５１】
また、ステップＳ３０４において、誤り訂正復号部５２２は、訂正可能な誤りであるか否かを判定する。すなわち、誤り訂正復号部５２２は、記録用データに含まれる誤りの個数を検出し、誤りの個数が、訂正可能な個数以下であるか否かを判定する。誤り訂正復号部５２２は、訂正可能な誤りである場合（ステップＳ３０４：ＹＥＳ）に、処理をステップＳ３０５に進める。また、誤り訂正復号部５２２は、訂正可能な誤りでない場合（ステップＳ３０４：ＮＯ）に、処理をステップＳ３０７に進める。
【００５２】
ステップＳ３０５において、誤り訂正復号部５２２は、記録用データを誤り訂正する。ここでは、訂正可能な誤りであるので、誤り訂正復号部５２２は、リードソロモン符号による誤り訂正により、誤りの含まれる記録用データを訂正する。
また、ステップＳ３０６において、誤り訂正復号部５２２は、記録用データから素材データを生成して、再生部３に出力する。ここで、誤り訂正復号部５２２は、例えば、記録用データから誤り訂正のための冗長データを除いて、素材データを復号する。ステップＳ３０６の処理後、誤り訂正復号部５２２は、処理を終了する。
【００５３】
一方、ステップＳ３０７において、誤り訂正復号部５２２は、読み出しのエラー処理を実行する。この場合、誤りの個数が訂正可能な個数を超えているので、誤り訂正復号部５２２は、例えば、正常な素材データが読み出せないことを示すエラー通知情報をサーバ制御部４に通知するエラー処理を実行し、処理を終了する。
【００５４】
以上説明したように、本実施形態におけるメモリ装置１００は、複数のメモリユニット６と、誤り訂正処理部７０と、メモリ制御部８０とを備えている。複数のメモリユニット６は、複数のフラッシュメモリ６１をそれぞれが有し、並列に書き込み及び読み出しが可能である。誤り訂正処理部７０は、入力された素材データを当該素材データ及び誤り訂正符号を含む記録用データに変換するとともに、複数のメモリユニット６から読み出された記録用データに誤り訂正を含む変換を行って、素材データを復号する。メモリ制御部８０は、所定の数の分割データに分割された記録用データを複数のメモリユニット６にまたがる複数のエリアのうちのいずれかのエリアに書き込むとともに、分割された記録用データをエリアから読み出す。さらに、メモリ制御部８０は、分割された記録用データをいずれかのエリアに書き込む際に、異常が検出されたフラッシュメモリ６１の数が、誤り訂正処理部７０によって訂正可能な所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定する。
【００５５】
これにより、本実施形態におけるメモリ装置１００は、書き込み処理の際に、異常を検出した場合であっても、誤り訂正処理部７０により訂正可能な範囲であれば、書き込みが正常に終了したと判定して処理を継続する。そのため、本実施形態におけるメモリ装置１００は、例えば、書き込みの際に異常が検出されて処理が中断される頻度を低減することができる。すなわち、本実施形態におけるメモリ装置１００は、例えば、書き込み処理を正常に実行できない状態が、メモリユニット６を交換するまで継続することの発生頻度を低減することができる。
また、本実施形態におけるメモリ装置１００は、書き込み処理の際に、誤り訂正処理部７０により訂正可能な範囲であれば、異常が検出された場合であっても処理を中断させずに動作させることができるので、書き込み処理における信頼性を向上させることができる。
【００５６】
また、本実施形態では、メモリ制御部８０は、複数のメモリユニット６のそれぞれが有するメモリコントローラ６０であって、複数のメモリユニット６のそれぞれに対応したメモリコントローラ６０を備えている。メモリコントローラ６０は、エリアのうちの１つのメモリユニット６に対応する部分エリアに分割データを書き込む際に、部分エリアにおいて異常が検出されたフラッシュメモリ６１の個数を示す異常個数を検出する。また、メモリコントローラ６０は、検出した当該異常個数と、複数のメモリユニット６間において相互に通信して取得した各部分エリアにおける異常個数とに基づいて、１つのエリアにおける異常個数の合成を算出する。そして、メモリコントローラ６０は、算出した当該異常個数の合計に基づいて、異常が検出されたフラッシュメモリ６１の数が、誤り訂正処理部７０によって訂正可能な所定の個数以下であるか否かを判定する。
これにより、本実施形態におけるメモリ装置１００は、上述した書き込み処理における信頼性を向上させる処理をメモリユニット６内で完結して実現することができる。そのため、本実施形態におけるメモリ装置１００は、メモリユニット６の処理を変更するという簡易な手段により、書き込み処理における信頼性を向上させることができる。なお、本実施形態におけるメモリ装置１００は、メモリユニット６以外の構成に、従来の構成をそのまま利用することができる。
【００５７】
また、本実施形態によれば、ビデオサーバ１は、上述のメモリ装置１００と、収録部２と、サーバ制御部４と、再生部３とを備えている。収録部２が、素材データを取得し、サーバ制御部４が、収録部２によって取得した素材データをメモリ装置１００が有するフラッシュメモリ６１に記録させるとともに、フラッシュメモリ６１に記録された素材データをメモリ装置１００から読み出す。そして、再生部３が、メモリ装置１００から読み出された素材データを出力する。
これにより、本実施形態におけるビデオサーバ１は、メモリ装置１００と同様に、例えば、書き込みの際に異常が検出されて処理が中断される頻度を低減することができる。よって、本実施形態におけるビデオサーバ１は、書き込み処理における信頼性を向上させることができる。
【００５８】
また、本実施形態におけるメモリ装置１００のメモリ制御方法は、誤り訂正処理部７０が、入力された素材データを当該素材データ及び冗長データ（誤り訂正符号）を含む記録用データに変換するステップと、メモリ制御部８０が、所定の数の分割データに分割された記録用データを複数のメモリユニット６にまたがる複数のエリアのうちのいずれかのエリアに書き込むとともに、分割された記録用データをエリアに書き込む際に、異常が検出されたフラッシュメモリ６１の数が、誤り訂正処理部７０によって訂正可能な所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定するステップとを含む。また、メモリ制御方法は、メモリ制御部８０が、分割された記録用データをエリアから読み出すステップと、誤り訂正処理部７０が、複数のメモリユニット６から読み出された記録用データに誤り訂正を含む変換を行って、素材データを復号するステップとを含む。
これにより、本実施形態におけるメモリ制御方法は、メモリ装置１００及びビデオサーバ１と同様に、例えば、書き込みの際に異常が検出されて処理が中断される頻度を低減することができる。よって、本実施形態におけるメモリ制御方法は、書き込み処理における信頼性を向上させることができる。
【００５９】
次に、第２の実施形態について、図面を参照して説明する。
［第２の実施形態］
上述した第１の実施形態では、１つのエリア全体における異常個数の合計をメモリユニット６が算出する場合の一例について説明したが、本実施形態では、１つのエリア全体における異常個数の合計をメモリ制御ユニット５０が算出する場合の一例について説明する。
【００６０】
図６は、本実施形態によるメモリ装置１００ａの一例を示すブロック図である。
図６において、メモリ装置１００ａは、メモリセット５ａを備え、メモリセット５ａは、メモリ制御ユニット５０ａと、複数のメモリユニット６（６−１、６−２、・・・、６−Ｎ）とを備えている。なお、メモリ装置１００ａは、複数のメモリセット５ａを備えるが、この図においては、メモリセット５ａの構成を説明する上で１つのメモリセット５ａに簡略化して記載している。
【００６１】
本実施形態では、メモリ制御ユニット５０ａが、上述した異常個数の合計を算出する処理を行う点を除いて、図１に示す第１の実施形態におけるメモリ装置１００と同様である。
なお、この図において、図２に示す構成と同一の構成については同一の符号を付し、その説明を省略する。
【００６２】
メモリ制御ユニット５０ａは、例えば、ＣＰＵなどを含むプロセッサであり、メモリセット５ａを統括的に制御する。メモリ制御ユニット５０ａは、書き込み制御部５１と、読み出し制御部５２と、異常個数算出部５３とを備えている。なお、第１の実施形態と同様に、本実施形態においても、誤り訂正符号化部５１１及び誤り訂正復号部５２２が、誤り訂正処理部７０に対応する。
【００６３】
異常個数算出部５３は、複数のメモリユニット６のそれぞれが、部分エリアに分割データを書き込む際に、部分エリアにおいて異常が検出されたフラッシュメモリ６１の個数を示す異常個数を複数のメモリユニット６から取得する。異常個数算出部５３は、取得した異常個数に基づいて、１つのエリア全体における異常個数の合計を算出する。そして、異常個数算出部５３は、算出した当該異常個数の合計を複数のメモリユニット６のそれぞれに出力する。なお、本実施形態における異常個数算出部５３は、算出部の一例である。
【００６４】
なお、本実施形態におけるメモリユニット６のメモリコントローラ６０は、部分エリアに分割データを書き込む際に、部分エリアにおいて異常が検出されたフラッシュメモリ６１の個数を示す異常個数を検出し、検出した当該異常個数を上述した異常個数算出部５３に出力する。そして、メモリコントローラ６０は、異常個数算出部５３が算出した異常個数の合計に基づいて、異常が検出されたフラッシュメモリ６１の数が、所定の個数以下であるか否かを判定する。
このように、本実施形態では、メモリ制御ユニット５０ａの異常個数算出部５３が、メモリコントローラ６０の代わりに、１つのエリアにおける異常個数の合計を算出する。
【００６５】
次に、本実施形態におけるメモリ装置１００ａの動作について、図面を参照して説明する。
＜書き込み処理＞
図７は、本実施形態におけるメモリ装置１００ａの書き込み処理の一例を示すフローチャートである。
メモリ装置１００ａは、サーバ制御部４からの素材データの書き込み指示に基づいて、図７に示す書き込み処理を開始する。
【００６６】
図７において、ステップＳ４０１からステップＳ４０３までの処理は、図３に示すステップＳ１０１からステップＳ１０３までの処理と同様であるので、ここではその説明を省略する。なお、本実施形態では、ステップＳ４０３の処理において、メモリコントローラ６０が、異常個数の合計を算出しない点がステップＳ１０３の処理と異なり、その詳細については、図８を参照して後述する。
【００６７】
続く、ステップＳ４０４において、メモリ制御ユニット５０ａの異常個数算出部５３は、各メモリユニット６の異常個数を取得する。すなわち、異常個数算出部５３は、各メモリユニット６が算出した異常個数を、各メモリユニット６から取得する。
次に、異常個数算出部５３は、１つのエリアにおける異常個数の合計を算出し、各メモリユニット６に出力する（ステップＳ４０５）。すなわち、異常個数算出部５３は、各メモリユニット６から取得した部分エリアにおける異常個数に基づいて、１つのエリアにおける異常個数の合計を算出する。そして、異常個数算出部５３は、算出した異常個数の合計を各メモリユニット６に出力する。
【００６８】
続く、ステップＳ４０６及びステップＳ４０７の処理は、図３に示すステップＳ１０４及びステップＳ１０４の処理と同様であるので、ここではその説明を省略する。
【００６９】
次に、図７のステップＳ４０３の処理について、図８を参照して説明する。
図８は、本実施形態におけるメモリユニット６の書き込み処理の一例を示すフローチャートである。
この図において、ステップＳ５０１からステップＳ５０５までの処理、及び、ステップＳ５０８からステップＳ５１２までの処理は、図４に示すステップＳ２０１からステップＳ２０５までの処理、及び、ステップＳ２０８からステップＳ２１２までの処理と同様であるので、ここではその説明を省略する。
【００７０】
ステップＳ５０６において、メモリコントローラ６０は、異常個数をメモリ制御ユニット５０ａに出力する。すなわち、メモリコントローラ６０は、算出した部分エリアにおける異常個数をメモリ制御ユニット５０ａの異常個数算出部５３に出力する。
このステップＳ５０６の処理は、複数のメモリユニット６のそれぞれが備えるメモリコントローラ６０によって実行される。
【００７１】
次に、メモリコントローラ６０は、当該エリアにおける異常個数の合計を取得する（ステップＳ５０７）。すなわち、メモリコントローラ６０は、メモリ制御ユニット５０ａの異常個数算出部５３が算出した異常個数の合計を異常個数算出部５３から取得する。
このように、本実施形態では、１つのエリアにおける異常個数の合計をメモリ制御ユニット５０ａの異常個数算出部５３が算出し、メモリコントローラ６０は、異常個数算出部５３から取得した異常個数の合計に基づいて、異常個数の合計が訂正可能な個数（所定の個数）以下であるか否かを判定する。
【００７２】
また、本実施形態におけるメモリ装置１００ａの読み出し処理は、図５に示す第１の実施形態における読み出し処理と同様であるのでその説明を省略する。
【００７３】
以上説明したように、本実施形態におけるメモリ装置１００ａは、異常個数算出部５３を備え、メモリ制御部８０は、複数のメモリユニット６のそれぞれが有するメモリコントローラ６０であって、複数のメモリユニット６のそれぞれに対応したメモリコントローラ６０を備えている。メモリコントローラ６０は、エリアのうちの１つのメモリユニット６に対応する部分エリアに分割データを書き込む際に、部分エリアにおいて異常が検出されたフラッシュメモリ６１の個数を示す異常個数を検出する。メモリコントローラ６０は、検出した当該異常個数を異常個数算出部５３に出力する。異常個数算出部５３は、複数のメモリユニット６のそれぞれに対応するエリアの部分エリアに分割データを書き込む際に、部分エリアにおいて異常が検出されたフラッシュメモリ６１の個数を示す異常個数を複数のメモリユニット６から取得する。そして、異常個数算出部５３は、取得した異常個数に基づいて、１つのエリアにおける異常個数の合計を算出する。メモリコントローラ６０は、異常個数算出部５３が算出した異常個数の合計に基づいて、異常が検出されたフラッシュメモリ６１の数が、所定の個数以下であるか否かを判定する。なお、メモリコントローラ６０は、第１の実施形態と同様に、異常が検出されたフラッシュメモリ６１の数が、誤り訂正処理部７０によって訂正可能な所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定する。
【００７４】
これにより、本実施形態におけるメモリ装置１００ａは、第１の実施形態と同様に、誤り訂正処理部７０により訂正可能な範囲であれば、異常が検出された場合であっても処理を中断させずに動作させることができるので、書き込み処理における信頼性を向上させることができる。
また、メモリユニット６の処理の一部を異常個数算出部５３で処理するようにしたので、本実施形態におけるメモリ装置１００ａでは、メモリユニット６の処理負荷を軽減することができる。
【００７５】
次に、第３の実施形態について、図面を参照して説明する。
［第３の実施形態］
本実施形態では、エリアに書き込む際に、異常が検出されたフラッシュメモリ６１の数が、訂正可能な所定の個数を超える場合に、エラー処理として、当該エリアを使用禁止にする一例について説明する。
【００７６】
図９は、本実施形態によるメモリ装置１００ｂの一例を示すブロック図である。
図９において、メモリ装置１００ｂは、メモリセット５ｂを備え、メモリセット５ｂは、メモリ制御ユニット５０ａと、複数のメモリユニット６ａ（６ａ−１、６ａ−２、・・・、６ａ−Ｎ）とを備えている。なお、メモリ装置１００ｂは、複数のメモリセット５ｂを備えるが、この図においては、メモリセット５ｂの構成を説明する上で１つのメモリセット５ｂに簡略化して記載している。また、メモリユニット６ａ−１〜６ａ−Ｎは、同一の構成であり、メモリ装置１００ａが備える任意のメモリユニットを示す場合、又は特に区別しない場合には、メモリユニット６ａとして説明する。
【００７７】
本実施形態では、メモリユニット６ａは、メモリコントローラ６０と、複数のフラッシュメモリ６１と、管理記憶部６２を備えており、管理記憶部６２を備えている点が、第１及び第２の実施形態と異なる。なお、管理記憶部６２−１〜６２−Ｎは、同一の構成であり、メモリ装置１００ａが備える任意の管理記憶部を示す場合、又は特に区別しない場合には、管理記憶部６２として説明する。
なお、この図において、図６に示す構成と同一の構成については同一の符号を付し、その説明を省略する。
【００７８】
管理記憶部６２は、エリアＡ１〜エリアＡＭのそれぞれが使用禁止か否かを記憶する。管理記憶部６２は、例えば、各エリアを識別する識別情報と、当該エリアを使用禁止にするか否かを示す禁止設定情報とを関連付けて記憶する。例えば、エリアＡ１が、使用禁止である場合に、管理記憶部６２には、エリアＡ１に対応する禁止設定情報が使用禁止を示す情報（例えば、“１”）が記憶されている。また、例えば、エリアＡ１が、使用禁止でない（使用可能である）場合に、管理記憶部６２には、エリアＡ１に対応する禁止設定情報が使用許可を示す情報（例えば、“０”）が記憶される。
なお、管理記憶部６２の各エリアに対応する禁止設定情報の初期状態は、使用許可を示す情報（例えば、“０”）であり、メモリコントローラ６０によって、各エリアに対する使用禁止が判定された場合に、禁止設定情報が使用禁止を示す情報（例えば、“１”）が記憶される。
【００７９】
本実施形態におけるメモリコントローラ６０は、分割された記録用データを複数のエリアのうちのいずれかのエリアに書き込む際に、上述した所定の個数を超えるフラッシュメモリ６１の異常が検出された回数が、所定の閾値回数（例えば、３回）に達した場合に、当該異常を検出したフラッシュメモリ６１の属する当該エリアを使用禁止にする。メモリコントローラ６０は、例えば、上述した所定の個数を超えるフラッシュメモリ６１の異常が検出された回数が、連続して３回（第１の閾値回数）に達した場合に、当該異常を検出したフラッシュメモリ６１の属する当該エリアを使用禁止にする。
具体的に、メモリコントローラ６０は、書き込み処理の際に、異常を検出した異常個数が、上述した所定の個数を超えた場合に、書き込み処理のリトライ処理を実行する。このリトライ処理が２回連続し、異常個数が上述した所定の個数を超えた場合（最初の書き込み処理から３回連続して書き込み失敗した場合）に、当該異常を検出したフラッシュメモリ６１の属する当該エリアを使用禁止にする。この場合、メモリコントローラ６０は、上述した管理記憶部６２の該当エリアに対応する禁止設定情報を、例えば、“１”に変更する。
【００８０】
次に、本実施形態におけるメモリ装置１００ｂの動作について、図面を参照して説明する。
＜書き込み処理＞
本実施形態におけるメモリ装置１００ｂの書き込み処理は、図７に示す第２の実施形態と同様であるので、ここでは説明を省略する。なお、本実施形態では、図７のステップＳ４０３の処理の一部が、第２の実施形態と異なるので、以下、図７のステップＳ４０３の処理について、図１０を参照して説明する。
【００８１】
図１０は、本実施形態におけるメモリユニット６ａの書き込み処理の一例を示すフローチャートである。
この図において、ステップＳ６０１からステップＳ６１１までの処理は、図８に示すステップＳ５０１からステップＳ５１１までの処理と同様であるので、ここではその説明を省略する。本実施形態では、ステップＳ６１２の処理が追加されている。
【００８２】
ステップＳ６１２において、メモリコントローラ６０は、異常個数が上述した所定の個数を超えた場合が３回以上である場合の処理として、書き込み処理を行った当該エリアを使用禁止にする。すなわち、メモリコントローラ６０は、上述した管理記憶部６２の該当エリアに対応する禁止設定情報を、例えば、“１”に変更する。こうすることにより、メモリコントローラ６０は、以降の処理において、禁止設定情報が“１”になっているエリアを使用しないように制御する。
【００８３】
続く、ステップＳ６１３の処理については、図８に示すステップＳ５１２の処理と同様であるので、説明を省略する。
このように、本実施形態では、メモリ制御部８０（メモリコントローラ６０）は、所定の個数を超えるフラッシュメモリ６１の異常が検出された回数が、連続して３回（第１の閾値回数）に達した場合に、当該異常を検出したフラッシュメモリ６１の属する当該エリアを使用禁止にする。
また、本実施形態におけるメモリ装置１００ｂの読み出し処理は、図５に示す第１の実施形態における読み出し処理と同様であるのでその説明を省略する。
【００８４】
以上説明したように、本実施形態におけるメモリ制御部８０（メモリコントローラ６０）は、分割された記録用データを複数のエリアのうちのいずれかのエリアに書き込む際に、所定の個数を超えるフラッシュメモリ６１の異常が検出された回数が、所定の閾値回数（例えば、３回）に達した場合に、当該異常の検出回数が所定の閾値回数に達した当該エリアを使用禁止にする。
これにより、本実施形態におけるメモリ装置１００ｂは、以降の処理において当該エリアを使用しないようにするので、例えば、書き込みエラーが発生したエリアが毎回使用されて、データの書き込み処理を正常に実行できない状態がメモリユニット６ａを交換するまで継続することを回避することができる。
【００８５】
また、本実施形態では、メモリ制御部８０は、訂正可能な所定の個数を超えるフラッシュメモリ６１の異常が検出された回数が、連続して第１の閾値回数（例えば、３回）に達した場合に、当該エリアを使用禁止にする。すなわち、メモリ制御部８０は、リトライ処理により、連続して第１の閾値回数、異常個数が訂正可能な所定の個数を超える異常が検出された場合に、当該異常を検出したフラッシュメモリ６１の属する当該エリアを使用禁止にする。
このように、書き込み処理の際に、異常が検出された回数が、連続して第１の閾値回数に達した場合にエリアを使用禁止にするため、本実施形態におけるメモリ装置１００ｂは、ノイズなどの偶発的な要因により書き込み処理が失敗した場合を除いて、エリアを使用禁止にすることができる。すなわち、本実施形態におけるメモリ装置１００ｂは、書き込み処理のロバスト性を向上させることができる。
【００８６】
なお、メモリ制御部８０は、訂正可能な所定の個数を超えるフラッシュメモリ６１の異常が検出された回数が、所定の期間における累積回数として第２の閾値回数に達した場合に、当該エリアを使用禁止にしてもよい。ここで、所定の期間とは、例えば、書き込み処理の期間や、ビデオサーバ１が電源投入から稼働している期間、ビデオサーバ１のシステムがリセットされてからの期間などである。また、この使用禁止のための条件は、フラッシュメモリ６１の異常が、上述したリトライ処理により連続して第１の閾値回数に達した場合と組み合わせて利用してもよい。さらに、この場合、第２の閾値回数は、第１の閾値回数と等しくてもよいし、異なる閾値回数にしてもよい。
例えば、メモリ制御部８０は、あるエリアに対して、書き込み処理の際に、電源投入からの累積により５回以上の異常を検出した場合、又は、リトライにより連続して３回以上の異常を検出した場合に、当該エリアを使用禁止にする。
こうすることにより、メモリ装置１００ｂは、例えば、書き込み処理を正常に実行できない状態が、メモリユニット６を交換するまで継続することの発生頻度をさらに低減することができる。
【００８７】
次に、第４の実施形態について、図面を参照して説明する。
［第４の実施形態］
上述した第３の実施形態では、エリアに書き込む際に、異常が検出されたフラッシュメモリ６１の数が、訂正可能な所定の個数を超える場合に、エラー処理として、当該エリアを使用禁止にする一例を説明したが、エリアを使用禁止にする条件は、これに限定されるものではない。そこで、本実施形態では、訂正可能な所定の個数に限定されずに、１個でもフラッシュメモリ６１の異常が検出された場合に、当該異常を検出したフラッシュメモリ６１の属する当該エリアを使用禁止にする一例について説明する。
【００８８】
図１１は、本実施形態によるメモリ装置１００ｃの一例を示すブロック図である。
図１１において、メモリ装置１００ｃは、メモリセット５ｃを備え、メモリセット５ｃは、メモリ制御ユニット５０と、複数のメモリユニット６ａ（６ａ−１、６ａ−２、・・・、６ａ−Ｎ）とを備えている。なお、メモリ装置１００ｃは、複数のメモリセット５ｃを備えるが、この図においては、メモリセット５ｃの構成を説明する上で１つのメモリセット５ｃに簡略化して記載している。
なお、この図において、図２及び図９に示す構成と同一の構成については同一の符号を付し、その説明を省略する。
【００８９】
本実施形態のメモリコントローラ６０は、分割された記録用データをエリアに書き込む際に、エリアに属する複数のフラッシュメモリ６１のうち、いずれかのフラッシュメモリ６１の異常が検出された回数が、所定の閾値回数（例えば、３回）に達した場合に、当該異常を検出したフラッシュメモリ６１の属する当該エリアを使用禁止にする。
【００９０】
次に、本実施形態におけるメモリ装置１００ｃの動作について、図面を参照して説明する。
＜書き込み処理＞
本実施形態におけるメモリ装置１００ｃの書き込み処理は、図３に示す第１の実施形態と同様であるので、ここでは説明を省略する。なお、本実施形態では、図３のステップＳ１０３の処理の一部が、第１及び第３の実施形態と異なるので、以下、図３のステップＳ１０３の処理について、図１２を参照して説明する。
【００９１】
図１２は、本実施形態におけるメモリユニット６ａの書き込み処理の一例を示すフローチャートである。
本実施形態では、メモリコントローラ６０が、図１０におけるステップＳ６０５及びステップＳ６０６の処理を行わない点が第３の実施形態と異なる。
すなわち、この図において、ステップＳ７０１からステップＳ７０４までの処理は、図１０に示すステップＳ６０１からステップＳ６０４までの処理と同様であるので、ここではその説明を省略する。
【００９２】
ステップＳ７０５において、メモリコントローラ６０は、書き込み失敗があるか否かを判定する。なお、メモリコントローラ６０は、メモリユニット６ａ間で互いに通信して、１つのエリア全体で、フラッシュメモリ６１から出力されるステータス情報に基づいて、フラッシュメモリ６１の異常が検出されたか否かを判定する。メモリコントローラ６０は、書き込み失敗がある場合（ステップＳ７０５：ＹＥＳ）に、処理をステップＳ７０７に進める。また、メモリコントローラ６０は、書き込み失敗がない場合（ステップＳ７０５：ＮＯ）に、処理をステップＳ７０６に進める。
【００９３】
続く、ステップＳ７０６からステップＳ７１０までの処理は、図１０に示すステップＳ６０９からステップＳ６１３までの処理と同様であるので、ここではその説明を省略する。
このように、本実施形態では、メモリコントローラ６０は、フラッシュメモリ６１の異常が検出された回数が、連続して３回（所定の閾値回数）に場合に、当該異常の検出回数が所定の閾値回数に達した当該エリアを使用禁止にする。
また、本実施形態におけるメモリ装置１００ｃの読み出し処理は、図５に示す第１の実施形態における読み出し処理と同様であるのでその説明を省略する。
【００９４】
以上説明したように、本実施形態におけるメモリ装置１００ｃ（メモリセット５ｃ）は、複数のメモリユニット６ａと、メモリ制御部８０（メモリコントローラ６０）を備えている。複数のメモリユニット６ａは、複数のフラッシュメモリ６１をそれぞれが有し、並列に書き込み及び読み出しが可能である。また、メモリ制御部８０は、所定の数の分割データに分割された素材データ（コンテンツデータの一例）に基づく記録用データを、複数のメモリユニット６ａにまたがる複数のエリアのうちのいずれかのエリアに書き込むとともに、分割された記録用データをエリアから読み出す。そして、メモリ制御部８０は、分割された記録用データをエリアに書き込む際に、複数のフラッシュメモリ６１のうち、いずれかのフラッシュメモリ６１の異常が検出された回数が、所定の閾値回数（例えば、３回）に達した場合に、当該異常の検出回数が所定の閾値回数に達した当該エリアを使用禁止にする。
これにより、本実施形態におけるメモリ装置１００ｃは、エリアを使用禁止にした以降の処理において、当該エリアを使用しないようにするので、例えば、書き込みエラーが発生したエリアが毎回使用されて、データの書き込み処理を正常に実行できない状態がメモリユニット６ａを交換するまで継続することを回避することができる。よって、本実施形態におけるメモリ装置１００ｃは、信頼性を向上させることができる。
【００９５】
なお、メモリ装置１００（１００ａ、１００ｂ、１００ｃ）は、メモリコントローラ６０の一部又は全部をメモリユニット６（６ａ）の外に備えてもよい。また、この場合、メモリ装置１００（１００ａ、１００ｂ、１００ｃ）は、各メモリユニット６（６ａ）が備えるメモリコントローラ６０を１つにまとめてメモリ制御部８０として構成してもよい。また、メモリ制御ユニット５０（５０ａ）が、メモリ制御部８０を備えてもよく、メモリ制御ユニット５０（５０ａ）が、メモリコントローラ６０の一部又は全部を備えてもよい。
また、上記の第３及び第４の実施形態において、メモリユニット６ａが、管理記憶部６２を備える形態を説明したが、管理記憶部６２をメモリユニット６（６ａ）の外に、又はメモリ制御ユニット５０（５０ａ）に備える構成であってもよい。
【００９６】
また、上記の各実施形態において、サーバ装置は、一例としてビデオサーバ１である場合について説明したが、他のサーバ装置であってもよい。
また、上記の各実施形態において、メモリ装置１００（１００ａ、１００ｂ、１００ｃ）は、フラッシュメモリ６１にデータを記憶する一例について説明したが、他の書き換え可能な半導体メモリ（例えば、ＥＥＰＲＯＭ、ＲＡＭ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）など）であってもよい。
【００９７】
また、上記の各実施形態において、誤り訂正処理部７０は、リードソロモン符号による誤り訂正手法を適用する一例について説明したが、これに限定されるものではない。誤り訂正符号には、例えば、巡回符号、ハミング符号、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号などを適用してもよいし、他の誤り訂正符号を適用してもよい。
【００９８】
また、上記の各実施形態において、収録部２は、取得した映像信号などの素材データを符号化する機能を含む場合について説明したが、符号化された素材データを取得してもよい。また、再生部３は、メモリ装置１００（１００ａ、１００ｂ、１００ｃ）から読み出された素材データ（例えば、映像データ）を復号する機能を含む場合について説明したが、符号化された素材データを出力してもよい。
【００９９】
なお、実施形態におけるビデオサーバ１又はメモリ装置１００（１００ａ、１００ｂ、１００ｃ）が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したビデオサーバ１又はメモリ装置１００（１００ａ、１００ｂ、１００ｃ）が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【０１００】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にビデオサーバ１又はメモリ装置１００（１００ａ、１００ｂ、１００ｃ）が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１０１】
また、上述した機能の一部又は全部を、ＬＳＩ（Large Scale Integration）等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【０１０２】
以上述べた少なくともひとつの実施形態のメモリ装置、サーバ装置、及びメモリ制御方法は、分割されたコンテンツデータをエリアに書き込む際に、異常が検出された半導体メモリの個数が、訂正可能な所定の個数以下である場合に、当該エリアへの書き込みが正常に終了したと判定するメモリ制御部、又は、半導体メモリの異常が検出された回数が、所定の閾値回数に達した場合に、当該異常の検出回数が所定の閾値回数に達した当該エリアを使用禁止にするメモリ制御部を備えている。これにより、少なくとも１つの実施形態のメモリ装置、サーバ装置、及びメモリ制御方法は、信頼性を向上させることができる。
【０１０３】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１０４】
１…ビデオサーバ、２…収録部、３…再生部、４…サーバ制御部、５，５ａ，５ｂ，５ｃ，５−１，５−Ｐ…メモリセット、６，６ａ，６−１，６−２，６−Ｎ，６ａ−１，６ａ−２，６ａ−Ｎ…メモリユニット、５０，５０ａ…メモリ制御ユニット、５１…書き込み制御部、５３…異常個数算出部、６０，６０−１，６０−２，６０−Ｎ…メモリコントローラ、６１…フラッシュメモリ、６２，６２−１，６２−２，６２−Ｎ…管理記憶部、７０…誤り訂正処理部、８０…メモリ制御部、１００、１００ａ、１００ｂ、１００ｃ…メモリ装置、５１１…誤り訂正符号化部、５１２…分割処理部、５２１…統合処理部、５２２…誤り訂正復号部
【図１】
2015055910.tif 000003
【図２】
2015055910.tif 000004
【図３】
2015055910.tif 000005
【図４】
2015055910.tif 000006
【図５】
2015055910.tif 000007
【図６】
2015055910.tif 000008
【図７】
2015055910.tif 000009
【図８】
2015055910.tif 000010
【図９】
2015055910.tif 000011
【図１０】
2015055910.tif 000012
【図１１】
2015055910.tif 000013
【図１２】
2015055910.tif 000014