(57)【要約】【課題】冗長系を持つ書き込み可能なメモリに対する書き込み動作において、書き込み動作が一度中断した後に行う再書き込み時間を短縮する。【解決手段】中央処理部３１から第１メモリ部１１にストレージデバイス３３に保存されているプログラムを転送している際、第１メモリ部１１が第２メモリ部１１に系切替されて第１メモリ部１１へのプログラム書き込みが中断した場合、第１系切替部１３からの制御信号（ＡＣＴ信号）により、中央制御部３１は、プログラム書き込み動作が正常終了しなかったことを示すフラグ３２ａを中央処理部周辺部３２内に立てる。中央処理部３１は、第１メモリ部１１に再度プログラムを書き込む際、フラグ３２ａをみて前回のプログラム書き込みが正常に終了しなかったことを認識し、第１記憶部１２に保管している前回最後に書き込み動作を行っていたアドレスを読み出し、そのアドレスからプログラム書き込みを開始する。【選択図】  図１
2005004619.tif 000002
【特許請求の範囲】
【請求項１】
同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部と、
前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され、前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部とを備え、
前記記憶部は、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第１のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする冗長系メモリ。
【請求項２】
前記第一のメモリ部へのデータ書き込み途中に前記第二のメモリ部への切り替えが生じたときに該切り替え状態に関する状態信号を出力する出力手段をさらに有することを特徴とする請求項１記載の冗長系メモリ。
【請求項３】
前記第一のメモリ部及び前記第二のメモリ部は、冗長系メモリを成す現用系及び予備系として、該第一のメモリ部が該現用系のときに該第二のメモリ部が該予備系になり且つ該第一のメモリ部が該予備系のときに該第二のメモリ部が現用系になるように互いに系切替可能に構成され、
前記出力手段は、前記第一のメモリ部及び前記第二のメモリ部の互いの系切替発生時に該切り替え状態に関する状態信号を出力する系切替部を有することを特徴とする請求項２記載の冗長系メモリ。
【請求項４】
前記所定のデータは、プログラムであり、前記複数のメモリ部は、該プログラムを格納するプログラムメモリ部であることを特徴とする請求項１乃至３のいずれか１項に記載の冗長系メモリ。
【請求項５】
請求項１乃至４のいずれか１項に記載の冗長系メモリと、
前記冗長系メモリへのデータ書き込みを制御する制御部とを備えたことを特徴とするコンピュータシステム。
【請求項６】
前記制御部は、
前記第一のメモリ部から前記第二のメモリ部への切り替え時に、該第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持する手段と、
前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断する判断手段と、
前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させるデータ書き込み制御手段とを有することを特徴とする請求項５記載のコンピュータシステム。
【請求項７】
前記データの再書き込みが必要とされる条件は、
前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、
前記データ書き込み制御手段は、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させることを特徴とするコンピュータシステム。
【請求項８】
前記制御部は、前記複数のメモリ部に通信可能に接続されるインターフェース部内に搭載されることを特徴とする請求項５乃至７のいずれか１項に記載のコンピュータシステム。
【請求項９】
前記複数のメモリ部と前記制御部は、マザーボード上に搭載されることを特徴とする請求項５乃至８のいずれか１項に記載のコンピュータシステム。
【請求項１０】
同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部を備えた冗長メモリの再書き込み方法において、
前記冗長メモリに、前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され且つ前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部を用意し、
前記記憶部が、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第１のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする冗長系メモリの再書き込み方法。
【請求項１１】
前記複数のメモリ部の切り替え時に該切り替え状態に関する状態信号を出力する手段と、前記冗長系メモリのデータ書き込みを制御する制御部とを用意し、
前記制御部が、前記状態信号に基づき、前記第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持し、前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断し、前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させることを特徴とする冗長メモリの再書き込み方法。
【請求項１２】
前記データの再書き込みが必要とされる条件は、
前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、
前記制御部が、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させることを特徴とする請求項１１記載の冗長メモリの再書き込み方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムなどのデータ保存用のメモリを複数設けて物理的に冗長に構成した冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステムに関し、特にメモリへのプログラム転送中断後の再書き込み動作の工夫に関する。
【０００２】
【従来の技術】
図４を参照して、プログラムを保存するメモリが物理的に冗長構成を持つ従来のコンピュータシステムの例を説明する。
【０００３】
図４に示すコンピュータシステムは、コンピュータを構成するマザーボード１００上に、機能別に分けた複数のカード１１０…１１０（以下、「機能別カード１…Ｎ」）を実装した装置構成を持つものである。このマザーボード１００上には、機能別カード１…Ｎのほか、プログラム転送用のインターフェース（Ｉ／Ｆ）を持つカード１２０（以下、「プログラムＩ／Ｆ部」）と、プログラム保存・転送用のランダム・アクセス・メモリ（ＲＡＭ）や不揮発性メモリ（ＲＯＭ）等のメモリを有する２つのカード１３０、１３０（以下、「プログラムメモリ部１、２」とが、それぞれ１系統の配線（アドレスバス、データバス、制御線）を介して接続される。
【０００４】
各機能別カード１…Ｎには、各機能別に分けたカード用プログラムが実装される。このカード用プログラムは、プログラムＩ／Ｆ部１２０内の記憶メディア（図示しない）から、バスを介して２つのプログラムメモリ部１、２に転送、保管され、そこからバスを介して機能別カード１…Ｎに転送される。
【０００５】
２つのプログラムメモリ部１、２は、図４の例では、例えば現用系と予備系を成す冗長系メモリ１４０を構成し、いずれか一方が現用系、いずれか他方が予備系となるように相互に系切替可能に動作し、いずれもプログラムＩ／Ｆ部１２０から転送される同じプログラムを保存する。
【０００６】
上記構成の場合、マザーボード１００上におけるアドレスバス、データバス、及び制御線の配線は、１系統のみで配線されるため、冗長系メモリ１４０を成すプログラムメモリ部１、２に対し、プログラムＩ／Ｆ部１２０内の記憶メディア上に保管されたプログラムを転送するプログラム転送動作では、冗長系メモリ１４０の現用系と予備系に割り当てられた２つのプログラムメモリ部１、２へのプログラム書き込み処理を同時に実行できず、どちらか一方から先に実行される。このプログラム書き込み処理は、プログラムの先頭から開始され、プログラム転送の終了で書き込み完了となる。２つのプログラムメモリ部１、２の一方（現用系）でプログラム書き込み処理が完了すると、その他方（予備系）で同じ処理が実行される。
【０００７】
なお、本発明に関連する先行技術文献としては以下のものがある。
【０００８】
【特許文献１】
特開平０５−１５１１０８号公報
【特許文献２】
特開平０６−１３９２１５号公報
【特許文献３】
特開平０６−３４８６０４号公報
【０００９】
【発明が解決しようとする課題】
しかしながら、上述した従来の冗長系メモリを用いたシステムでは、何らかの要因で、プログラムの書き込み途中のプログラムメモリ部に対して系切替が発生した場合、書き込み途中になったプログラムメモリ部へ再度プログラムを書き込む処理が実行されるが、その際、プログラムの先頭から書き直す必要があるという問題があった。この理由は、任意のタイミングで系切替が発生してプログラムの書き込みが中断した場合、システム側はそのプログラム転送の開始と終了を認識するのみであり、プログラムメモリ部のどのアドレスまでプログラムを書き込んだかが不明であるためである。
【００１０】
本発明は、このような事情を鑑みてなされたもので、プログラムなどのデータを書き込む冗長系メモリにおいて、データ書き込み動作が一度中断した後に行う再書き込み時間を短縮することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的達成のため、本発明は、メモリにプログラムなどのデータの再書き込みする際、既に途中まで書き込まれている場合には、その続きからデータの再書き込みを行い、これにより、プログラムの再書き込みに必要なデータの転送時間を短縮するものである。このため、メモリ部のアドレスバスを介しアドレスを一時記憶する機能（記憶部）を設けている。この記憶部は、メモリ部にデータを書き込む際、必ず最新のアドレスの一時記憶を行う動作を実行する。従って、任意のタイミングでメモリ部の系切替が発生して現用系への書き込みが中断したときに、その次にデータの再書き込みを実行する際、記憶部に一時記憶されたアドレスを読み出すことにより、切替直前に現用系メモリ部へ書き込もうとしていたアドレスが認識できる。これにより、元現用系メモリ部へのデータ再書き込み時に、記憶部に一時記憶されたアドレスから該データを書き込むことにより、わざわざデータの先頭から書き込む必要がなくなり、その結果、転送書き込み時間の短縮を行うことができる。
【００１２】
例えば、本発明は、メモリ機能の冗長構成を持つ装置又はその再書き込み方法において、メモリにプログラムなどのデータを書き込み中に発生する系切替により該データの再書き込みが必要な条件の際、書き込み途中だったメモリのアドレスを一時記憶する構成を設けることが好ましい。前記再書き込みが必要な条件において、一時記憶したアドレスからデータの再書き込みを行うことが可能である。また、メモリにデータを書き込む際、前記再書き込みが必要な条件か、又は、アドレスの先頭から通常にデータを書き込む条件かどうかをオペレータを介さずに自動で判断するようにしてもよい。さらに、冗長系を持つメモリが常に一方が現用系、他方が予備系に切り替わることができ且つ系切替発生時に状態信号を制御部に出力することで、メモリ部へのデータ書き込み動作が正常終了したかどうか判断するためのデータ書き込み状態フラグの操作を行い、該データの再書き込みが必要な条件か、又は、アドレスの先頭から通常にプログラムを書き込む条件かを自動で判断するようにしてもよい。
【００１３】
本発明は、このような着想の基に完成されたものである。
【００１４】
すなわち、本発明にかかる冗長メモリは、同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部と、前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され、前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部とを備え、前記記憶部は、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第１のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする。
【００１５】
本発明において、前記第一のメモリ部へのデータ書き込み途中に前記第二のメモリ部への切り替えが生じたときに該切り替え状態に関する状態信号を出力する出力手段をさらに有してもよい。
【００１６】
前記第一のメモリ部及び前記第二のメモリ部は、冗長系メモリを成す現用系及び予備系として、該第一のメモリ部が該現用系のときに該第二のメモリ部が該予備系になり且つ該第一のメモリ部が該予備系のときに該第二のメモリ部が現用系になるように互いに系切替可能に構成され、前記出力手段は、前記第一のメモリ部及び前記第二のメモリ部の互いの系切替発生時に該切り替え状態に関する状態信号を出力する系切替部を有してもよい。
【００１７】
前記所定のデータは、プログラムであり、前記複数のメモリ部は、該プログラムを格納するプログラムメモリ部であってもよい。
【００１８】
本発明にかかるコンピュータシステムは、上記いずれかの冗長系メモリと、該冗長系メモリへのデータ書き込みを制御する制御部とを備えたことを特徴とする。
【００１９】
前記制御部は、前記第一のメモリ部から前記第二のメモリ部への切り替え時に、該第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持する手段と、前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断する判断手段と、前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させるデータ書き込み制御手段とを有してもよい。
【００２０】
前記データの再書き込みが必要とされる条件は、前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、前記データ書き込み制御手段は、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【００２１】
前記制御部は、前記複数のメモリ部に通信可能に接続されるインターフェース部内に搭載されてもよい。
【００２２】
前記複数のメモリ部と前記制御部は、マザーボード上に搭載されてもよい。
【００２３】
本発明にかかる冗長メモリの再書き込み方法は、同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部を備え構成において、前記冗長メモリに、前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され且つ前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部を用意し、前記記憶部が、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第１のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする。
【００２４】
本発明において、前記複数のメモリ部の切り替え時に該切り替え状態に関する状態信号を出力する手段と、前記冗長系メモリのデータ書き込みを制御する制御部とを用意し、前記制御部が、前記状態信号に基づき、前記第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持し、前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断し、前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【００２５】
前記データの再書き込みが必要とされる条件は、前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、前記制御部が、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態について、図１〜図３を参照して詳細に説明する。
【００２７】
図１を参照すると、本発明の一実施の形態としての冗長系メモリ及びその系切替時再書き込み方法を用いたコンピュータシステムが示されている。このコンピュータシステムは、前述したマザーボードを有する構成でも、その他のものでも、要するに本発明の趣旨を逸脱しない範囲内のものであれば、いずれでも適用可能である。
【００２８】
図１に示すコンピュータシステムは、冗長系メモリ４として系切替可能に動作する２つのプログラムメモリ部（以下、「第１及び第２プログラムメモリ部１、２」）と、この第１及び第２プログラムメモリ部１、２との間で所定のバスを介して電気的に接続されるプログラムＩ／Ｆ（インターフェース）部３とを備える。バスには、各種制御信号（制御パルス）用の信号線を成す制御線Ｂ１と、第１及び第２プログラムメモリ部１、２に保存すべきプログラム等のデータ（ｄａｔａ）用のデータバスＢ２と、データ読み出し／書き込みアドレス（ａｄｄｒｅｓｓ）用のアドレスバスＢ３とが含まれる。
【００２９】
図１に示す例では、制御線Ｂ１上の各種制御信号として、チップ選択信号（以下、「ＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）信号」）、出力制御信号（以下、「ＯＥ（Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ）信号」）、読み出し／書き込み信号（以下、「Ｒ（Ｒｅａｄ）／Ｗ（Ｗｒｉｔｅ）信号」と略し、そのイネーブル（Ｅｎａｂｌｅ）状態に対応する論理Ｈｉｇｈ又はＬｏｗレベルの制御信号を「ＷＥ（Ｗｒｉｔｅ  Ｅｎａｂｌｅ）信号」と呼ぶ）、現用系／予備系の系切替状態を示す状態信号（以下、「ＡＣＴ（Ａｃｔｉｏｎ）信号」）、クロック（ｃｌｋ）信号が含まれる。
【００３０】
第１及び第２プログラムメモリ部１、２は、一方が現用系、他方が予備系として互いに系切替可能に動作する冗長系メモリ４を構成するもので、第１及び第２メモリ部１１、２１と、第１及び第２記憶部１２、２２と、第１及び第２系切替部１３、２３とを有する。
【００３１】
第１及び第２メモリ部１１、２１は、ＲＡＭやＲＯＭ等のメモリで構成され、プログラムＩ／Ｆ部３との間でデータバスＢ２経由でプログラム等のデータを入出力する入出力端子、プログラムＩ／Ｆ部３との間でアドレスバスＢ３経由でアドレスを入力する入力端子のほか、プログラムＩ／Ｆ部３との間で制御線Ｂ１経由でＣＳ信号、ＯＥ信号、及びＲ／Ｗ信号（ＷＥ）の各制御信号を入出力する入出力端子が設けられる。
【００３２】
第１及び第２メモリ部１１、２１は、図１に示す例では、プログラムＩ／Ｆ部３との間で、アドレスバスＢ３を介しアドレス信号を、またデータバスＢ２を介しデータ、さらに制御線Ｂ１を介してＲ／Ｗ信号、ＣＳ信号、及びＯＥ信号等の各種信号を送受し、中央処理部３１による制御の基で、プログラムＩ／Ｆ部３のストレージデバイス３３から転送されるプログラムを保存する。
【００３３】
第１及び第２記憶部１２、２２は、例えばアドレスデコーダとフリップフロップで構成されるが、この構成に限定されず、例えばＲＡＭに置き換えることもできる。この第１及び第２記憶部１２、２２には、プログラムＩ／Ｆ部３との間でデータバスＢ２経由でデータを入出力する入出力端子、プログラムＩ／Ｆ部３との間でアドレスバスＢ３経由でアドレスを入力する入力端子のほか、プログラムＩ／Ｆ部３から制御線Ｂ１経由でＣＳ信号、ＯＥ信号、クロック（ｃｌｋ）信号の各制御信号を入出力する入出力端子が設けられる。このうち、クロック信号の入力端子は、第１及び第２メモリ部１１、２１の入力端子に接続される制御線Ｂ１のＲ／Ｗ信号線に並列に接続される。
【００３４】
この第１及び第２記憶部１２、２２は、制御線Ｂ１を介しＲ／Ｗ信号を入力し、このＲ／Ｗ信号を保持すべきアドレスの入力タイミングを決めるクロック信号とすることにより、中央処理部３１から第１及び第２プログラムメモリ１、２に転送されるプログラムが第１及び第２メモリ部１１、２１に書き込まれる毎にそのアドレス（最新値）をデータとして所定のメモリ領域に一時記憶する。
【００３５】
また、この第１及び第２記憶部１２、２２は、システム内のメモリ管理において第１及び第２メモリ部１１、２１とは同一メモリマップ上で異なるアドレス空間に割り当てられており、中央処理部３１からアドレスバスＢ３経由で第１及び第２記憶部１２、３３用のアドレスを指定することが可能となっている。さらに、この第１及び第２記憶部１２、２２は、中央処理部３１から制御線Ｂ１経由でＯＥ信号のｅｎａｂｌｅ／ｄｉｓａｂｌｅ状態に対応する論理Ｌｏｗ／Ｈｉｇｈレベルの切り替えによるデータ出力制御も可能となっている。これにより、中央処理部３１からの指定アドレスにて第１又は第２記憶部１２、２２が指定され、且つ、中央処理部３１からのＣＳ信号がｅｎａｂｌｅ状態になるように制御されたときに、第１又は第２記憶部１２、２２は、一次記憶しているアドレス情報をデータバスＢ２に出力する。
【００３６】
さらに、第１及び第２系切替部１３、２３は、第１及び第２プログラムメモリ部１、２の間で、一方が運用系の時は他方が予備系に切り替わるようにＡＣＴ信号出力の論理レベルが互いに反転するように接続される。また、予備系に切り替わったとき、中央処理部４に対してＡＣＴ信号を出力し、これにより予備系への書き込み動作を中止させるようになっている。
【００３７】
具体的には、第１及び第２メモリ部１１、２１が必ず現用系と予備系のペアになるように、それぞれのＡＣＴ信号出力の論理レベルが互いに反転するように接続する。図１に示す例では、プログラムＩ／Ｆ部３の間で制御線Ｂ１経由でＡＣＴ信号を出力する出力端子が設けられ、その出力端子にＮＡＮＤ回路１５、２５を接続している。ＮＡＮＤ回路１５、２５は、２つの入力端子を有し、その一方には、プルアップ（Ｐｕｌｌ  ＵＰ）回路１６、２６及びリセットスイッチ１４、２４が接続され、その他方（スタンバイ（ＳＴＢＹ）入力端子）には、図１に示すように、２つのプログラムメモリ部１、２の間で、第１及び第２系切替部１３、２３の出力端子に接続されるＡＣＴ信号線が互いにたすき掛けで反対側に並列接続される。
【００３８】
プルアップ回路１６、２６は、例えばプルアップ抵抗を高電位側の電源部に接続した構成で、リセットスイッチ１４、２４が動作ＯＦＦ状態のときに高電位に対応する論理Ｈｉｇｈレベルの信号を、またリセットスイッチ１４、２４が動作ＯＮ状態のときにグランド（ＧＮＤ）電位（０Ｖ）に対応する論理Ｌｏｗレベルの信号をそれぞれＮＡＮＤ回路１５、２５に入力する。
【００３９】
これにより、２つのＮＡＮＤ回路１５、２５から出力されるＡＣＴ信号の論理レベルは、一方がＨｉｇｈレベルになれば他方がＬｏｗレベルとなり、その逆に一方がＬｏｗレベルになれば他方がＨｉｇｈレベルとなるように互いに反転して動作する。本実施形態では、ＡＣＴ信号の論理レベルがＬｏｗレベルのときに運用系の状態であり、となり、にあり、Ｈｉｇｈレベルのときに予備系の状態であることをシステム内で認識するように設定される。
【００４０】
例えば、第１プログラムメモリ部１が現用系、第２プログラムメモリ部２が予備系の場合、第１系切替部１３のＡＣＴ信号は論理Ｌｏｗレベル、第２系切替部２３のＡＣＴ信号は論理Ｈｉｇｈレベルをそれぞれ示す。この状態で、第１プログラムメモリ部１が予備系、第２プログラムメモリ部２が現用系に切り替わったとき、第１系切替部１３のＡＣＴ信号は論理Ｈｉｇｈレベルに変化し、これと逆に、第２系切替部２３のＡＣＴ信号は論理Ｌｏｗレベルに変化する。中央処理部３１は、第１及び第２系切替部１３、２３からのＡＣＴ信号の論理レベルを基に、現用系／予備系の状態を判断し、現用系に対してはプログラム書き込み動作を実行し、予備系に対してはプログラム書き込み動作を中止するように、ＣＳ信号のｅｎａｂｌｅ／ｄｉｓａｂｌｅ状態を制御する。
【００４１】
プログラムＩ／Ｆ部３は、全体制御を担うＣＰＵ（中央演算処理部）を有するコントローラ又はプロセッサ等で構成される中央処理部３１と、この中央処理部に接続される中央処理部周辺部３２及びストレージデバイス３３とを含む。
【００４２】
中央処理周辺部３２は、ＣＰＵ（中央演算処理部）、ＲＯＭ（リード・オンリー・メモリ）、ＲＡＭ（ランダム・アクセス・メモリ）、外部インタフェースから構成される。このプログラムＩ／Ｆ部３内部のハードウエア構成は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成を省略する。
【００４３】
この中央処理周辺部３２には、第１及び第２プログラムメモリ部１、２へのプログラム書き込み完了状態を示すフラグ３２ａが設けられる。フラグ３２ａは、例えば、プログラム書き込みが正常終了したときは「０」の状態のままであり、正常終了しないで書き込み途中で中止したときは「１」の状態となる（フラグ３２ａを立てる）ように設定される。フラグ３２ａを立てるか否かの判断は、第１及び第２系切替部１３、２３からのＡＣＴ信号の論理レベルの反転状態を基に行われる。すなわち、ＣＳ信号がｅｎａｂｌｅ状態にある現用系のメモリ部へのプログラム転送中に、リセットスイッチをＯＮにする等の要因で、系切替部からのＡＣＴ信号の論理レベルが現用系を示すＬｏｗレベルから予備系を示すＨｉｇｈレベルに反転した場合は、プログラム書き込みが正常終了しないで書き込み途中で中止したと判断する。
【００４４】
ストレージデバイス３３は、不揮発な性質を持つ記憶メディア等で構成され、第１及び第２メモリ部１１、２１にデータバスＢ２経由で転送すべきプログラムを保存している。
【００４５】
中央処理部３１は、ストレージデバイス３３から読み出したプログラムを読み出して、データバスＢ２経由で第１及び第２メモリ部１１、２１に転送し、その転送の完了状態を、第１及び第２系切替部１３、２３からのＡＣＴ信号を基に判断し、中央処理周辺部３２内のフラグ３２ａに保存する。
【００４６】
次に、本実施形態の動作について図２及び図３を参照して説明する。
【００４７】
図２は、本実施形態の動作を説明するタイミングチャート、図３は、システム内のメモリマップを示す。ここで、図３に示すように、システム内のメモリマップは、説明を簡単にするため、アドレス「０ｘ０」〜「０ｘ３」（図２では「０」〜「３」）がメモリ部領域、アドレス「０ｘＥ」〜「０ｘＦ」（図２では「Ｆ」）が記憶部領域にそれぞれ設定されているものとする。また、初期状態では、第１プログラムメモリ部１が現用系、第２プログラムメモリ部２が予備系にそれぞれ設定される。図２に示すタイミングチャートは、現用系である第１プログラムメモリ部１の各部動作を主に示す。
【００４８】
まず、図２において、時刻ｔ０〜ｔ１の期間では、中央処理部３１は、第１及び第２系切替部１３、２３からのＡＣＴ信号を受信し、その論理レベルを基に現用系／予備系を判断する。本実施形態では、第１プログラムメモリ部１が現用系であるため、その第１系切替部１３から論理ＬｏｗレベルのＡＣＴ信号を受信し、これを基に現時点で第１プログラムメモリ部１が現用系である旨を認識し、その現用系である側の第１メモリ部１１に対しプログラム転送の準備を行なう。
【００４９】
すなわち、中央処理部３１は、第１メモリ部１１に対し、制御線Ｂ１上のＣＳ信号をｅｎａｂｌｅ状態にして、アドレスバスＢ３上に第１メモリ部１１のアドレスを出力し、データバスＢ２上にストレージデバイス３３に保存されているプログラムのデータを出力し、制御線Ｂ１上のＷ／Ｒ信号をＷＥ信号状態にする。この時点では、第１メモリ部１１に出力するＯＥ信号は、ｄｉｓａｂｌｅ状態のままとする。
【００５０】
これにより、第１メモリ部１１では、ＷＥ信号毎にアドレスバスＢ３上のアドレスで指定された記憶領域にデータバスＢ２上のプログラムのデータを書き込む。図２及び図３に示す例では、時刻ｔ０〜ｔ１の期間で、中央処理部３１からアドレス「０ｘ０」〜「０ｘ２」（「０」〜「２」）が順次出力され、ＷＥ信号毎に第１メモリ部１１のアドレス「０ｘ０」〜「０ｘ２」（「０」〜「２」）に対応する記憶領域上にプログラムのデータが書き込まれる。
【００５１】
上記第１メモリ部１１へのプログラム書き込み動作と並行して、中央処理部３１は、第１記憶部１２に対し、制御線Ｂ１上のＣＳ信号をｅｎａｂｌｅ状態にする。
【００５２】
これにより、第１記憶部１２では、クロック信号として入力される上記ＷＥ信号毎にアドレスバスＢ３上のアドレスをラッチしそのアドレス情報をアドレス「０ｘＦ」に対応する記憶領域に一時記憶すると共に、新たなアドレスをラッチする度に一時記憶しているアドレスを順次更新していく。図２及び図３に示す例では、時刻ｔ０〜ｔ１の期間で、中央処理部３１からアドレス「０ｘ０」〜「０ｘ２」（「０」〜「２」）が順次一時記憶、更新される。時刻ｔ１の時点では、最新のアドレス「０ｘ２」（「２」）が一次記憶されている。
【００５３】
上記状態から時刻ｔ１に達し、現用系である側の第１系切替部１３に対してリセットスイッチ１４がＯＮにされ、Ｒｅｓｅｔ信号が入力されたとする。
【００５４】
この場合、第１系切替部１３のＮＡＮＤ回路１５から出力されるＡＣＴ信号は、第２系切替部２３からの論理ＨｉｇｈレベルのＡＣＴ信号と、リセットスイッチ１４からの論理Ｌｏｗレベルに対応するＲｅｓｅｔ信号との入力値に基づき、論理Ｌｏｗレベルから論理Ｈｉｇｈレベルに切り替わる。この論理ＨｉｇｈレベルのＡＣＴ信号は、第２系切替部２３及び中央処理部３１に出力される。これにより、第２系切替部２３から出力されるＡＣＴ信号は、論理Ｈｉｇｈレベルから論理Ｌｏｗレベルに変化し、中央処理部３１では、第１プログラムメモリ部１が現用系から予備系に、また第２メモリプログラム部２が予備系から現用系に切り替わったことを認識する。
【００５５】
このように第１及び第２系切替部１３、２３からのＡＣＴ信号により、第１プログラムメモリ部１が予備系に、また第２プログラムメモリ部２が現用系にそれぞれ切り替わったことを認識した中央処理部３１は、その時点では第１メモリ部１１へのＣＳ信号がｅｎａｂｌｅ状態であることから、第１メモリ部１１へのプログラム転送が正常終了せずに中断したと判断し、中央処理周辺部３２内のフラグ３２ａを立てる（図２の例では「０」→「１」参照）と共に、第１メモリ部１１へのＣＳ信号をｅｎａｂｌｅ状態からｄｉｓａｂｌｅ状態にする。これにより、第１メモリ部１１では、プログラム書き込み動作が中止される。
【００５６】
上記動作と併行して、中央処理部４は、第１記憶部１２に対し、そのＣＳ信号をｅｎａｂｌｅ状態からｄｉｓａｂｌｅ状態にする。これにより、第１記憶部１２では、最後に書き込む動作を行っていたアドレスを保持する。図２及び図３の例では、第１記憶部１２にはアドレス「０ｘ２」（「２」）が保持される。
【００５７】
上記動作により、時刻ｔ１の時点で、予備系から現用系に切り替わった第２プログラムメモリ部２に対し、データ書き込み動作が開始される。すなわち、中央処理部４は、第２メモリ部２１のＣＳ信号をｅｎａｂｌｅ状態にし、第２記憶部２２のＣＳ信号をｅｎａｂｌｅ状態にして、上記第１メモリ部１１の場合と同様に、第２メモリ部２１へのプログラム書き込みを開始する。この動作は、時刻ｔ１〜ｔ２の期間で実行され、図２及び図３の例では、第２メモリ部２１のアドレス「０ｘ０」〜「０ｘ３」（「０」〜「３」）の記憶領域上にプログラムが書き込まれる。
【００５８】
次いで、時刻ｔ２に達し、第２メモリ部２１に対するプログラム書き込み動作を終了すると、中央処理部３１は、第２メモリ部２１及び第２記憶部２２に対するＣＳ信号をｄｉｓａｂｌｅ状態にすると共に、中央処理部３１は、中央処理周辺部３２に保持した第１メモリ部１１へのプログラム書き込みが正常終了しているか否かをフラグ３２ａの状態（「０」又は「１」）を参照して判断する。図２の例では、フラグ３２ａは「１」を示しているので、中央処理部３１は、プログラム書き込みが中断していることを認識する。これにより、中央処理部３１は、第１メモリ部１１に対するプログラム書き込みの準備を開始する。
【００５９】
すなわち、中央処理部３１は、第１記憶部１２へのＣＳ信号をｅｎａｂｌｅ状態にする。このとき、第１メモリ部１１へのＣＳ信号は、ｄｉｓａｂｌｅ状態のままとする。
【００６０】
次いで、中央処理部３１は、アドレスバスＢ３上に第１記憶部１２用のアドレスを出力する。図２及び図３の例では、第１記憶部１２用のアドレスとして、「０ｘＦ」（「Ｆ」）が出力される。
【００６１】
次いで、第１記憶部１２は、中央処理部３１からアドレスバスＢ３上に出力されるアドレスをデコードした結果、自身が選択されたことを認識する。これにより、第１記憶部１２は、ＯＥ信号をｅｎａｂｌｅ状態にして、記憶しているアドレス情報をデータバスＢ２に出力する。図２及び図３の例では、記憶しているアドレス情報として、「０ｘ２」（「２」）が出力される。
【００６２】
中央処理部３１は、第１記憶部１２用の出力したデータを読み取り、第１メモリ部１１に対して書き込み動作を最後に行っていたアドレス、すなわち図２及び図３の例では「０ｘ２」（「２」）を認識する。
【００６３】
次いで、中央処理部３１は、第１メモリ部１１へのＣＳ信号をｅｎａｂｌｅ状態にして、第１記憶部１２に記憶されているアドレスの次のアドレス、すなわち図２及び図３の例では一時記憶しているアドレス「０ｘ２」（「２」）の次のアドレス「０ｘ３」（「３」）をアドレスバスＢ３上に出力し、これにより、ストレージデバイス３３から第１メモリ部１１へのプログラム転送が、アドレス「０ｘ３」（「３」）から再開される。すなわち、第１メモリ部１１では、書き込み中断したアドレスからプログラム再書き込みが開始される。
【００６４】
このプログラム再書き込み動作が終了すると、中央処理部３１は、第１メモリ部１１へのＣＳ信号と第１記憶部１２へのＣＳ信号をいずれもｄｉｓａｂｌｅ状態にして、フラグ３２ａを「１」から「０」に降ろす。
【００６５】
これにより、第１プログラムメモリ部１の予備系復旧に関する動作が終了する。この動作は、図２及び図３の例では、時刻ｔ２〜ｔ３の期間中に行われる。
【００６６】
従って、本実施形態によれば、プログラム書き込みが中断した時のアドレスを記憶しているので、再書き込みを行う時、書き込み中断したアドレスからプログラム書き込み動作を再開することができ、これによりプログラム再書き込み時間を大幅に短縮することができる。
【００６７】
なお、本発明は、代表的に例示した上述の実施形態に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、その要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変更例や変形例も本発明の権利範囲に属するものである。
【００６８】
【発明の効果】
以上説明したように、本発明によれば、メモリ部に対するデータ書き込みが中断した時、最後に書き込みを行っていたアドレスを一時記憶し、該メモリ部へのデータの再書き込みを行う際に、一時記憶したアドレスから該メモリ部へのデータ書き込みを開始するようにしたため、メモリ部へのデータ書き込みが中断後に再書き込みを行う際の書き込み時間を大幅に低減することができる。
【００６９】
また、制御部が記憶させたデータ書き込み完了フラグの状態をみて、前回のデータ書き込み動作結果の状態を把握した上でデータ書き込み動作を行う構成の場合、メモリ部に対するデータ書き込みを開始する際、以前のデータ書き込み状態によってアドレスの途中から書き込むか、アドレスの先頭から書き込むかをオペレータを介さずに実行できる。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかる冗長メモリを用いたコンピュータシステムの構成を示すブロック図である。
【図２】コンピュータシステムの動作を説明するタイミングチャートである。
【図３】コンピュータシステム内のメモリマップを示す図である。
【図４】従来例のコンピュータシステムの構成を示すブロック図である。
【符号の説明】
１  第１プログラムメモリ部
２  第２プログラムメモリ部
３  プログラムＩ／Ｆ（インターフェース）部
４  冗長メモリ
１１  第１メモリ部
１２  第１記憶部
１３  第１系切替部
１４、２４  リセットスイッチ
１５、２５  ＮＡＮＤ回路
１６、２６  プルアップ回路
２１  第２メモリ部
２２  第２記憶部
２３  第２系切替部
３１  中央処理部
３２  中央処理周辺部
３３  ストレージメモリ
【図１】
2005004619.tif 000003
【図２】
2005004619.tif 000004
【図３】
2005004619.tif 000005
【図４】
2005004619.tif 000006