(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024048429
(43)【公開日】2024-04-09
(54)【発明の名称】メモリミラーリング装置、及びメモリミラーリング方法
(51)【国際特許分類】
G06F 11/16 20060101AFI20240402BHJP
G06F 11/20 20060101ALI20240402BHJP
【FI】
G06F11/16 666
G06F11/20 656
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022154324
(22)【出願日】2022-09-28
(71)【出願人】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】佐々木 努
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034CC02
(57)【要約】
【課題】 冗長化されたメモリモジュールからリードデータが異なるタイミングでリプライされても、ミラーリング冗長性を確保できるメモリミラーリング装置、及びメモリミラーリング方法を提供する。
【解決手段】 プロセッサからの読み出し指示に基づいて、第1メモリモジュール及び第2メモリモジュールからデータを読み出すメモリミラーリング装置であって、上記第1メモリモジュール及び上記第2メモリモジュールから読み出されたデータの到着タイミング、上記読み出されたデータの訂正不可能エラーの有無、及び上記訂正不可能エラーのタイミングを監視し、上記第1メモリモジュールから読み出されたデータ及び上記第2メモリモジュールから読み出されたデータの上記プロセッサへ向けた送出タイミングを指示すると共に、上記第1メモリモジュールから読み出されたデータ及び上記第2メモリモジュールから読み出されたデータのいずれを選択するか指示する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサからの書き込み指示に基づいて、第1メモリモジュール及び第2メモリモジュールに同一のデータを書き込むと共に、前記プロセッサからの読み出し指示に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールからデータを読み出すメモリミラーリング装置であって、
入力されるデータ選択信号に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールよりそれぞれ読み出されるデータのいずれかを選択するデータ選択部と、
前記データ選択部と前記第1メモリモジュールとの間に挿入され、前記第1メモリモジュールから読み出されたデータをデータ送出指示信号が指示するタイミングで前記データ選択部へデータ送出を行う第1チャネル制御部と、
前記データ選択部と前記第2メモリモジュールとの間に挿入され、前記第2メモリモジュールから読み出されたデータをデータ送出指示信号が指示するタイミングで前記データ選択部へデータ送出を行う第2チャネル制御部と、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータの到着タイミング、前記読み出されたデータの訂正不可能エラーの有無、及び前記訂正不可能エラーのタイミングを監視し、この監視結果に基づいて、前記第1チャネル制御部及び前記第2チャネル制御部に前記データ送出指示信号を出力し、前記データ選択部に前記データ選択信号を出力するメモリミラーリング制御部と、を含む
メモリミラーリング装置。
【請求項2】
前記メモリミラーリング制御部は、前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、訂正不可能エラーがない方の読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項3】
前記メモリミラーリング制御部は、前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータに訂正不可能エラーがないときには、先に読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項4】
前記第1メモリモジュール及び前記第2メモリモジュールからデータ列を読み出す場合、
前記メモリミラーリング制御部は、前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータ列が訂正不可能エラーを含むときには、先に読み出されたデータを選択することを基本としつつ、前記データ列のうち前記訂正不可能エラーが発生しているデータに対しては後に読み出されたデータ列の訂正不可能エラーのないデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項5】
前記メモリミラーリング制御部は、前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの到着と前記第2メモリモジュールから読み出されたデータの到着を待つとともに、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、訂正不可能エラーがない方の読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項6】
前記第1メモリモジュール及び前記第2メモリモジュールからデータ列を読み出す場合、
前記メモリミラーリング制御部は、前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの到着と前記第2メモリモジュールから読み出されたデータの到着を待つとともに、
訂正不可能エラーが発生しているデータを先に読み出されたデータ列が含むときには、先に読み出されたデータを選択することを基本としつつ、前記データ列のうち前記訂正不可能エラーが発生しているデータに対しては後に読み出されたデータ列の訂正不可能エラーのないデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項7】
前記しきい値は、前記メモリミラーリング制御部に指定された、バースト転送のバースト長である、
請求項3乃至6のいずれか一項に記載のメモリミラーリング装置。
【請求項8】
プロセッサからの書き込み指示に基づいて、第1メモリモジュール及び第2メモリモジュールに同一のデータを書き込むと共に、前記プロセッサからの読み出し指示に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールからデータを読み出すメモリミラーリング方法であって、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータの到着タイミング、前記読み出されたデータの訂正不可能エラーの有無、及び前記訂正不可能エラーのタイミングを監視し、
この監視結果に基づいて、前記第1メモリモジュールから読み出されたデータ及び前記第2メモリモジュールから読み出されたデータの前記プロセッサへ向けた送出タイミングを指示すると共に、前記第1メモリモジュールから読み出されたデータ及び前記第2メモリモジュールから読み出されたデータのいずれを選択するか指示する、
メモリミラーリング方法。
【請求項9】
前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータに訂正不可能エラーがないときには、先に読み出されたデータを選択するように指示する、
請求項8に記載のメモリミラーリング方法。
【請求項10】
前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの到着と前記第2メモリモジュールから読み出されたデータの到着を待つとともに、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、訂正不可能エラーがない方の読み出されたデータを選択するように指示する、
請求項8に記載のメモリミラーリング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリミラーリング装置、及びメモリミラーリング方法に関し、特にミラーリングされたメモリから読み出した各チャネルの読み出しデータの到着時間がずれてもデータの読み出しを遅らせることなくデータの冗長性を確保する技術に関する。
【背景技術】
【0002】
近年のデータ量の増大に対応するため、コンピュータの処理能力(例えば、スループット)の向上が求められている。コンピュータの処理能力の向上を行うためには、メモリデータの高速化(高周波化)とメモリへリード命令が発行されてからリードデータをプロセッサへなるべく早くリプライすることが必須となる。このような、メモリデータの高速化に対応するため、1チャネル当たりの伝送速度を、マルチギガビット相当に高速化したメモリインターフェースがJEDEC(Joint Electron Device Engineering Council)によりDDR(Double Data Rate)として標準規格化されている。
【0003】
しかし、メモリデータの高速化にともない、システムに搭載するメモリインターフェースを設計することが非常に困難になってきている。これに対し、DDR等の標準規格に対応したメモリインターフェースマクロが、各社IP(Intellectual Property)ベンダーによって汎用IPマクロとして販売されている。したがって、コンピュータシステムを構成する際に、このようなDDRインターフェースに準拠した、既に実績のある汎用IP(メモリコントローラ、PHY[物理インターフェース])を外部購入して自身のシステムに組み込むことにより、メモリインターフェースを自作しなくとも、比較的容易かつ短期間で装置を作り上げることができるようになっている。
【0004】
一方、近年のコンピュータには、可用性を高めるためにメモリミラーリングの機能を搭載するものがある。メモリミラーリングでは、2つのメモリに同一のデータを書き込むことにより冗長性を持たせる。ここで、2つのメモリのうちで一方のメモリに訂正不可能エラーが発生しデータが破損した場合でも、もう一方のメモリから読み込んだデータを使用することにより、データの消失を防ぐことができるようにしている。
【0005】
図8は、第1の背景技術のメモリミラーリング機能を有するコンピュータ装置の一例を示すブロック図である。
図8のコンピュータ装置100は、CPU(Central Processing Unit)101と、CPUコントローラ102、メモリコントローラ103、及び二つのメモリモジュール(第1メモリモジュール104a、第2メモリモジュール104b)から構成される。
【0006】
メモリコントローラ103は、CPUコントローラ102と接続されており、また、メモリモジュール(104a、104b)とメモリ制御バス105a、105b及びメモリデータバス106a、106bで接続されている。メモリコントローラ103は、CPUコントローラ102からのメモリアクセス要求に応じてメモリモジュール(104a、104b)の読み書きを行う。
【0007】
図9は、メモリコントローラ103がメモリモジュール(104a、104b)からデータをリードする場合のタイミングチャートである。メモリコントローラ103は、時刻T100とT101でメモリ制御バス105aとメモリ制御バス105bに対して同一のアクティブコマンド、及び、リードコマンドを同一のタイミングで出力する。アクティブコマンド出力後、時刻T102になるとメモリデータバス106aとメモリデータバス106bにメモリモジュール(104a、104b)からリードデータが全く同一のタイミングで出力される。すなわち、
図9に示すように、時刻T102になると、第1メモリモジュール104aからリードデータD0、D1、D2、D3、D4、D5、D6、D7が順に出力される。また時刻T102になると、第2メモリモジュール104bからリードデータD0、D1、D2、D3、D4、D5、D6、D7が順に出力される。
【0008】
メモリコントローラ103は、メモリデータバス106aとメモリデータバス106bからデータを全く同一のタイミングで取り込む。このとき、エラーチェックを行い、訂正不可能エラーの検出を行う。ここで、一方のメモリデータバスから読み出したデータに訂正不可能エラーがある場合は、もう一方のメモリデータバスのデータを使用して、時刻T103でCPUコントローラ102に対して、読み込みデータを出力する。以上のように、冗長化されたメモリモジュールから同一タイミングでリードしたデータを使用してメモリミラーリングを実現している。
【0009】
図10は、第2の背景技術のメモリミラーリング機能を有するコンピュータ装置の一例を示すブロック図である。
図10のコンピュータ装置200は、CPU(Central Processing Unit)201と、CPUコントローラ202、メモリコントローラ203、及び二つのメモリモジュール(第1メモリモジュール204a、第2メモリモジュール204b)から構成される。
【0010】
メモリコントローラ203は、CPUコントローラ202と接続されている。また、メモリコントローラ203は、メモリモジュール(204a、204b)と、メモリ制御バス205a、205b及びメモリデータバス206a、206bにより接続されている。メモリコントローラ203は、CPUコントローラ202からのメモリアクセス要求に応じてメモリモジュール(204a、204b)の読み書きを行う。
【0011】
図10のコンピュータ装置200のメモリコントローラ203は、データの読み出し順が異なるように、冗長化メモリモジュール(204a、204b)に同一タイミングで読み出しコマンドを発行する。メモリモジュール(204a、204b)は、読み出しコマンドの発行と並行して、それぞれ指定された順に同一タイミングでメモリデータバス206a、206bからデータを出力する。その結果、メモリコントローラ203には、メモリモジュール(204a、204b)から同じ順番でデータを読み出した場合に比べて短い時間で、上位装置から指定された範囲のデータが揃うことになる。
【0012】
図11は、メモリコントローラ203がメモリモジュール(204a、204b)からデータをリードする場合のタイミングチャートである。メモリコントローラ203は、時刻T200とT201でデータの読み出し順が異なるように、メモリ制御バス205aとメモリ制御バス205bに対して、アクティブコマンド、及び、リードコマンドを同一のタイミングで出力する。アクティブコマンド出力後、時刻T202になるとメモリデータバス206aとメモリデータバス206bにメモリモジュール(204a、204b)からリードデータが同一のタイミングで出力される。すなわち、
図11に示すように、時刻T202になると、第1メモリモジュール204aからリードデータD0、D1、D2、D3、D4、D5、D6、D7が順に出力され、第2メモリモジュール204bからリードデータD4、D5、D6、D7、D0、D1、D2、D3が順に出力される。
【0013】
メモリコントローラ203は、メモリデータバス206aとメモリデータバス206bからデータを全く同一のタイミングで取り込む。このとき、エラーチェックを行い、訂正不可能エラーの検出を行う。ここで、訂正不可能なエラーがない場合には、時刻T203でCPUコントローラ202に対して、読み込みデータを出力する。一方のメモリデータバスから読み出したデータに訂正不可能エラーがある場合は、もう一方のメモリデータバスのデータを使用して、時刻T204でCPUコントローラ202に対して読み込みデータを出力する。したがって、二つのメモリモジュールから同じ順番でデータを読み出した場合に比べて2分の1の時間で、上位装置から指定された範囲のデータがメモリコントローラに揃う。以上のように、冗長化されたメモリモジュールから同一タイミングでリードしたデータを使用してメモリミラーリングを実現している。
【0014】
特許文献1では、上述した
図8、9の第1の背景技術や、
図10、11の背景技術のような、メモリミラーリング機能を有するコンピュータが提案されている。また特許文献1では上述した
図9の第1の背景技術のような二つのメモリモジュールから、同じ読み出し順でリードデータを読み出すことが提案されている。また特許文献1では上述した
図11の第2の背景技術のような二つのメモリモジュールから、データの読み出し順が異なるようにリードデータを読み出すことが提案されている。
【0015】
特許文献2は、ミラーリング制御装置に関するものであり、書き込み対象のデータを分割して、その2つのデータをアドレスの値が1つ異なる各アドレスに対して格納すること、ミラーリングのためのメモリにも同様に分割したデータを格納することが提案されている。特許文献2では、アドレスに対して1を加えたアドレスに格納されたデータをメモリモジュールから読み出すことによって、より簡単なアドレスの制御でミラーリングを実現している。
【0016】
特許文献3は、データを格納する記憶素子を複数含むメモリが二重化された二重化記憶装置に関するものである。特許文献3では、二重化されたメモリに対する制御に関する同期エラーやメモリから読み出されたデータに関する訂正不可能なビットエラーが検出されると、エラーが通知されていない方の系統を選択して、読み出されたデータとすることが提案されている。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】特開2008-158804号公報
【特許文献2】特開2011-048742号公報
【特許文献3】特開2006-260160号公報
【発明の概要】
【発明が解決しようとする課題】
【0018】
しかしながら、上述した背景技術のメモリミラーリングの方法にはいくつか課題がある。
【0019】
第1の課題は、二つのメモリモジュールからのリードデータが異なるタイミングでリプライされた場合、メモリデータの冗長性を確保できない、ことである。この課題は、二つのメモリモジュールからのリードデータの到着時間が全く同一とならないケースが存在することに起因する。二つのメモリモジュールからのリードデータが異なるタイミングでリプライされると、一方のチャネルに訂正不可能エラーが生じた場合にデータ切り替えの際にデータ連続性が損なわれ、CPUへのリプライデータが不正になってしまう。近年のメモリインターフェースの高速化にともない、二つのメモリモジュールのリプライデータの到着時間を合わせるのは非常に困難でコストがかかる。さらに、メモリインターフェースとして汎用IP等を採用した場合、IP内部はブラックボックスのため、二つのメモリモジュールの到着時間を制御するのは非常に困難である。
【0020】
第2の課題は、冗長化メモリモジュールへデータをライトする際のライト制御が複雑になるということである。この課題が発生する原因は、二つのメモリモジュールへのデータリードを同時に行わなければならないことに起因する。二つのメモリモジュールへのデータリードを同時に行わなければならないということは、データリード時に二つのメモリモジュールへのデータライトが完了している必要がある。したがって、二つのチャネルのライトの状態を管理しておき、メモリリード前に二つのチャネルのライト状態を確認する必要があるため制御が複雑になってしまう。
【0021】
本発明の目的は、上述した課題を鑑み、二つのメモリモジュールからリードデータが異なるタイミングでリプライされても、ミラーリング冗長性を確保できるメモリミラーリング装置、及びメモリミラーリング方法を提供することにある。
【課題を解決するための手段】
【0022】
前記目的を達成するため、本発明に係るメモリミラーリング装置は、
プロセッサからの書き込み指示に基づいて、第1メモリモジュール及び第2メモリモジュールに同一のデータを書き込むと共に、上記プロセッサからの読み出し指示に基づいて、上記第1メモリモジュール及び上記第2メモリモジュールからデータを読み出すメモリミラーリング装置であって、
入力されるデータ選択信号に基づいて、上記第1メモリモジュール及び上記第2メモリモジュールよりそれぞれ読み出されるデータのいずれかを選択するデータ選択部と、
上記データ選択部と上記第1メモリモジュールとの間に挿入され、上記第1メモリモジュールから読み出されたデータをデータ送出指示信号が指示するタイミングで上記データ選択部へデータ送出を行う第1チャネル制御部と、
上記データ選択部と上記第2メモリモジュールとの間に挿入され、上記第2メモリモジュールから読み出されたデータをデータ送出指示信号が指示するタイミングで上記データ選択部へデータ送出を行う第2チャネル制御部と、
上記第1メモリモジュール及び上記第2メモリモジュールから読み出されたデータの到着タイミング、上記読み出されたデータの訂正不可能エラーの有無、及び上記訂正不可能エラーのタイミングを監視し、この監視結果に基づいて、上記第1チャネル制御部及び上記第2チャネル制御部に上記データ送出指示信号を出力し、上記データ選択部に上記データ選択信号を出力するメモリミラーリング制御部と、を含む。
【0023】
本発明に係るメモリミラーリング方法は、
プロセッサからの書き込み指示に基づいて、第1メモリモジュール及び第2メモリモジュールに同一のデータを書き込むと共に、上記プロセッサからの読み出し指示に基づいて、上記第1メモリモジュール及び上記第2メモリモジュールからデータを読み出すメモリミラーリング方法であって、
上記第1メモリモジュール及び上記第2メモリモジュールから読み出されたデータの到着タイミング、上記読み出されたデータの訂正不可能エラーの有無、及び上記訂正不可能エラーのタイミングを監視し、
この監視結果に基づいて、上記第1メモリモジュールから読み出されたデータ及び上記第2メモリモジュールから読み出されたデータの上記プロセッサへ向けた送出タイミングを指示すると共に、上記第1メモリモジュールから読み出されたデータ及び上記第2メモリモジュールから読み出されたデータのいずれを選択するか指示する。
【発明の効果】
【0024】
本発明によれば、二つのメモリモジュールからリードデータが異なるタイミングでリプライされても、ミラーリング冗長性を確保することができる。
【図面の簡単な説明】
【0025】
【
図1】本発明の上位概念の実施形態のメモリミラーリング装置の構成を示すブロック図である。
【
図2】本発明の一実施形態のメモリミラーリング装置の構成を示すブロック図である。
【
図3】
図1の実施形態のメモリミラーリング装置の動作を示すタイミングチャートであり、メモリリードデータ6a、6bのチャネル間のメモリリードデータ到着時間のずれがなくかつメモリリードデータ6a、6bのどちらにも訂正不可能エラーがない場合の動作を説明するためのタイミングチャートである。
【
図4】
図1の実施形態のメモリミラーリング装置の動作を示すタイミングチャートであり、メモリリードデータ6a、6bのチャネル間のメモリリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より小さい場合でかつメモリリードデータ6a、6bのどちらにも訂正不可能エラーがない場合の動作を説明するためのタイミングチャートである。
【
図5】
図1の実施形態のメモリミラーリング装置の動作を示すタイミングチャートであり、メモリリードデータ6a、6bのチャネル間のメモリリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より大きいか等しい場合でかつメモリリードデータ6a、6bのうち先に到着したデータに訂正不可能エラーがない場合の動作を説明するためのタイミングチャートである。
【
図6】
図1の実施形態のメモリミラーリング装置の動作を示すタイミングチャートであり、メモリリードデータ6a、6bのチャネル間のメモリリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より小さい場合でかつメモリリードデータ6a、6bのどちらか一方に訂正不可能エラーがある場合の動作を説明するためのタイミングチャートである。
【
図7】
図1の実施形態のメモリミラーリング装置の動作を示すタイミングチャートであり、メモリリードデータ6a、6bのチャネル間のメモリリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より大きいか等しい場合でかつメモリリードデータ6a、6bのうち先に到着したチャネルのメモリリードデータに訂正不可能エラーがある場合の動作を説明するためのタイミングチャートである。
【
図8】第1の背景技術のメモリミラーリング機能を有するコンピュータ装置の構成の一例を示すブロック図である。
【
図9】
図8のメモリミラーリング機能を有するコンピュータの動作を示すタイミングチャートである。
【
図10】第2の背景技術のメモリミラーリング機能を有するコンピュータ装置の一例を示すブロック図である。
【
図11】
図10のメモリミラーリング機能を有するコンピュータの動作を示すタイミングチャートである。
【発明を実施するための形態】
【0026】
〔上位概念の実施形態〕
初めに、本発明の上位概念の実施形態によるメモリミラーリング装置、及びメモリミラーリング方法について、説明する。
図1は、本発明の上位概念の実施形態のミラーリング装置の一例としてのミラーリング制御装置の構成を示すブロック図である。
【0027】
図1のメモリミラーリング装置60は、図示しないプロセッサと、冗長化された二つのメモリモジュール(第1メモリモジュール、第2メモリモジュール)との間に接続されて、メモリミラーリング機能を有するコンピュータ装置を構成する。
図1のメモリミラーリング装置60は、データ複製部・データ選択部61、第1チャネル制御部62a、第2チャネル制御部62b、及びメモリミラーリング制御部63を含んで構成される。なおここで、データ複製部・データ選択部61はデータ選択部の一例である。
【0028】
データ複製部・データ選択部61は、二つのメモリモジュールへデータを書き込むためにデータを複製して、第1チャネル制御部62a、第2チャネル制御部62bへ出力する。データ複製部・データ選択部61は、冗長化されたメモリモジュールからデータを読み出したときにプロセッサへ出力するデータを選択する。すなわちデータ複製部・データ選択部61は、メモリミラーリング制御部63から通知されたデータ選択信号73に従い、冗長化されたリードデータ(
図1の71a、71b)のどちらか一方を選択してプロセッサへ向けてリードデータをリプライする。
【0029】
第1チャネル制御部62a、第2チャネル制御部62bはそれぞれ、メモリミラーリング制御部63からの指示に応じたタイミングで、データ送出を行う。すなわち第1チャネル制御部62a、第2チャネル制御部62bはそれぞれ、メモリミラーリング制御部63からのデータ送出指示信号72の通知に応答して、リードデータ(
図1の71a、71b)をプロセッサへ向けてリプライする。
【0030】
メモリミラーリング制御部63は、冗長化されたメモリモジュール(第1メモリモジュール、第2メモリモジュール)からリプライされたリードデータの到着タイミングとエラー検出結果およびエラータイミングを監視する。そしてメモリミラーリング制御部63は、適切なタイミングでチャネル制御部(第1チャネル制御部62a、第2チャネル制御部62b)へデータ送出指示を出すと共に、データ複製部・データ選択部61へミラーリングされたデータの選択指示を出す。
【0031】
これにより、
図1のメモリミラーリング装置60によれば、第1メモリモジュール、第2メモリモジュールのリードデータが異なるタイミングでリプライされた状態で一方のチャネルに訂正不可能エラーが生じても、正常で完全なデータをプロセッサへリプライすることが可能となる。
【0032】
また、一方のメモリモジュール(第1メモリモジュールか、第2メモリモジュール)がメモリリフレッシュ等で一時的にアクセス不可能な場合、このメモリミラーリング制御部63にあらかじめバースト転送のバースト長を指定しておくことで、二つのメモリモジュール(第1メモリモジュールか、第2メモリモジュール)からリプライされたリードデータの到着タイミングが大幅にずれた場合かつ先に到達したリードデータに訂正不可能エラーがない場合は、このデータを優先的にリプライするように適切なタイミングでチャネル制御部(
図1の62a、62b)へデータ送出指示を出す。なおここで、メモリミラーリング制御部63にあらかじめ指定される、バースト転送のバースト長は、冗長化されたメモリモジュール(第1メモリモジュール、第2メモリモジュール)からリプライされたリードデータの到着タイミングのずれ量の大小を判定する判断基準の一例である。このデータ送出指示の発出と共に、データ複製部・データ選択部61へミラーリングされたデータの選択指示を出す。これにより、たとえ、両チャネルのデータ到着が大幅にずれた場合でも、リードデータの正当性を確保しながら、なるべく早くデータをプロセッサにリプライすることが可能となり、コンピュータシステムの性能低下を防ぐことができる。以下、本発明のより具体的な実施形態について、図面を参照しながら詳細に説明する。
【0033】
〔一実施形態〕
次に、本発明の一実施形態によるメモリミラーリング装置、及びメモリミラーリング方法について、説明する。
【0034】
[構成の説明]
図2は、本発明の一実施形態によるメモリミラーリング装置の構成を説明するためのブロック図であり、
図1のメモリミラーリング装置を含んで構成されたコンピュータ装置の構成を示す。
図2のコンピュータ装置は、プロセッサ1と、冗長化された二つのメモリモジュール(第1メモリモジュール3a、第2メモリモジュール3b)との間にメモリ制御部2が接続されて、メモリミラーリング機能を有するコンピュータ装置を構成する。
【0035】
プロセッサ1は、メモリ制御部2を介してメモリモジュール(第1メモリモジュール3aや、第2メモリモジュール3b)に対してデータのライトかリードの要求を行うプロセッサである。
【0036】
メモリ制御部2は、プロセッサ1からの要求にしたがい、実際にメモリモジュール(第1メモリモジュール3a、第2メモリモジュール3b)へデータのメモリライトかメモリリードを行うメモリ制御部である。本実施形態のようなメモリミラーリング機能を有するコンピュータ装置では、プロセッサ1からの要求がライト要求の場合は、プロセッサ1から入力されたデータ4(ライトデータ)を複製してデータ6a(ライトデータ)とデータ6b(ライトデータ)をそれぞれ第1メモリモジュール3aと第2メモリモジュール3bにデータをライトする。本実施形態のようなメモリミラーリング機能を有するコンピュータ装置では、プロセッサ1からの要求がリード要求の場合は、第1メモリモジュール3aと第2メモリモジュール3bからそれぞれ入力されたメモリリードデータ6aと6bのどちらか一方を選択してデータ4(リードデータ)をプロセッサ1へリプライする。
【0037】
本実施形態のようなメモリミラーリング機能を有するコンピュータ装置では、メモリモジュールは、第1メモリモジュール3aと第2メモリモジュール3bに冗長化されており、同一データを記憶する。メモリ制御部2からライトアクセスがあれば、第1メモリモジュール3aと第2メモリモジュール3bは同一データ(6a、6b)をそれぞれ記憶する。メモリ制御部2から、リードアクセスがあれば第1メモリモジュール3aと第2メモリモジュール3bに記憶した同一データ(6a、6b)をそれぞれメモリ制御部2へリプライする。
【0038】
次に、メモリ制御部2の詳細な構成について説明する。
【0039】
メモリアクセス制御部20は、プロセッサ1からのメモリアクセス要求を解析し、ライトアクセスかリードデータアクセスのどちらかを、メモリモジュール(第1メモリモジュール3a、第2メモリモジュール3b)へ向けて要求する。
【0040】
データ複製部・データ選択部21は、メモリアクセス制御部20からの要求がメモリライトアクセスの場合は、ミラーリング構成となるようにライトデータ(データ50)を二つのデータ(51a、51b)に複製し、それぞれ、第1チャネル制御部22aと、第2チャネル制御部22bへライトデータを送出する。メモリアクセス制御部20よりリード要求を受け付けた場合は、第1チャネル制御部22aと第2チャネル制御部22bから入力されたリードデータ(データ51a、51b)のどちらか一方をメモリミラーリング制御部23から送出されたデータ選択信号53にしたがい選択し、リードデータ(データ50)をプロセッサ1へリプライする。
【0041】
第1チャネル制御部22aと第2チャネル制御部22bはメモリアクセス制御部20からの要求がメモリライトアクセスの場合は、データ複製部・データ選択部21で複製されたライトデータ(データ51a、51b)を第1メモリコントローラ24aと第2メモリコントローラ24bに送出する。第1チャネル制御部22aと第2チャネル制御部22bは、メモリアクセス制御部20からの要求がメモリリードアクセスの場合は、第1メモリコントローラ24aと第2メモリコントローラ24bからリプライされたリードデータ(データ54a、54b)を一時的にデータ保存しておく。さらに第1チャネル制御部22aと第2チャネル制御部22bは、メモリミラーリング制御部23から送出されたデータ送出指示信号52にしたがい、指示のあったタイミングでデータ複製部・データ選択部21へリードデータ(51a、51b)を送出する。なお以下では、第1チャネル制御部22a及び第2チャネル制御部22bを、チャネル制御部(22a、22b)と総称して、簡略化した記載とする場合がある。
【0042】
第1メモリコントローラ24aと第2メモリコントローラ24bは、メモリアクセス制御部20からの要求がメモリライトアクセスの場合は、第1メモリモジュール3aと第2メモリモジュール3bに対して、メモリライト要求を発行する。このメモリライト要求の発行は、メモリインターフェースのライトプロトコルに則り、メモリモジュールがアクセス可能となった場合にメモリライト要求を発行するもので、メモリアクセス要求で指示のあったアドレスにデータ(6a、6b)をライトする。第1メモリコントローラ24aと第2メモリコントローラ24bは、メモリアクセス制御部20からの要求がメモリリードアクセスの場合は、第1メモリモジュール3aと第2メモリモジュール3bに対して、メモリリード要求を発行する。このメモリリード要求の発行は、メモリインターフェースのリードプロトコルに則り、メモリモジュールがアクセス可能となった場合にメモリリード要求を発行するもので、メモリアクセス要求で指示のあったアドレスからデータ(6a、6b)をリードする。
【0043】
また、メモリアクセス制御部20からの要求がメモリリードアクセスの場合は、第1メモリモジュール3aと第2メモリモジュール3bから送出されたリードデータ(6a、6b)に対し訂正不可能なエラーがないか、第1メモリコントローラ24aと第2メモリコントローラ24bは確認する。なお以下では、第1メモリコントローラ24a及び第2メモリコントローラ24bを、メモリコントローラ(24a、24b)と総称して、簡略化した記載とする場合がある。リードデータに訂正不可能エラーがない場合は、メモリコントローラ(24a、24b)は、リードデータをそのままチャネル制御部(22a、22b)へリプライする。このチャネル制御部(22a、22b)へのリプライと同時に、メモリコントローラ(24a、24b)は、エラー検出結果(エラーがなかったこと)をメモリミラーリング制御部23へ通知する。
【0044】
メモリコントローラ(24a、24b)がリードデータ(6a、6b)に訂正可能なエラーを検出したときは、メモリコントローラ(24a、24b)はこのエラーを訂正する。その後、メモリコントローラ(24a、24b)は、訂正したデータをチャネル制御部(22a、22b)へリプライすると同時に、エラー検出結果(訂正可能エラーの検出)をメモリミラーリング制御部23へ通知する。
【0045】
メモリコントローラ(24a、24b)がリードデータ(6a、6b)に訂正不可能なエラーを検出した場合は、リードデータをそのままチャネル制御部(22a、22b)へリプライすると同時に、エラー検出結果(訂正不可能エラーの検出)をメモリミラーリング制御部23へ通知する。
【0046】
メモリミラーリング制御部23は、メモリアクセス制御部20からの要求がメモリライトアクセスの場合は、何も動作しない。メモリアクセス制御部20からの要求がメモリリードアクセスの場合は、第1メモリコントローラ24aと第2メモリコントローラ24bから送出されたリードデータ(54a、54b)のリードデータ到着タイミングとエラー検出結果およびエラータイミングを監視して、その状態に応じて第1チャネル制御部22aと第2チャネル制御部22bに対して適切なタイミングでデータ送出指示信号52を送出しリードデータの送出を指示する。また、同様にデータ複製部・データ選択部21に対して適切なタイミングでデータ選択信号53を送出してメモリリードデータ51a、51bの選択を指示する。
【0047】
メモリミラーリング制御部23からデータ複製部・データ選択部21に送出するデータ選択信号53は、リードデータ(54a、54b)のどちらか一方に訂正不可能エラーがあった場合、エラーデータ検出以降は常にエラーがなかったチャネルのみを選択するようにしてもよい。またリードデータ(54a、54b)のどちらか一方に訂正不可能エラーがあった場合には、エラーデータ検出以降は常にエラーがなかったチャネルのみを選択するのではなく、エラーデータ検出時のみエラーがなかったチャネルを選択するようにしてもよい。
【0048】
リードデータ(54a、54b)のチャネル間のリードデータ到着時間のずれ量を判断基準(しきい値)と比較することなどによって、ミラーリング制御の内容を異ならせる。判断基準(しきい値)の一例としては、バースト転送のバースト長が想定され、メモリミラーリング制御部23にあらかじめバースト転送のバースト長が指定される。
【0049】
より具体的には、リードデータ(54a、54b)のチャネル間のリードデータ到着時間のずれがメモリミラーリング制御部23にあらかじめ設定したバースト転送のバースト長より小さい場合でかつリードデータ(54a、54b)のどちらにも訂正不可能エラーがない場合は、両チャネルのリードデータが揃うまでリードデータの到着を待ち合わせて、両チャネルのリードデータが揃ったタイミングで第1チャネル制御部22aと第2チャネル制御部22bへデータ送出指示信号52を送出してリードデータの送出指示を出す。また、それと同時にデータ複製部・データ選択部21に対してどちらか一方のメモリリードデータ51a、51bを選択するようにデータ選択信号53を送出しリードデータの選択を指示する。
【0050】
リードデータ(54a、54b)のチャネル間のリードデータ到着時間のずれがメモリミラーリング制御部23にあらかじめ設定したバースト転送のバースト長より大きいか等しい場合でかつリードデータ(54a、54b)のうち先に到着したデータに訂正不可能エラーがない場合は、後続のリードデータの到着を待たずに先に到着したリードデータが指定したバースト長に達した時点で第1チャネル制御部22aと第2チャネル制御部22bへデータ送出指示信号52を送出してリードデータの送出指示を出す。また、それと同時にデータ複製部・データ選択部21に対して先に到着したチャネルのリードデータを選択するようにデータ選択信号53を送出しリードデータの選択を指示する。その結果、両チャネルのリードデータの到着が大幅にずれた場合でも、なるべく早くリードデータをプロセッサ1にリプライすることが可能となり、システムの性能低下を防ぐことができる。
【0051】
リードデータ(54a、54b)のチャネル間のリードデータ到着時間のずれがメモリミラーリング制御部23にあらかじめ設定したバースト転送のバースト長より小さい場合でかつリードデータ(54a、54b)のどちらか一方に訂正不可能エラーがあった場合は、両チャネルのリードデータが揃うまでリードデータの到着を待ち合わせて、両チャネルのリードデータが揃ったタイミングでチャネル制御部(22a、22b)へデータ送出指示信号52を送出してリードデータの送出指示を出す。また、それと同時にデータ複製部・データ選択部21に対して訂正不可能エラーがないほうのチャネルを選択するようにデータ選択信号53を送出しリードデータの選択を指示する。その結果、エラーないチャネルのリードデータがプロセッサ1へリプライされ、チャネル間のリードデータ到着時間にずれがあっても、リードデータの正当性を確保することが可能となる。
【0052】
リードデータ(54a、54b)のチャネル間のリードデータ到着時間のずれがメモリミラーリング制御部23にあらかじめ設定したバースト転送のバースト長より大きいか等しい場合でかつリードデータ(54a、54b)のうち後に到着したチャネルのリードデータに訂正不可能エラーがあった場合は、後続のリードデータの到着を待たずに先に到着したリードデータが指定したバースト長に達した時点で第1チャネル制御部22aと第2チャネル制御部22bへデータ送出指示信号52を送出してリードデータの送出指示を出す。また、それと同時にデータ複製部・データ選択部21に対して先に到着したチャネルのリードデータを選択するようにデータ選択信号53を送出しリードデータの選択を指示する。その結果、後続の訂正不可能エラーがあるリードデータは破棄され、エラーがないリードデータがプロセッサ1へリプライされる。たとえチャネル間のリードデータ到着時間に大幅なずれがあっても、リードデータの正当性を確保しながら、なるべく早くリードデータをプロセッサ1にリプライすることが可能となり、システムの性能低下を防ぐことができる。
【0053】
リードデータ(54a、54b)のチャネル間のリードデータ到着時間のずれがメモリミラーリング制御部23にあらかじめ設定したバースト転送のバースト長より大きいか等しい場合でかつリードデータ(54a、54b)のうち先に到着したチャネルのリードデータに訂正不可能エラーがあった場合は、後続の訂正不可能エラーがないほうのチャネルのデータの到着を待ち、訂正不可能エラーのないチャネルのデータが到着したら第1チャネル制御部22aと第2チャネル制御部22bへデータ送出指示信号52を送出してリードデータの送出指示を出す。また、それと同時にデータ複製部・データ選択部21に対して訂正不可能エラーがないほうのチャネルを選択するようにデータ選択信号53を送出しリードデータの選択を指示する。その結果、エラーがないリードデータがプロセッサ1へリプライされ、たとえチャネル間のリードデータ到着時間に大幅なずれがあっても、リードデータの正当性を確保できる。
【0054】
また、リードデータ(54a、54b)のどちらか一方に訂正不可能エラーがあった場合に、エラーデータ検出以降は常にエラーがなかったチャネルのみを選択するようにする場合は、エラーがなかったチャネルにデータが到着次第、チャネル制御部(22a、22b)へデータ送出指示信号52を送出してリードデータの送出指示を出すことで、なるべく早くリードデータをプロセッサ1にリプライすることが可能となる。
【0055】
以上のように、冗長化されたメモリモジュール(3a、3b)からリプライされたリードデータの到着タイミングとエラー検出結果およびエラータイミングをメモリミラーリング制御部23によって監視し、それぞれ適切なタイミングでチャネル制御部(22a、22b)へデータ送出指示を出すと同時にデータ複製部・データ選択部21へミラーリングされたデータの選択指示を出すことで、たとえリードデータが異なるタイミングでリプライされた状態で一方のチャネルに訂正不可能エラーが生じても、正常で完全なデータをプロセッサ1へリプライすることが可能となる。
【0056】
また、一方のメモリモジュール(第1メモリモジュール3aか、第2メモリモジュール3b)がメモリリフレッシュ等で一時的にアクセス不可能な場合、メモリミラーリング制御部23にあらかじめバースト転送のバースト長を指定しておくことで、チャネル間のリードデータ到着時間のずれが指定したバースト長に達した場合、先に到達したリードデータに訂正不可能エラーがない場合はこのデータを優先的にプロセッサ1にリプライするようにチャネル制御部(22a、22b)へデータ送出指示を出すと同時にとデータ複製部・データ選択部21へミラーリングされたデータの選択指示を出すことで、たとえリードデータの到着タイミングが大幅にずれた場合でも、リードデータの正当性を確保しながら、なるべく早くデータをプロセッサ1にリプライする。
【0057】
[動作の説明]
次に
図2のミラーリング装置について、
図3から
図7のタイミングチャートを用いて詳細に説明する。
【0058】
一例として、
図3から
図7のタイミングチャートは全て、メモリミラーリング制御部23にバースト転送のバースト長を4に設定した場合の例を示している。
図3から
図7の“D0”から“D7”は、エラーのない正常なデータを示す。また、“X”は不定データ、“EE”は訂正不可能エラーがある場合のエラーデータを示す。ここで、メモリリードデータ6aとメモリリードデータ6bのデータは全く同一であるが、説明を明快にするためメモリリードデータ6bのデータには「’」をつけて表記している。
【0059】
図3から
図7は、プロセッサ1からリード要求があった場合のメモリモジュール(第1メモリモジュール3a、第2メモリモジュール3b)から出力されたリードデータ信号の各波形変化を示す。メモリリードデータ6aは第1メモリモジュール3aから出力されたデータ、メモリリードデータ6bは第2メモリモジュール3bから出力されたデータである。リプライデータ50は、データ複製部・データ選択部21から出力されたデータを示している。また、データ送出指示信号52は、メモリミラーリング制御部23から第1チャネル制御部22aと第2チャネル制御部22bへ送出される制御信号である。本実施形態では、このデータ送出指示信号52がHになったら、次のクロックからリードデータをメモリミラーリング制御部23に設定したバースト転送のバースト長分のデータ(本実施形態では4クロック分のデータ)だけ、チャネル制御部22a、22bからデータ複製部・データ選択部21へ出力する。データ選択信号53は、メモリミラーリング制御部23からデータ複製部・データ選択部21へ送出される制御信号である。本実施形態では、このデータ選択信号53がLの場合は、第1チャネル制御部22aから入力されたメモリリードデータ51aを選択してプロセッサ1へリプライすることとして説明する。そして本実施形態では、このデータ選択信号53がHの場合は、第2チャネル制御部22bから入力されたリードデータ51bを選択してプロセッサ1へリプライすることとして説明する。
【0060】
本実施形態では、メモリリードデータ6a、6bのどちらか一方に訂正不可能エラーがあった場合、エラーデータ検出以降は常にエラーがなかったチャネルのみを選択するようにする場合を記載するが、実施形態としてはエラーデータ検出時のみエラーがなかったチャネルを選択するようにしてもよい。
【0061】
(メモリリードデータのリプライタイミングが全く同一で、かつメモリリードデータのどちらにも訂正不可能エラーがない場合)
図3は、第1メモリモジュール3aからのメモリリードデータ6aと第2メモリモジュール3bからのメモリリードデータ6bのリプライタイミングが全く同一で、かつメモリリードデータ6a、6bのどちらにも訂正不可能エラーがない場合のタイミングチャートである。
図3の例ではメモリリードデータ6a、6bのリプライタイミングが全く同一のため、時刻T0、T1で両チャネルのデータが揃い、データ送出指示信号52がHになる。その結果、その次のクロックからチャネル制御部(22a、22b)からデータ複製部・データ選択部21へメモリリードデータ51a、51bの送出がそれぞれ始まる。一方、データ選択信号53は、ミラーリングされたデータのどちらにも訂正不可能エラーがないためLから変化しない。
図3の動作例の場合は、ミラーリングされたデータのどちらにも訂正不可能エラーがないため、どちらを選択しても問題はない(
図4の例でも同様)。その結果、例えば第1メモリモジュール3aからリードされたメモリリードデータ6aがデータ複製部・データ選択部21で選択され、プロセッサ1へリプライデータ(50)としてリプライされる。
【0062】
(メモリリードデータのリプライタイミングが異なるが、チャネル間のリードデータ到着時間のずれがメモリミラーリング制御部に設定したバースト転送のバースト長より小さい場合で、かつメモリリードデータのどちらにも訂正不可能エラーがない場合)
図4は、第1メモリモジュール3aからのメモリリードデータ6aと第2メモリモジュール3bからのメモリリードデータ6bのチャネル間のリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より小さい場合でかつメモリリードデータ6a、6bのどちらにも訂正不可能エラーがない場合のタイミングチャートである。
図4の例では、チャネル間のリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より小さいので、時刻T2、T3で両チャネルのデータが揃い、データ送出指示信号52がHになる。その結果、その次のクロックからチャネル制御部(22a、22b)からデータ複製部・データ選択部21へメモリリードデータ51a、51bの送出がそれぞれ始まる。一方、ミラーリングされたデータ(メモリリードデータ6a、6b)のどちらにも訂正不可能エラーがないため、データ選択信号53はLから変化しない。その結果、例えば第1メモリモジュール3aからリードされたメモリリードデータ6aがデータ複製部・データ選択部21で選択され、プロセッサ1へリプライデータ(50)としてリプライされる。
【0063】
(メモリリードデータのリプライタイミングが異なり、チャネル間のリードデータ到着時間のずれがメモリミラーリング制御部に設定したバースト転送のバースト長より大きいか等しい場合で、かつメモリリードデータのうち先に到着したデータに訂正不可能エラーがない場合)
図5は、メモリリードデータ6a、6bのチャネル間のメモリリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より大きいか等しい場合でかつメモリリードデータ6a、6bのうち先に到着したデータに訂正不可能エラーがない場合のタイミングチャートである。
図5の例では時刻T4、T5で両チャネルのリードデータの到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長に達するため、データ送出指示信号52がHになる。その結果、その次のクロックからチャネル制御部(22a、22b)からデータ複製部・データ選択部21へ、メモリリードデータ51a、51bの送出がそれぞれ始まる。ここで、メモリリードデータ51aはデータ送出指示信号52がHになった時点で、まだリードデータが到着していないため不定データ“X”が出力される。一方、データ選択信号53は時刻T4、T5で先に到着したメモリリードデータ51bを選択するためHに変化する。その結果、第2メモリモジュール3bからリードされたメモリリードデータ51bがデータ複製部・データ選択部21で選択され、プロセッサ1へリプライデータ(50)としてリプライされる。
【0064】
(チャネル間のリードデータ到着時間のずれがメモリミラーリング制御部に設定したバースト転送のバースト長より小さい場合で、メモリモジュールからのリードデータのどちらか一方に訂正不可能エラーがある場合)
次に、メモリモジュールからのリードデータのどちらか一方に訂正不可能エラーがある場合の動作例を以下に示す。
【0065】
図6は、メモリリードデータ6a、6bのチャネル間のメモリリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より小さい場合でかつメモリリードデータ6a、6bのどちらか一方に訂正不可能エラーがある場合のタイミングチャートである。
図6の例では、メモリリードデータ6aに訂正不可能なエラーがある場合の例を示している。
図6の例では時刻T6、T8で両チャネルのデータが揃い、データ送出指示信号52がHになる。その結果、その次のクロックからチャネル制御部(22a、22b)からデータ複製部・データ選択部21へメモリリードデータ51a、51bの送出がそれぞれ始まる。一方、メモリミラーリング制御部23では、メモリリードデータ6aの訂正不可能エラーを検知して、データ”D2”以降はメモリリードデータ51bを選択するようにデータ選択信号53をT7のタイミングでHに切り替える。その結果、T7のタイミング以降は第2メモリモジュール3bからリードされたメモリリードデータ51bがデータ複製部・データ選択部21で選択され、プロセッサ1へリプライデータ(50)としてリプライされる。以上の動作により、メモリリードデータ6a、6bの到着時間のずれがあり、メモリリードデータのどちらか一方に訂正不可能エラーがあった場合でも、データの完全性を確保できる。
【0066】
(チャネル間のリードデータ到着時間のずれがメモリミラーリング制御部に設定したバースト転送のバースト長より大きいか等しい場合で、先に到着したチャネルのメモリリードデータに訂正不可能エラーがある場合)
図7はメモリリードデータ6a、6bのチャネル間のメモリリードデータ到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長より大きいか等しい場合でかつメモリリードデータ6a、6bのうち先に到着したチャネルのメモリリードデータに訂正不可能エラーがある場合のタイミングチャートである。
図7の例では時刻T9で両チャネルのリードデータの到着時間のずれがメモリミラーリング制御部23に設定したバースト転送のバースト長に達するが、先に到着したメモリリードデータ6aに訂正不可能エラーが含まれるためデータ送出指示信号52はLのままでデータ送出指示は行わない。メモリミラーリング制御部23では、メモリリードデータ6aの訂正不可能エラーを検知して、メモリリードデータ51bを選択するようにデータ選択信号53をメモリミラーリング制御部23に設定したしきい値分のデータを受信した後のT9のタイミングでHに切り替える。次に、遅れてメモリリードデータ6bが到着するとデータ送出指示信号52はリードデータが到着すると同時にT10、T11のタイミングでHとなる。その結果、その次のクロックからチャネル制御部(22a、22b)からデータ複製部・データ選択部21へメモリリードデータ51a、51bの送出がそれぞれ始まる。データ選択信号53はT9のタイミングでHとなっているので、第2メモリモジュール3bからリードされたメモリリードデータ51bがデータ複製部・データ選択部21で選択され、プロセッサ1へリプライデータ(50)としてリプライされる。以上の動作により、メモリリードデータ6a、6bの到着時間の大幅なずれがあり、メモリリードデータのどちらか一方に訂正不可能エラーがあった場合でも、データの完全性を確保できる。
【0067】
(実施形態の効果)
図2に示される本実施形態のメモリミラーリング機能を有するコンピュータ装置によれば、次のような特有の効果を奏する。
【0068】
第1の効果は、冗長化されたメモリモジュール(3a、3b)からリプライされるリードデータの到着タイミングがずれていても、リードデータの冗長性を確保しメモリミラーリングを実現できることである。その理由は、メモリミラーリング制御部23がリードデータの到着タイミングと訂正不可能エラーの有無およびエラータイミングを監視し、適切なタイミングでチャネル制御部(22a、22b)にデータ送出指示を行うと共に、データ複製部・データ選択部21にデータ選択指示を行う機能を有するためである。
【0069】
第2の効果は、メモリミラーリング装置の開発が容易になることである。その理由は、高速動作するメモリインターフェースのタイミングを、二つのチャネル間で厳密に合わせる必要がないためである。本実施形態のメモリミラーリング制御部23がリードデータの到着タイミングと訂正不可能エラーの有無およびエラータイミングを監視し、適切なタイミングでチャネル制御部(22a、22b)にデータ送出指示を行うと共に、データ複製部・データ選択部21にデータ選択指示を行う機能を有するためである。
【0070】
第3の効果は、メモリモジュール制御が簡単にできることである。その理由は、メモリモジュールのメモリリフレッシュ等のタイミングを、二つのチャネル間で厳密に合わせる必要がないためである。メモリミラーリング制御部23がリードデータの到着タイミングと訂正不可能エラーの有無およびエラータイミングを監視し、適切なタイミングでチャネル制御部(22a、22b)にデータ送出指示を行うと共に、データ複製部・データ選択部21にデータ選択指示を行う機能を有するためである。
【0071】
第4の効果は、一方のメモリモジュールがメモリリフレッシュ等で一時的にアクセス不可能な状態に陥り、冗長化されたメモリモジュールからリプライされるリードデータの到着タイミングが大幅にずれても、後続のデータの到着を待たずしてリードデータの正当性を確保しながらリードデータを早くリプライすることができる(システムの性能低下を防ぐことができる)ことである。その理由は、メモリミラーリング制御部23にあらかじめバースト転送のバースト長を指定しておくことで、先に到達したチャネルのリードデータに訂正不可能エラーがない場合はチャネル間のリードデータ到着時間のずれが指定したバースト長に達した場合、後続のチャネルのデータの到着を待つことなくチャネル制御部にデータ送出指示を行うと共に、データ複製部・データ選択部21にデータ選択指示を行う機能を有するためである。
【0072】
第5の効果は、冗長化されたメモリモジュールへデータをライトする際のライト制御を簡単にできることである。その理由は、冗長化されたメモリモジュール(3a、3b)からリプライされるリードデータの到着時間を合わせるためには、メモリリード時に冗長化されたメモリモジュールへのライトデータのライトが確実に完了している必要があるためライトも同一タイミングで行う必要がある。これに対し、本発明の上述した実施形態のメモリミラーリング装置では、そもそもリードデータの到着時間を厳密に合わせる必要がないためである。
【0073】
(実施形態のまとめ)
特許文献1乃至特許文献3はいずれも、冗長化されたメモリモジュールからリプライされるリードデータの到着タイミングが揃っていることを、前提とした技術である。例えば、
図9や
図11に示される背景技術では、同一の時刻に同一のアクティブコマンド、及び、リードコマンドを同一のタイミングで出力するのに応答して、二つのメモリモジュールからはリードデータが全く同一のタイミングで出力される、ことを前提としている。
【0074】
この前提を元に、特許文献1乃至特許文献3ではデータ冗長性を確保している。このため、二つのメモリモジュールからリプライされるリードデータの到着タイミングが完全に同時でなければ、データ冗長性を確保することができない。
【0075】
例えば、
図11に示される背景技術では、決められたタイミング(例えば、時刻T203およびT204)でしか、メモリコントローラ203からCPUコントローラ202へデータをリプライできない。このため
図11に示される背景技術において、(発明が解決しようとする課題)で言及したような、冗長化されたメモリモジュールからのリードデータが異なるタイミングでリプライされるといった不測のずれが生じてしまうと、データの冗長性を確保することができない。その理由は、メモリコントローラ203からCPUコントローラ202へのデータ送出のタイミング時に、必要なデータが揃わないためである。またデータ送出のタイミング時に必要なデータが揃わないため、送出されるはずの本来必要なデータすら欠落してしまうこととなる。
【0076】
現実のコンピュータ装置やメモリミラーリング装置においては、冗長化されたメモリモジュールからリプライされるリードデータの到着タイミングのずれが無視できない。この到着タイミングのずれの主な要因としては、コンピュータ装置やメモリミラーリング装置を構成するコンポーネントの次に列挙する差が考えられる。例えば、コンポーネントのボード上のデータ信号のチャネル間の配線長の差、コンポーネントのLSI(Large Scale Integrated circuit)内部のデータ信号のチャネル間の配線長の差、コンポーネントのLSI内部のクロック信号のチャネル間の配線長の差、などである。また、コンポーネントのLSI内部のリセット信号のチャネル間の配線長の差、これと関連するチャネル間のリセット解除タイミングの差、などである。
【0077】
冗長化されたメモリモジュールからリプライされるリードデータについて、チャネル間でリプライデータの到着タイミングのずれを生じさせないためには、少なくともこれらのチャネル間の配線長の差(上記列挙した配線長の差の合計値)を時間に換算して1クロック(数百ps)以下にする必要がある。近年のメモリインターフェースの高速化により、これらのチャネル間の配線長の差(上記列挙した配線長の差の合計値)を1クロック以内とするように製造することは、非常に困難であると考えられる。また、仮にできたとしても、莫大な時間とコストがかかると思われる。
【0078】
これに対して、上述した本発明の実施形態によるメモリミラーリング装置やメモリミラーリング方法によれば、上述したチャネル間の配線長の差(上記列挙した配線長の差の合計値)を1クロック以内とするようなコンポーネントの製造を必要とせずに、リードデータの冗長性を確保してメモリミラーリングを実現できることである。すなわち、冗長化されたメモリモジュールからリプライされるリードデータについて、チャネル間でリプライデータの到着タイミングのずれが生じていても、適切なタイミングでチャネル制御部(22a、22b)にデータ送出指示を行うと共に、データ複製部・データ選択部21にデータ選択指示を行うことによって、リードデータの冗長性を確保してメモリミラーリングを実現できる。
【0079】
インターフェースが高速化すれば、当然、許容される配線長差もますます小さくなる。したがって、今後のデータ容量の増大、メモリインターフェースの高速化を考えると、チャネル間でリプライデータの到着タイミングのずれをなくすことは、ますます厳しくなるものと考えられる。したがって、上述した本発明のメモリミラーリング装置やメモリミラーリング方法は、今後ますます重要になると考えられる。
【0080】
また、汎用IPマクロを外部購入し、汎用IPのDDRコントローラを使用して、コンピュータシステムを構成する場合、メモリの訂正不可能エラーの有無にかかわらず、次に列挙する要因により、チャネル間でリプライデータの到着タイミングのずれが生じる可能性がある。例えば、初期化時に行うDDRトレーニングのクロック調整結果の差、DDRコントローラから定期的に挿入されるメモリリフレッシュのチャネル間のタイミング差、DDRコントローラから定期的に挿入されるキャリブレーションのチャネル間のタイミング差などである。
【0081】
汎用IPは通常1チャネル分の機能しかないため、ミラーリングする場合はそれを2チャネル分並べて使用することになる。チャネル間でリプライデータの到着タイミングのずれを生じさせないためには、少なくとも上記DDRトレーニングのクロック調整処理などをチャネル間で全く同一かつ同時に行う必要がある。DDRトレーニングは初期化時に、DDRインターフェースのデータとデータストローブおよびクロックエッジの位相を合わせる処理である。データストローブおよびクロックエッジとデータ位相が微妙な位相関係の場合は、その調整方法によってはリードデータのリプライタイミングに差が出る場合がある。汎用IPの場合、内部はブラックボックスであり、汎用IPベンダー独自のアルゴリズムでこのDDRトレーニング処理が行われる。製造ウェハおよび製造ボードの出来具合い・周囲の温度・印加電圧等の要因により、トレーニング開始時のクロックエッジとデータ位相が微妙な位相関係になった場合は、二つのチャネル間で調整結果が必ず同じになっていると言い切ることができない。
【0082】
メモリリフレッシュやキャリブレーションに関しては、その処理の間はデータ通信が止まるので、リフレッシュやキャリブレーションに入るタイミングを二つのチャネルで全く同時にする必要がある。しかしながら、汎用IPの場合は、内部はブラックボックスであり、汎用IPベンダー独自のアルゴリズムでそれらを行っているため、全く同じデータを送受信したとしても、リセット解除タイミングのずれやその他アナログ的な要因によっても、二つのチャネル間で必ずリフレッシュやキャリブレーションに入るタイミングにずれがないと言い切ることができない。
【0083】
これに対し、上述した実施形態のメモリミラーリング装置60やメモリミラーリング装置60を含んで構成されたコンピュータ装置では、メモリミラーリング制御部23にてそのエラー検出結果およびエラータイミングと冗長化された第1チャネルと第2チャネルのリードデータの到着時間(到着状況)を監視する。一実施形態では、冗長化されたメモリモジュール(3a、3b)からリードしたデータの訂正不可能エラーの検出をメモリコントローラ(24a、24b)で行っている。メモリミラーリング制御部23が、上記監視結果に基づいて、適切なタイミングでチャネル制御部(22a、22b)へデータ送出指示を出すと同時に、データ複製部・データ選択部21へ適切なタイミングでミラーリングされたデータの選択指示を送出する。その結果、たとえ、どちらかのチャネルのデータに訂正不可能エラーがあるといった場合、チャネル間のデータ到着タイミングがずれた場合でも、データの正当性(冗長性)を確保することが可能となる。
【0084】
以上、本発明の好ましい実施形態を説明したが、本発明はこれらに限定されるものではない。例えば、上述した実施形態では、冗長化されたメモリモジュール(3a、3b)からリードしたデータの訂正不可能エラーの検出をメモリコントローラ(24a、24b)で行い、メモリミラーリング制御部23がエラー検出結果をメモリコントローラ(24a、24b)から受け取ることとして説明したが、この役割分担には限られない。上述した実施形態のメモリコントローラ(24a、24b)とメモリミラーリング制御部23とが、コンピュータ装置を構成するコンポーネントやモジュールの一つして一体化される態様も想定される。また、メモリミラーリング制御部23は、メモリモジュール(3a、3b)からリードしたデータの訂正不可能エラーの有無、エラータイミング及びリードデータの到着時間(到着状況)を監視することによって、適切なタイミングでチャネル制御部(22a、22b)及びデータ複製部・データ選択部21を制御することができる。特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。
【0085】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)プロセッサからの書き込み指示に基づいて、第1メモリモジュール及び第2メモリモジュールに同一のデータを書き込むと共に、前記プロセッサからの読み出し指示に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールからデータを読み出すメモリミラーリング装置であって、
入力されるデータ選択信号に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールよりそれぞれ読み出されるデータのいずれかを選択するデータ選択部と、
前記データ選択部と前記第1メモリモジュールとの間に挿入され、前記第1メモリモジュールから読み出されたデータをデータ送出指示信号が指示するタイミングで前記データ選択部へデータ送出を行う第1チャネル制御部と、
前記データ選択部と前記第2メモリモジュールとの間に挿入され、前記第2メモリモジュールから読み出されたデータをデータ送出指示信号が指示するタイミングで前記データ選択部へデータ送出を行う第2チャネル制御部と、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータの到着タイミング、前記読み出されたデータの訂正不可能エラーの有無、及び前記訂正不可能エラーのタイミングを監視し、この監視結果に基づいて、前記第1チャネル制御部及び前記第2チャネル制御部に前記データ送出指示信号を出力し、前記データ選択部に前記データ選択信号を出力するメモリミラーリング制御部と、を含む
メモリミラーリング装置。
(付記2)前記メモリミラーリング制御部は、前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、訂正不可能エラーがない方の読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
付記1に記載のメモリミラーリング装置。
(付記3)前記メモリミラーリング制御部は、前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータに訂正不可能エラーがないときには、先に読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
付記1に記載のメモリミラーリング装置。
(付記4)前記第1メモリモジュール及び前記第2メモリモジュールからデータ列を読み出す場合、
前記メモリミラーリング制御部は、前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータ列が訂正不可能エラーを含むときには、先に読み出されたデータを選択することを基本としつつ、前記データ列のうち前記訂正不可能エラーが発生しているデータに対しては後に読み出されたデータ列の訂正不可能エラーのないデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
付記1に記載のメモリミラーリング装置。
(付記5)前記メモリミラーリング制御部は、前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの到着と前記第2メモリモジュールから読み出されたデータの到着を待つとともに、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、訂正不可能エラーがない方の読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
付記1に記載のメモリミラーリング装置。
(付記6)前記第1メモリモジュール及び前記第2メモリモジュールからデータ列を読み出す場合、
前記メモリミラーリング制御部は、前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの到着と前記第2メモリモジュールから読み出されたデータの到着を待つとともに、
訂正不可能エラーが発生しているデータを先に読み出されたデータ列が含むときには、先に読み出されたデータを選択することを基本としつつ、前記データ列のうち前記訂正不可能エラーが発生しているデータに対しては後に読み出されたデータ列の訂正不可能エラーのないデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
付記1に記載のメモリミラーリング装置。
(付記7)前記先に読み出されたデータに訂正可能エラーがあるときには、訂正可能エラーが訂正された後に、読み出される、
付記1乃至付記6のいずれか一つに記載のメモリミラーリング装置。
(付記8)前記しきい値は、前記メモリミラーリング制御部に指定された、バースト転送のバースト長である、
付記3乃至6のいずれか一つに記載のメモリミラーリング装置。
(付記9)プロセッサからの書き込み指示に基づいて、第1メモリモジュール及び第2メモリモジュールに同一のデータを書き込むと共に、前記プロセッサからの読み出し指示に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールからデータを読み出すメモリミラーリング方法であって、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータの到着タイミング、前記読み出されたデータの訂正不可能エラーの有無、及び前記訂正不可能エラーのタイミングを監視し、
この監視結果に基づいて、前記第1メモリモジュールから読み出されたデータ及び前記第2メモリモジュールから読み出されたデータの前記プロセッサへ向けた送出タイミングを指示すると共に、前記第1メモリモジュールから読み出されたデータ及び前記第2メモリモジュールから読み出されたデータのいずれを選択するか指示する、
メモリミラーリング方法。
(付記10)前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、
訂正不可能エラーがない方の読み出されたデータを選択するように、前記第1メモリモジュールから読み出されたデータ及び前記第2メモリモジュールから読み出されたデータのいずれかを選択する、
付記9に記載のメモリミラーリング方法。
(付記11)前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータに訂正不可能エラーがないときには、先に読み出されたデータを選択するように指示する、
付記9に記載のメモリミラーリング方法。
(付記12)前記第1メモリモジュール及び前記第2メモリモジュールからデータ列を読み出す場合、
前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータ列が訂正不可能エラーを含むときには、先に読み出されたデータを選択することを基本としつつ、前記データ列のうち前記訂正不可能エラーが発生しているデータに対しては後に読み出されたデータ列の訂正不可能エラーのないデータを選択するように指示する、
付記9に記載のメモリミラーリング方法。
(付記13)前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの到着と前記第2メモリモジュールから読み出されたデータの到着を待つとともに、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、訂正不可能エラーがない方の読み出されたデータを選択するように指示する、
付記9に記載のメモリミラーリング方法。
(付記14)前記第1メモリモジュール及び前記第2メモリモジュールからデータ列を読み出す場合、
前記第1メモリモジュールから読み出されたデータの到着タイミングと前記第2メモリモジュールから読み出されたデータの到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの到着と前記第2メモリモジュールから読み出されたデータの到着を待つとともに、
訂正不可能エラーが発生しているデータを先に読み出されたデータ列が含むときには、先に読み出されたデータを選択することを基本としつつ、前記データ列のうち前記訂正不可能エラーが発生しているデータに対しては後に読み出されたデータ列の訂正不可能エラーのないデータを選択するように指示する、
付記9に記載のメモリミラーリング方法。
(付記15)前記先に読み出されたデータに訂正可能エラーがあるときには、訂正可能エラーが訂正された後に、読み出される、
付記9乃至付記14のいずれか一つに記載のメモリミラーリング方法。
(付記16)前記しきい値は、バースト転送のバースト長である、
付記11乃至14のいずれか一つに記載のメモリミラーリング方法。
【符号の説明】
【0086】
1 プロセッサ
2 メモリ制御部
3a 第1メモリモジュール
3b 第2メモリモジュール
20 メモリアクセス制御部
21、61 データ複製部・データ選択部
22a、62a 第1チャネル制御部
22b、62b 第2チャネル制御部
23、63 メモリミラーリング制御部
24a 第1メモリコントローラ
24b 第2メモリコントローラ
52、72 データ送出指示信号
53、73 データ選択信号
60 メモリミラーリング装置
100、200 コンピュータ装置
101、201 CPU
102、202 CPUコントローラ
103、203 メモリコントローラ
104a、204a 第1メモリモジュール
204b、204b 第2メモリモジュール
105a、105b、205a、205b メモリ制御バス
106a、106b、206a、206b メモリデータバス
【手続補正書】
【提出日】2023-12-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサからの書き込み指示に基づいて、第1メモリモジュール及び第2メモリモジュールに同一のデータを書き込むと共に、前記プロセッサからの読み出し指示に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールからデータを読み出すメモリミラーリング装置であって、
入力されるデータ選択信号に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールよりそれぞれ読み出されるデータのいずれかを選択するデータ選択部と、
前記データ選択部と前記第1メモリモジュールとの間に挿入され、前記第1メモリモジュールから読み出されたデータをデータ送出指示信号が指示するタイミングで前記データ選択部へデータ送出を行う第1チャネル制御部と、
前記データ選択部と前記第2メモリモジュールとの間に挿入され、前記第2メモリモジュールから読み出されたデータを前記データ送出指示信号が指示するタイミングで前記データ選択部へデータ送出を行う第2チャネル制御部と、
前記第1メモリモジュールから読み出されたデータの前記第1チャネル制御部への第1到着タイミング、前記第2メモリモジュールから読み出されたデータの前記第2チャネル制御部への第2到着タイミング、及び前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータの訂正不可能エラーの有無を監視し、この監視結果に応じた基準を満たすように、前記第1チャネル制御部及び前記第2チャネル制御部に前記データ送出指示信号を出力し、前記データ選択部に前記データ選択信号を出力するメモリミラーリング制御部と、
を含み、
前記基準は、前記第1到着タイミングあるいは前記第2到着タイミングによって前記第1チャネル制御部あるいは前記第2チャネル制御部に到着済みであることが示されるデータのうちで、訂正不可能エラーが無いデータが前記データ選択部によって選択されることを表す、
メモリミラーリング装置。
【請求項2】
前記メモリミラーリング制御部は、前記第1到着タイミングと前記第2到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータに訂正不可能エラーがないときには、先に読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項3】
前記第1メモリモジュール及び前記第2メモリモジュールからデータ列を読み出す場合、
前記メモリミラーリング制御部は、前記第1到着タイミングと前記第2到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータ列が訂正不可能エラーを含むときには、先に読み出されたデータを選択することを基本としつつ、先に読み出されたデータ列のうち訂正不可能エラーが発生しているデータに対しては後に読み出されたデータ列の訂正不可能エラーのないデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項4】
前記メモリミラーリング制御部は、前記第1到着タイミングと前記第2到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの前記第1チャネル制御部への到着と前記第2メモリモジュールから読み出されたデータの前記第2チャネル制御部への到着を待つとともに、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、訂正不可能エラーがない方の読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項5】
前記第1メモリモジュール及び前記第2メモリモジュールからデータ列を読み出す場合、
前記メモリミラーリング制御部は、前記第1到着タイミングと前記第2到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの前記第1チャネル制御部への到着と前記第2メモリモジュールから読み出されたデータの前記第2チャネル制御部への到着を待つとともに、
訂正不可能エラーが発生しているデータを先に読み出されたデータ列が含むときには、先に読み出されたデータを選択することを基本としつつ、先に読み出されたデータ列のうち訂正不可能エラーが発生しているデータに対しては後に読み出されたデータ列の訂正不可能エラーのないデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項1に記載のメモリミラーリング装置。
【請求項6】
前記しきい値は、前記メモリミラーリング制御部に指定された、バースト転送のバースト長である、
請求項2乃至5のいずれか一項に記載のメモリミラーリング装置。
【請求項7】
プロセッサからの書き込み指示に基づいて、第1メモリモジュール及び第2メモリモジュールに同一のデータを書き込むと共に、前記プロセッサからの読み出し指示に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールからデータを読み出すメモリミラーリング方法であって、
データ選択部によって、入力されるデータ選択信号に基づいて、前記第1メモリモジュール及び前記第2メモリモジュールよりそれぞれ読み出されるデータのいずれかを選択し、
前記データ選択部と前記第1メモリモジュールとの間に挿入された第1チャネル制御部によって、前記第1メモリモジュールから読み出されたデータをデータ送出指示信号が指示するタイミングで前記データ選択部へデータ送出を行い、
前記データ選択部と前記第2メモリモジュールとの間に挿入された第2チャネル制御部によって、前記第2メモリモジュールから読み出されたデータを前記データ送出指示信号が指示するタイミングで前記データ選択部へデータ送出を行い、
メモリミラーリング制御部によって、
前記第1メモリモジュールから読み出されたデータの前記第1チャネル制御部への第1到着タイミング、前記第2メモリモジュールから読み出されたデータの前記第2チャネル制御部への第2到着タイミング、及び前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータの訂正不可能エラーの有無を監視し、
この監視結果に応じた基準を満たすように、前記第1チャネル制御部及び前記第2チャネル制御部に前記データ送出指示信号を出力し、前記データ選択部に前記データ選択信号を出力し、
前記基準は、前記第1到着タイミングあるいは前記第2到着タイミングによって前記第1チャネル制御部あるいは前記第2チャネル制御部に到着済みであることが示されるデータのうちで、訂正不可能エラーが無いデータが前記データ選択部によって選択されることを表す、
メモリミラーリング方法。
【請求項8】
前記メモリミラーリング制御部によって、
前記第1到着タイミングと前記第2到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より小さく、かつ先に読み出されたデータに訂正不可能エラーがないときには、先に読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項7に記載のメモリミラーリング方法。
【請求項9】
前記メモリミラーリング制御部によって、
前記第1到着タイミングと前記第2到着タイミングとの間のずれ量を監視し、
前記ずれ量がしきい値より大きいか等しいときには、前記第1メモリモジュールから読み出されたデータの前記第1チャネル制御部への到着と前記第2メモリモジュールから読み出されたデータの前記第2チャネル制御部への到着を待つとともに、
前記第1メモリモジュール及び前記第2メモリモジュールから読み出されたデータのいずれかに訂正不可能エラーがあるときには、訂正不可能エラーがない方の読み出されたデータを選択するように、前記データ選択信号を前記データ選択部に出力する、
請求項7に記載のメモリミラーリング方法。