JP2009042855A - 回路間データ転送方法およびシステム - Google Patents

回路間データ転送方法およびシステム Download PDF

Info

Publication number
JP2009042855A
JP2009042855A JP2007204886A JP2007204886A JP2009042855A JP 2009042855 A JP2009042855 A JP 2009042855A JP 2007204886 A JP2007204886 A JP 2007204886A JP 2007204886 A JP2007204886 A JP 2007204886A JP 2009042855 A JP2009042855 A JP 2009042855A
Authority
JP
Japan
Prior art keywords
error
data
transfer
memory
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2007204886A
Other languages
English (en)
Inventor
Tsutomu Nakamura
努 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Saitama Ltd
Original Assignee
NEC Saitama Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Saitama Ltd filed Critical NEC Saitama Ltd
Priority to JP2007204886A priority Critical patent/JP2009042855A/ja
Publication of JP2009042855A publication Critical patent/JP2009042855A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】運用中にアドレス接続正常性の検証を可能とする回路間データ転送方法およびシステムを提供する。
【解決手段】回路5,6間でメモリ3を介してデータ転送を行う際に、メモリ3の転送用領域に書き込まれる転送データに所定アドレスカウント間隔で誤り訂正可能なエラービットを書き込み、メモリ3の転送用領域から読み出された転送データからエラーが検出されるアドレスカウント間隔を監視し(S504)、エラー検出間隔の異常を判別することで転送の正常性を検証する(S507、S508)。
【選択図】図5

Description

本発明は回路間でデータを転送する際の正常性検証を行うことができるデータ転送方法およびシステムに関する。
2つのプロセッサ(CPU)間でデータ転送を行う方式について各種提案されている。例えば、下記特許文献1には、データのライト(書き込み)およびリード(読み出し)を同時に行うことができるデュアルポートメモリを介してデータ転送を行う技術が開示されている。また、下記特許文献2には、2つのCPU間でFIFOメモリを通してデータ転送を行う場合、FIFOメモリに転送したデータが正常か否かをチェックするチェック回路を設け、正常であればCPUから応答がなくとも次の処理を実行可能にしたデータ転送方式が開示されている。
さらに、メモリを介してCPU間データ転送を行う場合、ECC(Error Check and Correct)用メモリを用いてデータ接続の正常性を検証し、さらにCPUが運用を開始する前に、全アドレスビットに対して試験的なライトおよびリードを行うことでアドレス接続の正常性を検証する方式が一般的に採用されている。
特開平09−081533 特開平11−018122
上述したメモリを介してCPU間データ転送を行う方式では、次のような問題が発生する可能性がある。たとえば、運用中にデータ転送用メモリでアドレスバスが断線するなどの異常が発生すると、誤ったアドレスにライト/リードアクセスが行われる。しかしながら、その場合でもデータ転送用メモリおよびECCメモリのデータ値は正常であるから、ECCによってエラー検出はされない。その結果、転送データの抜けや転送順序誤りが発生しても、その原因であるアドレス異常を発見することはできない。
本発明の目的は、運用中にアドレス接続の正常性を検証することができ、メモリアクセスの信頼性を向上させることができる回路間データ転送方法およびシステムを提供することにある。
本発明によるデータ転送方法は、回路間でメモリを介してデータ転送を行う方法であって、メモリの転送用領域に書き込まれる転送データに所定アドレスカウント間隔で誤り訂正可能なエラービットを書き込み、メモリの転送用領域から読み出された転送データからエラーが検出されるアドレスカウント間隔を監視することでデータ転送の正常性を検証する、ことを特徴とする。
本発明によれば、回路の運用中にアドレス接続の正常性を検証することができ、メモリアクセスの信頼性を向上させることができる。
以下、データ転送を行う回路として、2つのCPU(中央処理装置)を例示し、これらCPU間での転送用メモリを介したデータ転送システムおよび方法について図面を参照しながら詳細に説明する。ただし、CPUの個数は2個に限定されるものではなく、複数のCPU間のデータ転送にも本発明は適用可能である。また、本発明においてデータ転送を行う回路は、CPUと呼ばれる回路に限定するものではなく、プログラム制御プロセッサまたはコア、あるいは一般に情報処理機能を有する回路であってもよい。
1.第1実施例
図1は本発明の第1実施例による回路間データ転送システムのブロック図である。図1に示すように、本実施例によるデータ転送回路1は、本実施例の特徴的な制御を実行するECC制御部2、転送データを中継する転送用メモリ3、転送データから生成されたエラー訂正符号を格納するECC用メモリ4、アドレスバスおよびデータバスで接続されている第1CPU5と第2CPU6、および、バス調停回路7を有する。なお、ECC制御部2については後述する。
第1CPU5および第2CPU6は、転送用メモリ3を介して相互にデータ転送を行う。たとえば第1CPU5から第2CPU6へデータ転送を行う場合、第1CPU5が転送するデータを転送用メモリ3へライトし、その後に第2CPU6が転送用メモリ3にライトされたデータをリードする。ECC用メモリ4は、転送用メモリ3を介したデータ転送時にエラー検出と訂正を行うためのエラー訂正符号を保存する。このようなデータ転送時のメモリ制御とエラー検出および訂正とはECC制御部2により行われる。
バス調停回路7は、第1CPU5から第2CPU6へデータ転送する場合と、第2CPU6から第1CPU5へデータ転送する場合とを調停してデータ転送方向を決定する。第1CPU5および第2CPU6は、転送用メモリ3に対してライトアクセス又はリードアクセスを開始するときにバス調停回路7へ要求信号を出力する。バス調停回路7は、メモリアクセスを許可する方のCPUに対して許可信号を出力する。許可信号が受けた第1CPU5あるいは第2CPU6は、アドレスとアクセス制御信号を出力し、データバスを介して転送用メモリ3に対してリードアクセスあるいはライトアクセスを行う。ECC制御部2には、第1CPU5および第2CPU6のデータバスおよびアクセス制御信号が接続されており、転送用メモリ3とECC用メモリ4のデータバスおよびアクセス制御信号、さらに第1CPU5と第2CPU6の制御信号も接続されている。
一方のCPUから転送用メモリ3にライトアクセスが行われると、ECC制御部2は、当該CPUから出力されるアクセス制御信号を転送用メモリ3およびECC用メモリ4へ中継し、かつCPU間データバスに出力されるデータを転送用メモリ3へ中継する。これと同時に、ECC制御部2はデータの値からエラー訂正符号を生成してECC用メモリ4へ格納する。
これに続いて、他方のCPUから転送用メモリ3にリードアクセスが行われると、ECC制御部2は、当該CPUからのアクセス制御信号を転送用メモリ3およびECC用メモリ4へ中継し、転送用メモリ3からのリードデータ出力値とECC用メモリ4から読み出されたエラー訂正符号とを用いてエラー検査を行う。エラー検査の結果が、1ビット誤りで訂正可能な場合は訂正したデータを当該他方のCPUへ転送し、複数ビット誤りで訂正不可能あるいはエラー検出無しの場合は転送用メモリ3のリードデータをそのまま当該他方のCPUへ転送する。また、ECC制御部2は制御信号を用いて第1CPU5および第2CPU6へアドレスバス異常を通知し、また第1CPU5および第2CPU6は制御信号によってECC制御部2の動作を制御する。
図2に示すように、転送用メモリ3は、第1CPU5がライトしたデータを第2CPU6がリードしてデータ転送するための領域3aと、第2CPU6がライトしたデータを第1CPU5がリードしてデータ転送するための領域3bで構成され、それぞれ連続したアドレスの領域で分けられる。たとえば、1回のデータ転送サイズが32バイトで、転送用メモリ領域3aおよび3bの各データサイズが1アドレスあたり1バイトであれば、転送用メモリ領域3aおよび3bの各アドレス数は32となる。
図2において、CPU5は、転送領域3aの最後のアドレス3dにアクセスすると、次は再び転送領域の先頭のアドレス3cに戻ってアクセスを行い、同様にCPU6は、転送領域3bの最後のアドレス3fにアクセスすると、次は再び転送領域の先頭のアドレス3eに戻ってアクセスを行う。データ転送においてリードアクセスはライトアクセスのアドレスを追い越してはならず、転送領域のアドレス数以上遅れてもいけないという条件を維持する必要がある。
この条件を維持するためのリードアクセスとライトアクセスの回数を調整する方法は本発明では任意に選択できる。一例としては、バス調停回路7を第1CPU5と第2CPU6のアクセスを交互に選択する動作とし、それぞれのCPUでライトアクセスとリードアクセスを交互に行う動作とすれば、均等なアクセスとなり、リードアクセスとライトアクセスのアドレス関係も一定に保つことができる。
1.1)ECC制御部
図3は本発明の第1実施例による回路間データ転送システムのECC制御部の構成をより詳細に示すブロック図である。ECC制御部2は、各種アクセス制御信号を中継する制御中継回路21、第1CPU5からのライト回数をカウントする第1ライトカウンタ22、第2CPU6からのライト回数をカウントする第2ライトカウンタ23、第1CPU5からのリード回数をカウントする第1リードカウンタ24、第2CPU6からのリード回数をカウントする第2リードカウンタ25、ECCデータ生成回路26、および、ECCデータ検査回路27を備えている。
制御信号中継回路21は、第1CPU5と第2CPU6のアクセス制御信号を転送用メモリ3とECC用メモリ4へ中継する。具体的には、制御信号中継回路21は、第1CPU5のアクセス制御信号からライトアクセスであることを検出すると、第1ライトカウンタ22へ通知し、ライトアクセスの通知がある毎に第1ライトカウンタ22はカウンタを1ずつインクリメントする。また、制御信号中継回路21は、第1CPU5のアクセス制御信号からリードアクセスであることを検出すると、第1リードカウンタ24へ通知し、リードアクセスの通知がある毎に第1リードカウンタ24はカウンタを1ずつインクリメントする。
同様に、制御信号中継回路21は、第2CPU6のアクセス制御信号よりライトアクセス制御であることを検出すると、第2ライトカウンタ23へ通知し、ライトアクセスの通知がある毎に第2ライトカウンタ23はカウンタを1ずつインクリメントする。また、制御信号中継回路21は、第2CPU6のアクセス制御信号よりリードアクセス制御であることを検出すると、第2リードカウンタ25へ通知し、ライトアクセスの通知がある毎に第2リードカウンタ25はカウンタを1ずつインクリメントする。
第1ライトカウンタ22および第2ライトカウンタ23は、転送用メモリ3のデータ転送に使用するメモリ領域3aあるいは3bのアドレス数に1を加算した値を上限としてカウントし、カウント値が上限に到達するとECCデータ生成回路26へ通知し、その後カウント値を0にクリアしてカウント動作を継続する。第1リードカウンタ24および第2リードカウンタ25は、転送用メモリ3のデータ転送に使用するメモリ領域のアドレス数に1を加算した値を上限としてカウントし、カウント値が上限に到達するとECCデータ検査回路27へ通知し、その後カウント値を0にクリアしてカウント動作を継続する。
ECCデータ生成回路26は、第1CPU5あるいは第2CPU6のライトデータ値よりエラー訂正符号を算出してECC用メモリ4へ格納する。また、第1CPU5からのライトアクセスが発生した時に第1ライトカウンタ22のカウント値が上限と到達した場合、ECCデータ生成回路26は当該ライトデータの任意のビットを反転させ、1ビット誤りを含むデータを転送用メモリ3へライトする。同様に、第2CPU6からのライトアクセスが発生した時に第2ライトカウンタ23のカウント値が上限に到達したとすれば、ECCデータ生成回路26は、当該ライトデータの任意のビットを反転させ、1ビット誤りを含むデータとして転送用メモリ3へライトする。以下、このように一定間隔で意図的にライトされる1ビット誤りを含むデータを、適宜、「エラー検出用データ」と呼ぶ。
本実施例の場合、ライトカウンタ値の上限は転送領域3aあるいは3bのアドレス数に1を加算した値なので、ECCデータ生成回路26が1ビット誤りを含むエラー検出用データを転送用メモリ3にライトするアドレスは、図4のように1アドレスずつ後方へずれていく。したがって、転送領域3aあるいは3bの全てのアドレスに対して、エラー検出用データが一定の時間間隔で順次書き込まれることとなる。
第1CPU5あるいは第2CPU6からの制御信号に従って、ECCデータ生成回路26により実行されるエラー検出用データの生成開始/停止が制御される。すなわち、第1CPU5は、第2CPU6のライトアクセスに対するエラー検出用データ生成の開始/停止の制御が可能であり、第2CPU6は、第1CPU5のライトアクセスに対するエラー検出用データ生成の開始/停止の制御が可能である。
ECCデータ検査回路27は、第1CPU5あるいは第2CPU6からのリードアクセスに従って転送用メモリ3およびECC用メモリ4から読み出されたそれぞれのデータ値に基づいてエラー検査を行う。エラー検査の結果が、1ビット誤りで訂正可能な場合は訂正したデータをリードアクセス元のCPU5あるいは6へ転送し、複数ビット誤りで訂正不可能あるいはエラー検出無しの場合は転送用メモリ3のリードデータをそのまま転送する。
ECCデータ検査回路27の内部には、第1CPU5のリードアクセス値エラー発生回数を計数する第1エラーカウンタ28と、第2CPU6のリードアクセス値エラー発生回数を計数する第2エラーカウンタ29が設けられている。第1CPU5のリードアクセス値の検査でエラーを検出した場合は第1リードカウンタ24のカウンタ値を0にクリアさせて、第1エラーカウンタ28のリードアクセス値エラー発生回数のカウントをインクリメントする。第2CPU6のリードアクセス値の検査でエラーを検出した場合は第2リードカウンタ25のカウンタ値を0にクリアさせて、第2エラーカウンタ29のリードアクセス値エラー発生回数のカウントをインクリメントする。
ECCデータ検査回路27は、エラー検出時に、当該CPUに対応するリードカウンタからカウント値の上限到達の通知があった場合は、対応するリードカウンタ値を0にクリアさせて、さらに、当該CPUのリードアクセス値エラー発生回数のカウント値を0にクリアする。
ライトカウンタ22および23の上限値とリードカウンタ24および25の上限値とは同じ値に設定されている。したがって、データ転送回路1が正常な状態にあるときは、ライトカウンタが上限値になる度にECCデータ生成回路26が転送用メモリ3にライトするエラー検出用データは、リードカウンタが上限値になる度にECCデータ検査回路27によってエラー検出される。このため、ECCデータ検出回路27でリードアクセス値エラー発生回数のカウンタは定期的にクリアされる。
データ転送回路1のアドレスバスにショートや断線などの障害が発生すると、転送用メモリ3のデータ転送に使用するメモリ領域3aあるいは3bの中で重複してライトアクセスあるいはリードアクセスが行われるアドレスが発生する。この障害状態では、リードカウンタのカウント値が上限になる前にECCデータ検査回路27によってリードデータ値のエラーが検出され、当該CPUのアクセスに対応するリードアクセス値エラー発生回数がインクリメントされる。そのままデータ転送動作が継続すれば、リードアクセス値エラー発生回数のカウンタはクリアされることなく、インクリメントが続く。
上述したように、第1エラーカウンタ28はCPU5のアクセスに対応するリードアクセス値エラー発生回数を示し、第2エラーカウンタ29はCPU6のアクセスに対応するリードアクセス値エラー発生回数を示す。ECCデータ検査回路27は第1エラーカウンタ28および第2エラーカウンタ29のいずれかにおいて、N回までのエラー発生を検出すると、アドレスバス異常検出として第1CPU5および第2CPU6へ通知する。ここで、回数Nは、アドレスバス異常によるエラー発生であるか、あるいは偶発的なエラー発生であるかを判定するためのしきい値である。偶発的なエラー発生は継続して発生しないのでエラー発生回数がN回に到達する前に正常状態に復旧し、リードアクセス値エラー発生回数のカウントがクリアされることを想定している。
1.2)動作
図5は本発明の第1実施例におけるデータ転送方法を説明するためのフローチャートである。ただし、CPU間で行われる双方向のデータ転送は基本的に同様の動作であるから、煩雑さを回避するために、一方向のデータ転送だけを説明する。この例では、第1CPU5から第2CPU6へデータ転送される場合に着目する。
まず、第1CPU5および第2CPU6の両者が起動し(ステップS501)、両CPUがデータ運用開始可能になると(ステップS502)、第1CPU5からのライトアクセスによってデータ転送が開始する。一例として、1回のデータ転送サイズが32バイトで、転送用メモリ3の転送用メモリ領域3aのデータサイズが1アドレスあたり1バイトである場合、データ転送は次のように実行される。第1CPU5はバス調停回路7で調停されながら32回連続してライトアクセスを行うことで1回分の転送データを領域3aにライトする。続いて、第2CPU6がバス調停回路7で調停されながら、32回連続してリードアクセスを行うことで1回分のデータ転送が完了する。このように第1CPU5および第2CPU6がライトアクセスおよびリードアクセスを繰り返すことでデータ転送が継続する。
ステップ502の時点では、ECCデータ生成回路26による1ビット誤りを含むエラー検出用データの生成は停止状態であるが、ECCデータ検査回路27によるエラー検査は動作している。
この場合、第2CPU6は、データ転送回路1が正常動作していることを確認するために、ECC制御部2からエラー検出通知信号を入力していない期間が一定期間以上であるか否かを監視する(ステップS503)。このエラー検出通知信号は、アドレスバス異常の通知を目的としたものであるが、運用開始時点ではエラー検出通知信号はメモリやデータバスの障害の検出を目的としている。この運用開始時点でメモリやデータバスに障害があると(ステップS503のNO)、第2CPU6のリードアクセス時にECCデータ検査回路27は頻繁に(あるいは連続して)エラー発生を検出する。したがって、第2リードカウンタ25が上限値に達する前に、エラー検出が繰り返されることでリードアクセス値エラー発生回数がしきい値Nに到達する。リードアクセス値エラー発生回数がしきい値Nに到達すると、ECCデータ検査回路27は、第1CPU5および第2CPU6へ同時に障害通知を出力し、両CPUのデータ運用が停止する(ステップ509)。
第2CPU6は、ECCデータ検査回路27から一定期間エラー通知が無い場合(ステップS503のYES)、監視モードを開始する(ステップS504)。すなわち、第2CPU6は、ECCデータ生成回路26に対して1ビット誤りを含むエラー検出用データを生成するように制御する。上述したように、第1CPU5がライトアクセスする度に第1ライトカウンタ22はインクリメントするが、第1ライトカウンタ22が上限値に達する毎に、ECCデータ生成回路26は、転送用メモリ3にライトすべきデータの任意の1ビットを反転させ、この1ビットエラーを含むエラー検出用データを転送用メモリ領域3aの現時点のアドレスにライトする。
転送用メモリ3の転送領域3aのアドレス数が128個である場合を例にとると、第1ライトカウンタ22は第1CPU5が129回ライトアクセスを行う度にカウント値が上限値となるので、そのタイミングでECCデータ生成回路26はエラー検出用データを生成する。前回エラー検出用データをライトした転送用メモリ領域3aのアドレスが100番目であったとすると、今回、ECCデータ生成回路26がエラー検出用データをライトするアドレスは101番目となる(図4参照)。
続いて、ECCデータ検査回路27は、エラー検出用データのエラービット検出間隔の判定を行う(ステップS505)。ただし、第1CPU5のライトアクセスにより第1ライトカウンタ22が初めて上限値に到達してECCデータ生成回路26が最初にエラー検出用データを転送用メモリ3にライトした場合は、最初のエラービット検出であるから次のように動作する。最初にメモリ3にライトされたエラー検出用データは、第2CPU6のリードアクセスでリードされるが、この時点では大抵の場合、第2リードカウンタ25のカウント値は上限値ではない。したがって、このエラー検出用データがリードされたとき、ECCデータ検査回路27の第2エラーカウンタ29はリードアクセス値エラー発生回数を1としてカウントし、ステップ507に移る。この時点で第2リードカウンタ25は0にクリアされる。第2リードカウンタ25が0になると、次回のエラー検出用データがECCデータ検査回路27で検出される時は、第2リードカウンタ25が129回目のリードアクセスで上限値になるときと一致する。したがってリードアクセス値エラー発生回数のカウント値が0へクリアされ、ステップ505へ戻る。
データ転送回路1が正常な状態であれば、ECCデータ検査回路27は、第2CPU6によるリードアクセス回数が所定間隔である129回に到達する毎に、エラー検出用データの1ビットエラーを検出し、同時に第2リードカウンタ25によって第2エラーカウンタ29のリードアクセス値エラー発生回数のカウント値が0へクリアされる。こうして、データ転送回路1が正常状態であれば所定アドレス間隔で1ビットエラーが検出され、ステップ506およびステップ505が繰り返される。
ところが、第2エラーカウンタ29でN回連続してリードアクセス値エラーの発生を検出すると、ECCデータ検査回路27はアドレスバス異常検出として第1CPU5および第2CPU6へ通知する。このリードアクセス値エラーの連続発生回数Nは、上述したように、アドレスバス異常によるエラー発生であるか、あるいは偶発的なエラー発生であるかを判定するためのしきい値である。
一例として、転送用メモリ3の転送領域3aのアドレス数が128個(アドレス値は10進表記で0〜127)、アドレスバスの信号本数が7本のアドレス構成を考える。アドレスバス異常発生の一例として、第2CPU6と転送用メモリ3との間のアドレスバスの下位から7本目(最上位ビット)の信号が断線状態となり、信号の値が常に0となったものとする。この例では、アドレス値の後半である64(2進表記“1000000”)〜127(“1111111”)に第2CPU6がリードアクセスしようとすると、最上位ビットが“0”となるために誤って転送用メモリ3のアドレス値0(“0000000”)〜63(“0111111”)にリードアクセスされる現象が生じる。
このために、ECCデータ生成回路26によって転送用メモリ領域3aのアドレス値0にエラー検出用データがライトされた場合、第2CPU6のリードアクセスはエラー検出用データを2回リードしてしまう。すなわち、アドレス値0でエラー検出用データを検出した後、アドレス値を順次増加させながらライトされた転送データをリードアクセスするが、上述したようにアドレス値64のリードアクセスのつもりで再度アドレス値0のエラー検出用データを検出してしまう。このために見かけ上アドレス値0と64の両方でエラー検出用データが検出されるようになり、エラー検出周期が所定間隔(129回のリードアクセス毎)より短くなる。
以下同様に、エラー検出用データがライトされるアドレス値が63まで順次シフトする毎にエラー検出用データが2回ずつリードされ、エラー検出間隔は連続して所定間隔より短くなる。逆にリードアクセスするアドレス値が64〜127の間にエラー検出用データがライトされる場合には、実際はアドレス値0〜63がアクセスされるのでエラー検出用データはリードされなくなる。
他の例として、第2CPU6と転送用メモリ3との間のアドレスバスの最下位ビットの信号が断線状態となり、信号の値が常に0となったものとする。この例では、直前のアドレス値が2回繰り返されることになる。たとえば、アドレス値0(2進表記“0000000”)に続くアドレス値1は“0000001”ではなく、“0000000”となるので、実際にリードアクセスされるアドレス値は0となる。アドレス値2は“0000010”と正しくなるが、続くアドレス値3は“0000011”ではなく、“0000010”となるので、実際にリードアクセスされるアドレス値は2となる。したがって、ECCデータ生成回路26によって、たとえば転送用メモリ領域3aのアドレス値0にエラー検出用データがライトされた場合、第2CPU6がアドレス値1にリードアクセスしようとすると、最下位ビットが“0”となるために誤って転送用メモリ3のアドレス値0(“0000000”)にリードアクセスし、同じエラー検出用データをリードしてしまう。その他の断線状態であっても、同様にエラー検出用データを所定間隔(129回のリードアクセス毎)のうちに複数回リードする現象が生じる。
このようにアドレスバス異常が生じた場合には、いずれにしてもエラー検出周期が所定間隔(129回のリードアクセス毎)を維持できなくなる。そこで、ECCデータ検査回路27は、このエラー検出周期異常がN回連続するか否かを判定する(ステップS507)。そして、エラー検出間隔の異常がしきい値N回連続した場合には(ステップS507のYES)、ECCデータ検査回路27はアドレスバス異常として判定する(ステップS508)。そして、その判定結果を第1CPU5および第2CPU6へ通知し、障害通知を受けた第1CPU5および第2CPU6は運用を停止する(ステップS509)。
エラーが検出されるのは、本実施例のようにエラー検出用データを意図的にライトした場合だけでなく、外来ノイズ等により偶発的にエラーが発生した場合もある。しかしながら、偶発的なエラーは一時的な発生に限られる。偶発的に発生したエラーによってもステップ505において所定間隔以外のエラー検出として判定され、ステップ507へ遷移するが、しきい値のN回検出に至る前に正常状態へ復旧するので、アドレスバス異常として判定されない。
なお、図5によって説明した本実施例では、第1CPU5から第2CPU6へのデータ転送の場合を例示したが、第2CPU6から第1CPU5へのデータ転送であっても基本的な動作は同じである。すなわち、上述した説明において、第1CPU5と第2CPU6とを置き換え、さらに第1ライトカウンタ22の代わりに第2ライトカウンタ23を、第2リードカウンタ25の代わりに第1リードカウンタ24を、第2エラーカウンタ29の代わりに第1エラーカウンタ28を、それぞれ置き換えれば、第2CPU6から第1CPU5へのデータ転送の場合の動作説明となる。
1.3)効果
上述した本発明の第1実施例によるデータ転送システムおよび方法によれば、プロセッサ運用中にアドレス接続の正常性を検証することができ、メモリアクセスの信頼性を向上させることができる。さらに、既存のECC機能をアドレス検証に利用することで小規模回路を付加するだけでアドレス検証機能を実現できる。
2.第2実施例
本発明の第2実施例によれば、エラー検出により運用を停止する前に、もう一度エラー監視をやり直す機会を与えることでシステムの安定性を向上させる。以下、第2実施例について詳細に説明する。
2.1)構成
図6は本発明の第2実施例による回路間データ転送システムのECC制御部の構成をより詳細に示すブロック図である。本実施例におけるECC制御部2は、図3に示す第1実施例におけるECC制御部2にフラグ回路30を追加した構成を有する。その他の機能ブロックは図3と同じであるから、同一参照番号を付して説明は省略する。
フラグ回路30は、フラグ状態として1ビットの論理状態を保持できる回路であり、ECCデータ検査回路27によりフラグ状態を0または1に制御される。ECCデータ検査回路27は、起動後の初期状態においてはフラグ回路30の状態を0に設定する。ECCデータ検査回路27は、リードアクセス値エラー発生回数をN回カウントしたときにフラグ回路30のフラグ状態が0であればフラグ状態を1に設定する。ECCデータ検査回路27は、フラグ回路30のフラグ状態が1であれば、CPU5およびCPU6へ異常検出を通知する。
また、フラグ回路30のフラグ状態は、ECCデータ検査回路27を通してCPU5およびCPU6へ常に通知される。この通知信号は、異常検出の通知信号とは別の信号である。CPU5およびCPU6は、通知されるフラグ状態が0から1へ変化したことを検出すると、ECCデータ生成回路26によるエラー検出用データの生成を停止する。ECCデータ検査回路27のリードアクセス値エラー発生回数のカウンタ28あるいは29は、カウント値がNとなった次にリードアクセス値エラーを検出すると、カウント値を0に戻してカウントを継続する。
2.2)動作
図7は本発明の第2実施例におけるデータ転送方法を説明するためのフローチャートである。以下、第1実施例の場合と同様に、第1CPU5から第2CPU6へデータ転送される場合に着目して説明する。
まず第1CPU5および第2CPU6の両者が起動すると(ステップS701)、フラグ回路30のフラグ状態は0に設定され(ステップS702)、両CPUがデータ運用開始可能になると、第1CPU5からのライトアクセスによってデータ転送が開始する(ステップS703)。すでに述べた例によれば、第1CPU5は、バス調停回路7で調停されながら、32回連続してライトアクセスを行うことで1回分の転送データを領域3aにライトする。続いて、第2CPU6がバス調停回路7で調停されながら、32回連続してリードアクセスを行うことで1回分のデータ転送が完了する。このように第1CPU5および第2CPU6がライトアクセスおよびリードアクセスを繰り返すことでデータ転送が継続する。
一定期間中にエラー検出が繰り返されることでリードアクセス値エラー発生回数がしきい値Nに到達すると(ステップS704のNO)、ECCデータ検査回路27はフラグ回路30のフラグ状態が1であるか否かをチェックする(ステップS712)。この時点ではフラグ状態は0であるから(ステップS712のNO)、フラグ状態を1に設定して(ステップS713)、再度ステップS703へ戻り、ステップS704のエラー検出をやり直す。そして、フラグ状態が1に設定された状態で、一定期間中にエラー検出が繰り返されることでリードアクセス値エラー発生回数がしきい値Nに到達すると(ステップS704のNO)、ECCデータ検査回路27は第1CPU5および第2CPU6へ同時に障害通知を出力し、両CPUのデータ運用が停止する(ステップS715)。
第2CPU6は、ECCデータ検査回路27から一定期間エラー通知が無い場合(ステップS704のYES)、監視モードを開始する(ステップS705)。以下、ステップS706〜S708までの動作は、上述した図5のステップS505〜S507の動作と同じであるから説明は省略する。
エラー検出間隔の異常がしきい値N回連続した場合(ステップS708のYES)、ECCデータ検査回路27はフラグ回路30のフラグ状態が1であるか否かをチェックする(ステップS709)。フラグ状態が0であれば(ステップS709のNO)、フラグ状態を1に設定する(ステップS710)。CPUはフラグ状態が0から1になったことを検出すると、ECCデータ生成回路26のエラー検出データの生成を停止させる(ステップS711)。監視モード停止制御によりアドレス異常検出のためのエラー発生は無くなるので、ステップ703へ戻って再度エラー監視をやり直す。監視モードを停止して(ステップS711)、ステップS703へ戻る。
フラグ状態が1であれば(ステップS709のYES)、アドレスバス異常と判定して(ステップS714)、その判定結果を第1CPU5および第2CPU6へ通知し、障害通知を受けた第1CPU5および第2CPU6は運用を停止する(ステップS715)。
3.本発明の諸側面
本発明の第1側面によれば、転送用メモリの転送用領域に書き込まれる転送データに、所定アドレスカウント間隔で誤り訂正可能なエラービットを書き込み、転送用領域から読み出された転送データからエラーが検出されるアドレスカウント間隔を監視することでデータ転送の正常性を検証する。
望ましくは、誤り訂正可能なエラービットは、1つのアドレスに書き込まれるべきデータの任意の1ビットを反転させた当該1ビットであり、誤り訂正可能なエラービットを含むデータがエラー検出用データである。
また、エラー検出用データは転送用領域内で順次シフトさせながら転送用メモリの全アドレスを対象に書き込まれる。データ転送の正常性検証は、前記転送用領域からエラーが検出されるアドレスカウント間隔が所定アドレスカウント間隔と一致すればデータ転送正常と判断し、一致しなければデータ転送異常と判断する、というように行われる。
このように、本発明の第1側面によれば、CPU運用中にアドレス接続の正常性を検証することができ、メモリアクセスの信頼性を向上させることができる。さらに、既存のECC機能をアドレス検証に利用することで小規模回路を付加するだけでアドレス検証機能を実現できるという効果を得る。
さらに望ましくは、エラーが検出されるアドレスカウント間隔が所定アドレスカウント間隔と異なるエラー検出間隔異常が所定の複数回数連続して検出されると、アドレス接続異常であると判断する。ただし、望ましい実施例として、エラー検出間隔異常が所定の複数回数連続して検出されると、アドレス接続異常であると判断する前に、データ転送の正常性検証を停止して一定期間転送データがエラー未検出状態であるか否かを判断し、一定期間エラー未検出状態であれば誤り訂正可能なエラービットの書き込みおよびデータ転送の正常性検証を実行し、再度、エラー検出間隔異常が所定の複数回数連続して検出されるとシステムの運用を停止する。
また、誤り訂正可能なエラービットを書き込む前に、一定期間、転送データがエラー未検出状態であるか否かを判断し、前記一定期間エラー未検出状態であれば、前記誤り訂正可能なエラービットの書き込みおよび前記データ転送の正常性検証を実行することもできる。望ましい実施例として、一定期間にエラーが検出されると、システムの運用を停止する前に再度、一定期間転送データがエラー未検出状態であるか否かを判断し、一定期間エラー未検出状態であれば誤り訂正可能なエラービットの書き込みおよびデータ転送の正常性検証を実行し、一定期間にエラーが再度検出されると、システムの運用を停止する。
本発明は、CPUなどの回路がメモリを介してデータ転送する装置一般に適用可能である。
本発明の第1実施例による回路間データ転送システムのブロック図である。 図2は転送用メモリの構成例を模式的に示す図である。 本発明の第1実施例による回路間データ転送システムのECC制御部の構成をより詳細に示すブロック図である。 図4はECCデータ生成回路がエラー検出用データをライトする場合の説明図である。 本発明の第1実施例におけるデータ転送方法を説明するためのフローチャートである。 本発明の第2実施例による回路間データ転送システムのECC制御部の構成をより詳細に示すブロック図である。 本発明の第2実施例におけるデータ転送方法を説明するためのフローチャートである。
符号の説明
1…データ転送回路
2…ECC制御部
3…転送用メモリ
4…ECC用メモリ
5…第1CPU
6…第2CPU
22…第1ライトカウンタ
23…第2ライトカウンタ
24…第1リードカウンタ
25…第2リードカウンタ
26…ECCデータ生成回路
27…ECCデータ検査回路
28…第1エラーカウンタ
29…第2エラーカウンタ
30…フラグ回路

Claims (12)

  1. 回路間でメモリを介してデータ転送を行う方法において、
    前記メモリの転送用領域に書き込まれる転送データに、所定アドレスカウント間隔で誤り訂正可能なエラービットを書き込み、
    前記メモリの転送用領域から読み出された転送データからエラーが検出されるアドレスカウント間隔を監視することでデータ転送の正常性を検証する、
    ことを特徴とする回路間データ転送方法。
  2. 前記誤り訂正可能なエラービットは、1つのアドレスに書き込まれるべきデータの任意の1ビットを反転させた当該1ビットであることを特徴とする請求項1に記載の回路間データ転送方法。
  3. 前記誤り訂正可能なエラービットを含めたデータを前記メモリの転送用領域内で順次シフトさせながら書き込み、
    前記データ転送の正常性検証は、前記メモリの前記転送用領域からエラーが検出されるアドレスカウント間隔が前記所定アドレスカウント間隔と一致すればデータ転送正常と判断し、一致しなければデータ転送異常と判断する、
    ことを特徴とする請求項1または2に記載の回路間データ転送方法。
  4. 前記エラーが検出されるアドレスカウント間隔が前記所定アドレスカウント間隔と異なるエラー検出間隔異常が所定の複数回数連続して検出されると、アドレス接続異常であると判断する、ことを特徴とする請求項1−3のいずれか1項に記載の回路間データ転送方法。
  5. 前記エラー検出間隔異常が所定の複数回数連続して検出されると、前記アドレス接続異常であると判断する前に、前記データ転送の正常性検証を停止して前記一定期間転送データがエラー未検出状態であるか否かを判断し、前記一定期間エラー未検出状態であれば前記誤り訂正可能なエラービットの書き込みおよび前記データ転送の正常性検証を実行し、再度、前記エラー検出間隔異常が所定の複数回数連続して検出されるとシステムの運用を停止する、ことを特徴とする請求項4に記載の回路間データ転送方法。
  6. 前記誤り訂正可能なエラービットを書き込む前に、一定期間、転送データがエラー未検出状態であるか否かを判断し、前記一定期間エラー未検出状態であれば、前記誤り訂正可能なエラービットの書き込みおよび前記データ転送の正常性検証を実行することを特徴とする請求項1−5のいずれか1項に記載の回路間データ転送方法。
  7. 前記一定期間にエラーが検出されると、システムの運用を停止する前に再度、前記一定期間転送データがエラー未検出状態であるか否かを判断し、前記一定期間エラー未検出状態であれば前記誤り訂正可能なエラービットの書き込みおよび前記データ転送の正常性検証を実行し、前記一定期間にエラーが再度検出されると、システムの運用を停止する、ことを特徴とする請求項6に記載の回路間データ転送方法。
  8. 回路間でメモリを介してデータ転送を行うシステムにおいて、
    前記メモリの転送用領域に書き込まれる転送データに、所定アドレスカウント間隔で誤り訂正可能なエラービットを書き込んだエラー検出用データを生成する生成手段と、
    前記メモリの転送用領域から読み出された転送データからエラーが検出されるアドレスカウント間隔を監視することでデータ転送の正常性を検証する検査手段と、
    を有することを特徴とする回路間データ転送システム。
  9. 前記エラー検出用データは、1つのアドレスに書き込まれるべきデータの任意の1ビットを反転させたデータであることを特徴とする請求項8に記載の回路間データ転送システム。
  10. 前記エラー検出用データを前記メモリの転送用領域内で順次シフトさせながら書き込み、
    前記データ転送の正常性検証は、前記メモリの前記転送用領域からエラーが検出されるアドレスカウント間隔が前記所定アドレスカウント間隔と一致すればデータ転送正常と判断し、一致しなければデータ転送異常と判断する、
    ことを特徴とする請求項8または9に記載の回路間データ転送システム。
  11. 前記エラーが検出されるアドレスカウント間隔が前記所定アドレスカウント間隔と異なるエラー検出間隔異常が所定の複数回数連続して検出されると、アドレス接続異常であると判断する、ことを特徴とする請求項8−10のいずれか1項に記載の回路間データ転送システム。
  12. 回路間でメモリを介してデータ転送を行うシステムであって、
    前記メモリの転送用領域に書き込まれる転送データに、所定アドレスカウント間隔で誤り訂正可能なエラービットを書き込んだエラー検出用データを生成する生成手段と、
    前記メモリの転送用領域から読み出された転送データからエラーが検出されるアドレスカウント間隔を監視することでデータ転送の正常性を検証する検査手段と、
    を有する回路間データ転送システム、
    としてコンピュータを機能させるプログラム。
JP2007204886A 2007-08-07 2007-08-07 回路間データ転送方法およびシステム Withdrawn JP2009042855A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007204886A JP2009042855A (ja) 2007-08-07 2007-08-07 回路間データ転送方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007204886A JP2009042855A (ja) 2007-08-07 2007-08-07 回路間データ転送方法およびシステム

Publications (1)

Publication Number Publication Date
JP2009042855A true JP2009042855A (ja) 2009-02-26

Family

ID=40443563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007204886A Withdrawn JP2009042855A (ja) 2007-08-07 2007-08-07 回路間データ転送方法およびシステム

Country Status (1)

Country Link
JP (1) JP2009042855A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065220A (ja) * 2011-09-19 2013-04-11 Mitsubishi Electric Corp 情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065220A (ja) * 2011-09-19 2013-04-11 Mitsubishi Electric Corp 情報処理装置

Similar Documents

Publication Publication Date Title
CN110914807B (zh) 事务标识同步
TWI465897B (zh) 記憶體模組之錯誤檢查與校正系統以及方法
US8667372B2 (en) Memory controller and method of controlling memory
US8140940B2 (en) Method and apparatus for controlling memory
EP1224548B1 (en) System and method improving fault isolation and diagnosis in computers
US20120239996A1 (en) Memory controller, information processing apparatus and method of controlling memory controller
US8566672B2 (en) Selective checkbit modification for error correction
JP5082580B2 (ja) メモリシステム、メモリコントローラ、制御方法及び制御プログラム
JP2013137708A (ja) メモリコントローラ、データ記憶装置およびメモリ制御方法
CN109074294A (zh) 通信装置和通信系统
JP2009042855A (ja) 回路間データ転送方法およびシステム
CN110716823A (zh) 用于连续验证器件状态完整性的系统和方法
JP5910356B2 (ja) 電子装置、電子装置制御方法及び電子装置制御プログラム
EP3882774A1 (en) Data processing device and data processing method
JP2010086120A (ja) メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ
CN106716387B (zh) 存储器诊断电路
US10740179B2 (en) Memory and method for operating the memory
JP2021033623A (ja) 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム
JP2016194839A (ja) 制御装置および通信インタフェース回路
JP2006011576A (ja) 高信頼性制御装置
JP2023005919A (ja) 半導体装置および誤り検出方法
CN118034993A (zh) 存储数据的保护方法、装置、电子设备及存储介质
CN117472644A (zh) 错误确定方法及系统、处理器、内存
JP5381151B2 (ja) 情報処理装置、バス制御回路、バス制御方法及びバス制御プログラム
CN115148274A (zh) 用于测试错误校正电路的半导体器件和半导体系统

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20101102