JP6365718B1 - Computer system and memory copy method - Google Patents
Computer system and memory copy method Download PDFInfo
- Publication number
- JP6365718B1 JP6365718B1 JP2017063060A JP2017063060A JP6365718B1 JP 6365718 B1 JP6365718 B1 JP 6365718B1 JP 2017063060 A JP2017063060 A JP 2017063060A JP 2017063060 A JP2017063060 A JP 2017063060A JP 6365718 B1 JP6365718 B1 JP 6365718B1
- 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.)
- Active
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Bus Control (AREA)
Abstract
【課題】CPUの負担を抑えつつメモリのデータ転送の時間を短縮する。【解決手段】二重化されたコンピュータシステムであって、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理する記憶領域管理部と、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部と、コピー制御以外におけるデータの転送を行う通常用データ転送部とを備え、コピー用データ転送部は、ハードウェアにより構成され、通常用データ転送部とは異なるバスに接続されていることを特徴とする。【選択図】図11A memory data transfer time is shortened while reducing a load on a CPU. A duplicated computer system that uses a dirty information indicating whether or not data has been rewritten to use a storage area management unit that manages a storage area of a main memory, and a computer system other than the computer system. When performing copy control to copy data, based on dirty information, a data transfer unit for copying only the data in the main memory storage area where data has been rewritten, and data transfer outside copy control The data transfer unit for copying is configured by hardware and is connected to a different bus from the data transfer unit for normal use. [Selection] Figure 11
Description
本発明は、コンピュータシステム、及びコンピュータシステムのメモリコピー方法に関する。 The present invention relates to a computer system and a memory copy method for the computer system.
ハードウェア(HW)の微細化によりコンピュータシステムのメモリ容量が増大しており、フォールトトレラントシステムや仮想化システムもそれに追随してメモリ容量の増加が求められている。フォールトトレラントシステムでは2つの系を二重化に移行させる際に、仮想化システムではライブマイグレーションで他の装置にゲストシステムを移動させる際に、通常の処理を一旦停止してメモリのデータを稼働系から待機系に転送する必要がある。しかし、メモリ容量の増大に応じてメモリ内容のコピー時間が長期化しており、処理停止時間が増大するという問題がある。その対策としてメモリをある程度の大きさの「ページ」単位で管理し、二重化又はマイグレーションを開始した後でシステムの稼働により更新されたメモリ領域にダーティページという印をつけながらメモリのデータを転送し、その後はダーティページのみ転送することを繰り返すことでメモリのデータ転送の時間を短縮する方法が提案されている。 The memory capacity of a computer system is increasing due to the miniaturization of hardware (HW), and the fault-tolerant system and the virtualization system are required to increase the memory capacity accordingly. In a fault-tolerant system, when moving two systems to dual, in a virtual system, when moving a guest system to another device by live migration, temporarily stop normal processing and wait for memory data from the active system It is necessary to transfer to the system. However, as the memory capacity increases, the copy time of the memory contents becomes longer, and there is a problem that the processing stop time increases. As a countermeasure, memory is managed in units of "pages" of a certain size, and after starting duplication or migration, memory data updated by operating the system is marked as dirty pages, and the memory data is transferred. After that, a method has been proposed in which only the dirty page is transferred to shorten the data transfer time of the memory.
また、例えば、特許文献1には、マルチプロセッサシステムにおいて、I/Oデバイス間でのアクセスに関してダーティ制御を行うことが記載されている。 For example, Patent Document 1 describes performing dirty control regarding access between I / O devices in a multiprocessor system.
しかし、ダーティ制御を行う場合、ここで使用可能なダーティページの記録及び管理のためには、システムに搭載されているメモリの全領域をカバーする必要がある。しかしながら、多くのプロセッサに内蔵されているTranslation Lookaside Buffer(TLB)に実装されているダーティページの記録及び管理の機能では容量が不足する。そのため、上記のダーティ制御を行う方法ではTLBを活用することはあるが、システムに搭載されているメモリの全領域に対しては、OS(オペレーティングシステム)やソフトウェアによって記録及び管理することにより処理に時間がかかるという課題があった。 However, when performing dirty control, it is necessary to cover the entire area of the memory mounted in the system in order to record and manage the dirty pages that can be used here. However, the dirty page recording and management function implemented in the Translation Lookaside Buffer (TLB) incorporated in many processors has insufficient capacity. For this reason, the method for performing dirty control may use TLB, but the entire area of the memory installed in the system is recorded and managed by an OS (operating system) or software for processing. There was a problem of taking time.
また、特許文献1に記載された発明では、I/Oデバイス間でのアクセスに関してダーティ制御を行うことしか行っておらず、メモリへの書き込みが最も多く行われると想定されるCPUに関してダーティ制御を行うことは何ら開示されていない。 Further, in the invention described in Patent Document 1, only dirty control is performed with respect to access between I / O devices, and dirty control is performed with respect to a CPU that is assumed to perform the most writing to the memory. There is no disclosure of what to do.
そこで、本発明は、CPUの負担を抑えつつメモリのデータ転送の時間を短縮することができるコンピュータシステム、及びメモリコピー方法を提供することを目的とする。 SUMMARY An advantage of some aspects of the invention is that it provides a computer system and a memory copy method that can reduce the data transfer time of the memory while reducing the burden on the CPU.
本発明によるコンピュータシステムは、二重化されたコンピュータシステムであって、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理する記憶領域管理部と、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部と、コピー制御以外におけるデータの転送を行う通常用データ転送部とを備え、当該コンピュータシステムは、マイクロコードに従って、コピー用データ転送部にダーティ情報を書き込み、コピー用データ転送部は、ハードウェアにより構成され、通常用データ転送部とは異なるバスに接続されていることを特徴とする。 A computer system according to the present invention is a duplicated computer system that uses a dirty information indicating whether or not data has been rewritten and uses a storage area management unit that manages a storage area of a main memory, and a computer system other than the computer system. When performing copy control for copying data to a computer system, a copy data transfer unit that transfers only data in the storage area of the main memory that has been rewritten based on dirty information, and other than copy control A normal data transfer unit for transferring data, and the computer system writes dirty information to the copy data transfer unit in accordance with the microcode, and the copy data transfer unit is configured by hardware, and the normal data Connected to a different bus than the transfer unit And wherein the door.
本発明によるメモリコピー方法は、二重化されたコンピュータシステムにおいて、データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理し、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送し、当該コンピュータシステムが、マイクロコードに従って、コピー制御を行うときにデータの転送を行うコピー用データ転送部にダーティ情報を書き込み、コピー用データ転送部が、ハードウェアにより構成され、コピー制御以外におけるデータの転送を行う通常用データ転送部とは異なるバスに接続されていることを特徴とする。 The memory copy method according to the present invention manages the storage area of the main memory using dirty information indicating whether or not the data has been rewritten in a duplicated computer system, and copies the data to a computer system other than the computer system. When performing copy control, only the data in the storage area of the main memory where data has been rewritten is transferred based on the dirty information, and the data is transferred when the computer system performs copy control according to the microcode. writing the dirty data to the copy data transfer unit which performs the transfer, the data transfer unit for copying is configured by hardware, is connected to a different bus than the normal data transfer unit for transferring data in the non-copy control It is characterized by.
本発明によれば、CPUの負担を抑えつつメモリのデータ転送の時間を短縮することができる。 According to the present invention, it is possible to reduce the data transfer time of the memory while reducing the burden on the CPU.
以下、本発明の実施形態について図面を参照して説明する。本発明では、メモリコピー方法は、フォールトトレラントシステムでの二重化プロセスや、仮想化システムでのマイグレーションプロセスで、システムを稼働させたままメインメモリのデータをコピーする。この際に、コピー後に更新のあったメインメモリのページ領域(ダーティページ)を記録及び管理できる手段と、記録されたダーティページの情報を元に必要なメモリのデータのみをコピーする手段をハートウェア(HW)上に設ける。そのように構成することにより、OS(オペレーティングシステム)やソフトウェアでダーティページを記録及び管理する場合に比べて、CPUの負荷を上げずにメインメモリのデータを転送することを特徴とする。その際、一般的なプロセッサやメモリを使用できるように、ハードウェアのうちのプロセッサやメモリには特殊な機能を入れず、マイクロコード等のファームウェア(FW)及びプロセッサに繋がるデバイスの追加で対応できることを特徴とする。 Embodiments of the present invention will be described below with reference to the drawings. In the present invention, the memory copy method copies the data in the main memory while the system is operating in a duplex process in a fault tolerant system or a migration process in a virtual system. At this time, there is a means for recording and managing the page area (dirty page) of the main memory that has been updated after copying, and a means for copying only necessary memory data based on the information of the recorded dirty page. Provided on (HW). Such a configuration is characterized in that the data in the main memory is transferred without increasing the load on the CPU as compared with the case where dirty pages are recorded and managed by an OS (operating system) or software. At that time, in order to be able to use a general processor and memory, it is possible to cope with the addition of firmware (FW) such as microcode and a device connected to the processor without adding a special function to the processor or memory in the hardware. It is characterized by.
次に、本発明によるメモリコピー方法を適用したコンピュータシステムの構成について説明する。図1は、本発明によるメモリコピー方法を適用したコンピュータシステム全体の構成例を示すブロック図である。本発明によるメモリコピー方法を適用したコンピュータシステムは、ハードウェア的に同一の複数のモジュール100を含んで構成される。図1に示すように、モジュール100は、プロセッサ110と、メインメモリ120と、コピー制御部130と、フラグメモリ140,150と、チップセット160と、I/O部170とを備える。
Next, the configuration of a computer system to which the memory copy method according to the present invention is applied will be described. FIG. 1 is a block diagram showing a configuration example of an entire computer system to which a memory copy method according to the present invention is applied. A computer system to which the memory copy method according to the present invention is applied includes a plurality of
なお、本実施形態では、図1に示すコンピュータシステムは、例えば、フォールトトレラントシステムでの二重化プロセスや、仮想化システムでのマイグレーションプロセスを行う場合に適用される。 In the present embodiment, the computer system shown in FIG. 1 is applied, for example, when a duplex process in a fault tolerant system or a migration process in a virtual system is performed.
プロセッサ110は、ソフトウェアの命令を理解してシステム全体を制御する機能を備える。また、メインメモリ120(主記憶装置)は、プロセッサ110に接続され、ソフトウェアの命令やデータを記憶する。また、コピー制御部130は、メインメモリ120のデータを効率よく他のモジュールに転送する機能を備える。また、フラグメモリ140,150は、システム稼働中のメモリのデータを転送する際にメモリの全ページ領域のダーティフラグ(データが書き換えられたか否かを示すフラグ)を記録(記憶)する。また、チップセット160は、通常の処理でコンピュータシステムの各機能部へデータを転送する機能を備える。また、I/O部170は、コンピュータシステムのインプット及びアウトプットの機能を備える。
The
また、近年のプロセッサには他のデバイスに接続できる高速なバスが複数搭載されており、本実施形態では、図1に示すように、通常の処理を行うためのチップセット160へのアクセスのためのバスとは異なるバスにコピー制御部130が接続されている。そのように構成することによって、本実施形態では、通常の処理を妨げることなく、ダーティフラグの処理を行うことを可能としている。
Also, recent processors have a plurality of high-speed buses that can be connected to other devices. In this embodiment, as shown in FIG. 1, for accessing a chip set 160 for performing normal processing. The
なお、ハードウェア的に完全に同期をとるフォールトトレラントシステムに適用する場合には、チップセット160に他のモジュールと接続して同期を行うための機能を設けるように構成してもよい。その場合には、チップセット160の中にコピー制御部130を入れ込む構成とすることも可能である。
When applied to a fault tolerant system that is completely synchronized in terms of hardware, the
また、図1に示すように、プロセッサ110は、演算機能を有するCPUコア111と、プロセッサの内部バス113と、メインメモリ120へのアクセスを制御するメモリI/F114と、メモリ以外のデバイスへのアクセスを行うバスI/F115とを備える。また、プロセッサ110は、ソフトウェアからの命令をハードウェアの詳細な命令に対応させるためのマイクロコード112を用いて動作する。
As shown in FIG. 1, the
また、図1に示すように、コピー制御部130は、トランザクション振分部131と、制御レジスタ群132と、DMA制御部133と、フラグ制御部134と、フラグメモリI/F135,136とを備える。トランザクション振分部131は、プロセッサ110及び内部の各機能部のトランザクションを受けて適切な宛先に振り分ける機能を備える。また、制御レジスタ群132は、コピー制御部130の動作をソフトウェアから制御するための複数のレジスタである。また、DMA制御部133は、自モジュールのメモリに対するアクセスを行い、他モジュールとのデータ転送を中継する機能を備える。また、フラグ制御部134は、プロセッサ110から入力されたトランザクションを解析してダーティフラグを生成し管理する機能を備える。また、フラグメモリI/F135,136は、フラグ制御部134からの要求に従いフラグメモリ140,150の読み書きを行う機能を備える。
As shown in FIG. 1, the
図2は、コンピュータシステムでメインメモリ120への書込みに使用されるStore命令のマイクロコードを示す説明図である。一般に、コンピュータシステムでは、このStore命令によりレジスタID=Rjが示すメインメモリ120のアドレスにレジスタID=Riの値を書込むという動作を行って終了としている。これに対して、本実施形態におけるコンピュータシステムでは、Store命令において、さらに、その後にフラグ制御部134のフラグ書込みアドレスにレジスタID=Rjの値を書込むという処理が続くように構成されている。このStore命令によりプロセッサ110からメインメモリ120へ書込みを行ったメインメモリ120のアドレスをコピー制御部130へ出力することが可能となる。
FIG. 2 is an explanatory diagram showing the microcode of the Store instruction used for writing to the
図2に示すStore命令のマイクロコードによりプロセッサ110からコピー制御部130へ出力されるメインメモリ120への書込みアドレスを、図1に示すコピー制御部130内のフラグ制御部134によりダーティフラグを生成及び管理して、DMA制御部133によりダーティページ(データが書き換えられたページ)のデータのみ他のモジュールに転送することができる。そのため、OSやソフトウェアによるダーティページの生成及び管理が不要となることで、高速なメモリコピーを実現できる。
A write address to the
図3は、制御レジスタ群132内の具体的なレジスタを示す説明図である。図3では、制御レジスタ群132内の具体的なレジスタとして、メインメモリ120の中で他モジュールと同期する領域の最小のページアドレスの値を示す最小ページアドレスレジスタと、他モジュールと同期する領域の最大のページアドレスの値を示す最大ページアドレスレジスタとを含むことを示している。これらのレジスタは、コピー制御部130内の各機能部で共通的に使用される。
FIG. 3 is an explanatory diagram showing specific registers in the
図4は、DMA制御部133の内部構成を示すブロック図である。なお、図4において、図内の点線は主な制御信号やアドレス信号を示し、実線は主なデータ信号を示している。図4に示すように、DMA制御部133は、DMA制御デコーダ10と、DMAモードレジスタ11と、ページアドレスカウンタ12と、セレクタ13と、オフセットカウンタ14と、メインメモリ読出し制御部15と、送信バッファ16と、受信バッファ17と、メインメモリ書込み制御部18とを備える。
FIG. 4 is a block diagram showing an internal configuration of the
DMA制御デコーダ10は、トランザクション振分部131から入力されたトランザクションを解析し、DMAモードレジスタ11への値の書込みや送信バッファ16へのメモリ読出しトランザクションの転送を行い、その他DMA制御部133の各種機能をコントロールするための動作を行う機能を備える。
The
DMAモードレジスタ11は、DMAの動作として、他モジュールと同期するメモリ領域全体をコピー(全メモリコピー)するか、ダーティページとして管理されているページのみコピー(差分メモリコピー)するかどうかを示す値を、DMAモードとして保持する。
The
ページアドレスカウンタ12は、全メモリコピーの場合にコピーを行うメインメモリ120のページアドレスを記憶し、ページ全体のコピーが終了するとカウントアップする機能を備える。
The page address counter 12 stores a page address of the
セレクタ13は、DMAモードレジスタ11の値が全メモリコピーを示す場合には、ページアドレスカウンタ12から出力されるページアドレスを選択して、メインメモリ読出し制御部15に出力する機能を備える。また、セレクタ13は、DMAモードレジスタ11の値が差分メモリコピーを示す場合には、フラグ制御部134から出力されるページアドレスを選択して、メインメモリ読出し制御部15に出力する機能を備える。
The
オフセットカウンタ14は、コピーを行うメインメモリ120のページ内のアドレスを記憶し、1回のトランザクションで転送可能なデータ分だけアドレスをカウントアップする機能を備える。
The offset
メインメモリ読出し制御部15は、セレクタ13から出力されるページアドレスとオフセットカウンタ14から出力されるページ内のアドレスとを合成したメインメモリ120のアドレスに対するメモリ読出し要求トランザクションを発生させる(生成する)機能を備える。また、メインメモリ読出し制御部15は、生成したメモリ読出し要求トランザクションをトランザクション振分部131に出力すると同時に、送信バッファ16にメインメモリ120のアドレスを書込む機能を備える。
The main memory read
送信バッファ16は、メインメモリ読出し制御部15から出力されたアドレスと、そのアドレスに対するメモリ読出しトランザクションにより返ってきたメモリのデータを対にして複数記憶し、順に他モジュールのDMA制御部133の受信バッファ17に転送する機能を備える。
The
受信バッファ17は、他モジュールから転送されたメモリアドレスとデータを複数記憶し、必要なタイミングで順にメインメモリ書込み制御部18にアドレスを渡し(出力し)、トランザクション振分部131にデータを渡す(出力する)機能を備える。
The reception buffer 17 stores a plurality of memory addresses and data transferred from other modules, sequentially passes (outputs) addresses to the main memory
メインメモリ書込み制御部18は、受信バッファ17からメモリアドレスを受ける(入力する)と、メインメモリ120の該当するアドレスに対するメモリ書込みトランザクションを発生させ(生成し)、必要なタイミングで受信バッファ17からトランザクション振分部131にデータを出力する制御を行う機能を備える。
When the main memory
図5は、フラグ制御部134の内部構成を示すブロック図である。なお、図4と同様に、図5において、図内の点線は主な制御信号やアドレス信号を示し、実線は主なデータ信号を示している。図5に示すように、フラグ制御部134は、フラグ制御デコーダ20と、フラグ選択レジスタ21と、フラグ許可レジスタ22と、フラグ書込み制御部23と、フラグ書込みレジスタ24と、フラグ検出部25と、フラグカウンタ26と、フラグ読出し制御部27と、アドレスポインタ28と、フラグ読出しレジスタ29と、アドレスエンコーダ30と、セレクタ31,32,33,34とを備える。
FIG. 5 is a block diagram showing an internal configuration of the
フラグ制御デコーダ20は、トランザクション振分部131から入力されたトランザクションを解析し、フラグ選択レジスタ21、フラグ許可レジスタ22、フラグカウンタ26の値の読み書きを行う機能を備える。また、フラグ制御デコーダ20は、図2に示すStore命令によりメインメモリ120のアドレスをフラグ制御部134に書込むダーティフラグ書込みトランザクションの場合には、フラグ書込みレジスタ24やフラグ検出部25へフラグメモリ140,150のデータ幅内のダーティフラグの位置を示す値を出力したり、セレクタ31,32へフラグメモリ140,150にアクセスするためのアドレスを出力したり、フラグ書込み制御部23の機能をコントロールするための動作を行う機能を備える。
The flag control decoder 20 has a function of analyzing the transaction input from the
図6は、メインメモリ120のアドレスとフラグメモリ140,150のアクセス信号の対応表の例を示す説明図である。この例では、メインメモリ120全体のアドレスとして32bitの値をもつものとする、また、4KByte単位のページ領域としてbit11−0の12bitのページ内オフセットと、bit31−12の20bitのページアドレスをもつものとする。また、ページアドレスのうちbit15−12の下位4bitはフラグメモリのデータのビット位置として使用し、bit31−16の上位16bitはフラグメモリのアドレスとして使用するものとする。この場合、フラグメモリ140,150は、それぞれアドレス16bitでデータ幅16bitとなるメモリデバイスで構成される。
FIG. 6 is an explanatory diagram showing an example of a correspondence table between the addresses of the
フラグ選択レジスタ21は、ダーティフラグの書込みやダーティフラグの読出しのアクセスを、2つあるどちらのフラグメモリ140,150に対して行うか選択するための値を保持するレジスタである。
The flag selection register 21 is a register that holds a value for selecting which of the two
フラグ許可レジスタ22は、ダーティフラグの書込み動作を行うか否か選択するための値を保持するレジスタである。
The
フラグ書込み制御部23は、ダーティフラグの書込みのための動作全体を制御するためにフラグ制御部134の各種機能をコントロールする機能を備える。
The flag writing control unit 23 has a function of controlling various functions of the
フラグ書込みレジスタ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”となる。
The
フラグ検出部25は、フラグ書込みレジスタ24にフラグメモリ140又はフラグメモリ150のデータが読み出された値のうち、フラグ制御デコーダ20から出力されるダーティフラグの位置のビットの値を検出する機能を備える。
The flag detection unit 25 has a function of detecting the value of the bit at the position of the dirty flag output from the flag control decoder 20 among the values read from the
フラグカウンタ26は、ダーティフラグ書込みトランザクションを受けた(入力した)場合にフラグ検出部25で検出した値が”0”の場合(該当するダーティフラグがまだ立っていなかった場合)、カウントアップすることで、これまで書込んだダーティフラグの数を記憶する機能を備える。 The flag counter 26 counts up when the value detected by the flag detection unit 25 is “0” when the dirty flag write transaction is received (input) (when the corresponding dirty flag has not yet been set). And a function for storing the number of dirty flags written so far.
フラグ読出し制御部27は、DMA制御部133からのリクエストに従い、ダーティフラグの読出しのための動作全体を制御するためにフラグ制御部134の各種機能をコントロールする機能を備える。
The flag read
アドレスポインタ28は、ダーティフラグの読出しの動作で使用するフラグメモリ140又はフラグメモリ150のアドレスを記憶する。なお、アドレスポインタ28は、例えば、レジスタ等によって実現される。
The
フラグ読出しレジスタ29は、ダーティフラグの読出しの動作でフラグメモリ140又はフラグメモリ150から読み出されたデータを一時的に記憶し、DMA制御部133に渡された(出力された)ダーティページのアドレスに該当するビットのダーティフラグをクリアする機能を備える。
The flag read
アドレスエンコーダ30は、アドレスポインタ28の値とフラグ読出しレジスタ29の値とから、次にコピーすべきメインメモリ120のダーティページのアドレスを発生させる(求める)機能を備える。
The
セレクタ31,32は、フラグ選択レジスタ21の値に従い、フラグメモリI/F135,136を経由したフラグメモリ140,150に対するアクセスを、フラグ書込みのための動作とするか、フラグ読出しのための動作とするかを選択する機能を備える。
According to the value of the flag selection register 21, the
セレクタ33は、フラグ選択レジスタ21の値に従い、フラグメモリI/F135,136を経由してフラグメモリ140,150から読み出したデータのうちどちらをフラグ書込み用のデータとして使用するかを選択する機能を備える。
The
セレクタ34は、フラグ選択レジスタ21の値に従い、フラグメモリI/F135,136を経由してフラグメモリ140,150から読み出したデータのうちどちらをフラグ読出し用のデータとして使用するかを選択する機能を備える。
The
本実施形態では、フラグ選択レジスタ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は、上記とは逆のデータ、アドレス、及び制御信号を選択する動作を行う。
In the present embodiment, when the value of the flag selection register 21 selects the
次に、動作について説明する。図7は、コンピュータシステムがメモリコピーを行う場合の動作を示すフローチャートである。図7は、図1に示すコンピュータシステムをフォールトトレラントシステムや仮想化システムに適用した場合に、フォールトトレラントシステムでの二重化プロセスや、仮想化システムでのマイグレーションプロセスで、システムを稼働させた状態で、メインメモリ120のデータのコピーを行う際に、二重化又はマイグレーションを制御するドライバ等の動作を示している。
Next, the operation will be described. FIG. 7 is a flowchart showing an operation when the computer system performs memory copy. FIG. 7 shows that when the computer system shown in FIG. 1 is applied to a fault-tolerant system or a virtualization system, the system is operated by a duplication process in the fault-tolerant system or a migration process in the virtualization system. The figure shows the operation of a driver or the like that controls duplication or migration when copying data in the
コンピュータシステムは、メモリコピーを開始すると(ステップS0)、コピーが必要なメインメモリ120の領域を特定し、最小ページアドレスレジスタ及び最大ページアドレスレジスタに値を設定する(ステップS1)。このとき、ハードウェアで完全にメインメモリの二重化を実現するフォールトトレラントシステムでは、搭載されているメインメモリ120全体のページアドレスの最小値、及び最大値が設定される。また、仮想化システムで1つの仮想マシンのマイグレーションを行う場合には、その仮想マシンにアサインされているメモリ領域のページアドレスの最小値、及び最大値が設定される。
When the computer system starts memory copying (step S0), it identifies the area of the
その後、コンピュータシステムは、メインメモリ120のコピーにおいてハードウェアでダーティフラグを記録及び管理するためにフラグカウンタ26を”0”にリセットし、フラグ許可レジスタ22をダーティフラグの書込みを行う値を設定する(ステップS2)。なお、フラグ選択レジスタ21に関してはフローチャートに記載していないが、初期値として、例えば、フラグメモリ140をダーティフラグ書込み用として選択する設定がされ、フラグメモリ150をダーティフラグ読出し用として選択する設定がされているものとする。
Thereafter, the computer system resets the
その後、コンピュータシステムは、DMAモードレジスタ11に他モジュールと同期するメインメモリ領域全体をコピー(全メモリコピー)することを示す値を設定して、メインメモリ読出し制御部15にDMA開始の指示を出す(ステップS3)。
Thereafter, the computer system sets a value indicating that the entire main memory area synchronized with other modules is copied (all memory copy) in the
ここで、全メモリコピーのDMA開始後のハードウェアの動作を図8を参照して説明する。図8は、メインメモリ読出し制御部15が行う動作を示すフローチャートである。メインメモリ読出し制御部15は、DMAを開始すると(ステップS100)、DMAモードレジスタ11の値を確認して差分メモリコピーかどうかを判断する(ステップS101)。図7に示すステップS3の状態では全メモリコピーであるため判断結果は”NO”となり、メインメモリ読出し制御部15は、最小ページアドレスレジスタの値をページアドレスカウンタ12にセットする(ステップS103)。一方、DMAモードレジスタ11の値が差分メモリコピーでない場合、セレクタ13は、ページアドレスカウンタ12の値をメインメモリ読出し制御部15に出力する。
Here, the hardware operation after the start of DMA for all memory copies will be described with reference to FIG. FIG. 8 is a flowchart showing an operation performed by the main memory read
その後、メインメモリ読出し制御部15は、オフセットカウンタ14を”0”にセットし(ステップS104)、他モジュールと同期するメインメモリ領域の最小のアドレスへの読出し要求のトランザクションを生成し、トランザクション振分部131に出力する(ステップS105)。
Thereafter, the main memory read
また、メインメモリ読出し制御部15は、トランザクションの出力を完了するとオフセットカウンタ14の値が最大かどうかを確認する(ステップS106)。最大でなければ、メインメモリ読出し制御部15は、オフセットカウンタ14の値を1つカウントアップする(ステップS107)。また、メインメモリ読出し制御部15は、そのカウントアップした値を用いて再度他モジュールと同期するメインメモリ領域の最小のアドレスへの読出し要求のトランザクションを生成し、トランザクション振分部131に出力する(ステップS105)。
Further, the main memory read
メインメモリ読出し制御部15は、上記の処理のループを繰り返し、オフセットカウンタ14の値が最大になると、DMAモードレジスタ11の値を確認して差分メモリコピーかどうかを判断する(ステップS108)。図7に示すステップS3の状態は全メモリコピーであるため判断結果は”NO”となり、メインメモリ読出し制御部15は、ページアドレスカウンタ12と最大ページアドレスレジスタの値とを比較する(ステップS111)。
The main memory read
ページアドレスカウンタ12の値が最大ページアドレスレジスタの値より小さい場合、メインメモリ読出し制御部15は、ページアドレスカウンタ12の値を1つカウントアップする(ステップS112)。また、メインメモリ読出し制御部15は、オフセットカウンタ14の値を”0”にセットし(ステップS104)、次のページアドレスのメインメモリ120の読出し要求トランザクションを行う。
When the value of the
上記のように処理を実行して、ページアドレスをカウントアップしながら、ページアドレスカウンタ12の値が最大ページアドレスレジスタの値と同じになるまで順番にメインメモリ120の読出し要求トランザクションの発行(生成)が行われると、ステップS111におけるページアドレスカウンタ12と最大ページアドレスレジスタとの値の比較の結果が”YES”となる。
Issuing (generating) read request transactions in the
これまでに発行したメインメモリ120の読出し要求トランザクションは、トランザクション振分部131からプロセッサ110内のバスI/F115及びプロセッサ内部バス113を経由してメモリI/F114に渡される(出力される)。メモリI/F114は、メインメモリ120の読出し要求トランザクションで要求されたアドレスの位置にある、メインメモリ120のデータを読み出す。そして、コピー制御部130内のDMA制御部133宛のメインメモリ読出しトランザクションとして送信する。
The read request transaction of the
メインメモリ読出しトランザクションは、メインメモリ読出し要求トランザクションの逆の経路をたどり、DMA制御部133のDMA制御デコーダ10に渡される(出力される)。DMA制御デコーダ10は、メインメモリ読出しトランザクションを受ける(入力する)と、メインメモリ読出し制御部15がメインメモリ読出し要求トランザクション発行時にメインメモリ120のアドレスを書込んだ送信バッファ16の対応する位置にメインメモリ120のデータを書込む。
The main memory read transaction follows the reverse path of the main memory read request transaction, and is passed (output) to the
メインメモリ読出し制御部15は、発行した全てのメインメモリ読出し要求トランザクションに対するメインメモリ読出しトランザクションによるメインメモリ120のデータが送信バッファ16に書込まれるのを待ち(ステップS113)、DMAの処理を終了する(ステップS114)。
The main memory read
メインメモリ120のコピー先のモジュール100にあるDMA制御部133の受信バッファ17は、コピー元の送信バッファ16からメインメモリ120のアドレス及びデータの値を受ける(受信する)と、メインメモリ書込み制御部18で該当するメインメモリ120のアドレスへの書込みトランザクションを発生させ(生成し)、受信バッファ17にある該当するメインメモリ120へのデータを含めてトランザクション振分部131に出力する。
When the reception buffer 17 of the
メインメモリ書込みトランザクションは、コピー先のモジュール100で、プロセッサ110内のバスI/F115及びプロセッサ内部バス113を経由してメモリI/F114に送られる(出力される)。そして、メモリI/F114は、メインメモリ120の書込み要求トランザクションで要求されたアドレスの位置にデータを書込む。
The main memory write transaction is sent (output) to the memory I /
上記のように処理することにより、コピー元のDMA制御部133内のメインメモリ読出し制御部15で発行した全てのメインメモリ読出し要求トランザクションに対するデータがコピー先のメインメモリ120に書込まれると、最小ページアドレスレジスタと最大ページアドレスレジスタとの間にあるメインメモリ120のデータが全てコピーされる。
By processing as described above, when data for all main memory read request transactions issued by the main memory read
メインメモリ120のコピー元のモジュール100では、このDMAによるメインメモリ120のコピー以外にも通常のコンピュータシステムとしての処理を継続している。ここで、コピー元のモジュール100でメインメモリ120への書込みが発生したときには、図2に示すStore命令が実行され、メインメモリ120への書込みとともにメインメモリ120への書込みアドレスがフラグ制御部134にダーティフラグ書込みトランザクションとして送信される。
The
図9は、フラグ書込み制御部23が行う動作を示すフローチャートである。図9は、フラグ書込み制御部23がダーティフラグ書込みの要求を受けた後の動作を示している。フラグ制御デコーダ20は、ダーティフラグ書込みトランザクションを受ける(入力する)とフラグ書込み制御部23にダーティフラグの書込みを要求し、フラグ書込み制御部23は、ダーティフラグの書込み処理を開始する(ステップS200)。ダーティフラグの書込み処理を開始すると、フラグ書込み制御部23は、フラグ許可レジスタ22の値をチェックし(ステップS201)、ダーティフラグの書込みが有効でなければそのまま動作を終了する(ステップS208)。 FIG. 9 is a flowchart showing an operation performed by the flag writing control unit 23. FIG. 9 shows an operation after the flag write control unit 23 receives a dirty flag write request. Upon receiving (inputting) the dirty flag write transaction, the flag control decoder 20 requests the flag write control unit 23 to write the dirty flag, and the flag write control unit 23 starts the dirty flag write process (step S200). . When the dirty flag writing process is started, the flag writing control unit 23 checks the value of the flag permission register 22 (step S201), and if the dirty flag writing is not valid, the operation ends as it is (step S208).
ダーティフラグの書込みが有効な場合には、フラグ書込み制御部23は、書込みが発生したメインメモリ120のアドレスと、最小ページアドレスレジスタ及び最大ページアドレスレジスタの値とを比較して、コピーが必要な領域のアドレス範囲内かどうかをチェックし(ステップS202)、範囲内でなければそのまま動作を終了する(ステップS208)。
When the dirty flag writing is valid, the flag writing control unit 23 compares the address of the
コピーが必要な領域のアドレス範囲内の場合には、フラグ書込み制御部23は、フラグメモリ140,150から値を読み出してフラグ書込みレジスタ24にセットする。この場合、フラグメモリ140をダーティフラグ書込み用として選択され、フラグメモリ150をダーティフラグ読出し用として選択されている場合、セレクタ31が要求を受け(入力し)、フラグメモリI/F135を経由してフラグメモリ140の値を読み出す。そして、フラグ書込み制御部23は、読み出した値をセレクタ33を経由してフラグ書込みレジスタ24にセットする(ステップS203)。
If it is within the address range of the area that needs to be copied, the flag write control unit 23 reads the value from the
フラグ書込みレジスタ24にフラグメモリ140,150のデータをセットすると、フラグ書込み制御部23は、ダーティフラグ書込みトランザクションで指定されたメインメモリ120のアドレスのうちフラグメモリ140,150のデータのビット位置に該当する値を参照し、フラグ書込みレジスタ24の該当するビットをチェックする(ステップS204)。そして、フラグ書込み制御部23は、該当するビットが立っていればそのまま動作を終了する(ステップS208)。
When the data of the
フラグ書込みレジスタ24の該当するビットが立っていなければ、フラグ書込み制御部23は、フラグカウンタ26をカウントアップして(ステップS205)、フラグ書込みレジスタ24の該当するビットのフラグを立てる(セットする)(ステップS206)。
If the corresponding bit of the flag write
その後、フラグ書込みレジスタ24の値をフラグメモリ140,150に書込むが、フラグメモリ140をダーティフラグ書込み用として選択され、フラグメモリ150をダーティフラグ読出し用として選択されている場合、セレクタ31が要求を受け(入力し)、フラグ書込み制御部23は、フラグメモリI/F135を経由してフラグメモリ140に値を書込み(ステップS207)、動作を終了する(ステップS208)。
Thereafter, the value of the flag write
上記のように処理することにより、フラグ許可レジスタ22の値がダーティフラグ書込み有効を示す間、コピーが必要なメインメモリ120の領域へ書込んだページアドレスをフラグメモリ140,150に記録することができる。
By processing as described above, the page address written in the area of the
図7のステップS3でDMAが完了すると、コンピュータシステムは、DMA中にコピーが必要なメインメモリ120の領域へ書込まれたページアドレス(ダーティページ)の数がフラグカウンタ26に記録されており、予め設定された閾値以内に差分が入っているかどうか判断する(ステップS4)。差分が閾値より大きい場合には、コンピュータシステムは、フラグカウンタ26を”0”にリセットし、フラグ選択レジスタ21の設定に関してフラグメモリ140,150のダーティフラグ書込み用とダーティフラグ読出し用との設定を逆に切り替える(ステップS5)。
When the DMA is completed in step S3 of FIG. 7, the computer system records the number of page addresses (dirty pages) written in the area of the
その後、コンピュータシステムは、DMAモードレジスタ11の値をダーティフラグが立っている(セットされている)ページのみコピー(差分メモリコピー)することを示す値に設定して、メインメモリ読出し制御部15にDMA開始の指示を出す(出力する)(ステップS6)。
Thereafter, the computer system sets the value of the
差分メモリコピーのDMA開始後のハードウェアの動作を、図8に示すメインメモリ読出し制御部15のフローチャートを用いて説明する。メインメモリ読出し制御部15は、DMAを開始すると(ステップS100)、DMAモードレジスタ11の値を確認して差分メモリコピーかどうかを判断する(ステップS101)。図7に示すステップS6の状態は差分メモリコピーであるため判断結果は”YES”となり、フラグ制御部134のフラグ読出し機能のリセットによりアドレスポインタ28には最小ページアドレスレジスタのページアドレスの上位16bitが設定され、フラグ読出しレジスタ29は”0”に設定され、メインメモリ読出し制御部15は、メインメモリ120にアクセスすべきページアドレスの読出しを行う(ステップS102)。
The hardware operation after the start of the differential memory copy DMA will be described with reference to the flowchart of the main memory read
図10は、フラグ読出し制御部27が行う動作を示すフローチャートである。フラグ制御部134のフラグ読出し制御部27は、図10に示すフローチャートの動作により、メインメモリ120にアクセスすべきページアドレスの読出しを行う。フラグ読出し制御部27は、DMA制御部133からの読み出し要求により動作を開始し(ステップS300)、フラグ読出しレジスタ29の値が”0”かどうかチェックする(ステップS301)。初期状態ではフラグ読出しレジスタ29が”0”にリセットされており、フラグ読出し制御部27は、アドレスポインタ28と最大ページアドレスレジスタとの値を比較する(ステップS302)。
FIG. 10 is a flowchart showing the operation performed by the flag read
初期状態ではアドレスポインタ28には最小ページアドレスレジスタ値が入っているため判断結果は”NO”となり、フラグ読出し制御部27は、フラグメモリ140,150から値を読み出してフラグ読出しレジスタ29に値をセットする(ステップS303)。
In the initial state, since the
フラグ選択レジスタ21は、初期値としてフラグメモリ140がフラグ書込み用に設定され、フラグメモリ150がフラグ読出し用に設定されているのであるが、全メモリコピーが終了して差分メモリコピーが開始される時点で切替る。そのため、フラグメモリ150がフラグ書込み用に設定され、フラグメモリ140がフラグ読出し用に設定されており、フラグ読出しレジスタ29にはフラグメモリ140から読み出されたデータとして、例えば2進数の”0000−1000−0100−0001”が書き込まれる。
In the flag selection register 21, the
その後、フラグ読出し制御部27は、読み出したフラグメモリ140のアドレスに”0”を書込むことで、フラグメモリ140の値をクリアし(ステップS304)、次のフラグメモリ140,150からの読出しに備えてアドレスポインタ28を1つカウントアップする(ステップS305)。
Thereafter, the flag
その後、フラグ読出し制御部27は、ステップS301に戻りフラグ読出しレジスタ29の値をチェックする。ここでは、フラグ読出しレジスタ29の値が”0”ではないため、フラグ読出し制御部27は、アドレスエンコーダ30によりアドレスポインタ28が示すページアドレスの上位16bitの値と、フラグ読出しレジスタ29の中でフラグが立っている最小のビットであるbit0の位置を示すページアドレスの下位4bitの値として2進数の”0000”を合わせて、DMA制御部133に出力する(ステップS307)。
Thereafter, the flag read
その後、フラグ読出し制御部27は、次の読出しに備えてフラグ読出しレジスタ29の中でフラグが立っている最小のビットであるbit0を”0”にクリアし、フラグ読出しレジスタ29の値を2進数の”0000−1000−0100−0000”とする(ステップS308)。
After that, the flag read
DMAモードレジスタ11の値が差分メモリコピーの場合、セレクタ13は、上記により読み出したフラグ制御部134の値をメインメモリ読出し制御部15に出力する。その後、メインメモリ読出し制御部15は、オフセットカウンタ14を”0”にセットする(ステップS104)。また、メインメモリ読出し制御部15は、ダーティフラグがセットされていたメインメモリのページ領域の最小のアドレスへの読出し要求のトランザクションを生成し、トランザクション振分部131に出力する(ステップS105)。
When the value of the
トランザクションの出力を完了すると、メインメモリ読出し制御部15は、オフセットカウンタ14の値が最大かどうかを確認する(ステップS106)。最大でなければ、メインメモリ読出し制御部15は、オフセットカウンタ14の値を1つカウントアップする(ステップS107)。また、メインメモリ読出し制御部15は、そのカウントアップした値を用いて再度他モジュールと同期するメインメモリ領域の最小のアドレスへの読出し要求のトランザクションを生成し、トランザクション振分部131に出力する(ステップS105)。
When the output of the transaction is completed, the main memory read
メインメモリ読出し制御部15は、上記の処理のループを繰り返し、オフセットカウンタ14の値が最大になると、DMAモードレジスタ11の値を確認して差分メモリコピーかどうかを判断する(ステップS108)。図7に示すステップS6の状態は差分メモリコピーであるため判断結果は”YES”となり、メインメモリ読出し制御部15は、フラグ制御部134から次のアドレスを読み出す(ステップS109)。
The main memory read
フラグ制御部134のフラグ読出し制御部27は、次のアドレスの読出し要求により処理を開始すると(ステップS300)、フラグ読出しレジスタ29の値を確認する(ステップS301)。ここでは、最初の読出しの後の値として2進数の”0000−1000−0100−0000”となっているため、フラグ読出し制御部27は、アドレスエンコーダ30によりアドレスポインタ28が示すページアドレスの上位16bitの値と、フラグ読出しレジスタ29の中でフラグが立っている最小のビットであるbit6の位置を示すページアドレスの下位4bitの値として2進数の”0110”を合わせて、DMA制御部133に出力する(ステップS307)。
When the flag read
その後、フラグ読出し制御部27は、次の読出しに備えてフラグ読出しレジスタ29の中でフラグが立っている最小のビットであるbit6を”0”にクリアし、フラグ読出しレジスタ29の値を2進数の”0000−1000−0000−0000”とする(ステップS308)。
After that, the flag read
ここでは、図8に示すステップS109の処理を実行した後でフラグ制御部134からコピー終了通知ではないため(ステップS110)、メインメモリ読出し制御部15は、ステップS104の処理に戻る。メインメモリ読出し制御部15は、ステップS109で読み出したページアドレスのページ全体に対して、これまでと同様にオフセットアドレスをカウントアップしながら読出し要求トランザクションを行うと、またステップS109の処理に戻りフラグ制御部134から次のアドレスの読出しを行う。
In this case, after the process of step S109 shown in FIG. 8 is executed, the
メインメモリ読出し制御部15は、ステップS109でアドレスを読み出すたびに、図10に示す処理でフラグ読出しレジスタ29にフラグが立っているビットが残っている間には、フラグの立っている最小のビットに合わせてアドレスを発生(ステップS307)させながらフラグをクリア(ステップS308)していく。そして、メインメモリ読出し制御部15は、フラグ読出しレジスタ29が”0”になったら(ステップS301)、次のフラグメモリの値を読み出して(ステップS303)、アドレスポインタ28をカウントアップさせ(ステップS305)、ダーティページのアドレスの発生を続けていく。
Each time the main memory read
最終的にフラグ読出しレジスタ29が”0”になり(ステップS301)、アドレスポインタ28が最大ページアドレスレジスタの値と同じになったときに(ステップS302)、メインメモリ読出し制御部15は、コピー終了をDMA制御部133に通知(出力)する(ステップS306)。
When the flag read
図8に示すステップS109の処理でコピー終了を受けると、DMA制御部133のメインメモリ読出し制御部15は、ステップS110の処理でそのコピー終了を検出する。そして、メインメモリ読出し制御部15は、全メモリコピーの場合と同様に、これまでに発行した全てのメインメモリの読出し要求トランザクションに対するメインメモリ読出しトランザクションにより、メインメモリ120のデータが送信バッファ16に書込まれるのを待ち(ステップS113)、DMAの処理を終了する(ステップS114)。
When the copy end is received in the process of step S109 shown in FIG. 8, the main memory read
メインメモリ120のコピー先のモジュール100の動作は全メモリコピーのときと同じ動作となり、受信バッファ17で受けたメインメモリ120のアドレスの位置に合わせてコピー先のメインメモリ120にデータを書込む。この様にして、コピー元のDMA制御部133内のメインメモリ読出し制御部15で発行した全ダーティページのメインメモリ読出し要求トランザクションに対するデータがコピー先のメインメモリ120に書込まれる。
The operation of the
この差分メモリコピーの間にも、コピー元のモジュール100では通常のコンピュータシステムとしての処理を継続している。そして、メインメモリ120への書込みが発生したときには、図2に示すStore命令が実行され、メインメモリ120への書込みとともにメインメモリ120への書込みアドレスがフラグ制御部134にダーティフラグ書込みトランザクションとして送信される。このタイミングでは、フラグメモリ150がフラグ書込み用に設定され、フラグメモリ140がフラグ読出し用に設定されている。そのため、差分メモリコピーのためにフラグメモリ140が使用されている間も、全メモリコピーのときと同様にその後に発生したダーティフラグ書込みトランザクションによりフラグメモリ150に記録され、ダーティページの数がフラグカウンタ26でカウントされている。
Even during this differential memory copy, the
図7に示すステップS6の処理で差分メモリコピーが終わると(ステップS6)、コンピュータシステムは、フラグカウンタ26に記録されている通常の処理で発生したダーティページの数をチェックして、予め設定された閾値以内に差分が入っているかどうか判断する(ステップS7)。差分が閾値より大きい場合には、コンピュータシステムは、再度ステップS5に戻り差分メモリコピーを行う。一方、ステップS5〜S7の処理を何回か繰り返して、ステップS7で閾値以内となった場合には、コンピュータシステムは、通常のコンピュータシステムとしての処理を行う一般プロセスを停止させ(ステップS8)、ステップS5,S6と同様にステップS9,S10で差分メモリコピーを実行する。このときには、ステップS8で一般プロセスが停止されているため、これ以上メインメモリ120への書込みが行われず、DMAが完了した時点でコピー先のモジュール100に必要な全てのメインメモリ領域の値がコピーされた状態となる。
When the differential memory copy is completed in the process of step S6 shown in FIG. 7 (step S6), the computer system checks the number of dirty pages generated in the normal process recorded in the
その後、コンピュータシステムは、フラグ許可レジスタ22にダーティフラグの書込みを無効にする設定を行い(ステップS11)、メモリコピーの処理を終了する(ステップS12)。 Thereafter, the computer system makes a setting for invalidating the writing of the dirty flag in the flag permission register 22 (step S11), and ends the memory copy process (step S12).
以上に説明したように、本実施形態によれば、フォールトトレラントシステムでの二重化プロセスや、仮想化システムでのマイグレーションプロセスで、システムを稼働させたままメインメモリ120のデータをコピーする際に、ダーティフラグの記録及び管理を全てハードウェアで実行する。そのため、OSやソフトウェアによるメインメモリ120上でのダーティフラグの記録や管理が不要となり、DMAの起動やDMAが完了したときのダーティページの数のチェックを行う程度でメモリコピーを実施することができる。従って、CPU(プロセッサ110)の負荷を抑えることができる。
As described above, according to the present embodiment, in the duplication process in the fault tolerant system or the migration process in the virtualization system, when the data in the
また、コンピュータシステムでは、ソフトウェアでダーティページを記録及び管理する場合、1度のメインメモリ120への書込みアクセスに対して、ダーティフラグのあるメモリアドレスからデータを読出し、書込みアクセスに対応するビットにダーティフラグをセットし、ダーティフラグのあるメモリアドレスにデータを書き戻すという3つの処理が発生する。このことに対して、本実施形態では、フラグ制御部134における書込みアクセスしたアドレスを書込むという処理の追加のみで実現可能となる。例えば、メインメモリ120への書込み時間が10nsであり、読出し時間が50nsであり、演算処理時間が5nsであり、メインメモリ120以外への書込み時間が20nsであるとした場合、ソフトウェアによりダーティページを記録及び管理を行うと、通常では1度のインメモリ120への書込みで10+50+5+10=75nsかかる。これに対して、本実施形態によれば、10+20=30nsとなり、CPUの負荷は半分以下となる。
In addition, in a computer system, when recording and managing a dirty page by software, for a write access to the
また、本実施形態によれば、フラグ制御部134とDMA制御部133とが連携することにより、ダーティページのみの差分メモリコピーを完全にハードウェアで実現することが可能となる。そのため、OSやソフトウェアによりCPUを使用しながらメモリコピーを行う場合に比べて、CPUにはほとんど負荷がかからずにコピーを行うことができる。
In addition, according to the present embodiment, the
また、コンピュータシステムでは、ソフトウェアでダーティページを記録及び管理する場合、1度のメインメモリ120のコピーの際に、ダーティページアドレス取得のためのメモリ読出し、ダーティページのデータのメモリ読出し、コピー先へのデータ書込みという処理が必要となる。これに対して、本実施形態によれば、ハードウェアで全て実行するためCPUへの負荷がかからなくなる。
Also, in the computer system, when dirty pages are recorded and managed by software, memory copy for acquiring dirty page address, memory read of dirty page data, and copy destination to one copy of the
また、本実施形態によれば、プロセッサやメモリなど主要なデバイスは標準的な機能により実現でき、唯一プロセッサのマイクロコードに手を入れることでメインメモリ120への書込みの際にそのアドレスを外部バスに出力させる機能を追加することができる。
In addition, according to the present embodiment, main devices such as a processor and a memory can be realized by a standard function, and the address is assigned to the external bus when writing to the
また、本実施形態によれば、本発明によるメモリコピー方法を適用したコンピュータシステムを実現するために必要な機能は、コピー制御部130及びフラグメモリ140,150だけである。そのため、これらのデバイスをシステムに新規に追加することで実現可能となり、通常の処理で必要となる主要なハードウェアデバイスはそのまま使用することができる。
Further, according to the present embodiment, only the
以上のことから、本実施形態によれば、CPUの負担を抑えつつメモリのデータ転送の時間を短縮することができる。 From the above, according to the present embodiment, it is possible to shorten the time for data transfer in the memory while suppressing the burden on the CPU.
次に、本発明によるメモリコピー方法を適用したコンピュータシステムの最小構成について説明する。図11は、コンピュータシステムの最小の構成例を示すブロック図である。図11に示すように、コンピュータシステムは、二重化されたコンピュータシステムであって、フラグ制御部134と、コピー制御部130と、チップセット160とを備える。
Next, a minimum configuration of a computer system to which the memory copy method according to the present invention is applied will be described. FIG. 11 is a block diagram illustrating a minimum configuration example of a computer system. As shown in FIG. 11, the computer system is a duplicated computer system, and includes a
フラグ制御部134は、データが書き換えられたか否かを示すダーティ情報(ダーティフラグ)を用いて、メインメモリの記憶領域を管理する機能を備える。また、コピー制御部130は、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送する機能を備える。また、チップセット160は、コピー制御以外におけるデータの転送を行う機能を備える。また、コピー制御部130は、ハードウェアにより構成され、チップセット160とは異なるバスに接続されている。なお、例えば、チップセット160の中にコピー制御部130を含むように構成してもよい。
The
図11に示す最小構成のコンピュータシステムによれば、CPUの負担を抑えつつメモリのデータ転送の時間を短縮することができる。 According to the computer system having the minimum configuration shown in FIG. 11, it is possible to reduce the time for data transfer in the memory while suppressing the burden on the CPU.
なお、上記に示した実施形態では、以下の(1)〜(6)に示すようなコンピュータシステムの特徴的構成が示されている。 In the embodiment described above, the characteristic configuration of the computer system as shown in the following (1) to (6) is shown.
(1)コンピュータシステムは、二重化されたコンピュータシステムであって、データが書き換えられたか否かを示すダーティ情報(例えば、ダーティフラグ)を用いて、メインメモリ(例えば、メインメモリ120)の記憶領域を管理する記憶領域管理部(例えば、フラグ制御部134)と、当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、ダーティ情報に基いて、メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部(例えば、コピー制御部130)と、コピー制御以外におけるデータの転送を行う通常用データ転送部(例えば、チップセット160)とを備え、コピー用データ転送部は、ハードウェアにより構成され、通常用データ転送部とは異なるバスに接続されていることを特徴とする。 (1) The computer system is a duplicated computer system, and uses the dirty information (for example, dirty flag) indicating whether or not the data has been rewritten, and uses the storage area of the main memory (for example, the main memory 120). When performing copy control for copying data to a storage area management unit (for example, flag control unit 134) to be managed and a computer system other than the computer system, data in the storage area of the main memory is based on dirty information. A copy data transfer unit (for example, the copy control unit 130) that transfers only the data in the rewritten area, and a normal data transfer unit (for example, the chip set 160) that transfers data other than the copy control, The data transfer unit for copying consists of hardware and is used for normal use. Characterized in that it is connected to a different bus than the over data transfer unit.
(2)コンピュータシステムは、ダーティ情報を記憶するダーティ情報記憶部(例えば、フラグメモリ140,150)を備え、記憶領域管理部は、ダーティ情報記憶部が記憶するダーティ情報に、データが書き換えられたことを示す情報を書き込むように構成されていてもよい。
(2) The computer system includes a dirty information storage unit (for example,
(3)コンピュータシステムは、ハードウェアにより構成され、当該コンピュータシステム以外のコンピュータシステムとのデータの転送を中継する転送中継部(例えば、DMA制御部133)を備え、記憶領域管理部と転送中継部とが連携して処理を実行することによって、データが書き換えられた領域のデータのみを転送するように構成されていてもよい。 (3) The computer system is configured by hardware and includes a transfer relay unit (for example, a DMA control unit 133) that relays data transfer with a computer system other than the computer system, and includes a storage area management unit and a transfer relay unit May be configured to transfer only the data in the area in which the data has been rewritten by executing the process in cooperation with.
(4)コンピュータシステムは、マイクロコード(例えば、図2に示すマイクロコード)に従ってメインメモリの記憶領域にデータを書き込むとともに、該マイクロコードに従ってダーティ情報を書き込むように構成されていてもよい。 (4) The computer system may be configured to write data to the storage area of the main memory according to microcode (for example, the microcode shown in FIG. 2) and to write dirty information according to the microcode.
(5)コンピュータシステムは、フォールトトレラントシステムでの二重化プロセスにおけるコピー制御を行うように構成されていてもよい。 (5) The computer system may be configured to perform copy control in a duplex process in a fault tolerant system.
(6)コンピュータシステムは、仮想化システムでのマイグレーションプロセスにおけるコピー制御を行うように構成されていてもよい。 (6) The computer system may be configured to perform copy control in a migration process in the virtualization system.
本発明は、コンピュータシステムにおいて、ミッションクリティカルな用途のため少しのダウンタイムも許されないシステムとして使用される装置や、1つの装置で複数のゲストシステムを構築するような仮想化システムに適用することができる。 INDUSTRIAL APPLICABILITY The present invention can be applied to a computer system that is used as a system that does not allow any downtime for mission-critical applications, or a virtualization system that constructs a plurality of guest systems with a single device. it can.
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 フラグメモリ
10
115 Bus I / F
120
140,150 flag memory
Claims (7)
データが書き換えられたか否かを示すダーティ情報を用いて、メインメモリの記憶領域を管理する記憶領域管理部と、
当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、前記ダーティ情報に基いて、前記メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送するコピー用データ転送部と、
前記コピー制御以外におけるデータの転送を行う通常用データ転送部とを備え、
当該コンピュータシステムは、マイクロコードに従って、前記コピー用データ転送部に前記ダーティ情報を書き込み、
前記コピー用データ転送部は、ハードウェアにより構成され、前記通常用データ転送部とは異なるバスに接続されている
ことを特徴とするコンピュータシステム。 A duplicated computer system,
A storage area management unit for managing the storage area of the main memory, using dirty information indicating whether or not the data has been rewritten;
Copy data transfer for transferring only data in the storage area of the main memory in which data has been rewritten based on the dirty information when performing copy control for copying data to a computer system other than the computer system And
A normal data transfer unit for transferring data other than the copy control,
The computer system writes the dirty information in the copy data transfer unit according to microcode,
The copy data transfer unit is configured by hardware and is connected to a different bus from the normal data transfer unit.
記憶領域管理部は、前記ダーティ情報記憶部が記憶する前記ダーティ情報に、データが書き換えられたことを示す情報を書き込む
請求項1記載のコンピュータシステム。 A dirty information storage unit for storing dirty information;
The computer system according to claim 1, wherein the storage area management unit writes information indicating that data has been rewritten in the dirty information stored in the dirty information storage unit.
記憶領域管理部と前記転送中継部とが連携して処理を実行することによって、データが書き換えられた領域のデータのみを転送する
請求項1又は請求項2記載のコンピュータシステム。 The computer system is configured by hardware, and includes a transfer relay unit that relays data transfer with a computer system other than the computer system.
The computer system according to claim 1 or 2, wherein only the data in the area where the data has been rewritten is transferred by executing a process in cooperation between the storage area management section and the transfer relay section.
請求項1から請求項3のうちのいずれか1項に記載のコンピュータシステム。 Computer system, the computer system according to any one of claims 3 to write no claims 1 to write data in the storage area of the main memory in accordance with the microcode.
請求項1から請求項4のうちのいずれか1項に記載のコンピュータシステム。 The computer system according to any one of claims 1 to 4, wherein the computer system performs copy control in a duplex process in a fault-tolerant system.
請求項1から請求項4のうちのいずれか1項に記載のコンピュータシステム。 The computer system according to any one of claims 1 to 4, wherein the computer system performs copy control in a migration process in the virtualization system.
当該コンピュータシステム以外のコンピュータシステムにデータをコピーするコピー制御を行うときに、前記ダーティ情報に基いて、前記メインメモリの記憶領域のうちデータが書き換えられた領域のデータのみを転送し、
当該コンピュータシステムが、マイクロコードに従って、前記コピー制御を行うときにデータの転送を行うコピー用データ転送部に前記ダーティ情報を書き込み、
前記コピー用データ転送部が、ハードウェアにより構成され、前記コピー制御以外におけるデータの転送を行う通常用データ転送部とは異なるバスに接続されている
ことを特徴とするメモリコピー方法。 In the duplicated computer system, using the dirty information indicating whether the data has been rewritten, the storage area of the main memory is managed,
When performing copy control to copy data to a computer system other than the computer system, based on the dirty information, only the data in the area where the data is rewritten in the storage area of the main memory is transferred,
The computer system writes the dirty information in a copy data transfer unit that transfers data when performing the copy control according to microcode,
Before Kiko Phi data transfer unit is constituted by hardware, memory copying method characterized in that it is connected to a different bus than the normal data transfer unit for transferring data in other than the copy control.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017063060A JP6365718B1 (en) | 2017-03-28 | 2017-03-28 | Computer system and memory copy method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017063060A JP6365718B1 (en) | 2017-03-28 | 2017-03-28 | Computer system and memory copy method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6365718B1 true JP6365718B1 (en) | 2018-08-01 |
JP2018165915A JP2018165915A (en) | 2018-10-25 |
Family
ID=63036750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017063060A Active JP6365718B1 (en) | 2017-03-28 | 2017-03-28 | Computer system and memory copy method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6365718B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7489183B2 (en) | 2019-11-19 | 2024-05-23 | 三菱重工業株式会社 | Arithmetic device, redundancy system and program, and method for constructing a redundancy configuration |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62226736A (en) * | 1986-03-28 | 1987-10-05 | Toshiba Corp | Data equalizing method for duplicated system |
JP2006178735A (en) * | 2004-12-22 | 2006-07-06 | Yokogawa Electric Corp | Redundant system |
JP2012181798A (en) * | 2011-03-03 | 2012-09-20 | Nec Corp | Data transfer device, ft server, data transfer method, and program |
-
2017
- 2017-03-28 JP JP2017063060A patent/JP6365718B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62226736A (en) * | 1986-03-28 | 1987-10-05 | Toshiba Corp | Data equalizing method for duplicated system |
JP2006178735A (en) * | 2004-12-22 | 2006-07-06 | Yokogawa Electric Corp | Redundant system |
JP2012181798A (en) * | 2011-03-03 | 2012-09-20 | Nec Corp | Data transfer device, ft server, data transfer method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP2018165915A (en) | 2018-10-25 |
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 | |
US20080235477A1 (en) | Coherent data mover | |
US10713083B2 (en) | Efficient virtual I/O address translation | |
JPWO2007105373A1 (en) | Bridge, information processing system, and access control method | |
US9146879B1 (en) | Virtual memory management for real-time embedded devices | |
US7734842B2 (en) | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages | |
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 | |
JP2010165022A (en) | Inter-processor communication device, inter-processor communication method, program, and recording medium | |
US6892283B2 (en) | High speed memory cloner with extended cache coherency protocols and responses | |
US20070150665A1 (en) | Propagating data using mirrored lock caches | |
US11354244B2 (en) | Memory management device containing memory copy device with direct memory access (DMA) port | |
US20080065855A1 (en) | DMAC Address Translation Miss Handling Mechanism | |
JP5439808B2 (en) | System LSI with multiple buses | |
US6898677B2 (en) | Dynamic software accessibility to a microprocessor system with a high speed memory cloner | |
JP6365718B1 (en) | Computer system and memory copy method | |
JP5673396B2 (en) | Information processing system, information processing program, and information processing method | |
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 | |
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 (en) | Data processing device | |
JP4965974B2 (en) | Semiconductor integrated circuit device | |
US6928524B2 (en) | Data processing system with naked cache line write operations |
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 |