(57)【特許請求の範囲】
【請求項１】
外付けメモリに対するアクセス制御を行うメモリ制御回路において、
データ送受信処理中に検出された前記外付けメモリのバッファ領域毎のメモリ障害の回数を管理し、前記メモリ障害の回数が所定の閾値以下である場合に固定障害でないと判別し、前記メモリ障害の回数が所定の閾値を超えた場合に、前記バッファ領域のメモリ障害を固定障害と判別する障害発生履歴管理部と、
前記障害発生履歴管理部で前記メモリ障害が固定障害でないと判別された場合に、前記メモリ障害により不足した前記外付けメモリの空きバッファ領域を、データ送受信処理に再利用できる予備のバッファ領域を割り当てて補う予備バッファ管理部と、
前記障害発生履歴管理部で前記メモリ障害が固定障害と判別された場合に、前記固定障害が発生した前記バッファ領域を管理する固定障害バッファ管理部と、
前記障害発生履歴管理部で固定障害でないと判定された前記バッファ領域について、自律的にメモリチェックを行い、当該バッファ領域が固定障害か間欠障害かを判別する障害バッファ切り分け管理部を備え、
前記障害バッファ切り分け管理部は、前記メモリチェックにおいて、間欠障害であるとの判断回数が所定の閾値を超えた場合に、当該バッファ領域のメモリ障害が解消したとして、データ送受信処理に再利用できるようにし、前記予備のバッファの割り当てを解除することを特徴とするメモリ制御回路。
【請求項２】
前記障害発生履歴管理部は、バッファ領域毎にメモリ障害発生の回数を登録する履歴管理テーブルを備えることを特徴とする請求項１に記載のメモリ制御回路。
【請求項３】
前記障害バッファ切り分け管理部は、前記障害が発生したバッファ領域毎に、前記メモリチェックの結果間欠障害であると判定した回数を登録する管理テーブルを備えることを特徴とする請求項１又は請求項２に記載のメモリ制御回路。
【請求項４】
前記障害バッファ切り分け管理部は、前記メモリチェックを前記データ送受信処理がなされていないタイミングで行うことを特徴とする請求項１から請求項３の何れか１つに記載のメモリ制御回路。
【請求項５】
外付けメモリに対するアクセス制御を行うメモリ制御方法において、
データ送受信処理中に検出された前記外付けメモリのバッファ領域毎のメモリ障害の回数を管理し、前記メモリ障害の回数が所定の閾値以下である場合に固定障害でないと判別し、前記メモリ障害の回数が所定の閾値を超えた場合に、前記バッファ領域のメモリ障害を固定障害と判別する障害発生履歴管理ステップと、
前記障害発生履歴管理ステップで前記メモリ障害が固定障害でないと判別された場合に、前記メモリ障害により不足した前記外付けメモリの空きバッファ領域を、データ送受信処理に再利用できる予備のバッファ領域を割り当てて補う予備バッファ管理ステップと、
前記障害発生履歴管理ステップで前記メモリ障害が固定障害と判別された場合に、前記固定障害が発生した前記バッファ領域を管理する固定障害バッファ管理ステップと、
前記障害発生履歴管理ステップで固定障害でないと判定された前記バッファ領域について、自律的にメモリチェックを行い、当該バッファ領域が固定障害か間欠障害かを判別する障害バッファ切り分け管理ステップを有し、
前記障害バッファ切り分け管理ステップでは、前記メモリチェックにおいて、間欠障害であるとの判断回数が所定の閾値を超えた場合に、当該バッファ領域のメモリ障害が解消したとして、データ送受信処理に再利用できるようにし、前記予備のバッファの割り当てを解除するステップを実行することを特徴とするメモリ制御方法。
【請求項６】
前記障害発生履歴管理ステップは、バッファ領域毎にメモリ障害発生の回数を履歴管理テーブルに登録することを特徴とする請求項５に記載のメモリ制御方法。
【請求項７】
前記障害バッファ切り分け管理ステップは、前記障害が発生したバッファ領域毎に、前記メモリチェックの結果間欠障害であると判定した回数を管理テーブルに登録することを特徴とする請求項５又は請求項６に記載のメモリ制御方法。
【請求項８】
前記障害バッファ切り分け管理ステップは、前記メモリチェックを前記データ送受信処理がなされていないタイミングで行うことを特徴とする請求項５から請求項７の何れか１つに記載のメモリ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ制御回路に関し、特に、外付けメモリに対するアクセス制御を行うメモリ制御回路において、発生したメモリ障害が固定障害か否かを判別し、前記メモリ障害が固定障害でない場合に、メモリ障害により不足した前記外付けメモリの空きバッファ領域を予備のバッファ領域で補うことで、前記外付けメモリに対するアクセスの継続運用を可能とすることを特徴とするメモリ制御回路に関する。
【０００２】
【従来の技術】
従来、メモリ制御回路（ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）およびＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等）は、受信データの書き込み制御を行う書き込み管理部、送信データの読み出しとメモリ障害の検出を行う読み出し管理部、および外付けメモリの空きバッファ面（領域）を示すバッファポインタの管理を行う空きバッファ管理部で構成されていた。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述した従来のメモリ制御回路では、発生したメモリ障害がソフトエラー等による間欠障害の場合でも、外付けメモリ個別の固定障害と同一レベルの障害としてしか判別出来なかったため、メモリ障害発生時にはメモリ制御回路を即時運用停止にさせて、障害要因の判別作業を行わなければならないという問題点があった。
【０００４】
また、発生したメモリ障害がソフトエラー等による間欠障害であるのか、外付けメモリ個別の固定障害であるのかを判別するためには、障害発生後に再現試験を繰り返し実施し、オシロスコープ、ロジックアナライザ等の測定器を用いて調査する必要があった。
【０００５】
本発明の第１の目的は、上記従来の課題を解決するため、メモリ障害発生時においてメモリ制御回路の運用を停止することなく継続運用可能となるメモリ制御回路を提供することである。
【０００６】
本発明の第２の目的は、上記従来の課題を解決するため、発生したメモリ障害を間欠障害と固定障害に判別するメモリ制御回路を提供することである。
【０００７】
【課題を解決するための手段】
上記目的を達成するため本発明は、外付けメモリに対するアクセス制御を行うメモリ制御回路において、データ送受信処理中に検出された前記外付けメモリのバッファ領域毎のメモリ障害の回数を管理し、前記メモリ障害の回数が所定の閾値以下である場合に固定障害でないと判別し、前記メモリ障害の回数が所定の閾値を超えた場合に、前記バッファ領域のメモリ障害を固定障害と判別する障害発生履歴管理部と、前記障害発生履歴管理部で前記メモリ障害が固定障害でないと判別された場合に、前記メモリ障害により不足した前記外付けメモリの空きバッファ領域を、データ送受信処理に再利用できる予備のバッファ領域を割り当てて補う予備バッファ管理部と、前記障害発生履歴管理部で前記メモリ障害が固定障害と判別された場合に、前記固定障害が発生した前記バッファ領域を管理する固定障害バッファ管理部と、前記障害発生履歴管理部で固定障害でないと判定された前記バッファ領域について、自律的にメモリチェックを行い、当該バッファ領域が固定障害か間欠障害かを判別する障害バッファ切り分け管理部を備え、前記障害バッファ切り分け管理部は、前記メモリチェックにおいて、間欠障害であるとの判断回数が所定の閾値を超えた場合に、当該バッファ領域のメモリ障害が解消したとして、データ送受信処理に再利用できるようにし、前記予備のバッファの割り当てを解除することを特徴とする。
【０００８】
請求項２の本発明のメモリ制御回路は、前記障害発生履歴管理部は、バッファ領域毎にメモリ障害発生の回数を登録する履歴管理テーブルを備えることを特徴とする。
【０００９】
請求項３の本発明のメモリ制御回路は、前記障害バッファ切り分け管理部は、前記障害が発生したバッファ領域毎に、前記メモリチェックの結果間欠障害であると判定した回数を登録する管理テーブルを備えることを特徴とする。
【００１０】
請求項４の本発明のメモリ制御回路は、前記障害バッファ切り分け管理部は、前記メモリチェックを前記データ送受信処理がなされていないタイミングで行うことを特徴とする。
【００１１】
請求項５の本発明のメモリ制御回路は、外付けメモリに対するアクセス制御を行うメモリ制御方法において、データ送受信処理中に検出された前記外付けメモリのバッファ領域毎のメモリ障害の回数を管理し、前記メモリ障害の回数が所定の閾値以下である場合に固定障害でないと判別し、前記メモリ障害の回数が所定の閾値を超えた場合に、前記バッファ領域のメモリ障害を固定障害と判別する障害発生履歴管理ステップと、前記障害発生履歴管理ステップで前記メモリ障害が固定障害でないと判別された場合に、前記メモリ障害により不足した前記外付けメモリの空きバッファ領域を、データ送受信処理に再利用できる予備のバッファ領域を割り当てて補う予備バッファ管理ステップと、前記障害発生履歴管理ステップで前記メモリ障害が固定障害と判別された場合に、前記固定障害が発生した前記バッファ領域を管理する固定障害バッファ管理ステップと、前記障害発生履歴管理ステップで固定障害でないと判定された前記バッファ領域について、自律的にメモリチェックを行い、当該バッファ領域が固定障害か間欠障害かを判別する障害バッファ切り分け管理ステップを有し、前記障害バッファ切り分け管理ステップでは、前記メモリチェックにおいて、間欠障害であるとの判断回数が所定の閾値を超えた場合に、当該バッファ領域のメモリ障害が解消したとして、データ送受信処理に再利用できるようにし、前記予備のバッファの割り当てを解除するステップを実行することを特徴とする。
【００１２】
請求項６の本発明のメモリ制御方法は、前記障害発生履歴管理ステップは、バッファ領域毎にメモリ障害発生の回数を履歴管理テーブルに登録することを特徴とする。
【００１３】
請求項７の本発明のメモリ制御方法は、前記障害バッファ切り分け管理ステップは、前記障害が発生したバッファ領域毎に、前記メモリチェックの結果間欠障害であると判定した回数を管理テーブルに登録することを特徴とする。
【００１４】
請求項８の本発明のメモリ制御方法は、前記障害バッファ切り分け管理ステップは、前記メモリチェックを前記データ送受信処理がなされていないタイミングで行うことを特徴とする。
【００２３】
【発明の実施の形態】
以下、本発明の好適な実施の形態について、図面を参照して詳細に説明する。
【００２４】
図１は本発明の好適な実施の形態によるメモリ制御回路の構成を示すブロック図である。
【００２５】
メモリ制御回路１０は、書き込み管理部１１、読み出し管理部１２、空きバッファ管理部１３、障害発生履歴管理部１４、予備バッファ管理部１５、障害バッファ切り分け管理部１６および固定障害バッファ管理部１７から構成される。
【００２６】
書き込み管理部１１は、空きバッファ管理部１３より外付けメモリへの書き込みバッファポインタを取得し、そのバッファポインタが示す外付けメモリの空きバッファ面（領域）に、受信データと、作成した受信データに対するパリティデータ等のチェックデータを書き込む回路である。また、書き込み完了後、読み出し管理部１２に対して、データが書き込まれた外付けメモリのバッファ面（領域）を示す書き込み完了バッファポインタを通知する。
【００２７】
読み出し管理部１２は、書き込み管理部１１より通知された書き込み完了バッファポインタを管理しており、書き込み完了順に書き込み完了バッファポインタが示す外付けメモリのバッファ面（領域）より送信データを読み出すと共に、書き込み管理部１１が書き込んだパリティデータ等のチェックデータのチェック（以下、パリティチェック等と記載する）を行いメモリ障害の検出をする回路である。
【００２８】
また、読み出し完了後、パリティチェック等でメモリ障害を検出しなかった場合は読み出し完了バッファポインタの示すバッファ面（領域）は空き領域になるため、読み出し管理部１２は空きバッファ管理部１３に対して、読み出し完了バッファポインタを通知する。メモリ障害を検出した場合は、読み出し管理部１２は障害発生履歴管理部１４に対して、障害を検出した外付けメモリのバッファ面（領域）を示す障害発生バッファポインタを通知する。
【００２９】
空きバッファ管理部１３は、外付けメモリの空きバッファ面（領域）を示す空きバッファポインタの管理を行う回路であり、書き込み管理部１１、読み出し管理部１２および予備バッファ管理部１５との間で上各述したバッファポインタを送受する。
【００３０】
障害発生履歴管理部１４は、メモリ障害が検出された時に読み出し管理部１２より通知される障害発生バッファポインタを障害発生履歴管理テーブル１４１で管理するとともに、検出された障害が固定障害であるか否かを判別する回路である。
【００３１】
図２に障害発生履歴管理部１４の回路内に有する障害発生履歴管理テーブル１４１を示す。ここでは、領域数Ｎａ面（領域）のバッファ面（領域）について、障害発生バッファポインタと障害発生バッファポインタが示す外付けメモリのバッファ面（領域）で発生した障害の発生回数を管理する。
【００３２】
予備バッファ管理部１５は、空きバッファ管理部１３で管理している空きバッファポインタの不足が生じた時に、空きバッファ管理部１３へ補うための予備バッファポインタを管理する回路である。空きバッファポインタの不足は、メモリ障害が検出されなかった場合に読み出し管理部１２から空きバッファ管理部１３に還元される読み出し完了バッファポインタが、メモリ障害の発生により還元されないために生じるものである。
【００３３】
図３に予備バッファ管理部１５の回路内に有する予備バッファ管理テーブル１５１を示す。ここでは、領域数Ｎｂ面（領域）の予備バッファ面（領域）について予備バッファポインタの管理をする。
【００３４】
予備バッファ管理部１５はまた、障害バッファ切り分け管理部１６で間欠障害と判別され、データ送受信処理に再利用できるように還元された外付けメモリのバッファ面（領域）を示すバッファポインタである間欠障害バッファポインタも同様に、予備バッファポインタとして予備バッファ管理テーブル１５１で管理する。
【００３５】
障害バッファ切り分け管理部１６は、障害発生履歴管理部１４から通知された障害発生バッファポインタを障害バッファ切り分け管理テーブル１６１で管理するとともに、検出された障害を間欠障害と固定障害に判別する回路である。
【００３６】
図４に障害バッファ切り分け管理部１６の回路内に有する障害バッファ切り分け管理テーブル１６１を示す。ここでは、領域数Ｎｃ面（領域）について障害発生バッファポインタの管理をする。
【００３７】
固定障害バッファ管理部１７は、障害発生履歴管理部１４および障害バッファ切り分け管理部１６でのメモリ障害の判別の結果、固定障害と判別された外付けメモリのバッファ面（領域）を示すバッファポインタである固定障害バッファポインタを固定障害バッファ管理テーブル１７１で管理する回路である。
【００３８】
図５に固定障害バッファ管理部１７の回路内に有する固定障害バッファ管理テーブル１７１を示す。ここでは、領域数Ｎｄ面（領域）について固定障害発生バッファポインタの管理をする。
【００３９】
次に、図６および図７を参照しながら本発明の好適な実施の形態によるメモリ制御回路の処理動作について説明する。図６および図７は、本発明の好適な実施の形態によるメモリ制御回路の処理動作を示すフローチャートである。なお、図６のＡ〜Ｄの符号は図７の同一符号に続くことを示している。
【００４０】
メモリ制御回路１０でのデータ送受信処理が有る場合はステップ６０２へ、処理が無い場合はステップ６１１へ移行する（ステップ６０１）。
【００４１】
ステップ６０１においてデータ送受信処理が有る場合、読み出し管理部１２がパリティチェック等によりメモリ障害発生の有無を判断し（ステップ６０２）、障害が無い時は開始へ、障害が有る時は障害発生バッファポインタである当該バッファポインタを障害発生履歴管理部１４に通知し、ステップ６０３へ移行する。
【００４２】
ステップ６０２においてメモリ障害が検出された場合、読み出し管理部１２より通知された障害発生バッファポインタが過去に登録されているかどうかを障害発生履歴管理テーブル１４１より検索し（ステップ６０３）、登録されている場合はステップ６０８へ移行する。登録されていない場合は、当該バッファポインタを障害発生履歴管理テーブル１４１に登録するとともに（ステップ６０４）、障害バッファ切り分け管理部１６の障害バッファ切り分け管理テーブル１６１に登録する（ステップ６０５）。
【００４３】
次に、障害発生バッファポインタが発生した事により少なくなった空きバッファ管理部１３で管理している空きバッファポインタを補うため、予備バッファ管理部１５の予備バッファ管理テーブル１５１で管理している予備バッファポインタを空きバッファ管理部１３に補充する事により、データ送受信処理で使用するバッファ面（領域）の不足を調整する（ステップ６０６）。
【００４４】
この調整では、予備バッファ管理テーブル１５１で管理している予備バッファポインタが減るため、続いて予備バッファポインタに残りがあるかの計算を行い（ステップ６０７）、予備バッファポインタに残りが有る場合は開始へ移行する。残りが無い場合は、ステップ６０２において次にメモリ障害が発生した場合、ステップ６０６で空きバッファ管理部１３に予備バッファポインタを補充できなくなることによって、データ送受信処理で使用するバッファ面（領域）に不足が発生し処理続行不可能になるため、継続運用を停止する。
【００４５】
ステップ６０３において、読み出し管理部１２より通知された障害発生バッファポインタが過去に登録されていた場合、障害発生履歴管理テーブル１４１より検索した当該バッファポインタが示す外付けメモリのバッファ面（領域）の障害発生回数をカウントするために、既に発生した回数に１を加えた回数を障害発生履歴管理テーブル１４１に登録する（ステップ６０８）。続いて、登録した障害発生回数が障害発生履歴管理部１４で予め設定していた回数を超えているか否かを判断し（ステップ６０９）、超えていない場合は当該バッファポインタを障害バッファ切り分け管理部１６に通知し、ステップ６０５に移行する。
【００４６】
ステップ６０８で登録した障害発生回数が障害発生履歴管理部１４で予め設定していた回数を超えている場合は、読み出し管理部１２より通知された障害発生バッファポインタが示す外付けメモリのバッファ面（領域）は固定障害と判別し、固定障害バッファポインタである当該バッファポインタを固定障害バッファ管理部に通知する。また、障害発生履歴管理テーブル１４１より当該バッファポインタを削除するとともに発生回数をクリアにし（ステップ６１０）、ステップ６１６に移行する。
【００４７】
ステップ６０１においてデータ送受信処理が無い場合、障害バッファ切り分け管理部１６は障害バッファ切り分け管理テーブル１６１に障害発生バッファポインタの登録が有るか無いかを検索し（ステップ６１１）、登録が無い場合は開始へ移行する。登録が有る場合は、障害バッファ切り分け管理テーブル１６１に登録されている当該バッファポインタが示す外付けメモリのバッファ面（領域）に対して、メモリ制御回路１０がハード自律でメモリセルフチェックを行い（ステップ６１２）、メモリセルフチェックの結果がＯＫでない場合はステップ６１５へ移行する。
【００４８】
ハード自律のメモリセルフチェックについては、例えば、全ビットに「０」あるいは「１」の値を書き込んで、それを正常に読み取ることができるかといった従来からの方式を利用することができる。
【００４９】
メモリセルフチェックの結果がＯＫの場合は、障害バッファ切り分け管理部１６が予め設定しておいたＯＫの回数がステップ６１３で結果がＯＫになった回数を超えているか否かを判断し（ステップ６１３）、超えていない場合は開始へ移行する。
【００５０】
超えている場合は、ステップ６０２で検出した障害発生バッファポインタが示す外付けメモリのバッファ面（領域）はソフトエラー等による間欠障害であると判別し、当該バッファ面（領域）のメモリ障害が解消したとして、当該バッファポインタを障害バッファ切り分け管理テーブル１６１より削除するとともに、データ送受信処理に再利用できるように予備バッファ管理テーブル１５１へ登録し（ステップ６１４）、開始へ移行する。また、ステップ６０６で空きバッファ面（領域）不足の調整として予備バッファ管理部１５から空きバッファ管理部１３に補充された予備バッファポインタの割り当てを解除する。
【００５１】
ステップ６１２におけるメモリセルフチェックの結果がＯＫでない場合、ステップ６０２で検出した障害発生バッファポインタが示す外付けメモリのバッファ面（領域）は固定障害と判別し、障害発生履歴管理テーブル１４１および障害バッファ切り分け管理テーブル１６１より当該バッファポインタを削除するとともに（ステップ６１５）、固定障害バッファポインタである当該バッファポインタを固定障害バッファ管理部１７に通知する。
【００５２】
続いて、ステップ６１０またはステップ６１５から通知された固定障害バッファポインタを固定障害バッファ管理テーブル１７１に登録する（ステップ６１６）。ここで、固定障害バッファ管理部１７が予め設定しておいた障害発生バッファ面（領域）がステップ６１６で登録した面（領域）を超えているか否かを判断し（ステップ６１７）、超えていない場合は開始へ、超えている場合は継続運用不可状態と判断し、継続運用を停止する。
【００５３】
以上、好ましい実施の形態および実施例を挙げて本発明を説明したが、本発明は必ずしも上記実施の形態および実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００５４】
例えば、データ送受信処理に使用する総バッファ面（領域）がある一定以上の領域が保たれていれば良いメモリ制御回路の場合、予備バッファ管理部１５を削除し、空きバッファ管理部１３で必要バッファ面（領域）の管理をする事で、回路規模の簡素化、継続運用時間の長時間化に役立つ。
【００５５】
【発明の効果】
以上説明したように、本発明のメモリ制御回路により、発生したメモリ障害がソフトエラー等による間欠障害であるか、外付けメモリ個別の固定障害であるかを判別する事ができる。
【００５６】
また、間欠障害と固定障害の判別作業をメモリ制御回路がハード自律で、かつデータ送受信処理を行わない空き時間に実施するため、メモリ制御回路に性能低下の影響を与えることがない。
【００５７】
さらに、固定障害バッファ管理部の固定障害バッファ管理テーブルに登録されている固定障害バッファポインタを読み出す事により、外付けメモリの固定障害バッファ面（領域）も迅速に検索可能になる。
【００５８】
また、予備バッファ管理部に予備バッファポインタを備えている事により、メモリ障害発生時においても、メモリ制御回路の継続運用が可能となる。
【図面の簡単な説明】
【図１】  本発明の好適な実施の形態によるメモリ制御回路の構成を示すブロック図である。
【図２】  障害発生履歴管理部の回路内に有する障害発生履歴管理テーブルを示す図である。
【図３】  予備バッファ管理部の回路内に有する予備バッファ管理テーブルを示す図である。
【図４】  障害バッファ切り分け管理部の回路内に有する障害バッファ切り分け管理テーブルを示す図である。
【図５】  固定障害バッファ管理部の回路内に有する固定障害バッファ管理テーブルを示す図である。
【図６】  本発明の好適な実施の形態によるメモリ制御回路の処理動作を示すフローチャートである。
【図７】  本発明の好適な実施の形態によるメモリ制御回路の処理動作を示すフローチャートである。
【符号の説明】
１０  メモリ制御回路
１１  書き込み管理部
１２  読み出し管理部
１３  空きバッファ管理部
１４  障害発生履歴管理部
１５  予備バッファ管理部
１６  障害バッファ切り分け管理部
１７  固定障害バッファ管理部
１４１  障害発生履歴管理テーブル
１５１  予備バッファ管理テーブル
１６１  障害バッファ切り分け管理テーブル
１７１  固定障害バッファ管理テーブル
【図１】
0003747817.tif 000002
【図２】
0003747817.tif 000003
【図３】
0003747817.tif 000004
【図４】
0003747817.tif 000005
【図５】
0003747817.tif 000006
【図６】
0003747817.tif 000007
【図７】
0003747817.tif 000008