(57)【特許請求の範囲】
【請求項１】
複数Ｒａｎｋ搭載されたメモリのリフレッシュのタイミングを同期化するメモリの同期化方法であって、
同期リセット信号によって初期化されるカウンタにおけるカウント値を用いて予め決められた第１の間隔で前記複数Ｒａｎｋに対して順次リフレッシュを行う第１の処理と、
前記同期リセット信号をトリガとして前記第１の間隔よりも短い第２の間隔で前記複数Ｒａｎｋに対して順次リフレッシュを行う第２の処理とを有するメモリの同期化方法。
【請求項２】
請求項１に記載のメモリの同期化方法において、
前記第１の処理は、前記カウンタにおけるカウント値が所定値となる度毎に、リフレッシュ対象となるＲａｎｋを示すＲａｎｋ番号をインクリメントしていくことにより前記複数Ｒａｎｋに対して順次リフレッシュを行い、
前記第２の処理は、Ｒａｎｋに対してリフレッシュが発行された旨が通知された度毎に、リフレッシュ対象となるＲａｎｋを示すＲａｎｋ番号をインクリメントしていくことにより前記複数Ｒａｎｋに対して連続的に順次リフレッシュを行うことを特徴とするメモリの同期化方法。
【請求項３】
請求項１に記載のメモリの同期化方法において、
前記第１の処理は、前記カウンタにおけるカウント値が所定値となる度毎に、リフレッシュ対象となるＲａｎｋを示すＲａｎｋ番号をインクリメントしていくことにより前記複数Ｒａｎｋに対して順次リフレッシュを行い、
前記第２の処理は、前記同期リセット信号をトリガとして前記第２の間隔で前記カウンタを初期化し、前記カウンタにおけるカウント値が所定値となる度毎に、リフレッシュ対象となるＲａｎｋを示すＲａｎｋ番号をインクリメントしていくことにより前記複数Ｒａｎｋに対して順次リフレッシュを行うことを特徴とするメモリの同期化方法。
【請求項４】
複数Ｒａｎｋ搭載されたメモリのリフレッシュのタイミングを同期化するためのリフレッシュ制御回路であって、
同期リセット信号によって初期化され、リフレッシュを行うためのタイミングをカウントする第１のカウンタと、
リフレッシュの間隔を設定し、該間隔を示す値を出力するリフレッシュ間隔設定手段と、
前記第１のカウンタにおけるカウント値と前記リフレッシュ間隔設定手段から出力された値とを比較して一致した場合に、前記第１のカウンタを初期化するための初期化信号を出力する第１の比較手段と、
前記第１のカウンタにおけるカウント値が所定値となった場合にリフレッシュ開始信号を出力する第２の比較手段と、
同期リセット信号によって初期化され、前記第２の比較手段から前記リフレッシュ開始信号が出力される度にカウントアップし、カウント値をＲａｎｋ番号として出力する第２のカウンタと、
前記リフレッシュ開始信号に従って前記第２のカウンタから出力されたＲａｎｋ番号のＲａｎｋに対してリフレッシュを行うコマンドを生成するとともに、Ｒａｎｋに対してリフレッシュが発行された場合にリフレッシュ発行通知信号を出力するメモリコマンド生成手段と、
前記同期リセット信号をトリガとし、前記メモリコマンド生成手段から前記リフレッシュ発行通知信号が出力された場合に該リフレッシュ発行通知信号に含まれるＲａｎｋ番号をインクリメントして該Ｒａｎｋ番号を高速リフレッシュリクエスト信号とともに出力するリフレッシュＲａｎｋ制御手段とを有し、
前記メモリコマンド生成手段は、前記リフレッシュＲａｎｋ制御手段から前記高速リフレッシュリクエスト信号が出力された場合に、該高速リフレッシュリクエスト信号とともに出力されたＲａｎｋ番号のＲａｎｋに対してリフレッシュを行うコマンドを生成するリフレッシュ制御回路。
【請求項５】
複数Ｒａｎｋ搭載されたメモリのリフレッシュのタイミングを同期化するためのリフレッシュ制御回路であって、
同期リセット信号によって初期化され、リフレッシュを行うためのタイミングをカウントする第１のカウンタと、
リフレッシュの間隔を設定し、該間隔を示す値を出力するリフレッシュ間隔設定手段と、
前記リフレッシュ間隔設定手段にて設定される間隔よりも短い間隔を設定し、前記同期リセット信号をトリガとして前記間隔を示す値を出力するリフレッシュ同期制御手段と、
前記リフレッシュ同期制御手段にて前記間隔を示す値が出力された場合は前記第１のカウンタにおけるカウント値と前記リフレッシュ同期制御手段から出力された値とを比較し、それ以外の場合は前記第１のカウンタにおけるカウント値と前記リフレッシュ間隔設定手段から出力された値とを比較し、両者が一致した場合に、前記第１のカウンタを初期化するための初期化信号を出力する第１の比較手段と、
同期リセット信号によって初期化され、前記第１のカウンタにおけるカウント値が所定値となった場合にリフレッシュ開始信号を出力する第２の比較手段と、
前記第２の比較手段から前記リフレッシュ開始信号が出力される度にカウントアップし、カウント値をＲａｎｋ番号として出力する第２のカウンタと、
前記リフレッシュ開始信号に従って前記第２のカウンタから出力されたＲａｎｋ番号のＲａｎｋに対してリフレッシュを行うコマンドを生成するメモリコマンド生成手段とを有するリフレッシュ制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数Ｒａｎｋ搭載されたメモリのリフレッシュのタイミングを同期化させるメモリの同期化方法及びリフレッシュ制御回路に関する。
【背景技術】
【０００２】
従来から、コンピュータ・システムにおいて、コンピュータのハードウェアを構成するＣＰＵ（Central Processing Unit）、メモリ、ディスク、ネットワーク、電源等のコンポーネントを多重化（例えば、二重化または三重化）して、いずれかのコンポーネントに障害が発生してもコンピュータ・システムを停止することなく連続稼動が可能なフォールトトレラント・コンピュータが知られている。
【０００３】
フォールトトレラント・コンピュータでは、多重化されたお互いのコンポーネントどうしが常に同期をとりながら同じタイミングで同一動作を実行するロックステップ方式や、処理結果を待ち合わせて比較することで一部のコンポーネントの同期ズレを許容する方式がある（例えば、特許文献１，２参照。）。
【０００４】
このうち、ＣＰＵバスの完全ロックステップを実施するためには、それ以下のコンポーネントに対する処理が同期している必要がある。このうち、特に、メモリへのアクセスは高速処理が要求されるため、ＣＰＵとメモリ間も完全にロックステップ動作していることが望ましい。
【０００５】
一般のコンピュータ・システムに利用されているメモリは、ＤＲＡＭ（Dynamic Random Access Memory）と呼ばれるタイプで、メモリの記憶内容を保持するためには、リフレッシュ操作により定期的に電荷を補充する必要がある。ＣＰＵからメモリへ対するアクセスが同期していても、リフレッシュのタイミングがずれていると、メモリからＣＰＵに返されるデータのタイミングがずれることもある。
【０００６】
以下に、リフレッシュがずれる要因について説明する。
【０００７】
図１１は、定期的にリフレッシュを発生させるための回路のブロック図である。
【０００８】
図１１に示す回路においては、リフレッシュカウンタ１は、リフレッシュを行うタイミングをカウントするもので、非同期な非同期リセット信号ＲＳＴで初期値ゼロになり、クロック信号ＣＬＫに同期して動作する。また、同期リセット信号でも初期値ゼロにすることができ、図ではリフレッシュカウンタ非同期リセット信号１１２が入力されている。リフレッシュ間隔レジスタ２は、リフレッシュの間隔を設定するレジスタである。リフレッシュ間隔は使用するメモリの種類により最大期間（ｔＲＥＦＩ）が決められており、例えばＪＥＤＥＣで規定されているＤＤＲ ＳＤＲＡＭやＤＤＲ２ ＳＤＲＡＭでは７．８μｓや３．９μｓである。例えば、クロック信号ＣＬＫの周波数が２００ＭＨｚの場合に７．８μｓの周期でリフレッシュを行う場合は、リフレッシュ間隔レジスタ２の値を１５６０（７．８μｓ／５ｎｓ）に設定する。リフレッシュ間隔比較部４は、リフレッシュカウンタ１の値をリフレッシュ間隔レジスタ２の値と比較して一致すれば「１」を出力する。メモリコマンド生成部７は、リフレッシュや他のリクエスト（図では省略）を調停し、メモリバスに対して最適なコマンドを発行する。
【０００９】
図１２は、図１１に示した回路の動作を示すタイミング図である。
【００１０】
非同期リセット信号ＲＳＴでリフレッシュカウンタ１がゼロに初期化され、クロック信号ＣＬＫに同期してリフレッシュカウンタ１がカウントアップしていく。
【００１１】
リフレッシュカウンタ１の値がリフレッシュ間隔レジスタ２の値と一致すると、リフレッシュカウンタ非同期リセット信号１１２がアクティブになりリフレッシュの開始を知らせる。リフレッシュカウンタ１は、リフレッシュカウンタ非同期リセット信号１１２によりゼロに初期化されカウントを続ける。
【００１２】
図に示したＷａｉｔ ＲＥＦからＲｅｑ Ｂｕｓｙまではメモリ・コマンド生成部７の内部信号で、リフレッシュカウンタ非同期リセット信号１１２がＡｓｓｅｒｔされたときにはＲｅｑ Ｂｕｓｙがアクティブなのでリフレッシュはすぐに開始できず、Ｗａｉｔ ＲＥＦ信号がアクティブになる。Ｒｅｑ Ｂｕｓｙが解除されるとＯＫ ＲＥＦがＡｓｓｅｒｔされ、メモリにリフレッシュコマンドが発行される。
【００１３】
したがって、メモリにリフレッシュコマンドを発行するタイミングは、リフレッシュカウンタ１のタイミングが元になっている。多重化されたメモリのリフレッシュタイミングを同期させるためには、リフレッシュ周期を決めるカウンタを同期させる必要がある。
【００１４】
図１３は、Ｂｏａｒｄ Ａ、Ｂｏａｒｄ Ｂで二重化されたフォールトトレラント・コンピュータを示す図である。以下に、図１３に示したフォールトトレラント・コンピュータのメモリリフレッシュのタイミングを同期させる場合の問題点を説明する。
【００１５】
図１４は、図１３に示したフォールトトレラント・コンピュータにおける非同期リセットのタイミングによる問題を示す図である。
【００１６】
図１３に示したＢｏａｒｄ Ａ、Ｂｏａｒｄ Ｂにそれぞれ同時に非同期リセットが入った場合、ボード毎のリセットの経路の特性が多少違っていたり、全く同時であってもセットアップまたはホールドは満たされない場合があるので、図１４に示すように、非同期リセットのタイミングによってはカウンタ値が異なることがある。
【００１７】
図１５は、図１３に示したフォールトトレラント・コンピュータにおいてＢｏａｒｄ Ａを再起動した場合の動作を示す図である。
【００１８】
フォールトトレラント・コンピュータでは障害が発生したモジュールを切り離して再組み込みを行うが、この場合は稼動中のモジュールには非同期リセットで初期化されないので、図１５に示すようにカウンタ値は不一致となる。
【００１９】
図１６は、図１３に示したフォールトトレラント・コンピュータにおいて、リフレッシュ要求のタイミングがずれ、かつ、同期したメモリリードがメモリコマンド生成部７で競合した場合にメモリバスに発行されるコマンドの順序を示す図である。
【００２０】
図１６に示すように、Ｂｏａｒｄ Ａ、Ｂｏａｒｄ Ｂにおいて、同じタイミングでＲｅａｄがＡｓｓｅｒｔされている。このときＢｏａｒｄ ＡのＳｔａｒｔ ＲＥＦタイミングは、Ｂｏａｒｄ ＢのＳｔａｒｔ ＲＥＦより１クロック遅れている。Ｂｏａｒｄ ＡではＲｅａｄとＳｔａｒｔ ＲＥＦが同時であり、Ｒｅａｄの優先順位が高いとメモリへはリードコマンドが発行され、続いてプリチャージ（リフレッシュ対象Ｒａｎｋがオープンの場合）、リフレッシュがそれぞれ発行される。
【００２１】
Ｂｏａｒｄ ＢではＲｅａｄよりも前にＳｔａｒｔ ＲＥＦがＡｓｓｅｒｔされたので、先にリフレッシュ処理が行われ続けてリードが発行される。リフレッシュと同じＲａｎｋへのリードであれば、図１６に示すようにリフレッシュコマンドの後には十分な時間（ｔＲＦＣ）後にアクティベートを行い、リードコマンドが発行できる。
【００２２】
したがって、リフレッシュ要求がわずか１クロック違うだけで、メモリからリードされるデータのレスポンスは数十クロック以上も異なることがある。
【００２３】
上述したメモリリフレッシュ動作については、様々な技術が考えられている（例えば、特許文献３〜５参照。）。
【特許文献１】特開平１１−３３８８３２号公報
【特許文献２】特開２００４−１１０８０３号公報
【特許文献３】特願平７−７３０５９号公報
【特許文献４】特公平７−９６２５号公報
【特許文献５】特開２０００−３３０８１２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、特許文献３，４においては、リフレッシュ動作を遅らせることによりリフレッシュ動作を他のメモリアクセスから隠蔽する方法は記載されているが、リフレッシュタイミングを決定するカウンタの値がＢｏａｒｄ毎に異なった場合にロックステップ動作を保証することができないという問題点がある。
【００２５】
また、メモリに対するリクエストを行ったモジュールに対してリード・データを返すタイミングを待ち合わせてロックステップを保証するシステムでは、メモリアクセスの性能低下が発生してしまうという問題点がある。
【００２６】
また、特許文献５に記載されたものは、単純にメモリ初期化時にリフレッシュ回路のタイミングを合わせるだけのものであって、複数のメモリモジュールに対してリフレッシュ制御を行うために、上位モジュールからのアクセスが考慮されていない。
【００２７】
本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、複数Ｒａｎｋ搭載されたメモリのリフレッシュのタイミングを同期化することができるとともに、通常のメモリアクセスにおける性能低下を最小限に抑えることができるメモリの同期化方法及びリフレッシュ制御回路を提供することを目的とする。
【課題を解決するための手段】
【００２８】
上記目的を達成するために本発明は、
複数Ｒａｎｋ搭載されたメモリのリフレッシュのタイミングを同期化するメモリの同期化方法であって、
同期リセット信号によって初期化されるカウンタにおけるカウント値を用いて予め決められた第１の間隔で前記複数Ｒａｎｋに対して順次リフレッシュを行う第１の処理と、
前記同期リセット信号をトリガとして前記第１の間隔よりも短い第２の間隔で前記複数Ｒａｎｋに対して順次リフレッシュを行う第２の処理とを有する。
【００２９】
上記のように構成された本発明においては、複数Ｒａｎｋ搭載されたメモリに対して、通常状態においては、同期リセット信号によって初期化されるカウンタにおけるカウント値を用いて予め決められた第１の間隔で順次リフレッシュを行う通常リフレッシュが行われており、同期リセット信号がアクティブになった場合は、第１の間隔よりも短い第２の間隔で順次リフレッシュを行う高速リフレッシュが行われる。これにより、同期させるボードに対して同じタイミングで同期リセット信号が与えられてこの同期リセット信号によってリフレッシュのタイミングとなるカウンタが初期化されることで、以降のリフレッシュのタイミングが同期し、また、同期リセット信号が与えられた時にだけ集中的にリフレッシュが行われることにより、通常のメモリアクセスにおける性能低下が最小限に抑えられる。
【発明の効果】
【００３０】
本発明は、以上説明したように構成されているため、以下に記載するような効果を奏する。
【００３１】
（１）同期させるボードに対して同じタイミングで同期リセット信号が与えられ、この同期リセット信号によってリフレッシュのタイミングとなるカウンタが初期化されるため、以降のメモリのリフレッシュのタイミングを同期化することができる。
【００３２】
（２）同期リセット信号が与えられた時にだけ集中的にリフレッシュが行われることになり、通常のメモリアクセスにおける性能低下を最小限に抑えることができる。
【発明を実施するための最良の形態】
【００３３】
以下に、本発明の実施の形態について図面を参照して説明する。
【００３４】
図１は、本発明のリフレッシュ制御回路の実施の一形態を示す図である。
【００３５】
本形態は図１に示すように、第１のカウンタであるリフレッシュカウンタ１と、リフレッシュ間隔設定手段であるリフレッシュ間隔レジスタ２と、第１の比較手段であるリフレッシュ間隔比較部４と、第２の比較手段であるリフレッシュタイミング比較部３と、第２のカウンタであるリフレッシュＲａｎｋカウンタ６と、リフレッシュＲａｎｋ制御部５と、メモリコマンド生成部７とから構成され、複数Ｒａｎｋ搭載されたメモリのリフレッシュのタイミングを同期化するためのものである。
【００３６】
リフレッシュカウンタ１は、リフレッシュを行うためのタイミングをカウントするためのものであり、クロック信号に同期して動作してクロックの立ち上がり毎に＋１ずつカウントアップし、リフレッシュカウント値１０１を出力する。そして、同期リセット信号ＳＹＮＣあるいはリフレッシュ初期化信号１０４によってカウント値が初期化される。
【００３７】
リフレッシュ間隔レジスタ２は、リフレッシュの間隔を任意に設定するレジスタであり、その間隔を示すリフレッシュ間隔値１０２を出力する。
【００３８】
リフレッシュ間隔比較部４は、リフレッシュカウンタ１から出力されたリフレッシュカウント値１０１と、リフレッシュ間隔レジスタ２から出力されたリフレッシュ間隔値１０２とを比較し、両者が一致した場合に、リフレッシュカウンタ１を初期化するためのリフレッシュ初期化信号１０４を「１」として出力する。
【００３９】
リフレッシュタイミング比較部３は、リフレッシュカウンタ１から出力されたリフレッシュカウント値１０１が、予め決められた所定値（例えば、「１」）となった場合にリフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３を「１」として出力する。
【００４０】
リフレッシュＲａｎｋカウンタ６は、リフレッシュタイミング比較部３から出力されたリフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３が「１」の時にカウントアップするカウンタで、そのカウント値を通常リフレッシュＲａｎｋ番号１０９として出力する。この通常リフレッシュＲａｎｋ番号１０９は、リフレッシュ対象となるメモリ（ＤＩＭＭ）のＲａｎｋ番号を示す。すなわち、リフレッシュタイミング比較部３から出力されたリフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３が「１」となる度毎に、Ｒａｎｋ番号をインクリメントしていく。そして、同期リセット信号ＳＹＮＣによってカウント値が初期化される。
【００４１】
リフレッシュＲａｎｋ制御部５は、同期リセット信号ＳＹＮＣがアクティブになると、リフレッシュを同期化するためのリフレッシュタイミングで高速リフレッシュリクエスト信号１１０をアクティブにして出力するとともに、メモリコマンド生成部７からリフレッシュ発行通知信号１０７が通知された場合にリフレッシュ発行通知信号１０７に含まれるＲａｎｋ番号をインクリメントして高速リクエストＲａｎｋ番号１１１として出力する。
【００４２】
メモリコマンド生成部７は、リフレッシュや他のリクエストを調停し、メモリバスに対して最適なタイミングでコマンドを発行するものであって、リフレッシュタイミング比較部３から出力されたリフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３に従って、リフレッシュＲａｎｋカウンタ６から出力された通常リフレッシュＲａｎｋ番号１０９によるＲａｎｋ番号のＲａｎｋに対してリフレッシュを行うコマンドを生成するとともに、Ｒａｎｋに対してリフレッシュが発行された場合にリフレッシュ発行通知信号１０７を出力し、また、リフレッシュＲａｎｋ制御部５から高速リフレッシュリクエスト信号１１０が出力された場合に、リフレッシュＲａｎｋ制御部５から出力された高速リフレッシュＲａｎｋ番号１１１によるＲａｎｋ番号のＲａｎｋに対してリフレッシュを行うコマンドを生成する。
【００４３】
以下に、上記のように構成されたリフレッシュ制御回路を用いたメモリの同期化方法について説明する。
【００４４】
図２は、図１に示したリフレッシュ制御回路の基本となる動作を説明するための回路構成を示す図である。
【００４５】
図２に示した回路において、リフレッシュ間隔レジスタ２、リフレッシュカウンタ１及びリフレッシュ間隔比較部４の詳細については、図１１に示したものと同様である。リフレッシュタイミング比較部３は、比較回路であり、リフレッシュカウンタ１から出力される出力リフレッシュカウント値１０１が「１」のときにリフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３をアクティブにする。ここでは「１」と比較しているが他の値でも構わない。ただし、リフレッシュカウンタ１に初期値が「０」のアップカウンタを用いている場合は、リフレッシュカウンタ１が非同期リセット中にリフレッシュカウント値１０１が「０」となるので、「０」と比較すると初期状態でリフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３がずっとアクティブになってしまうので注意が必要である。リフレッシュカウンタ１はリフレッシュ間隔レジスタ２で設定された一定期間毎にリセットされるので、リフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３は一定期間毎に１クロック間アクティブになる。
【００４６】
図３は、図２に示したリフレッシュＲａｎｋ制御部５及びメモリコマンド生成部７の動作を説明するためのタイミングチャートである。
【００４７】
リフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３を受け取ったリフレッシュＲａｎｋ制御部５は、メモリバスに接続された全てのＲａｎｋに対してリフレッシュを発行するために、リフレッシュリクエスト信号（ＲＥＦ Ｒｅｑ）１０５とリフレッシュＲａｎｋ信号（ＲＥＦ Ｒａｎｋ）１０６をメモリコマンド生成部７に対して出力する。
【００４８】
メモリコマンド生成部７は、リフレッシュリクエスト信号（ＲＥＦ Ｒｅｑ）１０５がアクティブの間に示されたリフレッシュＲａｎｋ信号（ＲＥＦ Ｒａｎｋ）１０６のメモリにリフレッシュを発行するとリフレッシュ発行通知信号（ＲＥＦ Ａｃｋ）１０７をリフレッシュＲａｎｋ制御部５に返してリフレッシュを発行したことを通知する。
【００４９】
リフレッシュＲａｎｋ制御部５は、リフレッシュ発行通知信号（ＲＥＦ Ａｃｋ）１０７を受け取ると、Ｒａｎｋ番号をインクリメントし、次のリフレッシュＲａｎｋ信号（ＲＥＦ Ｒａｎｋ）１０６へのリフレッシュリクエスト信号（ＲＥＦ Ｒｅｑ）１０５をＡｓｓｅｒｔする。この動作は、メモリの全てのＲａｎｋに対して行われる。
【００５０】
ここで、システムを同期させるための同期リセット信号ＳＹＮＣがＡｓｓｅｒｔされると、リフレッシュカウンタ１及びリフレッシュＲａｎｋ制御部５が初期値となる。リフレッシュ対象となるメモリのＲａｎｋは「０」からとなり、リフレッシュのタイミングは図４に示すようにＢｏａｒｄ Ａ、Ｂｏａｒｄ Ｂで一致する。なお、図４は、図２に示した回路を用いた２つのＢｏａｒｄにおけるリフレッシュタイミングを示す図である。
【００５１】
以上の動作により、一定期間毎に、メモリの全Ｒａｎｋに対して連続してリフレッシュを発行できる。実際は、他のメモリアクセスが競合するので、図３に示した様にリフレッシュが連続しないこともある。
【００５２】
図５は、図１に示したリフレッシュ制御回路の基本となる他の動作を説明するための回路構成を示す図である。
【００５３】
図２に示した回路において、リフレッシュ間隔レジスタ２、リフレッシュカウンタ１及びリフレッシュ間隔比較部４の詳細については図１１に示したものと同様であり、また、リフレッシュタイミング比較部３の詳細については図２に示したものと同様である。
【００５４】
図６は、図５に示したリフレッシュＲａｎｋカウンタ６及びメモリコマンド生成部７の動作を説明するための図である。
【００５５】
リフレッシュＲａｎｋカウンタ６は、リフレッシュ対象となるメモリのＲａｎｋを決めるものでリフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３によりカウントアップする。メモリコマンド生成部７は、リフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３がアクティブの間に示されたリフレッシュＲａｎｋ信号（ＲＥＦ Ｒａｎｋ）１０６のメモリに対してリフレッシュを発行する。この方法では、Ｒａｎｋ数×リフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３の周期が各Ｒａｎｋのリフレッシュ周期（ｔＲＥＦＩ）となるので、リフレッシュ間隔レジスタ２にはリフレッシュ周期／Ｒａｎｋ数の値を設定する。
【００５６】
図６に示した例では、４Ｒａｎｋ構成のメモリに対するリフレッシュであるため、リフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３の間隔がｔＲＥＦＩ／４となっている。
【００５７】
図７は、４Ｒａｎｋ構成に対するリフレッシュの様子を示す図である。
【００５８】
図７に示すように、ｔＲＥＦＩ／４の周期でリフレッシュするＲａｎｋを順番に換えていき、１Ｒａｎｋ当たりのリフレッシュ周期がｔＲＥＦＩとなる。
【００５９】
上述したような基本動作となる回路構成では、以下に記載するような欠点がある。
【００６０】
図２に示した回路構成では、一定期間毎に全てのＲａｎｋに対してリフレッシュを連続して発行するため、他のメモリアクセスが競合した場合、リフレッシュ動作が集中して挿入され、それにより、リフレッシュの度に一時的な性能低下を引き起こしてしまう。
【００６１】
また、図５に示した回路構成では、集中的にリフレッシュが行われないため、図２に示した回路のようにリフレッシュのタイミングでメモリアクセス性能が一時的に低下することはない。どんなに待たされても１回のリフレッシュ期間だけで、これは従来技術のようにリフレッシュを待たせることで解消可能である。しかしながら、同期リセット信号ＳＹＮＣがＡｓｓｅｒｔされるタイミングによっては、規定の時間内にリフレッシュが行われない場合がある。
【００６２】
図８は、ｔＲＥＦＩ／４の間隔でＲａｎｋ０→Ｒａｎｋ１とリフレッシュした後、Ｒａｎｋ２をリフレッシュする直前で同期リセット信号ＳＹＮＣを受け付けた場合を示す図である。
【００６３】
同期リセット信号ＳＹＮＣを受け付けると、リフレッシュカウンタ１及びリフレッシュＲａｎｋカウンタ６がリセットされるので、予定されていたＲａｎｋ２、Ｒａｎｋ３へのリフレッシュがキャンセルされ、Ｒａｎｋ０から順にリフレッシュが行われる。Ｒａｎｋ０、Ｒａｎｋ１へのリフレッシュは、ｔＲＥＦＩ時間内に行われるが、Ｒａｎｋ２、Ｒａｎｋ３に対するリフレッシュは、ｔＲＥＦＩを大幅に超えてしまうため、メモリの内容が保証されない。
【００６４】
これに対して図１に示した回路においては、上述したような、図２に示した回路におけるリフレッシュ集中によるメモリ性能低下と、図５に示した回路におけるリフレッシュ期間の問題がない。
【００６５】
図１に示した回路において、通常のリフレッシュ動作は、図５に示した回路と同様である。
【００６６】
このとき、メモリコマンド生成部７に入力されるリフレッシュ・リクエスト信号（ＲＥＦ Ｒｅｑ）１０５及びリフレッシュＲａｎｋ信号（ＲＥＦ Ｒａｎｋ）１０６は、それぞれリフレッシュ開始信号（Ｓｔａｒｔ ＲＥＦ）１０３及び通常リフレッシュＲａｎｋ信号１０９が選択されている。
【００６７】
ここで、同期リセット信号ＳＹＮＣがＡｓｓｅｒｔされた場合、リフレッシュリクエスト信号（ＲＥＦ Ｒｅｑ）１０５及びリフレッシュＲａｎｋ信号（ＲＥＦ Ｒａｎｋ）１０６はそれぞれ、リフレッシュＲａｎｋ制御部５から出力された高速リフレッシュリクエスト信号１１０及び高速リフレッシュＲａｎｋ信号１１１に切り換わり、全てのＲａｎｋに対してリフレッシュが行われるまでこの状態となり、その後は通常のリフレッシュに戻る。リフレッシュＲａｎｋ制御部５の出力に切り換わった場合の動作は、図２に示したものと同様である。
【００６８】
図９は、通常のリフレッシュタイミングと同期リセット信号ＳＹＮＣがＡｓｓｅｒｔされたときのリフレッシュタイミングについて示す図である。
【００６９】
第１の処理である通常のリフレッシュでは、第１の間隔となるｔＲＥＦＩ／４のタイミングでＲａｎｋを切り換えながらリフレッシュが行われる。そして、同期リセット信号ＳＹＮＣがＡｓｓｅｒｔされると、第２の処理である高速リフレッシュとして、各Ｒａｎｋに対して連続的にリフレッシュが行われる。
【００７０】
本例では、図８に示したものと同様に、Ｒａｎｋ２へのリフレッシュの直前で同期リセット信号ＳＹＮＣがＡｓｓｅｒｔされているが、Ｒａｎｋ２へのリフレッシュタイミングは（ｔＲＥＦＩ）＋δというわずかな遅れで発行でき、Ｒａｎｋ０、Ｒａｎｋ１、Ｒａｎｋ３に対しては、ｔＲＥＦＩよりも短い期間でリフレッシュが発行される。
【００７１】
このようにして、本形態においては、同期リセット信号ＳＹＮＣによりリフレッシュタイミングの基準となるカウンタ及びリフレッシュ対象のＲａｎｋ番号を初期化しているので、複数Ｒａｎｋ搭載されたメモリのリフレッシュのタイミングを同期化できる。また、同期化処理時にリフレッシュ間隔を通常動作時と切り換えることで、通常動作時の処理速度へ与える影響を極力少なくしたリフレッシュが可能となる。
【００７２】
（他の実施の形態）
図１０は、本発明のリフレッシュ制御回路の他の実施の形態を示す図である。
【００７３】
本形態は、基本的構成は図１に示したものと同様であるが、同期リセット信号 ＳＹＮＣがＡｓｓｅｒｔされたときのリフレッシュタイミングを切り換える回路についてさらに工夫したものであって、図１０に示すように、リフレッシュ間隔レジスタ２にて設定されるリフレッシュ間隔よりも短いリフレッシュ間隔を設定するレジスタを有し、同期リセット信号ＳＹＮＣをトリガとしてそのリフレッシュ間隔を示す値を高速リフレッシュ間隔信号１１３として出力するリフレッシュ同期制御部８を有するものである。さらに、リフレッシュ同期制御部８は、同期リセット信号ＳＹＮＣをトリガとして高速リフレッシュ期間を示すリフレッシュカウンタ非同期リセット信号を一定期間（全Ｒａｎｋのリフレッシュが完了するまで）Ａｓｓｅｒｔする。
【００７４】
リフレッシュ間隔比較部４は、リフレッシュ同期制御部８から高速フレッシュ間隔信号１１３が出力されている状態においてはリフレッシュカウンタ１から出力されたリフレッシュカウント値１０１とリフレッシュ同期制御部８から出力された高速フレッシュ間隔信号１１３とを比較し、それ以外の状態においてはリフレッシュカウンタ１から出力されたリフレッシュカウント値１０１とリフレッシュ間隔レジスタ２から出力されたリフレッシュ間隔値０１２とを比較し、両者が一致した場合に、リフレッシュカウンタ１を初期化するためのリフレッシュカウンタ初期化信号１０４を出力する。
【００７５】
これにより、リフレッシュの同期化処理時には、リフレッシュ間隔比較部４においてリフレッシュカウント値１０１と高速リフレッシュ間隔信号１１３とが比較されるので、通常のリフレッシュよりも早い周期でリフレッシュが発行可能となる。
【図面の簡単な説明】
【００７６】
【図１】本発明のリフレッシュ制御回路の実施の一形態を示す図である。
【図２】図１に示したリフレッシュ制御回路の基本となる動作を説明するための回路構成を示す図である。
【図３】図２に示したリフレッシュＲａｎｋ制御部及びメモリコマンド生成部の動作を説明するためのタイミングチャートである。
【図４】図２に示した回路を用いた２つのＢｏａｒｄにおけるリフレッシュタイミングを示す図である。
【図５】図１に示したリフレッシュ制御回路の基本となる他の動作を説明するための回路構成を示す図である。
【図６】図５に示したリフレッシュＲａｎｋカウンタ及びメモリコマンド生成部の動作を説明するための図である。
【図７】４Ｒａｎｋ構成に対するリフレッシュの様子を示す図である。
【図８】ｔＲＥＦＩ／４の間隔でＲａｎｋ０→Ｒａｎｋ１とリフレッシュした後、Ｒａｎｋ２をリフレッシュする直前で同期リセット信号ＳＹＮＣを受け付けた場合を示す図である。
【図９】通常のリフレッシュタイミングと同期リセット信号ＳＹＮＣがＡｓｓｅｒｔされたときのリフレッシュタイミングについて示す図である。
【図１０】本発明のリフレッシュ制御回路の他の実施の形態を示す図である。
【図１１】定期的にリフレッシュを発生させるための回路のブロック図である。
【図１２】図１１に示した回路の動作を示すタイミング図である。
【図１３】Ｂｏａｒｄ Ａ、Ｂｏａｒｄ Ｂで二重化されたフォールトトレラント・コンピュータを示す図である。
【図１４】図１３に示したフォールトトレラント・コンピュータにおける非同期リセットのタイミングによる問題を示す図である。
【図１５】図１３に示したフォールトトレラント・コンピュータにおいてＢｏａｒｄ Ａを再起動した場合の動作を示す図である。
【図１６】図１３に示したフォールトトレラント・コンピュータにおいて、リフレッシュ要求のタイミングがずれ、かつ、同期したメモリリードがメモリコマンド生成部で競合した場合にメモリバスに発行されるコマンドの順序を示す図である。
【符号の説明】
【００７７】
１    リフレッシュカウンタ
２    リフレッシュ間隔レジスタ
３    リフレッシュタイミング比較部
４    リフレッシュ間隔比較部
５    リフレッシュＲａｎｋ制御部
６    リフレッシュＲａｎｋカウンタ
７    メモリコマンド生成部
８    リフレッシュ同期制御部
【図１】
0004816911.tif 000002
【図２】
0004816911.tif 000003
【図３】
0004816911.tif 000004
【図４】
0004816911.tif 000005
【図５】
0004816911.tif 000006
【図６】
0004816911.tif 000007
【図７】
0004816911.tif 000008
【図８】
0004816911.tif 000009
【図９】
0004816911.tif 000010
【図１０】
0004816911.tif 000011
【図１１】
0004816911.tif 000012
【図１２】
0004816911.tif 000013
【図１３】
0004816911.tif 000014
【図１４】
0004816911.tif 000015
【図１５】
0004816911.tif 000016
【図１６】
0004816911.tif 000017