説明

メモリ制御装置

【課題】 冗長化した半導体メモリのデータ記録制御を行う従来のメモリ制御装置は、半導体メモリに格納した符号化データを復号する場合に、半導体メモリの故障情報を利用していないため、宇宙環境での冗長化されたデータの記録再生に係る信頼性を十分に高められなくなっている。
【解決手段】 ハミング符号を用いて複数の半導体メモリに冗長化してデータを記録し、ハミング符号を復号して、データが誤りの場合にはメモリ故障と判定してデータ誤りのある半導体メモリを除いてから多数決処理を行うことにより、冗長化前の正しいデータを再生することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、冗長化された複数の半導体メモリのデータの記録再生を制御するメモリ制御装置に関する。
【背景技術】
【0002】
地球を周回する人工衛星や宇宙探査機等の宇宙機では、地上との通信ができない時間があり、その間にデータを蓄積しておく必要がある。データ蓄積はデータレコーダと呼ばれるデータ記録装置で行われる(例えば、特許文献1参照)。データレコーダは、半導体メモリを搭載することで記憶を行う。近年、データ取得量の増大により最新の半導体記憶素子を使用した大容量の半導体メモリが必要となっている。最新の半導体記憶素子はプロセスの微細化や複雑な制御を行うため故障率が高くなってきており、放射線や厳しい温度変化のある宇宙環境では信頼性を高める必要がある。そのための方法として、複数の半導体メモリを使用して冗長化することで信頼性を高める方法が知られている(例えば、特許文献2、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平7−110895
【特許文献2】特開昭63−159944
【非特許文献】
【0004】
【非特許文献1】Shu Lin, Daniel J. Costello,Jr., 「Error Control Conding」Second Edithion, P.217, 6.6 CORRECTION OF ERRORS AND ERASURES
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年の宇宙機に使用するデータ記録装置は、大容量化の要求に答えるために、半導体記憶素子として耐放射線に優れた宇宙用素子ではなく、通常の民生用部品を使用せざるを得なくなりつつある。データ記録装置では、冗長構成の半導体メモリを複数個並べて、メモリ制御装置(メモリコントローラ)によって、外部装置から入力された書き込み用データの各半導体メモリへの書き込み制御と、各半導体メモリからの読み出しデータの読み出し制御及び外部装置への出力制御を行う。
【0006】
従来のメモリ制御装置は、外部装置から入力された書き込み用データに誤り訂正符号を付加する、または同じデータを複数生成するなどして、冗長化された複数のデータを生成する。冗長化された各データは、メモリ書き込み処理によって冗長構成の複数の半導体メモリにそれぞれ書き込まれる。半導体メモリに書き込まれたデータは、メモリ制御装置によって読み出され、復号処理されて外部装置に出力される、または多数決処理により1つのデータが外部装置に出力される。このような処理によって、複数の半導体メモリのうちいくつかが故障して、誤ったデータが読み出されるようなことになっても、誤り訂正符号の復号処理あるいは多数決処理によってメモリ故障の影響を受けることなく、正しいデータが読み出されるようになる。
【0007】
しかしながら、近年の半導体記憶素子のプロセス微細化により、放射線に対して故障の確率が高まっているために、以下のような課題が生じる。
【0008】
(1)プロセスの微細化により半導体メモリ単体での耐放射線能力が従来に比して弱いため、データ記録装置全体システムとしての耐故障能力をあげるためには冗長度を上げ、半導体メモリの個数を増やす必要がある。
(2)(1)で半導体メモリの個数を増やす結果、冗長化の規模が大きくなり、重量やコストの増加、半導体メモリの占有面積(フットプリント)の増加を抑えるために、単位当たりの記憶容量の小さい半導体メモリを利用することで、データ記録装置において実際に記録できる容量が低下することとなる。
【0009】
この発明は係る課題を解決するためになされたものであり、冗長化された半導体メモリの個数増加を抑えながら、記録データの保持信頼性を確保するメモリ制御装置を得ることを目的とする。
【課題を解決するための手段】
【0010】
この発明によるメモリ制御装置は、入力データから冗長化した複数の符合化データを生成し、符合化データを複数の半導体メモリにそれぞれ記録する冗長化処理部と、上記半導体メモリの故障、または上記半導体メモリに記録されたデータのエラーを検出する故障検出部と、上記故障検出部によって故障またはデータエラーの検出されない半導体メモリについて、当該各半導体メモリに記録された符合化データから、元の入力データを復号化する冗長化復号処理部と、を備えたものである。
【発明の効果】
【0011】
この発明によれば、冗長化された半導体メモリの個数増加を抑えながら、記録データの保持信頼性を確保することができる。
【図面の簡単な説明】
【0012】
【図1】実施の形態1によるメモリ制御装置の概念構成を示す図である。
【図2】実施の形態2によるメモリ制御装置の構成を示す図である。
【図3】実施の形態3によるメモリ制御装置の構成を示す図である。
【発明を実施するための形態】
【0013】
実施の形態1.
図1は、この発明に係る実施の形態1によるメモリ制御装置の概念構成を示す図である。図1において、メモリ制御装置1は、冗長化処理部2と、冗長化復号処理部3と、故障検出部4を備えて構成され、CPU、FPGA(Field Programable Gate Array)、ASIC(Application Specific Integrated Circuit)等に実装される。メモリ制御装置1は半導体メモリ5に接続される。半導体メモリ5は、半導体メモリ5−1、5−2、5−3、・・・、5−NからなるN(4以上の整数)個の複数の半導体メモリ群によって構成される。メモリ制御装置1と半導体メモリ5はデータ記録装置を構成する。各半導体メモリ5−1、5−2、5−3、・・・、5−Nは、それぞれSRAM、DRAM、NANDFLASH、EEPROM等によって構成される。
【0014】
冗長化処理部2、冗長化復号処理部3、故障検出部4は、第1の制御処理もしくは第2の制御処理のいずれかの処理、またはその両方の処理が行われる。以下、a)第1の制御処理及びb)第2の制御処理のそれぞれの動作処理について説明する。
【0015】
a)第1の制御処理
第1の制御処理において、冗長化処理部2は、多数決処理のためのデータ複製処理を実行するプログラムもしくは論理回路が備えられている。冗長化処理部2は、外部装置から供給された書き込み用データが入力され、入力された書き込み用データを複製してから符号化処理を行い、各半導体メモリ5−1、5−2、5−3、・・・、5−Nへ書き込みデータとして書き込む処理を行う。また、メモリ制御装置1は、外部装置から、半導体メモリ5の共通の指定されたアドレスに記録された書き込みデータを読み出すための読み出し要求指令(図示せず)が入力されたら、半導体メモリ5の指定されたアドレスから書き込みデータの読み出しを行う。故障位置検出部4は、この各半導体メモリ5−1、5−2、5−3、・・・、5−Nから読み出された書き込みデータ(以下、読み出しデータとする)について復号化処理を行うとともに健全性をチェックして、各半導体メモリ5−1、5−2、5−3、・・・、5−Nの故障を検知する。故障位置検出部4は、故障検知によって故障した半導体メモリ5−mを特定する(mは1以上N以下の整数)。
【0016】
冗長化復号処理部3は、半導体メモリ5−1、5−2、5−3、・・・、5−m、・・・、5−Nからそれぞれ読み出された読み出しデータの中から、故障位置検出部4によって特定された故障した半導体メモリ5−mからの読み出しデータを取り除く。冗長化復号処理部3は、取り除いた記録データ以外の、各半導体メモリ5−1、5−2、5−3、・・・、5−Nの読み出しデータについて、多数決を取る処理を行う。冗長化復号処理部3は、多数決の結果に基づいて、各半導体メモリ5−1、5−2、5−3、・・・、5−N(mを除く)からの読み出しデータを外部装置に出力する。かくして、複数の半導体メモリ5−1、5−2、5−3、・・・、5−Nに記録されたデータを復号し、元の入力された書き込み用データを再構成する冗長化処理が行われる。このように、故障位置検出部4によって特定された故障した半導体メモリ5−mの情報を利用することで、N−2個以下のより多くのデータ破壊に対しても、冗長化復号処理部3が正しくデータを再構成できる処理を行うことが可能となる。
【0017】
b)第2の制御処理
次に、第2の制御処理において、冗長化処理部2は、入力された書き込み用データについて、誤り訂正符号の生成処理を実行するためのプログラムもしくは論理回路が備えられている。冗長化処理部2は、外部装置から供給された書き込み用データが入力され、このデータについて誤り訂正符号の生成処理を行い、入力された書き込み用データに生成した誤り訂正符号を付加して、各半導体メモリ5−1、5−2、5−3、・・・、5−Nにそれぞれ複製して、書き込みデータとして記録する。また、メモリ制御装置1は、外部装置から、半導体メモリ5の共通の指定されたアドレスに記録された書き込みデータを読み出すための読み出し要求指令(図示せず)が入力されたら、半導体メモリ5の指定されたアドレスから書き込みデータの読み出しを行う。故障位置検出部4は、各半導体メモリ5−1、5−2、5−3、・・・、5−Nから読み出した書き込みデータ(以下、読み出しデータとする)の健全性をチェックして、各半導体メモリ5−1、5−2、5−3、・・・、5−Nの故障を検知する。故障位置検出部4は、故障検知によって故障した半導体メモリ5−mの位置を特定する(mは1以上N以下の整数)。
【0018】
冗長化復号処理部3は、故障位置検出部4によって特定された故障した半導体メモリ5−mの位置データを用いて、各半導体メモリ5−1、5−2、5−3、・・・、5−Nからそれぞれ読み出したデータについて、誤り訂正符号の復号計算としての消失訂正処理を行う(消失訂正処理については、例えば非特許文献1参照)。冗長化復号処理部3は、各半導体メモリ5−1、5−2、5−3、・・・、5−N(mを除く)からの読み出しデータに対して、消失訂正処理の結果データを外部装置に出力する。これらの冗長化処理によって、複数の半導体メモリ5−1、5−2、5−3、・・・、5−Nに記録された書き込みデータを復号し、元の入力された書き込み用データを再構成する処理を行うことができる。このように、故障位置検出部4によって特定された故障した半導体メモリ5−mの位置情報を利用することで、消失訂正処理により再生可能なより多くの個数のデータ破壊に対して、冗長化復号処理部3が正しくデータを再構成できる処理を行うことができる。
【0019】
以上説明した通り、実施の形態1によるメモリ制御装置は、入力データから冗長化した複数の符合化データを生成し、符合化データを複数の半導体メモリ5にそれぞれ記録する冗長化処理部2と、上記半導体メモリ5の故障、または上記半導体メモリ5に記録されたデータのエラーを検出する故障検出部4と、上記故障検出部4によって故障またはデータエラーの検出されない半導体メモリ5について、当該各半導体メモリ5に記録された符合化データから、元の入力データを復号化する冗長化復号処理部3と、を備えたものである。故障した素子を特定する故障検出部4を備え、その特定した情報を利用することで、冗長化の規模を上げずにデータ記録装置の耐故障能力を高めることができる。これによって、放射線や温度変化の大きい厳しい使用環境下であっても、半導体メモリ5を使用したデータ記録装置のシステム信頼性を高めることが可能となる。
【0020】
実施の形態2.
次に、実施の形態1で説明した第1の制御処理を行うメモリ制御装置の実施例として、この発明に係る実施の形態2によるメモリ制御装置について説明する。図2は、実施の形態2による上記第1の制御処理を行うメモリ制御装置の構成を示す図である。図2において、メモリ制御装置11は、4重冗長化処理部12と、図1の冗長化復号処理部3を構成する多数決処理部13と、複数のハミング符号復号処理部14と、複数のハミング符号化処理部16と、複数のスイッチ17(スイッチ17−1、17−2、17−3、17−4)から構成される。4重冗長化処理部12は、複数のハミング符号化処理部16とともに、図1で説明した冗長化処理部2を構成する。ハミング符号復号処理部14は、図1で説明した故障検出部4を構成する。メモリ制御装置11は、複数の半導体メモリ5としての、SRAM15−1、SRAM15−2、SRAM15−3、SRAM15−4からなるSRAM(Static Random Access Memory)群に接続される。図2の例では、ハミング符号復号処理部14、ハミング符号化処理部16、スイッチ17は4つ設けられ、SRAM15は4つ設けられている。スイッチ17は単極単投のリレースイッチである。メモリ制御装置11は例えばFPGAによって回路が構成されている。多数決処理部13は、複数のスイッチ17−1、17−2、17−3、17−4とともに、図1の冗長化復号処理部2を構成する。
【0021】
4重冗長化処理部12の出力端は、それぞれハミング符号化処理部16の入力端に接続される。各ハミング符号化処理部16の出力端は、それぞれSRAM15−1、15−2、15−3、15−4の入力端に接続される。SRAM15−1、15−2、15−3、15−4の出力端は、それぞれスイッチ17の一方の接点に接続される。各ハミング符号復号処理部14の入力端は、それぞれSRAM15−1、15−2、15−3、15−4から出力される読み出しデータが伝送される出力経路に接続される。また、ハミング符号復号処理部14の出力端はスイッチ17の開閉制御端子に接続される。スイッチ17の他方の接点は、多数決処理部13の入力端に接続される。
【0022】
次に、実施の形態2によるメモリ制御装置11の動作処理について説明する。
図2に例示するメモリ制御装置11は、多数決処理のための4重化処理を行う。4重冗長化処理部12は、外部装置から書き込み用データが入力される。4重冗長化処理部12は、入力された書き込み用データを4つ複製し、それぞれを4つのSRAM15−1、15−2、15−3、15−4に格納するように、複製した4つの書き込みデータを出力する。ハミング符号化処理部16は、この複製された4つの書き込みデータ(すなわち、同一の書き込みデータ)に対して、それぞれハミング符号化処理を行う。これよって、故障検出部4を構成するハミング符号復号処理部14による故障検出のための前段処理を行う。例えば(n、k)ハミング符号を使う場合、ハミング符号化処理部16は、書き込みデータx(kビットのビット列)に対してそれぞれの生成行列G(k行n列で、後述の検査行列Hとの間にHG=GH=0が成り立つ行列)の積を取り、y(nビットのビット列)=x・Gを演算して、ハミング符号を生成する。ここで、kは情報数、nは符号長であり、n=2−1、k=m−n、mは任意の整数である。ハミング符号化処理部16にてハミング符号化された書き込みデータは、それぞれSRAM15−1、15−2、15−3、15−4に格納される。
このとき、書き込みデータを書き込んだメモリアドレスは、メモリ制御装置11の入出力制御部(図示せず)によって管理され、外部装置に通知される。
なお、各ハミング符号化処理部16は、それぞれ対応するSRAM毎に異なるハミング符号を生成してもよい。また、書き込みデータを書き込むメモリアドレスは予め設定された固定のアドレスであってもよい。
【0023】
メモリ制御装置11の入出力制御部(図示せず)は、外部装置からの書き込みデータの読み出し要求指令が入力されたら、SRAM15−1、15−2、15−3、15−4における、メモリ制御装置11によって管理された共通の指定されたメモリアドレスから、書き込みデータの読み出しを行う。
なお、予め外部装置に通知したメモリアドレスの中から、外部装置がメモリ制御装置11の入出力制御部(図示せず)を介して、読み出しを行う特定のメモリアドレスを指定してもよい。また、読み出しを行うメモリアドレスは予め設定された固定のアドレスであってもよい。
【0024】
各ハミング符号復号処理部14は、SRAM15−1、15−2、15−3、15−4からそれぞれ読み出された書き込みデータ(以下、読み出しデータ)について、ハミング符号の復号化を行う。例えば上記(n、k)ハミング符号を使う場合、ハミング符号復号処理部14は、読み出しデータyに対してそれぞれの検査行列H(m行n列で、全ての列要素がゼロではなくかつ相違である、生成行列Gに対応付けられた行列)の転置行列の積を取り、y・Hを演算する。この演算の結果が零ベクトルであるなら誤りが無いと判断して、読み出しデータyに対して生成行列Gの逆行列の積を取ることで、元のビット列xを得るための復号化を行う。一方、y・Hの演算結果が非零ベクトルであるならば誤りがあると判定する。ハミング符号復号処理部14は、誤りがあると判定された場合に、誤りがあると判定された当該SRAM15−p(pは1以上4以下の整数)において、データエラーが生じていることを検知する。このデータエラーは、例えばデータを格納しているSRAM15−pが故障している場合や、外部から入射する放射線の影響によりSRAM15−pの格納データの一部にビット反転が生じた場合などに発生する。
【0025】
なお、y・Hの演算結果が非零ベクトルとなり、データエラーが生じている場合であっても、エラービットが所定数以下である場合に、検査行列Hと見比べたり、パリティビットを適用するなどして、誤り符号列を検出して適宜誤り符号列を訂正する誤り訂正処理を行ってもよい。
また、各ハミング符号化処理部16が、それぞれの対応するSRAM毎に異なる生成行列Gによりハミング符号を生成した場合には、各ハミング符号復号処理部14が各ハミング符号の生成行列Gに対応したSRAM毎に異なる検査行列Hを用いて、元のビット列xを得るための復号化を行ってもよい。
【0026】
各ハミング符号復号処理部14は、それぞれが接続されたSRAM15−pにおいてデータエラーが生じていることを検知した場合は、そのメモリ(SRAM15−p)から読み出される読み出しデータの出力経路上のスイッチ17を開き、OFF状態とするようにスイッチの開閉制御を行う。この場合、SRAM15−pから読み出されたデータは多数決処理部13に出力されない。
【0027】
一方、各ハミング符号復号処理部14は、それぞれの接続されるSRAM15−pにおいてデータエラーの発生が検知されなかった場合(すなわち誤りが無い)は、そのメモリ(SRAM15−p)から読み出される読み出しデータの出力経路上のスイッチ17を閉じ、ON状態とするようにスイッチの開閉制御を行う。
なお、スイッチ17は、通常時にON状態となるものであってもよい。
【0028】
SRAM15−pを除く各SRAM15−1、15−2、15−3、15−4からそれぞれ読み出される、データエラーの生じていない読み出しデータは、ON状態のスイッチ17を通過して、多数決処理部13に入力される。多数決処理部13は、スイッチ17を通過した読み出しデータの多数決を取り、正しいデータを決定し、決定された正しいデータを読み出しデータとして、データの読み出し要求指令を出した外部装置に出力する。
【0029】
多数決処理部13は、例えばSRAM15−1、15−2、15−3、15−4から入力されてくる読み出しデータが、それぞれA、A、A、A、Bであった場合は、最も多いAを正しいデータとして決定する。
【0030】
また、例えばSRAM15−2が故障したとすると、ハミング符号復号処理部14によって、SRAM15−2からの読み出しデータにデータエラーが生じていることが検知されるので、その場合はSRAM15−2のデータは多数決に加えず、SRAM15−1、15−3、15−4の3つのSRAMからの読み出しデータを用いて多数決を取ることができる。
【0031】
ここで、比較例として従来のメモリ制御装置について説明する。図2に照らして説明すると、従来のメモリ制御装置は、ハミング符号化処理部16、ハミング符号復号処理部14、及びスイッチ17が設けられていない。すなわち、4重冗長化処理部12が複製した4つの書き込みデータは、符号化が行われることなく、それぞれのSRAM15−1、15−2、15−3、15−4に直接格納される。また、各SRAM15−1、15−2、15−3、15−4から読み出された読み出しデータは、直接、多数決処理部13に入力されて多数決処理が行われる。このため、従来のメモリ制御装置では、例えば2つの半導体メモリ(SARAM)が故障し、2つの半導体メモリ(SARAM)から誤った読み出しデータCが出力されると、例えばSRAM15−1、15−2、15−3、15−4からそれぞれA、A、C、Cの読み出しデータが出力されることとなる。この場合、多数決処理部13は、2組のデータA、Cの多数決の数がそれぞれ同じ度数2になるので、AとCの何れが正しいデータであるのかを決定することができなくなる。
従って、2つのメモリが故障しても正しいデータを決定できるようにするためには、半導体メモリをもう1つ増やし、SRAM15−1、15−2、15−3、15−4、15−5を、5重冗長化処理部と多数決処理部の間に接続して、5重多数決を行うように構成しなければならない。例えばこの場合は、2つの半導体メモリ(SARAM)が故障し、5つの半導体メモリ(SRAM)からそれぞれA、A、C、C、Cの読み出しデータが出力されることによって、多数決によりCが正しいデータであることを決定することができるようになる。
しかしこのようなケースの場合は、半導体メモリの個数が増えるとともに、冗長化処理部がより複雑化するので、重量やコストの増加、半導体メモリの占有面積の増加に繋がる。例えば冗長化された半導体メモリを100セット用いる場合、このケースで示した従来例によれば、実施の形態2によるメモリ制御装置11に比べて、従来のメモリ制御装置では100個分の余分な半導体メモリを必要とすることになる。
【0032】
以上説明した通り、実施の形態2によるメモリ制御装置11は、入力データから冗長化した複数の複製データを生成する多重冗長化処理部(4重冗長化処理部12)と、上記多重冗長化処理部により生成された各複製データを、それぞれハミング符合化して半導体メモリ(SRAM15)に記録する複数のハミング符合化処理部16と、上記半導体メモリ(SRAM15)にそれぞれ記録されたデータをそれぞれ読み出して上記ハミング符号化されたデータを復号化するとともに、読み出したデータに誤りがない場合に復号化したデータを出力する複数のハミング符号復号化処理部14と、上記各ハミング符号復号化処理部14から出力されたデータの多数決を取り、多数決の多いデータを元の上記入力データとして出力する多数決処理部13と、を備えたことを特徴とする。このように、宇宙環境で使用される高信頼性を要するデータを半導体メモリ(SRAM15)に記録、再生するためのメモリ制御装置11において、故障した半導体メモリ(SRAM15)を検知することにより、故障した半導体メモリ(SRAM15)から読み出した読み出しデータを多数決処理に加えずに、故障が検知されていない残りの他の複数の半導体メモリ(SRAM15)から読み出した読み出しデータで多数決処理を取ることができるので、冗長系を構成する特定のメモリが故障して誤ったデータを出力しても、多数決処理によって冗長化前の正しいデータを決定することができる。
【0033】
なお、4重冗長化処理部12は、M重(Mは5以上の整数)冗長化処理を行う構成とし、符号復号処理部14、ハミング符号化処理部16、スイッチ17をM個設けてもよい。
また、故障した半導体メモリ(SRAM)の検出に誤り訂正符号を用いてもよい。
また、冗長化された元のデータを復号化する際に、誤り訂正符号の消失訂正処理を用いてもよい。
また、スイッチ17は多数決処理部13に設けてもよく、この場合はスイッチ付きの多数決処理部としてもよい。
さらに、スイッチ17は故障したメモリの分離に用いてもよく、例えば一旦スイッチ17がOFF状態に開放されると、その状態が維持されるようにしてもよい。
【0034】
実施の形態3.
次に、実施の形態1で説明した第2の制御処理を行うメモリ制御装置の実施例として、この発明に係る実施の形態3によるメモリ制御装置について説明する。図3は、実施の形態3による上記第2の制御処理を行うメモリ制御装置21の構成を示す図である。図3において、メモリ制御装置21は、図1の冗長化処理部2を構成するRS符号化処理部22と、図1の冗長化復号処理部3を構成するRS符号消失訂正復号処理部23と、図1の故障検出部4を構成する複数のステータリード24と、図1の半導体メモリ5を構成する複数のNANDFLASH25−1、25−2、25−3、・・・、25−12から構成される。図3の例では、ステータリード24は4つ設けられ、NANDFLASH25は12個設けられている。NANDFLASH25−1、25−2、25−3、・・・、25−12はコントローラが実装されたNAND型フラッシュメモリからなり、データ格納及び入出力処理に加えて、エラー訂正処理、不良ブロック管理によるデータエラー検知のためのエラーステータス情報の出力制御処理などが行われる。エラーステータス情報は、NANDFLASHが故障している状態を示す故障発生フラグと、NANDFLASHに書き込まれたデータが正しく書き込まれていないことを示す書き込み不良フラグなどから構成される。1個のNANDFLASHは例えば8ビット幅の入出力データ幅となっている。メモリ制御装置11は例えばASICによって回路が構成されている。
【0035】
RS符号化処理部22の出力端は、それぞれNANDFLASH25−1、25−2、25−3、・・・、25−12の入力端に接続される。NANDFLASH25−1、25−2、25−3、・・・、25−12の出力端はRS符号化処理部22の入力端に接続される。また、NANDFLASH25−1、25−2、25−3、・・・、25−12のデータエラー情報の出力端はRS符号化処理部22の制御信号入力端に接続される。
【0036】
次に、実施の形態3によるメモリ制御装置11の動作処理について説明する。
図3に例示するメモリ制御装置11は、冗長化した書き込みデータを格納するNANDFLASH25−1、25−2、25−3、・・・、25−12からの読み出しデータについて、データエラーの生じたNANDFLASHを特定することによって、消失訂正処理により、正しいデータを復元することを特徴とする。
【0037】
RS符号化処理部22は、外部装置から書き込み用データが入力される。RS符号化処理部22は、入力された書き込み用データについて、リードソロモン符号(以下、RS符号)により符号化を行う。図3の例では、RS符号の形式を(12、8、5)とし、8ビット(=1バイト)の連続したデータの固まりを1シンボルとする。RS符号化処理部22は、64ビットの書き込み用データを8ビットずつ8個のシンボルに分割し、書き込み用データからさらに4つの冗長シンボルを生成して付加する。従って、入力された64ビットのデータは96ビットに冗長化されることになる。ここで、冗長化された96ビット(=12シンボル)の各シンボルは、12個のNANDFLASH25−1、25−2、25−3、・・・、25−12へそれぞれ書き込みデータとして書き込まれる。各ステータスリード24は、このシンボルデータ書き込み後に、各NANDFLASH25−1、25−2、25−3、・・・、25−12の内部のエラーステータス情報をチェックし、故障発生フラグや、書き込み不良フラグなどの有無を確認することで、NANDFLASHが故障したか否か、またはNANDFLASHにデータが正しく書き込めたか否かなどのエラーの有無を判定する。各ステータスリード24は、エラー有りと判定するとデータエラーが生じていると判断して、データエラーが生じていることをRS符号消失訂正復号処理部23へ通知する。
【0038】
次に、メモリ制御装置11の入出力制御部(図示せず)は、外部装置から書き込みデータの読み出し要求指令が入力されたら、NANDFLASH25−1、25−2、25−3、・・・、25−12に書き込まれた格納データ(シンボル)をそれぞれ読み出しデータとして読み出す。このとき、各ステータスリード24は、NANDFLASH25−1、25−2、25−3、・・・、25−12の内部のエラーステータス情報を読み出す。各ステータスリード24は、この読み出したエラーステータス情報をチェックし、故障発生フラグや、書き込み不良フラグなどの有無を確認することで、NANDFLASHが故障したか否か、またはNANDFLASHにデータが正しく書き込まれているか否か、NANDFLASHからデータが正しく読み出されたか否かなどのエラーの有無を判定する。各ステータスリード24は、エラー有りと判定するとデータエラーが生じていると判断して、データエラーが生じていることをRS符号消失訂正復号処理部23へ通知する。
【0039】
RS符号消失訂正復号処理部23は、特定のNANDFLASH25−1、25−2、25−3、・・・、25−12から、データの書き込み後またはデータの読み出し後に、データエラーが生じているとの通知を受けると、消失訂正処理を行う。ここでは、データエラーを通知したステータスリード24を特定することによって、データが誤っているシンボル(NANDFLASH)を特定できるので、非特許文献1に記載される訂正可能なシンボル数を増やすことのできる消失訂正処理を行うことができる。この消失訂正処理では、NANDFLASH25−1、25−2、25−3、・・・、25−12のうち、4個のシンボルに対応したNANDFLASHからの読み出しデータがデータエラーとなっていても、残りの8個のシンボルに対応したNANDFLASHからの読み出しデータを用いて、RS符号化前の元の正しいデータを復元することが可能となる。
【0040】
なお、実施の形態3のメモリ制御装置21がステータスリード24を有さない場合は、データエラーの発生したシンボルを特定することができず、RS符号を用いた消失訂正処理を行うことができない。このため、8個に分割したシンボルを8個のNANDFLASHにそれぞれ格納した場合に、2シンボルまでしかデータ訂正ができなくなる。すなわち、2個のNANDFLASHのデータエラーまでしか、エラー訂正によるデータ復号ができなくなる。
【0041】
以上説明した通り、実施の形態3によるメモリ制御装置21は、入力データから冗長化したシンボルを含む複数のシンボルデータを生成し、各シンボルを半導体メモリ(NANDFLASH25)にそれぞれ記録するRS符号化処理部22と、上記各半導体メモリ(NANDFLASH25)の出力するステータス情報からエラー状態を検出した場合に、エラーの発生を通報するステータスリード24と、上記各半導体メモリ(NANDFLASH25)にそれぞれ記録されたシンボルデータを読み出し、上記ステータスリード24から通報されたエラーの発生したシンボルが記録された半導体メモリ(NANDFLASH25)を特定し、エラーの発生していない半導体メモリ(NANDFLASH25)から読み出したシンボルデータを用いて、エラーの発生したシンボルを訂正する消失訂正処理を行い、元の入力データを生成する復号処理部(RS符号消失訂正復号処理部23)と、を備えたことを特徴とする。このように宇宙環境で使用される高信頼性を要するデータを半導体メモリ(NANDFLASH25)に記録、再生するためのメモリ制御装置21において、冗長化したデータを含むシンボルを複数の半導体メモリ(NANDFLASH25)に格納し、データエラーが生じている半導体メモリ(NANDFLASH25)を特定する故障位置検知部(ステータスリード24)を備えることにより、誤ったシンボルを有した半導体メモリ(NANDFLASH25)を検知して冗長化復号時にその情報を使用することで、元のデータを高い信頼性を有して再生することができる。また、従来と同等のデータ再生信頼性をもちながらよりメモリ搭載個数を減らすことが可能となる。
【0042】
また、データを読み出す際に冗長化したデータを復号する際に、破損した半導体メモリ(NANDFLASH25)からのデータや誤ったデータを正しく復号することができる。また、半導体メモリ(NANDFLASH25)の故障箇所を特定し、故障箇所の特定情報をRS符号消失訂正復号処理部23で使用することにより、データ誤りの訂正能力を向上することができる。また、従来と同等のデータ誤り訂正能力を持ちながら冗長化のためのメモリ素子数を減らすことが可能となる。
【0043】
なお、上述したメモリ制御装置は、ステータリード24を用いて故障検出部4を構成した例について説明したが、ステータリード24の代わりに応答時間計測器を用いてもよい。応答時間計測器は、ウォッチドッグタイマを用いてNANDFLASHの応答時間を計測することにより、故障したNANDFLASHを特定するものである。応答時間計測器は、所定時間間隔でNANDFLASHのデータを読み出す処理を行い、一定時間の間にNANDFLASHからデータの読み出しができない場合に、そのNANDFLASHが故障していることを検出することで、故障箇所を特定することができる。

【特許請求の範囲】
【請求項1】
入力データから冗長化した複数の符合化データを生成し、符合化データを複数の半導体メモリにそれぞれ記録する冗長化処理部と、
上記半導体メモリの故障、または上記半導体メモリに記録されたデータのエラーを検出する故障検出部と、
上記故障検出部によって故障またはデータエラーの検出されない半導体メモリについて、当該各半導体メモリに記録された符合化データから、元の入力データを復号化する冗長化復号処理部と、
を備えたメモリ制御装置。
【請求項2】
入力データから冗長化した複数の複製データを生成する多重冗長化処理部と、
上記多重冗長化処理部により生成された各複製データを、それぞれハミング符合化して半導体メモリに記録する複数のハミング符合化処理部と、
上記半導体メモリにそれぞれ記録されたデータをそれぞれ読み出して上記ハミング符号化されたデータを復号化するとともに、読み出したデータに誤りがない場合に復号化したデータを出力する複数のハミング符号復号化処理部と、
上記各ハミング符号復号化処理部から出力されたデータの多数決を取り、多数決の多いデータを元の上記入力データとして出力する多数決処理部と、
を備えたメモリ制御装置。
【請求項3】
入力データから冗長化したシンボルを含む複数のシンボルデータを生成し、各シンボルを半導体メモリにそれぞれ記録するリードソロモン符号化処理部と、
上記各半導体メモリの出力するステータス情報からエラー状態を検出した場合に、エラーの発生を通報するステータスリードと、
上記各半導体メモリにそれぞれ記録されたシンボルデータを読み出し、上記ステータスリードから通報されたエラーの発生したシンボルが記録された半導体メモリを特定し、エラーの発生していない半導体メモリから読み出したシンボルデータを用いて、エラーの発生したシンボルを訂正する消失訂正処理を行い、元の入力データを生成する復号処理部と、
を備えたメモリ制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate