説明

データ蓄積装置及びデータ書込み/読出し方法

【課題】メモリチップが故障した場合であっても、データを復元することが可能なデータ蓄積装置及びデータ書込み/読出し方法を提供する。
【解決手段】誤り検出部13−1〜13−4は、RAID制御部12からの書込みデータに対して1ページ単位で誤り検出符号を付加する。そして、メモリユニットは、誤り検出符号が付加された書込みデータを1ページ単位で半導体メモリに書き込む。また、誤り検出部13−1〜13−4は、読出し時には、メモリユニット14−1〜14−4からの読出しデータにデータ誤りがあるか否かを、誤り検出符号に基づいて行う。RAID制御部12は、データ誤りが検出された場合、誤りが検出された読出しデータを、他の読出しデータに基づいて復元する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、RAID制御方式によりデータを蓄積するデータ蓄積装置及びデータ書込み/読出し方法に関する。
【背景技術】
【0002】
近年、大容量かつ高信頼性等の観点から、データ蓄積装置においてRAID(Redundant Arrays of Independent Disks)技術が頻繁に採用されている。RAID技術を採用することで、データ蓄積装置に具備される複数のメモリユニットのうち1台のメモリユニットが故障した場合であっても、データ蓄積装置に蓄積されたデータの消失を防ぐことが可能となる。例えば、4台のメモリユニットを備え、RAID5を採用するデータ蓄積装置の場合、データ蓄積装置のRAID制御部は、取得したデータとパリティデータとをメモリユニットの書込み単位で分散し、それぞれを4台のメモリユニットに記録させる。これにより、4台のメモリユニットのうちいずれか1台が壊れても、残りの3台のメモリユニットに基づいてデータを復元することが可能となる。
【0003】
ところで、近年、フラッシュメモリ等の半導体メモリは、稼働部分がなく、信頼性が高いという利点から、データ蓄積装置のメモリユニットに頻繁に用いられている。この種のメモリユニットは、半導体メモリから成るメモリチップを複数備え、このメモリチップにデータを記録するようにしている。
【0004】
しかしながら、メモリチップを複数備えたメモリユニットにおいては、書込み回数の超過等の理由により、メモリチップが壊れる場合がある。このような場合、壊れたメモリチップからデータを読み出そうとすると、誤ったデータが再生され、再生画像が乱れてしまう。このとき、RAID技術を用いたデータの復元はメモリユニット単位で行われるため、壊れたメモリチップから読み出されたデータを復元することは不可能であるという問題があった。
【0005】
なお、メモリユニット内に入力されたデータに対してECC(Error Correcting Code)等のビット誤り訂正符号を付加することで、ビット誤りを訂正する方法が提案されているが(例えば、特許文献1参照)、この方法では、メモリチップが壊れた場合に対応することができない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−323434号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
以上のように、従来のデータ蓄積装置では、メモリチップが故障した場合、このメモリチップから読み出されたデータを復元することができなかった。
【0008】
この発明は上記事情によりなされたもので、その目的は、メモリチップが故障した場合であっても、データを復元することが可能なデータ蓄積装置及びデータ書込み/読出し方法を提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明に係るデータ蓄積装置は、入力されたデータを予め設定されたページ単位で書込み可能な半導体メモリを備えた複数のメモリユニットをアレイ状に具備するデータ蓄積装置において、取得したデータを復元するためのパリティデータを作成し、前記複数のメモリユニットのうち、前記取得データを記録するメモリユニットと前記パリティデータを記録するメモリユニットとを、予め設定された規則に従って順次決定し、前記複数のメモリユニットがそれぞれ接続された複数の接続線へ、前記取得データ又はパリティデータのうち対応する書込みデータを出力するRAID制御部と、前記複数の接続線毎に配置され、それぞれが前記RAID制御部からの書込みデータに前記ページ単位で誤り検出符号を付加し、前記接続線と接続したメモリユニットへ出力する複数の誤り検出部とを具備し、前記複数のメモリユニットは、前記誤り検出部からのデータを前記半導体メモリに書き込むことを特徴とする。
【0010】
また、本発明に係るデータ書込み/読出し方法は、予め設定されたページ単位でデータの書込み/読出しが可能な半導体メモリを備えた複数のメモリユニットをアレイ状に具備するデータ蓄積装置で用いられるデータ書込み/読出し方法であって、取得したデータを訂正するためのパリティデータを作成し、前記複数のメモリユニットのうち、前記取得データを記録するメモリユニットと前記パリティデータを記録するメモリユニットとを、予め設定された規則に従って順次決定し、前記複数のメモリユニットへ向けて、前記取得データ又はパリティデータのうち対応する書込みデータを出力し、前記複数の書込みデータに前記ページ単位で誤り検出符号を付加し、前記誤り検出符号を付加した書込みデータを前記複数のメモリユニットの半導体メモリへそれぞれ書き込み、前記複数のメモリユニットそれぞれから前記ページ単位でデータを読み出し、前記複数の読出しデータにおけるデータ誤りを前記誤り検出符号に基づいて検出し、前記データ誤りが検出された特定の読出しデータを、前記複数の読出しデータのうち前記特定の読出しデータ以外の読出しデータに基づいて復元することを特徴とする。
【0011】
上記構成によるデータ蓄積装置及びデータ書込み/読出し方法では、誤り検出部は、RAID制御部からの書込みデータに対して1ページ単位で誤り検出符号を付加する。そして、メモリユニットは、誤り検出符号が付加された書込みデータを1ページ単位で半導体メモリに書き込むようにしている。これにより、半導体メモリの故障を、半導体メモリの書込み単位である1ページ単位で検出することが可能となる。
【発明の効果】
【0012】
この発明によれば、メモリチップが故障した場合であっても、データを復元することが可能なデータ蓄積装置及びデータ書込み/読出し方法を提供することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の一実施形態に係るデータ蓄積装置の機能構成を示すブロック図である。
【図2】図1のデータ蓄積装置における符号化データ又はパリティデータに対する書込み時の処理を示す図である。
【図3】図1のメモリ142−1〜142−4に記録されたデータの模式図を示す。
【図4】図1のRAID制御部12がデータを復元する際のフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら本発明に係るデータ蓄積装置の実施の形態について詳細に説明する。
【0015】
図1は、本発明の一実施形態に係るデータ蓄積装置の機能構成を示すブロック図である。図1におけるデータ蓄積装置は、エンコーダ11、RAID(Redundant Arrays of Independent Disks)制御部12、誤り検出部13−1〜13−4、メモリユニット14−1〜14−4及びデコーダ15を具備する。データ蓄積装置は、RAID5を採用した構造をしている。
【0016】
エンコーダ11及びデコーダ15は、RAID制御部12と接続する。RAID制御部12には、誤り検出部13−1〜13−4が接続されており、この誤り検出部13−1〜13−4には、メモリユニット14−1〜14−4が接続されている。
【0017】
メモリユニット14−1〜14−4は、ECC付加部141−1〜141−4、メモリ142−1〜142−4をそれぞれ備える。メモリ142−1は、メモリ制御部1421−1及びフラッシュメモリ等の半導体メモリからなるメモリチップ1422−11〜1422−132を備える。なお、メモリ142−2〜142−4は、メモリ142−1と同様の構成をしている。
【0018】
エンコーダ11は、カメラ等から映像データを取得し、この映像データを予め設定された符号化方式で符号化する。エンコーダ11は、符号化データをRAID制御部12へ出力する。
【0019】
RAID制御部12は、データの書込み時には、符号化データを記録するメモリユニットと、パリティデータを記録するメモリユニットとを予め設定された規則に従って順次決定する。このとき、パリティデータは、符号化データと、パリティデータとで偶数個(零個を含む)の“1”を含むように調整されている。そして、RAID制御部12は、誤り検出部13−1〜13−4へ、接続したメモリユニット14−1〜14−4に応じた符号化データ又はパリティデータを分散して出力する。このとき、RAID制御部12は、符号化データ及びパリティデータを、メモリチップ1422−1〜1422−32の書込み単位である1ページ単位で出力する。なお、書込み単位である1ページの容量は、メモリチップ毎に予め決定されている。
【0020】
また、RAID制御部12は、データの読出し時には、誤り検出部13−1〜13−4からの符号化データをデコーダ15へ出力する。ここで、RAID制御部12は、符号化データにエラーが含まれている場合は、パリティデータに基づいて符号化データを復元する。復元された符号化データは、デコーダ15へ出力される。
【0021】
デコーダ15は、RAID制御部12から出力された符号化データを、エンコーダ11における符号化方式に応じた復号化方式により復号化する。デコーダ15は、復号化したデータを外部へ出力する。
【0022】
誤り検出部13−1〜13−4は、データ書込み時には、RAID制御部12から出力されたデータに対して、1ページ単位でチェックサム等の誤り検出符号を付加する。誤り検出部13−1〜13−4は、誤り検出符号を付加したデータをメモリユニット14−1〜14−4へそれぞれ出力する。
【0023】
また、誤り検出部13−1〜13−4は、データの読出し時には、メモリユニット14−1〜14−4からのデータに対して、誤り検出符号に基づいて誤り検出を行う。誤り検出部13−1〜13−4は、誤りを検出した場合、RAID制御部12へ検出信号を出力する。
【0024】
メモリユニット14−1〜14−4は、誤り検出部13−1〜13−4からのデータを記録する。ここでは、メモリユニット14−1での処理を代表して説明する。
【0025】
メモリユニット14−1において、ECC付加部141−1は、データの書込み時には、誤り検出部13−1からのデータに対してビット誤り訂正符号であるECCを付加する。ECCが付加されたデータは、メモリ142−1へ出力される。
【0026】
メモリ142−1において、メモリ制御部1421−1は、ECC付加部141−1からのデータを受信すると、メモリチップ1422−11〜1422−132に受信したデータを分割して並列にページ単位で書き込む。
【0027】
また、メモリユニット14−1〜14−4は、読出し時には、記録された符号化データ又はパリティデータを誤り検出部13−1〜13−4へ出力する。ここでは、メモリユニット14−1での処理を代表して説明する。
【0028】
メモリ制御部1421−1は、メモリチップ1422−11〜1422−132に記録されたデータを読み出し、ECC付加部141−1へ出力する。
【0029】
ECC付加部141−1は、メモリ142−1から読み出されたデータのビット誤りを、ECCに基づいて訂正する。ECC付加部141−1は、ビット誤りを訂正したデータを誤り検出部13−1へ出力する。
【0030】
次に、上記構成における動作を説明する。
【0031】
図2は、本発明の一実施形態に係るデータ蓄積装置における符号化データ又はパリティデータに対する書込み時の処理を示す模式図である。なお、符号化データとパリティデータとは同様の構造を採るため、誤り検出部13−1〜13−4及びECC付加部141−1〜141−4において同様の処理が施される。そのため、ここでは、符号化データについて説明する。また、本実施形態では、1ページの容量を2048byteとするが、本発明における1ページの容量はこの値に限定される訳ではない。
【0032】
RAID制御部12からは、符号化データが1ページ単位で出力される。このとき、図2に示すように、2048byte中、2031byteには実データが格納されているが、17byteは空となっている。
【0033】
誤り検出部13−1〜13−4は、RAID制御部12からの符号化データに対して、実データの後に1byteのチェックサムを付加する。
【0034】
ECC付加部141−1〜141−4は、誤り検出部13−1〜13−4からの符号化データに対して、チェックサムの後に16byteのECCを付加する。これにより、2048byteの全てが埋まる。ECCが付加された符号化データは、メモリ制御部1421−1によりメモリチップ1422−11〜1422−132へ書き込まれる。なお、メモリ制御部1421−2〜1421−4は、メモリチップ1422−21〜1422−232,1422−31〜1422−332,1422−41〜1422−432に対してもECC付加後の符号化データを同様に書き込む。
【0035】
図3は、上述の書込み処理によりメモリ142−1〜142−4に記録されたデータの模式図を示す。図3において、D11,D12,D13…は符号化データを示し、P10,P20,P30…はパリティデータを示す。ここで、符号化データ及びパリティデータは、メモリチップの書込み単位である1ページ単位で書き込まれている。また、パリティデータを記録するメモリチップは、RAID制御部12により、異なるメモリチップへページ単位で順次割り当てられる。
【0036】
図4は、本発明の一実施形態に係るデータ蓄積装置におけるRAID制御部12がデータを復元する際のフローチャートである。
【0037】
RAID制御部12は、誤り検出部13−1〜13−4のうちいずれかの誤り検出部から検出信号があったか否かを判断する(ステップS41)。RAID制御部12は、検出信号があった場合(ステップS41のYes)、検出信号があった誤り検出部13−1〜13−4からの読出しデータにエラーがあったと判断する。RAID制御部12は、エラーのあったデータが符号化データであるか否かを判断する(ステップS42)。RAID制御部12は、エラーのあったデータが符号化データであった場合(ステップS42のYes)、正常であった二つの符号化データと、パリティデータとに基づいて、エラーのあった符号化データを復元する(ステップS43)。RAID制御部12は、読み出した符号化データをデコーダ15へ出力する(ステップS44)。
【0038】
RAID制御部12は、ステップS41において検出信号を受信しない場合(ステップS41のNo)、処理をステップS44へ移行する。
【0039】
RAID制御部12は、ステップS42においてエラーのあったデータが符号化データで無い場合(ステップS42)、処理をステップS44へ移行する。
【0040】
以上のように、上記一実施形態において、誤り検出部13−1〜13−4は、RAID制御部12から出力された信号に対して1ページ単位で誤り検出符号を付加する。そして、誤り検出部13−1〜13−4は、メモリユニット14−1〜14−4からの読出しデータを受け取った場合、付加した誤り検出符号に基づいて1ページ単位でエラーを検出するようにしている。これにより、メモリチップの故障を、メモリチップの書込み単位である1ページ単位で検出することが可能となる。
【0041】
また、上記一実施形態において、RAID制御部12は、誤り検出部13−1〜13−4のいずれかによりエラーを検出した場合、エラーが検出された読出しデータを、正常な読出しデータで復元するようにしている。これにより、メモリチップが故障した場合、そのメモリチップに記録されたデータを復元することが可能となる。
【0042】
なお、従来のRAID5を採用した装置では、2台以上のメモリユニットが故障すると、データの復元をすることが不可能である。このため、データの読み出しに失敗したメモリユニットは、故障したと扱われ、交換しなければならなかった。一方、本実施形態に係るデータ蓄積装置では、メモリチップの書込み単位で故障の有無を判別し、データを復元することが可能である。このため、メモリチップの一部分に故障があった場合であっても、メモリユニット全体の故障とはならず、メモリチップの一部に故障があったメモリユニットを継続して使用することが可能となる。
【0043】
したがって、本発明に係るデータ蓄積装置及びデータ書込み/読出し方法では、メモリチップが故障した場合であっても、データを復元することができる。これにより、より信頼性の高いデータ蓄積装置を実現することができる。
【0044】
なお、この発明は上記一実施形態に限定されるものではない。例えば、上記一実施形態におけるデータ蓄積装置は、RAID5を採用しているが、パリティデータを作成するRAID方式であるならば、RAIDレベルはRAID5に限定される訳ではない。例えば、RAID3及びRAID4等であっても同様に実施可能である。
【0045】
また、上記一実施形態では、エンコーダ11により映像データを符号化し、符号化データをRAID制御部12へ出力する例について説明したが、外部から符号化データを受け取り、その符号化データをRAID制御部12へ出力する場合であっても同様に実施可能である。
【0046】
また、上記一実施形態では、ECC付加部141−1〜141−4によりECCを付加する例について説明したが、ビット誤り訂正符号はECCに限定される訳ではない。例えば、CRC等であっても同様に実施可能である。
【0047】
また、上記一実施形態では、ECC付加部141−1〜141−4によりECCを付加する例について説明したが、ECC付加部141−1〜141−4を具備しない場合であっても同様に実施可能である。
【0048】
さらに、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【符号の説明】
【0049】
11…エンコーダ
12…RAID制御部
13−1〜13−4…誤り検出部
14−1〜14−4…メモリユニット
141−1〜141−4…ECC付加部
142−1〜142−4…メモリ
1421−1〜1421−4…メモリ制御部
1422−11〜1422−132,1422−21〜1422−232,1422−31〜1422−332,1422−41〜1422−432…メモリチップ
15…デコーダ

【特許請求の範囲】
【請求項1】
入力されたデータを予め設定されたページ単位で書込み可能な半導体メモリを備えた複数のメモリユニットをアレイ状に具備するデータ蓄積装置において、
取得したデータを復元するためのパリティデータを作成し、前記複数のメモリユニットのうち、前記取得データを記録するメモリユニットと前記パリティデータを記録するメモリユニットとを、予め設定された規則に従って順次決定し、前記複数のメモリユニットがそれぞれ接続された複数の接続線へ、前記取得データ又はパリティデータのうち対応する書込みデータを出力するRAID制御部と、
前記複数の接続線毎に配置され、それぞれが前記RAID制御部からの書込みデータに前記ページ単位で誤り検出符号を付加し、前記接続線と接続したメモリユニットへ出力する複数の誤り検出部と
を具備し、
前記複数のメモリユニットは、前記誤り検出部からのデータを前記半導体メモリに書き込むことを特徴とするデータ蓄積装置。
【請求項2】
前記複数のメモリユニットは、前記半導体メモリから前記ページ単位でデータを読み出し、前記読出しデータを前記複数の誤り検出部のうち、自ユニットと接続した誤り検出部へ出力し、
前記複数の誤り検出部は、前記メモリユニットからの読出しデータを前記RAID制御部へ出力すると共に、前記読出しデータにおけるデータ誤りを前記誤り検出符号に基づいて検出し、前記データ誤りの検出に応じて検出信号を前記RAID制御部へ出力し、
前記RAID制御部は、前記検出信号を受信した場合、前記データ誤りが検出された特定の読出しデータを、前記複数の読出しデータのうち前記特定の読出しデータ以外の読出しデータに基づいて復元することを特徴とする請求項1記載のデータ蓄積装置。
【請求項3】
前記メモリユニットは、前記誤り検出部からの書込みデータに対してビット誤り訂正符号を付加して前記半導体メモリに記録させるビット誤り訂正部をさらに備えることを特徴とする請求項1記載のデータ蓄積装置。
【請求項4】
予め設定されたページ単位でデータの書込み/読出しが可能な半導体メモリを備えた複数のメモリユニットをアレイ状に具備するデータ蓄積装置で用いられるデータ書込み/読出し方法であって、
取得したデータを訂正するためのパリティデータを作成し、
前記複数のメモリユニットのうち、前記取得データを記録するメモリユニットと前記パリティデータを記録するメモリユニットとを、予め設定された規則に従って順次決定し、
前記複数のメモリユニットへ向けて、前記取得データ又はパリティデータのうち対応する書込みデータを出力し、
前記複数の書込みデータに前記ページ単位で誤り検出符号を付加し、
前記誤り検出符号を付加した書込みデータを前記複数のメモリユニットの半導体メモリへそれぞれ書き込み、
前記複数のメモリユニットそれぞれから前記ページ単位でデータを読み出し、
前記複数の読出しデータにおけるデータ誤りを前記誤り検出符号に基づいて検出し、
前記データ誤りが検出された特定の読出しデータを、前記複数の読出しデータのうち前記特定の読出しデータ以外の読出しデータに基づいて復元することを特徴とするデータ書込み/読出し方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−60217(P2011−60217A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−212188(P2009−212188)
【出願日】平成21年9月14日(2009.9.14)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】