JP2005004619A - 冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステム - Google Patents
冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステム Download PDFInfo
- Publication number
- JP2005004619A JP2005004619A JP2003169390A JP2003169390A JP2005004619A JP 2005004619 A JP2005004619 A JP 2005004619A JP 2003169390 A JP2003169390 A JP 2003169390A JP 2003169390 A JP2003169390 A JP 2003169390A JP 2005004619 A JP2005004619 A JP 2005004619A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- unit
- writing
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Retry When Errors Occur (AREA)
Abstract
【課題】冗長系を持つ書き込み可能なメモリに対する書き込み動作において、書き込み動作が一度中断した後に行う再書き込み時間を短縮する。
【解決手段】中央処理部31から第1メモリ部11にストレージデバイス33に保存されているプログラムを転送している際、第1メモリ部11が第2メモリ部11に系切替されて第1メモリ部11へのプログラム書き込みが中断した場合、第1系切替部13からの制御信号(ACT信号)により、中央制御部31は、プログラム書き込み動作が正常終了しなかったことを示すフラグ32aを中央処理部周辺部32内に立てる。中央処理部31は、第1メモリ部11に再度プログラムを書き込む際、フラグ32aをみて前回のプログラム書き込みが正常に終了しなかったことを認識し、第1記憶部12に保管している前回最後に書き込み動作を行っていたアドレスを読み出し、そのアドレスからプログラム書き込みを開始する。
【選択図】 図1
【解決手段】中央処理部31から第1メモリ部11にストレージデバイス33に保存されているプログラムを転送している際、第1メモリ部11が第2メモリ部11に系切替されて第1メモリ部11へのプログラム書き込みが中断した場合、第1系切替部13からの制御信号(ACT信号)により、中央制御部31は、プログラム書き込み動作が正常終了しなかったことを示すフラグ32aを中央処理部周辺部32内に立てる。中央処理部31は、第1メモリ部11に再度プログラムを書き込む際、フラグ32aをみて前回のプログラム書き込みが正常に終了しなかったことを認識し、第1記憶部12に保管している前回最後に書き込み動作を行っていたアドレスを読み出し、そのアドレスからプログラム書き込みを開始する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、プログラムなどのデータ保存用のメモリを複数設けて物理的に冗長に構成した冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステムに関し、特にメモリへのプログラム転送中断後の再書き込み動作の工夫に関する。
【0002】
【従来の技術】
図4を参照して、プログラムを保存するメモリが物理的に冗長構成を持つ従来のコンピュータシステムの例を説明する。
【0003】
図4に示すコンピュータシステムは、コンピュータを構成するマザーボード100上に、機能別に分けた複数のカード110…110(以下、「機能別カード1…N」)を実装した装置構成を持つものである。このマザーボード100上には、機能別カード1…Nのほか、プログラム転送用のインターフェース(I/F)を持つカード120(以下、「プログラムI/F部」)と、プログラム保存・転送用のランダム・アクセス・メモリ(RAM)や不揮発性メモリ(ROM)等のメモリを有する2つのカード130、130(以下、「プログラムメモリ部1、2」とが、それぞれ1系統の配線(アドレスバス、データバス、制御線)を介して接続される。
【0004】
各機能別カード1…Nには、各機能別に分けたカード用プログラムが実装される。このカード用プログラムは、プログラムI/F部120内の記憶メディア(図示しない)から、バスを介して2つのプログラムメモリ部1、2に転送、保管され、そこからバスを介して機能別カード1…Nに転送される。
【0005】
2つのプログラムメモリ部1、2は、図4の例では、例えば現用系と予備系を成す冗長系メモリ140を構成し、いずれか一方が現用系、いずれか他方が予備系となるように相互に系切替可能に動作し、いずれもプログラムI/F部120から転送される同じプログラムを保存する。
【0006】
上記構成の場合、マザーボード100上におけるアドレスバス、データバス、及び制御線の配線は、1系統のみで配線されるため、冗長系メモリ140を成すプログラムメモリ部1、2に対し、プログラムI/F部120内の記憶メディア上に保管されたプログラムを転送するプログラム転送動作では、冗長系メモリ140の現用系と予備系に割り当てられた2つのプログラムメモリ部1、2へのプログラム書き込み処理を同時に実行できず、どちらか一方から先に実行される。このプログラム書き込み処理は、プログラムの先頭から開始され、プログラム転送の終了で書き込み完了となる。2つのプログラムメモリ部1、2の一方(現用系)でプログラム書き込み処理が完了すると、その他方(予備系)で同じ処理が実行される。
【0007】
なお、本発明に関連する先行技術文献としては以下のものがある。
【0008】
【特許文献1】
特開平05−151108号公報
【特許文献2】
特開平06−139215号公報
【特許文献3】
特開平06−348604号公報
【0009】
【発明が解決しようとする課題】
しかしながら、上述した従来の冗長系メモリを用いたシステムでは、何らかの要因で、プログラムの書き込み途中のプログラムメモリ部に対して系切替が発生した場合、書き込み途中になったプログラムメモリ部へ再度プログラムを書き込む処理が実行されるが、その際、プログラムの先頭から書き直す必要があるという問題があった。この理由は、任意のタイミングで系切替が発生してプログラムの書き込みが中断した場合、システム側はそのプログラム転送の開始と終了を認識するのみであり、プログラムメモリ部のどのアドレスまでプログラムを書き込んだかが不明であるためである。
【0010】
本発明は、このような事情を鑑みてなされたもので、プログラムなどのデータを書き込む冗長系メモリにおいて、データ書き込み動作が一度中断した後に行う再書き込み時間を短縮することを目的とする。
【0011】
【課題を解決するための手段】
上記目的達成のため、本発明は、メモリにプログラムなどのデータの再書き込みする際、既に途中まで書き込まれている場合には、その続きからデータの再書き込みを行い、これにより、プログラムの再書き込みに必要なデータの転送時間を短縮するものである。このため、メモリ部のアドレスバスを介しアドレスを一時記憶する機能(記憶部)を設けている。この記憶部は、メモリ部にデータを書き込む際、必ず最新のアドレスの一時記憶を行う動作を実行する。従って、任意のタイミングでメモリ部の系切替が発生して現用系への書き込みが中断したときに、その次にデータの再書き込みを実行する際、記憶部に一時記憶されたアドレスを読み出すことにより、切替直前に現用系メモリ部へ書き込もうとしていたアドレスが認識できる。これにより、元現用系メモリ部へのデータ再書き込み時に、記憶部に一時記憶されたアドレスから該データを書き込むことにより、わざわざデータの先頭から書き込む必要がなくなり、その結果、転送書き込み時間の短縮を行うことができる。
【0012】
例えば、本発明は、メモリ機能の冗長構成を持つ装置又はその再書き込み方法において、メモリにプログラムなどのデータを書き込み中に発生する系切替により該データの再書き込みが必要な条件の際、書き込み途中だったメモリのアドレスを一時記憶する構成を設けることが好ましい。前記再書き込みが必要な条件において、一時記憶したアドレスからデータの再書き込みを行うことが可能である。また、メモリにデータを書き込む際、前記再書き込みが必要な条件か、又は、アドレスの先頭から通常にデータを書き込む条件かどうかをオペレータを介さずに自動で判断するようにしてもよい。さらに、冗長系を持つメモリが常に一方が現用系、他方が予備系に切り替わることができ且つ系切替発生時に状態信号を制御部に出力することで、メモリ部へのデータ書き込み動作が正常終了したかどうか判断するためのデータ書き込み状態フラグの操作を行い、該データの再書き込みが必要な条件か、又は、アドレスの先頭から通常にプログラムを書き込む条件かを自動で判断するようにしてもよい。
【0013】
本発明は、このような着想の基に完成されたものである。
【0014】
すなわち、本発明にかかる冗長メモリは、同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部と、前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され、前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部とを備え、前記記憶部は、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第1のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする。
【0015】
本発明において、前記第一のメモリ部へのデータ書き込み途中に前記第二のメモリ部への切り替えが生じたときに該切り替え状態に関する状態信号を出力する出力手段をさらに有してもよい。
【0016】
前記第一のメモリ部及び前記第二のメモリ部は、冗長系メモリを成す現用系及び予備系として、該第一のメモリ部が該現用系のときに該第二のメモリ部が該予備系になり且つ該第一のメモリ部が該予備系のときに該第二のメモリ部が現用系になるように互いに系切替可能に構成され、前記出力手段は、前記第一のメモリ部及び前記第二のメモリ部の互いの系切替発生時に該切り替え状態に関する状態信号を出力する系切替部を有してもよい。
【0017】
前記所定のデータは、プログラムであり、前記複数のメモリ部は、該プログラムを格納するプログラムメモリ部であってもよい。
【0018】
本発明にかかるコンピュータシステムは、上記いずれかの冗長系メモリと、該冗長系メモリへのデータ書き込みを制御する制御部とを備えたことを特徴とする。
【0019】
前記制御部は、前記第一のメモリ部から前記第二のメモリ部への切り替え時に、該第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持する手段と、前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断する判断手段と、前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させるデータ書き込み制御手段とを有してもよい。
【0020】
前記データの再書き込みが必要とされる条件は、前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、前記データ書き込み制御手段は、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【0021】
前記制御部は、前記複数のメモリ部に通信可能に接続されるインターフェース部内に搭載されてもよい。
【0022】
前記複数のメモリ部と前記制御部は、マザーボード上に搭載されてもよい。
【0023】
本発明にかかる冗長メモリの再書き込み方法は、同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部を備え構成において、前記冗長メモリに、前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され且つ前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部を用意し、前記記憶部が、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第1のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする。
【0024】
本発明において、前記複数のメモリ部の切り替え時に該切り替え状態に関する状態信号を出力する手段と、前記冗長系メモリのデータ書き込みを制御する制御部とを用意し、前記制御部が、前記状態信号に基づき、前記第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持し、前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断し、前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【0025】
前記データの再書き込みが必要とされる条件は、前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、前記制御部が、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【0026】
【発明の実施の形態】
以下、本発明の実施の形態について、図1〜図3を参照して詳細に説明する。
【0027】
図1を参照すると、本発明の一実施の形態としての冗長系メモリ及びその系切替時再書き込み方法を用いたコンピュータシステムが示されている。このコンピュータシステムは、前述したマザーボードを有する構成でも、その他のものでも、要するに本発明の趣旨を逸脱しない範囲内のものであれば、いずれでも適用可能である。
【0028】
図1に示すコンピュータシステムは、冗長系メモリ4として系切替可能に動作する2つのプログラムメモリ部(以下、「第1及び第2プログラムメモリ部1、2」)と、この第1及び第2プログラムメモリ部1、2との間で所定のバスを介して電気的に接続されるプログラムI/F(インターフェース)部3とを備える。バスには、各種制御信号(制御パルス)用の信号線を成す制御線B1と、第1及び第2プログラムメモリ部1、2に保存すべきプログラム等のデータ(data)用のデータバスB2と、データ読み出し/書き込みアドレス(address)用のアドレスバスB3とが含まれる。
【0029】
図1に示す例では、制御線B1上の各種制御信号として、チップ選択信号(以下、「CS(Chip Select)信号」)、出力制御信号(以下、「OE(Output Enable)信号」)、読み出し/書き込み信号(以下、「R(Read)/W(Write)信号」と略し、そのイネーブル(Enable)状態に対応する論理High又はLowレベルの制御信号を「WE(Write Enable)信号」と呼ぶ)、現用系/予備系の系切替状態を示す状態信号(以下、「ACT(Action)信号」)、クロック(clk)信号が含まれる。
【0030】
第1及び第2プログラムメモリ部1、2は、一方が現用系、他方が予備系として互いに系切替可能に動作する冗長系メモリ4を構成するもので、第1及び第2メモリ部11、21と、第1及び第2記憶部12、22と、第1及び第2系切替部13、23とを有する。
【0031】
第1及び第2メモリ部11、21は、RAMやROM等のメモリで構成され、プログラムI/F部3との間でデータバスB2経由でプログラム等のデータを入出力する入出力端子、プログラムI/F部3との間でアドレスバスB3経由でアドレスを入力する入力端子のほか、プログラムI/F部3との間で制御線B1経由でCS信号、OE信号、及びR/W信号(WE)の各制御信号を入出力する入出力端子が設けられる。
【0032】
第1及び第2メモリ部11、21は、図1に示す例では、プログラムI/F部3との間で、アドレスバスB3を介しアドレス信号を、またデータバスB2を介しデータ、さらに制御線B1を介してR/W信号、CS信号、及びOE信号等の各種信号を送受し、中央処理部31による制御の基で、プログラムI/F部3のストレージデバイス33から転送されるプログラムを保存する。
【0033】
第1及び第2記憶部12、22は、例えばアドレスデコーダとフリップフロップで構成されるが、この構成に限定されず、例えばRAMに置き換えることもできる。この第1及び第2記憶部12、22には、プログラムI/F部3との間でデータバスB2経由でデータを入出力する入出力端子、プログラムI/F部3との間でアドレスバスB3経由でアドレスを入力する入力端子のほか、プログラムI/F部3から制御線B1経由でCS信号、OE信号、クロック(clk)信号の各制御信号を入出力する入出力端子が設けられる。このうち、クロック信号の入力端子は、第1及び第2メモリ部11、21の入力端子に接続される制御線B1のR/W信号線に並列に接続される。
【0034】
この第1及び第2記憶部12、22は、制御線B1を介しR/W信号を入力し、このR/W信号を保持すべきアドレスの入力タイミングを決めるクロック信号とすることにより、中央処理部31から第1及び第2プログラムメモリ1、2に転送されるプログラムが第1及び第2メモリ部11、21に書き込まれる毎にそのアドレス(最新値)をデータとして所定のメモリ領域に一時記憶する。
【0035】
また、この第1及び第2記憶部12、22は、システム内のメモリ管理において第1及び第2メモリ部11、21とは同一メモリマップ上で異なるアドレス空間に割り当てられており、中央処理部31からアドレスバスB3経由で第1及び第2記憶部12、33用のアドレスを指定することが可能となっている。さらに、この第1及び第2記憶部12、22は、中央処理部31から制御線B1経由でOE信号のenable/disable状態に対応する論理Low/Highレベルの切り替えによるデータ出力制御も可能となっている。これにより、中央処理部31からの指定アドレスにて第1又は第2記憶部12、22が指定され、且つ、中央処理部31からのCS信号がenable状態になるように制御されたときに、第1又は第2記憶部12、22は、一次記憶しているアドレス情報をデータバスB2に出力する。
【0036】
さらに、第1及び第2系切替部13、23は、第1及び第2プログラムメモリ部1、2の間で、一方が運用系の時は他方が予備系に切り替わるようにACT信号出力の論理レベルが互いに反転するように接続される。また、予備系に切り替わったとき、中央処理部4に対してACT信号を出力し、これにより予備系への書き込み動作を中止させるようになっている。
【0037】
具体的には、第1及び第2メモリ部11、21が必ず現用系と予備系のペアになるように、それぞれのACT信号出力の論理レベルが互いに反転するように接続する。図1に示す例では、プログラムI/F部3の間で制御線B1経由でACT信号を出力する出力端子が設けられ、その出力端子にNAND回路15、25を接続している。NAND回路15、25は、2つの入力端子を有し、その一方には、プルアップ(Pull UP)回路16、26及びリセットスイッチ14、24が接続され、その他方(スタンバイ(STBY)入力端子)には、図1に示すように、2つのプログラムメモリ部1、2の間で、第1及び第2系切替部13、23の出力端子に接続されるACT信号線が互いにたすき掛けで反対側に並列接続される。
【0038】
プルアップ回路16、26は、例えばプルアップ抵抗を高電位側の電源部に接続した構成で、リセットスイッチ14、24が動作OFF状態のときに高電位に対応する論理Highレベルの信号を、またリセットスイッチ14、24が動作ON状態のときにグランド(GND)電位(0V)に対応する論理Lowレベルの信号をそれぞれNAND回路15、25に入力する。
【0039】
これにより、2つのNAND回路15、25から出力されるACT信号の論理レベルは、一方がHighレベルになれば他方がLowレベルとなり、その逆に一方がLowレベルになれば他方がHighレベルとなるように互いに反転して動作する。本実施形態では、ACT信号の論理レベルがLowレベルのときに運用系の状態であり、となり、にあり、Highレベルのときに予備系の状態であることをシステム内で認識するように設定される。
【0040】
例えば、第1プログラムメモリ部1が現用系、第2プログラムメモリ部2が予備系の場合、第1系切替部13のACT信号は論理Lowレベル、第2系切替部23のACT信号は論理Highレベルをそれぞれ示す。この状態で、第1プログラムメモリ部1が予備系、第2プログラムメモリ部2が現用系に切り替わったとき、第1系切替部13のACT信号は論理Highレベルに変化し、これと逆に、第2系切替部23のACT信号は論理Lowレベルに変化する。中央処理部31は、第1及び第2系切替部13、23からのACT信号の論理レベルを基に、現用系/予備系の状態を判断し、現用系に対してはプログラム書き込み動作を実行し、予備系に対してはプログラム書き込み動作を中止するように、CS信号のenable/disable状態を制御する。
【0041】
プログラムI/F部3は、全体制御を担うCPU(中央演算処理部)を有するコントローラ又はプロセッサ等で構成される中央処理部31と、この中央処理部に接続される中央処理部周辺部32及びストレージデバイス33とを含む。
【0042】
中央処理周辺部32は、CPU(中央演算処理部)、ROM(リード・オンリー・メモリ)、RAM(ランダム・アクセス・メモリ)、外部インタフェースから構成される。このプログラムI/F部3内部のハードウエア構成は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成を省略する。
【0043】
この中央処理周辺部32には、第1及び第2プログラムメモリ部1、2へのプログラム書き込み完了状態を示すフラグ32aが設けられる。フラグ32aは、例えば、プログラム書き込みが正常終了したときは「0」の状態のままであり、正常終了しないで書き込み途中で中止したときは「1」の状態となる(フラグ32aを立てる)ように設定される。フラグ32aを立てるか否かの判断は、第1及び第2系切替部13、23からのACT信号の論理レベルの反転状態を基に行われる。すなわち、CS信号がenable状態にある現用系のメモリ部へのプログラム転送中に、リセットスイッチをONにする等の要因で、系切替部からのACT信号の論理レベルが現用系を示すLowレベルから予備系を示すHighレベルに反転した場合は、プログラム書き込みが正常終了しないで書き込み途中で中止したと判断する。
【0044】
ストレージデバイス33は、不揮発な性質を持つ記憶メディア等で構成され、第1及び第2メモリ部11、21にデータバスB2経由で転送すべきプログラムを保存している。
【0045】
中央処理部31は、ストレージデバイス33から読み出したプログラムを読み出して、データバスB2経由で第1及び第2メモリ部11、21に転送し、その転送の完了状態を、第1及び第2系切替部13、23からのACT信号を基に判断し、中央処理周辺部32内のフラグ32aに保存する。
【0046】
次に、本実施形態の動作について図2及び図3を参照して説明する。
【0047】
図2は、本実施形態の動作を説明するタイミングチャート、図3は、システム内のメモリマップを示す。ここで、図3に示すように、システム内のメモリマップは、説明を簡単にするため、アドレス「0x0」〜「0x3」(図2では「0」〜「3」)がメモリ部領域、アドレス「0xE」〜「0xF」(図2では「F」)が記憶部領域にそれぞれ設定されているものとする。また、初期状態では、第1プログラムメモリ部1が現用系、第2プログラムメモリ部2が予備系にそれぞれ設定される。図2に示すタイミングチャートは、現用系である第1プログラムメモリ部1の各部動作を主に示す。
【0048】
まず、図2において、時刻t0〜t1の期間では、中央処理部31は、第1及び第2系切替部13、23からのACT信号を受信し、その論理レベルを基に現用系/予備系を判断する。本実施形態では、第1プログラムメモリ部1が現用系であるため、その第1系切替部13から論理LowレベルのACT信号を受信し、これを基に現時点で第1プログラムメモリ部1が現用系である旨を認識し、その現用系である側の第1メモリ部11に対しプログラム転送の準備を行なう。
【0049】
すなわち、中央処理部31は、第1メモリ部11に対し、制御線B1上のCS信号をenable状態にして、アドレスバスB3上に第1メモリ部11のアドレスを出力し、データバスB2上にストレージデバイス33に保存されているプログラムのデータを出力し、制御線B1上のW/R信号をWE信号状態にする。この時点では、第1メモリ部11に出力するOE信号は、disable状態のままとする。
【0050】
これにより、第1メモリ部11では、WE信号毎にアドレスバスB3上のアドレスで指定された記憶領域にデータバスB2上のプログラムのデータを書き込む。図2及び図3に示す例では、時刻t0〜t1の期間で、中央処理部31からアドレス「0x0」〜「0x2」(「0」〜「2」)が順次出力され、WE信号毎に第1メモリ部11のアドレス「0x0」〜「0x2」(「0」〜「2」)に対応する記憶領域上にプログラムのデータが書き込まれる。
【0051】
上記第1メモリ部11へのプログラム書き込み動作と並行して、中央処理部31は、第1記憶部12に対し、制御線B1上のCS信号をenable状態にする。
【0052】
これにより、第1記憶部12では、クロック信号として入力される上記WE信号毎にアドレスバスB3上のアドレスをラッチしそのアドレス情報をアドレス「0xF」に対応する記憶領域に一時記憶すると共に、新たなアドレスをラッチする度に一時記憶しているアドレスを順次更新していく。図2及び図3に示す例では、時刻t0〜t1の期間で、中央処理部31からアドレス「0x0」〜「0x2」(「0」〜「2」)が順次一時記憶、更新される。時刻t1の時点では、最新のアドレス「0x2」(「2」)が一次記憶されている。
【0053】
上記状態から時刻t1に達し、現用系である側の第1系切替部13に対してリセットスイッチ14がONにされ、Reset信号が入力されたとする。
【0054】
この場合、第1系切替部13のNAND回路15から出力されるACT信号は、第2系切替部23からの論理HighレベルのACT信号と、リセットスイッチ14からの論理Lowレベルに対応するReset信号との入力値に基づき、論理Lowレベルから論理Highレベルに切り替わる。この論理HighレベルのACT信号は、第2系切替部23及び中央処理部31に出力される。これにより、第2系切替部23から出力されるACT信号は、論理Highレベルから論理Lowレベルに変化し、中央処理部31では、第1プログラムメモリ部1が現用系から予備系に、また第2メモリプログラム部2が予備系から現用系に切り替わったことを認識する。
【0055】
このように第1及び第2系切替部13、23からのACT信号により、第1プログラムメモリ部1が予備系に、また第2プログラムメモリ部2が現用系にそれぞれ切り替わったことを認識した中央処理部31は、その時点では第1メモリ部11へのCS信号がenable状態であることから、第1メモリ部11へのプログラム転送が正常終了せずに中断したと判断し、中央処理周辺部32内のフラグ32aを立てる(図2の例では「0」→「1」参照)と共に、第1メモリ部11へのCS信号をenable状態からdisable状態にする。これにより、第1メモリ部11では、プログラム書き込み動作が中止される。
【0056】
上記動作と併行して、中央処理部4は、第1記憶部12に対し、そのCS信号をenable状態からdisable状態にする。これにより、第1記憶部12では、最後に書き込む動作を行っていたアドレスを保持する。図2及び図3の例では、第1記憶部12にはアドレス「0x2」(「2」)が保持される。
【0057】
上記動作により、時刻t1の時点で、予備系から現用系に切り替わった第2プログラムメモリ部2に対し、データ書き込み動作が開始される。すなわち、中央処理部4は、第2メモリ部21のCS信号をenable状態にし、第2記憶部22のCS信号をenable状態にして、上記第1メモリ部11の場合と同様に、第2メモリ部21へのプログラム書き込みを開始する。この動作は、時刻t1〜t2の期間で実行され、図2及び図3の例では、第2メモリ部21のアドレス「0x0」〜「0x3」(「0」〜「3」)の記憶領域上にプログラムが書き込まれる。
【0058】
次いで、時刻t2に達し、第2メモリ部21に対するプログラム書き込み動作を終了すると、中央処理部31は、第2メモリ部21及び第2記憶部22に対するCS信号をdisable状態にすると共に、中央処理部31は、中央処理周辺部32に保持した第1メモリ部11へのプログラム書き込みが正常終了しているか否かをフラグ32aの状態(「0」又は「1」)を参照して判断する。図2の例では、フラグ32aは「1」を示しているので、中央処理部31は、プログラム書き込みが中断していることを認識する。これにより、中央処理部31は、第1メモリ部11に対するプログラム書き込みの準備を開始する。
【0059】
すなわち、中央処理部31は、第1記憶部12へのCS信号をenable状態にする。このとき、第1メモリ部11へのCS信号は、disable状態のままとする。
【0060】
次いで、中央処理部31は、アドレスバスB3上に第1記憶部12用のアドレスを出力する。図2及び図3の例では、第1記憶部12用のアドレスとして、「0xF」(「F」)が出力される。
【0061】
次いで、第1記憶部12は、中央処理部31からアドレスバスB3上に出力されるアドレスをデコードした結果、自身が選択されたことを認識する。これにより、第1記憶部12は、OE信号をenable状態にして、記憶しているアドレス情報をデータバスB2に出力する。図2及び図3の例では、記憶しているアドレス情報として、「0x2」(「2」)が出力される。
【0062】
中央処理部31は、第1記憶部12用の出力したデータを読み取り、第1メモリ部11に対して書き込み動作を最後に行っていたアドレス、すなわち図2及び図3の例では「0x2」(「2」)を認識する。
【0063】
次いで、中央処理部31は、第1メモリ部11へのCS信号をenable状態にして、第1記憶部12に記憶されているアドレスの次のアドレス、すなわち図2及び図3の例では一時記憶しているアドレス「0x2」(「2」)の次のアドレス「0x3」(「3」)をアドレスバスB3上に出力し、これにより、ストレージデバイス33から第1メモリ部11へのプログラム転送が、アドレス「0x3」(「3」)から再開される。すなわち、第1メモリ部11では、書き込み中断したアドレスからプログラム再書き込みが開始される。
【0064】
このプログラム再書き込み動作が終了すると、中央処理部31は、第1メモリ部11へのCS信号と第1記憶部12へのCS信号をいずれもdisable状態にして、フラグ32aを「1」から「0」に降ろす。
【0065】
これにより、第1プログラムメモリ部1の予備系復旧に関する動作が終了する。この動作は、図2及び図3の例では、時刻t2〜t3の期間中に行われる。
【0066】
従って、本実施形態によれば、プログラム書き込みが中断した時のアドレスを記憶しているので、再書き込みを行う時、書き込み中断したアドレスからプログラム書き込み動作を再開することができ、これによりプログラム再書き込み時間を大幅に短縮することができる。
【0067】
なお、本発明は、代表的に例示した上述の実施形態に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、その要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変更例や変形例も本発明の権利範囲に属するものである。
【0068】
【発明の効果】
以上説明したように、本発明によれば、メモリ部に対するデータ書き込みが中断した時、最後に書き込みを行っていたアドレスを一時記憶し、該メモリ部へのデータの再書き込みを行う際に、一時記憶したアドレスから該メモリ部へのデータ書き込みを開始するようにしたため、メモリ部へのデータ書き込みが中断後に再書き込みを行う際の書き込み時間を大幅に低減することができる。
【0069】
また、制御部が記憶させたデータ書き込み完了フラグの状態をみて、前回のデータ書き込み動作結果の状態を把握した上でデータ書き込み動作を行う構成の場合、メモリ部に対するデータ書き込みを開始する際、以前のデータ書き込み状態によってアドレスの途中から書き込むか、アドレスの先頭から書き込むかをオペレータを介さずに実行できる。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかる冗長メモリを用いたコンピュータシステムの構成を示すブロック図である。
【図2】コンピュータシステムの動作を説明するタイミングチャートである。
【図3】コンピュータシステム内のメモリマップを示す図である。
【図4】従来例のコンピュータシステムの構成を示すブロック図である。
【符号の説明】
1 第1プログラムメモリ部
2 第2プログラムメモリ部
3 プログラムI/F(インターフェース)部
4 冗長メモリ
11 第1メモリ部
12 第1記憶部
13 第1系切替部
14、24 リセットスイッチ
15、25 NAND回路
16、26 プルアップ回路
21 第2メモリ部
22 第2記憶部
23 第2系切替部
31 中央処理部
32 中央処理周辺部
33 ストレージメモリ
【発明の属する技術分野】
本発明は、プログラムなどのデータ保存用のメモリを複数設けて物理的に冗長に構成した冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステムに関し、特にメモリへのプログラム転送中断後の再書き込み動作の工夫に関する。
【0002】
【従来の技術】
図4を参照して、プログラムを保存するメモリが物理的に冗長構成を持つ従来のコンピュータシステムの例を説明する。
【0003】
図4に示すコンピュータシステムは、コンピュータを構成するマザーボード100上に、機能別に分けた複数のカード110…110(以下、「機能別カード1…N」)を実装した装置構成を持つものである。このマザーボード100上には、機能別カード1…Nのほか、プログラム転送用のインターフェース(I/F)を持つカード120(以下、「プログラムI/F部」)と、プログラム保存・転送用のランダム・アクセス・メモリ(RAM)や不揮発性メモリ(ROM)等のメモリを有する2つのカード130、130(以下、「プログラムメモリ部1、2」とが、それぞれ1系統の配線(アドレスバス、データバス、制御線)を介して接続される。
【0004】
各機能別カード1…Nには、各機能別に分けたカード用プログラムが実装される。このカード用プログラムは、プログラムI/F部120内の記憶メディア(図示しない)から、バスを介して2つのプログラムメモリ部1、2に転送、保管され、そこからバスを介して機能別カード1…Nに転送される。
【0005】
2つのプログラムメモリ部1、2は、図4の例では、例えば現用系と予備系を成す冗長系メモリ140を構成し、いずれか一方が現用系、いずれか他方が予備系となるように相互に系切替可能に動作し、いずれもプログラムI/F部120から転送される同じプログラムを保存する。
【0006】
上記構成の場合、マザーボード100上におけるアドレスバス、データバス、及び制御線の配線は、1系統のみで配線されるため、冗長系メモリ140を成すプログラムメモリ部1、2に対し、プログラムI/F部120内の記憶メディア上に保管されたプログラムを転送するプログラム転送動作では、冗長系メモリ140の現用系と予備系に割り当てられた2つのプログラムメモリ部1、2へのプログラム書き込み処理を同時に実行できず、どちらか一方から先に実行される。このプログラム書き込み処理は、プログラムの先頭から開始され、プログラム転送の終了で書き込み完了となる。2つのプログラムメモリ部1、2の一方(現用系)でプログラム書き込み処理が完了すると、その他方(予備系)で同じ処理が実行される。
【0007】
なお、本発明に関連する先行技術文献としては以下のものがある。
【0008】
【特許文献1】
特開平05−151108号公報
【特許文献2】
特開平06−139215号公報
【特許文献3】
特開平06−348604号公報
【0009】
【発明が解決しようとする課題】
しかしながら、上述した従来の冗長系メモリを用いたシステムでは、何らかの要因で、プログラムの書き込み途中のプログラムメモリ部に対して系切替が発生した場合、書き込み途中になったプログラムメモリ部へ再度プログラムを書き込む処理が実行されるが、その際、プログラムの先頭から書き直す必要があるという問題があった。この理由は、任意のタイミングで系切替が発生してプログラムの書き込みが中断した場合、システム側はそのプログラム転送の開始と終了を認識するのみであり、プログラムメモリ部のどのアドレスまでプログラムを書き込んだかが不明であるためである。
【0010】
本発明は、このような事情を鑑みてなされたもので、プログラムなどのデータを書き込む冗長系メモリにおいて、データ書き込み動作が一度中断した後に行う再書き込み時間を短縮することを目的とする。
【0011】
【課題を解決するための手段】
上記目的達成のため、本発明は、メモリにプログラムなどのデータの再書き込みする際、既に途中まで書き込まれている場合には、その続きからデータの再書き込みを行い、これにより、プログラムの再書き込みに必要なデータの転送時間を短縮するものである。このため、メモリ部のアドレスバスを介しアドレスを一時記憶する機能(記憶部)を設けている。この記憶部は、メモリ部にデータを書き込む際、必ず最新のアドレスの一時記憶を行う動作を実行する。従って、任意のタイミングでメモリ部の系切替が発生して現用系への書き込みが中断したときに、その次にデータの再書き込みを実行する際、記憶部に一時記憶されたアドレスを読み出すことにより、切替直前に現用系メモリ部へ書き込もうとしていたアドレスが認識できる。これにより、元現用系メモリ部へのデータ再書き込み時に、記憶部に一時記憶されたアドレスから該データを書き込むことにより、わざわざデータの先頭から書き込む必要がなくなり、その結果、転送書き込み時間の短縮を行うことができる。
【0012】
例えば、本発明は、メモリ機能の冗長構成を持つ装置又はその再書き込み方法において、メモリにプログラムなどのデータを書き込み中に発生する系切替により該データの再書き込みが必要な条件の際、書き込み途中だったメモリのアドレスを一時記憶する構成を設けることが好ましい。前記再書き込みが必要な条件において、一時記憶したアドレスからデータの再書き込みを行うことが可能である。また、メモリにデータを書き込む際、前記再書き込みが必要な条件か、又は、アドレスの先頭から通常にデータを書き込む条件かどうかをオペレータを介さずに自動で判断するようにしてもよい。さらに、冗長系を持つメモリが常に一方が現用系、他方が予備系に切り替わることができ且つ系切替発生時に状態信号を制御部に出力することで、メモリ部へのデータ書き込み動作が正常終了したかどうか判断するためのデータ書き込み状態フラグの操作を行い、該データの再書き込みが必要な条件か、又は、アドレスの先頭から通常にプログラムを書き込む条件かを自動で判断するようにしてもよい。
【0013】
本発明は、このような着想の基に完成されたものである。
【0014】
すなわち、本発明にかかる冗長メモリは、同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部と、前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され、前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部とを備え、前記記憶部は、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第1のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする。
【0015】
本発明において、前記第一のメモリ部へのデータ書き込み途中に前記第二のメモリ部への切り替えが生じたときに該切り替え状態に関する状態信号を出力する出力手段をさらに有してもよい。
【0016】
前記第一のメモリ部及び前記第二のメモリ部は、冗長系メモリを成す現用系及び予備系として、該第一のメモリ部が該現用系のときに該第二のメモリ部が該予備系になり且つ該第一のメモリ部が該予備系のときに該第二のメモリ部が現用系になるように互いに系切替可能に構成され、前記出力手段は、前記第一のメモリ部及び前記第二のメモリ部の互いの系切替発生時に該切り替え状態に関する状態信号を出力する系切替部を有してもよい。
【0017】
前記所定のデータは、プログラムであり、前記複数のメモリ部は、該プログラムを格納するプログラムメモリ部であってもよい。
【0018】
本発明にかかるコンピュータシステムは、上記いずれかの冗長系メモリと、該冗長系メモリへのデータ書き込みを制御する制御部とを備えたことを特徴とする。
【0019】
前記制御部は、前記第一のメモリ部から前記第二のメモリ部への切り替え時に、該第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持する手段と、前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断する判断手段と、前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させるデータ書き込み制御手段とを有してもよい。
【0020】
前記データの再書き込みが必要とされる条件は、前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、前記データ書き込み制御手段は、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【0021】
前記制御部は、前記複数のメモリ部に通信可能に接続されるインターフェース部内に搭載されてもよい。
【0022】
前記複数のメモリ部と前記制御部は、マザーボード上に搭載されてもよい。
【0023】
本発明にかかる冗長メモリの再書き込み方法は、同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部を備え構成において、前記冗長メモリに、前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され且つ前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部を用意し、前記記憶部が、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第1のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする。
【0024】
本発明において、前記複数のメモリ部の切り替え時に該切り替え状態に関する状態信号を出力する手段と、前記冗長系メモリのデータ書き込みを制御する制御部とを用意し、前記制御部が、前記状態信号に基づき、前記第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持し、前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断し、前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【0025】
前記データの再書き込みが必要とされる条件は、前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、前記制御部が、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させてもよい。
【0026】
【発明の実施の形態】
以下、本発明の実施の形態について、図1〜図3を参照して詳細に説明する。
【0027】
図1を参照すると、本発明の一実施の形態としての冗長系メモリ及びその系切替時再書き込み方法を用いたコンピュータシステムが示されている。このコンピュータシステムは、前述したマザーボードを有する構成でも、その他のものでも、要するに本発明の趣旨を逸脱しない範囲内のものであれば、いずれでも適用可能である。
【0028】
図1に示すコンピュータシステムは、冗長系メモリ4として系切替可能に動作する2つのプログラムメモリ部(以下、「第1及び第2プログラムメモリ部1、2」)と、この第1及び第2プログラムメモリ部1、2との間で所定のバスを介して電気的に接続されるプログラムI/F(インターフェース)部3とを備える。バスには、各種制御信号(制御パルス)用の信号線を成す制御線B1と、第1及び第2プログラムメモリ部1、2に保存すべきプログラム等のデータ(data)用のデータバスB2と、データ読み出し/書き込みアドレス(address)用のアドレスバスB3とが含まれる。
【0029】
図1に示す例では、制御線B1上の各種制御信号として、チップ選択信号(以下、「CS(Chip Select)信号」)、出力制御信号(以下、「OE(Output Enable)信号」)、読み出し/書き込み信号(以下、「R(Read)/W(Write)信号」と略し、そのイネーブル(Enable)状態に対応する論理High又はLowレベルの制御信号を「WE(Write Enable)信号」と呼ぶ)、現用系/予備系の系切替状態を示す状態信号(以下、「ACT(Action)信号」)、クロック(clk)信号が含まれる。
【0030】
第1及び第2プログラムメモリ部1、2は、一方が現用系、他方が予備系として互いに系切替可能に動作する冗長系メモリ4を構成するもので、第1及び第2メモリ部11、21と、第1及び第2記憶部12、22と、第1及び第2系切替部13、23とを有する。
【0031】
第1及び第2メモリ部11、21は、RAMやROM等のメモリで構成され、プログラムI/F部3との間でデータバスB2経由でプログラム等のデータを入出力する入出力端子、プログラムI/F部3との間でアドレスバスB3経由でアドレスを入力する入力端子のほか、プログラムI/F部3との間で制御線B1経由でCS信号、OE信号、及びR/W信号(WE)の各制御信号を入出力する入出力端子が設けられる。
【0032】
第1及び第2メモリ部11、21は、図1に示す例では、プログラムI/F部3との間で、アドレスバスB3を介しアドレス信号を、またデータバスB2を介しデータ、さらに制御線B1を介してR/W信号、CS信号、及びOE信号等の各種信号を送受し、中央処理部31による制御の基で、プログラムI/F部3のストレージデバイス33から転送されるプログラムを保存する。
【0033】
第1及び第2記憶部12、22は、例えばアドレスデコーダとフリップフロップで構成されるが、この構成に限定されず、例えばRAMに置き換えることもできる。この第1及び第2記憶部12、22には、プログラムI/F部3との間でデータバスB2経由でデータを入出力する入出力端子、プログラムI/F部3との間でアドレスバスB3経由でアドレスを入力する入力端子のほか、プログラムI/F部3から制御線B1経由でCS信号、OE信号、クロック(clk)信号の各制御信号を入出力する入出力端子が設けられる。このうち、クロック信号の入力端子は、第1及び第2メモリ部11、21の入力端子に接続される制御線B1のR/W信号線に並列に接続される。
【0034】
この第1及び第2記憶部12、22は、制御線B1を介しR/W信号を入力し、このR/W信号を保持すべきアドレスの入力タイミングを決めるクロック信号とすることにより、中央処理部31から第1及び第2プログラムメモリ1、2に転送されるプログラムが第1及び第2メモリ部11、21に書き込まれる毎にそのアドレス(最新値)をデータとして所定のメモリ領域に一時記憶する。
【0035】
また、この第1及び第2記憶部12、22は、システム内のメモリ管理において第1及び第2メモリ部11、21とは同一メモリマップ上で異なるアドレス空間に割り当てられており、中央処理部31からアドレスバスB3経由で第1及び第2記憶部12、33用のアドレスを指定することが可能となっている。さらに、この第1及び第2記憶部12、22は、中央処理部31から制御線B1経由でOE信号のenable/disable状態に対応する論理Low/Highレベルの切り替えによるデータ出力制御も可能となっている。これにより、中央処理部31からの指定アドレスにて第1又は第2記憶部12、22が指定され、且つ、中央処理部31からのCS信号がenable状態になるように制御されたときに、第1又は第2記憶部12、22は、一次記憶しているアドレス情報をデータバスB2に出力する。
【0036】
さらに、第1及び第2系切替部13、23は、第1及び第2プログラムメモリ部1、2の間で、一方が運用系の時は他方が予備系に切り替わるようにACT信号出力の論理レベルが互いに反転するように接続される。また、予備系に切り替わったとき、中央処理部4に対してACT信号を出力し、これにより予備系への書き込み動作を中止させるようになっている。
【0037】
具体的には、第1及び第2メモリ部11、21が必ず現用系と予備系のペアになるように、それぞれのACT信号出力の論理レベルが互いに反転するように接続する。図1に示す例では、プログラムI/F部3の間で制御線B1経由でACT信号を出力する出力端子が設けられ、その出力端子にNAND回路15、25を接続している。NAND回路15、25は、2つの入力端子を有し、その一方には、プルアップ(Pull UP)回路16、26及びリセットスイッチ14、24が接続され、その他方(スタンバイ(STBY)入力端子)には、図1に示すように、2つのプログラムメモリ部1、2の間で、第1及び第2系切替部13、23の出力端子に接続されるACT信号線が互いにたすき掛けで反対側に並列接続される。
【0038】
プルアップ回路16、26は、例えばプルアップ抵抗を高電位側の電源部に接続した構成で、リセットスイッチ14、24が動作OFF状態のときに高電位に対応する論理Highレベルの信号を、またリセットスイッチ14、24が動作ON状態のときにグランド(GND)電位(0V)に対応する論理Lowレベルの信号をそれぞれNAND回路15、25に入力する。
【0039】
これにより、2つのNAND回路15、25から出力されるACT信号の論理レベルは、一方がHighレベルになれば他方がLowレベルとなり、その逆に一方がLowレベルになれば他方がHighレベルとなるように互いに反転して動作する。本実施形態では、ACT信号の論理レベルがLowレベルのときに運用系の状態であり、となり、にあり、Highレベルのときに予備系の状態であることをシステム内で認識するように設定される。
【0040】
例えば、第1プログラムメモリ部1が現用系、第2プログラムメモリ部2が予備系の場合、第1系切替部13のACT信号は論理Lowレベル、第2系切替部23のACT信号は論理Highレベルをそれぞれ示す。この状態で、第1プログラムメモリ部1が予備系、第2プログラムメモリ部2が現用系に切り替わったとき、第1系切替部13のACT信号は論理Highレベルに変化し、これと逆に、第2系切替部23のACT信号は論理Lowレベルに変化する。中央処理部31は、第1及び第2系切替部13、23からのACT信号の論理レベルを基に、現用系/予備系の状態を判断し、現用系に対してはプログラム書き込み動作を実行し、予備系に対してはプログラム書き込み動作を中止するように、CS信号のenable/disable状態を制御する。
【0041】
プログラムI/F部3は、全体制御を担うCPU(中央演算処理部)を有するコントローラ又はプロセッサ等で構成される中央処理部31と、この中央処理部に接続される中央処理部周辺部32及びストレージデバイス33とを含む。
【0042】
中央処理周辺部32は、CPU(中央演算処理部)、ROM(リード・オンリー・メモリ)、RAM(ランダム・アクセス・メモリ)、外部インタフェースから構成される。このプログラムI/F部3内部のハードウエア構成は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成を省略する。
【0043】
この中央処理周辺部32には、第1及び第2プログラムメモリ部1、2へのプログラム書き込み完了状態を示すフラグ32aが設けられる。フラグ32aは、例えば、プログラム書き込みが正常終了したときは「0」の状態のままであり、正常終了しないで書き込み途中で中止したときは「1」の状態となる(フラグ32aを立てる)ように設定される。フラグ32aを立てるか否かの判断は、第1及び第2系切替部13、23からのACT信号の論理レベルの反転状態を基に行われる。すなわち、CS信号がenable状態にある現用系のメモリ部へのプログラム転送中に、リセットスイッチをONにする等の要因で、系切替部からのACT信号の論理レベルが現用系を示すLowレベルから予備系を示すHighレベルに反転した場合は、プログラム書き込みが正常終了しないで書き込み途中で中止したと判断する。
【0044】
ストレージデバイス33は、不揮発な性質を持つ記憶メディア等で構成され、第1及び第2メモリ部11、21にデータバスB2経由で転送すべきプログラムを保存している。
【0045】
中央処理部31は、ストレージデバイス33から読み出したプログラムを読み出して、データバスB2経由で第1及び第2メモリ部11、21に転送し、その転送の完了状態を、第1及び第2系切替部13、23からのACT信号を基に判断し、中央処理周辺部32内のフラグ32aに保存する。
【0046】
次に、本実施形態の動作について図2及び図3を参照して説明する。
【0047】
図2は、本実施形態の動作を説明するタイミングチャート、図3は、システム内のメモリマップを示す。ここで、図3に示すように、システム内のメモリマップは、説明を簡単にするため、アドレス「0x0」〜「0x3」(図2では「0」〜「3」)がメモリ部領域、アドレス「0xE」〜「0xF」(図2では「F」)が記憶部領域にそれぞれ設定されているものとする。また、初期状態では、第1プログラムメモリ部1が現用系、第2プログラムメモリ部2が予備系にそれぞれ設定される。図2に示すタイミングチャートは、現用系である第1プログラムメモリ部1の各部動作を主に示す。
【0048】
まず、図2において、時刻t0〜t1の期間では、中央処理部31は、第1及び第2系切替部13、23からのACT信号を受信し、その論理レベルを基に現用系/予備系を判断する。本実施形態では、第1プログラムメモリ部1が現用系であるため、その第1系切替部13から論理LowレベルのACT信号を受信し、これを基に現時点で第1プログラムメモリ部1が現用系である旨を認識し、その現用系である側の第1メモリ部11に対しプログラム転送の準備を行なう。
【0049】
すなわち、中央処理部31は、第1メモリ部11に対し、制御線B1上のCS信号をenable状態にして、アドレスバスB3上に第1メモリ部11のアドレスを出力し、データバスB2上にストレージデバイス33に保存されているプログラムのデータを出力し、制御線B1上のW/R信号をWE信号状態にする。この時点では、第1メモリ部11に出力するOE信号は、disable状態のままとする。
【0050】
これにより、第1メモリ部11では、WE信号毎にアドレスバスB3上のアドレスで指定された記憶領域にデータバスB2上のプログラムのデータを書き込む。図2及び図3に示す例では、時刻t0〜t1の期間で、中央処理部31からアドレス「0x0」〜「0x2」(「0」〜「2」)が順次出力され、WE信号毎に第1メモリ部11のアドレス「0x0」〜「0x2」(「0」〜「2」)に対応する記憶領域上にプログラムのデータが書き込まれる。
【0051】
上記第1メモリ部11へのプログラム書き込み動作と並行して、中央処理部31は、第1記憶部12に対し、制御線B1上のCS信号をenable状態にする。
【0052】
これにより、第1記憶部12では、クロック信号として入力される上記WE信号毎にアドレスバスB3上のアドレスをラッチしそのアドレス情報をアドレス「0xF」に対応する記憶領域に一時記憶すると共に、新たなアドレスをラッチする度に一時記憶しているアドレスを順次更新していく。図2及び図3に示す例では、時刻t0〜t1の期間で、中央処理部31からアドレス「0x0」〜「0x2」(「0」〜「2」)が順次一時記憶、更新される。時刻t1の時点では、最新のアドレス「0x2」(「2」)が一次記憶されている。
【0053】
上記状態から時刻t1に達し、現用系である側の第1系切替部13に対してリセットスイッチ14がONにされ、Reset信号が入力されたとする。
【0054】
この場合、第1系切替部13のNAND回路15から出力されるACT信号は、第2系切替部23からの論理HighレベルのACT信号と、リセットスイッチ14からの論理Lowレベルに対応するReset信号との入力値に基づき、論理Lowレベルから論理Highレベルに切り替わる。この論理HighレベルのACT信号は、第2系切替部23及び中央処理部31に出力される。これにより、第2系切替部23から出力されるACT信号は、論理Highレベルから論理Lowレベルに変化し、中央処理部31では、第1プログラムメモリ部1が現用系から予備系に、また第2メモリプログラム部2が予備系から現用系に切り替わったことを認識する。
【0055】
このように第1及び第2系切替部13、23からのACT信号により、第1プログラムメモリ部1が予備系に、また第2プログラムメモリ部2が現用系にそれぞれ切り替わったことを認識した中央処理部31は、その時点では第1メモリ部11へのCS信号がenable状態であることから、第1メモリ部11へのプログラム転送が正常終了せずに中断したと判断し、中央処理周辺部32内のフラグ32aを立てる(図2の例では「0」→「1」参照)と共に、第1メモリ部11へのCS信号をenable状態からdisable状態にする。これにより、第1メモリ部11では、プログラム書き込み動作が中止される。
【0056】
上記動作と併行して、中央処理部4は、第1記憶部12に対し、そのCS信号をenable状態からdisable状態にする。これにより、第1記憶部12では、最後に書き込む動作を行っていたアドレスを保持する。図2及び図3の例では、第1記憶部12にはアドレス「0x2」(「2」)が保持される。
【0057】
上記動作により、時刻t1の時点で、予備系から現用系に切り替わった第2プログラムメモリ部2に対し、データ書き込み動作が開始される。すなわち、中央処理部4は、第2メモリ部21のCS信号をenable状態にし、第2記憶部22のCS信号をenable状態にして、上記第1メモリ部11の場合と同様に、第2メモリ部21へのプログラム書き込みを開始する。この動作は、時刻t1〜t2の期間で実行され、図2及び図3の例では、第2メモリ部21のアドレス「0x0」〜「0x3」(「0」〜「3」)の記憶領域上にプログラムが書き込まれる。
【0058】
次いで、時刻t2に達し、第2メモリ部21に対するプログラム書き込み動作を終了すると、中央処理部31は、第2メモリ部21及び第2記憶部22に対するCS信号をdisable状態にすると共に、中央処理部31は、中央処理周辺部32に保持した第1メモリ部11へのプログラム書き込みが正常終了しているか否かをフラグ32aの状態(「0」又は「1」)を参照して判断する。図2の例では、フラグ32aは「1」を示しているので、中央処理部31は、プログラム書き込みが中断していることを認識する。これにより、中央処理部31は、第1メモリ部11に対するプログラム書き込みの準備を開始する。
【0059】
すなわち、中央処理部31は、第1記憶部12へのCS信号をenable状態にする。このとき、第1メモリ部11へのCS信号は、disable状態のままとする。
【0060】
次いで、中央処理部31は、アドレスバスB3上に第1記憶部12用のアドレスを出力する。図2及び図3の例では、第1記憶部12用のアドレスとして、「0xF」(「F」)が出力される。
【0061】
次いで、第1記憶部12は、中央処理部31からアドレスバスB3上に出力されるアドレスをデコードした結果、自身が選択されたことを認識する。これにより、第1記憶部12は、OE信号をenable状態にして、記憶しているアドレス情報をデータバスB2に出力する。図2及び図3の例では、記憶しているアドレス情報として、「0x2」(「2」)が出力される。
【0062】
中央処理部31は、第1記憶部12用の出力したデータを読み取り、第1メモリ部11に対して書き込み動作を最後に行っていたアドレス、すなわち図2及び図3の例では「0x2」(「2」)を認識する。
【0063】
次いで、中央処理部31は、第1メモリ部11へのCS信号をenable状態にして、第1記憶部12に記憶されているアドレスの次のアドレス、すなわち図2及び図3の例では一時記憶しているアドレス「0x2」(「2」)の次のアドレス「0x3」(「3」)をアドレスバスB3上に出力し、これにより、ストレージデバイス33から第1メモリ部11へのプログラム転送が、アドレス「0x3」(「3」)から再開される。すなわち、第1メモリ部11では、書き込み中断したアドレスからプログラム再書き込みが開始される。
【0064】
このプログラム再書き込み動作が終了すると、中央処理部31は、第1メモリ部11へのCS信号と第1記憶部12へのCS信号をいずれもdisable状態にして、フラグ32aを「1」から「0」に降ろす。
【0065】
これにより、第1プログラムメモリ部1の予備系復旧に関する動作が終了する。この動作は、図2及び図3の例では、時刻t2〜t3の期間中に行われる。
【0066】
従って、本実施形態によれば、プログラム書き込みが中断した時のアドレスを記憶しているので、再書き込みを行う時、書き込み中断したアドレスからプログラム書き込み動作を再開することができ、これによりプログラム再書き込み時間を大幅に短縮することができる。
【0067】
なお、本発明は、代表的に例示した上述の実施形態に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、その要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変更例や変形例も本発明の権利範囲に属するものである。
【0068】
【発明の効果】
以上説明したように、本発明によれば、メモリ部に対するデータ書き込みが中断した時、最後に書き込みを行っていたアドレスを一時記憶し、該メモリ部へのデータの再書き込みを行う際に、一時記憶したアドレスから該メモリ部へのデータ書き込みを開始するようにしたため、メモリ部へのデータ書き込みが中断後に再書き込みを行う際の書き込み時間を大幅に低減することができる。
【0069】
また、制御部が記憶させたデータ書き込み完了フラグの状態をみて、前回のデータ書き込み動作結果の状態を把握した上でデータ書き込み動作を行う構成の場合、メモリ部に対するデータ書き込みを開始する際、以前のデータ書き込み状態によってアドレスの途中から書き込むか、アドレスの先頭から書き込むかをオペレータを介さずに実行できる。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかる冗長メモリを用いたコンピュータシステムの構成を示すブロック図である。
【図2】コンピュータシステムの動作を説明するタイミングチャートである。
【図3】コンピュータシステム内のメモリマップを示す図である。
【図4】従来例のコンピュータシステムの構成を示すブロック図である。
【符号の説明】
1 第1プログラムメモリ部
2 第2プログラムメモリ部
3 プログラムI/F(インターフェース)部
4 冗長メモリ
11 第1メモリ部
12 第1記憶部
13 第1系切替部
14、24 リセットスイッチ
15、25 NAND回路
16、26 プルアップ回路
21 第2メモリ部
22 第2記憶部
23 第2系切替部
31 中央処理部
32 中央処理周辺部
33 ストレージメモリ
Claims (12)
- 同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部と、
前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され、前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部とを備え、
前記記憶部は、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第1のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする冗長系メモリ。 - 前記第一のメモリ部へのデータ書き込み途中に前記第二のメモリ部への切り替えが生じたときに該切り替え状態に関する状態信号を出力する出力手段をさらに有することを特徴とする請求項1記載の冗長系メモリ。
- 前記第一のメモリ部及び前記第二のメモリ部は、冗長系メモリを成す現用系及び予備系として、該第一のメモリ部が該現用系のときに該第二のメモリ部が該予備系になり且つ該第一のメモリ部が該予備系のときに該第二のメモリ部が現用系になるように互いに系切替可能に構成され、
前記出力手段は、前記第一のメモリ部及び前記第二のメモリ部の互いの系切替発生時に該切り替え状態に関する状態信号を出力する系切替部を有することを特徴とする請求項2記載の冗長系メモリ。 - 前記所定のデータは、プログラムであり、前記複数のメモリ部は、該プログラムを格納するプログラムメモリ部であることを特徴とする請求項1乃至3のいずれか1項に記載の冗長系メモリ。
- 請求項1乃至4のいずれか1項に記載の冗長系メモリと、
前記冗長系メモリへのデータ書き込みを制御する制御部とを備えたことを特徴とするコンピュータシステム。 - 前記制御部は、
前記第一のメモリ部から前記第二のメモリ部への切り替え時に、該第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持する手段と、
前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断する判断手段と、
前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させるデータ書き込み制御手段とを有することを特徴とする請求項5記載のコンピュータシステム。 - 前記データの再書き込みが必要とされる条件は、
前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、
前記データ書き込み制御手段は、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させることを特徴とするコンピュータシステム。 - 前記制御部は、前記複数のメモリ部に通信可能に接続されるインターフェース部内に搭載されることを特徴とする請求項5乃至7のいずれか1項に記載のコンピュータシステム。
- 前記複数のメモリ部と前記制御部は、マザーボード上に搭載されることを特徴とする請求項5乃至8のいずれか1項に記載のコンピュータシステム。
- 同一のアドレスバス及びデータバスに接続され、該アドレスバスに入力されるアドレスを基に前記データバスに入力される所定のデータを書き込む複数のメモリ部を備えた冗長メモリの再書き込み方法において、
前記冗長メモリに、前記複数のメモリ部毎に前記アドレスバス及びデータバスに並列に接続され且つ前記複数のメモリ部に前記データが書き込まれる度に前記アドレスバスに入力される最新のアドレスを更新可能に一時記憶する記憶部を用意し、
前記記憶部が、前記複数のメモリ部のうち選択された第一のメモリ部へのデータ書き込み途中に前記複数のメモリ部のうち他の第二のメモリ部への切り替えが生じたときに該切り替え直前の最新のアドレスを保持し、その後に前記第1のメモリ部へのデータ書き込みを再開させるときに該データ書き込み用のアドレスとして、保持している前記最新のアドレスを前記データバスに出力することを特徴とする冗長系メモリの再書き込み方法。 - 前記複数のメモリ部の切り替え時に該切り替え状態に関する状態信号を出力する手段と、前記冗長系メモリのデータ書き込みを制御する制御部とを用意し、
前記制御部が、前記状態信号に基づき、前記第一のメモリ部へのデータ書き込みが正常終了したか否かの情報をデータ書き込み完了フラグとして保持し、前記データ書き込み完了フラグを基に、前記第一のメモリ部へのデータ書き込み時に該データの再書き込みが必要とされる条件に該当するか否かを判断し、前記条件に該当すると判断された場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させることを特徴とする冗長メモリの再書き込み方法。 - 前記データの再書き込みが必要とされる条件は、
前記第一のメモリ部へのデータ書き込み時に前記切り替え直前のアドレスから書き込む条件と、先頭のアドレスから書き込む条件とを有し、
前記制御部が、前記切り替え直前のアドレスから書き込む条件に該当する場合に、前記記憶部から前記データバスに出力されたアドレスから前記第一のメモリ部へのデータ書き込みを再開させることを特徴とする請求項11記載の冗長メモリの再書き込み方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003169390A JP2005004619A (ja) | 2003-06-13 | 2003-06-13 | 冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003169390A JP2005004619A (ja) | 2003-06-13 | 2003-06-13 | 冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005004619A true JP2005004619A (ja) | 2005-01-06 |
Family
ID=34094540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003169390A Withdrawn JP2005004619A (ja) | 2003-06-13 | 2003-06-13 | 冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005004619A (ja) |
-
2003
- 2003-06-13 JP JP2003169390A patent/JP2005004619A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060065746A1 (en) | Semiconductor memory device | |
JP2006190402A (ja) | 半導体装置 | |
KR100914265B1 (ko) | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및그것의 읽기 방법 | |
KR101054217B1 (ko) | 기억 장치 | |
JP4254932B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
US20050021918A1 (en) | Memory and information processing systems with lockable buffer memories and related methods | |
JP3281211B2 (ja) | 同期式メモリを有する情報処理装置および同期式メモリ | |
JP2005004619A (ja) | 冗長系メモリ、その再書き込み方法、及びこれを用いたコンピュータシステム | |
JP2006127245A (ja) | 電子機器システム | |
JP4235624B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2004192051A (ja) | 共用端子制御装置 | |
JP2005267354A (ja) | 半導体装置 | |
JPH103434A (ja) | 半導体ディスク装置及びその書き込み方式 | |
JP2019160204A (ja) | 制御装置、画像形成装置および回路装置 | |
US20230335198A1 (en) | Semiconductor device | |
JPH09213092A (ja) | 半導体集積回路装置 | |
JP2002341908A (ja) | コントローラ | |
JPH11328089A (ja) | Pciバスインタフェース用デバイスにおけるid情報書き込み回路 | |
JPH06266626A (ja) | 半導体補助記憶装置のバックアップ方法と不揮発化半導体補助記憶装置 | |
JPH05166391A (ja) | メモリ装置 | |
JPS5925320B2 (ja) | 共有記憶装置の制御装置 | |
KR200193638Y1 (ko) | 교환기에서의 데이터 저장장치 | |
JP2002208284A (ja) | 半導体記憶装置 | |
JP4749689B2 (ja) | メモリ制御回路及びメモリ制御方法 | |
JPH0744468A (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |