JP2018165915A - コンピュータシステム、及びメモリコピー方法 - Google Patents

コンピュータシステム、及びメモリコピー方法 Download PDF

Info

Publication number
JP2018165915A
JP2018165915A JP2017063060A JP2017063060A JP2018165915A JP 2018165915 A JP2018165915 A JP 2018165915A JP 2017063060 A JP2017063060 A JP 2017063060A JP 2017063060 A JP2017063060 A JP 2017063060A JP 2018165915 A JP2018165915 A JP 2018165915A
Authority
JP
Japan
Prior art keywords
flag
data
computer system
memory
main memory
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.)
Granted
Application number
JP2017063060A
Other languages
English (en)
Other versions
JP6365718B1 (ja
Inventor
洋一 三田
Yoichi Mita
洋一 三田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2017063060A priority Critical patent/JP6365718B1/ja
Application granted granted Critical
Publication of JP6365718B1 publication Critical patent/JP6365718B1/ja
Publication of JP2018165915A publication Critical patent/JP2018165915A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Bus Control (AREA)

Abstract

【課題】CPUの負担を抑えつつメモリのデータ転送の時間を短縮する。【解決手段】二重化されたコンピュータシステムであって、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理する記憶領域管理部と、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部と、コピー制御以外におけるデータの転送を行う通常用データ転送部とを備え、コピー用データ転送部は、ハードウェアにより構成され、通常用データ転送部とは異なるバスに接続されていることを特徴とする。【選択図】図11

Description

本発明は、コンピュータシステム、及びコンピュータシステムのメモリコピー方法に関する。
ハードウェア(HW)の微細化によりコンピュータシステムのメモリ容量が増大しており、フォールトトレラントシステムや仮想化システムもそれに追随してメモリ容量の増加が求められている。フォールトトレラントシステムでは2つの系を二重化に移行させる際に、仮想化システムではライブマイグレーションで他の装置にゲストシステムを移動させる際に、通常の処理を一旦停止してメモリのデータを稼働系から待機系に転送する必要がある。しかし、メモリ容量の増大に応じてメモリ内容のコピー時間が長期化しており、処理停止時間が増大するという問題がある。その対策としてメモリをある程度の大きさの「ページ」単位で管理し、二重化又はマイグレーションを開始した後でシステムの稼働により更新されたメモリ領域にダーティページという印をつけながらメモリのデータを転送し、その後はダーティページのみ転送することを繰り返すことでメモリのデータ転送の時間を短縮する方法が提案されている。
また、例えば、特許文献1には、マルチプロセッサシステムにおいて、I/Oデバイス間でのアクセスに関してダーティ制御を行うことが記載されている。
特表2002−518734号公報
しかし、ダーティ制御を行う場合、ここで使用可能なダーティページの記録及び管理のためには、システムに搭載されているメモリの全領域をカバーする必要がある。しかしながら、多くのプロセッサに内蔵されているTranslation Lookaside Buffer(TLB)に実装されているダーティページの記録及び管理の機能では容量が不足する。そのため、上記のダーティ制御を行う方法ではTLBを活用することはあるが、システムに搭載されているメモリの全領域に対しては、OS(オペレーティングシステム)やソフトウェアによって記録及び管理することにより処理に時間がかかるという課題があった。
また、特許文献1に記載された発明では、I/Oデバイス間でのアクセスに関してダーティ制御を行うことしか行っておらず、メモリへの書き込みが最も多く行われると想定されるCPUに関してダーティ制御を行うことは何ら開示されていない。
そこで、本発明は、CPUの負担を抑えつつメモリのデータ転送の時間を短縮することができるコンピュータシステム、及びメモリコピー方法を提供することを目的とする。
本発明によるコンピュータシステムは、二重化されたコンピュータシステムであって、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理する記憶領域管理部と、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部と、コピー制御以外におけるデータの転送を行う通常用データ転送部とを備え、コピー用データ転送部は、ハードウェアにより構成され、通常用データ転送部とは異なるバスに接続されていることを特徴とする。
本発明によるメモリコピー方法は、二重化されたコンピュータシステムにおいて、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理し、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送し、コピー制御を行うときにデータの転送を行うコピー用データ転送部が、ハードウェアにより構成され、コピー制御以外におけるデータの転送を行う通常用データ転送部とは異なるバスに接続されていることを特徴とする。
本発明によれば、CPUの負担を抑えつつメモリのデータ転送の時間を短縮することができる。
本発明によるメモリコピー方法を適用したコンピュータシステム全体の構成例を示すブロック図である。 コンピュータシステムでメインメモリへの書込みに使用されるStore命令のマイクロコードを示す説明図である。 制御レジスタ群内の具体的なレジスタを示す説明図である。 DMA制御部の内部構成を示すブロック図である。 フラグ制御部の内部構成を示すブロック図である。 メインメモリのアドレスとフラグメモリのアクセス信号の対応表の例を示す説明図である。 コンピュータシステムがメモリコピーを行う場合の動作を示すフローチャートである。 メインメモリ読出し制御部が行う動作を示すフローチャートである。 フラグ書込み制御部が行う動作を示すフローチャートである。 フラグ読出し制御部が行う動作を示すフローチャートである。 コンピュータシステムの最小の構成例を示すブロック図である。
以下、本発明の実施形態について図面を参照して説明する。本発明では、メモリコピー方法は、フォールトトレラントシステムでの二重化プロセスや、仮想化システムでのマイグレーションプロセスで、システムを稼働させたままメインメモリのデータをコピーする。この際に、コピー後に更新のあったメインメモリのページ領域(ダーティページ)を記録及び管理できる手段と、記録されたダーティページの情報を元に必要なメモリのデータのみをコピーする手段をハートウェア(HW)上に設ける。そのように構成することにより、OS(オペレーティングシステム)やソフトウェアでダーティページを記録及び管理する場合に比べて、CPUの負荷を上げずにメインメモリのデータを転送することを特徴とする。その際、一般的なプロセッサやメモリを使用できるように、ハードウェアのうちのプロセッサやメモリには特殊な機能を入れず、マイクロコード等のファームウェア(FW)及びプロセッサに繋がるデバイスの追加で対応できることを特徴とする。
次に、本発明によるメモリコピー方法を適用したコンピュータシステムの構成について説明する。図1は、本発明によるメモリコピー方法を適用したコンピュータシステム全体の構成例を示すブロック図である。本発明によるメモリコピー方法を適用したコンピュータシステムは、ハードウェア的に同一の複数のモジュール100を含んで構成される。図1に示すように、モジュール100は、プロセッサ110と、メインメモリ120と、コピー制御部130と、フラグメモリ140,150と、チップセット160と、I/O部170とを備える。
なお、本実施形態では、図1に示すコンピュータシステムは、例えば、フォールトトレラントシステムでの二重化プロセスや、仮想化システムでのマイグレーションプロセスを行う場合に適用される。
プロセッサ110は、ソフトウェアの命令を理解してシステム全体を制御する機能を備える。また、メインメモリ120(主記憶装置)は、プロセッサ110に接続され、ソフトウェアの命令やデータを記憶する。また、コピー制御部130は、メインメモリ120のデータを効率よく他のモジュールに転送する機能を備える。また、フラグメモリ140,150は、システム稼働中のメモリのデータを転送する際にメモリの全ページ領域のダーティフラグ(データが書き換えられたか否かを示すフラグ)を記録(記憶)する。また、チップセット160は、通常の処理でコンピュータシステムの各機能部へデータを転送する機能を備える。また、I/O部170は、コンピュータシステムのインプット及びアウトプットの機能を備える。
また、近年のプロセッサには他のデバイスに接続できる高速なバスが複数搭載されており、本実施形態では、図1に示すように、通常の処理を行うためのチップセット160へのアクセスのためのバスとは異なるバスにコピー制御部130が接続されている。そのように構成することによって、本実施形態では、通常の処理を妨げることなく、ダーティフラグの処理を行うことを可能としている。
なお、ハードウェア的に完全に同期をとるフォールトトレラントシステムに適用する場合には、チップセット160に他のモジュールと接続して同期を行うための機能を設けるように構成してもよい。その場合には、チップセット160の中にコピー制御部130を入れ込む構成とすることも可能である。
また、図1に示すように、プロセッサ110は、演算機能を有するCPUコア111と、プロセッサの内部バス113と、メインメモリ120へのアクセスを制御するメモリI/F114と、メモリ以外のデバイスへのアクセスを行うバスI/F115とを備える。また、プロセッサ110は、ソフトウェアからの命令をハードウェアの詳細な命令に対応させるためのマイクロコード112を用いて動作する。
また、図1に示すように、コピー制御部130は、トランザクション振分部131と、制御レジスタ群132と、DMA制御部133と、フラグ制御部134と、フラグメモリI/F135,136とを備える。トランザクション振分部131は、プロセッサ110及び内部の各機能部のトランザクションを受けて適切な宛先に振り分ける機能を備える。また、制御レジスタ群132は、コピー制御部130の動作をソフトウェアから制御するための複数のレジスタである。また、DMA制御部133は、自モジュールのメモリに対するアクセスを行い、他モジュールとのデータ転送を中継する機能を備える。また、フラグ制御部134は、プロセッサ110から入力されたトランザクションを解析してダーティフラグを生成し管理する機能を備える。また、フラグメモリI/F135,136は、フラグ制御部134からの要求に従いフラグメモリ140,150の読み書きを行う機能を備える。
図2は、コンピュータシステムでメインメモリ120への書込みに使用されるStore命令のマイクロコードを示す説明図である。一般に、コンピュータシステムでは、このStore命令によりレジスタID=Rjが示すメインメモリ120のアドレスにレジスタID=Riの値を書込むという動作を行って終了としている。これに対して、本実施形態におけるコンピュータシステムでは、Store命令において、さらに、その後にフラグ制御部134のフラグ書込みアドレスにレジスタID=Rjの値を書込むという処理が続くように構成されている。このStore命令によりプロセッサ110からメインメモリ120へ書込みを行ったメインメモリ120のアドレスをコピー制御部130へ出力することが可能となる。
図2に示すStore命令のマイクロコードによりプロセッサ110からコピー制御部130へ出力されるメインメモリ120への書込みアドレスを、図1に示すコピー制御部130内のフラグ制御部134によりダーティフラグを生成及び管理して、DMA制御部133によりダーティページ(データが書き換えられたページ)のデータのみ他のモジュールに転送することができる。そのため、OSやソフトウェアによるダーティページの生成及び管理が不要となることで、高速なメモリコピーを実現できる。
図3は、制御レジスタ群132内の具体的なレジスタを示す説明図である。図3では、制御レジスタ群132内の具体的なレジスタとして、メインメモリ120の中で他モジュールと同期する領域の最小のページアドレスの値を示す最小ページアドレスレジスタと、他モジュールと同期する領域の最大のページアドレスの値を示す最大ページアドレスレジスタとを含むことを示している。これらのレジスタは、コピー制御部130内の各機能部で共通的に使用される。
図4は、DMA制御部133の内部構成を示すブロック図である。なお、図4において、図内の点線は主な制御信号やアドレス信号を示し、実線は主なデータ信号を示している。図4に示すように、DMA制御部133は、DMA制御デコーダ10と、DMAモードレジスタ11と、ページアドレスカウンタ12と、セレクタ13と、オフセットカウンタ14と、メインメモリ読出し制御部15と、送信バッファ16と、受信バッファ17と、メインメモリ書込み制御部18とを備える。
DMA制御デコーダ10は、トランザクション振分部131から入力されたトランザクションを解析し、DMAモードレジスタ11への値の書込みや送信バッファ16へのメモリ読出しトランザクションの転送を行い、その他DMA制御部133の各種機能をコントロールするための動作を行う機能を備える。
DMAモードレジスタ11は、DMAの動作として、他モジュールと同期するメモリ領域全体をコピー(全メモリコピー)するか、ダーティページとして管理されているページのみコピー(差分メモリコピー)するかどうかを示す値を、DMAモードとして保持する。
ページアドレスカウンタ12は、全メモリコピーの場合にコピーを行うメインメモリ120のページアドレスを記憶し、ページ全体のコピーが終了するとカウントアップする機能を備える。
セレクタ13は、DMAモードレジスタ11の値が全メモリコピーを示す場合には、ページアドレスカウンタ12から出力されるページアドレスを選択して、メインメモリ読出し制御部15に出力する機能を備える。また、セレクタ13は、DMAモードレジスタ11の値が差分メモリコピーを示す場合には、フラグ制御部134から出力されるページアドレスを選択して、メインメモリ読出し制御部15に出力する機能を備える。
オフセットカウンタ14は、コピーを行うメインメモリ120のページ内のアドレスを記憶し、1回のトランザクションで転送可能なデータ分だけアドレスをカウントアップする機能を備える。
メインメモリ読出し制御部15は、セレクタ13から出力されるページアドレスとオフセットカウンタ14から出力されるページ内のアドレスとを合成したメインメモリ120のアドレスに対するメモリ読出し要求トランザクションを発生させる(生成する)機能を備える。また、メインメモリ読出し制御部15は、生成したメモリ読出し要求トランザクションをトランザクション振分部131に出力すると同時に、送信バッファ16にメインメモリ120のアドレスを書込む機能を備える。
送信バッファ16は、メインメモリ読出し制御部15から出力されたアドレスと、そのアドレスに対するメモリ読出しトランザクションにより返ってきたメモリのデータを対にして複数記憶し、順に他モジュールのDMA制御部133の受信バッファ17に転送する機能を備える。
受信バッファ17は、他モジュールから転送されたメモリアドレスとデータを複数記憶し、必要なタイミングで順にメインメモリ書込み制御部18にアドレスを渡し(出力し)、トランザクション振分部131にデータを渡す(出力する)機能を備える。
メインメモリ書込み制御部18は、受信バッファ17からメモリアドレスを受ける(入力する)と、メインメモリ120の該当するアドレスに対するメモリ書込みトランザクションを発生させ(生成し)、必要なタイミングで受信バッファ17からトランザクション振分部131にデータを出力する制御を行う機能を備える。
図5は、フラグ制御部134の内部構成を示すブロック図である。なお、図4と同様に、図5において、図内の点線は主な制御信号やアドレス信号を示し、実線は主なデータ信号を示している。図5に示すように、フラグ制御部134は、フラグ制御デコーダ20と、フラグ選択レジスタ21と、フラグ許可レジスタ22と、フラグ書込み制御部23と、フラグ書込みレジスタ24と、フラグ検出部25と、フラグカウンタ26と、フラグ読出し制御部27と、アドレスポインタ28と、フラグ読出しレジスタ29と、アドレスエンコーダ30と、セレクタ31,32,33,34とを備える。
フラグ制御デコーダ20は、トランザクション振分部131から入力されたトランザクションを解析し、フラグ選択レジスタ21、フラグ許可レジスタ22、フラグカウンタ26の値の読み書きを行う機能を備える。また、フラグ制御デコーダ20は、図2に示すStore命令によりメインメモリ120のアドレスをフラグ制御部134に書込むダーティフラグ書込みトランザクションの場合には、フラグ書込みレジスタ24やフラグ検出部25へフラグメモリ140,150のデータ幅内のダーティフラグの位置を示す値を出力したり、セレクタ31,32へフラグメモリ140,150にアクセスするためのアドレスを出力したり、フラグ書込み制御部23の機能をコントロールするための動作を行う機能を備える。
図6は、メインメモリ120のアドレスとフラグメモリ140,150のアクセス信号の対応表の例を示す説明図である。この例では、メインメモリ120全体のアドレスとして32bitの値をもつものとする、また、4KByte単位のページ領域としてbit11−0の12bitのページ内オフセットと、bit31−12の20bitのページアドレスをもつものとする。また、ページアドレスのうちbit15−12の下位4bitはフラグメモリのデータのビット位置として使用し、bit31−16の上位16bitはフラグメモリのアドレスとして使用するものとする。この場合、フラグメモリ140,150は、それぞれアドレス16bitでデータ幅16bitとなるメモリデバイスで構成される。
フラグ選択レジスタ21は、ダーティフラグの書込みやダーティフラグの読出しのアクセスを、2つあるどちらのフラグメモリ140,150に対して行うか選択するための値を保持するレジスタである。
フラグ許可レジスタ22は、ダーティフラグの書込み動作を行うか否か選択するための値を保持するレジスタである。
フラグ書込み制御部23は、ダーティフラグの書込みのための動作全体を制御するためにフラグ制御部134の各種機能をコントロールする機能を備える。
フラグ書込みレジスタ24は、ダーティフラグをフラグメモリ140,150のデータの該当ビットだけに書込むために、一時的にフラグメモリ140又はフラグメモリ150のデータを記憶し、フラグ制御デコーダ20から出力されたダーティフラグのデータと合成する機能を備える。例えば、ダーティであることを示す場合が”1”であり、ダーティではないことを示す場合が”0”であるものとする。この場合、データ幅が16bitのフラグメモリ140又はフラグメモリ150から読み出されたデータが2進数の”0000−1000−0000−0001”で、フラグ制御デコーダ20から出力されるダーティフラグの位置がLSBから0オリジンで”6”とした場合、フラグ書込みレジスタ24で合成される値は2進数の”0000−1000−0100−0001”となる。
フラグ検出部25は、フラグ書込みレジスタ24にフラグメモリ140又はフラグメモリ150のデータが読み出された値のうち、フラグ制御デコーダ20から出力されるダーティフラグの位置のビットの値を検出する機能を備える。
フラグカウンタ26は、ダーティフラグ書込みトランザクションを受けた(入力した)場合にフラグ検出部25で検出した値が”0”の場合(該当するダーティフラグがまだ立っていなかった場合)、カウントアップすることで、これまで書込んだダーティフラグの数を記憶する機能を備える。
フラグ読出し制御部27は、DMA制御部133からのリクエストに従い、ダーティフラグの読出しのための動作全体を制御するためにフラグ制御部134の各種機能をコントロールする機能を備える。
アドレスポインタ28は、ダーティフラグの読出しの動作で使用するフラグメモリ140又はフラグメモリ150のアドレスを記憶する。なお、アドレスポインタ28は、例えば、レジスタ等によって実現される。
フラグ読出しレジスタ29は、ダーティフラグの読出しの動作でフラグメモリ140又はフラグメモリ150から読み出されたデータを一時的に記憶し、DMA制御部133に渡された(出力された)ダーティページのアドレスに該当するビットのダーティフラグをクリアする機能を備える。
アドレスエンコーダ30は、アドレスポインタ28の値とフラグ読出しレジスタ29の値とから、次にコピーすべきメインメモリ120のダーティページのアドレスを発生させる(求める)機能を備える。
セレクタ31,32は、フラグ選択レジスタ21の値に従い、フラグメモリI/F135,136を経由したフラグメモリ140,150に対するアクセスを、フラグ書込みのための動作とするか、フラグ読出しのための動作とするかを選択する機能を備える。
セレクタ33は、フラグ選択レジスタ21の値に従い、フラグメモリI/F135,136を経由してフラグメモリ140,150から読み出したデータのうちどちらをフラグ書込み用のデータとして使用するかを選択する機能を備える。
セレクタ34は、フラグ選択レジスタ21の値に従い、フラグメモリI/F135,136を経由してフラグメモリ140,150から読み出したデータのうちどちらをフラグ読出し用のデータとして使用するかを選択する機能を備える。
本実施形態では、フラグ選択レジスタ21の値が、フラグ書込み用としてフラグメモリ140を選択し、フラグ読出し用としてフラグメモリ150を選択している場合、各セレクタ31〜34は次の動作を行う。セレクタ31は、フラグ書込み制御部23の要求に従いフラグ制御デコーダ20から出力されるアドレスに対してフラグメモリI/F135にアクセスし、フラグメモリ140への書込みデータはフラグ書込みレジスタ24から出力されたものを使用する。セレクタ32は、フラグ読出し制御部27の要求に従いアドレスポインタ28から出力されるアドレスに対してフラグメモリI/F136にアクセスし、フラグメモリ150への書込みデータは”0”が使用される。セレクタ33は、フラグメモリI/F135を介してフラグメモリ140のデータを選択し、セレクタ34は、フラグメモリI/F136を介してフラグメモリ150のデータを選択する。一方、フラグ選択レジスタ21の値が、フラグ書込み用としてフラグメモリ150を選択し、フラグ読出し用としてフラグメモリ140を選択している場合、各セレクタ31〜34は、上記とは逆のデータ、アドレス、及び制御信号を選択する動作を行う。
次に、動作について説明する。図7は、コンピュータシステムがメモリコピーを行う場合の動作を示すフローチャートである。図7は、図1に示すコンピュータシステムをフォールトトレラントシステムや仮想化システムに適用した場合に、フォールトトレラントシステムでの二重化プロセスや、仮想化システムでのマイグレーションプロセスで、システムを稼働させた状態で、メインメモリ120のデータのコピーを行う際に、二重化又はマイグレーションを制御するドライバ等の動作を示している。
コンピュータシステムは、メモリコピーを開始すると(ステップS0)、コピーが必要なメインメモリ120の領域を特定し、最小ページアドレスレジスタ及び最大ページアドレスレジスタに値を設定する(ステップS1)。このとき、ハードウェアで完全にメインメモリの二重化を実現するフォールトトレラントシステムでは、搭載されているメインメモリ120全体のページアドレスの最小値、及び最大値が設定される。また、仮想化システムで1つの仮想マシンのマイグレーションを行う場合には、その仮想マシンにアサインされているメモリ領域のページアドレスの最小値、及び最大値が設定される。
その後、コンピュータシステムは、メインメモリ120のコピーにおいてハードウェアでダーティフラグを記録及び管理するためにフラグカウンタ26を”0”にリセットし、フラグ許可レジスタ22をダーティフラグの書込みを行う値を設定する(ステップS2)。なお、フラグ選択レジスタ21に関してはフローチャートに記載していないが、初期値として、例えば、フラグメモリ140をダーティフラグ書込み用として選択する設定がされ、フラグメモリ150をダーティフラグ読出し用として選択する設定がされているものとする。
その後、コンピュータシステムは、DMAモードレジスタ11に他モジュールと同期するメインメモリ領域全体をコピー(全メモリコピー)することを示す値を設定して、メインメモリ読出し制御部15にDMA開始の指示を出す(ステップS3)。
ここで、全メモリコピーのDMA開始後のハードウェアの動作を図8を参照して説明する。図8は、メインメモリ読出し制御部15が行う動作を示すフローチャートである。メインメモリ読出し制御部15は、DMAを開始すると(ステップS100)、DMAモードレジスタ11の値を確認して差分メモリコピーかどうかを判断する(ステップS101)。図7に示すステップS3の状態では全メモリコピーであるため判断結果は”NO”となり、メインメモリ読出し制御部15は、最小ページアドレスレジスタの値をページアドレスカウンタ12にセットする(ステップS103)。一方、DMAモードレジスタ11の値が差分メモリコピーでない場合、セレクタ13は、ページアドレスカウンタ12の値をメインメモリ読出し制御部15に出力する。
その後、メインメモリ読出し制御部15は、オフセットカウンタ14を”0”にセットし(ステップS104)、他モジュールと同期するメインメモリ領域の最小のアドレスへの読出し要求のトランザクションを生成し、トランザクション振分部131に出力する(ステップS105)。
また、メインメモリ読出し制御部15は、トランザクションの出力を完了するとオフセットカウンタ14の値が最大かどうかを確認する(ステップS106)。最大でなければ、メインメモリ読出し制御部15は、オフセットカウンタ14の値を1つカウントアップする(ステップS107)。また、メインメモリ読出し制御部15は、そのカウントアップした値を用いて再度他モジュールと同期するメインメモリ領域の最小のアドレスへの読出し要求のトランザクションを生成し、トランザクション振分部131に出力する(ステップS105)。
メインメモリ読出し制御部15は、上記の処理のループを繰り返し、オフセットカウンタ14の値が最大になると、DMAモードレジスタ11の値を確認して差分メモリコピーかどうかを判断する(ステップS108)。図7に示すステップS3の状態は全メモリコピーであるため判断結果は”NO”となり、メインメモリ読出し制御部15は、ページアドレスカウンタ12と最大ページアドレスレジスタの値とを比較する(ステップS111)。
ページアドレスカウンタ12の値が最大ページアドレスレジスタの値より小さい場合、メインメモリ読出し制御部15は、ページアドレスカウンタ12の値を1つカウントアップする(ステップS112)。また、メインメモリ読出し制御部15は、オフセットカウンタ14の値を”0”にセットし(ステップS104)、次のページアドレスのメインメモリ120の読出し要求トランザクションを行う。
上記のように処理を実行して、ページアドレスをカウントアップしながら、ページアドレスカウンタ12の値が最大ページアドレスレジスタの値と同じになるまで順番にメインメモリ120の読出し要求トランザクションの発行(生成)が行われると、ステップS111におけるページアドレスカウンタ12と最大ページアドレスレジスタとの値の比較の結果が”YES”となる。
これまでに発行したメインメモリ120の読出し要求トランザクションは、トランザクション振分部131からプロセッサ110内のバスI/F115及びプロセッサ内部バス113を経由してメモリI/F114に渡される(出力される)。メモリI/F114は、メインメモリ120の読出し要求トランザクションで要求されたアドレスの位置にある、メインメモリ120のデータを読み出す。そして、コピー制御部130内のDMA制御部133宛のメインメモリ読出しトランザクションとして送信する。
メインメモリ読出しトランザクションは、メインメモリ読出し要求トランザクションの逆の経路をたどり、DMA制御部133のDMA制御デコーダ10に渡される(出力される)。DMA制御デコーダ10は、メインメモリ読出しトランザクションを受ける(入力する)と、メインメモリ読出し制御部15がメインメモリ読出し要求トランザクション発行時にメインメモリ120のアドレスを書込んだ送信バッファ16の対応する位置にメインメモリ120のデータを書込む。
メインメモリ読出し制御部15は、発行した全てのメインメモリ読出し要求トランザクションに対するメインメモリ読出しトランザクションによるメインメモリ120のデータが送信バッファ16に書込まれるのを待ち(ステップS113)、DMAの処理を終了する(ステップS114)。
メインメモリ120のコピー先のモジュール100にあるDMA制御部133の受信バッファ17は、コピー元の送信バッファ16からメインメモリ120のアドレス及びデータの値を受ける(受信する)と、メインメモリ書込み制御部18で該当するメインメモリ120のアドレスへの書込みトランザクションを発生させ(生成し)、受信バッファ17にある該当するメインメモリ120へのデータを含めてトランザクション振分部131に出力する。
メインメモリ書込みトランザクションは、コピー先のモジュール100で、プロセッサ110内のバスI/F115及びプロセッサ内部バス113を経由してメモリI/F114に送られる(出力される)。そして、メモリI/F114は、メインメモリ120の書込み要求トランザクションで要求されたアドレスの位置にデータを書込む。
上記のように処理することにより、コピー元のDMA制御部133内のメインメモリ読出し制御部15で発行した全てのメインメモリ読出し要求トランザクションに対するデータがコピー先のメインメモリ120に書込まれると、最小ページアドレスレジスタと最大ページアドレスレジスタとの間にあるメインメモリ120のデータが全てコピーされる。
メインメモリ120のコピー元のモジュール100では、このDMAによるメインメモリ120のコピー以外にも通常のコンピュータシステムとしての処理を継続している。ここで、コピー元のモジュール100でメインメモリ120への書込みが発生したときには、図2に示すStore命令が実行され、メインメモリ120への書込みとともにメインメモリ120への書込みアドレスがフラグ制御部134にダーティフラグ書込みトランザクションとして送信される。
図9は、フラグ書込み制御部23が行う動作を示すフローチャートである。図9は、フラグ書込み制御部23がダーティフラグ書込みの要求を受けた後の動作を示している。フラグ制御デコーダ20は、ダーティフラグ書込みトランザクションを受ける(入力する)とフラグ書込み制御部23にダーティフラグの書込みを要求し、フラグ書込み制御部23は、ダーティフラグの書込み処理を開始する(ステップS200)。ダーティフラグの書込み処理を開始すると、フラグ書込み制御部23は、フラグ許可レジスタ22の値をチェックし(ステップS201)、ダーティフラグの書込みが有効でなければそのまま動作を終了する(ステップS208)。
ダーティフラグの書込みが有効な場合には、フラグ書込み制御部23は、書込みが発生したメインメモリ120のアドレスと、最小ページアドレスレジスタ及び最大ページアドレスレジスタの値とを比較して、コピーが必要な領域のアドレス範囲内かどうかをチェックし(ステップS202)、範囲内でなければそのまま動作を終了する(ステップS208)。
コピーが必要な領域のアドレス範囲内の場合には、フラグ書込み制御部23は、フラグメモリ140,150から値を読み出してフラグ書込みレジスタ24にセットする。この場合、フラグメモリ140をダーティフラグ書込み用として選択され、フラグメモリ150をダーティフラグ読出し用として選択されている場合、セレクタ31が要求を受け(入力し)、フラグメモリI/F135を経由してフラグメモリ140の値を読み出す。そして、フラグ書込み制御部23は、読み出した値をセレクタ33を経由してフラグ書込みレジスタ24にセットする(ステップS203)。
フラグ書込みレジスタ24にフラグメモリ140,150のデータをセットすると、フラグ書込み制御部23は、ダーティフラグ書込みトランザクションで指定されたメインメモリ120のアドレスのうちフラグメモリ140,150のデータのビット位置に該当する値を参照し、フラグ書込みレジスタ24の該当するビットをチェックする(ステップS204)。そして、フラグ書込み制御部23は、該当するビットが立っていればそのまま動作を終了する(ステップS208)。
フラグ書込みレジスタ24の該当するビットが立っていなければ、フラグ書込み制御部23は、フラグカウンタ26をカウントアップして(ステップS205)、フラグ書込みレジスタ24の該当するビットのフラグを立てる(セットする)(ステップS206)。
その後、フラグ書込みレジスタ24の値をフラグメモリ140,150に書込むが、フラグメモリ140をダーティフラグ書込み用として選択され、フラグメモリ150をダーティフラグ読出し用として選択されている場合、セレクタ31が要求を受け(入力し)、フラグ書込み制御部23は、フラグメモリI/F135を経由してフラグメモリ140に値を書込み(ステップS207)、動作を終了する(ステップS208)。
上記のように処理することにより、フラグ許可レジスタ22の値がダーティフラグ書込み有効を示す間、コピーが必要なメインメモリ120の領域へ書込んだページアドレスをフラグメモリ140,150に記録することができる。
図7のステップS3でDMAが完了すると、コンピュータシステムは、DMA中にコピーが必要なメインメモリ120の領域へ書込まれたページアドレス(ダーティページ)の数がフラグカウンタ26に記録されており、予め設定された閾値以内に差分が入っているかどうか判断する(ステップS4)。差分が閾値より大きい場合には、コンピュータシステムは、フラグカウンタ26を”0”にリセットし、フラグ選択レジスタ21の設定に関してフラグメモリ140,150のダーティフラグ書込み用とダーティフラグ読出し用との設定を逆に切り替える(ステップS5)。
その後、コンピュータシステムは、DMAモードレジスタ11の値をダーティフラグが立っている(セットされている)ページのみコピー(差分メモリコピー)することを示す値に設定して、メインメモリ読出し制御部15にDMA開始の指示を出す(出力する)(ステップS6)。
差分メモリコピーのDMA開始後のハードウェアの動作を、図8に示すメインメモリ読出し制御部15のフローチャートを用いて説明する。メインメモリ読出し制御部15は、DMAを開始すると(ステップS100)、DMAモードレジスタ11の値を確認して差分メモリコピーかどうかを判断する(ステップS101)。図7に示すステップS6の状態は差分メモリコピーであるため判断結果は”YES”となり、フラグ制御部134のフラグ読出し機能のリセットによりアドレスポインタ28には最小ページアドレスレジスタのページアドレスの上位16bitが設定され、フラグ読出しレジスタ29は”0”に設定され、メインメモリ読出し制御部15は、メインメモリ120にアクセスすべきページアドレスの読出しを行う(ステップS102)。
図10は、フラグ読出し制御部27が行う動作を示すフローチャートである。フラグ制御部134のフラグ読出し制御部27は、図10に示すフローチャートの動作により、メインメモリ120にアクセスすべきページアドレスの読出しを行う。フラグ読出し制御部27は、DMA制御部133からの読み出し要求により動作を開始し(ステップS300)、フラグ読出しレジスタ29の値が”0”かどうかチェックする(ステップS301)。初期状態ではフラグ読出しレジスタ29が”0”にリセットされており、フラグ読出し制御部27は、アドレスポインタ28と最大ページアドレスレジスタとの値を比較する(ステップS302)。
初期状態ではアドレスポインタ28には最小ページアドレスレジスタ値が入っているため判断結果は”NO”となり、フラグ読出し制御部27は、フラグメモリ140,150から値を読み出してフラグ読出しレジスタ29に値をセットする(ステップS303)。
フラグ選択レジスタ21は、初期値としてフラグメモリ140がフラグ書込み用に設定され、フラグメモリ150がフラグ読出し用に設定されているのであるが、全メモリコピーが終了して差分メモリコピーが開始される時点で切替る。そのため、フラグメモリ150がフラグ書込み用に設定され、フラグメモリ140がフラグ読出し用に設定されており、フラグ読出しレジスタ29にはフラグメモリ140から読み出されたデータとして、例えば2進数の”0000−1000−0100−0001”が書き込まれる。
その後、フラグ読出し制御部27は、読み出したフラグメモリ140のアドレスに”0”を書込むことで、フラグメモリ140の値をクリアし(ステップS304)、次のフラグメモリ140,150からの読出しに備えてアドレスポインタ28を1つカウントアップする(ステップS305)。
その後、フラグ読出し制御部27は、ステップS301に戻りフラグ読出しレジスタ29の値をチェックする。ここでは、フラグ読出しレジスタ29の値が”0”ではないため、フラグ読出し制御部27は、アドレスエンコーダ30によりアドレスポインタ28が示すページアドレスの上位16bitの値と、フラグ読出しレジスタ29の中でフラグが立っている最小のビットであるbit0の位置を示すページアドレスの下位4bitの値として2進数の”0000”を合わせて、DMA制御部133に出力する(ステップS307)。
その後、フラグ読出し制御部27は、次の読出しに備えてフラグ読出しレジスタ29の中でフラグが立っている最小のビットであるbit0を”0”にクリアし、フラグ読出しレジスタ29の値を2進数の”0000−1000−0100−0000”とする(ステップS308)。
DMAモードレジスタ11の値が差分メモリコピーの場合、セレクタ13は、上記により読み出したフラグ制御部134の値をメインメモリ読出し制御部15に出力する。その後、メインメモリ読出し制御部15は、オフセットカウンタ14を”0”にセットする(ステップS104)。また、メインメモリ読出し制御部15は、ダーティフラグがセットされていたメインメモリのページ領域の最小のアドレスへの読出し要求のトランザクションを生成し、トランザクション振分部131に出力する(ステップS105)。
トランザクションの出力を完了すると、メインメモリ読出し制御部15は、オフセットカウンタ14の値が最大かどうかを確認する(ステップS106)。最大でなければ、メインメモリ読出し制御部15は、オフセットカウンタ14の値を1つカウントアップする(ステップS107)。また、メインメモリ読出し制御部15は、そのカウントアップした値を用いて再度他モジュールと同期するメインメモリ領域の最小のアドレスへの読出し要求のトランザクションを生成し、トランザクション振分部131に出力する(ステップS105)。
メインメモリ読出し制御部15は、上記の処理のループを繰り返し、オフセットカウンタ14の値が最大になると、DMAモードレジスタ11の値を確認して差分メモリコピーかどうかを判断する(ステップS108)。図7に示すステップS6の状態は差分メモリコピーであるため判断結果は”YES”となり、メインメモリ読出し制御部15は、フラグ制御部134から次のアドレスを読み出す(ステップS109)。
フラグ制御部134のフラグ読出し制御部27は、次のアドレスの読出し要求により処理を開始すると(ステップS300)、フラグ読出しレジスタ29の値を確認する(ステップS301)。ここでは、最初の読出しの後の値として2進数の”0000−1000−0100−0000”となっているため、フラグ読出し制御部27は、アドレスエンコーダ30によりアドレスポインタ28が示すページアドレスの上位16bitの値と、フラグ読出しレジスタ29の中でフラグが立っている最小のビットであるbit6の位置を示すページアドレスの下位4bitの値として2進数の”0110”を合わせて、DMA制御部133に出力する(ステップS307)。
その後、フラグ読出し制御部27は、次の読出しに備えてフラグ読出しレジスタ29の中でフラグが立っている最小のビットであるbit6を”0”にクリアし、フラグ読出しレジスタ29の値を2進数の”0000−1000−0000−0000”とする(ステップS308)。
ここでは、図8に示すステップS109の処理を実行した後でフラグ制御部134からコピー終了通知ではないため(ステップS110)、メインメモリ読出し制御部15は、ステップS104の処理に戻る。メインメモリ読出し制御部15は、ステップS109で読み出したページアドレスのページ全体に対して、これまでと同様にオフセットアドレスをカウントアップしながら読出し要求トランザクションを行うと、またステップS109の処理に戻りフラグ制御部134から次のアドレスの読出しを行う。
メインメモリ読出し制御部15は、ステップS109でアドレスを読み出すたびに、図10に示す処理でフラグ読出しレジスタ29にフラグが立っているビットが残っている間には、フラグの立っている最小のビットに合わせてアドレスを発生(ステップS307)させながらフラグをクリア(ステップS308)していく。そして、メインメモリ読出し制御部15は、フラグ読出しレジスタ29が”0”になったら(ステップS301)、次のフラグメモリの値を読み出して(ステップS303)、アドレスポインタ28をカウントアップさせ(ステップS305)、ダーティページのアドレスの発生を続けていく。
最終的にフラグ読出しレジスタ29が”0”になり(ステップS301)、アドレスポインタ28が最大ページアドレスレジスタの値と同じになったときに(ステップS302)、メインメモリ読出し制御部15は、コピー終了をDMA制御部133に通知(出力)する(ステップS306)。
図8に示すステップS109の処理でコピー終了を受けると、DMA制御部133のメインメモリ読出し制御部15は、ステップS110の処理でそのコピー終了を検出する。そして、メインメモリ読出し制御部15は、全メモリコピーの場合と同様に、これまでに発行した全てのメインメモリの読出し要求トランザクションに対するメインメモリ読出しトランザクションにより、メインメモリ120のデータが送信バッファ16に書込まれるのを待ち(ステップS113)、DMAの処理を終了する(ステップS114)。
メインメモリ120のコピー先のモジュール100の動作は全メモリコピーのときと同じ動作となり、受信バッファ17で受けたメインメモリ120のアドレスの位置に合わせてコピー先のメインメモリ120にデータを書込む。この様にして、コピー元のDMA制御部133内のメインメモリ読出し制御部15で発行した全ダーティページのメインメモリ読出し要求トランザクションに対するデータがコピー先のメインメモリ120に書込まれる。
この差分メモリコピーの間にも、コピー元のモジュール100では通常のコンピュータシステムとしての処理を継続している。そして、メインメモリ120への書込みが発生したときには、図2に示すStore命令が実行され、メインメモリ120への書込みとともにメインメモリ120への書込みアドレスがフラグ制御部134にダーティフラグ書込みトランザクションとして送信される。このタイミングでは、フラグメモリ150がフラグ書込み用に設定され、フラグメモリ140がフラグ読出し用に設定されている。そのため、差分メモリコピーのためにフラグメモリ140が使用されている間も、全メモリコピーのときと同様にその後に発生したダーティフラグ書込みトランザクションによりフラグメモリ150に記録され、ダーティページの数がフラグカウンタ26でカウントされている。
図7に示すステップS6の処理で差分メモリコピーが終わると(ステップS6)、コンピュータシステムは、フラグカウンタ26に記録されている通常の処理で発生したダーティページの数をチェックして、予め設定された閾値以内に差分が入っているかどうか判断する(ステップS7)。差分が閾値より大きい場合には、コンピュータシステムは、再度ステップS5に戻り差分メモリコピーを行う。一方、ステップS5〜S7の処理を何回か繰り返して、ステップS7で閾値以内となった場合には、コンピュータシステムは、通常のコンピュータシステムとしての処理を行う一般プロセスを停止させ(ステップS8)、ステップS5,S6と同様にステップS9,S10で差分メモリコピーを実行する。このときには、ステップS8で一般プロセスが停止されているため、これ以上メインメモリ120への書込みが行われず、DMAが完了した時点でコピー先のモジュール100に必要な全てのメインメモリ領域の値がコピーされた状態となる。
その後、コンピュータシステムは、フラグ許可レジスタ22にダーティフラグの書込みを無効にする設定を行い(ステップS11)、メモリコピーの処理を終了する(ステップS12)。
以上に説明したように、本実施形態によれば、フォールトトレラントシステムでの二重化プロセスや、仮想化システムでのマイグレーションプロセスで、システムを稼働させたままメインメモリ120のデータをコピーする際に、ダーティフラグの記録及び管理を全てハードウェアで実行する。そのため、OSやソフトウェアによるメインメモリ120上でのダーティフラグの記録や管理が不要となり、DMAの起動やDMAが完了したときのダーティページの数のチェックを行う程度でメモリコピーを実施することができる。従って、CPU(プロセッサ110)の負荷を抑えることができる。
また、コンピュータシステムでは、ソフトウェアでダーティページを記録及び管理する場合、1度のメインメモリ120への書込みアクセスに対して、ダーティフラグのあるメモリアドレスからデータを読出し、書込みアクセスに対応するビットにダーティフラグをセットし、ダーティフラグのあるメモリアドレスにデータを書き戻すという3つの処理が発生する。このことに対して、本実施形態では、フラグ制御部134における書込みアクセスしたアドレスを書込むという処理の追加のみで実現可能となる。例えば、メインメモリ120への書込み時間が10nsであり、読出し時間が50nsであり、演算処理時間が5nsであり、メインメモリ120以外への書込み時間が20nsであるとした場合、ソフトウェアによりダーティページを記録及び管理を行うと、通常では1度のインメモリ120への書込みで10+50+5+10=75nsかかる。これに対して、本実施形態によれば、10+20=30nsとなり、CPUの負荷は半分以下となる。
また、本実施形態によれば、フラグ制御部134とDMA制御部133とが連携することにより、ダーティページのみの差分メモリコピーを完全にハードウェアで実現することが可能となる。そのため、OSやソフトウェアによりCPUを使用しながらメモリコピーを行う場合に比べて、CPUにはほとんど負荷がかからずにコピーを行うことができる。
また、コンピュータシステムでは、ソフトウェアでダーティページを記録及び管理する場合、1度のメインメモリ120のコピーの際に、ダーティページアドレス取得のためのメモリ読出し、ダーティページのデータのメモリ読出し、コピー先へのデータ書込みという処理が必要となる。これに対して、本実施形態によれば、ハードウェアで全て実行するためCPUへの負荷がかからなくなる。
また、本実施形態によれば、プロセッサやメモリなど主要なデバイスは標準的な機能により実現でき、唯一プロセッサのマイクロコードに手を入れることでメインメモリ120への書込みの際にそのアドレスを外部バスに出力させる機能を追加することができる。
また、本実施形態によれば、本発明によるメモリコピー方法を適用したコンピュータシステムを実現するために必要な機能は、コピー制御部130及びフラグメモリ140,150だけである。そのため、これらのデバイスをシステムに新規に追加することで実現可能となり、通常の処理で必要となる主要なハードウェアデバイスはそのまま使用することができる。
以上のことから、本実施形態によれば、CPUの負担を抑えつつメモリのデータ転送の時間を短縮することができる。
次に、本発明によるメモリコピー方法を適用したコンピュータシステムの最小構成について説明する。図11は、コンピュータシステムの最小の構成例を示すブロック図である。図11に示すように、コンピュータシステムは、二重化されたコンピュータシステムであって、フラグ制御部134と、コピー制御部130と、チップセット160とを備える。
フラグ制御部134は、データが書き換えられたか否かを示すダーティ情報(ダーティフラグ)を用いて、メインメモリの記憶領域を管理する機能を備える。また、コピー制御部130は、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送する機能を備える。また、チップセット160は、コピー制御以外におけるデータの転送を行う機能を備える。また、コピー制御部130は、ハードウェアにより構成され、チップセット160とは異なるバスに接続されている。なお、例えば、チップセット160の中にコピー制御部130を含むように構成してもよい。
図11に示す最小構成のコンピュータシステムによれば、CPUの負担を抑えつつメモリのデータ転送の時間を短縮することができる。
なお、上記に示した実施形態では、以下の(1)〜(6)に示すようなコンピュータシステムの特徴的構成が示されている。
(1)コンピュータシステムは、二重化されたコンピュータシステムであって、データが書き換えられたか否かを示すダーティ情報(例えば、ダーティフラグ)を用いて、メインメモリ(例えば、メインメモリ120)の記憶領域を管理する記憶領域管理部(例えば、フラグ制御部134)と、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部(例えば、コピー制御部130)と、コピー制御以外におけるデータの転送を行う通常用データ転送部(例えば、チップセット160)とを備え、コピー用データ転送部は、ハードウェアにより構成され、通常用データ転送部とは異なるバスに接続されていることを特徴とする。
(2)コンピュータシステムは、ダーティ情報を記憶するダーティ情報記憶部(例えば、フラグメモリ140,150)を備え、記憶領域管理部は、ダーティ情報記憶部が記憶するダーティ情報に、データが書き換えられたことを示す情報を書き込むように構成されていてもよい。
(3)コンピュータシステムは、ハードウェアにより構成され、当該コンピュータシステム以外のコンピュータシステムとのデータの転送を中継する転送中継部(例えば、DMA制御部133)を備え、記憶領域管理部と転送中継部とが連携して処理を実行することによって、データが書き換えられた領域のデータのみを転送するように構成されていてもよい。
(4)コンピュータシステムは、マイクロコード(例えば、図2に示すマイクロコード)に従ってメインメモリの記憶領域にデータを書き込むとともに、該マイクロコードに従ってダーティ情報を書き込むように構成されていてもよい。
(5)コンピュータシステムは、フォールトトレラントシステムでの二重化プロセスにおけるコピー制御を行うように構成されていてもよい。
(6)コンピュータシステムは、仮想化システムでのマイグレーションプロセスにおけるコピー制御を行うように構成されていてもよい。
本発明は、コンピュータシステムにおいて、ミッションクリティカルな用途のため少しのダウンタイムも許されないシステムとして使用される装置や、1つの装置で複数のゲストシステムを構築するような仮想化システムに適用することができる。
10 DMA制御デコーダ
11 DMAモードレジスタ
12 ページアドレスカウンタ
13 セレクタ
14 オフセットカウンタ
15 メインメモリ読出し制御部
16 送信バッファ
17 受信バッファ
18 メインメモリ書込み制御部
20 フラグ制御デコーダ
21 フラグ選択レジスタ
22 フラグ許可レジスタ
23 フラグ書込み制御部
24 フラグ書込みレジスタ
25 フラグ検出部
26 フラグカウンタ
27 フラグ読出し制御部
28 アドレスポインタ
29 フラグ読出しレジスタ
30 アドレスエンコーダ
31,32,33,34 セレクタ
100 モジュール
110 プロセッサ
111 CPUコア
112 マイクロコード
113 内部バス
114 メモリI/F
115 バスI/F
120 メインメモリ
130 コピー制御部
131 トランザクション振分部
132 制御レジスタ群
133 DMA制御部
134 フラグ制御部
135,136 フラグメモリI/F
140,150 フラグメモリ
本発明によるコンピュータシステムは、二重化されたコンピュータシステムであって、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理する記憶領域管理部と、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部と、コピー制御以外におけるデータの転送を行う通常用データ転送部とを備え、当該コンピュータシステムは、マイクロコードに従って、コピー用データ転送部にダーティ情報を書き込み、コピー用データ転送部は、ハードウェアにより構成され、通常用データ転送部とは異なるバスに接続されていることを特徴とする。
本発明によるメモリコピー方法は、二重化されたコンピュータシステムにおいて、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理し、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送し、当該コンピュータシステムが、マイクロコードに従って、コピー制御を行うときにデータの転送を行うコピー用データ転送部にダーティ情報を書き込み、コピー用データ転送部が、ハードウェアにより構成され、コピー制御以外におけるデータの転送を行う通常用データ転送部とは異なるバスに接続されていることを特徴とする。

Claims (7)

  1. 二重化されたコンピュータシステムであって、
    データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理する記憶領域管理部と、
    当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、前記ダーティ情報に基いて、前記メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部と、
    前記コピー制御以外におけるデータの転送を行う通常用データ転送部とを備え、
    前記コピー用データ転送部は、ハードウェアにより構成され、前記通常用データ転送部とは異なるバスに接続されている
    ことを特徴とするコンピュータシステム。
  2. ダーティ情報を記憶するダーティ情報記憶部を備え、
    記憶領域管理部は、前記ダーティ情報記憶部が記憶する前記ダーティ情報に、データが書き換えられたことを示す情報を書き込む
    請求項1記載のコンピュータシステム。
  3. コンピュータシステムは、ハードウェアにより構成され、当該コンピュータシステム以外のコンピュータシステムとのデータの転送を中継する転送中継部を備え、
    記憶領域管理部と前記転送中継部とが連携して処理を実行することによって、データが書き換えられた領域のデータのみを転送する
    請求項1又は請求項2記載のコンピュータシステム。
  4. コンピュータシステムは、マイクロコードに従ってメインメモリの記憶領域にデータを書き込むとともに、該マイクロコードに従ってダーティ情報を書き込む
    請求項1から請求項3のうちのいずれか1項に記載のコンピュータシステム。
  5. コンピュータシステムは、フォールトトレラントシステムでの二重化プロセスにおけるコピー制御を行う
    請求項1から請求項4のうちのいずれか1項に記載のコンピュータシステム。
  6. コンピュータシステムは、仮想化システムでのマイグレーションプロセスにおけるコピー制御を行う
    請求項1から請求項4のうちのいずれか1項に記載のコンピュータシステム。
  7. 二重化されたコンピュータシステムにおいて、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理し、
    当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、前記ダーティ情報に基いて、前記メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送し、
    前記コピー制御を行うときにデータの転送を行う前記コピー用データ転送部が、ハードウェアにより構成され、前記コピー制御以外におけるデータの転送を行う通常用データ転送部とは異なるバスに接続されている
    ことを特徴とするメモリコピー方法。
JP2017063060A 2017-03-28 2017-03-28 コンピュータシステム、及びメモリコピー方法 Active JP6365718B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017063060A JP6365718B1 (ja) 2017-03-28 2017-03-28 コンピュータシステム、及びメモリコピー方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017063060A JP6365718B1 (ja) 2017-03-28 2017-03-28 コンピュータシステム、及びメモリコピー方法

Publications (2)

Publication Number Publication Date
JP6365718B1 JP6365718B1 (ja) 2018-08-01
JP2018165915A true JP2018165915A (ja) 2018-10-25

Family

ID=63036750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017063060A Active JP6365718B1 (ja) 2017-03-28 2017-03-28 コンピュータシステム、及びメモリコピー方法

Country Status (1)

Country Link
JP (1) JP6365718B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021081967A (ja) * 2019-11-19 2021-05-27 三菱パワー株式会社 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62226736A (ja) * 1986-03-28 1987-10-05 Toshiba Corp 二重化システムのデ−タ等値化方法
JP2006178735A (ja) * 2004-12-22 2006-07-06 Yokogawa Electric Corp 冗長化システム
JP2012181798A (ja) * 2011-03-03 2012-09-20 Nec Corp データ転送装置、ftサーバ、データ転送方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62226736A (ja) * 1986-03-28 1987-10-05 Toshiba Corp 二重化システムのデ−タ等値化方法
JP2006178735A (ja) * 2004-12-22 2006-07-06 Yokogawa Electric Corp 冗長化システム
JP2012181798A (ja) * 2011-03-03 2012-09-20 Nec Corp データ転送装置、ftサーバ、データ転送方法、及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021081967A (ja) * 2019-11-19 2021-05-27 三菱パワー株式会社 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法
WO2021100624A1 (ja) * 2019-11-19 2021-05-27 三菱パワー株式会社 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法
US11829266B2 (en) 2019-11-19 2023-11-28 Mitsubishi Heavy Industries, Ltd. Computing device, redundant system, program, and method for constructing redundant configuration
JP7489183B2 (ja) 2019-11-19 2024-05-23 三菱重工業株式会社 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法

Also Published As

Publication number Publication date
JP6365718B1 (ja) 2018-08-01

Similar Documents

Publication Publication Date Title
US7363389B2 (en) Apparatus and method for enhanced channel adapter performance through implementation of a completion queue engine and address translation engine
US7523260B2 (en) Propagating data using mirrored lock caches
US10713083B2 (en) Efficient virtual I/O address translation
US20080235477A1 (en) Coherent data mover
US7734842B2 (en) Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages
JP6508382B1 (ja) 情報処理装置、情報処理方法、プログラム
US7711899B2 (en) Information processing device and data control method in information processing device
US20220179792A1 (en) Memory management device
US6996693B2 (en) High speed memory cloning facility via a source/destination switching mechanism
US7069394B2 (en) Dynamic data routing mechanism for a high speed memory cloner
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
US20080065855A1 (en) DMAC Address Translation Miss Handling Mechanism
US6898677B2 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
JP6365718B1 (ja) コンピュータシステム、及びメモリコピー方法
JP5673396B2 (ja) 情報処理システム、情報処理プログラム、情報処理方法
US6986013B2 (en) Imprecise cache line protection mechanism during a memory clone operation
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
US20070168646A1 (en) Data exchange between cooperating processors
US6986011B2 (en) High speed memory cloner within a data processing system
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
GB2502858A (en) A method of copying data from a first memory location and storing it in a cache line associated with a different memory location
JP2685455B2 (ja) データ処理装置
JP4965974B2 (ja) 半導体集積回路装置
US6928524B2 (en) Data processing system with naked cache line write operations
JP2019533239A (ja) アトミックセットのデータアクセスを提供するための装置および方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180618

R150 Certificate of patent or registration of utility model

Ref document number: 6365718

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150