(57)【要約】【課題】  冗長化した半導体メモリのデータ記録制御を行う従来のメモリ制御装置は、半導体メモリに格納した符号化データを復号する場合に、半導体メモリの故障情報を利用していないため、宇宙環境での冗長化されたデータの記録再生に係る信頼性を十分に高められなくなっている。【解決手段】  ハミング符号を用いて複数の半導体メモリに冗長化してデータを記録し、ハミング符号を復号して、データが誤りの場合にはメモリ故障と判定してデータ誤りのある半導体メモリを除いてから多数決処理を行うことにより、冗長化前の正しいデータを再生することができる。【選択図】      図１
2013025560.tif 000002
【特許請求の範囲】
【請求項１】
入力データから冗長化した複数の符合化データを生成し、符合化データを複数の半導体メモリにそれぞれ記録する冗長化処理部と、
上記半導体メモリの故障、または上記半導体メモリに記録されたデータのエラーを検出する故障検出部と、
上記故障検出部によって故障またはデータエラーの検出されない半導体メモリについて、当該各半導体メモリに記録された符合化データから、元の入力データを復号化する冗長化復号処理部と、
を備えたメモリ制御装置。
【請求項２】
入力データから冗長化した複数の複製データを生成する多重冗長化処理部と、
上記多重冗長化処理部により生成された各複製データを、それぞれハミング符合化して半導体メモリに記録する複数のハミング符合化処理部と、
上記半導体メモリにそれぞれ記録されたデータをそれぞれ読み出して上記ハミング符号化されたデータを復号化するとともに、読み出したデータに誤りがない場合に復号化したデータを出力する複数のハミング符号復号化処理部と、
上記各ハミング符号復号化処理部から出力されたデータの多数決を取り、多数決の多いデータを元の上記入力データとして出力する多数決処理部と、
を備えたメモリ制御装置。
【請求項３】
入力データから冗長化したシンボルを含む複数のシンボルデータを生成し、各シンボルを半導体メモリにそれぞれ記録するリードソロモン符号化処理部と、
上記各半導体メモリの出力するステータス情報からエラー状態を検出した場合に、エラーの発生を通報するステータスリードと、
上記各半導体メモリにそれぞれ記録されたシンボルデータを読み出し、上記ステータスリードから通報されたエラーの発生したシンボルが記録された半導体メモリを特定し、エラーの発生していない半導体メモリから読み出したシンボルデータを用いて、エラーの発生したシンボルを訂正する消失訂正処理を行い、元の入力データを生成する復号処理部と、
を備えたメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、冗長化された複数の半導体メモリのデータの記録再生を制御するメモリ制御装置に関する。
【背景技術】
【０００２】
地球を周回する人工衛星や宇宙探査機等の宇宙機では、地上との通信ができない時間があり、その間にデータを蓄積しておく必要がある。データ蓄積はデータレコーダと呼ばれるデータ記録装置で行われる（例えば、特許文献１参照）。データレコーダは、半導体メモリを搭載することで記憶を行う。近年、データ取得量の増大により最新の半導体記憶素子を使用した大容量の半導体メモリが必要となっている。最新の半導体記憶素子はプロセスの微細化や複雑な制御を行うため故障率が高くなってきており、放射線や厳しい温度変化のある宇宙環境では信頼性を高める必要がある。そのための方法として、複数の半導体メモリを使用して冗長化することで信頼性を高める方法が知られている（例えば、特許文献２、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−１１０８９５
【特許文献２】特開昭６３−１５９９４４
【非特許文献】
【０００４】
【非特許文献１】Shu Lin, Daniel J. Costello,Jr., 「Error Control Conding」Second Edithion, P.217, 6.6 CORRECTION OF ERRORS AND ERASURES
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年の宇宙機に使用するデータ記録装置は、大容量化の要求に答えるために、半導体記憶素子として耐放射線に優れた宇宙用素子ではなく、通常の民生用部品を使用せざるを得なくなりつつある。データ記録装置では、冗長構成の半導体メモリを複数個並べて、メモリ制御装置（メモリコントローラ）によって、外部装置から入力された書き込み用データの各半導体メモリへの書き込み制御と、各半導体メモリからの読み出しデータの読み出し制御及び外部装置への出力制御を行う。
【０００６】
従来のメモリ制御装置は、外部装置から入力された書き込み用データに誤り訂正符号を付加する、または同じデータを複数生成するなどして、冗長化された複数のデータを生成する。冗長化された各データは、メモリ書き込み処理によって冗長構成の複数の半導体メモリにそれぞれ書き込まれる。半導体メモリに書き込まれたデータは、メモリ制御装置によって読み出され、復号処理されて外部装置に出力される、または多数決処理により１つのデータが外部装置に出力される。このような処理によって、複数の半導体メモリのうちいくつかが故障して、誤ったデータが読み出されるようなことになっても、誤り訂正符号の復号処理あるいは多数決処理によってメモリ故障の影響を受けることなく、正しいデータが読み出されるようになる。
【０００７】
しかしながら、近年の半導体記憶素子のプロセス微細化により、放射線に対して故障の確率が高まっているために、以下のような課題が生じる。
【０００８】
（１）プロセスの微細化により半導体メモリ単体での耐放射線能力が従来に比して弱いため、データ記録装置全体システムとしての耐故障能力をあげるためには冗長度を上げ、半導体メモリの個数を増やす必要がある。
（２）（１）で半導体メモリの個数を増やす結果、冗長化の規模が大きくなり、重量やコストの増加、半導体メモリの占有面積（フットプリント）の増加を抑えるために、単位当たりの記憶容量の小さい半導体メモリを利用することで、データ記録装置において実際に記録できる容量が低下することとなる。
【０００９】
この発明は係る課題を解決するためになされたものであり、冗長化された半導体メモリの個数増加を抑えながら、記録データの保持信頼性を確保するメモリ制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
この発明によるメモリ制御装置は、入力データから冗長化した複数の符合化データを生成し、符合化データを複数の半導体メモリにそれぞれ記録する冗長化処理部と、上記半導体メモリの故障、または上記半導体メモリに記録されたデータのエラーを検出する故障検出部と、上記故障検出部によって故障またはデータエラーの検出されない半導体メモリについて、当該各半導体メモリに記録された符合化データから、元の入力データを復号化する冗長化復号処理部と、を備えたものである。
【発明の効果】
【００１１】
この発明によれば、冗長化された半導体メモリの個数増加を抑えながら、記録データの保持信頼性を確保することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１によるメモリ制御装置の概念構成を示す図である。
【図２】実施の形態２によるメモリ制御装置の構成を示す図である。
【図３】実施の形態３によるメモリ制御装置の構成を示す図である。
【発明を実施するための形態】
【００１３】
実施の形態１．
図１は、この発明に係る実施の形態１によるメモリ制御装置の概念構成を示す図である。図１において、メモリ制御装置１は、冗長化処理部２と、冗長化復号処理部３と、故障検出部４を備えて構成され、ＣＰＵ、ＦＰＧＡ(Field Programable Gate Array)、ＡＳＩＣ(Application Specific Integrated Circuit)等に実装される。メモリ制御装置１は半導体メモリ５に接続される。半導体メモリ５は、半導体メモリ５−１、５−２、５−３、・・・、５−ＮからなるＮ（４以上の整数）個の複数の半導体メモリ群によって構成される。メモリ制御装置１と半導体メモリ５はデータ記録装置を構成する。各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎは、それぞれＳＲＡＭ、ＤＲＡＭ、ＮＡＮＤＦＬＡＳＨ、ＥＥＰＲＯＭ等によって構成される。
【００１４】
冗長化処理部２、冗長化復号処理部３、故障検出部４は、第１の制御処理もしくは第２の制御処理のいずれかの処理、またはその両方の処理が行われる。以下、ａ）第１の制御処理及びｂ）第２の制御処理のそれぞれの動作処理について説明する。
【００１５】
ａ）第１の制御処理
第１の制御処理において、冗長化処理部２は、多数決処理のためのデータ複製処理を実行するプログラムもしくは論理回路が備えられている。冗長化処理部２は、外部装置から供給された書き込み用データが入力され、入力された書き込み用データを複製してから符号化処理を行い、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎへ書き込みデータとして書き込む処理を行う。また、メモリ制御装置１は、外部装置から、半導体メモリ５の共通の指定されたアドレスに記録された書き込みデータを読み出すための読み出し要求指令（図示せず）が入力されたら、半導体メモリ５の指定されたアドレスから書き込みデータの読み出しを行う。故障位置検出部４は、この各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎから読み出された書き込みデータ（以下、読み出しデータとする）について復号化処理を行うとともに健全性をチェックして、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎの故障を検知する。故障位置検出部４は、故障検知によって故障した半導体メモリ５−ｍを特定する（ｍは１以上Ｎ以下の整数）。
【００１６】
冗長化復号処理部３は、半導体メモリ５−１、５−２、５−３、・・・、５−ｍ、・・・、５−Ｎからそれぞれ読み出された読み出しデータの中から、故障位置検出部４によって特定された故障した半導体メモリ５−ｍからの読み出しデータを取り除く。冗長化復号処理部３は、取り除いた記録データ以外の、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎの読み出しデータについて、多数決を取る処理を行う。冗長化復号処理部３は、多数決の結果に基づいて、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎ（ｍを除く）からの読み出しデータを外部装置に出力する。かくして、複数の半導体メモリ５−１、５−２、５−３、・・・、５−Ｎに記録されたデータを復号し、元の入力された書き込み用データを再構成する冗長化処理が行われる。このように、故障位置検出部４によって特定された故障した半導体メモリ５−ｍの情報を利用することで、Ｎ−２個以下のより多くのデータ破壊に対しても、冗長化復号処理部３が正しくデータを再構成できる処理を行うことが可能となる。
【００１７】
ｂ）第２の制御処理
次に、第２の制御処理において、冗長化処理部２は、入力された書き込み用データについて、誤り訂正符号の生成処理を実行するためのプログラムもしくは論理回路が備えられている。冗長化処理部２は、外部装置から供給された書き込み用データが入力され、このデータについて誤り訂正符号の生成処理を行い、入力された書き込み用データに生成した誤り訂正符号を付加して、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎにそれぞれ複製して、書き込みデータとして記録する。また、メモリ制御装置１は、外部装置から、半導体メモリ５の共通の指定されたアドレスに記録された書き込みデータを読み出すための読み出し要求指令（図示せず）が入力されたら、半導体メモリ５の指定されたアドレスから書き込みデータの読み出しを行う。故障位置検出部４は、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎから読み出した書き込みデータ（以下、読み出しデータとする）の健全性をチェックして、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎの故障を検知する。故障位置検出部４は、故障検知によって故障した半導体メモリ５−ｍの位置を特定する（ｍは１以上Ｎ以下の整数）。
【００１８】
冗長化復号処理部３は、故障位置検出部４によって特定された故障した半導体メモリ５−ｍの位置データを用いて、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎからそれぞれ読み出したデータについて、誤り訂正符号の復号計算としての消失訂正処理を行う（消失訂正処理については、例えば非特許文献１参照）。冗長化復号処理部３は、各半導体メモリ５−１、５−２、５−３、・・・、５−Ｎ（ｍを除く）からの読み出しデータに対して、消失訂正処理の結果データを外部装置に出力する。これらの冗長化処理によって、複数の半導体メモリ５−１、５−２、５−３、・・・、５−Ｎに記録された書き込みデータを復号し、元の入力された書き込み用データを再構成する処理を行うことができる。このように、故障位置検出部４によって特定された故障した半導体メモリ５−ｍの位置情報を利用することで、消失訂正処理により再生可能なより多くの個数のデータ破壊に対して、冗長化復号処理部３が正しくデータを再構成できる処理を行うことができる。
【００１９】
以上説明した通り、実施の形態１によるメモリ制御装置は、入力データから冗長化した複数の符合化データを生成し、符合化データを複数の半導体メモリ５にそれぞれ記録する冗長化処理部２と、上記半導体メモリ５の故障、または上記半導体メモリ５に記録されたデータのエラーを検出する故障検出部４と、上記故障検出部４によって故障またはデータエラーの検出されない半導体メモリ５について、当該各半導体メモリ５に記録された符合化データから、元の入力データを復号化する冗長化復号処理部３と、を備えたものである。故障した素子を特定する故障検出部４を備え、その特定した情報を利用することで、冗長化の規模を上げずにデータ記録装置の耐故障能力を高めることができる。これによって、放射線や温度変化の大きい厳しい使用環境下であっても、半導体メモリ５を使用したデータ記録装置のシステム信頼性を高めることが可能となる。
【００２０】
実施の形態２．
次に、実施の形態１で説明した第１の制御処理を行うメモリ制御装置の実施例として、この発明に係る実施の形態２によるメモリ制御装置について説明する。図２は、実施の形態２による上記第１の制御処理を行うメモリ制御装置の構成を示す図である。図２において、メモリ制御装置１１は、４重冗長化処理部１２と、図１の冗長化復号処理部３を構成する多数決処理部１３と、複数のハミング符号復号処理部１４と、複数のハミング符号化処理部１６と、複数のスイッチ１７（スイッチ１７−１、１７−２、１７−３、１７−４）から構成される。４重冗長化処理部１２は、複数のハミング符号化処理部１６とともに、図１で説明した冗長化処理部２を構成する。ハミング符号復号処理部１４は、図１で説明した故障検出部４を構成する。メモリ制御装置１１は、複数の半導体メモリ５としての、ＳＲＡＭ１５−１、ＳＲＡＭ１５−２、ＳＲＡＭ１５−３、ＳＲＡＭ１５−４からなるＳＲＡＭ（Static Random Access Memory）群に接続される。図２の例では、ハミング符号復号処理部１４、ハミング符号化処理部１６、スイッチ１７は４つ設けられ、ＳＲＡＭ１５は４つ設けられている。スイッチ１７は単極単投のリレースイッチである。メモリ制御装置１１は例えばＦＰＧＡによって回路が構成されている。多数決処理部１３は、複数のスイッチ１７−１、１７−２、１７−３、１７−４とともに、図１の冗長化復号処理部２を構成する。
【００２１】
４重冗長化処理部１２の出力端は、それぞれハミング符号化処理部１６の入力端に接続される。各ハミング符号化処理部１６の出力端は、それぞれＳＲＡＭ１５−１、１５−２、１５−３、１５−４の入力端に接続される。ＳＲＡＭ１５−１、１５−２、１５−３、１５−４の出力端は、それぞれスイッチ１７の一方の接点に接続される。各ハミング符号復号処理部１４の入力端は、それぞれＳＲＡＭ１５−１、１５−２、１５−３、１５−４から出力される読み出しデータが伝送される出力経路に接続される。また、ハミング符号復号処理部１４の出力端はスイッチ１７の開閉制御端子に接続される。スイッチ１７の他方の接点は、多数決処理部１３の入力端に接続される。
【００２２】
次に、実施の形態２によるメモリ制御装置１１の動作処理について説明する。
図２に例示するメモリ制御装置１１は、多数決処理のための４重化処理を行う。４重冗長化処理部１２は、外部装置から書き込み用データが入力される。４重冗長化処理部１２は、入力された書き込み用データを４つ複製し、それぞれを４つのＳＲＡＭ１５−１、１５−２、１５−３、１５−４に格納するように、複製した４つの書き込みデータを出力する。ハミング符号化処理部１６は、この複製された４つの書き込みデータ（すなわち、同一の書き込みデータ）に対して、それぞれハミング符号化処理を行う。これよって、故障検出部４を構成するハミング符号復号処理部１４による故障検出のための前段処理を行う。例えば（ｎ、ｋ）ハミング符号を使う場合、ハミング符号化処理部１６は、書き込みデータｘ（ｋビットのビット列）に対してそれぞれの生成行列Ｇ（ｋ行ｎ列で、後述の検査行列Ｈとの間にＨＧＴ＝ＧＨＴ＝０が成り立つ行列）の積を取り、ｙ（ｎビットのビット列）＝ｘ・Ｇを演算して、ハミング符号を生成する。ここで、ｋは情報数、ｎは符号長であり、ｎ＝２ｍ−１、ｋ＝ｍ−ｎ、ｍは任意の整数である。ハミング符号化処理部１６にてハミング符号化された書き込みデータは、それぞれＳＲＡＭ１５−１、１５−２、１５−３、１５−４に格納される。
このとき、書き込みデータを書き込んだメモリアドレスは、メモリ制御装置１１の入出力制御部（図示せず）によって管理され、外部装置に通知される。
なお、各ハミング符号化処理部１６は、それぞれ対応するＳＲＡＭ毎に異なるハミング符号を生成してもよい。また、書き込みデータを書き込むメモリアドレスは予め設定された固定のアドレスであってもよい。
【００２３】
メモリ制御装置１１の入出力制御部（図示せず）は、外部装置からの書き込みデータの読み出し要求指令が入力されたら、ＳＲＡＭ１５−１、１５−２、１５−３、１５−４における、メモリ制御装置１１によって管理された共通の指定されたメモリアドレスから、書き込みデータの読み出しを行う。
なお、予め外部装置に通知したメモリアドレスの中から、外部装置がメモリ制御装置１１の入出力制御部（図示せず）を介して、読み出しを行う特定のメモリアドレスを指定してもよい。また、読み出しを行うメモリアドレスは予め設定された固定のアドレスであってもよい。
【００２４】
各ハミング符号復号処理部１４は、ＳＲＡＭ１５−１、１５−２、１５−３、１５−４からそれぞれ読み出された書き込みデータ（以下、読み出しデータ）について、ハミング符号の復号化を行う。例えば上記（ｎ、ｋ）ハミング符号を使う場合、ハミング符号復号処理部１４は、読み出しデータｙに対してそれぞれの検査行列Ｈ（ｍ行ｎ列で、全ての列要素がゼロではなくかつ相違である、生成行列Ｇに対応付けられた行列）の転置行列の積を取り、ｙ・ＨＴを演算する。この演算の結果が零ベクトルであるなら誤りが無いと判断して、読み出しデータｙに対して生成行列Ｇの逆行列の積を取ることで、元のビット列ｘを得るための復号化を行う。一方、ｙ・ＨＴの演算結果が非零ベクトルであるならば誤りがあると判定する。ハミング符号復号処理部１４は、誤りがあると判定された場合に、誤りがあると判定された当該ＳＲＡＭ１５−ｐ（ｐは１以上４以下の整数）において、データエラーが生じていることを検知する。このデータエラーは、例えばデータを格納しているＳＲＡＭ１５−ｐが故障している場合や、外部から入射する放射線の影響によりＳＲＡＭ１５−ｐの格納データの一部にビット反転が生じた場合などに発生する。
【００２５】
なお、ｙ・ＨＴの演算結果が非零ベクトルとなり、データエラーが生じている場合であっても、エラービットが所定数以下である場合に、検査行列Ｈと見比べたり、パリティビットを適用するなどして、誤り符号列を検出して適宜誤り符号列を訂正する誤り訂正処理を行ってもよい。
また、各ハミング符号化処理部１６が、それぞれの対応するＳＲＡＭ毎に異なる生成行列Ｇによりハミング符号を生成した場合には、各ハミング符号復号処理部１４が各ハミング符号の生成行列Ｇに対応したＳＲＡＭ毎に異なる検査行列Ｈを用いて、元のビット列ｘを得るための復号化を行ってもよい。
【００２６】
各ハミング符号復号処理部１４は、それぞれが接続されたＳＲＡＭ１５−ｐにおいてデータエラーが生じていることを検知した場合は、そのメモリ（ＳＲＡＭ１５−ｐ）から読み出される読み出しデータの出力経路上のスイッチ１７を開き、ＯＦＦ状態とするようにスイッチの開閉制御を行う。この場合、ＳＲＡＭ１５−ｐから読み出されたデータは多数決処理部１３に出力されない。
【００２７】
一方、各ハミング符号復号処理部１４は、それぞれの接続されるＳＲＡＭ１５−ｐにおいてデータエラーの発生が検知されなかった場合（すなわち誤りが無い）は、そのメモリ（ＳＲＡＭ１５−ｐ）から読み出される読み出しデータの出力経路上のスイッチ１７を閉じ、ＯＮ状態とするようにスイッチの開閉制御を行う。
なお、スイッチ１７は、通常時にＯＮ状態となるものであってもよい。
【００２８】
ＳＲＡＭ１５−ｐを除く各ＳＲＡＭ１５−１、１５−２、１５−３、１５−４からそれぞれ読み出される、データエラーの生じていない読み出しデータは、ＯＮ状態のスイッチ１７を通過して、多数決処理部１３に入力される。多数決処理部１３は、スイッチ１７を通過した読み出しデータの多数決を取り、正しいデータを決定し、決定された正しいデータを読み出しデータとして、データの読み出し要求指令を出した外部装置に出力する。
【００２９】
多数決処理部１３は、例えばＳＲＡＭ１５−１、１５−２、１５−３、１５−４から入力されてくる読み出しデータが、それぞれＡ、Ａ、Ａ、Ａ、Ｂであった場合は、最も多いＡを正しいデータとして決定する。
【００３０】
また、例えばＳＲＡＭ１５−２が故障したとすると、ハミング符号復号処理部１４によって、ＳＲＡＭ１５−２からの読み出しデータにデータエラーが生じていることが検知されるので、その場合はＳＲＡＭ１５−２のデータは多数決に加えず、ＳＲＡＭ１５−１、１５−３、１５−４の３つのＳＲＡＭからの読み出しデータを用いて多数決を取ることができる。
【００３１】
ここで、比較例として従来のメモリ制御装置について説明する。図２に照らして説明すると、従来のメモリ制御装置は、ハミング符号化処理部１６、ハミング符号復号処理部１４、及びスイッチ１７が設けられていない。すなわち、４重冗長化処理部１２が複製した４つの書き込みデータは、符号化が行われることなく、それぞれのＳＲＡＭ１５−１、１５−２、１５−３、１５−４に直接格納される。また、各ＳＲＡＭ１５−１、１５−２、１５−３、１５−４から読み出された読み出しデータは、直接、多数決処理部１３に入力されて多数決処理が行われる。このため、従来のメモリ制御装置では、例えば２つの半導体メモリ（ＳＡＲＡＭ）が故障し、２つの半導体メモリ（ＳＡＲＡＭ）から誤った読み出しデータＣが出力されると、例えばＳＲＡＭ１５−１、１５−２、１５−３、１５−４からそれぞれＡ、Ａ、Ｃ、Ｃの読み出しデータが出力されることとなる。この場合、多数決処理部１３は、２組のデータＡ、Ｃの多数決の数がそれぞれ同じ度数２になるので、ＡとＣの何れが正しいデータであるのかを決定することができなくなる。
従って、２つのメモリが故障しても正しいデータを決定できるようにするためには、半導体メモリをもう１つ増やし、ＳＲＡＭ１５−１、１５−２、１５−３、１５−４、１５−５を、５重冗長化処理部と多数決処理部の間に接続して、５重多数決を行うように構成しなければならない。例えばこの場合は、２つの半導体メモリ（ＳＡＲＡＭ）が故障し、５つの半導体メモリ（ＳＲＡＭ）からそれぞれＡ、Ａ、Ｃ、Ｃ、Ｃの読み出しデータが出力されることによって、多数決によりＣが正しいデータであることを決定することができるようになる。
しかしこのようなケースの場合は、半導体メモリの個数が増えるとともに、冗長化処理部がより複雑化するので、重量やコストの増加、半導体メモリの占有面積の増加に繋がる。例えば冗長化された半導体メモリを１００セット用いる場合、このケースで示した従来例によれば、実施の形態２によるメモリ制御装置１１に比べて、従来のメモリ制御装置では１００個分の余分な半導体メモリを必要とすることになる。
【００３２】
以上説明した通り、実施の形態２によるメモリ制御装置１１は、入力データから冗長化した複数の複製データを生成する多重冗長化処理部（４重冗長化処理部１２）と、上記多重冗長化処理部により生成された各複製データを、それぞれハミング符合化して半導体メモリ（ＳＲＡＭ１５）に記録する複数のハミング符合化処理部１６と、上記半導体メモリ（ＳＲＡＭ１５）にそれぞれ記録されたデータをそれぞれ読み出して上記ハミング符号化されたデータを復号化するとともに、読み出したデータに誤りがない場合に復号化したデータを出力する複数のハミング符号復号化処理部１４と、上記各ハミング符号復号化処理部１４から出力されたデータの多数決を取り、多数決の多いデータを元の上記入力データとして出力する多数決処理部１３と、を備えたことを特徴とする。このように、宇宙環境で使用される高信頼性を要するデータを半導体メモリ（ＳＲＡＭ１５）に記録、再生するためのメモリ制御装置１１において、故障した半導体メモリ（ＳＲＡＭ１５）を検知することにより、故障した半導体メモリ（ＳＲＡＭ１５）から読み出した読み出しデータを多数決処理に加えずに、故障が検知されていない残りの他の複数の半導体メモリ（ＳＲＡＭ１５）から読み出した読み出しデータで多数決処理を取ることができるので、冗長系を構成する特定のメモリが故障して誤ったデータを出力しても、多数決処理によって冗長化前の正しいデータを決定することができる。
【００３３】
なお、４重冗長化処理部１２は、Ｍ重（Ｍは５以上の整数）冗長化処理を行う構成とし、符号復号処理部１４、ハミング符号化処理部１６、スイッチ１７をＭ個設けてもよい。
また、故障した半導体メモリ（ＳＲＡＭ）の検出に誤り訂正符号を用いてもよい。
また、冗長化された元のデータを復号化する際に、誤り訂正符号の消失訂正処理を用いてもよい。
また、スイッチ１７は多数決処理部１３に設けてもよく、この場合はスイッチ付きの多数決処理部としてもよい。
さらに、スイッチ１７は故障したメモリの分離に用いてもよく、例えば一旦スイッチ１７がＯＦＦ状態に開放されると、その状態が維持されるようにしてもよい。
【００３４】
実施の形態３．
次に、実施の形態１で説明した第２の制御処理を行うメモリ制御装置の実施例として、この発明に係る実施の形態３によるメモリ制御装置について説明する。図３は、実施の形態３による上記第２の制御処理を行うメモリ制御装置２１の構成を示す図である。図３において、メモリ制御装置２１は、図１の冗長化処理部２を構成するＲＳ符号化処理部２２と、図１の冗長化復号処理部３を構成するＲＳ符号消失訂正復号処理部２３と、図１の故障検出部４を構成する複数のステータリード２４と、図１の半導体メモリ５を構成する複数のＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２から構成される。図３の例では、ステータリード２４は４つ設けられ、ＮＡＮＤＦＬＡＳＨ２５は１２個設けられている。ＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２はコントローラが実装されたＮＡＮＤ型フラッシュメモリからなり、データ格納及び入出力処理に加えて、エラー訂正処理、不良ブロック管理によるデータエラー検知のためのエラーステータス情報の出力制御処理などが行われる。エラーステータス情報は、ＮＡＮＤＦＬＡＳＨが故障している状態を示す故障発生フラグと、ＮＡＮＤＦＬＡＳＨに書き込まれたデータが正しく書き込まれていないことを示す書き込み不良フラグなどから構成される。１個のＮＡＮＤＦＬＡＳＨは例えば８ビット幅の入出力データ幅となっている。メモリ制御装置１１は例えばＡＳＩＣによって回路が構成されている。
【００３５】
ＲＳ符号化処理部２２の出力端は、それぞれＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２の入力端に接続される。ＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２の出力端はＲＳ符号化処理部２２の入力端に接続される。また、ＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２のデータエラー情報の出力端はＲＳ符号化処理部２２の制御信号入力端に接続される。
【００３６】
次に、実施の形態３によるメモリ制御装置１１の動作処理について説明する。
図３に例示するメモリ制御装置１１は、冗長化した書き込みデータを格納するＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２からの読み出しデータについて、データエラーの生じたＮＡＮＤＦＬＡＳＨを特定することによって、消失訂正処理により、正しいデータを復元することを特徴とする。
【００３７】
ＲＳ符号化処理部２２は、外部装置から書き込み用データが入力される。ＲＳ符号化処理部２２は、入力された書き込み用データについて、リードソロモン符号（以下、ＲＳ符号）により符号化を行う。図３の例では、ＲＳ符号の形式を（１２、８、５）とし、８ビット（＝１バイト）の連続したデータの固まりを１シンボルとする。ＲＳ符号化処理部２２は、６４ビットの書き込み用データを８ビットずつ８個のシンボルに分割し、書き込み用データからさらに４つの冗長シンボルを生成して付加する。従って、入力された６４ビットのデータは９６ビットに冗長化されることになる。ここで、冗長化された９６ビット（＝１２シンボル）の各シンボルは、１２個のＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２へそれぞれ書き込みデータとして書き込まれる。各ステータスリード２４は、このシンボルデータ書き込み後に、各ＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２の内部のエラーステータス情報をチェックし、故障発生フラグや、書き込み不良フラグなどの有無を確認することで、ＮＡＮＤＦＬＡＳＨが故障したか否か、またはＮＡＮＤＦＬＡＳＨにデータが正しく書き込めたか否かなどのエラーの有無を判定する。各ステータスリード２４は、エラー有りと判定するとデータエラーが生じていると判断して、データエラーが生じていることをＲＳ符号消失訂正復号処理部２３へ通知する。
【００３８】
次に、メモリ制御装置１１の入出力制御部（図示せず）は、外部装置から書き込みデータの読み出し要求指令が入力されたら、ＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２に書き込まれた格納データ（シンボル）をそれぞれ読み出しデータとして読み出す。このとき、各ステータスリード２４は、ＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２の内部のエラーステータス情報を読み出す。各ステータスリード２４は、この読み出したエラーステータス情報をチェックし、故障発生フラグや、書き込み不良フラグなどの有無を確認することで、ＮＡＮＤＦＬＡＳＨが故障したか否か、またはＮＡＮＤＦＬＡＳＨにデータが正しく書き込まれているか否か、ＮＡＮＤＦＬＡＳＨからデータが正しく読み出されたか否かなどのエラーの有無を判定する。各ステータスリード２４は、エラー有りと判定するとデータエラーが生じていると判断して、データエラーが生じていることをＲＳ符号消失訂正復号処理部２３へ通知する。
【００３９】
ＲＳ符号消失訂正復号処理部２３は、特定のＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２から、データの書き込み後またはデータの読み出し後に、データエラーが生じているとの通知を受けると、消失訂正処理を行う。ここでは、データエラーを通知したステータスリード２４を特定することによって、データが誤っているシンボル（ＮＡＮＤＦＬＡＳＨ）を特定できるので、非特許文献１に記載される訂正可能なシンボル数を増やすことのできる消失訂正処理を行うことができる。この消失訂正処理では、ＮＡＮＤＦＬＡＳＨ２５−１、２５−２、２５−３、・・・、２５−１２のうち、４個のシンボルに対応したＮＡＮＤＦＬＡＳＨからの読み出しデータがデータエラーとなっていても、残りの８個のシンボルに対応したＮＡＮＤＦＬＡＳＨからの読み出しデータを用いて、ＲＳ符号化前の元の正しいデータを復元することが可能となる。
【００４０】
なお、実施の形態３のメモリ制御装置２１がステータスリード２４を有さない場合は、データエラーの発生したシンボルを特定することができず、ＲＳ符号を用いた消失訂正処理を行うことができない。このため、８個に分割したシンボルを８個のＮＡＮＤＦＬＡＳＨにそれぞれ格納した場合に、２シンボルまでしかデータ訂正ができなくなる。すなわち、２個のＮＡＮＤＦＬＡＳＨのデータエラーまでしか、エラー訂正によるデータ復号ができなくなる。
【００４１】
以上説明した通り、実施の形態３によるメモリ制御装置２１は、入力データから冗長化したシンボルを含む複数のシンボルデータを生成し、各シンボルを半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）にそれぞれ記録するＲＳ符号化処理部２２と、上記各半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）の出力するステータス情報からエラー状態を検出した場合に、エラーの発生を通報するステータスリード２４と、上記各半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）にそれぞれ記録されたシンボルデータを読み出し、上記ステータスリード２４から通報されたエラーの発生したシンボルが記録された半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）を特定し、エラーの発生していない半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）から読み出したシンボルデータを用いて、エラーの発生したシンボルを訂正する消失訂正処理を行い、元の入力データを生成する復号処理部（ＲＳ符号消失訂正復号処理部２３）と、を備えたことを特徴とする。このように宇宙環境で使用される高信頼性を要するデータを半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）に記録、再生するためのメモリ制御装置２１において、冗長化したデータを含むシンボルを複数の半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）に格納し、データエラーが生じている半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）を特定する故障位置検知部（ステータスリード２４）を備えることにより、誤ったシンボルを有した半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）を検知して冗長化復号時にその情報を使用することで、元のデータを高い信頼性を有して再生することができる。また、従来と同等のデータ再生信頼性をもちながらよりメモリ搭載個数を減らすことが可能となる。
【００４２】
また、データを読み出す際に冗長化したデータを復号する際に、破損した半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）からのデータや誤ったデータを正しく復号することができる。また、半導体メモリ（ＮＡＮＤＦＬＡＳＨ２５）の故障箇所を特定し、故障箇所の特定情報をＲＳ符号消失訂正復号処理部２３で使用することにより、データ誤りの訂正能力を向上することができる。また、従来と同等のデータ誤り訂正能力を持ちながら冗長化のためのメモリ素子数を減らすことが可能となる。
【００４３】
なお、上述したメモリ制御装置は、ステータリード２４を用いて故障検出部４を構成した例について説明したが、ステータリード２４の代わりに応答時間計測器を用いてもよい。応答時間計測器は、ウォッチドッグタイマを用いてＮＡＮＤＦＬＡＳＨの応答時間を計測することにより、故障したＮＡＮＤＦＬＡＳＨを特定するものである。応答時間計測器は、所定時間間隔でＮＡＮＤＦＬＡＳＨのデータを読み出す処理を行い、一定時間の間にＮＡＮＤＦＬＡＳＨからデータの読み出しができない場合に、そのＮＡＮＤＦＬＡＳＨが故障していることを検出することで、故障箇所を特定することができる。
【図１】
2013025560.tif 000003
【図２】
2013025560.tif 000004
【図３】
2013025560.tif 000005