JP4692501B2 - Data storage system and data storage method - Google Patents

Data storage system and data storage method Download PDF

Info

Publication number
JP4692501B2
JP4692501B2 JP2007058559A JP2007058559A JP4692501B2 JP 4692501 B2 JP4692501 B2 JP 4692501B2 JP 2007058559 A JP2007058559 A JP 2007058559A JP 2007058559 A JP2007058559 A JP 2007058559A JP 4692501 B2 JP4692501 B2 JP 4692501B2
Authority
JP
Japan
Prior art keywords
data
storage area
memory
buffer
data storage
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.)
Expired - Fee Related
Application number
JP2007058559A
Other languages
Japanese (ja)
Other versions
JP2008225543A (en
Inventor
輝幸 馬場
伸治 加美
洋一 飛鷹
隆士 吉川
成行 柳町
英之 下西
淳一 樋口
順 鈴木
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 JP2007058559A priority Critical patent/JP4692501B2/en
Publication of JP2008225543A publication Critical patent/JP2008225543A/en
Application granted granted Critical
Publication of JP4692501B2 publication Critical patent/JP4692501B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はデータ記憶システム、及びデータ記憶方法に関し、特にCPUの負荷を削減できるデータ記憶システム、及びデータ記憶方法に関する。   The present invention relates to a data storage system and a data storage method, and more particularly to a data storage system and a data storage method capable of reducing a load on a CPU.

従来のログデータ記憶システムの例を図17に示す。図17に示すように、この従来のログデータ記憶システムは、CPU901と、メモリ902と、DMA(Direct Memory Access)コントローラ(DMAC)920と、ディスクシステム910とから構成されている。それぞれのデバイスは、バス905を介して互いにデータを送受信することができる。   An example of a conventional log data storage system is shown in FIG. As shown in FIG. 17, this conventional log data storage system includes a CPU 901, a memory 902, a DMA (Direct Memory Access) controller (DMAC) 920, and a disk system 910. Each device can transmit / receive data to / from each other via the bus 905.

CPU901では、アプリケーションプログラムが動作する。また、ログデータを生成するログ生成プログラムも動作する。ログ生成プログラムは、アプリケーションプログラムの動作状態や、OSの動作状態をログデータとして出力する。ログデータを生成する機能が、アプリケーションプログラムやOS何に含まれる場合と、異なるプログラムで実現される場合がある。   In the CPU 901, an application program operates. A log generation program for generating log data also operates. The log generation program outputs the operation state of the application program and the operation state of the OS as log data. The function for generating log data may be realized by a different program from that included in an application program or OS.

メモリ902は、CPU901上のログ生成プログラムが発生するデータをディスクシステム910に書き込むまで一時的に保存する。   The memory 902 temporarily stores data generated by the log generation program on the CPU 901 until it is written to the disk system 910.

ディスクシステム910は、ディスクドライブ911と、ディスクキャッシュ912とで構成される。   The disk system 910 includes a disk drive 911 and a disk cache 912.

ディスクドライブ911は、データを記憶する装置である。一般的にディスクドライブは、磁気ディスクを利用するため、データの書き込み及び読み出しは、メモリ902と比較すると低速である。   The disk drive 911 is a device that stores data. In general, since a disk drive uses a magnetic disk, data writing and reading are slower than the memory 902.

ディスクキャッシュ912は、ディスクドライブ911へデータを書き込む際に、メモリ902からのデータを一時的に保存する。ディスクキャッシュ912は、一般的には、データの書き込み及び読み込みがディスクドライブと比較して高速な半導体メモリが利用される。ディスクキャッシュ912に高速な半導体メモリを利用することによって、大量のデータをメモリからディスクへ書き込む際に高速なディスクキャッシュへ一時的に書き込み、その後低速なディスクドライブへの書き込みを実施することにより、メモリからディスクへのデータ書き込み処理を高速化することができる。
DMAコントローラ920は、DMA開始手段921と、アドレスカウント手段922と、ディスク書き込み制御手段923と、完了割り込み通知手段924で構成される。
The disk cache 912 temporarily stores data from the memory 902 when writing data to the disk drive 911. The disk cache 912 generally uses a semiconductor memory that is faster in writing and reading data than a disk drive. By using a high-speed semiconductor memory for the disk cache 912, when a large amount of data is written from the memory to the disk, the memory is temporarily written to the high-speed disk cache and then written to the low-speed disk drive. The data writing process from the disk to the disk can be speeded up.
The DMA controller 920 includes a DMA start unit 921, an address count unit 922, a disk write control unit 923, and a completion interrupt notification unit 924.

DMA開始手段921は、CPU901からDMA転送要求を受信し、転送対象となるメモリアドレスをアドレスカウント手段922へ設定する。アドレスカウント手段922は、メモリからディスクシステムへデータを転送するごとに、データの読み出し元となるメモリのアドレスを更新し、ディスク書き込み制御手段923へ通知する。ディスク書き込み制御手段923は、メモリカウント手段922から指定されるメモリアドレスのデータを読み出し、ディスクキャッシュ912へデータを書き込む。完了割り込み通知手段924は、CPU901からDMA転送要求で要求された全データの転送を完了すると、CPU901へ完了を伝える割り込みを通知する。   The DMA start unit 921 receives a DMA transfer request from the CPU 901, and sets a memory address to be transferred to the address count unit 922. Each time the data is transferred from the memory to the disk system, the address counting unit 922 updates the address of the memory from which the data is read, and notifies the disk writing control unit 923 of it. The disk write control unit 923 reads the data at the memory address designated from the memory count unit 922 and writes the data to the disk cache 912. When the completion interrupt transfer means 924 completes the transfer of all data requested by the DMA transfer request from the CPU 901, the completion interrupt notification means 924 notifies the CPU 901 of an interrupt indicating completion.

上記のような構成を有する従来のログデータ記憶システムの動作シーケンスを図18、19に示す。図18は、CPU901の動作シーケンスであり、図19は、DMAコントローラ920の動作シーケンスである。   The operation sequence of the conventional log data storage system having the above configuration is shown in FIGS. FIG. 18 shows an operation sequence of the CPU 901, and FIG. 19 shows an operation sequence of the DMA controller 920.

図18を参照して、CPU901の動作について説明する。   The operation of the CPU 901 will be described with reference to FIG.

ステップS901において、CPU901がメモリ902にログデータを書き込む。
一般的にメモリ902の空き容量は、CPU901上で動作しているOSが管理している。このため、メモリ902上に空き容量が少なくなると、CPU901上のOSが、メモリ902上のデータをディスクシステム910へ書き出すためのDMA転送要求をDMAコントローラ920へ発行する。
In step S <b> 901, the CPU 901 writes log data to the memory 902.
In general, the free space in the memory 902 is managed by an OS running on the CPU 901. Therefore, when the free space on the memory 902 becomes small, the OS on the CPU 901 issues a DMA transfer request for writing the data on the memory 902 to the disk system 910 to the DMA controller 920.

ステップ902において、CPU902は転送するデータのメモリアドレス及びデータサイズを設定する。ステップS903において、CPU901は、転送先のディスクアドレスを設定する。その後、ステップS904において、CPU901はDMA転送要求をDMAコントローラ920へ通知する。DMA転送要求では、転送対象となるメモリアドレス及びデータサイズを通知する。   In step 902, the CPU 902 sets the memory address and data size of the data to be transferred. In step S903, the CPU 901 sets a transfer destination disk address. Thereafter, in step S904, the CPU 901 notifies the DMA controller 920 of a DMA transfer request. In the DMA transfer request, the memory address and data size to be transferred are notified.

DMAコントローラ920は、DMA転送要求を受信すると、DMA転送要求で指定されたアドレスのデータをメモリ902から読み取り、ディスクキャッシュ912に書き込む。この動作については、後で、DMAコントローラの動作フローとして、図19を参照して説明する。   When receiving the DMA transfer request, the DMA controller 920 reads the data at the address specified by the DMA transfer request from the memory 902 and writes it in the disk cache 912. This operation will be described later with reference to FIG. 19 as an operation flow of the DMA controller.

DMA転送要求により要求されたすべてのデータの転送が終了すると、CPU901は、DMA転送完了割込みを、ステップS905で受信する。DMA転送完了割込みを受けると、メモリ902を管理するOSがメモリの空き状態を更新する。   When the transfer of all data requested by the DMA transfer request is completed, the CPU 901 receives a DMA transfer completion interrupt in step S905. When the DMA transfer completion interrupt is received, the OS managing the memory 902 updates the free state of the memory.

次に、図19を参照してDMAコントローラ920の動作フローを説明する。   Next, the operation flow of the DMA controller 920 will be described with reference to FIG.

DMAコントローラ920は、CPU901からDMA転送要求を受信すると、DMA開始手段921が、転送対象となるメモリアドレスをアドレスカウント手段922へ設定する(ステップS921)。アドレスカウント手段922は、ステップS922において、データ転送ごとに転送対象となるメモリアドレスをインクリメントし、このメモリアドレスをディスク書き込み制御手段923へ設定する。   When the DMA controller 920 receives a DMA transfer request from the CPU 901, the DMA start unit 921 sets a memory address to be transferred in the address count unit 922 (step S921). In step S922, the address count unit 922 increments the memory address to be transferred for each data transfer, and sets the memory address in the disk write control unit 923.

次に、ディスク書き込み制御手段923が、アドレスカウント手段922に設定されたメモリアドレスからデータを読み出し(ステップS923)、読み出したデータをディスクキャッシュ912へ書き込む(ステップS924)。ディスクキャッシュ912へ書き込まれたデータは、ディスクドライブ911へ書き込まれる。メモリ902とディスクシステム910間のデータ転送で一度に転送できるデータ量は、バスやOSにより決められている。このため、DMA転送要求のデータ量がこの制限されたデータ量より大きい場合は、要求されたデータ量の転送が終了するまで、上記転送動作を繰り返す(ステップS925)。   Next, the disk write control unit 923 reads data from the memory address set in the address count unit 922 (step S923), and writes the read data to the disk cache 912 (step S924). Data written to the disk cache 912 is written to the disk drive 911. The amount of data that can be transferred at one time by data transfer between the memory 902 and the disk system 910 is determined by the bus and OS. For this reason, if the data amount of the DMA transfer request is larger than the limited data amount, the above transfer operation is repeated until the transfer of the requested data amount is completed (step S925).

以上で説明したように、従来のログデータ記憶システムでは、DMAを利用することによって、CPUはメモリからディスクシステムへのデータ転送に関する処理を行わないため、ログデータをディスクシステムへ記憶する際のCPU負荷を下げることができる。
また、従来のログデータ管理システムでは、リモートの管理用コンピュータへログデータを転送する場合は、ログデータをTCP/IPプロトコルを利用して、データの収集を行う。
As described above, in the conventional log data storage system, by using DMA, the CPU does not perform processing related to data transfer from the memory to the disk system, and therefore the CPU for storing log data in the disk system. The load can be reduced.
In the conventional log data management system, when log data is transferred to a remote management computer, the log data is collected using the TCP / IP protocol.

本発明に関連する技術を開示するものとして、例えば、特許文献1、特許文献2、特許文献3がある。
特開2005−165439号公報 特開2005−165619号公報 特開2005−316700号公報
For example, Patent Literature 1, Patent Literature 2, and Patent Literature 3 disclose techniques related to the present invention.
JP 2005-165439 A JP 2005-165619 A JP-A-2005-316700

第1の問題点は、ログデータの収集量が増大すると、CPU負荷が増大するということである。   The first problem is that the CPU load increases as the amount of collected log data increases.

その理由は、ディスクデバイスドライバの呼び出しと、DMA転送完了の割り込みの処理をDMA転送のたびにCPUが実施するためである。   The reason for this is that the CPU executes the disk device driver call and the DMA transfer completion interrupt process for each DMA transfer.

第2の問題点は、管理対象コンピュータと異なるリモートの管理用コンピュータにログデータを転送する際に、転送処理のCPU負荷が増大するということである。   The second problem is that the transfer processing CPU load increases when log data is transferred to a remote management computer different from the management target computer.

その理由は、コンピュータ間の転送処理のためのTCP/IPプロトコルの処理負荷が増大するためである。   The reason is that the processing load of the TCP / IP protocol for transfer processing between computers increases.

[発明の目的]
本発明の目的は、CPU負荷を低減することができるデータ記憶システムを提供することにある。
[Object of invention]
An object of the present invention is to provide a data storage system capable of reducing the CPU load.

本発明の他の目的は、ディスクドライブへ記憶するデータの重複および欠落を防ぐことにある。   Another object of the present invention is to prevent duplication and omission of data stored in a disk drive.

本発明の第1のデータ記憶システムは、複数のバッファを有し、データの保存先であるデータ記憶領域と、前記バッファの状態を記憶するバッファ状態記憶領域と、を備えたメモリと、
前記データ記憶領域と前記複数のバッファと前記バッファ状態記憶領域とのメモリアドレスを決定するメモリアドレス決定手段と、前記データ記憶領域内において前記データを保存するアドレス順を決定するメモリアクセス順決定手段と、前記メモリアクセス順決定手段が決定した順番に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを書き込める状態でなければデータの書き込みを保留し、バッファの状態がデータを書き込める状態であればデータを書き込み、前記バッファ状態記憶領域のバッファ状態を更新するデータ書き込み手段として機能させるプログラムにより動作するプロセッサと、
前記データ記憶領域内のデータの転送先となるディスクドライブと、
前記メモリ上の前記データ記憶領域と前記バッファと前記バッファ状態記憶領域とのアドレスを前記プログラムから取得し、記憶する手段と、
前記データ記憶領域内のデータを前記プログラムがデータを書き込むアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを読み出せる状態でなければ処理を保留し、バッファの状態がデータを読み出せる状態であれば、バッファ単位でデータを読み出し、読み出したデータを前記ディスクドライブへ書き込み、バッファ状態を更新するディスク書き込み制御手段と、
を有することを特徴とする。
本発明の第2のデータ記憶システムは、複数のバッファを有し、データの保存先であるデータ記憶領域と、前記バッファの状態を記憶するバッファ状態記憶領域と、を備えたメモリと、
前記データ記憶領域と前記複数のバッファと前記バッファ状態記憶領域とのメモリアドレスを決定するメモリアドレス決定手段と、前記データ記憶領域内において前記データを保存するアドレス順を決定するメモリアクセス順決定手段と、前記メモリアクセス順決定手段が決定した順番に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを読み出せる状態でなければデータの読み出しを保留し、バッファの状態がデータを読み出せる状態であればデータを読み出し、前記バッファ状態記憶領域のバッファ状態を更新するデータ読み出し手段として機能させるプログラムにより動作するプロセッサと、
前記データ記憶領域内のデータの転送元となるディスクドライブと、
前記メモリ上の前記データ記憶領域と前記バッファと前記バッファ状態記憶領域とのアドレスを前記プログラムから取得し、記憶する手段と、
前記データ記憶領域内のデータを前記プログラムがデータを書き込むアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを書き込める状態でなければ処理を保留し、バッファの状態がデータを書き込める状態であれば、前記ディスクドライブからデータを読み出し、読み出したデータを前記メモリ上の前記データ記憶領域へ書き込み、バッファ状態を更新するディスク読み出し制御手段と、
を有することを特徴とする。
A first data storage system of the present invention has a plurality of buffers, a memory including a data storage area that is a storage destination of data, and a buffer state storage area that stores the state of the buffer;
Memory address determining means for determining memory addresses of the data storage area, the plurality of buffers, and the buffer state storage area; and memory access order determining means for determining an address order for storing the data in the data storage area; The buffer access state of the buffer state storage area is acquired according to the order determined by the memory access order determination means, and if the buffer state is not a state where data can be written, the data write is suspended and the buffer state is a state where data can be written A processor that operates according to a program that functions as data writing means for writing data and updating the buffer state of the buffer state storage area,
A disk drive to which data in the data storage area is transferred;
Means for acquiring and storing addresses of the data storage area, the buffer and the buffer state storage area on the memory from the program;
The buffer status in the buffer status storage area is acquired in accordance with the address order in which the program writes the data in the data storage area. If the buffer status is not readable, the processing is suspended. If the data can be read, the disk write control means for reading the data in buffer units, writing the read data to the disk drive, and updating the buffer state;
It is characterized by having.
A second data storage system of the present invention has a plurality of buffers, a memory including a data storage area that is a data storage destination, and a buffer state storage area that stores the state of the buffer;
Memory address determining means for determining memory addresses of the data storage area, the plurality of buffers, and the buffer state storage area; and memory access order determining means for determining an address order for storing the data in the data storage area; The buffer status in the buffer status storage area is acquired according to the order determined by the memory access order determination means, and if the buffer status is not readable, the data reading is suspended and the buffer status is read from the data. A processor that operates according to a program that reads data if it can be output and functions as data reading means for updating the buffer state of the buffer state storage area;
A disk drive from which data in the data storage area is transferred;
Means for acquiring and storing addresses of the data storage area, the buffer and the buffer state storage area on the memory from the program;
The data in the data storage area is acquired according to the order of addresses in which the program writes data, and the buffer status in the buffer status storage area is acquired. Disk read control means for reading data from the disk drive, writing the read data to the data storage area on the memory, and updating the buffer status;
It is characterized by having.

このような構成を有し、プロセッサとデータ転送制御部で予めメモリへデータを書き込む領域のアドレスを共有し、バッファが書き込み可能または読み出し可能であることを確認することにより、プロセッサ負荷の低減及び記憶するデータの重複及び欠落を防ぐという本発明の目的を達成することができる。   Having such a configuration, the processor and the data transfer control unit share the address of the area in which data is written to the memory in advance, and confirm that the buffer is writable or readable, thereby reducing processor load and storing The object of the present invention can be achieved to prevent duplication and omission of data.

本発明の第3のデータ記憶システムは、第1の発明において、バッファ状態記憶領域からバッファ状態を確認する前に、メモリからディスクドライブへ転送したデータを記憶し、前記メモリから読み出したデータが前記記憶されたデータと異なる場合にデータ転送をディスク書き込み制御手段へ指示することを特徴とする。このような構成を有することにより、メモリアクセスの回数を低減しCPU負荷を低減することができる。   According to a third data storage system of the present invention, in the first invention, before the buffer status is confirmed from the buffer status storage area, the data transferred from the memory to the disk drive is stored, and the data read from the memory is If the stored data is different from the stored data, the disk write control means is instructed to transfer the data. By having such a configuration, the number of memory accesses can be reduced and the CPU load can be reduced.

本発明の第4のデータ記憶システムは、第1又は第2の発明において、前記データ記憶領域内のバッファ単位でのデータ書き込みの完了を確認する時間間隔を記憶し、書き込み完了の確認の際に既に書き込みが完了している際には、次回の確認までの待ち時間を短くし、まだ書き込みが完了していない場合は、次回の確認までの待ち時間を長くするようにメモリ読み出し間隔を制御する転送間隔制御手段を有することを特徴とする。このような構成を有し、メモリへアクセスする時間間隔を制御することにより、メモリアクセスの回数を低減しCPU負荷を低減することができる。   According to a fourth data storage system of the present invention, in the first or second invention, a time interval for confirming completion of data writing in units of buffers in the data storage area is stored, and when confirming completion of writing, When writing has already been completed, the waiting time until the next confirmation is shortened, and when writing has not been completed, the memory reading interval is controlled so as to increase the waiting time until the next confirmation. It has a transfer interval control means. By having such a configuration and controlling the time interval for accessing the memory, the number of memory accesses can be reduced and the CPU load can be reduced.

本発明の第5のデータ記憶システムは、第1又は2の発明において、バス上のコマンドをモニタし、コマンドの内容が前記CPUから前記データ記憶領域へのデータ書き込み要求であり、かつ新たなバッファへの書き込み要求であった場合に、メモリ読み出しを行うコマンドモニタ手段を有することを特徴とする。このような構成を有し、メモリへアクセスする時間間隔を制御することにより、メモリアクセスの回数を低減しCPU負荷を低減することができる。   According to a fifth data storage system of the present invention, in the first or second invention, the command on the bus is monitored, the content of the command is a data write request from the CPU to the data storage area, and a new buffer It is characterized by having a command monitoring means for performing memory reading when a write request is made. By having such a configuration and controlling the time interval for accessing the memory, the number of memory accesses can be reduced and the CPU load can be reduced.

本発明の第6のデータ記憶システムは、第1から第5の発明において、複数のディスクドライブを有し、データの転送先ディスクドライブをデータの内容に応じて選択するデータ転送先選択手段を有することを特徴とする。このような構成を有し、複数のディスクへデータを分散して記憶することで、ディスクへの書き込み速度を向上させデータの欠落を防ぐことができる。   According to a sixth data storage system of the present invention, in the first to fifth aspects of the present invention, the data storage system includes a plurality of disk drives, and further includes a data transfer destination selection unit that selects a data transfer destination disk drive according to the contents of the data. It is characterized by that. By having such a configuration and distributing and storing data on a plurality of disks, it is possible to improve the writing speed to the disks and prevent data loss.

本発明の第7のデータ記憶システムは、第6の発明において、バス上のコマンドをコンピュータの外部ネットワークのプロトコルにカプセル化するバスプロトコル転送部と、バスに接続したディスクドライブを制御可能なCPUを決定するパーティション制御手段とバスプロトコル転送部で接続されたリモートディスクドライブを転送先に指定する前記データ転送先選択手段とを備えたことを特徴とする。このような構成を有し、データをバスプロトコルのままカプセル化してリモートディスクへ転送することで、TCP/IP処理を削減し、CPU負荷を低減することができる。   According to a seventh data storage system of the present invention, in the sixth invention, a bus protocol transfer unit that encapsulates a command on the bus into a protocol of an external network of the computer, and a CPU that can control a disk drive connected to the bus. The partition control means for determining and the data transfer destination selecting means for designating the remote disk drive connected by the bus protocol transfer unit as the transfer destination are provided. With such a configuration, by encapsulating data in the bus protocol and transferring it to a remote disk, TCP / IP processing can be reduced and CPU load can be reduced.

第1の効果は、メモリからディスクへデータを転送する際のCPU負荷を低減できることにある。   The first effect is that the CPU load when transferring data from the memory to the disk can be reduced.

その理由は、プロセッサとデータ転送制御部で予めメモリへデータを書き込む領域のアドレスを共有することにより、データ転送のたびにメモリアドレスを通知する処理を省略できるためである。   This is because the processor and the data transfer control unit share the address of the area in which data is written to the memory in advance, so that the process of notifying the memory address each time data is transferred can be omitted.

また他の理由は、データ読み出しのために、ディスク書き込み制御手段がメモリへアクセスするタイミングを制御するためである。   Another reason is to control the timing at which the disk write control means accesses the memory for data reading.

第2の効果は、ディスクドライブへ記憶するデータの重複を防ぐことにある。   The second effect is to prevent duplication of data stored in the disk drive.

その理由は、メモリから読み出したデータを一時記憶し、この記憶されたデータと異なるデータのみを転送するためである。   The reason is that data read from the memory is temporarily stored, and only data different from the stored data is transferred.

次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。   Next, the best mode for carrying out the invention will be described in detail with reference to the drawings.

以下に説明する各実施形態においては、CPUはデータ書き込み手段とデータ読み出し手段とを備え、データ転送制御部はディスク書き込み制御手段とディスク読み出し制御手段と有するものとした説明する。しかし、CPUがデータ書き込み手段がなく、データ転送制御部がディスク書き込み制御手段がないデータ記憶システム、CPUがデータ読み出し手段がなく、データ転送制御部がディスク読み出し制御手段がないデータ記憶システムも本発明に含まれるものとする。   In each embodiment described below, it is assumed that the CPU includes a data writing unit and a data reading unit, and the data transfer control unit includes a disk writing control unit and a disk reading control unit. However, a data storage system in which the CPU has no data writing means and the data transfer control unit has no disk writing control means, and a data storage system in which the CPU has no data reading means and the data transfer control unit has no disk reading control means are also included in the present invention. Shall be included.

[第1の実施形態]
図1に示すように、本実施形態のログデータ記憶システムは、CPU101と、メモリ102と、データ転送制御部130と、ディスクシステム110とから構成されている。CPU(プロセッサとなる)101、メモリ102、データ転送制御部130、ディスクシステム110は、バス105を介して互いにデータを送受信することができる。
[First Embodiment]
As shown in FIG. 1, the log data storage system of this embodiment includes a CPU 101, a memory 102, a data transfer control unit 130, and a disk system 110. The CPU (acting as a processor) 101, the memory 102, the data transfer control unit 130, and the disk system 110 can transmit and receive data to and from each other via the bus 105.

CPU101とディスクシステム110とは、図17に示した従来のCPU901とディスクシステム910とそれぞれ同じ機能を有するため、ここでの説明は省略する。   The CPU 101 and the disk system 110 have the same functions as the conventional CPU 901 and the disk system 910 shown in FIG.

メモリ102は、データ記憶領域120とバッファ状態記憶領域125とバッファ割当記憶領域126とを有する。データ記憶領域120は、複数のバッファに分割されている。このデータ記憶領域120に、CPU101からログデータが書き込まれ、この領域内のデータがデータ転送制御部130により、ディスクシステム110へ転送される。   The memory 102 includes a data storage area 120, a buffer status storage area 125, and a buffer allocation storage area 126. The data storage area 120 is divided into a plurality of buffers. Log data is written from the CPU 101 to the data storage area 120, and the data in this area is transferred to the disk system 110 by the data transfer control unit 130.

データ記憶領域120を、複数のバッファに分割することで、バッファごとにデータを転送する際に、一つのバッファ内のデータを転送中に、他のバッファに対してログデータを書き込むことができる。このため、メモリ102からディスクシステム110へデータ転送中であっても、メモリ102へのログデータの書き込みを継続することができる。それぞれのバッファのサイズは同じでも、異なっていてもよい。   By dividing the data storage area 120 into a plurality of buffers, when transferring data for each buffer, log data can be written to another buffer while the data in one buffer is being transferred. Therefore, even when data is being transferred from the memory 102 to the disk system 110, it is possible to continue writing log data to the memory 102. The size of each buffer may be the same or different.

このメモリ102への書き込み速度は、一般的に、ディスクシステム110への書き込み速度より高速である。このため、メモリ102への書き込みデータ量が過剰に多いと、メモリ102からディスクシステム110へのデータ転送が追いつかずにメモリが溢れ、ログデータが欠落することが考えられる。これを防ぐ方法の1つとして、複数のディスクドライブで構成し、メモリからのデータ転送を複数のディスクドライブで並行処理する方法がある。   The writing speed to the memory 102 is generally higher than the writing speed to the disk system 110. For this reason, if the amount of data written to the memory 102 is excessively large, the data transfer from the memory 102 to the disk system 110 cannot catch up and the memory overflows and log data may be lost. One method for preventing this is a method in which a plurality of disk drives are used, and data transfer from a memory is processed in parallel by a plurality of disk drives.

データ記憶領域120は、図1に示すようにプログラムがディスクシステムにデータを書き込む処理と、プログラムがディスクシステムからデータを読み込む処理との両方が混在する場合は、それぞれ書き込み領域と読み出し領域とを作成する。また、図1のプログラム200a、プログラムb、プログラムmのように、ログデータを生成もしくはディスクシステムから読み出すプログラムが複数存在する場合は、プログラムごとに読み出し領域(プログラム用のデータ記憶領域となる)を作成する。また、プログラムごとに、書き込みと読み出しが混在する場合は、プログラムごとに書き込み領域と読み出し領域と(プログラム用のデータ記憶領域となる)を作成し、それぞれの領域内においてリングバッファを構成する。それぞれのプログラムに割り当てられた領域は、割り当てられたプログラムに関するプログラムおよびデータ転送制御部からの処理のみにアクセスを許すようにする。   As shown in FIG. 1, the data storage area 120 creates a write area and a read area, respectively, when both a process for writing data to the disk system and a process for reading data from the disk system are mixed. To do. Further, when there are a plurality of programs for generating log data or reading log data from the disk system, such as the program 200a, program b, and program m in FIG. 1, a read area (becomes a data storage area for the program) is provided for each program. create. When writing and reading are mixed for each program, a writing area and a reading area (which becomes a data storage area for the program) are created for each program, and a ring buffer is configured in each area. The area allocated to each program is allowed to access only the processes related to the allocated program and the data transfer control unit.

これら領域の区切りとなるアドレスまたはサイズの情報は、メモリ上のバッファ割当記憶領域126に記憶される。この情報を、データ転送制御部130のメモリアドレス記憶手段132に記憶することで、データ転送制御部130はメモリをアクセスする領域を特定することができる。   Information on the address or size used as a partition between these areas is stored in the buffer allocation storage area 126 on the memory. By storing this information in the memory address storage unit 132 of the data transfer control unit 130, the data transfer control unit 130 can specify an area for accessing the memory.

バッファ状態記憶領域125は、各バッファのデータの状態を記憶する。バッファの状態としては、「書き込み可能」、「書き込み中」、「読み出し可能」、「読み出し中」がある。   The buffer state storage area 125 stores the data state of each buffer. The buffer status includes “write enabled”, “writing in progress”, “readable”, and “reading in progress”.

プログラムがディスクにデータを書き込む領域においては、「書き込み可能」はプログラムがメモリにデータを書き込み可能であることを、「書き込み中」はプログラムがメモリにデータを書き込み中であることを、「読み出し可能」はデータ転送制御部がメモリからデータを読み出し可能であることを、「読み出し中」はデータ転送制御部がメモリからデータを読み出し中であることを表す。「書き込み可能」と「書き込み中」の場合は、データ転送制御部はメモリからデータを読み出すことも、メモリへデータを書き込むこともできない。「読み出し可能」と「読み出し中」の場合は、プログラムはメモリからデータを読み出すことも、メモリへデータを書き込むこともできない。   In the area where the program writes data to the disk, “Writable” means that the program can write data to the memory, and “Writing” means that the program is writing data to the memory. "Indicates that the data transfer control unit can read data from the memory, and" during reading "indicates that the data transfer control unit is reading data from the memory. When “Writable” and “Writing”, the data transfer control unit cannot read data from the memory or write data to the memory. When “Readable” and “Reading”, the program cannot read data from the memory or write data to the memory.

プログラムがディスクからデータを読み出す領域においては、「書き込み可能」はデータ転送制御部がメモリにデータを書き込み可能であることを、「書き込み中」はデータ転送制御部がメモリにデータを書き込み中であることを、「読み出し可能」はプログラムがメモリからデータを読み出し可能であることを、「読み出し中」はプログラムがメモリからデータを読み出し中であることを表す。「書き込み可能」と「書き込み中」の場合は、プログラムはメモリからデータを読み出すことも、メモリへデータを書き込むこともできない。「読み出し可能」と「読み出し中」の場合は、データ転送制御部はメモリからデータを読み出すことも、メモリへデータを書き込むこともできない。   In the area where the program reads data from the disk, “Writable” indicates that the data transfer control unit can write data to the memory, and “Writing” indicates that the data transfer control unit is writing data to the memory. “Readable” means that the program can read data from the memory, and “Reading” means that the program is reading data from the memory. When “Writable” and “Writing”, the program cannot read data from the memory or write data to the memory. In the case of “Readable” and “Reading”, the data transfer control unit cannot read data from the memory or write data to the memory.

図2に示すように、データ記憶領域125は、各バッファの状態を記憶している。図2の例は、プログラム1(プログラム200a)の書き込み領域の状態を示している。ここでは、データ記憶領域120のプログラム1の書き込み領域はN個のバッファからなっており、図2において、データ記憶領域125はN個のバッファの状態を示している。   As shown in FIG. 2, the data storage area 125 stores the state of each buffer. The example of FIG. 2 shows the state of the writing area of program 1 (program 200a). Here, the program 1 write area of the data storage area 120 is made up of N buffers, and in FIG. 2, the data storage area 125 shows the state of the N buffers.

バッファ1が書き込み可能、バッファ2が読み出し中、バッファ3、4が読み出し可能、バッファ5が書き込み中、バッファ6からバッファNが書き込み可能である。この状態は、CPU上のプログラム及びデータ転送制御部130により更新される。このように各バッファの状態を利用して、書き込みと読み出しの順番が逆転しないように制御を行う。   The buffer 1 can be written, the buffer 2 can be read, the buffers 3 and 4 can be read, the buffer 5 can be written, and the buffers 6 to N can be written. This state is updated by the program and data transfer control unit 130 on the CPU. In this way, control is performed using the state of each buffer so that the order of writing and reading does not reverse.

それぞれログデータの生成を行うプログラム200aから200mは、CPU101上で動作する。プログラム200aから200mのそれぞれは、メモリアドレス決定手段201、メモリアクセス順決定手段202、データ書き込み手段203、データ読み出し手段204を有する。   Each of the programs 200a to 200m for generating log data operates on the CPU 101. Each of the programs 200a to 200m includes a memory address determining unit 201, a memory access order determining unit 202, a data writing unit 203, and a data reading unit 204.

メモリアドレス決定手段201は、メモリ102上のデータ記憶領域120、バッファ、バッファ状態記憶領域125のアドレスを決定する。また、メモリアドレス決定手段201は、この決定したアドレス情報をデータ転送制御部130へ通知する。   The memory address determination unit 201 determines addresses of the data storage area 120, the buffer, and the buffer status storage area 125 on the memory 102. The memory address determination unit 201 notifies the data transfer control unit 130 of the determined address information.

メモリアクセス順決定手段202は、データ記憶領域120内において、ログデータを書き込む順番を決定する。アクセス順の例としては、メモリアドレスに対して連続的な順番、データの重要度に応じた順番がある。また、メモリアクセス順手段202は、この決定したアクセス順をデータ転送制御部130へ通知する。   The memory access order determination unit 202 determines the order of writing log data in the data storage area 120. As an example of the access order, there are a sequential order with respect to memory addresses and an order according to the importance of data. Further, the memory access order unit 202 notifies the data transfer control unit 130 of the determined access order.

データ書き込み手段203は、ログデータをメモリ102へ書き込む処理を行う。この書き込み処理はディスクシステムへの書き込みを要求する。しかし、ディスクシステムへの書き込み完了を待たず、メモリ102上へデータの書き込みが完了すると、書き込み処理関数の完了処理として、正常終了の戻り値を返して正常終了する。メモリ102からディスクシステム110への書き込みはデータ転送制御部130が実行するため、プログラムから見ると、メモリ102へデータを保存した時点で関数を終了することができる。プログラムがメモリ102へデータを書き込む領域は、メモリアドレス決定手段201が決定した領域とし、書き込む順番はメモリアクセス順決定手段202が決定した順とする。   The data writing unit 203 performs processing for writing log data to the memory 102. This writing process requests writing to the disk system. However, when the writing of data to the memory 102 is completed without waiting for completion of writing to the disk system, a normal processing return value is returned as the completion processing of the writing processing function, and the processing ends normally. Since the data transfer control unit 130 executes writing from the memory 102 to the disk system 110, the function can be terminated when the data is stored in the memory 102 when viewed from the program. The area in which the program writes data to the memory 102 is the area determined by the memory address determining means 201, and the writing order is the order determined by the memory access order determining means 202.

データ読み出し手段204は、ログデータをメモリ102から読み出す処理を行う。この読み出し処理は、メモリ102からのデータの読み出しが完了すると、読み出し処理関数の完了処理を行う。データを読み出す領域は、メモリアドレス決定手段201が決定した領域とし、読み出す順番はメモリアクセス順決定手段202が決定した順とする。   The data reading unit 204 performs processing for reading log data from the memory 102. In the reading process, when the reading of data from the memory 102 is completed, a reading process function is completed. The area from which data is read is the area determined by the memory address determining means 201, and the order of reading is the order determined by the memory access order determining means 202.

データ転送制御部130は、メモリ102からディスクシステム110へのデータ転送を制御する。データ転送制御部130は、メモリアドレス取得手段131と、メモリアドレス記憶手段132と、ディスク書き込み制御手段133と、ディスク読み出し制御手段136とから構成される。
メモリアドレス取得手段131は、CPU101からデータ記憶領域120及びバッファのアドレスとメモリアクセスの順番を取得し、メモリアドレス記憶手段132に登録する。
The data transfer control unit 130 controls data transfer from the memory 102 to the disk system 110. The data transfer control unit 130 includes a memory address acquisition unit 131, a memory address storage unit 132, a disk write control unit 133, and a disk read control unit 136.
The memory address acquisition unit 131 acquires the addresses of the data storage area 120 and the buffer and the memory access order from the CPU 101 and registers them in the memory address storage unit 132.

メモリアドレス記憶手段132は、データ記憶領域120及びバッファのアドレスとメモリアクセスの順番を記憶する。記憶されたアドレス情報は、ディスク書き込み制御手段133によるデータ転送のタイミング決定に利用される。   The memory address storage unit 132 stores the addresses of the data storage area 120 and the buffer and the memory access order. The stored address information is used for determining the data transfer timing by the disk writing control means 133.

ディスク書き込み制御手段133は、メモリ102からディスクシステム110へのデータ転送を制御する。より具体的には、データ記憶領域120から、バッファ単位でデータを読み出し、読み出したデータをディスクシステム110内のディスクキャッシュ112へ書き込む。   The disk writing control unit 133 controls data transfer from the memory 102 to the disk system 110. More specifically, data is read from the data storage area 120 in units of buffers, and the read data is written to the disk cache 112 in the disk system 110.

ディスク読み出し制御手段136は、メモリ102からディスクシステム110へのデータ転送を制御する。
次に、図3から図6のフローチャートを参照して、本実施の形態の全体動作について説明する。本発明では、ログデータをディスクシステムへの書き込む動作とログデータをディスクシステムから読み出す2種類の動作がある。まず、図3、図4を参照して、ディスクシステムへの書き込み動作を説明する。その後、ディスクからの読み出し動作を説明する。
The disk read control unit 136 controls data transfer from the memory 102 to the disk system 110.
Next, the overall operation of the present embodiment will be described with reference to the flowcharts of FIGS. In the present invention, there are two types of operations: writing log data to the disk system and reading log data from the disk system. First, the writing operation to the disk system will be described with reference to FIGS. Thereafter, a read operation from the disk will be described.

図3は、本実施の形態におけるCPU101の動作を示すフローチャートである。図4は、本実施の形態におけるデータ転送制御部130の動作を示すフローチャートである。   FIG. 3 is a flowchart showing the operation of the CPU 101 in the present embodiment. FIG. 4 is a flowchart showing the operation of the data transfer control unit 130 in the present embodiment.

本実施の形態では、図1に示した複数の装置が互いに連携して動作する。同時に複数の装置が処理を行っているため、それぞれの動作を個別のフローチャートを参照して説明する。フローチャートは個別に示すが、他装置への動作開始の契機の通知や、他装置からのデータ書き込み状態を参照することによって、本実施形態は互いの装置が連携して動作して効果を達成するものである。   In the present embodiment, a plurality of devices shown in FIG. 1 operate in cooperation with each other. Since a plurality of apparatuses perform processing simultaneously, each operation will be described with reference to individual flowcharts. Although the flowchart is shown individually, this embodiment achieves an effect by operating each other's devices in cooperation by notifying other devices of the start of operation and referring to the data write state from other devices. Is.

はじめに、図3を参照して、CPU101の動作を説明する。   First, the operation of the CPU 101 will be described with reference to FIG.

はじめに、ステップS501、S502で初期化作業を行う。ステップS501において、CPU101が、データ転送制御部130に対して、データ記憶領域120と各バッファのアドレスを通知する。バッファについては、アドレスでなくとも、各バッファ間の境界を決定できる情報であればよく、例えばデータ記憶領域120の開始アドレスと各バッファ容量でもよい。なお、本説明においては、図1に示すようにデータ記憶領域120は、N個のバッファに分割され、それぞれにID=1〜Nが割り当てられているとする。また、メモリにアクセスする順番を決定する。これら決定したメモリに関する情報は、データ転送制御部130に通知する。   First, initialization is performed in steps S501 and S502. In step S501, the CPU 101 notifies the data transfer control unit 130 of the data storage area 120 and the address of each buffer. The buffer may be information that can determine the boundary between the buffers, not the address, and may be, for example, the start address of the data storage area 120 and each buffer capacity. In this description, as shown in FIG. 1, the data storage area 120 is divided into N buffers, and IDs 1 to N are assigned to the respective buffers. Also, the order of accessing the memory is determined. Information regarding the determined memory is notified to the data transfer control unit 130.

ステップS502において、バッファ状態記憶領域125の初期化を行う。最初にアクセスを開始するバッファ(図3の例では、ID=1)を書き込み中とし、他のバッファ状態を書き込み可能に設定する。   In step S502, the buffer state storage area 125 is initialized. The buffer that starts the access first (ID = 1 in the example of FIG. 3) is being written, and other buffer states are set to be writable.

ステップS501、S502での初期設定が終了すると、ステップS503以降でデータを転送する。ステップS503において、アクセス順に従い、バッファの状態を確認する。ステップS504において、状態が書き込み可能であれば、ステップS507において、状態を書き込み中へ更新する。その後、ステップS508へ移行する。ステップS504で読み出し中または読み出し可能であった場合は、ステップS505において、データをプログラム内のキャッシュに一時保存する。その後、ある時間が経過した後に、再度バッファ状態を確認する(ステップS503へ戻る)。このような処理により、メモリからディスクへ転送が終了していないデータに新たなデータを上書きすることを防ぐことができる。また、ステップS505において、メモリ102上にデータ記憶領域を新たに割り当てて、この拡張領域に一時的にデータを保存することもできる。   When the initial settings in steps S501 and S502 are completed, data is transferred in step S503 and subsequent steps. In step S503, the buffer status is confirmed according to the access order. If the state is writable in step S504, the state is updated to write in step S507. Thereafter, the process proceeds to step S508. If the data is being read or can be read in step S504, the data is temporarily stored in a cache in the program in step S505. Thereafter, after a certain time has elapsed, the buffer state is confirmed again (return to step S503). Such processing can prevent new data from being overwritten on data that has not been transferred from the memory to the disk. In step S505, a data storage area can be newly allocated on the memory 102, and data can be temporarily stored in the expansion area.

バッファの状態がステップS504において、書き込み中であった場合は、ステップS508でバッファサイズに十分な空きがあるか確認する。十分な空きがある場合は、ステップS509において、ログデータをメモリへ書き込む。空き容量が無い場合は、ステップS511において、現在アクセスしているバッファの状態を読み出し可能へ更新する。ステップS512において、アクセス順に基づく次のバッファの状態を確認する。次のバッファの状態が書き込み可能である場合は、次のバッファの状態を書き込み中に更新する(ステップS514)。そしてステップS509へ移行する。次バッファの状態が書き込み可能でない場合は、ある時間経過後に再度バッファ状態を確認する(ステップS503へ戻る)。このようなログデータのメモリへの記憶をログ収集が終了するまで継続する(ステップS510)。   If the buffer status is in writing in step S504, it is checked in step S508 whether there is sufficient space in the buffer size. If there is sufficient space, the log data is written to the memory in step S509. If there is no free space, the state of the currently accessed buffer is updated to be readable in step S511. In step S512, the state of the next buffer based on the access order is confirmed. If the state of the next buffer is writable, the state of the next buffer is updated during writing (step S514). Then, control goes to a step S509. If the state of the next buffer is not writable, the buffer state is confirmed again after a certain time has elapsed (return to step S503). Such storage of log data in the memory is continued until log collection is completed (step S510).

次に図4を参照して、データ転送制御部130の動作を説明する。   Next, the operation of the data transfer control unit 130 will be described with reference to FIG.

ステップS531において、メモリアドレス取得手段131が、CPU101からデータ記憶領域120とバッファのアドレスとメモリへのアクセス順序を取得する。このアドレス情報を、メモリアドレス記憶手段132に登録する。   In step S531, the memory address acquisition unit 131 acquires the data storage area 120, the address of the buffer, and the access order to the memory from the CPU 101. This address information is registered in the memory address storage unit 132.

ステップS532において、ディスク書き込み制御手段133は、メモリ102からディスクシステム110へ転送するデータのアドレスをメモリアドレス記憶手段132から取得する。   In step S 532, the disk writing control unit 133 acquires the address of data to be transferred from the memory 102 to the disk system 110 from the memory address storage unit 132.

またステップS532において、メモリアクセス記憶手段132に記憶された、メモリアクセス順決定手段202が決定したメモリのアクセス順に従い、次のアクセス対象となるバッファの状態をバッファ状態記憶領域125から取得する。   In step S532, the state of the next buffer to be accessed is acquired from the buffer state storage area 125 in accordance with the memory access order determined by the memory access order determination unit 202 stored in the memory access storage unit 132.

ステップS533において、バッファ状態が読み出し可能であるか判断する。読み出し可能でない場合は、ある時間が経過した後に再度バッファの状態を確認する(ステップS532へ戻る)。バッファ状態が読み出し可能である場合は、ステップS534において、バッファ状態を読み出し中に更新する。   In step S533, it is determined whether the buffer state can be read. If it is not readable, the buffer status is confirmed again after a certain period of time (returns to step S532). If the buffer status can be read, the buffer status is updated during reading in step S534.

次にステップS535において、メモリ102のデータ記憶領域120の該当バッファからデータを読み出す。ステップS536において、データをディスクシステム110のディスクキャッシュ112へデータを書き込む。ステップS535、S536によるデータ転送は、一回の転送データサイズがバス帯域等で制限されている場合は複数回に分けてデータを転送することもできる。データ転送が完了すると、ステップS537において、バッファ状態を書き込み可能に更新する。このようなメモリからディスクへのデータの転送をログ収集が終了するまで継続する(ステップS538)。   In step S535, data is read from the corresponding buffer in the data storage area 120 of the memory 102. In step S536, the data is written into the disk cache 112 of the disk system 110. In the data transfer in steps S535 and S536, when the transfer data size at one time is limited by the bus bandwidth or the like, the data can be transferred in a plurality of times. When the data transfer is completed, the buffer state is updated to be writable in step S537. The data transfer from the memory to the disk is continued until the log collection is completed (step S538).

このように、メモリ120がデータを書き込む領域とメモリへの書き込み順を固定することで、CPU101とデータ転送制御部130でCPUがデータを書き込んだメモリアドレスを共有でき、CPU101がデータを書き込んだアドレスを通知するDMA転送要求を省略することができる。   In this way, by fixing the area in which the memory 120 writes data and the order in which data is written to the memory, the CPU 101 and the data transfer control unit 130 can share the memory address to which the CPU has written the data, and the address to which the CPU 101 has written the data. Can be omitted.

また、データ記憶領域120の空き容量の管理は、バッファ状態記憶領域125で行っているため、従来ではメモリの空き状況管理で必要であったDMA転送完了通知を省略することができる。   In addition, since the free capacity management of the data storage area 120 is performed in the buffer status storage area 125, it is possible to omit the DMA transfer completion notification that was conventionally necessary for the management of the free state of the memory.

また、バッファ状態記憶領域125でバッファ状態を記憶し、この状態をデータの書き込み主体であるCPUと、データの読み出し主体であるデータ転送制御部が共有することによって、CPUからメモリへデータを書き込む際にまだディスクへの転送が完了していないデータへの上書きと、メモリからディスクへ転送するデータが重複することを避けることができる。   In addition, the buffer state is stored in the buffer state storage area 125, and this state is shared by the CPU that is the data writing entity and the data transfer control unit that is the data reading entity, thereby writing data from the CPU to the memory. In addition, it is possible to avoid overwriting data that has not yet been transferred to the disk and duplication of data transferred from the memory to the disk.

次に図5、図6を参照して、ディスクに保存したログデータを読み出す動作手順を説明する。   Next, an operation procedure for reading log data stored on the disk will be described with reference to FIGS.

図5は、ディスク読み出し時のCPU101の動作を示すフローチャートである。図6は、ディスク読み出し時のデータ転送制御部130の動作を示すフローチャートである。基本的な動作はこれまでに説明したディスクへ書き込み処理の逆の動作となる。   FIG. 5 is a flowchart showing the operation of the CPU 101 when reading the disk. FIG. 6 is a flowchart showing the operation of the data transfer control unit 130 when reading the disk. The basic operation is the reverse of the process of writing to the disc described above.

図5を参照してディスク読み出し時のCPU101の動作を説明する。   With reference to FIG. 5, the operation of the CPU 101 when reading the disk will be described.

はじめに、ステップS631、S632において、初期化を行う。この動作は、図3でのステップS501、S502と同じ処理である。この初期化処理では、プログラムが読み出すログデータを指定し、データ転送制御部130へ通知する。読み出すログデータの指定は、ファイル名や、ディスク内のアドレスを指定することで実現できる。続いて実行するステップS633からS638は、図4のステップS532からS538と基本は同じである。異なる点は、ステップS535のメモリからデータを読み出しと、ステップS536のディスクシステムのディスクキャッシュへのデータの書き込みが、ステップS636のメモリからのデータ読み出しに変更されている点である。   First, initialization is performed in steps S631 and S632. This operation is the same processing as steps S501 and S502 in FIG. In this initialization process, log data to be read by the program is designated and notified to the data transfer control unit 130. The log data to be read can be specified by specifying a file name or an address in the disk. Subsequent steps S633 to S638 are basically the same as steps S532 to S538 in FIG. The difference is that the data read from the memory in step S535 and the data write to the disk cache of the disk system in step S536 are changed to the data read from the memory in step S636.

図6を参照して、ディスク読み出し時のデータ転送制御部130の動作を説明する。   With reference to FIG. 6, the operation of the data transfer control unit 130 at the time of disk reading will be described.

はじめに、ステップS601において、初期化を行う。この動作は、図4でのステップS531と同じ処理である。続いて実行するステップS603からステップS615は、図3のステップS503からステップS514と基本は同じである。異なる点は、ステップS608とステップS609の間に、ステップS615として、ログデータのディスクからの読み出しを追加したことである。   First, in step S601, initialization is performed. This operation is the same processing as step S531 in FIG. Subsequent steps S603 to S615 are basically the same as steps S503 to S514 in FIG. The difference is that, in step S615, reading of log data from the disk is added between step S608 and step S609.

[第2の実施形態]
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。図7に示すように、本発明の第2の実施の形態は、図1に示す第1の実施の形態に加えて、データ転送制御部190に転送データ記憶手段135とデータ重複フィルタ手段134を有する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described in detail with reference to the drawings. As shown in FIG. 7, in the second embodiment of the present invention, in addition to the first embodiment shown in FIG. 1, a transfer data storage unit 135 and a data duplication filter unit 134 are added to the data transfer control unit 190. Have.

データ重複フィルタ手段134は、メモリ102から読み出したデータが既に過去に転送済みではないか判断し、既に転送済みの場合は、ディスク書き込み制御手段133にディスクシステム110への書き込みを行わせない。過去に転送済みであるかは、ログデータの場合は、タイムスタンプを参照して判断することができる。   The data duplication filter unit 134 determines whether the data read from the memory 102 has already been transferred in the past. If the data has already been transferred, the data write control unit 133 does not write to the disk system 110. Whether it has been transferred in the past can be determined by referring to a time stamp in the case of log data.

転送データ記憶手段135は、転送したデータをある期間記憶する。転送データ記憶手段135に記憶されているデータを基に、データ重複フィルタ手段134が、メモリ102から読み出したデータの重複を判断する。   The transfer data storage unit 135 stores the transferred data for a certain period. Based on the data stored in the transfer data storage unit 135, the data duplication filter unit 134 determines duplication of data read from the memory 102.

次に、図8を参照して本発明の第2の実施の形態の動作を説明する。図8は第2の実施の形態におけるデータ転送制御部190の動作を示すフローチャートである。CPUの動作は既に説明した図3での動作と同じであるので、ここでの説明は省略する。   Next, the operation of the second exemplary embodiment of the present invention will be described with reference to FIG. FIG. 8 is a flowchart showing the operation of the data transfer control unit 190 in the second embodiment. Since the operation of the CPU is the same as that already described with reference to FIG. 3, the description thereof is omitted here.

ステップS121において、メモリアドレス取得手段131が、CPU101からデータ記憶領域120とバッファのアドレス、およびメモリアクセスの順序を取得する。これらアドレス情報を、メモリアドレス記憶手段132に登録する。   In step S <b> 121, the memory address acquisition unit 131 acquires the data storage area 120, the buffer address, and the memory access order from the CPU 101. The address information is registered in the memory address storage unit 132.

ステップS122において、メモリアドレス記憶手段132に登録されているメモリアクセス順序に従い、読み出すバッファのメモリアドレスを指定する。   In step S122, the memory address of the buffer to be read is designated according to the memory access order registered in the memory address storage unit 132.

ステップS123において、ディスク書き込み制御手段133は、メモリアドレス記憶手段132で指定されたアドレスからメモリ102のデータを読み出す。CPU101からメモリへの書き出し順とディスク書き込み制御手段133がメモリからデータを読み出す順は、CPUと転送制御部133で順序を共有していればよい。   In step S123, the disk write control unit 133 reads data in the memory 102 from the address specified by the memory address storage unit 132. The order in which the CPU 101 writes data to the memory and the order in which the disk writing control means 133 reads data from the memory only have to be shared by the CPU and the transfer control unit 133.

ステップS124において、データ重複フィルタ手段134が、メモリから読み出したデータが新規データであるか判断する。この判断は、転送データ記憶手段135に記憶してあるデータと一致しない場合は、データは新規であると判断する。新規ではなく、既に転送済みと判断された場合は、時間をおいて再度同じメモリアドレスからデータを読み出す。   In step S124, the data duplication filter unit 134 determines whether the data read from the memory is new data. If this determination does not match the data stored in the transfer data storage means 135, it is determined that the data is new. If it is determined that the data has not been transferred and has already been transferred, data is read again from the same memory address after a certain time.

ステップS124において、データ記憶領域120から読み出したデータが新規と判断された場合は、このデータをディスクキャッシュ112へ書き込む(ステップS125)。転送したデータは、ステップS126において、転送データ記憶手段135に記憶される。この転送データ記憶手段135に記憶されたデータを消去するタイミングとしては、データ記憶領域120のデータサイズ転送後、一定時間経過後、データ転送回数やデータ転送サイズが閾値を超えたタイミングがある。   If it is determined in step S124 that the data read from the data storage area 120 is new, the data is written to the disk cache 112 (step S125). The transferred data is stored in the transfer data storage unit 135 in step S126. The timing for erasing the data stored in the transfer data storage means 135 includes the timing at which the number of data transfers and the data transfer size exceed a threshold after a certain time has elapsed after the transfer of the data size in the data storage area 120.

その後、ステップS127において、バッファ状態を書き込み可能へ更新する。   Thereafter, in step S127, the buffer state is updated to be writable.

上記処理をログ収集が終了するまで継続する(ステップS128)。   The above process is continued until the log collection is completed (step S128).

このように、データの重複をデータ転送制御部190が確認することで、メモリからデータを読み出す前に、データ転送制御部190がバッファ状態記憶領域125へアクセスする処理を省略することができる。このため、データ転送のレイテンシ(latency)を抑えることができる。   As described above, the data transfer control unit 190 confirms the duplication of data, so that the process of the data transfer control unit 190 accessing the buffer state storage area 125 before reading the data from the memory can be omitted. For this reason, the latency of data transfer can be suppressed.

[第3の実施形態]
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
[Third Embodiment]
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.

図9は、本発明の第3の実施の形態の構成を示すブロック図である。図9に示す本発明の第3の実施の形態は、図1のデータ転送制御部と比べて、データ転送制御部140に転送間隔制御手段141を有する点が異なる。   FIG. 9 is a block diagram showing the configuration of the third exemplary embodiment of the present invention. The third embodiment of the present invention shown in FIG. 9 is different from the data transfer control unit shown in FIG. 1 in that the data transfer control unit 140 includes a transfer interval control unit 141.

転送間隔制御手段141以外の装置は第1の実施の形態と同じであるため、ここでの説明は省略する。   Since the apparatus other than the transfer interval control unit 141 is the same as that of the first embodiment, description thereof is omitted here.

転送間隔制御手段141は、ディスク書き込み制御手段133に対して、メモリ102からディスクシステム110へのデータ転送開始のトリガを通知する。第1の実施の形態では、ディスク書き込み制御手段133が自立的にメモリをアクセスしていたが、本第3の実施形態は転送間隔制御手段141からのトリガでアクセスする点が異なる。このトリガを通知する時間間隔は、ディスク書き込み制御手段133がデータ記憶領域120内のバッファにデータ読み込みアクセスをした際に、対象バッファがCPU101からデータ書き込み中であった場合は、次回のトリガ発生までの時間間隔を長くする。反対に、ディスク書き込み制御手段133がデータ記憶領域120内のバッファにデータ読み込みアクセスをした際に、対象バッファがCPU101からのデータ書き込みが終了していた場合は、次回のトリガ発生までの時間間隔を短くする。このように、データ記憶領域120へのデータ読み込みタイミングを制御することで、データ記憶領域120からディスクシステム110への転送間隔が長くなることによるデータ記憶領域120の容量溢れと、転送要求間隔が短くなることで、まだ書き込み中のバッファに対して何度も読み込み要求を出すことによるメモリアクセス負荷の増大を抑えることが可能となる。   The transfer interval control unit 141 notifies the disk write control unit 133 of a trigger for starting data transfer from the memory 102 to the disk system 110. In the first embodiment, the disk write control means 133 independently accesses the memory, but the third embodiment is different in that it is accessed by a trigger from the transfer interval control means 141. The time interval for notifying this trigger is the time until the next trigger occurs when the disk write control means 133 accesses the buffer in the data storage area 120 and the target buffer is writing data from the CPU 101. Increase the time interval. On the other hand, when the disk write control unit 133 accesses the buffer in the data storage area 120 to read data, if the target buffer has finished writing data from the CPU 101, the time interval until the next trigger is generated. shorten. In this way, by controlling the data read timing to the data storage area 120, the capacity of the data storage area 120 overflows due to an increase in the transfer interval from the data storage area 120 to the disk system 110, and the transfer request interval is shortened. As a result, it is possible to suppress an increase in the memory access load caused by repeatedly issuing read requests to the buffer that is still being written.

続いて、図10を参照して、本発明の第3の実施の形態の動作について説明する。図10は、本発明の第3の実施の形態のデータ転送制御部140の動作を示すフローチャートである。   Next, the operation of the third exemplary embodiment of the present invention will be described with reference to FIG. FIG. 10 is a flowchart illustrating the operation of the data transfer control unit 140 according to the third embodiment of this invention.

ステップS221とステップS222において初期化処理を行う。   Initialization processing is performed in steps S221 and S222.

ステップS221において、メモリアドレス取得手段131が、CPU101からメモリ102上のデータ記憶領域120とバッファのアドレス情報、メモリアクセス順序を取得し、このアドレス情報をメモリアドレス記憶手段132へ登録する。   In step S <b> 221, the memory address acquisition unit 131 acquires the address information and the memory access order of the data storage area 120 and the buffer on the memory 102 from the CPU 101, and registers this address information in the memory address storage unit 132.

ステップS222において、データ転送要求を発行するまでの待ち時間であるtを初期値tに設定する。この待ち時間tは、時間に変換できる数値であればよく、例えばクロック数でもよい。 In step S222, it sets a t a waiting time until issuing a data transfer request to the initial value t 0. The waiting time t may be a numerical value that can be converted into time, for example, the number of clocks.

ステップS223において、メモリアクセス順に従い、読み出すべきバッファの状態を取得する。ステップS224で読み出し可能でない場合は、ステップS225において時間(Δt)だけ待つ。その後、ステップS206において、前回のデータ転送開始トリガを発行してからの経過時間を更新する。 In step S223, the state of the buffer to be read is acquired according to the memory access order. If it is not possible to read in step S224, the process waits for time (Δt 1 ) in step S225. Thereafter, in step S206, the elapsed time since the previous data transfer start trigger is issued is updated.

ステップS224で、読み出し可能と判断されたバッファに対しては、ステップS227において、バッファ状態を読み出し中に更新する。続いて、ステップS228において、データをメモリ102から読み出す。ステップS229において、メモリから読み出したデータをディスクキャッシュ112へ書き込む。このデータの転送サイズがバス規格などにより制限されている場合は、データをすべて転送するまで、このデータ転送を繰り返す。その後、ステップS230において、バッファ状態を書き込み可能に更新する。   For the buffer that is determined to be readable in step S224, the buffer status is updated during reading in step S227. Subsequently, data is read from the memory 102 in step S228. In step S229, the data read from the memory is written to the disk cache 112. When the transfer size of this data is limited by the bus standard or the like, this data transfer is repeated until all the data is transferred. Thereafter, in step S230, the buffer state is updated so as to be writable.

ステップS231において、トリガ間の経過時間が前回と同じか比較する。ステップS231の判定により値が異なる場合、つまり、ステップS225で待ちが入った場合は、ステップS234において、経過時間tだけ次回も待つ。ステップS231の判定により前回と同じ場合、つまり経過時間の増分が無かった場合は、ステップS232において、ステップS234で待つ時間をΔt短縮する。この待ち時間短縮により、ログ収集機能からログ書き込み領域120への書き込み速度が増加した場合でも、データ転送要求の発行間隔を短くすることでメモリが溢れることを防ぐことができる。ステップS232での、待ち時間の短縮は、ある時間だけ短くする引き算の処理に限らず、例えば時間を半分にするなどしてもよい。 In step S231, it is compared whether the elapsed time between triggers is the same as the previous time. If the values differ depending on the determination in step S231, that is, if the process waits in step S225, the next time is waited for the elapsed time t in step S234. Same as the previous is determined in step S231, if that is the elapsed time increment was not, in step S232, a time to wait in step S234 Delta] t 2 shortened. By reducing the waiting time, even when the writing speed from the log collection function to the log writing area 120 is increased, it is possible to prevent the memory from overflowing by shortening the data transfer request issuance interval. The shortening of the waiting time in step S232 is not limited to the subtraction process of shortening by a certain time, and for example, the time may be halved.

ログ収集を終了する際は、ステップS233で判定され、データ転送発行の処理を終了する。   When the log collection is finished, it is determined in step S233, and the data transfer issuance process is finished.

以上で説明したように、本発明の第3の実施の形態では、転送間隔制御手段141が、CPU101からメモリ102へのデータ書き込み状況に応じて、データ記憶領域120へのデータ読み込みタイミングを制御することができる。これにより、CPU101からの書き込み頻度が多い場合は、データ記憶領域120からディスクシステム110への転送間隔を短くすることで、データ記憶領域120の容量溢れることによるログデータの欠落を防ぐことができる。また、CPU101からメモリ102への書き込み頻度が少ない場合は、転送要求間隔を長くすることで、まだ書き込み中のバッファに対して何度も読み込み要求を出すことによるメモリアクセス負荷の増大を抑えることが可能となる。   As described above, in the third embodiment of the present invention, the transfer interval control unit 141 controls the data read timing to the data storage area 120 according to the data write status from the CPU 101 to the memory 102. be able to. As a result, when the writing frequency from the CPU 101 is high, the transfer interval from the data storage area 120 to the disk system 110 is shortened to prevent the log data from being lost due to the capacity of the data storage area 120 overflowing. Further, when the writing frequency from the CPU 101 to the memory 102 is low, it is possible to suppress an increase in the memory access load caused by issuing a read request to the buffer that is still being written by increasing the transfer request interval. It becomes possible.

[第4の実施形態]
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。
[Fourth Embodiment]
Next, a fourth embodiment of the present invention will be described in detail with reference to the drawings.

図11は、本発明の第4の実施の形態のデータ記憶システムの構成を示すブロック図である。図11に示す第4の実施の形態のデータ転送制御部150は、図1に示す第1の実施の形態のデータ転送制御部と比べてコマンドモニタ手段151を有する点で異なる。   FIG. 11 is a block diagram showing the configuration of the data storage system according to the fourth embodiment of this invention. A data transfer control unit 150 according to the fourth embodiment shown in FIG. 11 is different from the data transfer control unit according to the first embodiment shown in FIG.

コマンドモニタ手段151以外の装置は第1の実施の形態と同じであるため、ここでの説明は省略する。   Since the apparatus other than the command monitoring unit 151 is the same as that of the first embodiment, the description thereof is omitted here.

コマンドモニタ手段151は、バス105上のコマンドをモニタする。コマンドモニタ手段151は、CPU101からデータ記憶領域120への書き込み命令をモニタし、その書き込みアドレスが新たなバッファ領域へ入ると、ディスク書き込み制御手段133に対してデータ転送を要求する。   Command monitor means 151 monitors commands on bus 105. The command monitor unit 151 monitors a write command from the CPU 101 to the data storage area 120, and when the write address enters a new buffer area, requests the disk write control unit 133 to transfer data.

図12を参照して、本発明の第4の実施の形態の動作を説明する。第4の実施の形態では、CPUの動作は、本発明の第1の実施の形態における動作と同じであるため、ここでは、CPU101の動作の説明は省略し、データ転送制御部150の動作を説明する。   The operation of the fourth embodiment of the present invention will be described with reference to FIG. In the fourth embodiment, since the operation of the CPU is the same as that in the first embodiment of the present invention, the description of the operation of the CPU 101 is omitted here, and the operation of the data transfer control unit 150 is performed. explain.

コマンドモニタ手段151を有するデータ転送制御部150の動作を図12のフローチャートを参照して説明する。   The operation of the data transfer control unit 150 having the command monitoring unit 151 will be described with reference to the flowchart of FIG.

ステップS301において、メモリアドレス取得手段131は、CPU101からデータ記憶領域120とその中にあるバッファのアドレス、メモリアクセス順を取得し、メモリアドレス記憶手段132に登録する。   In step S <b> 301, the memory address acquisition unit 131 acquires the address of the data storage area 120 and the buffer in the data storage area and the memory access order from the CPU 101 and registers them in the memory address storage unit 132.

ステップS302において、コマンドモニタ手段151は、バス105上のコマンドをモニタする。モニタしたコマンドはステップS303とS304において、データ転送開始をディスク書き込み制御手段133へ通知するか判断する。   In step S <b> 302, the command monitor unit 151 monitors commands on the bus 105. In step S303 and S304, the monitored command determines whether to notify the disk write control means 133 of the start of data transfer.

ステップS303では、ステップS302でモニタされたコマンド内容が、CPU101からデータ記憶領域120に対する書き込み命令であるか判断する。コマンドが書き込みであるかは、コマンド内の命令タイプから判断する。書き込み先のアドレスがデータ記憶領域120内であるかは、ステップS301でログ収集機能から通知されるデータ記憶領域120のアドレスと、モニタしたコマンド内の処理対象アドレスを比較して判断する。   In step S303, it is determined whether the command content monitored in step S302 is a write command for the data storage area 120 from the CPU 101. Whether the command is a write is determined from the instruction type in the command. Whether the write destination address is in the data storage area 120 is determined by comparing the address of the data storage area 120 notified from the log collection function in step S301 with the processing target address in the monitored command.

データ記憶領域120には、ログデータしか書き込まないため、データの中身を見ることなく、コマンドが書き込み命令であることと、書き込み先のメモリアドレスがデータ記憶領域120内であることが分かれば、コマンドモニタ手段151は、CPU101からメモリ102上にログデータの書き込みが発生したことを検知できる。   Since only log data is written in the data storage area 120, the command is a write command and the memory address of the write destination is in the data storage area 120 without looking at the contents of the data. The monitor unit 151 can detect that log data has been written on the memory 102 from the CPU 101.

ステップS303での判定の結果、コマンドがCPU101からデータ記憶領域120への書き込み要求でないと判断すると、ステップS302へ戻る。ステップS303での判定の結果、コマンドがCPU101からデータ記憶領域120への書き込み要求であると判断すると、ステップS304において、バッファへの書き込みが終了したか判断する。   If the result of determination in step S303 is that the command is not a write request from the CPU 101 to the data storage area 120, processing returns to step S302. As a result of the determination in step S303, if it is determined that the command is a write request from the CPU 101 to the data storage area 120, it is determined in step S304 whether writing to the buffer has been completed.

CPU101からデータ記憶領域120への書き込みは、メモリアドレスに対して連続的に行われる。このため、書き込み命令内のアドレスが新たなバッファ領域内のアドレスであれば、その前のバッファに対するログデータの書き込みが終了したと判断できる。
例えば、モニタしたコマンド内の処理対象となるアドレスがバッファID=2内だったものが、あるときのステップS304の判定でバッファID=3内のアドレスになった場合は、バッファID=2へのログデータ書き込みが終了したと判断できる。
Writing from the CPU 101 to the data storage area 120 is continuously performed on memory addresses. For this reason, if the address in the write command is an address in a new buffer area, it can be determined that the writing of log data to the previous buffer has been completed.
For example, if the address to be processed in the monitored command is in the buffer ID = 2, but the determination in step S304 at that time becomes the address in the buffer ID = 3, the buffer ID = 2 is set. It can be determined that the log data writing has been completed.

ステップS304で、バッファへのログデータ書き込みが終了したと判断されたバッファに対するデータ転送要求をディスク書き込み制御手段133へ通知する。   In step S304, the disk write control unit 133 is notified of a data transfer request for the buffer for which it is determined that writing of log data to the buffer has been completed.

例えば、ステップS304において、バッファID=2のデータ書き込みが終了したと判断されると、ステップS305において、バッファ状態を読み出し中に更新する。ステップS306において、メモリからバッファID=2のデータを読み出す。ステップS307において、読み出したデータをディスクキャッシュ112へ書き込む。その後ステップS308において、バッファ状態を書き込み可能に更新する。ステップ302からステップS308までの動作はログ収集が終了するまで行われる(ステップS309)。ステップS304において、バッファへの書き込みが終了していないと判断された場合は、ステップS302へ戻る。   For example, if it is determined in step S304 that the data writing of the buffer ID = 2 has been completed, the buffer state is updated during reading in step S305. In step S306, data with buffer ID = 2 is read from the memory. In step S307, the read data is written to the disk cache 112. In step S308, the buffer state is updated so as to be writable. The operations from step 302 to step S308 are performed until the log collection is completed (step S309). If it is determined in step S304 that writing to the buffer has not ended, the process returns to step S302.

以上で説明した第4の実施の形態の効果について説明する。   The effects of the fourth embodiment described above will be described.

第3の実施の形態では、転送間隔制御手段141が、過去のトリガ発生間隔に基づき、トリガの発生タイミングを決定していた。このため、急激にデータ書き込み速度が変更するなど、過去の状況と異なる場合に、バッファが一杯になってからメモリ読み込みまでの間隔が長くなったり、バッファが一杯になっていないにも関わらず、メモリ読み込み要求が頻繁に発生したりすることが考えられる。   In the third embodiment, the transfer interval control unit 141 determines the trigger generation timing based on the past trigger generation interval. For this reason, when the data writing speed changes suddenly, etc., it differs from the past situation, even though the buffer is full and the memory read interval is long or the buffer is not full, It is possible that memory read requests occur frequently.

これに対して、本第4の実施形態では、コマンドモニタ手段151が、バス105上の命令をモニタしているため、バッファへのログデータの書き込みが一杯になったタイミングで的確にメモリからディスクシステムへのデータ転送要求を発行することができる。このため、バッファが一杯になってからメモリ読み込みまでの間隔が長くなったり、バッファが一杯になっていないにも関わらず、メモリ読み込み要求が頻繁に発生したりすることを防ぐことができる。   On the other hand, in the fourth embodiment, since the command monitoring unit 151 monitors the instruction on the bus 105, the log data is written from the memory to the disk accurately when the writing of the log data to the buffer becomes full. A data transfer request to the system can be issued. For this reason, it is possible to prevent the interval from the time when the buffer is full until the memory is read from being long, or the occurrence of frequent memory read requests even though the buffer is not full.

[第5の実施形態]
次に、本発明の第5の実施の形態について、図面を参照して説明する。
[Fifth Embodiment]
Next, a fifth embodiment of the present invention will be described with reference to the drawings.

図13は、本発明の第5の実施の形態の構成を示すブロック図である。   FIG. 13 is a block diagram showing a configuration of the fifth exemplary embodiment of the present invention.

本発明の第5の実施の形態は、図1に示した第1の実施の形態に加えて、データ転送制御部にデータ転送先選択手段161を備える点と、複数のディスクシステム110a,110bを備える点が特徴である。データ転送先選択手段161以外は、第1の実施の形態と同じであるので、ここではデータ転送先選択手段161のみを説明し、他の説明は省略する。図13おいて、ディスクシステム110bの内部構成が示されていないが、その構成はディスクシステム110aと同一である。   In the fifth embodiment of the present invention, in addition to the first embodiment shown in FIG. 1, a data transfer control unit includes a data transfer destination selection means 161, and a plurality of disk systems 110a and 110b are provided. The point to be prepared is a feature. Since the configuration other than the data transfer destination selection unit 161 is the same as that of the first embodiment, only the data transfer destination selection unit 161 will be described here, and the other description will be omitted. In FIG. 13, the internal configuration of the disk system 110b is not shown, but the configuration is the same as that of the disk system 110a.

データ転送先選択手段161は、ディスク書き込み制御手段133がディスクシステム110へデータを書き込む際に、その書き込み先ディスクシステムを選択する。書き込み先ディスクシステムを選択する基準としては、データの重要度やデータが生成された時期で分ける方法がある。例えば、データの重要度が高いデータはディスクシステム110aへ保存し、データの優先度が低いデータはディスクシステム110bへ保存することができる。   The data transfer destination selection unit 161 selects the write destination disk system when the disk write control unit 133 writes data to the disk system 110. As a criterion for selecting a write destination disk system, there is a method of dividing by the importance level of data and the time when the data is generated. For example, data with high data importance can be stored in the disk system 110a, and data with low data priority can be stored in the disk system 110b.

図14を参照して、本発明の第5の実施の形態の動作について説明する。図14は、データ転送制御部160の動作を示すフローチャートである。第5の実施の形態におけるCPUの動作は、第1の実施の形態におけるCPUの動作と同じであるため、ここでの説明は省略する。   The operation of the fifth embodiment of the present invention will be described with reference to FIG. FIG. 14 is a flowchart showing the operation of the data transfer control unit 160. Since the operation of the CPU in the fifth embodiment is the same as the operation of the CPU in the first embodiment, a description thereof is omitted here.

図15に示すデータ転送制御部160の動作は、第1の実施の形態での動作に加えて、ステップS535とステップS536の間にステップS401を有する。ステップS401においては、データ転送先選択手段161が、メモリ102から読み出したデータ内容に応じて、書き込むディスクシステムを選択する。また、ステップS533でバッファ状態が読み出し可能でない場合に、一定時間経過後、バッファ状態を確認するステップS402を経てステップS533に戻る点が異なる。   The operation of the data transfer control unit 160 shown in FIG. 15 includes step S401 between step S535 and step S536 in addition to the operation in the first embodiment. In step S401, the data transfer destination selection unit 161 selects a disk system to be written in accordance with the data content read from the memory 102. In addition, when the buffer state is not readable in step S533, the process returns to step S533 through step S402 for checking the buffer state after a predetermined time has elapsed.

以上で説明した第5の実施の形態の効果について説明する。   The effects of the fifth embodiment described above will be described.

第5の実施の形態では、データ転送先選択手段161が、データの重要度により、転送先を選択できる。このため、重要度が高いデータは信頼性が高いディスクシステムへ、重要度が低いデータは信頼性が低いディスクシステムへ転送することで、ディスクシステムのコストを削減することができるようになる。   In the fifth embodiment, the data transfer destination selection unit 161 can select a transfer destination according to the importance of data. Therefore, it is possible to reduce the cost of the disk system by transferring data with high importance to a disk system with high reliability and data with low importance to a disk system with low reliability.

また、バッファごとに転送先のディスクシステムを決めておくことでも同様の効果を得ることができる。この場合は、CPUがデータをメモリにデータを書き込む際に、どのバッファに書き込むか選択する手段が必要となる。これにより、データ転送制御部160が、ステップS401でデータ内容をモニタしなくてもバッファIDをモニタすれば、転送先のディスクシステムを決定することができる。   The same effect can also be obtained by determining the transfer destination disk system for each buffer. In this case, when the CPU writes data into the memory, a means for selecting which buffer to write is necessary. Thus, if the data transfer control unit 160 monitors the buffer ID without monitoring the data contents in step S401, the transfer destination disk system can be determined.

[第6の実施形態]
次に、図15を参照して、本発明の第6の実施の形態について説明する。図15は、本発明の第6の実施の形態の構成を示すブロック図である。図15は、ログ収集の管理対象となる管理対象コンピュータ11と、ログデータを分析するリモート管理用コンピュータ12と、ログデータを記憶するディスクドライブがリモートディスクノード13として別ノードで構成されているログデータ記憶システムを示す。
[Sixth Embodiment]
Next, a sixth embodiment of the present invention will be described with reference to FIG. FIG. 15 is a block diagram showing the configuration of the sixth exemplary embodiment of the present invention. FIG. 15 shows a log in which a managed computer 11 that is a management target of log collection, a remote management computer 12 that analyzes log data, and a disk drive that stores log data is configured as a remote disk node 13 in another node. 1 shows a data storage system.

図15のログデータ記憶システムは、第5の実施の形態と比べて、管理対象コンピュータ11がバスプロトコル転送部180a、リモート管理用コンピュータ12がバスプロトコル転送部180b、リモートディスクノード13がバスプロトコル転送部180cを有し、パーティション制御機能付スイッチ190で接続されている点で異なる。バスプロトコル転送部180a〜180cとパーティション制御機能付スイッチ190以外の構成は、第5の実施の形態と同じであるため、ここでの説明は省略する。バスプロトコル転送部180a〜180cの構成及び動作は同じであるため、以下、バスプロトコル転送部180aを例として説明する。   The log data storage system of FIG. 15 is different from the fifth embodiment in that the managed computer 11 is a bus protocol transfer unit 180a, the remote management computer 12 is a bus protocol transfer unit 180b, and the remote disk node 13 is a bus protocol transfer. It differs in that it has a section 180c and is connected by a switch 190 with a partition control function. Since the configuration other than the bus protocol transfer units 180a to 180c and the switch with partition control function 190 is the same as that of the fifth embodiment, description thereof is omitted here. Since the configuration and operation of the bus protocol transfer units 180a to 180c are the same, the bus protocol transfer unit 180a will be described below as an example.

バスプロトコル転送部180aは、バス105aで利用しているバスプロトコルを、コンピュータ間接続に利用しているネットワークプロトコルで通信するための処理を行う。例えば、バスプロトコルとしては、PCI Expressがあり、ネットワークプロトコルとしてはEthernet(登録商標)がある。   The bus protocol transfer unit 180a performs processing for communicating the bus protocol used on the bus 105a with the network protocol used for connection between computers. For example, PCI Express is a bus protocol, and Ethernet (registered trademark) is a network protocol.

バスプロトコル転送部180aの構成を図16に示す。バスプロトコル転送部180b、180cも同様な構成である。バスプロトコル転送部180aは、バスプロトコル処理手段181と、ネットワークプロトコル処理手段182と、カプセル化手段183と、デカプセル化手段184とから構成される。   The configuration of the bus protocol transfer unit 180a is shown in FIG. The bus protocol transfer units 180b and 180c have the same configuration. The bus protocol transfer unit 180 a includes a bus protocol processing unit 181, a network protocol processing unit 182, an encapsulation unit 183, and a decapsulation unit 184.

バスプロトコル処理手段181は、バスプロトコルのヘッダ処理を行う。ネットワークプロトコル処理手段182は、ネットワークプロトコルのヘッダ処理を行う。カプセル化手段183は、データの流れが内部バス側から外部ネットワークへの場合に、バスプロトコルのデータをネットワークプロトコルでカプセル化する。逆にデータの流れが外部ネットワークから内部バスへの場合は、デカプセル化手段184が、ネットワークプロトコルからネットワークプロトコルのヘッダを除き、内部プロトコルデータを抽出する。   The bus protocol processing means 181 performs header processing of the bus protocol. The network protocol processing means 182 performs network protocol header processing. The encapsulating means 183 encapsulates the bus protocol data with the network protocol when the data flow is from the internal bus side to the external network. Conversely, when the data flow is from the external network to the internal bus, the decapsulating means 184 removes the network protocol header from the network protocol and extracts the internal protocol data.

バスプロトコル転送部180a、180cにより、バス105aとバス105cが同一バスと同様にデータを通信することができるようになる。   The bus protocol transfer units 180a and 180c allow the bus 105a and the bus 105c to communicate data in the same way as the same bus.

パーティション制御機能付スイッチ190は、ディスクシステム110cとこれを制御するCPUを関連付けるパーティションの制御を行う。同一パーティションに属するCPUがディスクシステムを制御することができ、異なるパーティションのCPUからはディスクシステムを制御することができないようにする。例えば、バスプロトコル転送部で処理されるネットワークプロトコルがEthernet(登録商標)の場合は、VLAN(Virtual LAN)を利用することで、VLAN IDごとにパーティションを構成することができる。   The switch with partition control function 190 controls a partition that associates the disk system 110c with the CPU that controls the disk system 110c. CPUs belonging to the same partition can control the disk system, and CPUs in different partitions cannot be controlled from the disk system. For example, when the network protocol processed by the bus protocol transfer unit is Ethernet (registered trademark), a partition can be configured for each VLAN ID by using a VLAN (Virtual LAN).

CPU101aからのログデータをリモートノード13内のディスクシステム110cへ保存するときは、パーティション機能付スイッチ190は、ディスクシステム110cとCPU101aを同一パーティションに設定する。また、ディスクシステム110c内のログデータをCPU101bで分析する際には、ディスクシステム110cとCPU101bを同じパーティションに設定する。   When the log data from the CPU 101a is stored in the disk system 110c in the remote node 13, the switch with partition function 190 sets the disk system 110c and the CPU 101a to the same partition. Further, when the log data in the disk system 110c is analyzed by the CPU 101b, the disk system 110c and the CPU 101b are set to the same partition.

本発明の第6の実施の形態における動作は、ログデータをディスクシステムに転送する手順は、第5の実施の形態における動作と同じである。ステップS401において、転送先のディスクをリモートディスクに設定することで、ログデータをリモートディスクへ保存することができる。ただし、ディスクシステムへデータを転送する前に、パーティション制御機能付スイッチ190により、管理対象コンピュータ11のCPU101aと、転送先であるディスクシステム110cを同一パーティションに設定する。また、ディスクシステム110cに保存されたログデータをリモート管理用コンピュータ上で分析する際には、CPU101bとディスクシステム110bを同一パーティションに設定する。   In the operation of the sixth embodiment of the present invention, the procedure for transferring log data to the disk system is the same as that in the fifth embodiment. In step S401, the log data can be stored in the remote disk by setting the transfer destination disk to the remote disk. However, before transferring data to the disk system, the partition control function-equipped switch 190 sets the CPU 101a of the managed computer 11 and the disk system 110c as the transfer destination to the same partition. Further, when the log data stored in the disk system 110c is analyzed on the remote management computer, the CPU 101b and the disk system 110b are set to the same partition.

以上で説明した第6の実施の形態の効果について説明する。   The effects of the sixth embodiment described above will be described.

本発明の第6の実施の形態では、リモートディスクへのデータ転送に必要なTCP/IP処理を、バスプロトコルをネットワークプロトコルにカプセル化する専用装置で実行することにより、TCP/IP処理をCPU処理から省略できるため、CPU負荷を低減することができる。   In the sixth embodiment of the present invention, the TCP / IP processing necessary for data transfer to the remote disk is executed by a dedicated device that encapsulates the bus protocol into the network protocol, whereby the TCP / IP processing is performed by the CPU processing. Therefore, the CPU load can be reduced.

以上、本発明の各実施形態の説明において、CPU上で動作するログ収集機能によりメモリ上へ書き込むログデータを例として説明したが、本発明の効果はログデータに限定されるものではなく、より一般的にCPU上のプログラムがメモリ上に書き込んだデータをディスクシステムへ転送する際に利用できる技術である。   As described above, in the description of each embodiment of the present invention, the log data written on the memory by the log collection function operating on the CPU has been described as an example. However, the effect of the present invention is not limited to the log data. In general, this is a technique that can be used when data written on a memory by a program on a CPU is transferred to a disk system.

また、上記動作の説明では、第1の実施の形態以外では、ディスクへの書き込み時の動作しか説明しなかったが、上記説明したすべての実施の形態において、第1の実施の形態におけるディスクからの読み出しと同じ動作を行うことで、ディスクに保存したデータ読み出しにおいてもCPU負荷を低減させることができる。   Further, in the description of the above operation, only the operation at the time of writing to the disk has been described except for the first embodiment. However, in all the above described embodiments, from the disk in the first embodiment. By performing the same operation as reading, the CPU load can be reduced even when reading data stored on the disk.

また各実施の形態の説明において、データ転送制御部内に複数の機能を実現する手段が存在するが、これらの全てが一つの装置で構成されても、分割され複数の装置で実現されても、各実施形態の効果を実現することができる。また、これら装置の一部又は全てがディスクシステム内に構成されても、各実施形態の効果を実現することができる。   In the description of each embodiment, there is a means for realizing a plurality of functions in the data transfer control unit, all of which may be configured by one device, or may be divided and realized by a plurality of devices. The effect of each embodiment can be realized. Even if some or all of these devices are configured in the disk system, the effects of the embodiments can be realized.

本発明はCPUの負荷を削減できるデータ記憶システム、及びデータ記憶方法に用いられ、データ記憶システムを有するコンピュータ、かかるコンピュータをネットワークで接続したシステム等に用いられる。   The present invention is used in a data storage system and a data storage method capable of reducing the load on the CPU, and is used in a computer having a data storage system, a system in which such computers are connected via a network, and the like.

本発明の第1の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 1st Embodiment of this invention. バッファ状態記憶領域の構成を示す図である。It is a figure which shows the structure of a buffer state storage area. 本発明の第1の実施の形態におけるディスク書き込み時のCPUの動作を示すフローチャートである。It is a flowchart which shows operation | movement of CPU at the time of the disk writing in the 1st Embodiment of this invention. 本発明の第1の実施の形態のディスク書き込み時のデータ転送制御部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data transfer control part at the time of the disk writing of the 1st Embodiment of this invention. 本発明の第1の実施の形態のディスク読み出し時のCPUの動作を示すフローチャートである。It is a flowchart which shows operation | movement of CPU at the time of the disk reading of the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるディスク読み出し時のデータ転送制御部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data transfer control part at the time of the disk reading in the 1st Embodiment of this invention. 本発明の第2の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 2nd form of this invention. 本発明の第2の実施の形態におけるデータ転送制御部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data transfer control part in the 2nd Embodiment of this invention. 本発明の第3の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるデータ転送制御部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data transfer control part in the 3rd Embodiment of this invention. 本発明の第4の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 4th Embodiment of this invention. 本発明の第4の実施の形態におけるデータ転送制御部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data transfer control part in the 4th Embodiment of this invention. 本発明の第5の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 5th Embodiment of this invention. 本発明の第5の実施の形態におけるデータ転送制御部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data transfer control part in the 5th Embodiment of this invention. 本発明の第6の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 6th Embodiment of this invention. バスプロトコル転送部の構成を示すブロック図である。It is a block diagram which shows the structure of a bus protocol transfer part. 従来のログデータ記憶システムの構成を示すブロック図である。It is a block diagram which shows the structure of the conventional log data storage system. 従来のログデータ記憶システムにおけるCPUの動作を示すフローチャートである。It is a flowchart which shows operation | movement of CPU in the conventional log data storage system. 従来のログデータ記憶システムにおけるDMAコントローラの動作を示すフローチャートである。It is a flowchart which shows operation | movement of the DMA controller in the conventional log data storage system.

符号の説明Explanation of symbols

101 CPU
102 メモリ
105 バス
110 ディスクシステム
111 ディスクドライブ
112 ディスクキャッシュ
120 データ記憶領域
130、140、150、160、190 データ転送制御部
131 メモリアドレス取得手段
132 メモリアドレス記憶手段
133 ディスク書き込み制御手段
134 データ重複フィルタ手段
135 転送データ記憶手段
136 ディスク読み出し制御手段
141 転送間隔制御手段
151 コマンドモニタ手段
161 データ転送先選択手段
180 バスプロトコル転送部
181 バスプロトコル処理手段
182 ネットワークプロトコル処理手段
183 カプセル化手段
184 デカプセル化手段
190 パーティション制御機能付スイッチ
201 メモリアドレス決定手段
202 メモリ書き込み順決定手段
203 データ書き込み手段
204 データ読み出し手段
901 CPU
902 メモリ
910 ディスクシステム
911 ディスクドライブ
912 ディスクキャッシュ
920 DMAコントローラ
921 DMA開始手段
922 アドレスカウント手段
923 ディスク書き込み制御手段
924 完了割り込み通知手段
101 CPU
102 Memory 105 Bus 110 Disk system 111 Disk drive 112 Disk cache 120 Data storage area 130, 140, 150, 160, 190 Data transfer control unit 131 Memory address acquisition unit 132 Memory address storage unit 133 Disk write control unit 134 Data duplication filter unit 135 Transfer Data Storage Unit 136 Disk Read Control Unit 141 Transfer Interval Control Unit 151 Command Monitor Unit 161 Data Transfer Destination Selection Unit 180 Bus Protocol Transfer Unit 181 Bus Protocol Processing Unit 182 Network Protocol Processing Unit 183 Encapsulation Unit 184 Decapsulation Unit 190 Partition Switch with control function 201 Memory address determining means 202 Memory writing order determining means 203 Data writing Only means 204 data reading means 901 CPU
902 Memory 910 Disk system 911 Disk drive 912 Disk cache 920 DMA controller 921 DMA start means 922 Address count means 923 Disk write control means 924 Completion interrupt notification means

Claims (18)

複数のバッファを有し、データの保存先であるデータ記憶領域と、前記バッファの状態を記憶するバッファ状態記憶領域と、を備えたメモリと、
前記データ記憶領域と前記複数のバッファと前記バッファ状態記憶領域とのメモリアドレスを決定するメモリアドレス決定手段と、前記データ記憶領域内において前記データを保存するアドレス順を決定するメモリアクセス順決定手段と、前記メモリアクセス順決定手段が決定した順番に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを書き込める状態でなければデータの書き込みを保留し、バッファの状態がデータを書き込める状態であればデータを書き込み、前記バッファ状態記憶領域のバッファ状態を更新するデータ書き込み手段として機能させるプログラムにより動作するプロセッサと、
前記データ記憶領域内のデータの転送先となるディスクドライブと、
前記メモリ上の前記データ記憶領域と前記バッファと前記バッファ状態記憶領域とのアドレスを前記プログラムから取得し、記憶する手段と、
前記データ記憶領域内のデータを前記プログラムがデータを書き込むアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを読み出せる状態でなければ処理を保留し、バッファの状態がデータを読み出せる状態であれば、バッファ単位でデータを読み出し、読み出したデータを前記ディスクドライブへ書き込み、バッファ状態を更新するディスク書き込み制御手段と、
を有することを特徴とするデータ記憶システム。
A memory having a plurality of buffers and having a data storage area for storing data, and a buffer state storage area for storing the state of the buffer;
Memory address determining means for determining memory addresses of the data storage area, the plurality of buffers, and the buffer state storage area; and memory access order determining means for determining an address order for storing the data in the data storage area; The buffer access state of the buffer state storage area is acquired according to the order determined by the memory access order determination means, and if the buffer state is not a state where data can be written, the data write is suspended and the buffer state is a state where data can be written A processor that operates according to a program that functions as data writing means for writing data and updating the buffer state of the buffer state storage area,
A disk drive to which data in the data storage area is transferred;
Means for acquiring and storing addresses of the data storage area, the buffer and the buffer state storage area on the memory from the program;
The buffer status in the buffer status storage area is acquired in accordance with the address order in which the program writes the data in the data storage area. If the buffer status is not readable, the processing is suspended. If the data can be read, the disk write control means for reading the data in buffer units, writing the read data to the disk drive, and updating the buffer state;
A data storage system comprising:
前記プロセッサは複数の前記プログラムにより動作し、
前記複数のプログラム内の各メモリアドレス決定手段は、前記メモリのデータ記憶領域内にそれぞれのプログラム用のデータ記憶領域を作成し、割り当てた該プログラム用のデータ記憶領域をバッファ割当記憶領域に登録し、
前記データ書き込み手段は、所属するプログラム用に割り当てられた前記プログラム用のデータ記憶領域のみにアクセスし、
前記ディスク書き込み制御手段は、指定されたプログラム用に割り当てられた前記プログラム用のデータ記憶領域のみにアクセスすることを特徴とする請求項1記載のデータ記憶システム。
The processor is operated by a plurality of the programs,
Each memory address determination means in the plurality of programs creates a data storage area for each program in the data storage area of the memory, and registers the allocated data storage area for the program in the buffer allocation storage area. ,
The data writing means accesses only the data storage area for the program allocated for the program to which it belongs,
2. The data storage system according to claim 1, wherein the disk write control means accesses only the data storage area for the program allocated for the designated program.
複数のバッファを有し、データの保存先であるデータ記憶領域と、前記バッファの状態を記憶するバッファ状態記憶領域と、を備えたメモリと、
前記データ記憶領域と前記複数のバッファと前記バッファ状態記憶領域とのメモリアドレスを決定するメモリアドレス決定手段と、前記データ記憶領域内において前記データを保存するアドレス順を決定するメモリアクセス順決定手段と、前記メモリアクセス順決定手段が決定した順番に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを読み出せる状態でなければデータの読み出しを保留し、バッファの状態がデータを読み出せる状態であればデータを読み出し、前記バッファ状態記憶領域のバッファ状態を更新するデータ読み出し手段として機能させるプログラムにより動作するプロセッサと、
前記データ記憶領域内のデータの転送元となるディスクドライブと、
前記メモリ上の前記データ記憶領域と前記バッファと前記バッファ状態記憶領域とのアドレスを前記プログラムから取得し、記憶する手段と、
前記データ記憶領域内のデータを前記プログラムがデータを書き込むアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを書き込める状態でなければ処理を保留し、バッファの状態がデータを書き込める状態であれば、前記ディスクドライブからデータを読み出し、読み出したデータを前記メモリ上の前記データ記憶領域へ書き込み、バッファ状態を更新するディスク読み出し制御手段と、
を有することを特徴とするデータ記憶システム。
A memory having a plurality of buffers and having a data storage area for storing data, and a buffer state storage area for storing the state of the buffer;
Memory address determining means for determining memory addresses of the data storage area, the plurality of buffers, and the buffer state storage area; and memory access order determining means for determining an address order for storing the data in the data storage area; The buffer status in the buffer status storage area is acquired according to the order determined by the memory access order determination means, and if the buffer status is not readable, the data reading is suspended and the buffer status is read from the data. A processor that operates according to a program that reads data if it can be output and functions as data reading means for updating the buffer state of the buffer state storage area;
A disk drive from which data in the data storage area is transferred;
Means for acquiring and storing addresses of the data storage area, the buffer and the buffer state storage area on the memory from the program;
The data in the data storage area is acquired in accordance with the address order in which the program writes data, and the buffer status in the buffer status storage area is acquired. If the buffer status is not in a state where data can be written, processing is suspended and the buffer status is data. Disk read control means for reading data from the disk drive, writing the read data to the data storage area on the memory, and updating the buffer status;
A data storage system comprising:
前記ディスクドライブは前記データ記憶領域内のデータの転送元となり、
前記プログラムは、前記メモリアクセス順決定手段が決定した順番に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを読み出せる状態でなければデータの読み出しを保留し、バッファの状態がデータを読み出せる状態であればデータを読み出し、前記バッファ状態記憶領域のバッファ状態を更新するデータ読み出し手段として、前記プロセッサを機能させ、
前記データ記憶領域内のデータを前記プログラムがデータを書き込むアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを書き込める状態でなければ処理を保留し、バッファの状態がデータを書き込める状態であれば、前記ディスクドライブからデータを読み出し、読み出したデータを前記メモリ上の前記データ記憶領域へ書き込み、バッファ状態を更新するディスク読み出し制御手段を有することを特徴とする請求項1記載のデータ記憶システム。
The disk drive becomes a data transfer source in the data storage area,
The program obtains the buffer status of the buffer status storage area according to the order determined by the memory access order determination means, and if the buffer status is not readable, the data reading is suspended. If the data can be read, the data is read, and the processor functions as data reading means for updating the buffer status in the buffer status storage area.
The data in the data storage area is acquired in accordance with the address order in which the program writes data, and the buffer status in the buffer status storage area is acquired. If the buffer status is not in a state where data can be written, processing is suspended and the buffer status is data. 2. A disk read control means for reading data from the disk drive, writing the read data to the data storage area on the memory, and updating a buffer state if the data is in a state in which data can be written. Data storage system.
前記プロセッサは複数の前記プログラムにより動作し、
前記複数のプログラム内の各メモリアドレス決定手段は、前記メモリのデータ記憶領域内にそれぞれのプログラム用のデータ記憶領域を作成し、割り当てた該プログラム用のデータ記憶領域をバッファ割当記憶領域に登録し、
前記データ読み出し手段は、所属するプログラム用に割り当てられた前記プログラム用のデータ記憶領域のみにアクセスし、
前記ディスク読み出し制御手段は、指定されたプログラム用に割り当てられた前記プログラム用のデータ記憶領域のみにアクセスすることを特徴とする請求項3または4記載のデータ記憶システム。
The processor is operated by a plurality of the programs,
Each memory address determination means in the plurality of programs creates a data storage area for each program in the data storage area of the memory, and registers the allocated data storage area for the program in the buffer allocation storage area. ,
The data reading means accesses only the data storage area for the program allocated for the program to which it belongs,
5. The data storage system according to claim 3, wherein the disk read control means accesses only the data storage area for the program allocated for the designated program.
前記メモリと前記ディスクドライブ間で転送したデータを一時的に記憶する転送データ記憶手段と、
前記メモリから読み出したデータが前記記憶されたデータと異なる場合に、前記ディスクドライブへのデータ書き込み時はディスク書き込み制御手段へ、前記ディスクドライブからのデータ読み出し時はディスク読み出し制御手段へ、データ転送を指示するデータ重複フィルタ手段と、
を有することを特徴とする請求項4に記載のデータ記憶システム。
Transfer data storage means for temporarily storing data transferred between the memory and the disk drive;
When the data read from the memory is different from the stored data, the data is transferred to the disk writing control means when writing data to the disk drive, and to the disk reading control means when reading data from the disk drive. A data duplication filter means for instructing;
The data storage system according to claim 4, comprising:
前記データ記憶領域へのデータ転送の完了を確認する時間間隔を記憶し、転送完了の確認の際に既に転送が完了している際には、次回の確認までの待ち時間を短くし、まだ転送が完了していない場合は、次回の確認までの待ち時間を長くするようにメモリアクセス間隔を制御する転送間隔制御手段を有することを特徴とする請求項1から5のいずれかに記載のデータ記憶システム。   The time interval for confirming the completion of data transfer to the data storage area is stored, and when the transfer has already been completed at the time of confirming the transfer completion, the waiting time until the next confirmation is shortened and the transfer is still performed. 6. The data storage according to claim 1, further comprising transfer interval control means for controlling a memory access interval so as to lengthen a waiting time until the next confirmation when the data is not completed. system. 前記メモリと前記プロセッサとはバスで接続され、該バス上のコマンドをモニタし、コマンドの内容が前記プロセッサから前記データ記憶領域へのデータ書き込み要求であり、かつ新たなアドレスへの書き込み要求であった場合に、メモリ読み出しを行うコマンドモニタ手段を有することを特徴とする請求項1から5いずれかに記載のデータ記憶システム。   The memory and the processor are connected by a bus, monitors commands on the bus, and the content of the command is a data write request from the processor to the data storage area and a write request to a new address. 6. A data storage system according to claim 1, further comprising command monitor means for performing a memory read operation. 複数の前記ディスクドライブを有し、
前記複数のディスクドライブからデータの転送先ディスクドライブをデータの内容に応じて選択するデータ転送先選択手段を有することを特徴とする請求項1から8のいずれかに記載のデータ記憶システム。
A plurality of the disk drives;
9. The data storage system according to claim 1, further comprising data transfer destination selection means for selecting a data transfer destination disk drive from the plurality of disk drives in accordance with data contents.
請求項1から9のいずれかに記載のデータ記憶システムを構成する第1のコンピュータと、
前記第1のコンピュータのデータを分析する第2のコンピュータと、
前記第1のコンピュータのデータを記憶するディスクドライブとを備え、
前記第1及び第2のコンピュータと前記ディスクドライブにそれぞれ設けられ、バス上のコマンドを外部ネットワークのプロトコルにカプセル化するバスプロトコル転送部と、
前記第1のコンピュータのプロセッサ又は前記第2のコンピュータのプロセッサから、データ転送先のディスクドライブにアクセスするプロセッサを決定するパーティション制御手段と
を備えたことを特徴とする請求項1から9のいずれかに記載のデータ記憶システム。
A first computer constituting the data storage system according to any one of claims 1 to 9;
A second computer for analyzing the data of the first computer;
A disk drive for storing data of the first computer,
A bus protocol transfer unit provided in each of the first and second computers and the disk drive and encapsulating a command on the bus into a protocol of an external network;
10. A partition control means for determining a processor to access a data transfer destination disk drive from the processor of the first computer or the processor of the second computer. The data storage system described in 1.
プロセッサとメモリとデータ転送制御部とディスクドライブとがバスで接続され、前記メモリが、複数のバッファを有し且つデータの保存先であるデータ記憶領域と、前記バッファの状態を記憶するバッファ状態記憶領域と、を備えてなるデータ記憶システムのデータ記憶方法において、
前記プロセッサ上で動作するプログラムが、
前記データ記憶領域と前記複数のバッファと前記バッファ状態記憶領域とのメモリアドレスを決定し、
前記データ記憶領域内において前記データを書き込むアドレス順を決定し、決定したアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを書き込める状態でなければデータの書き込みを保留し、バッファの状態がデータを書き込める状態であればデータを書き込み、バッファ状態を更新するデータ書き込み、
前記データ転送制御部が、
前記メモリ上の前記データ記憶領域と前記バッファと前記バッファ状態記憶領域のアドレスを前記プログラムから取得し、記憶し、
前記データ記憶領域内のデータを前記プログラムがデータを書き込むアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを読み出せる状態でなければ処理を保留し、バッファの状態がデータを読み出せる状態であれば、バッファ単位でデータを読み出し、読み出したデータを前記ディスクドライブへ書き込み、バッファ状態を更新することを特徴とするデータ記憶方法。
A processor, a memory, a data transfer control unit, and a disk drive are connected by a bus, and the memory has a plurality of buffers and a data storage area in which data is stored, and a buffer state storage that stores the state of the buffer And a data storage method for a data storage system comprising:
A program running on the processor is
Determining memory addresses of the data storage area, the plurality of buffers and the buffer state storage area;
Determines the address order for writing the data in the data storage area, obtains the buffer state of the buffer state storage area according to the determined address order, and if the buffer state is not a state where data can be written, the data writing is suspended. , Write data if the buffer is ready to write data, write data to update the buffer status,
The data transfer control unit is
Obtaining and storing the addresses of the data storage area, the buffer, and the buffer state storage area on the memory from the program,
The buffer status in the buffer status storage area is acquired in accordance with the address order in which the program writes the data in the data storage area. If the buffer status is not readable, the processing is suspended. A data storage method comprising: reading data in units of buffers if the data can be read; writing the read data to the disk drive; and updating the buffer status.
プロセッサとメモリとデータ転送制御部とディスクドライブとがバスで接続され、前記メモリが、複数のバッファを有し且つデータの保存先であるデータ記憶領域と、前記バッファの状態を記憶するバッファ状態記憶領域と、を備えてなるデータ記憶システムのデータ記憶方法において、
前記プロセッサ上で動作するプログラムが、
前記データ記憶領域と前記複数のバッファと前記バッファ状態記憶領域とのメモリアドレスを決定し、
前記データ記憶領域内において前記データを保存するアドレス順を決定し、
決定したアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、バッファの状態がデータを読み出せる状態でなければデータの読み出しを保留し、バッファの状態がデータを読み出せる状態であればデータを読み出し、バッファ状態を更新するデータ読み出し、
前記データ転送制御部が、
読み出すデータのディスク上のアドレスと、前記メモリ上のデータ記憶領域とバッファとバッファ状態記憶領域のアドレスとを前記プログラムから取得し、記憶し、
前記データ記憶領域内のデータを前記プログラムがデータを書き込むアドレス順に従って前記バッファ状態記憶領域のバッファ状態を取得し、
バッファの状態がデータを書き込める状態でなければ処理を保留し、バッファの状態がデータを書き込める状態であれば、ディスクからデータを読み出し、読み出したデータをメモリ上の前記データ記憶領域へ書き込み、バッファ状態を更新することを特徴とするデータ記憶方法。
A processor, a memory, a data transfer control unit, and a disk drive are connected by a bus, and the memory has a plurality of buffers and a data storage area in which data is stored, and a buffer state storage that stores the state of the buffer And a data storage method for a data storage system comprising:
A program running on the processor is
Determining memory addresses of the data storage area, the plurality of buffers and the buffer state storage area;
Determining an address order for storing the data in the data storage area;
Acquires the buffer status of the buffer status storage area according to the determined address order. If the buffer status is not readable, the data reading is suspended. If the buffer status is readable, the data is stored. Read, read data to update buffer status,
The data transfer control unit is
The address on the disk of the data to be read, the data storage area on the memory, the address of the buffer and the buffer status storage area are acquired from the program, stored,
Obtaining the buffer status of the buffer status storage area according to the address order in which the program writes the data in the data storage area;
If the buffer state is not a state where data can be written, the processing is suspended, and if the buffer state is a state where data can be written, the data is read from the disk, and the read data is written to the data storage area in the memory. The data storage method characterized by updating.
前記メモリと前記ディスクドライブ間で転送したデータを前記データ転送制御部に記憶し、
データを前記ディスクドライブへ書き込む処理の場合は、前記メモリから取得したデータが前記データ転送制御部に記憶されたデータと異なる場合にデータ転送を行うことを特徴とする請求項11または12記載のデータ記憶方法。
Storing data transferred between the memory and the disk drive in the data transfer control unit;
13. The data according to claim 11 or 12, wherein in the process of writing data to the disk drive, data transfer is performed when the data acquired from the memory is different from the data stored in the data transfer control unit. Memory method.
前記データ転送制御部は、前記データ記憶領域へのデータ転送完了を確認する時間間隔を記憶し、転送完了の確認の際に既に転送が完了している際には、次回の確認までの待ち時間を短くし、まだ転送が完了していない場合は、次回の確認までの待ち時間を長くするようにメモリへのアクセス間隔を制御することを特徴とする請求項11または12に記載のデータ記憶方法。   The data transfer control unit stores a time interval for confirming the completion of data transfer to the data storage area, and when the transfer has already been completed at the time of confirming the transfer completion, a waiting time until the next confirmation 13. The data storage method according to claim 11 or 12, wherein when the transfer is not completed yet, the access interval to the memory is controlled so as to increase the waiting time until the next confirmation. . 前記メモリと前記プロセッサとはバスで接続され、前記データ転送制御部は、該バス上のコマンドをモニタし、コマンドの内容が前記プロセッサから前記データ記憶領域へのデータ書き込み要求であり、かつ新たなアドレスへの書き込み要求であった場合に、メモリ読み出しを行うことを特徴とする請求項11または12記載のデータ記憶方法。   The memory and the processor are connected by a bus, the data transfer control unit monitors a command on the bus, the command content is a data write request from the processor to the data storage area, and a new 13. The data storage method according to claim 11, wherein memory read is performed when it is a write request to an address. 複数の前記ディスクドライブを有し、
前記データ転送制御部は、前記複数のディスクドライブからデータの転送先ディスクドライブをデータの内容に応じて選択することを特徴とする請求項11から15のいずれかに記載のデータ記憶方法。
A plurality of the disk drives;
16. The data storage method according to claim 11, wherein the data transfer control unit selects a data transfer destination disk drive from the plurality of disk drives according to data contents.
バスプロトコル転送手段を介して、請求項11から16のいずれかに記載のデータ記憶方法に用いられるデータ記憶システムとなる管理対象コンピュータと、リモートディスクとが接続されるデータ記憶システムのデータ記憶方法において、
前記リモートディスクにアクセスするプロセッサを前記管理対象コンピュータ内のプロセッサとするようにパーティション制御を行い、
前記管理対象コンピュータ内のデータ転送制御部がデータ転送先ディスクをリモートディスクに設定し、
前記リモートディスクへのデータ転送コマンドを前記管理対象コンピュータの外部ネットワークのプロトコルにカプセル化し、
前記管理対象コンピュータから転送されたデータを前記リモートディスクに書き込むことを特徴とする請求項11から16のいずれかに記載のデータ記憶方法。
A data storage method for a data storage system in which a managed computer that is a data storage system used in the data storage method according to any one of claims 11 to 16 and a remote disk are connected via a bus protocol transfer means. ,
Perform partition control so that the processor accessing the remote disk is a processor in the managed computer,
The data transfer control unit in the managed computer sets the data transfer destination disk as a remote disk,
Encapsulating the data transfer command to the remote disk into an external network protocol of the managed computer,
17. The data storage method according to claim 11, wherein the data transferred from the management target computer is written to the remote disk.
前記リモートディスクへデータが記憶された後に、
前記リモートディスクにアクセスするプロセッサをリモート管理コンピュータ内のプロセッサとするようにパーティション制御を行い、
前記リモートディスク内のデータを前記リモート管理コンピュータ内のプロセッサが読み出すことを特徴とする請求項17記載のデータ記憶方法。
After data is stored on the remote disk,
Perform partition control so that the processor accessing the remote disk is a processor in a remote management computer,
18. The data storage method according to claim 17, wherein data in the remote disk is read by a processor in the remote management computer.
JP2007058559A 2007-03-08 2007-03-08 Data storage system and data storage method Expired - Fee Related JP4692501B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007058559A JP4692501B2 (en) 2007-03-08 2007-03-08 Data storage system and data storage method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007058559A JP4692501B2 (en) 2007-03-08 2007-03-08 Data storage system and data storage method

Publications (2)

Publication Number Publication Date
JP2008225543A JP2008225543A (en) 2008-09-25
JP4692501B2 true JP4692501B2 (en) 2011-06-01

Family

ID=39844141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007058559A Expired - Fee Related JP4692501B2 (en) 2007-03-08 2007-03-08 Data storage system and data storage method

Country Status (1)

Country Link
JP (1) JP4692501B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380962B2 (en) * 2010-08-16 2013-02-19 Symantec Corporation Systems and methods for efficient sequential logging on caching-enabled storage devices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3413843B2 (en) * 1991-03-19 2003-06-09 株式会社日立製作所 Vector processor for parallel processing of vector data elements
JPH0619857A (en) * 1992-07-01 1994-01-28 Fujitsu Ltd Data coincidence device between computers
JP2546526B2 (en) * 1993-08-17 1996-10-23 日本電気株式会社 Exchange system

Also Published As

Publication number Publication date
JP2008225543A (en) 2008-09-25

Similar Documents

Publication Publication Date Title
CN110321066B (en) Electronic device, computer system, and control method thereof
JP4464378B2 (en) Computer system, storage system and control method for saving storage area by collecting the same data
US20150058522A1 (en) Detection of hot pages for partition migration
JP5624583B2 (en) PROGRAM, COMPUTER PROCESSING DEVICE, MEMORY MANAGEMENT METHOD, AND COMPUTER
US11397675B2 (en) Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection
US7849214B2 (en) Packet receiving hardware apparatus for TCP offload engine and receiving system and method using the same
WO2013185637A1 (en) Storage device and method for performing interruption control thereof
WO2013185636A1 (en) Method for controlling interruption in data transmission process
JP2005122640A (en) Server system and method for sharing i/o slot
US8650339B2 (en) Control of data transfer
US20230214326A1 (en) Computer Memory Expansion Device and Method of Operation
JP2006323826A (en) System for log writing in database management system
US20150058521A1 (en) Detection of hot pages for partition hibernation
US20140298333A1 (en) Migration processing program, migration method, and cloud computing system
JP2003345525A (en) Computer system and replication method
WO2014206078A1 (en) Memory access method, device and system
WO2020000485A1 (en) Nvme-based data writing method, device, and system
US8036076B2 (en) Method of reducing storage power consumption by use of prefetch and computer system using the same
JP2007079749A (en) Storage device and disk control method
JP4053208B2 (en) Disk array controller
US20170199819A1 (en) Cache Directory Processing Method for Multi-Core Processor System, and Directory Controller
US20180217875A1 (en) Data processing system and data processing method
US11500799B2 (en) Managing access to a CPU on behalf of a block application and a non-block application
JP2007501473A (en) Method and apparatus for transferring data between main memory and storage device
US20060265523A1 (en) Data transfer circuit and data transfer method

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080620

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081016

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100907

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100907

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: 20110125

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4692501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees