(57)【要約】【課題】メモリチップが故障した場合であっても、データを復元することが可能なデータ蓄積装置及びデータ書込み／読出し方法を提供する。【解決手段】誤り検出部１３−１〜１３−４は、ＲＡＩＤ制御部１２からの書込みデータに対して１ページ単位で誤り検出符号を付加する。そして、メモリユニットは、誤り検出符号が付加された書込みデータを１ページ単位で半導体メモリに書き込む。また、誤り検出部１３−１〜１３−４は、読出し時には、メモリユニット１４−１〜１４−４からの読出しデータにデータ誤りがあるか否かを、誤り検出符号に基づいて行う。ＲＡＩＤ制御部１２は、データ誤りが検出された場合、誤りが検出された読出しデータを、他の読出しデータに基づいて復元する。【選択図】      図１
2011060217.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータを予め設定されたページ単位で書込み可能な半導体メモリを備えた複数のメモリユニットをアレイ状に具備するデータ蓄積装置において、
取得したデータを復元するためのパリティデータを作成し、前記複数のメモリユニットのうち、前記取得データを記録するメモリユニットと前記パリティデータを記録するメモリユニットとを、予め設定された規則に従って順次決定し、前記複数のメモリユニットがそれぞれ接続された複数の接続線へ、前記取得データ又はパリティデータのうち対応する書込みデータを出力するＲＡＩＤ制御部と、
前記複数の接続線毎に配置され、それぞれが前記ＲＡＩＤ制御部からの書込みデータに前記ページ単位で誤り検出符号を付加し、前記接続線と接続したメモリユニットへ出力する複数の誤り検出部と
を具備し、
前記複数のメモリユニットは、前記誤り検出部からのデータを前記半導体メモリに書き込むことを特徴とするデータ蓄積装置。
【請求項２】
前記複数のメモリユニットは、前記半導体メモリから前記ページ単位でデータを読み出し、前記読出しデータを前記複数の誤り検出部のうち、自ユニットと接続した誤り検出部へ出力し、
前記複数の誤り検出部は、前記メモリユニットからの読出しデータを前記ＲＡＩＤ制御部へ出力すると共に、前記読出しデータにおけるデータ誤りを前記誤り検出符号に基づいて検出し、前記データ誤りの検出に応じて検出信号を前記ＲＡＩＤ制御部へ出力し、
前記ＲＡＩＤ制御部は、前記検出信号を受信した場合、前記データ誤りが検出された特定の読出しデータを、前記複数の読出しデータのうち前記特定の読出しデータ以外の読出しデータに基づいて復元することを特徴とする請求項１記載のデータ蓄積装置。
【請求項３】
前記メモリユニットは、前記誤り検出部からの書込みデータに対してビット誤り訂正符号を付加して前記半導体メモリに記録させるビット誤り訂正部をさらに備えることを特徴とする請求項１記載のデータ蓄積装置。
【請求項４】
予め設定されたページ単位でデータの書込み／読出しが可能な半導体メモリを備えた複数のメモリユニットをアレイ状に具備するデータ蓄積装置で用いられるデータ書込み／読出し方法であって、
取得したデータを訂正するためのパリティデータを作成し、
前記複数のメモリユニットのうち、前記取得データを記録するメモリユニットと前記パリティデータを記録するメモリユニットとを、予め設定された規則に従って順次決定し、
前記複数のメモリユニットへ向けて、前記取得データ又はパリティデータのうち対応する書込みデータを出力し、
前記複数の書込みデータに前記ページ単位で誤り検出符号を付加し、
前記誤り検出符号を付加した書込みデータを前記複数のメモリユニットの半導体メモリへそれぞれ書き込み、
前記複数のメモリユニットそれぞれから前記ページ単位でデータを読み出し、
前記複数の読出しデータにおけるデータ誤りを前記誤り検出符号に基づいて検出し、
前記データ誤りが検出された特定の読出しデータを、前記複数の読出しデータのうち前記特定の読出しデータ以外の読出しデータに基づいて復元することを特徴とするデータ書込み／読出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＲＡＩＤ制御方式によりデータを蓄積するデータ蓄積装置及びデータ書込み／読出し方法に関する。
【背景技術】
【０００２】
近年、大容量かつ高信頼性等の観点から、データ蓄積装置においてＲＡＩＤ（Redundant Arrays of Independent Disks）技術が頻繁に採用されている。ＲＡＩＤ技術を採用することで、データ蓄積装置に具備される複数のメモリユニットのうち１台のメモリユニットが故障した場合であっても、データ蓄積装置に蓄積されたデータの消失を防ぐことが可能となる。例えば、４台のメモリユニットを備え、ＲＡＩＤ５を採用するデータ蓄積装置の場合、データ蓄積装置のＲＡＩＤ制御部は、取得したデータとパリティデータとをメモリユニットの書込み単位で分散し、それぞれを４台のメモリユニットに記録させる。これにより、４台のメモリユニットのうちいずれか１台が壊れても、残りの３台のメモリユニットに基づいてデータを復元することが可能となる。
【０００３】
ところで、近年、フラッシュメモリ等の半導体メモリは、稼働部分がなく、信頼性が高いという利点から、データ蓄積装置のメモリユニットに頻繁に用いられている。この種のメモリユニットは、半導体メモリから成るメモリチップを複数備え、このメモリチップにデータを記録するようにしている。
【０００４】
しかしながら、メモリチップを複数備えたメモリユニットにおいては、書込み回数の超過等の理由により、メモリチップが壊れる場合がある。このような場合、壊れたメモリチップからデータを読み出そうとすると、誤ったデータが再生され、再生画像が乱れてしまう。このとき、ＲＡＩＤ技術を用いたデータの復元はメモリユニット単位で行われるため、壊れたメモリチップから読み出されたデータを復元することは不可能であるという問題があった。
【０００５】
なお、メモリユニット内に入力されたデータに対してＥＣＣ（Error Correcting Code）等のビット誤り訂正符号を付加することで、ビット誤りを訂正する方法が提案されているが（例えば、特許文献１参照）、この方法では、メモリチップが壊れた場合に対応することができない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３２３４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上のように、従来のデータ蓄積装置では、メモリチップが故障した場合、このメモリチップから読み出されたデータを復元することができなかった。
【０００８】
この発明は上記事情によりなされたもので、その目的は、メモリチップが故障した場合であっても、データを復元することが可能なデータ蓄積装置及びデータ書込み／読出し方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明に係るデータ蓄積装置は、入力されたデータを予め設定されたページ単位で書込み可能な半導体メモリを備えた複数のメモリユニットをアレイ状に具備するデータ蓄積装置において、取得したデータを復元するためのパリティデータを作成し、前記複数のメモリユニットのうち、前記取得データを記録するメモリユニットと前記パリティデータを記録するメモリユニットとを、予め設定された規則に従って順次決定し、前記複数のメモリユニットがそれぞれ接続された複数の接続線へ、前記取得データ又はパリティデータのうち対応する書込みデータを出力するＲＡＩＤ制御部と、前記複数の接続線毎に配置され、それぞれが前記ＲＡＩＤ制御部からの書込みデータに前記ページ単位で誤り検出符号を付加し、前記接続線と接続したメモリユニットへ出力する複数の誤り検出部とを具備し、前記複数のメモリユニットは、前記誤り検出部からのデータを前記半導体メモリに書き込むことを特徴とする。
【００１０】
また、本発明に係るデータ書込み／読出し方法は、予め設定されたページ単位でデータの書込み／読出しが可能な半導体メモリを備えた複数のメモリユニットをアレイ状に具備するデータ蓄積装置で用いられるデータ書込み／読出し方法であって、取得したデータを訂正するためのパリティデータを作成し、前記複数のメモリユニットのうち、前記取得データを記録するメモリユニットと前記パリティデータを記録するメモリユニットとを、予め設定された規則に従って順次決定し、前記複数のメモリユニットへ向けて、前記取得データ又はパリティデータのうち対応する書込みデータを出力し、前記複数の書込みデータに前記ページ単位で誤り検出符号を付加し、前記誤り検出符号を付加した書込みデータを前記複数のメモリユニットの半導体メモリへそれぞれ書き込み、前記複数のメモリユニットそれぞれから前記ページ単位でデータを読み出し、前記複数の読出しデータにおけるデータ誤りを前記誤り検出符号に基づいて検出し、前記データ誤りが検出された特定の読出しデータを、前記複数の読出しデータのうち前記特定の読出しデータ以外の読出しデータに基づいて復元することを特徴とする。
【００１１】
上記構成によるデータ蓄積装置及びデータ書込み／読出し方法では、誤り検出部は、ＲＡＩＤ制御部からの書込みデータに対して１ページ単位で誤り検出符号を付加する。そして、メモリユニットは、誤り検出符号が付加された書込みデータを１ページ単位で半導体メモリに書き込むようにしている。これにより、半導体メモリの故障を、半導体メモリの書込み単位である１ページ単位で検出することが可能となる。
【発明の効果】
【００１２】
この発明によれば、メモリチップが故障した場合であっても、データを復元することが可能なデータ蓄積装置及びデータ書込み／読出し方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るデータ蓄積装置の機能構成を示すブロック図である。
【図２】図１のデータ蓄積装置における符号化データ又はパリティデータに対する書込み時の処理を示す図である。
【図３】図１のメモリ１４２−１〜１４２−４に記録されたデータの模式図を示す。
【図４】図１のＲＡＩＤ制御部１２がデータを復元する際のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら本発明に係るデータ蓄積装置の実施の形態について詳細に説明する。
【００１５】
図１は、本発明の一実施形態に係るデータ蓄積装置の機能構成を示すブロック図である。図１におけるデータ蓄積装置は、エンコーダ１１、ＲＡＩＤ（Redundant Arrays of Independent Disks）制御部１２、誤り検出部１３−１〜１３−４、メモリユニット１４−１〜１４−４及びデコーダ１５を具備する。データ蓄積装置は、ＲＡＩＤ５を採用した構造をしている。
【００１６】
エンコーダ１１及びデコーダ１５は、ＲＡＩＤ制御部１２と接続する。ＲＡＩＤ制御部１２には、誤り検出部１３−１〜１３−４が接続されており、この誤り検出部１３−１〜１３−４には、メモリユニット１４−１〜１４−４が接続されている。
【００１７】
メモリユニット１４−１〜１４−４は、ＥＣＣ付加部１４１−１〜１４１−４、メモリ１４２−１〜１４２−４をそれぞれ備える。メモリ１４２−１は、メモリ制御部１４２１−１及びフラッシュメモリ等の半導体メモリからなるメモリチップ１４２２−１１〜１４２２−１３２を備える。なお、メモリ１４２−２〜１４２−４は、メモリ１４２−１と同様の構成をしている。
【００１８】
エンコーダ１１は、カメラ等から映像データを取得し、この映像データを予め設定された符号化方式で符号化する。エンコーダ１１は、符号化データをＲＡＩＤ制御部１２へ出力する。
【００１９】
ＲＡＩＤ制御部１２は、データの書込み時には、符号化データを記録するメモリユニットと、パリティデータを記録するメモリユニットとを予め設定された規則に従って順次決定する。このとき、パリティデータは、符号化データと、パリティデータとで偶数個（零個を含む）の“１”を含むように調整されている。そして、ＲＡＩＤ制御部１２は、誤り検出部１３−１〜１３−４へ、接続したメモリユニット１４−１〜１４−４に応じた符号化データ又はパリティデータを分散して出力する。このとき、ＲＡＩＤ制御部１２は、符号化データ及びパリティデータを、メモリチップ１４２２−１〜１４２２−３２の書込み単位である１ページ単位で出力する。なお、書込み単位である１ページの容量は、メモリチップ毎に予め決定されている。
【００２０】
また、ＲＡＩＤ制御部１２は、データの読出し時には、誤り検出部１３−１〜１３−４からの符号化データをデコーダ１５へ出力する。ここで、ＲＡＩＤ制御部１２は、符号化データにエラーが含まれている場合は、パリティデータに基づいて符号化データを復元する。復元された符号化データは、デコーダ１５へ出力される。
【００２１】
デコーダ１５は、ＲＡＩＤ制御部１２から出力された符号化データを、エンコーダ１１における符号化方式に応じた復号化方式により復号化する。デコーダ１５は、復号化したデータを外部へ出力する。
【００２２】
誤り検出部１３−１〜１３−４は、データ書込み時には、ＲＡＩＤ制御部１２から出力されたデータに対して、１ページ単位でチェックサム等の誤り検出符号を付加する。誤り検出部１３−１〜１３−４は、誤り検出符号を付加したデータをメモリユニット１４−１〜１４−４へそれぞれ出力する。
【００２３】
また、誤り検出部１３−１〜１３−４は、データの読出し時には、メモリユニット１４−１〜１４−４からのデータに対して、誤り検出符号に基づいて誤り検出を行う。誤り検出部１３−１〜１３−４は、誤りを検出した場合、ＲＡＩＤ制御部１２へ検出信号を出力する。
【００２４】
メモリユニット１４−１〜１４−４は、誤り検出部１３−１〜１３−４からのデータを記録する。ここでは、メモリユニット１４−１での処理を代表して説明する。
【００２５】
メモリユニット１４−１において、ＥＣＣ付加部１４１−１は、データの書込み時には、誤り検出部１３−１からのデータに対してビット誤り訂正符号であるＥＣＣを付加する。ＥＣＣが付加されたデータは、メモリ１４２−１へ出力される。
【００２６】
メモリ１４２−１において、メモリ制御部１４２１−１は、ＥＣＣ付加部１４１−１からのデータを受信すると、メモリチップ１４２２−１１〜１４２２−１３２に受信したデータを分割して並列にページ単位で書き込む。
【００２７】
また、メモリユニット１４−１〜１４−４は、読出し時には、記録された符号化データ又はパリティデータを誤り検出部１３−１〜１３−４へ出力する。ここでは、メモリユニット１４−１での処理を代表して説明する。
【００２８】
メモリ制御部１４２１−１は、メモリチップ１４２２−１１〜１４２２−１３２に記録されたデータを読み出し、ＥＣＣ付加部１４１−１へ出力する。
【００２９】
ＥＣＣ付加部１４１−１は、メモリ１４２−１から読み出されたデータのビット誤りを、ＥＣＣに基づいて訂正する。ＥＣＣ付加部１４１−１は、ビット誤りを訂正したデータを誤り検出部１３−１へ出力する。
【００３０】
次に、上記構成における動作を説明する。
【００３１】
図２は、本発明の一実施形態に係るデータ蓄積装置における符号化データ又はパリティデータに対する書込み時の処理を示す模式図である。なお、符号化データとパリティデータとは同様の構造を採るため、誤り検出部１３−１〜１３−４及びＥＣＣ付加部１４１−１〜１４１−４において同様の処理が施される。そのため、ここでは、符号化データについて説明する。また、本実施形態では、１ページの容量を２０４８ｂｙｔｅとするが、本発明における１ページの容量はこの値に限定される訳ではない。
【００３２】
ＲＡＩＤ制御部１２からは、符号化データが１ページ単位で出力される。このとき、図２に示すように、２０４８ｂｙｔｅ中、２０３１ｂｙｔｅには実データが格納されているが、１７ｂｙｔｅは空となっている。
【００３３】
誤り検出部１３−１〜１３−４は、ＲＡＩＤ制御部１２からの符号化データに対して、実データの後に１ｂｙｔｅのチェックサムを付加する。
【００３４】
ＥＣＣ付加部１４１−１〜１４１−４は、誤り検出部１３−１〜１３−４からの符号化データに対して、チェックサムの後に１６ｂｙｔｅのＥＣＣを付加する。これにより、２０４８ｂｙｔｅの全てが埋まる。ＥＣＣが付加された符号化データは、メモリ制御部１４２１−１によりメモリチップ１４２２−１１〜１４２２−１３２へ書き込まれる。なお、メモリ制御部１４２１−２〜１４２１−４は、メモリチップ１４２２−２１〜１４２２−２３２，１４２２−３１〜１４２２−３３２，１４２２−４１〜１４２２−４３２に対してもＥＣＣ付加後の符号化データを同様に書き込む。
【００３５】
図３は、上述の書込み処理によりメモリ１４２−１〜１４２−４に記録されたデータの模式図を示す。図３において、Ｄ１１，Ｄ１２，Ｄ１３…は符号化データを示し、Ｐ１０，Ｐ２０，Ｐ３０…はパリティデータを示す。ここで、符号化データ及びパリティデータは、メモリチップの書込み単位である１ページ単位で書き込まれている。また、パリティデータを記録するメモリチップは、ＲＡＩＤ制御部１２により、異なるメモリチップへページ単位で順次割り当てられる。
【００３６】
図４は、本発明の一実施形態に係るデータ蓄積装置におけるＲＡＩＤ制御部１２がデータを復元する際のフローチャートである。
【００３７】
ＲＡＩＤ制御部１２は、誤り検出部１３−１〜１３−４のうちいずれかの誤り検出部から検出信号があったか否かを判断する（ステップＳ４１）。ＲＡＩＤ制御部１２は、検出信号があった場合（ステップＳ４１のＹｅｓ）、検出信号があった誤り検出部１３−１〜１３−４からの読出しデータにエラーがあったと判断する。ＲＡＩＤ制御部１２は、エラーのあったデータが符号化データであるか否かを判断する（ステップＳ４２）。ＲＡＩＤ制御部１２は、エラーのあったデータが符号化データであった場合（ステップＳ４２のＹｅｓ）、正常であった二つの符号化データと、パリティデータとに基づいて、エラーのあった符号化データを復元する（ステップＳ４３）。ＲＡＩＤ制御部１２は、読み出した符号化データをデコーダ１５へ出力する（ステップＳ４４）。
【００３８】
ＲＡＩＤ制御部１２は、ステップＳ４１において検出信号を受信しない場合（ステップＳ４１のＮｏ）、処理をステップＳ４４へ移行する。
【００３９】
ＲＡＩＤ制御部１２は、ステップＳ４２においてエラーのあったデータが符号化データで無い場合（ステップＳ４２）、処理をステップＳ４４へ移行する。
【００４０】
以上のように、上記一実施形態において、誤り検出部１３−１〜１３−４は、ＲＡＩＤ制御部１２から出力された信号に対して１ページ単位で誤り検出符号を付加する。そして、誤り検出部１３−１〜１３−４は、メモリユニット１４−１〜１４−４からの読出しデータを受け取った場合、付加した誤り検出符号に基づいて１ページ単位でエラーを検出するようにしている。これにより、メモリチップの故障を、メモリチップの書込み単位である１ページ単位で検出することが可能となる。
【００４１】
また、上記一実施形態において、ＲＡＩＤ制御部１２は、誤り検出部１３−１〜１３−４のいずれかによりエラーを検出した場合、エラーが検出された読出しデータを、正常な読出しデータで復元するようにしている。これにより、メモリチップが故障した場合、そのメモリチップに記録されたデータを復元することが可能となる。
【００４２】
なお、従来のＲＡＩＤ５を採用した装置では、２台以上のメモリユニットが故障すると、データの復元をすることが不可能である。このため、データの読み出しに失敗したメモリユニットは、故障したと扱われ、交換しなければならなかった。一方、本実施形態に係るデータ蓄積装置では、メモリチップの書込み単位で故障の有無を判別し、データを復元することが可能である。このため、メモリチップの一部分に故障があった場合であっても、メモリユニット全体の故障とはならず、メモリチップの一部に故障があったメモリユニットを継続して使用することが可能となる。
【００４３】
したがって、本発明に係るデータ蓄積装置及びデータ書込み／読出し方法では、メモリチップが故障した場合であっても、データを復元することができる。これにより、より信頼性の高いデータ蓄積装置を実現することができる。
【００４４】
なお、この発明は上記一実施形態に限定されるものではない。例えば、上記一実施形態におけるデータ蓄積装置は、ＲＡＩＤ５を採用しているが、パリティデータを作成するＲＡＩＤ方式であるならば、ＲＡＩＤレベルはＲＡＩＤ５に限定される訳ではない。例えば、ＲＡＩＤ３及びＲＡＩＤ４等であっても同様に実施可能である。
【００４５】
また、上記一実施形態では、エンコーダ１１により映像データを符号化し、符号化データをＲＡＩＤ制御部１２へ出力する例について説明したが、外部から符号化データを受け取り、その符号化データをＲＡＩＤ制御部１２へ出力する場合であっても同様に実施可能である。
【００４６】
また、上記一実施形態では、ＥＣＣ付加部１４１−１〜１４１−４によりＥＣＣを付加する例について説明したが、ビット誤り訂正符号はＥＣＣに限定される訳ではない。例えば、ＣＲＣ等であっても同様に実施可能である。
【００４７】
また、上記一実施形態では、ＥＣＣ付加部１４１−１〜１４１−４によりＥＣＣを付加する例について説明したが、ＥＣＣ付加部１４１−１〜１４１−４を具備しない場合であっても同様に実施可能である。
【００４８】
さらに、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【符号の説明】
【００４９】
１１…エンコーダ
１２…ＲＡＩＤ制御部
１３−１〜１３−４…誤り検出部
１４−１〜１４−４…メモリユニット
１４１−１〜１４１−４…ＥＣＣ付加部
１４２−１〜１４２−４…メモリ
１４２１−１〜１４２１−４…メモリ制御部
１４２２−１１〜１４２２−１３２，１４２２−２１〜１４２２−２３２，１４２２−３１〜１４２２−３３２，１４２２−４１〜１４２２−４３２…メモリチップ
１５…デコーダ
【図１】
2011060217.tif 000003
【図２】
2011060217.tif 000004
【図３】
2011060217.tif 000005
【図４】
2011060217.tif 000006