JP2004005627A - Duplex memory system - Google Patents
Duplex memory system Download PDFInfo
- Publication number
- JP2004005627A JP2004005627A JP2003126673A JP2003126673A JP2004005627A JP 2004005627 A JP2004005627 A JP 2004005627A JP 2003126673 A JP2003126673 A JP 2003126673A JP 2003126673 A JP2003126673 A JP 2003126673A JP 2004005627 A JP2004005627 A JP 2004005627A
- Authority
- JP
- Japan
- Prior art keywords
- error
- memory
- data
- address
- system bus
- 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.)
- Pending
Links
Images
Abstract
Description
【0001】
【産業上の利用分野】
この発明は、高信頼計算機におけるメモリ装置、特に二重化メモリシステムの構成方法、診断方法、及び障害監視方法に関するものである。
【0002】
【従来の技術】
フォールトトレラント計算機の分野において、計算機の信頼性を高める最も一般的な技術の1つに、処理装置(CPU)あるいは記憶装置など、信頼性上クリティカルな論理回路を多重化する方式がある。通常、記憶装置の多重化は二重化が基本で、二重化された記憶装置の一方を常用側、他方を待機側として構成する。この場合、書込み時は両方に同じデータを書き込んで一貫性を保ち、読出し時には常用側のデータのみを出力させるが、仮に常用側から読み出したデータにエラーが発生すれば、データ転送主体が待機側に切り換わり、こちらが正しいデータを出力することでシステムの動作継続が可能となる。
【0003】
ところが従来の技術は、ほとんどがメモリ装置のみの二重化にとどまり、制御部や接続されるシステムバスの二重化による高信頼化手法は確立されていない。従って、故障した記憶装置を切り離して診断する手段、システム動作中の修理交換(活線交換)、記憶装置を接続するシステムバスが故障した時の対処は、いずれも不十分であった。
【0004】
二重化記憶装置の切り換え技術として、特開昭59−17796号公報、特開平01−70847号公報、特公昭60−3225号公報、特開昭63−273950号公報、特開昭60−238957号公報、特開昭57−109195号公報、特開平4−233052号公報に記載されている方式では、記憶装置の接続されるバスが二重化されておらず、またほとんどの方式において、制御部の二重化がなされていなかった。さらに記憶装置にエラーが発生した場合、読出し時なら切り換えや修復によって正しいデータが保証されるものの、書込み時については配慮が不足し、リトライ動作等による性能の低下、処理装置側回路の複雑化を招いていた。さらに、故障したメモリの診断時に正常なメモリに影響を与えない考慮、故障した制御部やメモリ装置をシステムの動作中に修理交換する手段、入出力制御装置が記憶装置をアクセスする時の信頼性考慮等も十分とはいえず、システム全体の信頼性向上に改善の余地が残るものであった。
【0005】
【発明が解決しようとする課題】
前述のごとく従来の技術にはいくつかの課題があり、これを解決するためには、すべての構成要素を二重化する方法が考えられる。これは単に構成要素を二組用意すれば実現できるものではなく、システムとして常に正しい連続動作を確保するために、以下の諸点に配慮しなければならない。
【0006】
課題1、二重化されたシステムバスの切り換えを高速に、しかもエラーが発生したときにもシステムバスのタイミングを変えることなく、正常なデータを保証すること。
【0007】
課題2、二重化されている装置中の任意の装置の一方が実装されていなくても正常動作が可能で、相手側が実装されているかどうかを知るための特別な信号線を不要にすること。
【0008】
課題3、エラー発生時の故障箇所の特定及び診断を、正常な部分に影響を与えないで実施すること。
【0009】
課題4、書込み時にデータパリティエラーが発生した時でも、二重化動作が継続できる手段を簡単に提供すること。
【0010】
課題5、システムバスを二重化したときのエラーチェックが十分に行われるようにすること。
【0011】
課題6、二重化されたメモリ装置の一方に修復不可能なエラーが発生した時、システムを停止しないで修理交換ができ、二重化動作を再開できること。
【0012】
課題7、二重化メモリ装置として使用しない時に、簡単にメモリ容量を増やせること。
【0013】
課題8、故障した入出力制御装置を診断する時にメモリにデータを書き込むことによって、復旧が不可能となるようなメモリ破壊を招かないこと。
【0014】
課題9、二重化されたシステムバスに接続するための特別な入出力制御装置を設計しなくても、信頼性を低下させることなく二重化メモリシステムに接続可能とすること。
【0015】
目的
この発明は以上の課題を解決するためになされたもので、信頼性の高い二重化メモリシステムを提供することを目的とする。
【0016】
【課題を解決するための手段】
上記課題を解決するために本発明は、各種の処理を行う処理装置と、この処理装置にCPUバスを介して接続された一対のシステムバス制御装置と、この一対のシステムバス制御装置にそれぞれ接続された一対のシステムバスと、それぞれがこの一対のシステムバスの両方に接続された一対のメモリ装置A及びBと、を含み、処理装置における書込み動作時には、システムバス制御装置は一対のメモリ装置に同時に処理装置からのデータを書き込み、処理装置における読出し動作時には、いずれか一方のシステムバス制御装置が対応するメモリ装置から読み出したデータを処理装置に送出する二重化メモリシステムにおいて、一対のメモリ装置A及びBがそれぞれ、メモリに対する書き込みを許可する書込み許可フラグと、メモリからの読み出しを許可する読出し許可フラグと、現アドレスに対するアクセスの対象を判別するアドレス判別回路とを有するものである。
【0017】
また本発明は、前記書込み許可フラグ及び読出し許可フラグの組合せに従って前記の各メモリ装置の状態を定義する状態定義手段と、処理装置による設定に従い、各メモリ装置を状態定義手段において定義された各状態間で遷移させる状態遷移手段とを有するものである。
【0018】
また本発明は、前記メモリ装置A及びBがそれぞれ、メモリ装置Aとメモリ装置Bがともにアクセス対象となる共通アクセス空間を指定する共通アクセス空間指定レジスタと、メモリ装置Aまたはメモリ装置Bのいずれか一方がアクセス対象となる個別アクセス空間を指定する個別空間アクセス指定レジスタとを有するものである。
【0019】
また本発明は、メモリ装置Aとメモリ装置Bの共通アクセス空間指定レジスタの値を同じアドレスに設定する設定手段と、メモリ装置Aの個別空間指定レジスタの値とメモリ装置Bの個別空間指定レジスタの値を異なったアドレスに設定する第二の設定手段と、これらの設定手段によって設定されたアドレスを任意のタイミングで再設定する第三の設定手段とを有するものである。
【0020】
また本発明は、各メモリ装置の任意領域に擬似的なエラーを注入するエラー注入手段と、エラーの注入された領域をアクセスしてエラーの状態を検査するエラー状態検査手段とを有するものである。
【0021】
また本発明は、前記エラー注入手段によってエラーが注入される領域のアドレス及び注入されるデータの値を両メモリ装置で異なる値に設定する注入値設定手段を有するものである。
【0022】
また本発明は、前記各メモリ装置がシステムバスのアドレスエラーを検出するシステムアドレスエラー検出手段と、システムアドレスエラー検出手段の検出結果を他方のメモリ装置に通知するエラーアドレス信号線と、他方のメモリ装置から通知されるエラーアドレス信号線の状態に従い、他方のメモリ装置でエラーが発生した際、自装置でエラーのないアドレスを記憶するエラーアドレス記憶手段と、自装置でアドレスエラーが検出された際、自装置のメモリへの書込みを禁止する書込み禁止手段とを有するものである。
【0023】
また本発明は、前記システムアドレスエラー検出手段における検出結果に従って割込み信号を生成するシステムアドレスエラー割込み生成手段と、システムアドレスエラー割込みが発生したときに前記エラーアドレス記憶手段に格納されたアドレスをもとにエラー修復を行うエラー修復手段とを有するものである。
【0024】
【作用】
上記構成による本発明によれば、メモリ装置A及びBの書込み許可フラグがメモリに対する書き込みを許可し、読出し許可フラグがメモリからの読み出しを許可し、アドレス判別回路が現アドレスに対するアクセスの対象を判別する結果、この判別回路における判別結果と前記2つのフラグの組合せによってデータの書込みまたは読出しが行われる。
【0025】
また本発明によれば、状態定義手段が前記書込み許可フラグ及び読出し許可フラグの組合せに従って前記の各メモリ装置の状態を定義し、状態遷移手段が処理装置による設定に従い、各メモリ装置を状態定義手段において定義された各状態間で遷移させる。
【0026】
また本発明によれば、前記メモリ装置A及びBの共通アクセス空間指定レジスタがメモリ装置Aとメモリ装置Bがともにアクセス対象となる共通アクセス空間を指定し、個別空間アクセス指定レジスタがメモリ装置Aまたはメモリ装置Bのいずれか一方がアクセス対象となる個別アクセス空間を指定する。
【0027】
また本発明によれば、設定手段がメモリ装置Aとメモリ装置Bの共通アクセス空間指定レジスタの値を同じアドレスに設定し、第二の設定手段が前記設定手段によって設定されたメモリ装置Aの個別空間指定レジスタの値とメモリ装置Bの個別空間指定レジスタの値を異なったアドレスに設定し、第三の設定手段が前記2つ設定手段によって設定されたアドレスを任意のタイミングで再設定する。
【0028】
また本発明によれば、エラー注入手段が各メモリ装置の任意領域に擬似的なエラーを注入し、エラー状態検査手段がエラーの注入された領域をアクセスしてエラーの状態を検査するため、システム各部機能の動作確認を可能とする。
【0029】
また本発明によれば、注入値設定手段が前記エラー注入手段によってエラーの注入される領域のアドレス及び注入されるデータの値を両メモリ装置で異なる値に設定する。
【0030】
また本発明によれば、前記各メモリ装置のシステムアドレスエラー検出手段がシステムバスのアドレスエラーを検出し、エラーアドレス信号線がその検出結果を他方のメモリ装置に通知し、該他方のメモリ装置のエラーアドレス記憶手段が前記エラーアドレス信号線の状態に従って自装置でエラーのないアドレスを記憶するとともに、各システムバス制御装置の禁止手段によって、各装置でアドレスエラーが検出された際、自装置のメモリへの書込みが禁止される。
【0031】
また本発明によれば、システムアドレスエラー割込み生成手段が前記システムアドレスエラー検出手段における検出結果に従って割込み信号を生成し、エラー修復手段がこの割込み信号に従って前記エラーアドレス記憶手段に格納されたアドレスをもとにエラー修復を行う。
【0032】
【実施例】
実施例1.
図1は、本発明の第1実施例に係る二重化メモリシステムである。図1において、1は処理装置(CPU)、2は処理装置1が診断等の特殊処理をするためのプログラムが格納されている制御ROM、3は処理装置1とシステムバスのやりとりを制御するためのシステムバス制御装置、4はメモリ装置、5はシステムバス制御装置3に内蔵され、通常動作時にメモリ装置から読み出したデータを処理装置1に対して送出すべきシステムバス制御装置を決定するためのマスタ決定回路、6はシステムバス制御装置3に内蔵され、メモリ装置4からの読出しデータのエラーを検出するためのエラー検出回路、7はマスタ決定回路及びエラー検出回路6の指示に従い処理装置に読出しデータを出力するかどうかを決定するCPUバス切換え回路である。処理装置1とシステムバス制御装置3はデータ信号8、低レベル割込み信号9、高レベル割込み信号10、アドレス信号11で構成されるCPUバスで接続され、システムバス制御装置3及びメモリ装置4は二重化されており各々3a、3b、4a、4bで示されている。二重化されたシステムバス制御装置は、CPUバス切換え信号線12a及び12bで接続され、メモリ装置4aはシステムバスA13aを介してシステムバス制御装置3aに、メモリ装置4bはシステムバスB13bを介してシステムバス制御装置3bに接続されている。
【0033】
二重化部分は上記のようにA系統とB系統に分類されているが、以下の説明においては両側を区別する場合は構成要素番号に各々添え字aあるいはbを付けて示し、区別しない場合は添え字を付けないで表す。
【0034】
図2は、図1中のシステムバス制御装置3に内蔵されるエラー検出回路6及びCPUバス切換え回路7の詳細構成を示す。図中13−1はメモリ装置から読み出されてシステムバス上に送出されたデータ信号で、データ部32ビットとパリティ部4ビットから構成される。14はデータ信号13−1をクロック信号15でラッチしたデータ信号16を出力するデータラッチ回路、17はデータ信号16をクロック信号15でラッチしたデータ信号18を出力するデータラッチ回路、19はデータ信号16のパリティチェックを行うエラー検出回路、12はエラー検出回路19の出力でエラー検出時に“1”となるエラー信号線であってCPUバス切換え信号線として使用され、20はエラー検出回路19の出力でエラー未検出時“1”となる正常信号線、21はエラー未検出時にCPUバスに読出しデータを送出すべきシステムバス制御装置を選択するマスタモード入力信号線、22はメモリ装置から有効なデータが送出されていることを示すデータ有効信号線、23はマスタモード入力信号線21、データ有効信号線22、エラー信号線12及び正常信号線20の状態をANDゲート24、25及びORゲート26によって条件出力された信号をラッチする、CPUバス選択ラッチである。29はCPUバス選択ラッチ23の出力信号33とデータ出力タイミングクロック信号30の条件によりゲート信号32を生成するためのANDゲート、31はゲート信号32が“1”の時にデータ信号18をCPUバスのデータ信号8として出力し、ゲート信号32が“0”の時にはデータ信号8を高インピーダンス状態におく3ステートバッファ、34は他方のシステムバス制御装置からのCPUバス切換え信号12をプルアップするプルアップ抵抗である。また35はCPUバス切換え信号線12aあるいは12bのいずれか一方が“1”のときに低レベルの割込み信号9を生成するEXORゲート、36はCPUバス切換え信号線12a及び12bの両方が“1”のときに高レベルの割込み信号10を生成するANDゲートである。EXORゲート35及びANDゲート36により、処理装置に対する2種類の割込み信号が生成される。エラーの発生状況とCPUバス切換え信号線12、割込み信号線9及び10の関係を図3に示す。
【0035】
図4は、図2のエラー検出回路及びCPUバス切換え回路の動作を示すタイミング図で、各々の入出力信号を対応して示してある。図中でT01ないしT14はクロック信号15を基準としたクロックサイクルを示す。
【0036】
図5は、データ信号18がゲート信号32のタイミングによってデータ信号8としてドライブされる様子を示す。
【0037】
図6は、図1のシステムバス制御装置3内部のマスタ決定回路5の詳細を示す。図中、37はモードを記憶するフリップフロップで、出力信号線41を出力する。38はマスタを変更するマスタ変更信号線、39及び40は負論理のANDゲート、42は電源投入時にフリップフロップ37を初期状態にする負論理のリセット信号線である。図2にマスタ決定回路を組み込む場合、出力信号41がマスタモード入力線21の代わりに接続される。
【0038】
図7は、図6のマスタ決定回路の動作を示すタイミング図である。
【0039】
以上のように構成される二重化メモリシステムの概略動作について、図1を用いて説明する。処理装置1は電源投入後のイニシャル処理において、制御ROM2に格納されているプログラムを実行し、システムバス13に接続されているメモリ装置4を診断した後、ディスク制御装置(図示せず)等の入出力制御装置を介してOSなどのプログラムをメモリ装置4に読み込み、以後システムが正常に動作する間、メモリ装置4に格納されたプログラムを実行する。システムにエラーが検出されると割込み信号9あるいは10が処理装置1に対して出力され、処理装置1が制御ROM2の所定エラー処理プログラムを実行し、エラー処理完了後メモリ装置4に格納されたプログラム実行を再開する。
【0040】
プログラム実行に伴って処理装置1がメモリ装置4にアクセスする際、書込み動作であれば、二重化されたシステムバス制御装置3a及び3bを介して両側のメモリ装置4a及び4bに同時に書き込みが行われる。読出し動作時は、システムバス制御装置3a、3bがともにメモリ装置に対して読み出しを指示し、メモリ装置4a及び4bから同時に読み出しがなされ、システムバスA13a及び13bを介してシステムバス制御装置3a及び3bに読出しデータを送出する。システムバス制御装置3の内部にはマスタ決定回路5が内蔵されており、エラー検出回路6がメモリ装置から送られてきたデータにエラーの無いことを示せば、マスタに設定された側がCPUバスデータ8に読出しデータを送出する。エラーが検出された場合には、検出した側のシステムバス制御装置が相手側に対してCPUバス切換え信号線12を出力し、CPUバス切換え回路7によって正常な側のシステムバス制御装置がCPUバスデータ8に読出しデータを送出する。
【0041】
次にエラー検出回路6とCPUバス切換え回路7の詳細動作について、図2を用いて説明する。
【0042】
図2においてシステムバス制御装置にはマスタモード入力信号線21があり、いま仮にシステムバス制御装置3aではマスタモード入力信号線21aが“1”に、システムバス制御装置3bでは“0”に外部接続されているものとする。この場合、システムバス制御装置3aがマスタ、システムバス制御装置3bがスレーブとして動作する。メモリ装置から読み出されたデータは、データ有効信号線22とともにシステムバスのデータ信号線13−1としてシステムバス制御装置3に入力され、システムクロック信号15によってデータラッチ回路14にラッチされ、データラッチ回路14の出力信号線16はパリティ検出等のエラー検出回路19に入力されるとともに、データラッチ回路17に供給される。前述のデータ信号線13−1は、データ部32ビットとパリティ部4ビットで構成され、データが正常な場合、エラー検出回路19は正常信号線20を“1”、CPUバス切換え信号線12を“0”、エラーが検出された場合は両信号ともその逆の論理で出力する。
【0043】
いまデータが正常であるとすれば、マスタ側のシステムバス制御装置3aにおいて正常信号線20aは“1”であり、ANDゲート24aを経由してORゲート26aの出力が“1”になる。システムクロック信号線15aのタイミングでCPUバス選択ラッチ23aは“1”にセットされ、ANDゲート29aによってデータ出力タイミングクロック信号30aが“1”の期間に限ってCPUデータバスの3ステートバッファ31aのゲート信号32aが“1”となり、データラッチ回路17aの出力信号線18aの内容がCPUバスにデータ信号線8として出力される。
【0044】
一方、データにエラーが検出された場合は、正常信号線20aが“0”になり、ゲート信号32aが“0”となる結果、システムバス制御装置3aがCPUバスにデータを出力することはない。
【0045】
つぎにスレーブ側の動作を説明する。
【0046】
データにエラーが検出されない場合、スレーブ側のシステムバス制御装置3bにおいて正常信号線20bは“1”であるが、マスタモード入力信号線21bが“0”のためANDゲート24bは“0”となり、しかもマスタ側のシステムバス制御装置3aからのCPUバス切換え信号線12aも“0”であるため、ORゲート26bの出力も“0”となる。その結果、CPUデータバスの3ステートバッファ31bのゲート信号32bが“0”になり、システムバス制御装置3bはCPUバスにデータを出力しない。ここで仮に、マスタ側のシステムバス制御装置3aでエラーが検出されると、CPUバス切換え信号線12aが“1”となってANDゲート25b及びORゲート26bの出力が“1”となり、マスタ側のシステムバス制御装置3aに代ってスレーブ側のシステムバス制御装置3bがCPUバスにデータ信号線8を出力する。このためメモリ装置のみならず、システムバスレベルでの二重化が可能となる。
【0047】
次に処理装置1に対する割込み信号線9及び10の生成について、図3を用いて説明する。
【0048】
EXORゲート35及びANDゲート36は、CPUバス切換え信号12a及び12bの組合せによって割込み信号線9及び10の状態を決定する。メモリ装置4からの読出しデータが両側とも正常な場合、割込み信号線9、10ともインアクティブになる。どちらか一方でエラーが検出されるとEXORゲート35によって低レベルの割込み信号線9がアクティブになり、両側でエラーが検出されるとANDゲート36によって高レベルの割込み信号線10がアクティブになる。
【0049】
これら二種類の割込みによる処理装置1の動作について説明する。
【0050】
低レベルの割込みは、エラーの検出にも拘らず処理装置1に正しいデータが送らた、いわゆる軽障害の発生を示す。処理装置1はそのまま通常のプログラムを実行し、プログラムの切れ目(通常はタスクスイッチのタイミング)でエラー処理を行う。一方、高レベルの割込みは、処理装置1に正しいデータが送られなかった重障害を示し、処理装置1が直ちにエラー処理を行うべき場合に使用する。
【0051】
図2中のプルアップ抵抗34の役割について説明する。この抵抗は修理交換によって一方のシステムバス制御装置、例えばマスタ側のシステムバス制御装置3aを取り外した際に意味を持つ。このときエラー検出回路19aの出力信号がドライブされなくなるので、システムバス制御装置3bに内蔵されるプルアップ抵抗34bがCPUバス切換え信号線12aを“1”にレベル固定する。これはマスタ側のシステムバス制御装置3aがデータエラーを検出した状態と同じであり、結果としてスレーブ側のシステムバス制御装置3bがデータを送出する。
【0052】
以上説明したシステムバス制御装置3のエラー検出回路6及びCPUバス切換え回路7の動作を、連続する8ワードデータの読み出し中にエラーが検出された場合を例に、図4を用いて説明する。
【0053】
図において白丸数字のデータはメモリ装置4aから読み出されたデータ、黒丸数字のデータはメモリ装置4bから読み出されたデータを示し、T01ないしT14のタイミングに従い、システムクロック信号線15によって、システムバス制御装置内部はクロック同期で動作する。図はマスタ側のシステムバス制御装置3aで3ワード目、スレーブ側のシステムバス制御装置3bでは5ワード目にエラーが検出された時の、CPUバス切換え信号線12、ゲート信号32、CPUデータバス信号8、低レベル割込み信号線9の様子を示す。図におけるタイミングには、ラッチやゲートによる信号の遅れが考慮され、例えばデータラッチ14の出力信号線16はシステムクロック15の上昇エッジより若干遅れて出力されおり、より現実的なタイミングを示すものである。
【0054】
1及び2ワード目はデータのエラーが検出されず、マスタ側のシステムバス制御装置3aのゲート信号32aが“1”となり、CPUデータバス8にはT03及びT04のタイミングでシステムバス制御装置3aのデータ、すなわちメモリ装置4aからの読出しデータが出力される。
【0055】
3ワード目でエラーが検出されると、T04のタイミングでエラーを検出し、CPUバス切換え信号線12aが“1”になり、T05のタイミングではスレーブ側のシステムバス制御装置3bのデータ、すなわちメモリ装置4bからの読出しデータが出力され、同時に低レベルの割込み信号9が出力される。
【0056】
4ワード目では両側で正常なデータが検出されるので、CPUバスの切り換えは発生せず、デフォルト的に設定されたマスタ側のデータがT06のタイミングで出力される。
【0057】
5ワード目のデータは、スレーブ側でエラーが検出されるがマスタ側は正常であり、CPUバスの切り換えは発生せず、そのままマスタ側のデータがT07のタイミングで出力される。
【0058】
図4に示す通り、マスタ側でエラーが検出されない限り、常にマスタ側に接続されているメモリ装置の読出しデータが処理装置1に出力され、エラーが検出されたときに限ってスレーブ側に接続されたメモリ装置の読出しデータが処理装置1に出力される。従って、切り換えが発生しても、処理装置には正常なデータが同一タイミングで供給されることになる。
【0059】
また図4に例示するごとく、3ステートバッファのゲート信号線32は、転送サイクルのうち一部分しか“1”の状態にされていない。全期間“1”にすると、CPUバス切り換え時に素子の遅延によって、短時間であるが両側の3ステートバッファの出力が衝突しうるためである。図5に示すように、データはドライブの終了後も配線の浮遊容量によってデータバス上に一定期間保持されるため、設計上必要なドライブ時間を決めることができる。
【0060】
なお、図2ではマスタモード切換え信号線を直接システムバス制御装置3のマスタ切り換えとして使用したが、図6に示すマスタ決定回路を付加することにより、処理装置1によってマスタモードを切り換えることができる。マスタ切換え回路の動作を図6ないし図7を使用して説明する。
【0061】
図7において、電源投入時にはタイミングT20でリセット信号線42によって、マスタフリップフロップ37がマスタモード切換え信号線21の状態に従ってセット/リセットされ、システムバス制御装置3aのマスタモード出力信号線41aは“1”に、システムバス制御装置3bのマスタモード出力信号線41bは“0”に設定される。処理装置1からのマスタ切換え信号線38によりT21で各々のマスタフリップフロップ37は同期して反転し、システムバス制御装置3aのマスタモード出力信号線41aは“0”に、システムバス制御装置3bのマスタモード出力信号線41bは“1”に設定される。このマスタモード出力信号線41を図2のマスタモード入力信号線21として使用することにより、システムバス制御装置3のモードを切り換えることが可能になる。
【0062】
実施例2.
図8は本発明の第2実施例に係る二重化メモリシステムで、第1実施例にCPUデータバスのチェック機能を追加し、さらに信頼性を高めたものである。
【0063】
図8において50はCPUバスデータ8をシステムバス制御装置内部に取り込むためのデータレシーバ回路、51はデータラッチ回路17の出力信号線18とデータレシーバ回路50の出力信号線55を比較するデータ比較回路、53はデータ比較回路51の比較結果が不一致のときに“1”を出力する出力信号線、54は3ステートバッファである。
【0064】
図9は、データ読み出しがシステムバス制御装置3aの側から行われたとして、図8の回路のある部分が故障した時に各々のデータ比較回路51の信号線、CPUバスデータ8の正常性、及び高レベルの割込み信号線10の関係を示す図である。
【0065】
図10は本発明の第2実施例の変型で、各々のデータ比較回路51の出力信号線53をそのままシステムバス制御装置の外部に出力し、AND回路56とEXOR回路57で低レベルの割込み信号9及び高レベルの割込み信号10を生成するように構成したものであり、同様に図11は図10の回路のある部分が故障した時に各々のデータ比較回路51の出力信号線と、CPUバスデータ8の正常性と、低レベルの割込み信号9と高レベルの割込み信号線10の関係を示す図である。図11においても、データ読み出しはシステムバス制御装置3aの側から行われたものとしている。
【0066】
以上のように構成されるシステムバス制御装置のCPUデータバスの比較動作について図8を用いて説明する。
【0067】
二重化メモリ装置から読み出されたデータは一旦データラッチ17にラッチされ、比較回路51と3ステートバッファで構成されるドライバ回路31に供給され、マスタ側のシステムバス制御装置3aは実施例1の動作に従ってドライバ回路31aを介してデータをCPUバスに出力する。またCPUバスのデータ信号8はレシーバ回路50を通して両側のシステムバス制御装置3内部に取り込まれ、比較回路51に入力される。比較回路51ではデータラッチ17の出力とレシーバ回路50の出力を比較し、一致なら“0”、不一致なら比較エラー信号線53を出力する。ところでマスタ側のシステムバス制御装置3aのマスタモード出力信号線41aは“1”に設定されているので、3ステートバッファ54aのイネーブル信号は、NOT回路52aにより反転され“0”が与えられるため、エラー信号線53aは外部に出力されない。一方、スレーブ側のシステムバス制御装置3bのマスタモード出力信号線41bは“0”に設定されているので、3ステートバッファ54bのイネーブル信号は、NOT回路52bにより反転され“1”が与えられるため、エラー信号線53bは3ステートバッファ54bを介して出力され、高レベルの割込み信号線10として処理装置1に通知される。
【0068】
次に、図9を用いてデータ転送経路の途中が故障した時の比較エラー信号線53、CPUデータバス8の正当性、及び割込み信号線10の関係を説明する。この例では故障箇所として、データラッチ17、比較回路51、ドライバ回路31、及びレシーバ回路50が各々故障した時を示しており、全てが正常な場合は当然のことながらCPUデータバスには正しいデターが出力されており、割込みも発生しない。データラッチ17aあるいはドライバ回路31aが故障すると間違ったデータがCPUデータバスに出力され、これがスレーブ側の比較回路でエラー検出されて高レベルの割込みが発生し、読出しデータのエラーを処理装置1に知らせる。処理装置1は制御ROM2に格納されたエラー解析処理を実行することにより、例えばマスタ切換え信号線38を出力し、システムバス制御装置3aから3bに変更して再度メモリ装置からデータを読み出し、正常であればデータラッチ17aあるいはドライバ回路31aの故障を検出できる。以降、システムバス制御装置3bがマスタ側として動作することになる。
【0069】
マスタ側のレシーバ回路50aあるいは比較回路51aが故障した時は、比較エラー信号線53aは内部的には出力されるが、割込み信号線10が出力されず、動作に影響しない。このとき、CPUデータバス8には正常なデータが出力されるため、問題はない。一方、スレーブ側のレシーバ回路50b、比較回路51bまたはデータラッチ17bのいずれかが故障したとき、マスタ側から正しいデータがCPUデータバスに出力されるにも拘らず、比較エラー信号線53bが“1”となって高レベル割込み信号線10が出力される。このときにも処理装置1がマスタ切換え信号線を出力するためシステムバス制御装置3b側にマスタが切り換わるが、このスレーブ側の故障による不要な切換えを防ぐためには、以下の方法を用いればよい。すなわち、システムバス制御装置内のエラー信号線53の状態をステータスレジスタ(図示せず)に記憶させ、処理装置1が制御ROM2に格納されたエラー処理を実行する時に、このステータスレジスタの内容を調べる。この際、マスタ側でエラーが発生していない場合はマスタ切換えを行なわないように制御すればよい。
【0070】
なお図9では、データ読み出しがシステムバス制御装置3aの側から行われたと想定とするため、比較エラー信号線53bと高レベルの割込み信号線10の論理は常に一致する。これは図8において、比較エラー信号線53bが高レベルの割込み信号線10として出力されるためである。このことは図9で#B_ ERRORとHINTRの欄の論理が一致することによって示されている。
【0071】
次に、比較エラー信号線53を両側のシステムバス制御装置3から出力し、これらの組合せで2種類の異なるレベルの割込みを発生させる例を、図10ないし図11で説明する。図10と前述の図8との相違は、比較回路51の出力を両側外部に出力し、これらをANDゲート及びEXORゲートによって処理装置1に対する割込み信号として生成する点にある。
【0072】
図11によるドライバ回路31aが故障した時には、両側の比較エラー信号線53が“1”となり高レベルの割込み信号線10が出力され、それ以外の部分の故障では低レベルの割込み信号線9が出力される。CPUデータバスに出力されるデータの正常性判断という意味では、データラッチ17aの故障の場合も高レベルの割込み信号線10が出力されるべきだが、これは実施例1のようにデータラッチ17の出力にもパリティ検査回路を付加し、スレーブ側からデータを切り換えて出力することで解決を図るものとする。これらの結果、CPUデータバスに出力されているデータが正常な限りは低レベルの割込み信号、異常な場合に限って高レベルの割込み信号を出力することができる。
【0073】
実施例3.
図12は、本発明の第3実施例に係る二重化メモリシステムである。図において60は、システムバス制御装置3に内蔵されるCPUデータバス側のドライバ/レシーバ、61はシステムバス側のドライバ/レシーバ、62はメモリ装置4に内蔵されるドライバ/レシーバ、63は処理装置1に内蔵されるパリティ生成回路、64はシステムバス制御装置3に内蔵されるCPUデータバス側のパリティ検査回路、65はシステムバス制御装置3に内蔵されるシステムバス側のパリティ検査回路、66はメモリ装置4に内蔵されるパリティ検査回路、67ないし69は各々パリティ検査回路64ないし66の結果を格納するステータスレジスタ、70はシステムバス制御装置内部バス、71はメモリ、72はメモリ装置4の内部バスである。
【0074】
図13は、図12のシステムにおけるメモリへの書込み動作時のエラー解析を、同様に図14はメモリから読出し動作時のエラー解析を示す図であり、ステータスレジスタで○印はエラー未検出を、×印はエラー検出を示す。
【0075】
以上のように構成される二重化メモリシステムの動作を、図12を用いて説明する。まず処理装置1がメモリ装置4にデータを書き込む時は、処理装置内部に、例えばパリティコード等のエラー検査コードを生成し、これをCPUデータバス8に出力する。システムバス制御装置3は処理装置1が出力したパリティ付きデータをレシーバ回路60で受け取り、このデータのパリティチェックをパリティ検査回路64で行い、結果をステータスレジスタ67に格納し、レシーバ60で受け取ったデータは内部バス70を通ってシステムバス側のドライバ回路61に供給され、システムバス13に出力される。ドライバ回路の直前にはパリティ検査回路65があり、チェック結果は同様にステータスレジスタ68に格納される。さらにメモリ装置4は、システムバス13からのデータをレシーバ回路62を介して受け取り、パリティ検査回路66によるパリティチェックをなし、結果をステータスレジスタ69に格納し、同時にメモリ71にはメモリ装置内のデータバス72の内容をそのままデータ部とチェックコード部として書き込む。書込み時のデータ経路のどこかでエラーが検出されると処理装置1に対して割込みが発生し(割込み信号線は図示せず)、処理装置1は制御ROM2に格納されているエラー解析プログラムを実行し、故障箇所を特定する。
【0076】
次に書込み時のエラー検出結果が格納されているステータスレジスタ64ないし66の内容と、故障の解析例を図13により説明する。故障の発生確率は回路規模に基づき、メモリが1万分の1、バスが10万分の1、パリティ生成/検査回路及びドライバ/レジーバが100万分の1と想定し、例えばメモリとパリティ検査回路の2重故障は1万×100万=100億分の1と仮定する。図13は、考えられる故障原因のうち故障の発生確率が最も大きい組合せを原因と推定して作成されている。故障はステータスレジスタの組合せにより8種類が考えられ、ケース1はエラーが発生していない状態である。ケース2はシステムバス制御装置の内部バス70までは正常なため、システムバス13、ドライバ回路61、メモリ装置のレシーバ回路62、またはパリティ検査回路66いずれかの故障が考えられるが、故障の発生確率を比較して、システムバス13の故障と推定される。ケース3では経路途中のパリティ検査回路65だけがエラーを検出しているため、このパリティ検査回路65のみの故障と推定する。このケースでは、パリティ検査回路64及び66が故障で、65のみが正しい事態もありうるが、ケース2同様、故障の発生確率から判断する。以下のケースも同様に考えればよい。
【0077】
続いてメモリ装置4からの読出し時の動作を図12を用いて説明する。メモリ71にはデータ部とエラーチェックコード部が格納されており、読み出されたパリティ付きのデータは、パリティ検査回路66でパリティチェックされて結果がステータスレジスタ69に格納され、続いてドライバ回路62を介してシステムバス13に出力され、システムバス制御装置3がレシーバ回路61を通してこれを受け取り、パリティ検査回路65によるパリティチェックの結果をステータスレジスタ68に格納する。さらにCPUバスのドライバ回路60直前のパリティ検査回路64によるパリティチェックの結果がステータスレジスタ67に格納される。システムバス制御装置3では、データにパリティエラーが検出されると、実施例1の動作に従いエラーを検出していない側のシステムバス制御装置が処理装置1に対してデータを送出する。
【0078】
読出し時のエラー検出結果が格納されているステータスレジスタ64ないし66の内容と、故障の解析例を図14により説明する。図14においても、考えられる故障箇所の組合せのうち、最も確率の高いものを原因としている。ケース8はメモリ71からの読み出し直後からエラーが検出されているので、メモリ71の故障または書込み時のデータ経路でのエラーが考えられるが、確率を比較して、前者の故障と判定する。ケース7ではメモリから読み出した時点では正しく、その後エラーが検出されているのでシステムバス13の故障、ケース6ではパリティ検査回路65及びメモリ71の故障と考えられる。以下のケースも同様に考えればよい。
【0079】
実施例4.
図15は、本実施例の第4の実施例に係る二重化メモリシステムである。図において80は、システムバス制御装置3の内部にあってシステムバスに送出するデータのエラーを検出するエラー検出回路、81はエラー検出回路80の結果を相手側のシステムバス制御装置に伝えるシステムバス切換え信号線、82は相手からのシステムバス切換え信号線81と内部のエラー検出回路80の結果によって動作する、システムバスを切り換えるためのシステムバス切換え回路、85はメモリ装置4の内部にあってメモリ71から読み出したデータのエラーを検出するエラー検出回路、84はエラー検出回路85の結果を相手側のメモリ装置に伝えるメモリエラー検出信号線、83は相手からのメモリエラー検出信号線84と内部のエラー検出回路85の結果によって動作する、システムバスを切り換えるためのシステムバス切換え回路である。
【0080】
図16は、図15中のシステムバス切換え回路82及びエラー検出回路80における出力データ切り換えの概念を示す図で、図において94はシステムバス制御装置内部のデータバス70の内容を記憶するデータラッチ、90はシステムバスAにデータを送出するシステムバスA用3ステートバッファ、91はシステムバスBにデータを送出するシステムバスB用3ステートバッファ、86はシステムバスA用3ステートバッファ90の出力許可信号を生成するANDゲート、87はシステムバスB用3ステートバッファ91の出力許可信号を生成するANDゲート、95は3ステートバッファ90及び91双方の出力許可信号を生成するANDゲート、92はシステムバス切換え信号線81a及び81bの組合せにより低レベルの割込みを発生させるEXORゲート、同様に93は高レベルの割込みを発生させるANDゲートである。
【0081】
また図17は、図15中のシステムバス切換え回路83及びエラー検出回路85における入力データ切り換えの概念を示す図で、図において98はシステムバスA13aからデータをメモリ装置4に取り込むレシーバ回路、99はシステムバスB13bからデータをメモリ装置4に取り込むレシーバ回路で、各々入力データ信号76及び77を出力する。83は入力データ信号のパリティチェック等を行うエラー検出回路、73はエラー検出回路の結果により正しいデータを選択してメモリの内部バス72に出力する選択回路である。NOTゲート74の出力信号である入力切換え信号78が“1”のときは入力データ線76を選択し、ANDゲート75の出力信号である入力切換え信号線79が“1”のときは入力データ線77を選択するように構成されている。
【0082】
図18は、処理装置1からメモリ装置4への書込み時にデータバスの途中が故障した時のシステムバス切換え回路82及び85によるバスの切り換えの様子を示す図で、(A)は全て正常な状態、(B)はCPUバス切換え回路7a内部のレシーバが故障した状態、(C)はシステムバスA13aが故障した状態、(D)はシステムバス切換え回路82bのドライバが故障した状態でのデータの流れを示している。図中破線で示されているデータの流れは各々の3ステートバッファが閉じた状態で、実際のデータは出力されない。
【0083】
同様に図19は、処理装置1がメモリ装置4からの読出し時にデータバスの途中が故障した時のCPUバス切換え回路7、システムバス切換え回路82及び85によるバスの切り換えの様子を示す図で、(A)は全て正常な状態、(B)はシステムバス切換え回路82a内部のレシーバが故障した状態、(C)はシステムバスA13aが故障した状態、(D)はメモリ装置4に内蔵されているメモリ71aが故障した状態でのデータの流れを示している。
【0084】
以上のように構成される二重化メモリシステムの概略動作について、図15を用いて説明する。処理装置1がメモリ装置4に書き込みを行う時、処理装置1からの書込みデータは、CPUデータバス8として二重化されたシステムバス制御装置3の各々に供給され、システムバス制御装置はシステムバス13に書込みデータを送出する直前にエラー検査回路80でデータのパリティチェックを行い、その結果をシステムバス切換え信号線81として相互に交換しており、エラーが検出されない時、マスタ側のシステムバス制御装置3aはシステムバスA13aに、スレーブ側のシステムバス制御装置3bはシステムバスB13bに、各々データを出力する。エラーが検出されると、前述のシステムバス切換え信号線81が“1”になり、システムバス切換え回路82によってエラーを検出した側のシステムバス13への出力を停止し、代わって相手側のシステムバス制御装置が両側のシステムバスに書込みデータを出力する。またメモリ装置4ではシステムバスに出力されている書込みデータを両側のシステムバス13から取り込み、エラー検出回路85でパリティチェックを行い、エラーの発生していないシステムバスのデータをメモリ71に書き込む。
【0085】
また、メモリ装置4からの読出し時には、二重化されたメモリ71から読み出されたデータについて、内部のエラー検出回路85でパリティチェックを行い、その結果をメモリエラー信号線84として出力して相互通知しており、エラーがなければメモリ装置4aはシステムバスA13aに、メモリ装置4bはシステムバスB13bにデータを送出し、エラーが発生すると、発生した側のメモリ装置はシステムバス切換え回路83によりシステムバスへのデータ出力が停止され、相手側のメモリ装置が両側のシステムバスに読出しデータを出力する。またシステムバス制御装置3は両側のシステムバスからデータを取り込み、エラー検出回路6でパリティチェックを行い、その結果をCPUバス切換え信号線として出力して相互通知しており、エラーがなければマスタ側のシステムバス制御装置3aがCPUデータバス8に読出しデータを出力し、エラーが検出されると検出した側のシステムバス制御装置はCPUバス切換え回路7によりデータ出力が停止され、相手側のシステムバス制御装置が代わって出力する。
【0086】
まず、処理装置1からメモリ装置4にデータを書き込む時の詳細動作を、図16により説明する。処理装置からの書込みデータは内部バス70を通ってデータラッチ94にラッチされるとともに、エラー検出回路80によりパリティチェックが行われる。データラッチ94の出力信号は3ステートバッファで構成される出力バッファ90と91に供給されており、3ステートバッファのゲート信号はマスタモード入力信号線21とシステムバス切換え信号線81a及び81bとデータ出力タイミングクロック信号30により制御されている。エラー検出回路80a及び80bでエラーが検出されていない時は、マスタ側のシステムバス制御装置3aでANDゲート86aの出力が“1”、ANDゲート87a及び95aの出力が“0”になっており、ORゲート96aの出力信号が“1”、ORゲート97aの出力が“0”になり、出力バッファ90a経由でシステムバスA13aにデータを出力する。一方スレーブ側のシステムバス制御装置3bではANDゲート86b及び95bの出力が“0”、ANDゲート87bの出力が“1”になっており、ORゲート97bの出力が“1”、ORゲート96bの出力が“0”になり、出力バッファ91b経由でシステムバスB13bにデータを出力する。
【0087】
ところで、システムバス制御装置3aでデータのエラーが検出され、エラー検出回路80aの出力81aが“1”になると、ANDゲート86aの出力は“0”となり出力バッファ90aの出力は停止され、一方システムバス制御装置3bは相手からのシステムバス切換え信号線81aが“1”になることで、ANDゲート95bの出力が“1”になり、出力バッファ90bの出力も許可状態になり、システムバスA13a及び13bの両側にデータを出力する。
【0088】
さらに、メモリ装置4では図17に示したように、両側のシステムバスのデータをレシーバ回路98及び99により内部に取り込み、エラー検出回路83でパリティチェックを行っており、エラーが検出されない場合はエラー検出回路83−1の出力は“0”、入力データ切換え信号線78が“1”になり、システムバスA13aのデータを内部バス72に選択出力する。一方システムバスA13aの故障が発生するとエラー検出回路83−1の出力が“1”、入力データ切換え信号線78が“0”、入力データ切換え信号線79が“1”になることにより、システムバスB13bのデータを内部バス72に選択出力する。
【0089】
ところで、エラー検出回路83−1及び83−2の両方でエラーが検出されると(例えばシステムバス13aが故障し、更にマスタ側のレシーバ回路99aが故障した場合)、入力データ切換え信号線78及び79の双方が“0”となり、選択回路73aはいずれのシステムバスも選択できない状態になる。このときメモリ71aに不正なデータ(これはエラーとして検出することができない)が書込まれため、読み出し時に不正なデータが処理装置1に送出される事態が発生しうる。これを回避するには以下の方法によればよい。つまり、いずれのシステムバスも選択できない時、メモリの内部バス72aにエラーとなるデータ(例えば偶数パリティの場合は全て“1”のデータ、奇数パリティの場合は全て“0”のデータ)を生成するように選択回路73を構成し、強制的にエラーデータをメモリに書き込む。この結果、読み出し時には実施例1の動作によりスレーブ側のシステムバス制御装置3bが正しい読み出しデータを処理装置1に送出することができる。
【0090】
再び図15で説明する。処理装置1がメモリ装置4からデータを読み出す時の動作は、メモリ装置内部にもシステムバス制御装置3における図16と同様な回路が組み込まれており、メモリから読み出されたデータにエラーがなければ、メモリ装置4aはシステムバスA13aに読出しデータを出力し、メモリ装置4bはシステムバスB13bに読出しデータを出力する。一方、メモリ装置4bに内蔵されるメモリ71bの読出しデータにエラーが検出されると、メモリ装置4bの出力バッファのデータ出力は停止され、メモリエラー検出信号線84bが相手側のメモリ装置4aに出力され、この信号によりメモリ装置4aが両側のシステムバスにデータを出力する。またシステムバス制御装置3の内部にはメモリ装置4と同様な入力データ選択回路があり、通常はシステムバスA13aからの読出しデータを内部バスに出力しているが、システムバスA13a側でエラーが検出されると、システムバスB13bの読出しデータを内部バスに出力する。
【0091】
以上のように二重化されたメモリシステムにおいて、構成要素の一部が故障した場合のデータ切り換えの様子を、書込み動作時について図18により説明する。
【0092】
(A)全て正常な状態では、処理装置1からの書込みデータは、システムバス制御装置3aからシステムバスA13a、システムバス制御装置3bからシステムバスB13bに出力され、メモリ装置4はシステムバスA13aのデータを書込みデータとして選択し、メモリ71に書き込む。
【0093】
(B)CPUバス切換え回路7a内部のレシーバが故障した状態では、システムバス制御装置3aからシステムバス切換え信号線81aが出力され、システムバス制御装置3aの出力バッファが閉じて、代わりにシステムバス制御装置4bが両側のシステムバスにデータを出力し、メモリ装置4はシステムバスA13aのデータを書込みデータとして選択し、メモリ71に書き込む。
【0094】
(C)システムバスA13aが故障した状態では、メモリ装置4はシステムバスB13bのデータを書込みデータとして選択し、メモリ71に書き込む。
【0095】
(D)システムバス切換え回路82bのドライバが故障した状態では、システムバスB13bには正しいデータが出力されていないが、メモリ装置4はシステムバスA13aのデータを書き込むので影響はない。
【0096】
読出し動作時について、図19により説明する。
【0097】
(A)全て正常な状態では、メモリ71から読み出されたデータは、メモリ装置4aからシステムバスA13aに、メモリ装置4bからシステムバスB13bに出力され、システムバス制御装置3aがCPUバスに読出しデータを送出する。
【0098】
(B)システムバス切換え回路82a内部のレシーバが故障した状態では、システムバス制御装置3aのエラー検出回路でエラーが検出され、CPUバス切換え信号線12aが出力され、この信号線によってシステムバス制御装置3bがCPUバスにデータを出力する。
【0099】
(C)システムバスA13aが故障した状態では、システムバス制御装置内でシステムバスA13aのエラーが検出され、システムバスB13bの読出しデータを入力データとして使用し、システムバス制御装置3aがCPUバスにデータを送出する。
【0100】
(D)メモリ装置4に内蔵されているメモリ71aが故障した状態では、メモリ装置4a内部のエラー検出回路によりエラーが検出され、メモリエラー検出信号線84aを出力し、この信号によりメモリ装置4bが両側のシステムバスに読出しデータを送出し、システムバス制御装置3aがCPUバスにデータを送出する。
【0101】
実施例5.
図20は、本発明の第5実施例に係る二重化メモリシステムである。図において、100はシステムバス制御装置3に内蔵されCPUバスのモードを設定するモード設定回路、101はシステムバスのモードを設定するモード設定回路、102はメモリ装置4に内蔵されてシステムバスのモードを設定するモード設定回路、104はシステムバス制御装置3に内蔵されて二重化されたシステムバスのデータを比較する比較回路、105はメモリ装置4に内蔵されて二重化されたシステムバスのデータを比較する比較回路である。
【0102】
図21はシステムバス制御装置3内部にあってCPUバスの制御を行う回路の概念を示した図であり、モード設定回路100、データラッチ17、比較回路51、ドライバ31及びレシーバ50で構成され、モード決定回路から出力されるAバス許可信号線106により、CPUバスのデータ出力を制御する。
【0103】
図22は同様に、システムバス制御装置3内部にあってシステムバスの制御を行う回路の概念を示した図であり、システムバスAはAバス許可信号線106により、システムバスBはBバス許可信号線107により、システムバスのデータ出力を制御する。
【0104】
図23は、図20におけるモード設定回路101の詳細を示す図(100、102も同様)である。図において、120はモード設定データ信号線、121はマスタモード入力線21に従ってモード設定データ信号を選択するためのセレクタ回路、122はセレクタ回路121の出力信号線、123はAバスのモードを記憶するモードラッチ、125はBバスのモードを記憶するモードラッチで、モード設定信号線103によりセレクタ回路の出力信号線122の内容を記憶し、各々のモード出力信号線124、126は後段のANDゲートとORゲートの組合せにより、最終的な出力信号である、Aバス許可信号106及びBバス許可信号107を出力する。
【0105】
図24は、図23におけるモード設定回路の動作シーケンスを示す図で、T100はリセットタイミング、T101及びT104はモード設定タイミング、T102はシステムバス制御装置3a側でエラーを検出したタイミング、T103はエラーが回復したタイミングを示している。
【0106】
また図25は、実際の運用時のメモリ装置4の動作とモードの関係を示したもので、(A)は全体の流れ、(B)は診断動作(処理142)の詳細を示しており、図24との関係は、電源投入処理140がT100に、モード変更処理143がT101に、故障発生145がT102に、モード変更処理146がT104に、各々対応する。
【0107】
以上のように構成される二重化メモリシステムの概略動作について、図20を用いて説明する。モード設定回路100ないし102には独立してモードA、B、C、Dの4種類のモードが設定できるようになっており、モード設定回路100はシステムバス制御装置3がCPUデータバス8に読出しデータを出力する制御を、モード設定回路101はシステムバス制御装置3がシステムバスに書込みデータを出力する制御を、モード設定回路102はメモリ装置4がシステムバスに読出しデータを出力する制御を行う。システムバス制御装置3によるCPUデータバスへのデータの出力制御は、モード設定回路100の状態、システムバス制御装置3の内部にあるエラー検出回路6によるエラー検出の状況、相手からのCPUバス切換え信号線12によって制御される。システムバス制御装置3によるシステムバスへのデータの出力制御は、モード設定回路101の状態、システムバス制御装置3の内部にあるエラー検出回路80によるエラー検出の状況、相手からのシステムバス切換え信号線81により制御される。またメモリ装置4によるシステムバスへのデータの出力制御は、モード設定回路102の状態、メモリ装置4の内部にあるエラー検出回路85によるエラー検出の状況、相手からのシステムバス切換え信号線84によって制御される。
【0108】
また各々のバスの出力回路には、バスの内容を比較し、その結果を外部に出力して割込み信号線を生成するための比較回路があり、CPUバス側では出力の直前のデータと、出力されたデータを再度入力して比較しており、システムバス側では2つのシステムバスの内容を比較している。
【0109】
次にシステムバス制御装置3のCPUバス側の詳細動作について、図21を参照して説明する。通常の動作ではモード設定回路100aはモードAに、モード設定回路100bはモードBに設定されており、メモリ装置から読み出されたデータはシステムバス制御装置3の内部バス70を介してデータラッチ17にラッチされるとともに、エラー検出回路6でパリティチェックが行われる。モードAのシステムバス制御装置3aでは、エラー検出回路6aでエラーが検出されていなければモード設定回路100aの出力106aが“1”になり、読出しデータはドライバ回路31aからCPUデータバス8に出力される。エラーが検出されるとモード設定回路100aの出力106aが“0”になってデータの出力を停止するとともに、CPUバス切換え信号線12aに“1”が出力される。
【0110】
モードBのシステムバス制御装置3bでは、相手からのCPUバス切換え信号線12aが“0”であればモード設定回路100bの出力106bが“0”になってCPUデータバスにはデータを出力しないが、エラー検出回路6bでエラーが検出されていない時に、相手からのCPUバス切換え信号線12aが“1”になると、モード設定回路100bの出力106bが“1”になり、読出しデータをCPUデータバス8に出力する。またシステムの電源投入時には、両側のモード設定回路100ともモードDに設定され、モード設定回路100の出力106は常に“0”となり、このシステムバス制御装置がCPUデータバスに読出しデータを出力することはない。(ここで注意すべきは、CPUバスはシステムバスのように二重化されていないため、モードA、Bのシステムバス制御装置の一方に限ってCPUデータバスに出力が許可されることである。このため、モードA、Bは後述するシステムバスの制御におけるそれらと意味が異なる。同じ理由から、CPUバスの制御ではモードCが使用されることはない。)
【0111】
モードAのシステムバス制御装置3aはさらに、自分の出力データをレシーバ回路50aを介して入力し、この入力信号線55aとデータラッチ17aの出力信号線18aを比較しており、モードBのシステムバス制御装置3bは、相手の出力データをレシーバ回路50bを介して入力し、この入力信号線55bとデータラッチ17bの出力信号線18bを比較している。比較結果が異なっていると比較エラー信号線53が“1”になり、この信号をモードBのシステムバス制御装置3bが3ステートバッファ54bを介して外部に出力し、高レベルの割込み信号線10として処理装置1に通知され、処理装置は前述の図9のようなエラー解析を行う。
【0112】
システムバス制御装置3によるシステムバスへの出力制御はメモリ装置と同等なので、次にメモリ装置4によるシステムバスへの出力制御について、図22を参照して説明する。通常の動作モードでは、モード設定回路102aはモードAに、モード設定回路102bはモードBに設定されており、メモリから読み出されたデータはメモリ装置の内部バス72を介してデータラッチ94にラッチされるとともに、エラー検出回路85でパリティチェックが行われる。モードAのメモリ装置4aでは、エラー検出回路85aでエラーが検出されなければモード設定回路102aの出力106aが“1”、107aは“0”になり、読出しデータはドライバ回路90aからシステムバスA13aに出力される。エラーが検出されるとモード設定回路102aの出力106a及び107aはともに“0”となり、データの出力を停止するとともに、システムバス切換え信号線84aが“1”に出力される。またエラーが検出されていない時に、相手からのシステムバス切換え信号線84bが“1”になると、モード設定回路102aの出力106a及び107aはともに“1”となり、読出しデータはドライバ回路90a及び91aから両方のシステムバスA13a及び13bに出力される。
【0113】
一方、モードBのメモリ装置4bでは、エラー検出回路85bでエラーが検出されない場合、モード設定回路102bの出力106bが“0”、107bが“1”になり、読出しデータがドライバ回路90bからシステムバスB13bに出力される。エラーが検出されるとモード設定回路102bの出力106b及び107bはともに“0”となり、データの出力を停止するとともに、システムバス切換え信号線84bが”1”に出力される。またエラーが検出されていない時に、相手からのシステムバス切換え信号線84aが“1”になると、モード設定回路102bの出力106b及び107bはともに“1”になり、読出しデータはドライバ回路90b及び91bから両方のシステムバスA13a及び13bに
出力される。
【0114】
さらに両側のメモリ装置4は、二重化されたシステムバスのデータをレシーバ回路108及び109を介して入力し、比較回路105で比較しており、比較結果は内部のエラー検出回路85のエラー出力信号(システムバス切換え信号線84)とORゲートで処理されて外部に出力され、ANDゲート93とEXORゲート92で条件がとられて、処理装置1に対する異なったレベルの割込み信号を生成する。処理装置1はこの割込みを受けると、前述の図11に示すようなエラー解析処理を行う。
【0115】
モード設定回路の構成と動作について、システムバス制御装置3に内蔵されるモード設定回路101の場合を例に、図23及び図24を用いて説明する。まず電源投入時にはT100のタイミングでリセット信号線42が“0”になり、モードラッチ123及び125はリセットされて出力が“0”になり、モード設定回路101a及び101bは、ともにモードD(初期モード)に設定される。モードDではANDゲート127、129及び134の出力は“0”になるためバス許可信号線106及び107はともに“0”が出力される。
【0116】
次に処理装置が図24におけるT101のタイミングで、データ信号120−1ないし120−4に、設定すべきモードに対応したデータ“1001”を置いてモード設定信号線103を出力すると、セレクタ回路121はマスタモード入力線21の状態に従って、入力データ120のうち、2本を選択する。ここでシステムバス制御装置3aのマスタモード入力線21aは“1”であるため、セレクタ回路の出力信号122−1aには入力データ120−1が、セレクタ回路の出力信号122−2aには入力データ120−3が出力され、一方システムバス制御装置3bのマスタモード入力線21bは“0”であるため、セレクタ回路の出力信号122−1bには入力データ120−2が、セレクタ回路の出力信号122−2bには入力データ120−4が出力され、モード設定回路101aはモードAに、モード設定回路101bはモードBに設定される。逆にいえば、モードAとはモード出力信号124aが“1”、モード出力信号126aが“0”となってバス許可信号線106aに“1”、107aに“0”が出力されるモードと定義できる。同様にモードBではモード出力信号124bが“0”、モード出力信号126bが“1”になり、バス許可信号線106bには“0”、107bには“1”が出力される。
【0117】
ところで図24のT102からT103のタイミング、つまりシステムバス制御装置3aがモードAでシステムバス制御装置3bがモードBにある状態で、システムバス制御装置3a側のエラー検出回路80aがエラーを検出すると、内部のエラー信号線81aが“1”になり、ANDゲート127a、129a、134aが“0”、Aバス許可信号線106a及びBバス許可信号線107aがともに“0”となる。一方システムバス制御装置3bではシステムバス切換え信号線81a(内部のエラー信号81aと論理的に同一)が“1”になるため、ANDゲート134bの出力が“1”となり、ORゲート132b及び133bの出力であるAバス許可信号線106a及びBバス許可信号線107aがともに“1”となる。
【0118】
さらに処理装置が図24におけるT104のタイミングで、データ信号120−1ないし120−4に設定すべきモードに対応したデータ“0101”を置いてモード設定信号線103を出力すると、システムバス制御装置3a内のモードラッチ123a及び125aはともに“0”となってモード設定回路101aはモードDに戻り、バス許可信号線106a及び107aは両側“0”になる。一方、システムバス制御装置3b内のモードラッチ123b及び125bはともに“1”となってモード設定回路101aはモードCに設定され、バス許可信号線106b及び107bはともに“1”となる。
【0119】
以上説明した二重化メモリシステムにおいてモード設定回路を使用すると、診断、交換、復旧等の処理を容易に行うことができる。メモリ装置4においてこの機能を使用した例を、図25(B)を用いて説明する。
【0120】
二重化されたメモリ装置は各々A系統とB系統で示されており、各々同期してモード設定を変化させながら処理をしている。まず処理140で両側のメモリ装置に電源が投入され、リセット時の処理141によって両側がモードDに設定され、いずれのメモリもデータを出力しない状態となる。
【0121】
次に処理142における書き込み、読み出し、比較チェックによるメモリの初期診断を図25で説明する。メモリを診断するためには、二重化されたメモリ装置から独立して書込みデータを読み出す必要があるので、まず処理142−1aでA系統のメモリ装置をモードCに、処理142−1bでB系統のメモリ装置をモードDに設定し、読出しデータがA系統のメモリからのみ出力される状態にし、処理142−2aでメモリ装置に対して書き込み、読み出し、比較を行う。このため、A系統のメモリ装置が診断されることになる。この時、B系統のメモリ装置にもデータは書き込まれるが、A系統の診断結果には影響しない。次に処理142−3でA系統のメモリ装置をモードDに、B系統のメモリ装置をモードCに設定して、処理142−4bでB系統のメモリ装置を試験することができる。
【0122】
処理142によるメモリ装置の初期診断が完了すると、処理143でA系統のメモリ装置をモードAに、B系統のメモリ装置をモードBに設定することにより通常動作処理144を行い、すなわちシステムバスA13aにはA系統のメモリ装置が読出しデータを送出し、システムバスB13bにはB系統のメモリ装置が読出しデータを送出し、どちらかでエラーが検出されると反対側が両方のシステムバスにデータを送出する、二重化メモリ動作となる。故障145aによってA系統のメモリ装置が故障すると、B系統のメモリ装置が正しいデータで応答しつつ、処理装置1は割込みをもとに故障解析を行い、修理交換が必要と判定されると、処理146でA系統のメモリ装置をモードDに、B系統のメモリ装置をモードCに設定することにより、A系統のメモリ装置はシステムバスから切り離された状態となる。この後もB系統のメモリ装置が両側のシステムバスに読出しデータを送出するので、A系統の修理交換処理147aを実施することができる。
【0123】
交換処理によって新しいメモリ装置をA系統に挿入すると、A系統のメモリ装置はリセット処理によりモードDになり、その後処理150により正常なB系統のメモリ装置からデータを読み出し、新しいA系統のメモリ装置へ書き込むコピー動作を行う。コピーが完了すると、処理151でA系統のメモリ装置をモードAに、B系統のメモリ装置をモードBに設定し、通常の二重化メモリ動作に復旧することができる。
【0124】
実施例6.
図26は、本発明の第6実施例に係る二重化メモリシステムである。図において170は、メモリ装置4に内蔵され、メモリの書き込み及び読み出しを制御するための許可フラグ、171はメモリのアクセスタイミングを生成する制御回路、172はメモリ装置に対するアクセスアドレスを判定するアドレス判別回路、173はメモリ71に強制的にエラーを書き込むためのエラー注入回路、177は二重化されたシステムバスの両方に接続される入出力制御装置である。
【0125】
図27はメモリ装置4の内部の構成を示す図で、許可フラグ170、アドレス判別回路172、ドライバ220、レシーバ221、パリティ生成回路239、及びメモリ71で構成される。図において許可フラグは読出し許可フラグ170−1、書込み許可フラグ170−2、パリティ生成許可フラグ170−3で構成され、これらの出力の組合せでメモリへの書き込み、読み出し、パリティの生成を制御する。
【0126】
図28は図27中のアドレス判別回路の詳細を示すもので、共通空間指定レジスタ231、個別空間指定レジスタ232、I/Oアドレス判別回路230、比較回路233及び234、ANDゲート237で構成され、出力信号として共通空間書込み信号線210、個別空間書込み信号線211、共通空間読出し信号線212、個別空間読出し信号線213を生成する。
【0127】
図29はシステムバスをアクセスする際のアドレス空間の区分を示す図で、200はメモリ空間全体を、201はI/O空間全体を示しており(A)は二重化動作時の割付を、(B)は一重化時の割付を示している。メモリ空間はさらに、共通アクセス空間202と個別アクセス空間203に分けられている。
【0128】
図30は、図26中のメモリ装置が許可フラグ170によって状態遷移をする様子を示した図であり、許可フラグの組合せにより、切離し動作状態181、正常動作状態183、修復動作状態184及び保護動作状態185に定義され、エラーの発生あるいは許可フラグ書換えによって各状態間を遷移する。切り離し動作状態181は書き込み、読み出しとも不可、正常動作状態183は書き込み、読み出しとも可、修復動作状態184は書き込みのみ可、保護動作状態185は読み出しのみ可の状態である。
【0129】
図31はエラー注入回路173と個別空間アクセスにより、メモリ71a及び71bの診断用領域に異なったデータ及びエラー状態を注入し、それを共通空間アクセスによって読み出した時のデータを示すものである。
【0130】
図32は、メモリ装置4の内部にアドレスエラー検出回路176を設け、その出力を互いのメモリで交換し、相手側でエラーが検出されれば、エラーアドレスレジスタに正しいアドレスを記憶させる構成の概念図で、図33に詳細を示す。
【0131】
以上のように構成される二重化メモリシステムの概略動作について、図26を用いて説明する。
【0132】
メモリ装置4内部の許可フラグ170は、読出し許可フラグと書込み許可フラグ及びパリティ生成許可フラグの3ビットで構成され、アドレス判別回路172は共通アクセス空間と個別アクセス空間の判別を行う。処理装置1から共通アクセス空間を使用する書込み動作を行うとき、書込み許可フラグが“1”であれば、パリティ生成許可フラグの状態に無関係にパリティ生成を行なってメモリ71に書き込みを行い、書込み許可フラグが“0”であれば書き込みを行わない。また処理装置1から個別アクセス空間を使用する書込み動作を行う時は、書込み許可フラグの状態に無関係にメモリ装置71に書き込みを行うが、パリティ生成許可フラグが“0”であればパリティ生成を行わないでメモリ装置71に書き込みを行う。
【0133】
次に処理装置1から共通アクセス空間を使用する読出しを行う時は、読出し許可フラグが“1”であれば読み出しを行ない、読出し許可フラグが“0”であれば読み出しを行なわない。また処理装置1から個別アクセス空間を使用する読み出しを行なう時は、読出し許可フラグの状態に無関係に読み出しを行なう。
【0134】
入出力制御装置177は両方のシステムバスに接続されており、システムバスの切換え回路は実施例5におけるシステムバス制御装置と同様に構成され、メモリ装置4からの読出しデータを取り込むときには、エラーの発生していない側のシステムバスのデータを使用する。
【0135】
次に許可フラグ170、アドレス判別回路172、エラー注入回路173の回路構成と動作について、図27及び図28を用いて説明する。許可フラグ170は読出し許可フラグ170−1、書込み許可フラグ170−2、パリティ生成許可フラグ170−3で構成され、アドレス判別回路172から出力される許可フラグ設定信号線225に従い、システムバスから入力したデータ信号線224−1ないし224−3の内容をラッチする。初期状態ではリセット信号42により全てのフラグは“0”に初期化される。読出しデータをシステムバスに出力するためのゲート信号222は、読出し許可フラグの出力である読出し許可信号線214と、アドレス判別回路172の出力である共通空間読出し信号212と、個別空間読出し信号213により決定される。まず、個別空間に対する読み出しでは個別空間読出し信号213が“1”になるので、ORゲート219の機能により、読出し許可信号線214の状態と無関係にドライバ回路220のゲート信号222が“1”になり、システムバスにメモリ71からの読出しデータを出力する。一方共通空間に対する読み出しにおいては、共通情報読出し信号212が“1”になっても、ANDゲート218により読出し許可信号線214が“1”でないとシステムバスに読出しデータが出力されない。
【0136】
また個別空間に対する書き込みにおいては、個別空間書込み信号211が“1”になるので、ORゲート217の機能により、書込み許可信号線215の状態と無関係にメモリ書込み信号線162が“1”になり、メモリ71にデータが書き込まれる。一方、共通空間に対する書き込みにおいては、共通空間書込み信号線210が“1”になっても、ANDゲート216の存在により、書込み許可信号線215が“1”でないとメモリ書込み信号線162は“1”にならず、メモリ71への書き込みは行われない。ところで、パリティ生成回路239にはパリティ生成許可信号線163の制御によってパリティ生成を制御する機能があり、パリティ生成許可信号線163が“1”の時はパリティデータが正常に生成され、“0”のときはエラーとなるように生成されるものとする。従って共通空間に対する書き込みでは、共通空間書込み信号線210が“1”になるので常に正しいパリティ生成が行なわれるが、個別アクセス空間時にはパリティ許可フラグ信号線338が“1”に設定されている場合に限って、正しいパリティが生成される。個別空間の書込み動作でこの機能を使用すると、メモリ71にパリティエラーになるデータを意図的に書き込む操作、すなわちエラー注入が可能となる。
【0137】
更に、前述のアドレス判別回路172は図28のように構成され、I/Oアドレス判別回路230は、メモリ装置に対してレジスタアクセス等のために設けられた固有のアドレスをデコードする。ここでシステムバスのアドレス信号線13−2、マスタモード入力線21、システムバスの書込み信号線13−4の条件をとり、共通空間指定レジスタ設定信号線235、個別空間指定レジスタ設定信号線236、及び許可フラグ設定信号線225を出力する。共通空間レジスタは、設定信号線235によってシステムバスのデータ信号線の値をラッチし、個別空間レジスタ232は、設定信号線236によってシステムバスのデータ信号線の値をラッチする。処理装置1からメモリ空間のアクセスがされると、システムバス上のアドレス信号線13−2と共通空間指定レジスタに設定されている内容を比較回路233で比較し、一致すれば共通情報アクセス信号228が“1”になり、この際書込み信号線13−4が“1”の場合はANDゲート237−3によって共通空間書込み信号線210が“1”に、読出し信号線13−3が“1”の場合はANDゲート237−4によって共通空間読出し信号線212が“1”になる。同様に、個別空間指定レジスタの設定内容を比較回路234で比較し、一致すると個別信号アクセス信号229が“1”になって個別空間書込み信号211、または個別空間読出し信号線213が“1”になる。
【0138】
以上のように動作するアドレス判別回路172の機能を使用して、メモリ装置4のアドレス空間を割り付ける例を、図29によって説明する。(図29において、200ないし207で示される実体は、各々幅をもったメモリ領域である。)図29(A)は二重化メモリとして動作する時の設定例で、まずメモリ4aに対し、前述の共通空間レジスタ231aに共通アクセスメモリA/B空間のアドレス202−1を設定し、個別空間レジスタ232aに個別アクセスメモリA空間のアドレス203−1を設定する。次にメモリ装置4bに対しては共通空間レジスタ231bに共通アクセスメモリA/B空間のアドレス202−1を設定し、個別空間レジスタ232bに個別アクセスメモリB空間のアドレス203−2を設定する。この設定により共通空間202−1に対するアクセスにおいては、メモリ装置4aとメモリ装置4bの両方が対象になり、個別アクセス空間203−1に対するアクセスにおいてはメモリ装置4aのみ、個別空間203−2に対するアクセスにおいてはメモリ装置4bのみが対象となって、二重化メモリとしての動作が可能になる。
【0139】
また、図29(B)に示すように、メモリ装置4aに対しては共通空間レジスタ231aを共通空間アクセスメモリA空間のアドレス202−3に、メモリ装置4bに対しては共通空間レジスタ231bを共通空間アクセスメモリB空間のアドレス202−4に設定すると、共通アドレス空間202−3に対するアクセスではメモリ装置4aが、共通アドレス空間202−4に対するアクセスではメモリ装置4bが有効になり、全体としては二重化メモリ動作に比べて2倍のメモリ容量を提供できる。
【0140】
次に前述した許可フラグ170と、共通及び個別空間のアクセス機能を使用して、電源の投入から通常動作、さらに故障メモリの修復及び修理交換の様子を、読出し許可フラグと書込み許可フラグの組合せで定義される状態遷移とともに、図30で説明する。まず状態定義として、正常動作状態183は読出し許可フラグ及び書込み許可フラグが“1”、修復動作状態184は読出し許可フラグが“0”で書込み許可フラグが“1”、保護動作状態185は読出し許可フラグが“1”で書込み許可フラグが“0”、切り離し動作状態181は読出し許可フラグ及び書込み許可フラグが“0”の状態とし、さらにシステムの電源が未投入、またはメモリ装置がシステムから取外されている状態180を補足的に定義する。
【0141】
まずシステムの電源が投入されると、状態180から遷移186により、切離し状態181に移行する。この状態でそれぞれのメモリ装置に対して個別空間アクセスを使用してメモリ71に対する書き込み、読み出し、比較チェック等のメモリ診断188を行ない、正常であれば電源投入時診断完了の移行189により正常動作状態183に移行する。状態183ではメモリ装置は二重化動作を行ない、エラー未発生時、及び単一のデータパリティエラーが発生した場合にも状態183にとどまる。データパリティーエラーが重複して発生すると、故障診断のために移行191によってメモリ装置を切離し状態181に移行させるが、エラーの発生していない側のメモリ装置は正常動作状態183にとどまる。
【0142】
正常なメモリ装置が状態183、故障したメモリ装置が切離し状態181にある場合、故障したメモリ装置に対しては診断処理188によって修復可否を調べるが、一方処理装置1による診断動作中、入出力制御装置177によるメモリ装置へのアクセスは共通空間に対して実施されるので、正常なメモリ装置が応答して正常動作が保証される。診断の結果修復不可能と判断されれば、保守員により新しいメモリ装置との交換が行なわれ、新しいメモリ装置は挿入によってまず切り離し動作状態181に移行し、診断にかけられる。ところで一旦切離し状態181に移行すると、正常なメモリ装置との内容の相違が発生するので、このままでは正常動作状態183に移行することができない。そこで診断終了時の移行196によって修復動作状態184に移行する。修復動作状態184では正常なメモリ装置から共通空間でデータを読み出し、共通空間アクセスによる書き込みで正常なメモリ装置と修復対象のメモリ装置の両方にデータを書き込む。全領域のコピー処理194が完了すると、修復完了の移行193により、再度両方のメモリ装置が正常動作状態183になって二重化メモリ動作に復旧する。この間、入出力制御装置177によるメモリ装置へのアクセスは共通空間に対して実施されるので、書込み動作は両方のメモリ装置に対して行われ、読出し動作は状態183にある正常なメモリ装置が応答して正常動作が保証される。
【0143】
また正常動作状態183でアドレスパリティエラーが発生すると、エラーの発生したメモリ装置のデータ中、当該アドレスのメモリ内容が信頼できないため、直ちに読出し許可フラグを“0”にして読み出しを禁止し、修復動作状態184に移行させる。アドレスパリティエラーが発生した後の修復動作状態184でもエラーの発生したメモリ装置に対する書き込みは続行されるので、処理装置1による修復処理開始までの間、正しいメモリ装置との内容の相違はアドレスエラーの発生した箇所のみとなる。そこで必要な修復処理を施した後、正常動作状態183に戻すことができる。
【0144】
保護動作状態185の使用方法について説明する。保護動作状態へは処理装置1からのモード切り換え処理197により移行する。例えばシステムバス13に接続されている入出力制御装置177の故障を診断する場合、この装置がメモリ装置に正しい書き込みを実行するとは限らず、メモリ装置に対する書き込みを伴う診断を不用意に実行させれば、メモリ71の内容を破壊しうる。そこで二重化されたメモリ装置のうち一方を保護動作状態185にしてメモリの内容の破壊を防止した後診断を実行し、診断完了後保護動作状態185のメモリ装置から正常動作状態183のメモリ装置に内容をコピーすることとする。その結果、たとえ入出力制御装置が不正な書込み動作を行っても、正常なメモリに修復可能である。仮に入出力制御装置が正常に動作すれば、書込みデータは書込み許可フラグが“1”のままの通常動作状態183のメモリ装置に書き込まれるので、この内容を確認することで入出力制御装置の動作が診断できる。
【0145】
次に、図26におけるエラー注入回路を使用したエラーの注入状態と、この機能を利用した診断方法について、図27ないし図31を用いて説明する。図31における領域71−1は通常領域でプログラムやデータが格納され、領域71−2ないし71−5が診断領域として使用される。まずメモリ装置4aのパリティ許可フラグを“1”に設定し、メモリ装置4aの個別空間アクセスにより領域71−2aにデータ“8888”を、領域71−4aにデータ“AAAA”を書き込むことにより、正常なデータが生成される。次にメモリ装置4aのパリティ許可フラグを“0”に設定し、メモリ装置4aの個別空間アクセスにより領域71−3aにデータ“9999”を、領域71−5aにデータ“BBBB”を書き込むことにより、パリティエラーを含んだデータが生成される。同様にしてメモリ装置4bに対しては、領域71−2b及び71−3bにデータ“CCCC”及び“DDDD”の正常データを、領域71−4b及び71−5bにはデータ“EEEE”及び“FFFF”のパリティエラーを含んだデータを書き込む。
【0146】
以上のように、診断領域に正常データとパリティエラーを含むデータを書き込んだ状態で、タイマ等の機能により処理装置1が一定時間ごとに診断領域の読み出しを行なうことで、メモリにエラーが発生した場合は正常な側のメモリの内容を出力し、また両方のメモリでエラーが検出されたら高レベル割り込みが発生する機能(実施例4における動作)を診断できる。すなわち機能が正常ならば、領域71−2の読み出しではメモリ71aが応答しデータ“8888”が、領域71−3の読み出しではメモリ71aがエラーなのでメモリ71bの正常データ“DDDD”が、領域71−5の読み出しでは両方のメモリがエラーなので高レベルの割り込みが発生する。またメモリ装置4a内のエラー検出手段85aが正常の動作していない場合、領域71−3の読み出しでエラーデータの“9999”が読み出され、故障箇所の判別が可能となる。
【0147】
次に、アドレスエラーの検出について、図32を用いて概略説明をする。処理装置1からメモリ装置4がアクセスされる際、メモリのアドレス信号のパリティチェックをアドレスエラー検出回路176で行ない、この結果を相手側のメモリ装置にアドレスエラー検出信号線175として出力するとともに、エラーが検出された側は内部の読出し許可フラグを“0”にして読み出しを禁止する。一方相手のアドレスエラー信号線175の変化を検出したメモリ装置は、そのアドレスをエラーアドレスレジスタ174に記憶させ、割り込みによってアドレスエラーの発生を知った処理装置1が制御用ROM2に格納されている故障解析復旧プログラムを実行し、エラーの発生したメモリアドレスを、正常な側のメモリ装置内のエラーアドレスレジスタ174から読み出す。このアドレスの示すメモリの内容を読み出して再度書き込むことにより、エラーの発生したメモリの内容が正常なデータに復旧する。
【0148】
上記の動作のうち、アドレスエラー検出とエラーアドレスレジスタの詳細について、図33を用いて説明する。アドレスエラー検出回路176aはシステムバス上のアドレス信号線13−2aのパリティチェックを行なっており、エラーを検出するとアドレスエラー信号線175aを“1”に出力する。この信号は内部では読出し許可フラグ170−1aを“0”にリセットするとともに、ANDゲート216により書込み信号線162を“0”にして、誤ったアドレスへの書き込みを禁止する。一方、相手側のメモリ装置4bでアドレスエラーが検出された場合には、相手からのアドレスエラー信号線175bが“1”になり、この時のアドレス信号線13−2aの内容がエラーアドレスレジスタ174aに記憶される。また読出し時にアドレスエラーが発生した場合は、図15におけるメモリ誤り検出信号線84に相当する信号を出力すれば、エラーの発生していないメモリ装置が読出しデータを出力してくれるので、正常な読出しデータを保証できる。しかもアドレスエラーの発生したメモリ装置は、エラーの発生した部分のみが書き変わっていないに過ぎず、容易に修復できる。アドレスエラーが発生したときの割り込み信号は、EXORゲート92とANDゲート93によってアドレスエラー検出信号線175aと175bの条件で生成される。いずれか一方のメモリ装置でアドレスエラーが発生した場合はEXORゲート92の出力が“1”になり、低レベルの割り込み信号9が出力され、両方のメモリ装置でアドレスエラーが発生した場合はANDゲート93の出力が“1”になり、高レベルの割り込み信号10が出力される。低レベルの割り込みは、エラーの発生したアクセスアドレスが正常なメモリ装置内のアドレスエラーレジスタに記憶されていて修復処理可能であることを示し、高レベルの割り込みはエラーのあったアクセスアドレスが特定できないために修復処理が不可能なことを示す。
【0149】
実施例7.
図34は、本発明の第7実施例に係る二重化メモリシステムのメモリ装置内部のデータエラーの検出を示す図である。図において、240はアドレスを入力するためのレシーバ、241は予め発生するエラー回数の上限値を設定するためのエラー上限値レジスタ、244はエラー上限値レジスタ241に値を書込むためのエラー上限値レジスタ設定信号線、245はエラー検出回路、247はエラー検出回路245の出力であるエラー検出信号246によってインクリメントされ、外部からのエラー訂正信号線256によってデクリメントされるエラー累積カウンタ、249はエラー上限値レジスタ241とエラー累積カウンタ247の出力を比較し、比較結果に従い2種類の割り込み信号線を出力するための比較回路、252はエラーが発生したアドレスを格納するための複数のエラーアドレスレジスタ、257はエラーアドレスレジスタの書込み信号258を生成する書込み制御回路、254はメモリまたはエラーアドレスレジスタ252に格納されたデータを選択して出力するセレクタ、259はセレクタ254の出力信号255を選択するための信号で“0”のときはメモリの読み出しデータ233を“1”のときはエラーアドレスレジスタ252−1を“2”のときはエラーアドレスレジスタ252−2の内容を選択出力するための制御を行なうセレクタ切換え信号である。なおエラー上限値レジスタ設定信号線244、エラー訂正信号線256、セレクタ切換え信号259は例えば前述の実施例6における図33のアドレス判別回路172により処理装置がアクセスするアドレスをデコートして生成される。
【0150】
以上のように構成されるエラー検出の動作について、図34を用いて説明する。まず電源投入時には、エラー累積カウンタ247は“0”に初期化され、続いて処理装置からメモリ装置に内蔵されるエラー上限値レジスタ241に、エラー上限値レジスタ設定信号線244によってエラーアドレスレジスタの個数と同じ値(実施例では“2”)を設定する。この後通常のメモリアクセス動作を行うと、セレクタ切換え信号259には“0”が出力されており、メモリ71からの読み出しデータ223はエラー検出回路245によりパリティチェックが行われ、エラーが発生していなければセレクタ254及びドライバ回路220を経由してシステムバス13−1に出力される。エラーが検出されるとエラー検出信号線246が“1”になり、エラー累積カウンタ247の内容がインクリメントされる。比較回路249では前述のエラー上限値レジスタ241に設定されている内容と、エラー累積カウンタ247の内容が比較され、エラー累積カウンタの値がエラー上限値レジスタ241の数値を越えていなければ低レベルの割込み信号線9を“1”に、越えれば高レベルの割込み信号線10を“1”にする。
【0151】
ところで、書込み制御回路257はエラー検出信号線246が“1”になったときに、エラー累積カウンタの出力信号248の内容により、アドレス信号251の内容をどのエラーアドレスレジスタに書込むかを切換える動作を行なう。つまり初期状態ではエラー累積カウンタ247の内容は“0”であるので書込み信号線258−1が出力されることにより、エラーアドレスレジスタ252−1にエラーアドレスが書込まれ、2回目のエラー発生時にはエラー累積カウンタ247の内容は“1”になっているので書込み信号線258−2が出力されることにより、エラーアドレスレジスタ252−2にエラーアドレスが書込まれる。このようにしてエラーが発生したアドレスはエラーアドレスレジスタ252に順次記憶されており、処理装置は低レベルの割り込みを受けると障害回復処理によりエラーアドレスレジスタ252−1のアクセスを行なうと、セレクタ切換え信号259は“1”になりエラーアドレスレジスタ252−1の内容がセレクタ254、データドライバ220を経由してシステムバスに出力される。処理装置はこのようにしてエラーの発生したアドレスを知ることができ、このアドレスで示されるメモリのデータを読み出して同じアドレスに書込むことによりパリティエラーの発生したメモリの内容を修復する。この後処理装置はエラー訂正信号線256によりエラー累積カウンタ247の内容をデクリメントする。ところで処理装置が低レベルの割込みを受け付けるまでの間でもメモリ装置のアクセスは実行されており、別のアドレスでパリティエラーが発生すると、エラーアドレスレジスタの個数以下のエラーなら、発生したアドレスを記憶することができる。エラーアドレスレジスタの個数を越えてエラーが発生した場合は、前述の比較回路249の高レベルの割り込み信号線が“1”になって修復不可能な重障害の発生が処理装置に通知され、実施例5に記載したモード設定回路等の機能を利用して、該当するメモリ装置を切り離す。
【0152】
実施例8.
図35は、本発明の第8実施例に係る二重化メモリシステムであり、二重化バス変換アダプタ261を介して一重のバスしか持たない通常の入出力制御装置260を接続した様子を示す図である。図36及び図37に二重化バス変換アダプタ261の詳細構成を示す。
【0153】
図36において、263はアドレス信号のドライバ/レシーバ回路、264はデータ信号のドライバ/レシーバ回路、269は通常の入出力制御装置260がシステムバスに対してアクセスする時のアドレスパリティを生成するパリティ生成回路、同様に271はデータのパリティを生成するパリティ発生回路、270はシステムバスから通常の入出力制御装置をアクセスする時に、二重化されたアドレスバスのパリティを検査し、正しい方のアドレスを選択するためのパリティ検査選択回路、同様に272はデータを選択するためのパリティ検査選択回路である。
【0154】
また図37において、276は通常の入出力制御装置260がアクセスして良いアドレス領域を設定するためのアドレス領域レジスタ、278は通常の入出力制御装置260がシステムバスに出力しようとしているアドレスと、アドレス領域レジスタ276の内容を比較し、その結果によりシステムバスのドライバのゲートを制御する比較回路である。
【0155】
上記のように構成される二重化メモリシステムの入出力制御装置に関する動作概要を、図35を用いて説明する。入出力制御装置177は二重化メモリシステム対応に設計されたものであり、両側のシステムバスに対するアクセスが可能になっている。一方、通常の入出力制御装置260は二重化メモリシステムを意識していない既存のもので、それ自身は1つのシステムバスへの接続のみが可能なため、これを二重化バス変換アダプタ261によって二重化するとともに、エラーチェックコードの生成、アドレスのチェック等を行い、信頼性を向上させている。
【0156】
次に、二重化バス変換アダプタ261の詳細動作を、図36を用いて説明する。通常の入出力制御装置260は、共にパリティコードを持たないアドレス信号線262−2とデータ信号線262−1によって二重化バス変換アダプタ261と接続されており、入出力制御装置がシステムバス経由でメモリ装置1にアクセスする場合は、アドレス信号線262−2にパリティ生成回路269でパリティコードが付加されてアドレス信号線265となり、ドライバ回路263−1を介して両側のシステムバスにアドレス信号線13−2aと13−2bとして出力される。またデータ信号線262−1にはパリティ生成回路271でパリティコードが付加され、データ信号線267となり、ドライバ回路364−1を介して両側のシステムバスにアドレス信号線13−1aと13−1bとして出力される。
【0157】
一方、二重化されたシステムバスから入出力制御装置がアクセスされる場合は、システムバスのアドレス信号線13−2a及び13−2bはレシーバ回路263−2で入力され、パリティ検査選択回路270によるパリティチェックの結果、エラーの発生していない側のアドレス信号266が選択され、通常の入出力制御装置260に対するアドレス信号線262−2として出力される。同様にシステムバスのデータ信号線13−1a及び13−1bはレシーバ回路264−2で入力され、パリティ検査選択回路272によるパリティチエックの結果、エラーの発生していない側のデータ信号268が選択され、通常入出力制御装置260に対するデータ信号線262−2として出力される。
【0158】
パリティ検査選択回路270で両側のアドレス信号線でエラーが検出され、正しいアドレスが選択できないときは、アドレスエラー信号線274が、またパリティ検査選択回路272によって両側のデータ信号線でエラーが検出され、正しいデータが選択できないときにはデータエラー信号線275が、各々出力され、ORゲート273により低レベルの割込み信号が出力される。この時、通常の入出力制御装置260に対する書込み、読出し信号線(図示せず)は出力されなので、入出力制御装置は動作を開始せず、処理装置1のソフトウェアによるリトライ処理を行う。
【0159】
次に、図37を用いて、入出力制御装置260のアクセスに制限を設ける動作を説明する。アドレス領域レジスタ276は入出力制御装置260がアクセス可能なメモリアドレスの範囲を指定するためのもので、処理装置1は入出力制御装置260に対する入出力動作の起動に先立ち、アドレス領域レジスタ設定信号282により、データ信号線262−1の内容をアドレス領域レジスタ276に設定する。入出力制御装置260が起動されてメモリへの転送が発生すると、入出力制御装置260はアドレス信号線262−2にアクセスするメモリアドレスを出力する。この時比較回路278は前述のアドレス領域レジスタ276に設定された範囲内にあるかどうかを判定し、範囲内であればドライバ出力許可信号線279を“1”にしてシステムバスへのアクセスを許可し、範囲外であればドライバ出力許可信号線279を“0”にしてシステムバスへのアクセスを禁止する。またORゲート281により範囲外のアドレスがアクセスされた時には、低レベルの割込み信号線9を“1”にして処理装置に知らせる。
【0160】
なお上記実施例では、メモリ装置のデータチェックコードとしてパリティデータによって説明したが、これはパリティデータでなくECCコードであっても同様に実現できる。
【0161】
【発明の効果】
以上詳細に説明したように、本発明によれば、メモリ装置A及びBが独立して書込み許可フラグ、読出し許可フラグを持ち、かつアドレス判別回路が現アドレスに対するアクセスの対象を判別する結果、各メモリ装置はアクセスが自装置に及ぶ場合を適切に判定することができ、診断等の処理が容易になる。
【0162】
また本発明によれば、状態定義手段が前記書込み許可フラグ、読出し許可フラグの組合せに従って各メモリ装置の状態を定義し、状態遷移手段が処理装置による設定に従って各メモリ装置を各状態間で遷移させるため、各メモリ装置の初期設定、エラー発生時の切換え等を適切に行うことができる。
【0163】
また本発明によれば、メモリ装置A及びBの共通アクセス空間指定レジスタがメモリ装置Aとメモリ装置Bがともにアクセス対象となる共通アクセス空間を指定し、個別空間アクセス指定レジスタがメモリ装置Aまたはメモリ装置Bのいずれか一方がアクセス対象となる個別アクセス空間を指定する結果、的確なメモリの状態管理が可能となる。さらに入出力制御装置故障時の診断時に保護動作状態を使用すれば、入出力制御装置の誤動作によるメモリ破壊を防止できる。
【0164】
また本発明によれば、設定手段、第二の設定手段、第三の設定手段によって各メモリ装置の共通アクセス空間指定レジスタおよび個別空間指定レジスタの値を適宜設定するため、二重化動作だけでなく、二重化動作を必要としない場合(高信頼性がさほど要求されない場合)にあっては、各メモリ装置を別々に使用することによって使用可能なメモリ容量の倍増を可能とする。
【0165】
また本発明によれば、エラー注入手段が各メモリ装置の任意領域に擬似的なエラーを注入するため、装置の切換えを強制的に発生させることができ、またエラーの注入された領域を適宜アクセスすることによってエラー検出回路、バス切換え回路及び割込み生成回路の動作を確認することができるため、信頼性が向上する。
【0166】
また本発明によれば、注入値設定手段が前記エラー注入手段によってエラーの注入される領域のアドレス及び注入されるデータの値を両メモリ装置で異なる値に設定するため、エラーが強制的に発生させられたメモリ装置の識別が可能となり、装置の診断が容易になる。
【0167】
また本発明によれば、前記のメモリ装置の一方ががシステムバスのアドレスエラーを検出したとき、他方のメモリ装置が自装置でエラーのないアドレスを記憶するため、後の修復処理において、修復すべきアドレスを特定することができる。さらに、アドレスエラーが検出されたメモリ装置において、自メモリへの書込みが禁止されるため、誤って指定されたアドレスのデータが破壊される事態を回避することができる。
【0168】
また本発明によれば、システムアドレスエラー割込み生成手段がシステムアドレスエラー検出手段における検出結果に従って割込み信号を生成するため、エラー修復手段がこの割込み信号に従って前記エラーアドレス記憶手段に格納されたアドレスをもとにエラー修復を行うことができる。
【図面の簡単な説明】
【図1】本発明の第1実施例に係る二重化メモリシステムの全体構成を示すブロック図である。
【図2】図1中のエラー検出回路6及びCPUバス切換え回路7の構成を示す図である。
【図3】図1中、エラー発生状況とCPUバス切換え信号線12、割込み信号線9、10の相関を示す図である。
【図4】図2の回路の動作を示すタイミング図である。
【図5】図2の回路中、データ信号18とゲート信号32のタイミングを示す図である。
【図6】図1中のマスタ決定回路5の詳細を示す図である。
【図7】図6のマスタ決定回路5の動作を示すタイミング図である。
【図8】本発明の第2実施例に係る二重化メモリシステムのシステムバス制御回路を示す図である。
【図9】図8中の回路の一部分が故障した時の動作を示す図である。
【図10】本発明の第2実施例に係るシステムバス制御回路の変型例である。
【図11】図10中の回路の一部分が故障した時の動作を示す図である。
【図12】本発明の第3実施例に係る二重化メモリシステムのエラー検出回路とステータスレジスタの配置を示す図である。
【図13】図12における二重化メモリシステムのメモリ書込み時の故障箇所判定の方法を示す図である。
【図14】図12における二重化メモリシステムのメモリ読出し時の故障箇所判定の方法を示す図である。
【図15】本発明の第4実施例に係る二重化メモリシステムの全体構成を示すブロック図である。
【図16】図15中のシステムバス制御装置3に内蔵されるシステムバス切換え回路82のシステムバス13への出力切り換え部分を示す図である。
【図17】図15中のメモリ装置4に内蔵されるシステムバス切換え回路83のシステムバス13からの入力切換え部分を示す図である。
【図18】図15中の二重化メモリシステムにおける処理装置がメモリ装置へ書込みを行う際のデータバスの切り換えを示した図である。
【図19】図15中の二重化メモリシステムにおける処理装置がメモリ装置からの読出しを行う際のデータバスの切り換えを示した図である。
【図20】本発明の第5実施例に係る二重化メモリシステムの全体構成を示すブロック図である。
【図21】図20中のシステムバス制御装置3のCPUバス周辺の構成図である。
【図22】図20中のシステムバス制御装置3のシステムバス周辺の構成図である。
【図23】図20中のシステムバス制御装置3に内蔵されるモード設定回路100の詳細図である。
【図24】図23の回路の動作を示すタイミング図である。
【図25】図20中のメモリ装置におけるモードの遷移を示す図である。
【図26】本発明の第6実施例に係る二重化メモリシステムの全体構成を示すブロック図である。
【図27】図26中のメモリ装置4の内部構成を示す図である。
【図28】図26中のアドレス判別回路172の詳細を示す図である。
【図29】メモリ装置4のアドレス空間の割付を示す図である。
【図30】許可フラグの組合せによるメモリ装置4の状態遷移を示す図である。
【図31】図26中のエラー注入回路173によるメモリ内部のエラー注入状態を示す図である。
【図32】本発明の第6実施例にアドレスエラー検出機能を付加した二重化メモリシステムの全体構成を示すブロック図である。
【図33】図32中のメモリ装置4の内部構成を示す図である。
【図34】本発明の第7実施例に係るデータエラー検出の方式を示す図である。
【図35】本発明の第8実施例に係る二重化バス変換アダプタ261を含んだ二重化メモリシステムの全体構成を示すブロック図である。
【図36】図35中の二重化バス変換アダプタ261の内部構造を示す図である。
【図37】図36においてアドレス領域レジスタ276を付加した二重化バス変換アダプタ261を示す図である。
【符号の説明】
1 処理装置(CPU)、2 制御ROM、3 システムバス制御装置、4 メモリ装置、5 マスタ決定回路、6 エラー検出回路、7 CPUバス切替え回路、8 CPUデータバス、9 低レベルの割込み、10 高レベルの割込み、11 CPUアドレスバス、12 CPUバス切替え信号線、13 システムバス、19 エラー検出回路、20 正常信号線、21 マスタモード入力信号線、30 データ出力タイミングクロック信号、31 3ステートバッファ、34 プルアップ抵抗、35 EXORゲート、36 ANDゲート、38 マスタ切替え信号線、41 マスタモードの出力信号線、42 リセット信号線、51 データ比較回路、53 比較エラー信号線、60〜62 ドライバ/レシーバ、63 パリティ生成回路、64〜66 パリティ検査回路、67〜69 ステータスレジスタ、70 システムバス制御装置内部バス、71 メモリ、72メモリ装置内部バス、73 選択回路、78 入力データ切替え信号線、80,85 エラー検出回路、81 システムバス切替え信号線、82,83 システムバス切替え回路、84 メモリエラー検出信号線、100〜102 モード設定回路、103 モード設定信号線、104,105 比較回路、106 Aバス許可信号線、107 Bバス許可信号線、113 比較エラー信号線、120 モード設定データ信号線、121 セレクタ回路、123,125 モードラッチ、140 電源投入処理、141,146,148 モードD状態、142 診断処理、143,151 モードA状態、144,152 通常動作、145 故障発生、147 修理交換処理、149 診断処理、150 メモリコピー処理、153,161 モードB状態、156 モードC状態、157 通常動作、162 メモリ書き込み信号、163 パリティ生成許可信号線、170 パリティ許可フラグ、172 アドレス判別回路、173 エラー注入回路、174 エラーアドレスレジスタ、175 エラーアドレス信号線、176 アドレスエラー検出回路、177 入出力制御装置、180 電源遮断状態、181 切離し動作状態、183 正常動作状態、184 修復動作状態、185保護動作状態、186 カード挿入/電源投入操作、187 カード取外し/電源遮断操作、188 メモリ診断動作、189 電源投入時診断完了、190エラー無し/単一データエラー動作、191 重複データエラー発生、192アドレスエラー発生、193 修復完了、194 メモリコピー動作、195修復不可能エラー発生、196 診断終了、197 保護モード切替え、200 メモリ空間、201 I/O空間、202 共通アクセス空間、203 個別アクセス空間、206 I/O空間A、207 I/O空間B、208 メモリ空間A、209 メモリ空間B、210 共通空間書き込み、211 個別空間書き込み、212 共通空間読み出し、213 個別空間読み出し、214 読み出し許可信号線、215 書き込み許可信号線、222 ドライバゲート信号線、223 メモリ読み出しデータ信号線、225 フラグ書き込み信号線、226 メモリ書き込みデータ信号線、228 共通空間アクセス信号、229個別空間アクセス信号、230 I/Oアドレス判定回路、231 共通空間指定レジスタ、232 個別空間指定レジスタ、233,234 比較回路、235 共通空間指定レジスタ設定信号線、236 個別空間指定レジスタ信号線、239 パリティ生成回路、240 アドレスレシーバ、241 エラー上限値レジスタ、244 エラー上限値レジスタ設定信号線、245 エラー検出回路、246 エラー検出信号線、247 エラー累積カウンタ、248 累積カウンタ出力信号線、249 比較回路、251 入力アドレス信号線、253 エラーアドレス出力信号線、254 セレクタ回路、256 エラー訂正信号線、260 入出力制御装置、261 二重化バス変換アダプタ、262 変換バス信号線、263 アドレスドライバ/レシーバ回路、264 データドライバ/レシーバ回路、265 アドレス信号線、266 アドレス入力信号線、267 データ信号線、268 データ入力信号線、269 アドレスパリティ生成回路、270 アドレスパリティ生成/選択回路、271 データパリティ生成回路、272 データパリティ生成回路/選択回路、274 アドレスエラー信号線、275 データエラー信号線、276 アドレス領域レジスタ、277 アドレス領域信号線、278 比較回路、279 ドライバ出力許可信号線、282 アドレス領域レジスタ設定信号線。[0001]
[Industrial applications]
The present invention relates to a memory device in a highly reliable computer, and more particularly to a configuration method, a diagnosis method, and a failure monitoring method of a redundant memory system.
[0002]
[Prior art]
In the field of a fault-tolerant computer, one of the most common techniques for improving the reliability of a computer is a method of multiplexing a logic circuit that is critical in reliability, such as a processing unit (CPU) or a storage device. Usually, multiplexing of storage devices is basically based on duplication, and one of the duplicated storage devices is configured as a service side and the other is configured as a standby side. In this case, when writing, the same data is written to both sides to maintain consistency, and when reading, only the data on the regular side is output.If an error occurs in the data read from the regular side, the data transfer subject is changed to the standby side. Then, by outputting the correct data, the operation of the system can be continued.
[0003]
However, most of the conventional techniques are limited to only a memory device, and a high reliability method by duplicating a control unit and a connected system bus has not been established. Therefore, the means for separating and diagnosing the failed storage device, the repair and replacement during system operation (hot wire replacement), and the measures to be taken when the system bus connecting the storage device fails are all insufficient.
[0004]
Japanese Patent Application Laid-Open Nos. Sho 59-17796, 01-70847, Japanese Patent Publication No. 60-3225, Japanese Patent Application Laid-Open No. 63-273950, and Japanese Patent Application Laid-open No. 60-238957 In the methods described in JP-A-57-109195 and JP-A-4-233305, the bus to which the storage device is connected is not duplicated, and in most systems, the control unit is duplicated. Had not been done. Furthermore, when an error occurs in the storage device, correct data is guaranteed by switching or restoration at the time of reading, but care is not taken at the time of writing, and performance is reduced due to retry operation and the processing unit side circuit becomes complicated. I was invited. Furthermore, when diagnosing a faulty memory, consideration should be given to not affecting the normal memory, means for repairing and replacing a faulty control unit or memory device during system operation, and reliability when an input / output control device accesses a storage device. Consideration was not sufficient, and there was room for improvement in the overall system reliability.
[0005]
[Problems to be solved by the invention]
As described above, the conventional technique has several problems, and a solution to this problem is to duplicate all components. This cannot be achieved simply by preparing two sets of components, and the following points must be considered in order to always ensure correct continuous operation as a system.
[0006]
Problem 1: To guarantee normal data at high speed in switching of a duplicated system bus and without changing the timing of the system bus even when an error occurs.
[0007]
Problem 2: It is possible to operate normally even if one of arbitrary devices in the duplexed device is not mounted, and to eliminate the need for a special signal line for knowing whether or not the other side is mounted.
[0008]
Problem 3: To specify and diagnose a failure point when an error occurs without affecting a normal part.
[0009]
Problem 4: To easily provide a means capable of continuing a duplex operation even when a data parity error occurs during writing.
[0010]
Problem 5: To sufficiently perform an error check when the system bus is duplicated.
[0011]
Problem 6: When an unrecoverable error occurs in one of the duplicated memory devices, repair and replacement can be performed without stopping the system, and the duplicated operation can be resumed.
[0012]
Problem 7: To be able to easily increase the memory capacity when not used as a dual memory device.
[0013]
Problem 8: When diagnosing a failed input / output control device, writing data to the memory does not cause memory destruction that makes recovery impossible.
[0014]
Problem 9: To be able to connect to a duplicated memory system without reducing reliability without designing a special input / output control device for connecting to a duplicated system bus.
[0015]
Purpose
The present invention has been made to solve the above problems, and has as its object to provide a highly reliable dual memory system.
[0016]
[Means for Solving the Problems]
In order to solve the above problems, the present invention provides a processing device that performs various processes, a pair of system bus controllers connected to the processing device via a CPU bus, and a pair of system bus controllers connected to the pair of system bus controllers, respectively. A pair of system buses, and a pair of memory devices A and B respectively connected to both of the pair of system buses. During a write operation in the processing device, the system bus control device is connected to the pair of memory devices. At the same time, in a redundant memory system in which data is written from the processing device and one of the system bus controllers sends data read from the corresponding memory device to the processing device during a read operation in the processing device, a pair of memory devices A and B respectively has a write enable flag for permitting writing to the memory and a read permission from the memory. A read permission flag for permitting a tooth, and has an address discrimination circuit for discriminating an object of an access for the current address.
[0017]
Further, according to the present invention, a state defining means for defining a state of each memory device according to a combination of the write permission flag and a read permission flag, and each state defined by the state defining means according to a setting by a processing device State transition means for transitioning between the states.
[0018]
Further, according to the present invention, the memory devices A and B may each include a common access space specifying register for specifying a common access space to be accessed by both the memory device A and the memory device B; One has an individual space access designation register for designating an individual access space to be accessed.
[0019]
The present invention also provides a setting means for setting the value of the common access space designation register of the memory device A and the memory device B to the same address, the value of the individual space designation register of the memory device A and the value of the individual space designation register of the memory device B. It has a second setting means for setting a value to a different address, and a third setting means for resetting the address set by these setting means at an arbitrary timing.
[0020]
Further, the present invention has an error injection means for injecting a pseudo error into an arbitrary area of each memory device, and an error state inspection means for inspecting an error state by accessing the error injected area. .
[0021]
Further, the present invention has an injection value setting means for setting an address of an area where an error is injected by the error injection means and a value of data to be injected to different values in both memory devices.
[0022]
Also, the present invention provides a system address error detecting means for each of the memory devices to detect an address error of a system bus, an error address signal line for notifying a detection result of the system address error detecting means to the other memory device, Error address storage means for storing an error-free address in the own device when an error occurs in the other memory device according to the state of the error address signal line notified from the device, and when an address error is detected in the own device Write-inhibiting means for inhibiting writing into the memory of the own device.
[0023]
Further, the present invention provides a system address error interrupt generating means for generating an interrupt signal in accordance with a detection result of the system address error detecting means, and an address stored in the error address storage means when a system address error interrupt occurs. Error recovery means for performing error recovery.
[0024]
[Action]
According to the present invention having the above configuration, the write permission flags of the memory devices A and B permit writing to the memory, the read permission flag permits reading from the memory, and the address determination circuit determines an access target for the current address. As a result, data is written or read in accordance with a combination of the result of the determination by the determination circuit and the two flags.
[0025]
According to the invention, the state defining means defines the state of each memory device according to a combination of the write permission flag and the read permission flag, and the state transition means defines each memory device according to the setting by the processing device. Transition between the states defined in.
[0026]
According to the present invention, the common access space designation register of the memory devices A and B designates a common access space to be accessed by both the memory device A and the memory device B, and the individual space access designation register designates the memory device A or B. One of the memory devices B specifies an individual access space to be accessed.
[0027]
According to the invention, the setting means sets the value of the common access space designation register of the memory device A and the memory device B to the same address, and the second setting means sets the individual memory device A set by the setting means. The value of the space designation register and the value of the individual space designation register of the memory device B are set to different addresses, and the third setting means resets the addresses set by the two setting means at an arbitrary timing.
[0028]
Further, according to the present invention, the error injection means injects a pseudo error into an arbitrary area of each memory device, and the error state inspection means accesses the error-injected area to check the error state. Operation of each function can be confirmed.
[0029]
Further, according to the present invention, the injection value setting means sets the address of the area where the error is injected by the error injection means and the value of the data to be injected to different values in both memory devices.
[0030]
Further, according to the present invention, the system address error detecting means of each of the memory devices detects an address error of the system bus, the error address signal line notifies the other memory device of the detection result, and the other memory device detects the error. The error address storage means stores an error-free address in its own device according to the state of the error address signal line, and when an address error is detected in each device by the prohibiting means of each system bus control device, the memory of its own device is used. Writing to is prohibited.
[0031]
Further, according to the present invention, the system address error interrupt generating means generates an interrupt signal according to the detection result of the system address error detecting means, and the error repairing means also generates the address stored in the error address storage means according to the interrupt signal. And perform error repair.
[0032]
【Example】
FIG. 1 shows a duplicated memory system according to a first embodiment of the present invention. In FIG. 1, 1 is a processing device (CPU), 2 is a control ROM in which a program for the
[0033]
Although the duplicated portion is classified into the A system and the B system as described above, in the following description, when discriminating both sides, the component numbers are indicated by adding a suffix a or b to each other. Represented without letters.
[0034]
FIG. 2 shows a detailed configuration of the error detection circuit 6 and the CPU bus switching circuit 7 built in the system
[0035]
FIG. 4 is a timing chart showing the operation of the error detection circuit and the CPU bus switching circuit shown in FIG. 2, in which respective input / output signals are shown correspondingly. In the figure, T01 to T14 indicate clock cycles based on the
[0036]
FIG. 5 shows how the data signal 18 is driven as the data signal 8 by the timing of the
[0037]
FIG. 6 shows details of the
[0038]
FIG. 7 is a timing chart showing the operation of the master determination circuit of FIG.
[0039]
A schematic operation of the dual memory system configured as described above will be described with reference to FIG. In the initial processing after power-on, the
[0040]
When the
[0041]
Next, detailed operations of the error detection circuit 6 and the CPU bus switching circuit 7 will be described with reference to FIG.
[0042]
In FIG. 2, the system bus controller has a master mode
[0043]
Assuming that the data is normal, the
[0044]
On the other hand, if an error is detected in the data, the
[0045]
Next, the operation on the slave side will be described.
[0046]
When no error is detected in the data, the normal signal line 20b is "1" in the slave-side
[0047]
Next, generation of the interrupt
[0048]
The
[0049]
The operation of the
[0050]
The low-level interrupt indicates the occurrence of a so-called minor failure in which correct data has been sent to the
[0051]
The role of the pull-up
[0052]
The operation of the error detection circuit 6 and the CPU bus switching circuit 7 of the system
[0053]
In the figure, data with white circles indicate data read from the
[0054]
No data error is detected in the first and second words, the
[0055]
When an error is detected in the third word, the error is detected at the timing of T04, and the CPU bus switching
[0056]
In the fourth word, since normal data is detected on both sides, switching of the CPU bus does not occur, and data on the master side set as default is output at the timing of T06.
[0057]
For the data of the fifth word, an error is detected on the slave side, but the master side is normal, and the switching of the CPU bus does not occur, and the data on the master side is output at the timing of T07.
[0058]
As shown in FIG. 4, unless an error is detected on the master side, the read data of the memory device connected to the master side is always output to the
[0059]
As illustrated in FIG. 4, only a part of the transfer cycle of the
[0060]
In FIG. 2, the master mode switching signal line is used directly for switching the master of the system
[0061]
In FIG. 7, when the power is turned on, the master flip-flop 37 is set / reset according to the state of the master mode switching
[0062]
FIG. 8 shows a duplicated memory system according to a second embodiment of the present invention, in which a check function of a CPU data bus is added to the first embodiment to further improve reliability.
[0063]
In FIG. 8,
[0064]
FIG. 9 shows that the data read is performed from the side of the system bus control device 3a, the signal line of each data comparison circuit 51 and the normality of the
[0065]
FIG. 10 is a modification of the second embodiment of the present invention, in which the
[0066]
The comparison operation of the CPU data bus of the system bus control device configured as described above will be described with reference to FIG.
[0067]
The data read from the duplicated memory device is temporarily latched by the data latch 17 and supplied to the
[0068]
Next, the relationship between the comparison
[0069]
When the master-
[0070]
In FIG. 9, since the data read is assumed to be performed from the side of the system bus control device 3a, the logic of the comparison
[0071]
Next, an example in which the comparison
[0072]
When the
[0073]
FIG. 12 shows a duplicated memory system according to the third embodiment of the present invention. In the figure, 60 is a driver / receiver on the CPU data bus side built in the system
[0074]
FIG. 13 is a diagram showing an error analysis at the time of a write operation to the memory in the system of FIG. 12, and FIG. 14 is a diagram showing an error analysis at the time of a read operation from the memory. The crosses indicate error detection.
[0075]
The operation of the dual memory system configured as described above will be described with reference to FIG. First, when the
[0076]
Next, the contents of the status registers 64 to 66 in which the error detection result at the time of writing is stored and an example of failure analysis will be described with reference to FIG. The probability of occurrence of a failure is based on the circuit scale, assuming that the memory is 1/10000, the bus is 1 / 100,000, the parity generation / inspection circuit and the driver / regiver are 1 / 100,000. It is assumed that a severe fault is 10,000 × 1,000,000 = 1/10 billion. FIG. 13 is created by estimating the combination having the highest failure occurrence probability among the possible failure causes as the cause. Eight types of failures are considered depending on the combination of status registers.
[0077]
Next, the operation at the time of reading from the
[0078]
The contents of the status registers 64 to 66 in which the error detection result at the time of reading is stored and an example of failure analysis will be described with reference to FIG. In FIG. 14 as well, the most probable combination of possible failure locations is the cause. In
[0079]
FIG. 15 shows a duplicated memory system according to the fourth embodiment of the present embodiment. In the figure, reference numeral 80 denotes an error detection circuit inside the system
[0080]
FIG. 16 is a diagram showing the concept of output data switching in the system
[0081]
FIG. 17 is a diagram showing the concept of input data switching in the system bus switching circuit 83 and the
[0082]
FIGS. 18A and 18B are diagrams showing the state of bus switching by the system
[0083]
Similarly, FIG. 19 is a diagram showing a state of bus switching by the CPU bus switching circuit 7 and the system
[0084]
The schematic operation of the dual memory system configured as described above will be described with reference to FIG. When the
[0085]
When reading data from the
[0086]
First, a detailed operation when data is written from the
[0087]
When a data error is detected by the system bus controller 3a and the
[0088]
Further, in the
[0089]
When an error is detected by both of the error detection circuits 83-1 and 83-2 (for example, when the
[0090]
FIG. 15 will be described again. When the
[0091]
FIG. 18 illustrates a state of data switching when a part of the components fails in the above-described redundant memory system during a write operation.
[0092]
(A) In the normal state, write data from the
[0093]
(B) When the receiver in the CPU
[0094]
(C) When the system bus A13a has failed, the
[0095]
(D) When the driver of the system
[0096]
The read operation will be described with reference to FIG.
[0097]
(A) In the normal state, the data read from the
[0098]
(B) When the receiver in the system
[0099]
(C) When the system bus A13a has failed, an error in the system bus A13a is detected in the system bus controller, the read data of the system bus B13b is used as input data, and the system bus controller 3a transmits data to the CPU bus. Is sent.
[0100]
(D) When the
[0101]
FIG. 20 shows a duplicated memory system according to the fifth embodiment of the present invention. In the figure, 100 is a mode setting circuit that is built in the system
[0102]
FIG. 21 is a diagram showing the concept of a circuit that controls the CPU bus in the system
[0103]
FIG. 22 is a diagram similarly showing the concept of a circuit in the system
[0104]
FIG. 23 is a diagram showing details of the mode setting circuit 101 in FIG. 20 (the same applies to 100 and 102). In the figure,
[0105]
FIG. 24 is a diagram showing an operation sequence of the mode setting circuit in FIG. 23. T100 is a reset timing, T101 and T104 are mode setting timings, T102 is a timing at which an error is detected on the system bus control device 3a side, and T103 is an error timing. This shows the timing of recovery.
[0106]
FIG. 25 shows the relationship between the operation and the mode of the
[0107]
The schematic operation of the dual memory system configured as described above will be described with reference to FIG. The
[0108]
The output circuit of each bus has a comparison circuit for comparing the contents of the bus and outputting the result to the outside to generate an interrupt signal line. The input data is input again for comparison, and the contents of the two system buses are compared on the system bus side.
[0109]
Next, a detailed operation on the CPU bus side of the system
[0110]
In the mode B
[0111]
The mode A system bus controller 3a further inputs its own output data via the
[0112]
Since the output control to the system bus by the system
[0113]
On the other hand, in the
Is output.
[0114]
Further, the
[0115]
The configuration and operation of the mode setting circuit will be described with reference to FIGS. 23 and 24, taking the case of the mode setting circuit 101 incorporated in the system
[0116]
Next, when the processing device outputs the mode
[0117]
By the way, when the
[0118]
Further, when the processing device outputs the mode
[0119]
When the mode setting circuit is used in the above-described redundant memory system, processing such as diagnosis, replacement, and recovery can be easily performed. An example in which this function is used in the
[0120]
The duplicated memory devices are indicated by A system and B system, respectively, and perform processing while changing the mode setting in synchronization with each other. First, power is turned on to both memory devices in process 140, and both processes are set to mode D by process 141 at the time of reset, so that neither memory outputs data.
[0121]
Next, the initial diagnosis of the memory by the write, read, and comparison check in the process 142 will be described with reference to FIG. In order to diagnose the memory, it is necessary to read the write data independently from the duplicated memory device. Therefore, first, the memory device of the A system is set to the mode C in the process 142-1a, and the B device is changed to the mode C in the process 142-1b. The memory device is set to mode D so that read data is output only from the memory of the A-system, and writing, reading, and comparison are performed on the memory device in process 142-2a. Therefore, the memory device of the A system is diagnosed. At this time, the data is also written in the memory device of the B system, but does not affect the diagnosis result of the A system. Next, the memory device of system A is set to mode D and the memory device of system B is set to mode C in process 142-3, and the memory device of system B can be tested in process 142-4b.
[0122]
When the initial diagnosis of the memory device by the process 142 is completed, the normal operation process 144 is performed by setting the memory device of the A system to the mode A and the memory device of the B system to the mode B in the
[0123]
When a new memory device is inserted into the system A by the exchange process, the memory device of the system A is set to the mode D by the reset process, and thereafter, data is read from the memory device of the normal system B by the process 150, and the data is transferred to the memory device of the new system A. Perform a copy operation to write. When the copying is completed, the memory device of the A system is set to the mode A and the memory device of the B system is set to the mode B in the
[0124]
Embodiment 6 FIG.
FIG. 26 shows a duplicated memory system according to the sixth embodiment of the present invention. In the figure, reference numeral 170 denotes a permission flag built in the
[0125]
FIG. 27 is a diagram showing the internal configuration of the
[0126]
FIG. 28 shows the details of the address discriminating circuit in FIG. 27. The address discriminating circuit includes a common
[0127]
FIG. 29 is a diagram showing the division of the address space when accessing the system bus. 200 shows the entire memory space, 201 shows the entire I / O space, (A) shows the allocation at the time of the duplex operation, and (B) ) Shows the assignment at the time of unification. The memory space is further divided into a common access space 202 and an individual access space 203.
[0128]
FIG. 30 is a diagram showing a state in which the memory device in FIG. 26 makes a state transition according to the permission flag 170. Depending on a combination of the permission flags, a
[0129]
FIG. 31 shows data when different data and error states are injected into the diagnostic areas of the
[0130]
FIG. 32 shows the concept of a configuration in which an address
[0131]
A schematic operation of the dual memory system configured as described above will be described with reference to FIG.
[0132]
The permission flag 170 in the
[0133]
Next, when reading from the
[0134]
The input /
[0135]
Next, the circuit configuration and operation of the permission flag 170, the
[0136]
In writing to the individual space, the individual
[0137]
Further, the above-mentioned
[0138]
An example of allocating the address space of the
[0139]
As shown in FIG. 29B, the common space register 231a is shared with the address 202-3 of the common space access memory A space for the
[0140]
Next, using the above-described permission flag 170 and the access function of the common and individual spaces, the normal operation from power-on, and the repair and repair / replacement of the failed memory are described by a combination of the read permission flag and the write permission flag. It will be described with reference to FIG. 30 together with the defined state transition. First, as a state definition, the
[0141]
First, when the power of the system is turned on, a
[0142]
When the normal memory device is in the
[0143]
When an address parity error occurs in the
[0144]
A method of using the
[0145]
Next, an error injection state using the error injection circuit in FIG. 26 and a diagnosis method using this function will be described with reference to FIGS. An area 71-1 in FIG. 31 is a normal area in which programs and data are stored, and areas 71-2 to 71-5 are used as diagnostic areas. First, the parity permission flag of the
[0146]
As described above, while the normal data and the data including the parity error are written in the diagnostic area, the
[0147]
Next, detection of an address error will be schematically described with reference to FIG. When the
[0148]
Of the above operations, details of the address error detection and the error address register will be described with reference to FIG. The address
[0149]
Embodiment 7 FIG.
FIG. 34 is a diagram showing detection of a data error inside the memory device of the redundant memory system according to the seventh embodiment of the present invention. In the figure, 240 is a receiver for inputting an address, 241 is an error upper limit register for setting an upper limit of the number of errors that occur in advance, and 244 is an error upper limit for writing a value to the error
[0150]
The operation of error detection configured as described above will be described with reference to FIG. First, when the power is turned on, the
[0151]
By the way, when the error
[0152]
FIG. 35 shows a redundant memory system according to the eighth embodiment of the present invention, in which a normal input /
[0153]
In FIG. 36, reference numeral 263 denotes a driver / receiver circuit for an address signal, 264 denotes a driver / receiver circuit for a data signal, and 269 denotes a parity generation for generating an address parity when the normal input /
[0154]
In FIG. 37,
[0155]
An operation outline of the input / output control device of the redundant memory system configured as described above will be described with reference to FIG. The input /
[0156]
Next, the detailed operation of the duplex
[0157]
On the other hand, when the input / output control device is accessed from the duplicated system bus, the address signal lines 13-2a and 13-2b of the system bus are input by the receiver circuit 263-2 and the parity check by the parity
[0158]
When an error is detected on both address signal lines by the parity
[0159]
Next, an operation of restricting access to the input /
[0160]
In the above embodiment, parity data is used as the data check code of the memory device. However, this can be similarly realized by using ECC codes instead of parity data.
[0161]
【The invention's effect】
As described above in detail, according to the present invention, as a result of the memory devices A and B having the write permission flag and the read permission flag independently, and the address discriminating circuit discriminating the access target for the current address, The memory device can appropriately determine the case where the access reaches its own device, and facilitates processing such as diagnosis.
[0162]
According to the present invention, the state defining means defines the state of each memory device according to the combination of the write permission flag and the read permission flag, and the state transition means transitions each memory device between the states according to the setting by the processing device. Therefore, initial setting of each memory device, switching at the time of occurrence of an error, and the like can be appropriately performed.
[0163]
Further, according to the present invention, the common access space designation register of the memory devices A and B designates a common access space to be accessed by both the memory device A and the memory device B, and the individual space access designation register designates the memory device A or the memory device. As a result of specifying one of the individual access spaces to be accessed by one of the devices B, accurate memory state management becomes possible. Further, if the protection operation state is used at the time of diagnosis at the time of failure of the input / output control device, memory destruction due to malfunction of the input / output control device can be prevented.
[0164]
According to the present invention, the setting unit, the second setting unit, and the third setting unit appropriately set the values of the common access space designation register and the individual space designation register of each memory device. When the duplication operation is not required (when high reliability is not so required), the available memory capacity can be doubled by using each memory device separately.
[0165]
Further, according to the present invention, since the error injection means injects a pseudo error into an arbitrary area of each memory device, switching of the device can be forcibly generated, and the error injected area can be appropriately accessed. By doing so, the operations of the error detection circuit, the bus switching circuit, and the interrupt generation circuit can be confirmed, so that the reliability is improved.
[0166]
According to the present invention, the injection value setting means sets the address of the area into which the error is injected by the error injection means and the value of the data to be injected to different values in both memory devices, so that the error is forcibly generated. The identified memory device can be identified, and the device can be easily diagnosed.
[0167]
According to the present invention, when one of the memory devices detects an address error of the system bus, the other memory device stores an error-free address in its own device. Address to be specified. Further, in the memory device in which the address error has been detected, the writing to the own memory is prohibited, so that it is possible to avoid a situation in which the data of the erroneously designated address is destroyed.
[0168]
Further, according to the present invention, the system address error interrupt generating means generates an interrupt signal according to the detection result of the system address error detecting means, so that the error repairing means can also store the address stored in the error address storage means according to the interrupt signal. Error correction can be performed at the same time.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an overall configuration of a duplicated memory system according to a first embodiment of the present invention.
FIG. 2 is a diagram showing a configuration of an error detection circuit 6 and a CPU bus switching circuit 7 in FIG.
FIG. 3 is a diagram showing a correlation between an error occurrence state and a CPU bus switching
FIG. 4 is a timing chart showing the operation of the circuit of FIG. 2;
FIG. 5 is a diagram showing timings of a
FIG. 6 is a diagram showing details of a
FIG. 7 is a timing chart showing an operation of the
FIG. 8 is a diagram showing a system bus control circuit of a duplicated memory system according to a second embodiment of the present invention.
FIG. 9 is a diagram showing an operation when a part of the circuit in FIG. 8 fails.
FIG. 10 is a modified example of the system bus control circuit according to the second embodiment of the present invention.
11 is a diagram illustrating an operation when a part of the circuit in FIG. 10 has failed.
FIG. 12 is a diagram showing an arrangement of an error detection circuit and a status register in a redundant memory system according to a third embodiment of the present invention.
FIG. 13 is a diagram showing a method of determining a failure portion at the time of writing data to the memory of the redundant memory system in FIG. 12;
FIG. 14 is a diagram showing a method of determining a failure portion at the time of memory reading of the redundant memory system in FIG. 12;
FIG. 15 is a block diagram showing an overall configuration of a duplicated memory system according to a fourth embodiment of the present invention.
16 is a diagram showing a portion of the system
17 is a diagram showing an input switching portion from the
18 is a diagram showing switching of a data bus when a processing device in the duplicated memory system in FIG. 15 performs writing to the memory device.
19 is a diagram showing switching of a data bus when a processing device in the dual memory system in FIG. 15 performs reading from the memory device.
FIG. 20 is a block diagram showing an overall configuration of a duplicated memory system according to a fifth embodiment of the present invention.
21 is a configuration diagram around a CPU bus of the system
FIG. 22 is a configuration diagram around a system bus of the system
23 is a detailed diagram of a
FIG. 24 is a timing chart showing an operation of the circuit of FIG. 23;
FIG. 25 is a diagram showing a mode transition in the memory device in FIG. 20;
FIG. 26 is a block diagram showing an overall configuration of a redundant memory system according to a sixth embodiment of the present invention.
FIG. 27 is a diagram showing an internal configuration of a
FIG. 28 is a diagram showing details of an
FIG. 29 is a diagram showing allocation of an address space of the
FIG. 30 is a diagram showing a state transition of the
FIG. 31 is a diagram showing an error injection state in the memory by the error injection circuit 173 in FIG. 26;
FIG. 32 is a block diagram showing an overall configuration of a redundant memory system in which an address error detecting function is added to the sixth embodiment of the present invention.
FIG. 33 is a diagram showing an internal configuration of a
FIG. 34 is a diagram illustrating a data error detection method according to a seventh embodiment of the present invention.
FIG. 35 is a block diagram showing an overall configuration of a redundant memory system including a redundant
36 is a diagram showing the internal structure of the duplex
FIG. 37 is a diagram showing a duplex
[Explanation of symbols]
1 processing device (CPU), 2 control ROM, 3 system bus control device, 4 memory device, 5 master determination circuit, 6 error detection circuit, 7 CPU bus switching circuit, 8 CPU data bus, 9 low level interrupt, 10 high Level interrupt, 11 CPU address bus, 12 CPU bus switching signal line, 13 system bus, 19 error detection circuit, 20 normal signal line, 21 master mode input signal line, 30 data output timing clock signal, 31 3-state buffer, 34 Pull-up resistor, 35 EXOR gate, 36 AND gate, 38 master switching signal line, 41 master mode output signal line, 42 reset signal line, 51 data comparison circuit, 53 comparison error signal line, 60 to 62 driver / receiver, 63 Parity generation circuit, 64-66 parity check circuit, 7 to 69 status register, 70 system bus control device internal bus, 71 memory, 72 memory device internal bus, 73 selection circuit, 78 input data switching signal line, 80, 85 error detection circuit, 81 system bus switching signal line, 82, 83 system bus switching circuit, 84 memory error detection signal line, 100 to 102 mode setting circuit, 103 mode setting signal line, 104, 105 comparison circuit, 106 A bus permission signal line, 107 B bus permission signal line, 113 comparison error signal Line, 120 mode setting data signal line, 121 selector circuit, 123, 125 mode latch, 140 power-on processing, 141, 146, 148 mode D state, 142 diagnostic processing, 143, 151 mode A state, 144, 152 normal operation, 145 Failure occurred, 147 Repair / replacement processing, 1 9 diagnostic processing, 150 memory copy processing, 153, 161 mode B state, 156 mode C state, 157 normal operation, 162 memory write signal, 163 parity generation permission signal line, 170 parity permission flag, 172 address discrimination circuit, 173 error injection Circuit, 174 error address register, 175 error address signal line, 176 address error detection circuit, 177 input / output control device, 180 power off state, 181 disconnection operation state, 183 normal operation state, 184 restoration operation state, 185 protection operation state, 186 Card insertion / power-on operation, 187 Card removal / power-off operation, 188 Memory diagnosis operation, 189 Power-on diagnosis completion, 190 error / single data error operation, 191 Duplicate data error occurrence, 192 address error occurrence, 1 3 Repair completed, 194 Memory copy operation, 195 Unrecoverable error occurred, 196 Diagnosis completed, 197 Protection mode switching, 200 memory space, 201 I / O space, 202 common access space, 203 individual access space, 206 I / O space A, 207 I / O space B, 208 memory space A, 209 memory space B, 210 common space write, 211 individual space write, 212 common space read, 213 individual space read, 214 read enable signal line, 215 write enable signal line , 222 driver gate signal line, 223 memory read data signal line, 225 flag write signal line, 226 memory write data signal line, 228 common space access signal, 229 individual space access signal, 230 I / O address determination circuit, 231 common space Designated cash register 232 individual space specification register, 233, 234 comparison circuit, 235 common space specification register setting signal line, 236 individual space specification register signal line, 239 parity generation circuit, 240 address receiver, 241 error upper limit value register, 244 error upper limit value Register setting signal line, 245 error detection circuit, 246 error detection signal line, 247 error accumulation counter, 248 accumulation counter output signal line, 249 comparison circuit, 251 input address signal line, 253 error address output signal line, 254 selector circuit, 256 Error correction signal line, 260 input / output control device, 261 duplex bus conversion adapter, 262 conversion bus signal line, 263 address driver / receiver circuit, 264 data driver / receiver circuit, 265 address signal line, 266 address input Signal line, 267 data signal line, 268 data input signal line, 269 address parity generation circuit, 270 address parity generation / selection circuit, 271 data parity generation circuit, 272 data parity generation circuit / selection circuit, 274 address error signal line, 275 Data error signal line, 276 address area register, 277 address area signal line, 278 comparison circuit, 279 driver output enable signal line, 282 address area register setting signal line.
Claims (8)
メモリ装置A及びBはそれぞれ、
メモリに対する書き込みを許可する書込み許可フラグと、
メモリからの読み出しを許可する読出し許可フラグと、
現アドレスに対するアクセスの対象を判別するアドレス判別回路と、
を有し、
アドレス判別回路による判別結果と書込み許可フラグ及び読出し許可フラグの組合せに応じてデータの書込みまたは読出しを行うことを特徴とする二重化メモリシステム。A processing device for performing various processes, a pair of system bus controllers connected to the processing device via a CPU bus, and a pair of system buses respectively connected to the pair of system bus controllers; And a pair of memory devices A and B connected to both of the pair of system buses. In a write operation in the processing device, the system bus control device writes data from the processing device to the pair of memory devices simultaneously, and At the time of the read operation in the redundant memory system in which one of the system bus control devices sends data read from the corresponding memory device to the processing device,
The memory devices A and B are respectively
A write permission flag for permitting writing to the memory,
A read permission flag for permitting reading from the memory;
An address determination circuit for determining an access target for the current address;
Has,
A dual memory system, wherein data is written or read according to a combination of a result of determination by an address determination circuit and a write permission flag and a read permission flag.
該システムは、
前記書込み許可フラグ及び読出し許可フラグの組合せに従って前記の各メモリ装置の状態を定義する状態定義手段と、
処理装置による設定に従い、各メモリ装置を状態定義手段において定義された各状態間で遷移させる状態遷移手段と、
を備えたことを特徴とする二重化メモリシステム。The dual memory system according to claim 1,
The system is
State definition means for defining a state of each of the memory devices according to a combination of the write permission flag and the read permission flag;
State transition means for transitioning each memory device between the states defined by the state definition means according to the setting by the processing device;
A dual memory system comprising:
前記メモリ装置A及びBはそれぞれ、
メモリ装置Aとメモリ装置Bがともにアクセス対象となる共通アクセス空間を指定する共通アクセス空間指定レジスタと、
メモリ装置Aまたはメモリ装置Bのいずれか一方がアクセス対象となる個別アクセス空間を指定する個別空間アクセス指定レジスタと、
を備えたことを特徴とする二重化メモリシステム。The dual memory system according to claim 1,
The memory devices A and B are respectively
A common access space designation register for designating a common access space to be accessed by both the memory device A and the memory device B;
An individual space access designation register that designates an individual access space to be accessed by one of the memory device A and the memory device B;
A dual memory system comprising:
該システムは、
メモリ装置Aとメモリ装置Bの共通アクセス空間指定レジスタの値を同じアドレスに設定する設定手段と、
メモリ装置Aの個別空間指定レジスタの値とメモリ装置Bの個別空間指定レジスタの値を異なったアドレスに設定する第二の設定手段と、
これらの設定手段によって設定されたアドレスを任意のタイミングで再設定する第三の設定手段と、
を備え、
メモリ装置を追加することなく使用可能なメモリ容量の倍増を可能とすることを特徴とする二重化メモリシステム。The dual memory system according to claim 3,
The system is
Setting means for setting the value of the common access space designation register of the memory device A and the memory device B to the same address;
Second setting means for setting the value of the individual space designation register of the memory device A and the value of the individual space designation register of the memory device B to different addresses;
Third setting means for resetting the address set by these setting means at an arbitrary timing,
With
A duplicated memory system characterized in that usable memory capacity can be doubled without adding a memory device.
該システムは、
各メモリ装置の任意領域に擬似的なエラーを注入するエラー注入手段と、
エラーの注入された領域をアクセスしてエラーの状態を検査するエラー状態検査手段と、
を有し、
システム各部の機能確認を可能とすることを特徴とする二重化メモリシステム。The dual memory system according to claim 1,
The system is
Error injection means for injecting a pseudo error into an arbitrary area of each memory device,
Error state checking means for accessing an area where an error has been injected and checking an error state;
Has,
A redundant memory system characterized in that functions of each part of the system can be confirmed.
該システムは、
前記エラー注入手段によってエラーが注入される領域のアドレス及び注入されるデータの値を両メモリ装置で異なる値に設定する注入値設定手段、
を有することを特徴とする二重化メモリシステム。The dual memory system according to claim 5,
The system is
Injection value setting means for setting an address of an area where an error is injected by the error injection means and a value of data to be injected to different values in both memory devices;
A dual memory system comprising:
前記各メモリ装置は、
システムバスのアドレスエラーを検出するシステムアドレスエラー検出手段と、
システムアドレスエラー検出手段の検出結果を他方のメモリ装置に通知するエラーアドレス信号線と、
他方のメモリ装置から通知されるエラーアドレス信号線の状態に従い、他方のメモリ装置でエラーが発生した際、自装置でエラーのないアドレスを記憶するエラーアドレス記憶手段と、
自装置でアドレスエラーが検出された際、自装置のメモリへの書込みを禁止する書込み禁止手段と、
を備えたことを特徴とする二重化メモリシステム。The dual memory system according to claim 1,
Each of the memory devices,
System address error detecting means for detecting a system bus address error;
An error address signal line for notifying the detection result of the system address error detection means to the other memory device;
Error address storage means for storing an error-free address in its own device when an error occurs in the other memory device according to the state of the error address signal line notified from the other memory device;
Write-inhibiting means for inhibiting writing to the memory of the own device when an address error is detected in the own device;
A dual memory system comprising:
該システムは、
前記システムアドレスエラー検出手段における検出結果に従って割込み信号を生成するシステムアドレスエラー割込み生成手段と、
システムアドレスエラー割込みが発生したときに前記エラーアドレス記憶手段に格納されたアドレスをもとにエラー修復を行うエラー修復手段と、
を備えたことを特徴とする二重化メモリシステム。The dual memory system according to claim 7,
The system is
System address error interrupt generating means for generating an interrupt signal according to the detection result in the system address error detecting means,
Error repair means for performing error repair based on an address stored in the error address storage means when a system address error interrupt occurs;
A dual memory system comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003126673A JP2004005627A (en) | 2003-05-01 | 2003-05-01 | Duplex memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003126673A JP2004005627A (en) | 2003-05-01 | 2003-05-01 | Duplex memory system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14491094A Division JP3436974B2 (en) | 1994-06-27 | 1994-06-27 | Redundant memory system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004005627A true JP2004005627A (en) | 2004-01-08 |
Family
ID=30438036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003126673A Pending JP2004005627A (en) | 2003-05-01 | 2003-05-01 | Duplex memory system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004005627A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1326048C (en) * | 2005-05-31 | 2007-07-11 | 威盛电子股份有限公司 | Memory access device and method |
JP2009288987A (en) * | 2008-05-28 | 2009-12-10 | Fujitsu Ltd | Method for controlling connecting apparatus in information processing system, control program, and information processing apparatus |
-
2003
- 2003-05-01 JP JP2003126673A patent/JP2004005627A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1326048C (en) * | 2005-05-31 | 2007-07-11 | 威盛电子股份有限公司 | Memory access device and method |
JP2009288987A (en) * | 2008-05-28 | 2009-12-10 | Fujitsu Ltd | Method for controlling connecting apparatus in information processing system, control program, and information processing apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1019823B1 (en) | Redundant controller diagnosis using a private lun | |
JP2005302024A (en) | Method and system of arbitration, and program storage device (method and system of arbitration for redundant controller by output interlock mechanism and automatic switching function) | |
US4792955A (en) | Apparatus for on-line checking and reconfiguration of integrated circuit chips | |
JPS6229827B2 (en) | ||
US6785763B2 (en) | Efficient memory modification tracking with hierarchical dirty indicators | |
US8166273B2 (en) | Degeneration method and information processing apparatus | |
JPH06342381A (en) | Majority decision circuit, control unit, and semiconductor integrated circuit for majority decision | |
US6961826B2 (en) | Processor state reintegration using bridge direct memory access controller | |
US6950907B2 (en) | Enhanced protection for memory modification tracking with redundant dirty indicators | |
JP3436974B2 (en) | Redundant memory system | |
US6785777B2 (en) | Control logic for memory modification tracking with hierarchical dirty indicators | |
JP2004005627A (en) | Duplex memory system | |
US6981172B2 (en) | Protection for memory modification tracking | |
JP2004005628A (en) | Duplex memory system | |
JP2003345676A (en) | Dual-memory system | |
JP2003337758A (en) | Duplexed memory system | |
JP3139738B2 (en) | Logic circuit | |
JPS6229820B2 (en) | ||
JP5632804B2 (en) | Control device with bus diagnostic function | |
JPH07182253A (en) | Bus adaptor and bus multiplexing system | |
JPH11149457A (en) | Cpu degrading system for cluster connection multi-cpu system | |
WO2019211927A1 (en) | Memory diagnosis device and memory diagnosis method | |
JPH0922387A (en) | Memory unit | |
JPH05298193A (en) | Memory access fault detecting circuit | |
JP3630523B2 (en) | Bus transfer processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060117 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060523 |