JP2005165619A - Method for controlling data transferring device, data transferring device, storage device controller, method for controlling storage device controller, and channel adaptor - Google Patents

Method for controlling data transferring device, data transferring device, storage device controller, method for controlling storage device controller, and channel adaptor Download PDF

Info

Publication number
JP2005165619A
JP2005165619A JP2003402995A JP2003402995A JP2005165619A JP 2005165619 A JP2005165619 A JP 2005165619A JP 2003402995 A JP2003402995 A JP 2003402995A JP 2003402995 A JP2003402995 A JP 2003402995A JP 2005165619 A JP2005165619 A JP 2005165619A
Authority
JP
Japan
Prior art keywords
data transfer
information
processor
register
data
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.)
Pending
Application number
JP2003402995A
Other languages
Japanese (ja)
Inventor
Kazuhiro Nosu
一浩 能州
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003402995A priority Critical patent/JP2005165619A/en
Publication of JP2005165619A publication Critical patent/JP2005165619A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method for controlling a data transferring device, a data transferring device, a storage device controller, a method for controlling the storage device controller, and a channel adaptor for efficiently utilizing a CPU. <P>SOLUTION: This data transfer device is provided with a memory equipped with a queue which stores data transfer information including information to specify a first storage region and information to specify a second storage region, a first processor which registers the data transfer information in the queue, and a DMA controller (DMAC) equipped with a register which executes data transfer processing to transfer data stored in the first storage region to the second storage region. The first processor writes a stop command being a command showing the stop of the data transfer processing to be performed by the DMAC in the register of the DMAC, and the DMAC reads the data transfer information registered in the queue, and after executing data transfer processing based on the read data transfer information, the DMAC stops the following data transfer processing registered in the queue when the data stop command is set in the register. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、データ転送装置の制御方法、データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法、及びチャネルアダプタに関する。   The present invention relates to a data transfer device control method, a data transfer device, a storage device control device, a storage device control device control method, and a channel adapter.

CPUを介さずにメモリとデバイスとの間で直接データを転送する方法として、従来からDMA(Direct Memory Access)コントローラを用いたDMA転送技術が広く使われている。DMA転送に際し、CPUは、DMAコントローラにデータの転送元や転送先といったデータ転送に必要な情報を設定して、データ転送処理の指示を行う。DMAコントローラはデータ転送処理の指示がなされると、CPUを介することなくデータの転送処理を行う。
特開2003−91497号公報
As a method for directly transferring data between a memory and a device without using a CPU, a DMA transfer technique using a DMA (Direct Memory Access) controller has been widely used. At the time of DMA transfer, the CPU sets information necessary for data transfer such as a data transfer source and a transfer destination in the DMA controller and instructs data transfer processing. When an instruction for data transfer processing is given, the DMA controller performs data transfer processing without going through the CPU.
JP 2003-91497 A

しかしながら、従来のDMA転送の処理では、CPUが直接DMAコントローラのレジスタにデータの転送元や転送先等の情報を設定しているため、特にデータ転送処理が頻繁に発生するような状況では、CPUによるDMAコントローラへの設定処理にかかる時間が無視できない。また、DMAコントローラはデータ転送処理を終了すると、割り込みなどによってその旨をCPUに通知するが、データ転送処理が増加するにつれ、DMAコントローラからCPUへの通知も増加するため、通知の度にCPUの処理が中断されてしまうことになる。   However, in the conventional DMA transfer processing, since the CPU directly sets information such as the data transfer source and transfer destination in the register of the DMA controller, in a situation where data transfer processing frequently occurs, the CPU The time required for the setting process to the DMA controller cannot be ignored. When the DMA controller finishes the data transfer process, it notifies the CPU by an interrupt or the like. However, as the data transfer process increases, the notification from the DMA controller to the CPU also increases. Processing will be interrupted.

本発明は、このような背景を鑑みてなされたものであり、CPUを効率的に利用することができる、データ転送装置の制御方法、データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法、及びチャネルアダプタを提供することを目的とする。   The present invention has been made in view of such a background, and a data transfer apparatus control method, a data transfer apparatus, a storage device control apparatus, and a storage device control apparatus control capable of efficiently using a CPU. It is an object to provide a method and a channel adapter.

第1の記憶領域を特定する情報と第2の記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、前記データ転送情報を前記キューに登録する第1のプロセッサと、前記第1の記憶領域に記憶されているデータを前記第2の記憶領域に転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、を備え、前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記レジスタに前記中止コマンドが設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止することとする。   A memory including a queue for storing data transfer information including information for specifying a first storage area and information for specifying a second storage area; a first processor for registering the data transfer information in the queue; A second processor that performs a data transfer process for transferring data stored in the first storage area to the second storage area and includes a register, wherein the first processor A stop command, which is a command indicating that the data transfer processing performed by the second processor is stopped, is written to the register of the second processor, and the second processor stores the data transfer information registered in the queue The data transfer processing is performed based on the read data transfer information, and whether the stop command is set in the register. Or the determining, if the stop command to the register is set, and to cancel the data transfer process for subsequent said data transfer information registered in the queue.

CPUを効率的に利用することができる、データ転送装置、データ転送装置の制御方法、記憶デバイス制御装置、記憶デバイス制御装置の制御方法、及びチャネルアダプタを提供できる。   A data transfer apparatus, a data transfer apparatus control method, a storage device control apparatus, a storage device control apparatus control method, and a channel adapter that can efficiently use a CPU can be provided.

以下、本発明の実施の形態について図面を用いて詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

===第1の実施の形態===
図1は、本発明の一実施の形態であるコンピュータを示すブロック図である。
コンピュータ1は、CPU10、RAM20、記憶装置30、入力装置40、出力装置50、DMAコントローラ60、I/Oインタフェース70を備える。
=== First Embodiment ===
FIG. 1 is a block diagram showing a computer according to an embodiment of the present invention.
The computer 1 includes a CPU 10, a RAM 20, a storage device 30, an input device 40, an output device 50, a DMA controller 60, and an I / O interface 70.

CPU10は、コンピュータ1の全体の制御を司るプロセッサである。CPU10は記憶装置30に記録されているプログラムを適宜RAM20に読み出し、RAM20に格納されたプログラムを実行することによって各種の機能を実現する。記憶装置30には、例えば、ハードディスクやフレキシブルディスク、半導体記憶装置など様々なものを用いることができる。記憶装置30は図に示すようにコンピュータ1の外部に接続するようにしてもよいし、コンピュータ1に一体的に組み込んでもよい。入力装置40はユーザによるコンピュータ1へのデータ入力等のために用いられる装置で、例えばキーボードやマウス等である。出力装置50は情報を外部に出力するための装置で、例えばディスプレイやプリンタ等である。   The CPU 10 is a processor that controls the entire computer 1. The CPU 10 implements various functions by reading out the program recorded in the storage device 30 to the RAM 20 as appropriate and executing the program stored in the RAM 20. For the storage device 30, various devices such as a hard disk, a flexible disk, and a semiconductor storage device can be used. The storage device 30 may be connected to the outside of the computer 1 as shown in the figure, or may be integrated into the computer 1. The input device 40 is a device used for the user to input data into the computer 1 and is, for example, a keyboard or a mouse. The output device 50 is a device for outputting information to the outside and is, for example, a display or a printer.

I/Oインタフェース70は、コンピュータ1が外部の装置との間で通信を行うためのインタフェースである。I/Oインタフェース70は、例えば、LAN(Local Area Network)に接続する通信インタフェースやシリアル接続のRS232Cインタフェースなどである。I/Oインタフェース70はバッファメモリ71を備えており、CPU10の制御により、受信したデータをバッファメモリ71に書き込んだり、バッファメモリ71に記憶されているデータを外部の装置に送信したりすることができる。   The I / O interface 70 is an interface for the computer 1 to communicate with an external device. The I / O interface 70 is, for example, a communication interface connected to a LAN (Local Area Network) or a serially connected RS232C interface. The I / O interface 70 includes a buffer memory 71. Under the control of the CPU 10, the received data can be written into the buffer memory 71, or the data stored in the buffer memory 71 can be transmitted to an external device. it can.

DMAコントローラ60は、デバイスとメモリとの間、あるいはメモリとメモリとの間でのデータの転送を行うものである。DMAコントローラ60は、CPU10の指示によりデータ転送の処理を開始すると、CPU10を介さずにデータ転送処理を続けることができる。DMAコントローラ60は、例えば、I/Oインタフェース70の備えるバッファメモリ71と記憶装置30との間でデータを転送するデータ転送処理を行うことができる。DMAコントローラ60は複数のレジスタを備えており、そのひとつがスタートレジスタ61である。スタートレジスタ61は、DMAコントローラ60の動作を開始させるためのレジスタである。DMAコントローラ60はスタートレジスタ61に書き込みがなされたことを契機にデータの転送処理を開始する。また、DMAコントローラ60の備える他のレジスタのひとつが、アボートレジスタ62である。アボートレジスタ62は、DMAコントローラ60の動作を終了させるためのレジスタである。DMAコントローラ60はアボートレジスタ62に所定の値が書き込まれたことを契機にデータの転送処理を中止する。DMAコントローラ60がデータ転送処理を中止する処理については後述する。   The DMA controller 60 transfers data between the device and the memory or between the memory and the memory. When the DMA controller 60 starts the data transfer process in response to an instruction from the CPU 10, the DMA controller 60 can continue the data transfer process without using the CPU 10. For example, the DMA controller 60 can perform data transfer processing for transferring data between the buffer memory 71 provided in the I / O interface 70 and the storage device 30. The DMA controller 60 includes a plurality of registers, one of which is a start register 61. The start register 61 is a register for starting the operation of the DMA controller 60. The DMA controller 60 starts data transfer processing when the start register 61 is written. One of the other registers included in the DMA controller 60 is an abort register 62. The abort register 62 is a register for ending the operation of the DMA controller 60. The DMA controller 60 stops the data transfer process when a predetermined value is written in the abort register 62. The process in which the DMA controller 60 stops the data transfer process will be described later.

RAM20には2つのキューが設けられている。キューとはFIFO(First In First Out)方式でデータが読み出されるように制御される記憶領域である。転送情報キュー21は、CPU10が、データの転送元のアドレスや転送するデータのデータ長等の、データ転送に必要なデータを設定するデータ転送情報を登録するためのキューである。終了ステータスキュー22は、DMAコントローラ60がデータ転送処理を終了したときに、そのデータ転送処理の結果を示す終了ステータスを登録するためのキューである。終了ステータスとは、例えば、エラーコード等が設定されたデータである。CPU10はデータ転送情報を転送情報キュー21に登録する。DMAコントローラ60は転送情報キュー21からデータ転送情報を読み出し、読み出したデータ転送情報に基づいたデータ転送処理を行う。DMAコントローラ60はデータ転送処理の終了ステータスを終了ステータスキュー22に登録する。   The RAM 20 is provided with two queues. The queue is a storage area that is controlled so that data is read out using a FIFO (First In First Out) method. The transfer information queue 21 is a queue for the CPU 10 to register data transfer information for setting data necessary for data transfer, such as an address of a data transfer source and a data length of data to be transferred. The end status queue 22 is a queue for registering an end status indicating the result of the data transfer process when the DMA controller 60 ends the data transfer process. The end status is data in which an error code or the like is set, for example. The CPU 10 registers data transfer information in the transfer information queue 21. The DMA controller 60 reads the data transfer information from the transfer information queue 21 and performs data transfer processing based on the read data transfer information. The DMA controller 60 registers the end status of the data transfer process in the end status queue 22.

===データ転送情報===
図2は、データ転送情報の一例を示す図である。図2に示すように、データ転送情報は、転送ID欄201、転送方向欄202、ディスクアドレス欄203、転送長欄204を備える。
=== Data transfer information ===
FIG. 2 is a diagram illustrating an example of data transfer information. As shown in FIG. 2, the data transfer information includes a transfer ID column 201, a transfer direction column 202, a disk address column 203, and a transfer length column 204.

転送ID欄201には、データ転送情報を特定するIDが設定される。CPU10は、データ転送情報を生成する際に、各データ転送情報を特定するIDを付与し、この転送ID欄201に設定する。
転送方向欄202には、記憶装置30とバッファメモリ71との間でデータが転送される方向を示す値が設定される。例えば、転送方向欄202に「0」が設定されているときは、バッファメモリ71に記憶されているデータが記憶装置30に転送される。転送方向欄202に「1」が設定されているときは、記憶装置30に記憶されているデータがバッファメモリ71に転送される。
ディスクアドレス欄203には、記憶装置30のアドレスが設定される。DMAコントローラ60は、記憶装置30のディスクアドレス欄203に記憶されているデータをバッファメモリ71に転送したり、バッファメモリ71に記憶されているデータを記憶装置30のディスクアドレス欄203から始まる記憶領域に転送したりする。
転送長欄204には、バッファメモリ71と記憶装置30との間で転送されるデータのデータ長が設定される。
In the transfer ID column 201, an ID for specifying data transfer information is set. When generating the data transfer information, the CPU 10 assigns an ID for specifying each data transfer information and sets it in the transfer ID column 201.
A value indicating the direction in which data is transferred between the storage device 30 and the buffer memory 71 is set in the transfer direction column 202. For example, when “0” is set in the transfer direction column 202, the data stored in the buffer memory 71 is transferred to the storage device 30. When “1” is set in the transfer direction column 202, the data stored in the storage device 30 is transferred to the buffer memory 71.
In the disk address column 203, the address of the storage device 30 is set. The DMA controller 60 transfers data stored in the disk address column 203 of the storage device 30 to the buffer memory 71, or stores data stored in the buffer memory 71 from the disk address column 203 of the storage device 30. Or forward to.
In the transfer length column 204, the data length of data transferred between the buffer memory 71 and the storage device 30 is set.

DMAコントローラ60は、上記のデータ転送情報によって、記憶装置30上に、ディスクアドレス欄203に設定されているアドレスから、転送長欄204に設定されているデータ長分の記憶領域を特定することができる。例えば、データ転送情報の転送方向欄202に「0」が設定されている場合、DMAコントローラ60は、記憶装置30上のディスクアドレス欄203に設定されているアドレスから、転送長欄204に設定されているデータ長分の記憶領域に、バッファメモリ71から読み出したデータを転送する。   The DMA controller 60 can specify a storage area for the data length set in the transfer length column 204 from the address set in the disk address column 203 on the storage device 30 based on the data transfer information. it can. For example, when “0” is set in the transfer direction column 202 of the data transfer information, the DMA controller 60 is set in the transfer length column 204 from the address set in the disk address column 203 on the storage device 30. The data read from the buffer memory 71 is transferred to the storage area for the data length.

なお、本実施形態では、DMAコントローラ60は常にバッファメモリ71の同じアドレスに対して読み書きをするものとし、データ転送情報にはバッファメモリ71のアドレスは設定しないものとする。もちろん、データ転送情報にバッファメモリ71のアドレスを設定し、DMAコントローラ60が、そのアドレスに対してデータの読み書きをするようにしてもよい。   In the present embodiment, it is assumed that the DMA controller 60 always reads / writes from / to the same address in the buffer memory 71 and does not set the address of the buffer memory 71 in the data transfer information. Of course, the address of the buffer memory 71 may be set in the data transfer information, and the DMA controller 60 may read / write data from / to the address.

===データ転送処理===
図3は、本実施の形態における、バッファメモリ71と記憶装置30との間でのデータの転送処理の流れを示すフローチャートである。
=== Data transfer processing ===
FIG. 3 is a flowchart showing a flow of data transfer processing between the buffer memory 71 and the storage device 30 in the present embodiment.

CPU10はデータの転送情報をRAM20の転送情報キュー21に登録する(S3001)。CPU10は、DMAコントローラ60のスタートレジスタに書き込みを行い、データ転送処理の開始を指示する(S3002)。
DMAコントローラ60はスタートレジスタに書き込みがなされたことを検出すると、転送情報キュー21からデータ転送情報を読み出す(S3003)。DMAコントローラ60は、読み出したデータ転送情報に基づいてデータ転送処理を行う(S3004)。DMAコントローラ60はデータ転送処理を終了すると、終了ステータスを終了ステータスキュー22に登録する(S3005)。
The CPU 10 registers data transfer information in the transfer information queue 21 of the RAM 20 (S3001). The CPU 10 writes to the start register of the DMA controller 60 and instructs the start of data transfer processing (S3002).
When the DMA controller 60 detects that the start register has been written, it reads the data transfer information from the transfer information queue 21 (S3003). The DMA controller 60 performs data transfer processing based on the read data transfer information (S3004). When completing the data transfer process, the DMA controller 60 registers the end status in the end status queue 22 (S3005).

一方、CPU10は、他の処理を行いながら、その処理の合間に終了ステータスキュー22に新しい終了ステータスが登録されているかどうかを検査する(S3006)。CPU10は、終了ステータスが終了ステータスキュー22に書き込まれたことを検出すると(S3006:YES)、その終了ステータスに応じた処理を行う(S3007)。終了ステータスに応じた処理とは、例えば、DMAコントローラ60によるデータ転送処理が異常終了していた場合に、データ転送処理が失敗したことを示すメッセージ等を、出力装置50に出力することである。
DMAコントローラ60は、転送情報キュー21に後続のデータ転送情報が登録されている場合、スタートレジスタへの書き込みを待たずに、(S3003)からの処理を続ける。
On the other hand, while performing other processes, the CPU 10 checks whether a new end status is registered in the end status queue 22 between the processes (S3006). When detecting that the end status has been written to the end status queue 22 (S3006: YES), the CPU 10 performs processing according to the end status (S3007). The process according to the end status is, for example, outputting a message indicating that the data transfer process has failed to the output device 50 when the data transfer process by the DMA controller 60 has ended abnormally.
If the subsequent data transfer information is registered in the transfer information queue 21, the DMA controller 60 continues the processing from (S3003) without waiting for the write to the start register.

なお、上述したデータ転送処理では、CPU10がDMAコントローラ60のスタートレジスタに書き込みを行うことでDMAコントローラ60はデータ転送処理を開始するようにしたが、DMAコントローラ60が転送情報キュー21を監視し、データ転送情報が書き込まれたことを検出したときにデータ転送処理を開始するようにしてもよい。   In the data transfer process described above, the DMA controller 60 starts the data transfer process by the CPU 10 writing to the start register of the DMA controller 60. However, the DMA controller 60 monitors the transfer information queue 21, The data transfer process may be started when it is detected that the data transfer information has been written.

上述のように、CPU10は、転送情報キュー21にデータ転送情報を登録していくことにより、複数のデータ転送処理をDMAコントローラ60に指示することができる。DMAコントローラ60は、転送情報キュー21からデータ転送情報を読み出し、読み出したデータ転送情報に基づいてデータ転送処理を行うため、CPU10がデータ転送処理に必要なデータをデータ転送情報に設定して転送情報キュー21に登録する処理とは独立して非同期にデータ転送処理を行うことができる。   As described above, the CPU 10 can instruct the DMA controller 60 to perform a plurality of data transfer processes by registering the data transfer information in the transfer information queue 21. The DMA controller 60 reads data transfer information from the transfer information queue 21 and performs data transfer processing based on the read data transfer information. Therefore, the CPU 10 sets data necessary for data transfer processing as data transfer information and sets the transfer information. Data transfer processing can be performed asynchronously independent of processing registered in the queue 21.

本発明によれば、第1のプロセッサ(CPU10)は、メモリ(RAM20)に設けられたキュー(転送情報キュー21)にデータ転送情報を登録していくことで、第2のプロセッサ(DMAコントローラ60)と直接やり取りを行わずに、第2のプロセッサにデータ転送処理を指示することができる。従って、第1のプロセッサは、第2のプロセッサからデータ転送処理が終了する度に終了通知を通知されることなく、他の処理を行うことができるので、第1のプロセッサの効率的な利用を図ることが可能となる。   According to the present invention, the first processor (CPU 10) registers the data transfer information in a queue (transfer information queue 21) provided in the memory (RAM 20), whereby the second processor (DMA controller 60). The data transfer process can be instructed to the second processor without directly exchanging data with). Therefore, the first processor can perform other processing without being notified of the end notification every time the data transfer processing ends from the second processor, so that the first processor can be used efficiently. It becomes possible to plan.

また、第1のプロセッサは、第2のプロセッサが行ったデータ転送処理の結果をメモリ(終了ステータスキュー22)を参照することによって把握することができる。そのため、第1のプロセッサは、第2のプロセッサから直接終了通知を受けることなく、第2のプロセッサのデータ転送処理の終了結果をメモリを介して間接的に取得することができる。従って、第1のプロセッサの効率的な動作を図ることができる。   Further, the first processor can grasp the result of the data transfer process performed by the second processor by referring to the memory (end status queue 22). Therefore, the first processor can indirectly obtain the end result of the data transfer process of the second processor via the memory without receiving the end notification directly from the second processor. Therefore, efficient operation of the first processor can be achieved.

また、一般的に、CPU10が動作するクロックは、DMAコントローラ60に使用されるクロックよりも高速であるため、CPU10からDMAコントローラ60のレジスタにアクセスする時間よりも、RAM20にアクセスする時間の方が短いことが多い。そのため、本発明によって、CPU10がDMAコントローラ60に対してデータ転送処理に必要な情報を設定するのにかかる時間は短縮され、CPU10はより効率的に動作することが可能となる。   In general, since the clock for operating the CPU 10 is faster than the clock used for the DMA controller 60, the time for accessing the RAM 20 is longer than the time for accessing the registers of the DMA controller 60 from the CPU 10. Often short. Therefore, according to the present invention, the time required for the CPU 10 to set information necessary for data transfer processing to the DMA controller 60 is shortened, and the CPU 10 can operate more efficiently.

なお、DMAコントローラ60は、RAM20からデータ転送情報を読み出す際に、DMAコントローラ60とRAM20とを結ぶバス上をバースト転送するようにしてもよい。これにより、DMAコントローラ60はバスの使用効率のよいデータの読み出しが可能となる。よって、コンピュータ1全体として、効率的な転送処理を実現することが可能となる。   The DMA controller 60 may perform burst transfer on the bus connecting the DMA controller 60 and the RAM 20 when reading the data transfer information from the RAM 20. As a result, the DMA controller 60 can read data with efficient use of the bus. Therefore, efficient transfer processing can be realized for the computer 1 as a whole.

また、一般的には、CPU10がDMAコントローラ60に連続してデータ転送処理を実行させる場合には、CPU10はDMAコントローラ60がデータ転送処理が終了したことを検出した後に、続くデータ転送に必要な情報をDMAコントローラ60に設定しなくてはならない。これに対し、本発明よれば、CPU10はDMAコントローラ60の動作状況にかかわらず、データ転送処理に必要な情報をRAM20に書き込むことができる。そのため、CPU10はDMAコントローラ60に対して複数のデータ転送処理を指示することができる。   In general, when the CPU 10 causes the DMA controller 60 to execute data transfer processing continuously, the CPU 10 is necessary for subsequent data transfer after the DMA controller 60 detects that the data transfer processing has ended. Information must be set in the DMA controller 60. On the other hand, according to the present invention, the CPU 10 can write information necessary for data transfer processing into the RAM 20 regardless of the operation status of the DMA controller 60. Therefore, the CPU 10 can instruct the DMA controller 60 to perform a plurality of data transfer processes.

===データ転送中止処理===
ここで、第1のプロセッサ(CPU10)が既にキュー(転送情報キュー21)に登録したデータ転送情報について、第1のプロセッサが、例えば、その内容を変更したり、キューから削除したりしたいという状況が考えられる。このとき、第2のプロセッサ(DMAコントローラ60)が、例えば、第1のプロセッサが変更している最中のデータ転送情報を読み出し、そのデータ転送情報に基づいてデータ転送処理を行ってしまうと、第1のプロセッサがそのデータ転送情報によって指示しようとする記憶領域とは異なる記憶領域間でのデータ転送処理が行われてしまうおそれがある。また、第2のプロセッサが、例えば、第1のプロセッサによってキューから削除されようとしているデータ転送情報に基づいてデータ転送処理を行ってしまうと、第2のプロセッサは無駄なデータ転送処理を行うことになってしまい、第2のプロセッサの処理効率のみならず、データ転送装置全体としてのデータ転送の効率も下げてしまうおそれがある。
そのため、第1のプロセッサは、第2のプロセッサのデータ転送処理を一時中止させ、第1のプロセッサが変更や削除を行おうとしているデータ転送情報を第2のプロセッサが読み出すことがないようにする必要がある。ただし、第2のプロセッサがデータ転送処理を実行中にその実行中のデータ転送処理を中止してしまうと、再度そのデータ転送処理をやり直す必要があり、全体としてデータ転送にかかる処理時間が長くなってしまうおそれがある。そこで、本発明では、第2のプロセッサはデータ転送処理を完了した後に、レジスタ(アボートレジスタ62)に、データ転送処理を中止することを示すコマンドである中止コマンドが設定されていれば、後続のデータ転送処理を中止するようにしている。
=== Data transfer cancellation processing ===
Here, for the data transfer information that the first processor (CPU 10) has already registered in the queue (transfer information queue 21), for example, the first processor wants to change its contents or delete it from the queue. Can be considered. At this time, for example, when the second processor (DMA controller 60) reads out data transfer information being changed by the first processor and performs data transfer processing based on the data transfer information, There is a possibility that the data transfer process between the storage areas different from the storage area to be instructed by the first processor by the data transfer information may be performed. Also, if the second processor performs a data transfer process based on data transfer information that is about to be deleted from the queue by the first processor, for example, the second processor performs a useless data transfer process. As a result, not only the processing efficiency of the second processor but also the data transfer efficiency of the entire data transfer device may be reduced.
Therefore, the first processor temporarily stops the data transfer process of the second processor so that the second processor does not read the data transfer information that the first processor is changing or deleting. There is a need. However, if the second processor cancels the data transfer process being executed while the data transfer process is being executed, the data transfer process needs to be performed again, resulting in a longer processing time for the data transfer as a whole. There is a risk that. Therefore, in the present invention, after the second processor completes the data transfer process, if a stop command that is a command to stop the data transfer process is set in the register (abort register 62), the subsequent processor The data transfer process is canceled.

以下に、第1のプロセッサが第2のプロセッサのデータ転送処理を中止する処理について説明する。
CPU10は、DMAコントローラ60のアボートレジスタ62に所定の値を設定することにより、DMAコントローラ60のデータ転送処理を中止するように指示する。アボートレジスタ62に設定される値として、あるデータ転送情報に基づくデータ転送処理を終了した時点で処理を中止するように指示する中止コマンドと、実行中のデータ転送処理を即座に中止するように指示する強制終了コマンドとの2種類がある。中止コマンドとは、例えば、「0x0001」のような値である。また、強制終了コマンドとは、例えば、「0x0002」のような値である。
Hereinafter, a process in which the first processor stops the data transfer process of the second processor will be described.
The CPU 10 instructs the DMA controller 60 to stop the data transfer process by setting a predetermined value in the abort register 62 of the DMA controller 60. As a value set in the abort register 62, a stop command for instructing to stop the data transfer processing based on a certain data transfer information and an instruction to immediately stop the data transfer processing being executed There are two types of forced termination commands. The stop command is a value such as “0x0001”, for example. The forced termination command is a value such as “0x0002”, for example.

図4は、DMAコントローラ60がデータ転送処理を中止する処理の流れを示すフローチャートである。CPU10が、データ転送情報を転送情報キュー21に登録し、DMAコントローラ60のスタートレジスタ61に書き込みを行うことによって、DMAコントローラ60のデータ転送処理が開始される。
DMAコントローラ60は、スタートレジスタ61に書き込みがなされたことを検出すると、転送情報キュー21からデータ転送情報を読み出す(S4001)。DMAコントローラ60は、読み出したデータ転送情報に基づいて、バッファメモリ71と記憶装置30との間でデータを転送するデータ転送処理を開始する(S4002)。
DMAコントローラ60は、アボートレジスタ62に書き込みがなされたことを検出すると(S4003)、アボートレジスタ62を参照し、強制終了コマンドが設定されているかどうかを検査する(S4004)。アボートレジスタ62に強制終了コマンドが設定されていた場合には(S4004:YES)、DMAコントローラ60は実行中であるデータ転送処理を中止する(S4005)。DMAコントローラ60は、データ転送処理を強制終了した旨を示す終了ステータスを作成し、作成した終了ステータスを終了ステータスキュー22に登録して(S4006)、動作を終了する。
FIG. 4 is a flowchart showing a flow of processing in which the DMA controller 60 stops the data transfer processing. The CPU 10 registers the data transfer information in the transfer information queue 21 and writes it in the start register 61 of the DMA controller 60, whereby the data transfer process of the DMA controller 60 is started.
When the DMA controller 60 detects that data has been written to the start register 61, it reads data transfer information from the transfer information queue 21 (S4001). The DMA controller 60 starts data transfer processing for transferring data between the buffer memory 71 and the storage device 30 based on the read data transfer information (S4002).
When the DMA controller 60 detects that writing has been made to the abort register 62 (S4003), the DMA controller 60 refers to the abort register 62 and checks whether a forced termination command is set (S4004). If the forced termination command is set in the abort register 62 (S4004: YES), the DMA controller 60 stops the data transfer process being executed (S4005). The DMA controller 60 creates an end status indicating that the data transfer process has been forcibly terminated, registers the created end status in the end status queue 22 (S4006), and ends the operation.

一方、アボートレジスタ62に強制終了コマンドが設定されていなかった場合(S4004:NO)、DMAコントローラ60は、アボートレジスタ62に中止コマンドが書き込まれていたとしても、データ転送処理を継続する(S4007)。DMAコントローラ60は、バッファメモリ71と記憶装置30との間でのデータ転送処理を行った後、アボートレジスタ62を参照し、アボートレジスタ62に中止コマンドが設定されているかどうかを判断する(S4008)。DMAコントローラ60は、アボートレジスタ62に中止コマンドが設定されている場合(S4008:YES)、以降のデータ転送処理を中止する。DMAコントローラ60は、以降の処理を中止した旨を示す終了ステータスを作成し、終了ステータスキュー22に登録する(S4009)。アボートレジスタ62に中止コマンドが設定されていない場合には(S4008:NO)、正常に終了した旨を示す終了ステータスを作成して終了ステータスキュー22に登録する(S4010)。その後、(S4002)に進み、転送情報キュー21に登録されている後続のデータ転送情報についてのデータ転送処理を行う。   On the other hand, if the abort command is not set in the abort register 62 (S4004: NO), the DMA controller 60 continues the data transfer process even if the abort command is written in the abort register 62 (S4007). . The DMA controller 60 performs data transfer processing between the buffer memory 71 and the storage device 30, and then refers to the abort register 62 to determine whether or not the abort command is set in the abort register 62 (S4008). . If the abort command is set in the abort register 62 (S4008: YES), the DMA controller 60 stops the subsequent data transfer processing. The DMA controller 60 creates an end status indicating that the subsequent processing is stopped and registers it in the end status queue 22 (S4009). When the abort command is not set in the abort register 62 (S4008: NO), an end status indicating that the process has ended normally is created and registered in the end status queue 22 (S4010). Thereafter, the process proceeds to (S4002), and data transfer processing is performed for subsequent data transfer information registered in the transfer information queue 21.

上記のように、本発明では、第2のプロセッサ(DMAコントローラ60)はデータ転送処理を完了した後に、レジスタ(アボートレジスタ62)に中止コマンドが設定されていれば、後続のデータ転送処理を中止する。従って、第2のプロセッサは、実行中のデータ転送処理の途中でそのデータ転送処理を中止してしまうことがない。また、第1のプロセッサ(CPU10)は、第2のプロセッサがデータ転送処理を完了したかどうかの監視を行ったり、第2のプロセッサからの完了通知を受けたりすることなく、データ転送処理を中止させるための中止コマンドを第2のプロセッサに指示することができる。従って、第1のプロセッサは、第2のプロセッサのレジスタに中止コマンドを設定することにより、第2のプロセッサがデータ転送処理を完了した時点で後続のデータ転送処理を中止するように、容易に第2のプロセッサを制御することができる。よって、第1のプロセッサの効率的な利用を図りつつ、第2のプロセッサのデータ転送処理の中止による、データ転送装置全体(コンピュータ1)としてのデータ転送能力の低下を最小限に抑えることができる。   As described above, in the present invention, after the second processor (DMA controller 60) completes the data transfer process, if a cancel command is set in the register (abort register 62), the subsequent data transfer process is canceled. To do. Therefore, the second processor does not stop the data transfer process during the data transfer process being executed. Also, the first processor (CPU 10) stops the data transfer process without monitoring whether the second processor has completed the data transfer process or receiving a completion notification from the second processor. The second processor can be instructed to stop the operation. Therefore, the first processor can easily set the stop command in the register of the second processor so that the subsequent data transfer process is stopped when the second processor completes the data transfer process. Two processors can be controlled. Therefore, it is possible to minimize the decrease in the data transfer capability of the entire data transfer apparatus (computer 1) due to the suspension of the data transfer process of the second processor while efficiently using the first processor. .

なお、第1のプロセッサは、第2のプロセッサのレジスタに中止コマンドを設定した後、所定の時間のうちに、第2のプロセッサがデータ転送処理を中止したことを確認できなければ、第2のプロセッサがデータ転送処理を強制終了するように、強制終了コマンドをレジスタに書き込むようにしてもよい。これにより、例えば、第2のプロセッサがデータ転送処理を完了できずに待機してしまっているような場合に、第1のプロセッサは第2のプロセッサがデータ転送処理を強制的に終了するように制御することができる。よって、第1のプロセッサが第2のプロセッサのデータ転送処理を中止させるときに、第2のプロセッサがデータ転送処理を中止するまでにかかる時間が所定の時間を超えないようにすることができる。これにより、第1及び第2のプロセッサが効率的な処理を図ることができる。また、データ転送装置全体としてのデータ転送能力の低下を抑えることができる。   If the first processor cannot confirm that the second processor has stopped the data transfer process within a predetermined time after setting the stop command in the register of the second processor, the second processor A forced termination command may be written in the register so that the processor forcibly terminates the data transfer process. As a result, for example, when the second processor is waiting without being able to complete the data transfer process, the first processor forces the second processor to end the data transfer process. Can be controlled. Therefore, when the first processor stops the data transfer process of the second processor, the time taken for the second processor to stop the data transfer process can be prevented from exceeding a predetermined time. As a result, the first and second processors can perform efficient processing. Further, it is possible to suppress a decrease in data transfer capability of the entire data transfer apparatus.

このように、CPU10は、DMAコントローラ60がデータ転送処理を終了した時点で、それ以降のデータ転送処理を行わないようにさせることができる。CPU10はDMAコントローラ60のデータ転送処理が中止されると、例えば、転送情報キュー21に登録されているデータ転送情報について、その内容を更新したり、転送情報キュー21から削除したりする。   In this manner, the CPU 10 can prevent the subsequent data transfer processing from being performed when the DMA controller 60 finishes the data transfer processing. When the data transfer process of the DMA controller 60 is stopped, the CPU 10 updates the content of the data transfer information registered in the transfer information queue 21 or deletes it from the transfer information queue 21, for example.

その後、CPU10はDMAコントローラ60のアボートレジスタ62に「0」を書き込み、アボートレジスタ62に設定されている中止コマンドや強制終了コマンドをクリアする。DMAコントローラ60は、アボートレジスタ62に書き込みがなされたことを検出すると、アボートレジスタ62に設定されている値を参照する。DMAコントローラ60は、アボートレジスタ62に設定されている値が、中止コマンドや強制終了コマンドではなかった場合には、転送情報キュー21からデータ転送情報を読み出し、データ転送処理を再開する。   Thereafter, the CPU 10 writes “0” in the abort register 62 of the DMA controller 60 and clears the stop command and the forced end command set in the abort register 62. When the DMA controller 60 detects that writing to the abort register 62 has been made, the DMA controller 60 refers to the value set in the abort register 62. If the value set in the abort register 62 is not a stop command or a forced end command, the DMA controller 60 reads the data transfer information from the transfer information queue 21 and restarts the data transfer process.

なお、DMAコントローラ60が、例えば、データ転送処理を再開するように指示するためのレジスタである再開レジスタを備えるようにし、CPU10がアボートレジスタ62に「0」を書き込む代わりに、この再開レジスタに値を設定することによってDMAコントローラ60がデータ転送処理を再開するようにしてもよい。   For example, the DMA controller 60 includes a restart register that is a register for instructing to restart the data transfer process, and the CPU 10 writes a value in this restart register instead of writing “0” in the abort register 62. May be set so that the DMA controller 60 resumes the data transfer process.

また、スタートレジスタ61やアボートレジスタ62、上記の再開レジスタといったレジスタは、例えば、同一のレジスタ(制御レジスタ)とすることもできる。この場合、DMAコントローラ60は、この制御レジスタに設定される値の所定のビット位置に「1」が設定されているかどうかによって、データ転送処理の開始、中止、強制終了、又は再開を行うようにしてもよい。   Further, the registers such as the start register 61, the abort register 62, and the above-described restart register may be the same register (control register), for example. In this case, the DMA controller 60 starts, stops, forcibly terminates or restarts the data transfer process depending on whether or not “1” is set in a predetermined bit position of the value set in the control register. May be.

===登録済みデータ転送情報の削除===
ここで、CPU10は、転送情報キュー21に登録されているデータ転送情報を削除する場合に、削除しようとしているデータ転送情報の転送長欄204に、データ転送処理を行わないことを示す値を設定するようにすることもできる。データ転送処理を行わないことを示す値とは、例えば「0」である。データ転送処理を行わないことを示す値として、例えば「−1」等の、通常データ長としては使われない値を用いるようにしてもよい。DMAコントローラ60は、転送情報キュー21から読み出したデータ転送情報の転送長欄204に、このようなデータ転送処理を行わないことを示す値が設定されていると、データ転送処理を行わないようにすることができる。
=== Deleting registered data transfer information ===
Here, when deleting the data transfer information registered in the transfer information queue 21, the CPU 10 sets a value indicating that the data transfer processing is not performed in the transfer length column 204 of the data transfer information to be deleted. You can also do it. The value indicating that data transfer processing is not performed is, for example, “0”. As a value indicating that data transfer processing is not performed, a value that is not used as a normal data length, such as “−1”, may be used. If the DMA controller 60 sets a value indicating that such data transfer processing is not performed in the transfer length column 204 of the data transfer information read from the transfer information queue 21, the DMA controller 60 does not perform the data transfer processing. can do.

CPU10は、転送情報キュー21からデータ転送情報を削除することによっても、転送情報キュー21に登録済みのデータ転送情報についてのデータ転送処理をキャンセルすることができる。しかしながら、CPU10が、転送情報キュー21に登録済みのデータ転送情報の転送長欄204にデータ転送処理を行わないことを示す値を設定するだけで、転送情報キュー21に登録済みのデータ転送情報についてのデータ転送処理をキャンセルすることもできる。すなわち、CPU10は、転送情報キュー21に登録されているデータ転送情報の転送長欄204を更新するのみで、転送情報キュー21からデータ転送情報を削除するのと同様の効果を実現することができる。従って、CPU10が転送情報キュー21からデータ転送情報を削除するのに比べ、転送情報キュー21に登録されているデータ転送情報のデータ長に値を設定する方が、CPU10のRAM20へのアクセスは少なくなる。よって、CPU10のRAM20へのアクセスによる処理負担が軽減され、効率的なCPU10の動作が可能となる。また、CPU10は、転送情報キュー21からデータ転送情報を削除する際に、DMAコントローラ60のデータ転送処理を中止させる。そのため、CPU10のRAM20へのアクセスが減り、データ転送処理のキャンセルするための処理時間が短縮されるため、DMAコントローラ60がデータ転送処理を中止している時間も短縮される。よって、データ転送処理をキャンセルすることによるコンピュータ1のデータ転送能力の低下を抑えることができる。   The CPU 10 can also cancel the data transfer process for the data transfer information registered in the transfer information queue 21 by deleting the data transfer information from the transfer information queue 21. However, the CPU 10 simply sets a value indicating that data transfer processing is not performed in the transfer length column 204 of the data transfer information registered in the transfer information queue 21, and the data transfer information registered in the transfer information queue 21. It is also possible to cancel the data transfer process. That is, the CPU 10 can achieve the same effect as deleting the data transfer information from the transfer information queue 21 only by updating the transfer length column 204 of the data transfer information registered in the transfer information queue 21. . Therefore, compared to the case where the CPU 10 deletes the data transfer information from the transfer information queue 21, the CPU 10 accesses the RAM 20 less when the value is set to the data length of the data transfer information registered in the transfer information queue 21. Become. Therefore, the processing load due to the CPU 10 accessing the RAM 20 is reduced, and the CPU 10 can operate efficiently. Further, the CPU 10 stops the data transfer process of the DMA controller 60 when deleting the data transfer information from the transfer information queue 21. For this reason, the access to the RAM 20 of the CPU 10 is reduced, and the processing time for canceling the data transfer process is shortened. Therefore, the time during which the DMA controller 60 stops the data transfer process is also shortened. Therefore, it is possible to suppress a decrease in the data transfer capability of the computer 1 due to the cancellation of the data transfer process.

このように、CPU10の処理負荷を軽減し、DMAコントローラ60の処理の中止時間を短縮することによって、コンピュータ1全体としてのデータ転送処理効率を向上することができる。   As described above, by reducing the processing load of the CPU 10 and shortening the processing stop time of the DMA controller 60, the data transfer processing efficiency of the computer 1 as a whole can be improved.

===第2の実施の形態===
次に、本発明を、記憶デバイス制御装置に適用した実施の形態を説明する。
図5は、本発明に係る第2の実施の形態として説明する情報処理システムの全体構成を示すブロック図である。
=== Second Embodiment ===
Next, an embodiment in which the present invention is applied to a storage device control apparatus will be described.
FIG. 5 is a block diagram showing an overall configuration of an information processing system described as the second embodiment according to the present invention.

情報処理装置100と記憶デバイス制御装置200とはネットワーク400に接続され、ネットワーク400を介して相互に通信が可能となっている。ネットワーク400は例えば、SAN(Storage Area Network)である。ネットワーク400は、SAN以外にも、LAN(Local Area Network)による接続としてもよい。ネットワーク400のプロトコルには、ファイバーチャネル、ESCON(登録商標)、FICON(登録商標)、SCSI(Small Computer System Interface)といった様々なものを利用することができる。   The information processing apparatus 100 and the storage device control apparatus 200 are connected to a network 400 and can communicate with each other via the network 400. The network 400 is, for example, a SAN (Storage Area Network). The network 400 may be connected by a LAN (Local Area Network) other than the SAN. Various protocols such as Fiber Channel, ESCON (registered trademark), FICON (registered trademark), and SCSI (Small Computer System Interface) can be used as the protocol of the network 400.

情報処理装置100は、記憶デバイス制御装置200の提供する記憶資源を利用することにより情報処理サービスを行うコンピュータである。情報処理装置100の行う情報処理サービスとは、例えば、銀行の自動預金預け払いシステムや航空機の座席予約システムなどである。情報処理装置100は、CPU(Central Processing Unit)やメモリを備えたコンピュータであり、CPUによって各種のプログラムが実行されることにより様々な機能が実現される。情報処理装置100は、例えば、メインフレームコンピュータやワークステーション、パーソナルコンピュータ等とすることができる。   The information processing apparatus 100 is a computer that provides an information processing service by using storage resources provided by the storage device control apparatus 200. The information processing service performed by the information processing apparatus 100 is, for example, a bank automatic deposit and payment system or an aircraft seat reservation system. The information processing apparatus 100 is a computer including a CPU (Central Processing Unit) and a memory, and various functions are realized by executing various programs by the CPU. The information processing apparatus 100 can be, for example, a mainframe computer, a workstation, a personal computer, or the like.

記憶デバイス300は、多数のディスクドライブを備えており、情報処理装置100に対して記憶領域を提供する。ディスクドライブとしては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。記憶デバイス300は、例えば複数のディスクドライブによりディスクアレイを構成するようにすることもできる。この場合、情報処理装置100に対して提供される記憶領域は、RAIDにより管理された複数のディスクドライブにより提供されるようにすることもできる。   The storage device 300 includes a large number of disk drives and provides a storage area to the information processing apparatus 100. As the disk drive, various devices such as a hard disk device, a flexible disk device, and a semiconductor storage device can be used. The storage device 300 may be configured as a disk array by a plurality of disk drives, for example. In this case, the storage area provided to the information processing apparatus 100 can be provided by a plurality of disk drives managed by RAID.

記憶デバイス制御装置200は、情報処理装置100から記憶デバイス300に対するデータ入出力要求を受け付け、記憶デバイス300に対するデータ入出力に関する処理を行う装置である。記憶デバイス制御装置200は、チャネル制御部210、共有メモリ220、キャッシュメモリ230、ディスク制御部240を含んで構成される。チャネル制御部210は、情報処理装置100との間で通信を行うための通信インタフェースを備え、情報処理装置100から記憶デバイス300に対するデータ入出力要求を受信する機能を有する。チャネル制御部210は、受信したデータ入出力要求に応じて、ディスク制御部240に記憶デバイス300に対するデータ入出力を指示するコマンドをディスク制御部240に伝達する。ディスク制御部240は、このコマンドを受け付け、記憶デバイス300に対するデータ入出力に関する処理を行う。共有メモリ220は、チャネル制御部210やディスク制御部240により共有されるメモリで、例えば、上記のようなデータ入出力の制御を指示するコマンドなどを記憶する。キャッシュメモリ230は、チャネル制御部210とディスク制御部240との間で授受されるデータを記憶する。   The storage device control apparatus 200 is an apparatus that receives a data input / output request for the storage device 300 from the information processing apparatus 100 and performs processing related to data input / output with respect to the storage device 300. The storage device control apparatus 200 includes a channel control unit 210, a shared memory 220, a cache memory 230, and a disk control unit 240. The channel control unit 210 includes a communication interface for performing communication with the information processing apparatus 100 and has a function of receiving a data input / output request for the storage device 300 from the information processing apparatus 100. In response to the received data input / output request, the channel control unit 210 transmits to the disk control unit 240 a command that instructs the disk control unit 240 to input / output data to / from the storage device 300. The disk control unit 240 receives this command and performs processing related to data input / output with respect to the storage device 300. The shared memory 220 is a memory shared by the channel control unit 210 and the disk control unit 240, and stores, for example, commands for instructing control of data input / output as described above. The cache memory 230 stores data exchanged between the channel control unit 210 and the disk control unit 240.

情報処理装置100が記憶デバイス制御装置200に対してデータの書き込みを求めるデータ入出力要求(以下、データ書き込み要求と称する)を送信すると、チャネル制御部210がそのデータ入出力要求を受信する。チャネル制御部210は受信したデータ入出力要求に応じて、データ書き込みを指示するコマンド(以下、データ書き込みコマンドと称する)を生成し、共有メモリ220に書き込むとともに、情報処理装置100から受信した書き込みデータをキャッシュメモリ230に書き込む。ディスク制御部240はデータ書き込みコマンドを共有メモリ120から読み出し、それに基づいてキャッシュメモリ230に書き込まれたデータを記憶デバイス300に対して書き込むための処理を行う。なお、チャネル制御部210が共有メモリ220に書き込むデータ書き込みコマンドや、チャネル制御部210がキャッシュメモリ230に書き込むデータは、チャネル制御部210が直接ディスク制御部240に伝達するようにすることもできる。   When the information processing apparatus 100 transmits a data input / output request (hereinafter referred to as a data write request) for requesting data writing to the storage device control apparatus 200, the channel control unit 210 receives the data input / output request. In response to the received data input / output request, the channel control unit 210 generates a command for instructing data writing (hereinafter referred to as a data write command), writes the command to the shared memory 220, and write data received from the information processing apparatus 100 Is written into the cache memory 230. The disk control unit 240 reads a data write command from the shared memory 120 and performs processing for writing the data written in the cache memory 230 to the storage device 300 based on the read command. Note that a data write command that the channel control unit 210 writes to the shared memory 220 and data that the channel control unit 210 writes to the cache memory 230 can be directly transmitted to the disk control unit 240.

===チャネル制御部===
図6は、チャネル制御部210のハードウエア構成を示すブロック図である。この図に示すように、チャネル制御部210は、マイクロプロセッサ211、ローカルメモリ212、通信インタフェース213、バッファメモリ214、データ転送LSI500を備え、これらが同一のユニットに形成されて構成されている。チャネル制御部210は、記憶デバイス制御装置200に一体的に組み込まれた形態とすることもできるし、記憶デバイス制御装置200から着脱可能な独立したチャネル制御装置とすることもできる。
=== Channel Control Unit ===
FIG. 6 is a block diagram illustrating a hardware configuration of the channel control unit 210. As shown in this figure, the channel control unit 210 includes a microprocessor 211, a local memory 212, a communication interface 213, a buffer memory 214, and a data transfer LSI 500, which are formed in the same unit. The channel control unit 210 may be integrated with the storage device control apparatus 200, or may be an independent channel control apparatus that can be detached from the storage device control apparatus 200.

なお、この図において、チャネル制御部210はマイクロプロセッサ211、ローカルメモリ212、及び通信インタフェース213をそれぞれ4つずつ、またバッファメモリ214を2つ、データ転送LSI500を1つ備えているが、これらの数に限定するものではなく、例えば、マイクロプロセッサ211を1つ、データ転送LSI500を2つ備えるような形態とすることもできる。チャネル制御部210がデータ転送LSI500を複数備える場合、マイクロプロセッサ211は複数のデータ転送LSI500のそれぞれに対してデータ転送情報を通知する必要があるが、本発明によればマイクロプロセッサ211はデータ転送LSI500からの通知を待つことなく次に行うべき処理に移ることができるため、マイクロプロセッサ211はデータ転送LSI500のそれぞれに対してメモリを介して間接的にデータ転送情報を通知することができる。従って、データ転送処理の処理効率の向上が図られる。   In this figure, the channel control unit 210 includes four microprocessors 211, four local memories 212, and four communication interfaces 213, two buffer memories 214, and one data transfer LSI 500. For example, one microprocessor 211 and two data transfer LSIs 500 may be provided. When the channel control unit 210 includes a plurality of data transfer LSIs 500, the microprocessor 211 needs to notify each of the plurality of data transfer LSIs 500 of the data transfer information. Therefore, the microprocessor 211 can indirectly notify the data transfer information to each of the data transfer LSIs 500 via the memory. Therefore, the processing efficiency of the data transfer process can be improved.

マイクロプロセッサ211は、チャネル制御部210全体の制御を司るプロセッサであり、ローカルメモリ212に格納されたプログラムを実行することによって各種の機能を実現する。図6に示す4つのマイクロプロセッサ211は、それぞれ独立して通信インタフェース213から受信したデータ入出力要求の解釈をし、受信したデータ入出力要求に従ってデータ転送LSI500に対してデータ転送の指示をしたり、ディスク制御部240に対して記憶デバイス300からのデータ読み出しの指示を行ったりする。   The microprocessor 211 is a processor that controls the entire channel control unit 210, and implements various functions by executing programs stored in the local memory 212. Each of the four microprocessors 211 shown in FIG. 6 interprets the data input / output request received from the communication interface 213 independently, and instructs the data transfer LSI 500 to transfer data according to the received data input / output request. The disk controller 240 is instructed to read data from the storage device 300.

ローカルメモリ212には様々なプログラムやデータが記憶される。本実施の形態におけるチャネル制御部210では、マイクロプロセッサ211は、それぞれ1つのローカルメモリ212を管理している。ローカルメモリ212はバスを介してマイクロプロセッサ211に接続されている。またローカルメモリ212はマイクロプロセッサ211内のバスを介することによって、データ転送LSI500とも間接的に接続されている。ローカルメモリ212は、マイクロプロセッサ211が実行するプログラムを格納したり、プログラムによって利用されるデータを記憶したりする。   Various programs and data are stored in the local memory 212. In the channel control unit 210 in this embodiment, each microprocessor 211 manages one local memory 212. The local memory 212 is connected to the microprocessor 211 via a bus. The local memory 212 is also indirectly connected to the data transfer LSI 500 via a bus in the microprocessor 211. The local memory 212 stores a program executed by the microprocessor 211 and stores data used by the program.

通信インタフェース213は、情報処理装置100との間で通信を行うためのインタフェースであり、情報処理装置100との間で通信を行うための通信コネクタを備えている。チャネル制御部210の場合は、例えばファイバーチャネルやSCSI、FICON(登録商標)、ESCON(登録商標)、ACONARC(登録商標)、FIBARC(登録商標)のプロトコルに従って情報処理装置100から送信されたデータ入出力要求などを受信する。通信インタフェース213は受信したデータをバッファメモリ214に記憶する。また、通信インタフェース213はバッファメモリ214に記憶されたデータを情報処理装置100に対して送信することもできる。   The communication interface 213 is an interface for performing communication with the information processing apparatus 100, and includes a communication connector for performing communication with the information processing apparatus 100. In the case of the channel control unit 210, for example, data input from the information processing apparatus 100 according to a protocol of Fiber Channel, SCSI, FICON (registered trademark), ESCON (registered trademark), ACONARC (registered trademark), or FIBARC (registered trademark) is input. Receive output requests. The communication interface 213 stores the received data in the buffer memory 214. Further, the communication interface 213 can transmit the data stored in the buffer memory 214 to the information processing apparatus 100.

データ転送LSI500は上述した第1の実施の形態であるコンピュータ1の備えるDMAコントローラ60と同様、デバイスとメモリの間、あるいはメモリとメモリとの間でのデータの転送を行うものである。本実施の形態において、データ転送LSI500は、主にバッファメモリ214とキャッシュメモリ230との間でのデータの転送を行う。このデータ転送の処理は、記憶デバイス制御装置200が情報処理装置100からデータ入出力要求を受け付けたときの、データの入出力処理の一部として行われる。通信インタフェース213がデータ入出力要求を受信すると、マイクロプロセッサ211は受信したデータ入出力要求に応じてデータ転送情報を生成し、生成したデータ転送情報をローカルメモリ212に書き込む。データ転送LSI500はローカルメモリ212に書き込まれたデータ転送情報を読み出し、読み出したデータ転送情報に基づいてデータを転送する。例えば、チャネル制御部210が情報処理装置100からデータ書き込み要求を受信した場合、データ転送LSI500は、通信インタフェース213が受信してバッファメモリ214に記憶したデータをキャッシュメモリ230に転送する。   Similar to the DMA controller 60 included in the computer 1 according to the first embodiment described above, the data transfer LSI 500 transfers data between a device and a memory or between a memory and a memory. In the present embodiment, the data transfer LSI 500 mainly transfers data between the buffer memory 214 and the cache memory 230. This data transfer process is performed as part of the data input / output process when the storage device control apparatus 200 receives a data input / output request from the information processing apparatus 100. When the communication interface 213 receives the data input / output request, the microprocessor 211 generates data transfer information in response to the received data input / output request, and writes the generated data transfer information in the local memory 212. The data transfer LSI 500 reads the data transfer information written in the local memory 212 and transfers data based on the read data transfer information. For example, when the channel control unit 210 receives a data write request from the information processing apparatus 100, the data transfer LSI 500 transfers the data received by the communication interface 213 and stored in the buffer memory 214 to the cache memory 230.

===データ転送LSI===
図7は、データ転送LSI500の構成を示すブロック図である。
データ転送LSI500は、DMA501、PCIインタフェース502、PCIインタフェース503、バッファ制御部504、キャッシュインタフェース505、データ転送情報フェッチ部506を備える。
=== Data Transfer LSI ===
FIG. 7 is a block diagram showing a configuration of the data transfer LSI 500.
The data transfer LSI 500 includes a DMA 501, a PCI interface 502, a PCI interface 503, a buffer control unit 504, a cache interface 505, and a data transfer information fetch unit 506.

PCIインタフェース502は、PCIバスに接続し、PCIバスとの間でデータを授受する。データ転送LSI500は、PCIインタフェース502を介して通信インタフェース213と接続する。
PCIインタフェース503もPCIインタフェース502と同様、PCIバスに接続する。データ転送LSI500はPCIインタフェース503を介してマイクロプロセッサ211やローカルメモリ212と接続する。
なお、通信インタフェース213やマイクロプロセッサ211、ローカルメモリ212などとの接続を同じPCIバスで接続するようにしてもよい。その場合、データ転送LSI500にはPCIインタフェースは少なくとも1つ存在すればよい。また、上記PCIインタフェース502及びPCIインタフェース503はPCIバス以外のバスを使用して外部の装置と接続するようにしてもよい。
The PCI interface 502 is connected to the PCI bus, and exchanges data with the PCI bus. The data transfer LSI 500 is connected to the communication interface 213 via the PCI interface 502.
Similarly to the PCI interface 502, the PCI interface 503 is also connected to the PCI bus. The data transfer LSI 500 is connected to the microprocessor 211 and the local memory 212 via the PCI interface 503.
The communication interface 213, the microprocessor 211, the local memory 212, and the like may be connected using the same PCI bus. In that case, the data transfer LSI 500 only needs to have at least one PCI interface. The PCI interface 502 and the PCI interface 503 may be connected to an external device using a bus other than the PCI bus.

バッファメモリ214は、チャネル制御部210が情報処理装置100との間でデータをやり取りする際に、データを一時的に記憶しておくためのバッファである。
バッファ制御部504は、バッファメモリ214に対するデータのやり取りをするための制御を行う。
キャッシュインタフェース505は、キャッシュメモリ230との間でデータをやり取りするインタフェースである。キャッシュインタフェース505には、より効率的にデータ転送をするためのバッファメモリ等を備えるようにすることもできる。
The buffer memory 214 is a buffer for temporarily storing data when the channel control unit 210 exchanges data with the information processing apparatus 100.
The buffer control unit 504 performs control for exchanging data with the buffer memory 214.
The cache interface 505 is an interface that exchanges data with the cache memory 230. The cache interface 505 may be provided with a buffer memory or the like for transferring data more efficiently.

DMA501は、例えばDMA(Direct Memory Access)プロセッサなどである。
DMA501は、データを転送する元となる記憶領域と、データを転送する先となる記憶領域を指定する情報を設定することによって、データ転送元の記憶領域に記憶されているデータをデータ転送先の記憶領域に転送することができる。DMA501はDMAプロセッサ以外にも、例えばマイクロプロセッサなどのプロセッサ上で実行されるプログラムとしてもよいし、特定用途向けIC上にロジックを組み込むことなどによって実現してもよい。
データ転送情報フェッチ部506は、データ転送に必要な情報をローカルメモリ212から読み出し、DMA501のレジスタに設定を行うなどの処理を行う。データ転送情報フェッチ部506は、例えば、特定用途向けICやマイクロプロセッサとすることができる。
なお、データ転送LSI500は、データ転送情報フェッチ部506を備えず、DMA501がローカルメモリ212にアクセスするようにしてもよい。
The DMA 501 is, for example, a DMA (Direct Memory Access) processor.
The DMA 501 sets the storage area from which data is transferred and the information specifying the storage area from which data is transferred to the data stored in the data transfer source storage area. It can be transferred to a storage area. In addition to the DMA processor, the DMA 501 may be a program executed on a processor such as a microprocessor, or may be realized by incorporating logic on an application specific IC.
The data transfer information fetch unit 506 reads information necessary for data transfer from the local memory 212 and performs processing such as setting the register of the DMA 501. The data transfer information fetch unit 506 can be, for example, an application specific IC or a microprocessor.
The data transfer LSI 500 may not include the data transfer information fetch unit 506, and the DMA 501 may access the local memory 212.

===データ転送情報===
図8は、データ転送LSI500がデータ転送に必要な情報であるデータ転送情報の詳細を示す表である。データ転送情報600は、マスク欄601、転送バイト数欄602、キャッシュアドレス欄603、CRC欄604、転送方向欄605、フラグ欄606、識別情報欄607、チェインフラグ欄608、RCRC欄609、バッファアドレス欄610、LRC欄611を備える。
=== Data transfer information ===
FIG. 8 is a table showing details of data transfer information, which is information necessary for the data transfer LSI 500 to transfer data. The data transfer information 600 includes a mask field 601, a transfer byte number field 602, a cache address field 603, a CRC field 604, a transfer direction field 605, a flag field 606, an identification information field 607, a chain flag field 608, an RCRC field 609, a buffer address. A column 610 and an LRC column 611 are provided.

マイクロプロセッサ211は、ローカルメモリ212の所定のアドレスから複数のデータ転送情報600を連続的に書き込む。よって、データ転送LSI500は、複数のデータ転送情報のそれぞれを連続してメモリから読み出すことができる。
また、マイクロプロセッサ211は、所定の数のデータ転送情報600から形成される一群のデータ転送情報600(以下、転送情報リストと称する)を単位として、一連のデータ転送処理に必要なデータ転送情報600を管理する。一連のデータ転送処理とは、例えば、チャネル制御部210が受信したひとつのデータ入出力要求に応じて行うデータ転送に関して、データの転送元あるいは転送先であるキャッシュメモリ230上の記憶領域が不連続であるような場合に、データ転送LSI500が行う複数のデータ転送処理である。
The microprocessor 211 continuously writes a plurality of data transfer information 600 from a predetermined address in the local memory 212. Therefore, the data transfer LSI 500 can continuously read each of the plurality of data transfer information from the memory.
Further, the microprocessor 211 uses the data transfer information 600 necessary for a series of data transfer processes in units of a group of data transfer information 600 (hereinafter referred to as a transfer information list) formed from a predetermined number of data transfer information 600. Manage. A series of data transfer processes refers to, for example, a storage area on the cache memory 230 that is a data transfer source or a transfer destination is discontinuous with respect to data transfer performed in response to one data input / output request received by the channel control unit 210. In such a case, the data transfer LSI 500 performs a plurality of data transfer processes.

以下に、データ転送情報600の各欄について説明する。
マスク欄601には、当該データ転送情報600の所属する転送情報リストに属するデータ転送情報600のうち、データ転送LSI500が直前に処理をしたデータ転送情報600の各欄に設定されていた値を引き継ぐ目的として、当該データ転送情報600の各欄にコピーして利用する場合に、どの欄の値をコピーするかを示す情報が設定される。
転送バイト数欄602には、転送対象となるデータの長さが設定される。
キャッシュアドレス欄603には、データ転送LSI500がデータの転送を行う転送元あるいは転送先として利用する、キャッシュメモリ230上のアドレスが設定される。
Hereinafter, each column of the data transfer information 600 will be described.
In the mask column 601, among the data transfer information 600 belonging to the transfer information list to which the data transfer information 600 belongs, the value set in each column of the data transfer information 600 processed immediately before by the data transfer LSI 500 is taken over. As an object, information indicating which column value is to be copied when copying and using each column of the data transfer information 600 is set.
In the transfer byte count column 602, the length of data to be transferred is set.
In the cache address column 603, an address on the cache memory 230 used as a transfer source or a transfer destination for the data transfer LSI 500 to transfer data is set.

CRC欄604には、転送対象となるデータについての誤り検出符号が設定される。例えば、マイクロプロセッサ211は、転送対象となるデータについてCRC(Cyclic Redundancy Check)手法を用いてCRC符合を計算し、CRC欄604に設定する。データ転送LSI500はデータ転送を行う際に、この欄に設定された値を用いて、転送対象となるデータに誤りがないことを確認できる。例えば、転送対象となるデータに誤りがあると判断された場合、データ転送LSI500はデータの転送処理を行わないようにすることができる。   In the CRC column 604, an error detection code for data to be transferred is set. For example, the microprocessor 211 calculates a CRC code for data to be transferred using a CRC (Cyclic Redundancy Check) technique, and sets the CRC code in the CRC column 604. When the data transfer LSI 500 performs data transfer, it can use the value set in this field to confirm that there is no error in the data to be transferred. For example, if it is determined that there is an error in the data to be transferred, the data transfer LSI 500 can be configured not to perform data transfer processing.

転送方向欄605には、データ転送LSI500が、キャッシュメモリ230に記憶されているデータをバッファメモリ214に転送するのか、あるいは、バッファメモリ214に記憶されているデータをキャッシュメモリ230に転送するのかを示す値が設定される。転送方向欄605には、例えば、データ転送LSI500がデータをキャッシュメモリ230からバッファメモリ214に転送する場合には「0」が設定され、バッファメモリ214からキャッシュメモリ230に転送する場合には「1」が設定される。   The transfer direction column 605 indicates whether the data transfer LSI 500 transfers the data stored in the cache memory 230 to the buffer memory 214 or transfers the data stored in the buffer memory 214 to the cache memory 230. The indicated value is set. In the transfer direction column 605, for example, “0” is set when the data transfer LSI 500 transfers data from the cache memory 230 to the buffer memory 214, and “1” when the data is transferred from the buffer memory 214 to the cache memory 230. Is set.

フラグ欄606には、様々な設定項目を示す情報が設定される。マイクロプロセッサ211は、例えば、上記のCRC欄の値を用いたデータの誤り検出をするかどうか、あるいはディスク制御部240に対してデータの書き込みを同期的にするか非同期的にするかといった設定を示す値をフラグ欄606に設定することができる。   Information indicating various setting items is set in the flag column 606. For example, the microprocessor 211 determines whether to perform error detection of data using the value in the CRC field, or whether to write data to the disk control unit 240 synchronously or asynchronously. The indicated value can be set in the flag column 606.

識別情報欄607には、マイクロプロセッサ211が転送情報リスト毎に付与する識別情報(処理識別情報)が設定される。これにより、データ転送LSI500は、同一の転送情報リストに所属する一連のデータ転送情報を連続的にローカルメモリ212から読み出すことが可能となる。   In the identification information column 607, identification information (processing identification information) given by the microprocessor 211 for each transfer information list is set. As a result, the data transfer LSI 500 can continuously read out a series of data transfer information belonging to the same transfer information list from the local memory 212.

チェインフラグ欄608には、転送情報リストに属する一連のデータ転送情報600のおいて、直後に続くデータ転送情報600を処理するべきかどうかを示すフラグ値が設定される。データ転送LSI500は、識別情報欄607あるいはチェインフラグ欄608に設定される値を用いて、メモリから読み出したデータ転送情報が関連して処理されるデータ転送情報群に所属するかどうかを判別することができる。また、データ転送LSI500は、当該データ転送情報600が所属するデータ転送群に所属するの他のデータ転送情報600を読み出し、データ転送処理を行うことができる。   In the chain flag column 608, a flag value indicating whether or not to process the data transfer information 600 that immediately follows in the series of data transfer information 600 belonging to the transfer information list is set. The data transfer LSI 500 uses the value set in the identification information column 607 or the chain flag column 608 to determine whether or not the data transfer information read from the memory belongs to the data transfer information group to be processed in association with it. Can do. In addition, the data transfer LSI 500 can read out other data transfer information 600 belonging to the data transfer group to which the data transfer information 600 belongs, and perform data transfer processing.

RCRC欄609には、転送対象となるデータについての誤り検出符号が設定される。RCRC欄609に設定される誤り検出符号は、例えば、CRC手法によって計算される。RCRC欄609は、例えば、本記憶デバイス制御装置200が情報処理装置100との記憶デバイス300との間でのデータ転送ではなく、他の記憶装置に対するデータの複製(リモートコピー)に関するデータの転送を実施する場合に転送対象となるデータについての誤り検出符号である。RCRC欄609には、上述したCRC欄604と同様に転送対象となるデータについての誤り検出符号が設定されるが、RCRC欄609に設定される誤り検出符号は、後述する終了ステータス情報にコピーされ、ローカルメモリ212に書き込まれる。よって、マイクロプロセッサ211はデータ転送処理終了後に、その転送対象となったデータについての誤り検出符号を取得することができる。マイクロプロセッサ211は、例えば、データ転送処理の転送対象となるデータについての誤り検出符合を計算する初期値として、終了ステータス情報から取得した過去のデータ転送処理の転送対象となったデータについての誤り検出符号を用いることができる。マイクロプロセッサ211は、複数のデータ転送情報600に跨って転送対象となるデータ全体についての誤り検出符号を計算することができる。   In the RCRC column 609, an error detection code for data to be transferred is set. The error detection code set in the RCRC column 609 is calculated by, for example, a CRC method. In the RCRC column 609, for example, the storage device control apparatus 200 does not transfer data between the information processing apparatus 100 and the storage device 300, but transfers data related to data replication (remote copy) to another storage apparatus. This is an error detection code for data to be transferred when implemented. In the RCRC column 609, an error detection code for data to be transferred is set in the same manner as the CRC column 604 described above, but the error detection code set in the RCRC column 609 is copied to end status information described later. Are written in the local memory 212. Therefore, the microprocessor 211 can acquire an error detection code for the data to be transferred after the data transfer process is completed. For example, the microprocessor 211 detects an error in the data to be transferred in the past data transfer process acquired from the end status information as an initial value for calculating an error detection code for the data to be transferred in the data transfer process. A sign can be used. The microprocessor 211 can calculate an error detection code for the entire data to be transferred across a plurality of data transfer information 600.

バッファアドレス欄610には、データ転送LSI500がデータの転送を行う転送元あるいは転送先として利用するバッファメモリ214上のアドレスが設定される。
LRC欄611には、当該データ転送情報600についての誤り検出符号が設定される。この誤り検出符号は、例えば、LRC手法によって計算されたLRC符号である。マイクロプロセッサ211は、データ転送情報600をローカルメモリ212上に書き込む基準となるアドレスを初期値として、マスク欄601、転送バイト数欄602、キャッシュアドレス欄603、CRC欄604、転送方向欄605、フラグ欄606、識別情報欄607、チェインフラグ欄608、RCRC欄609、及びバッファアドレス欄610の各欄の値を用いてLRC符号を計算する。
In the buffer address column 610, an address on the buffer memory 214 used as a transfer source or a transfer destination for the data transfer LSI 500 to transfer data is set.
In the LRC column 611, an error detection code for the data transfer information 600 is set. This error detection code is, for example, an LRC code calculated by the LRC method. The microprocessor 211 sets a mask address 601, a transfer byte number field 602, a cache address field 603, a CRC field 604, a transfer direction field 605, a flag, with an address serving as a reference for writing the data transfer information 600 on the local memory 212 as an initial value. The LRC code is calculated using the values in the fields 606, identification information field 607, chain flag field 608, RCRC field 609, and buffer address field 610.

データ転送LSI500は、読み出したデータ転送情報が正しい情報であるかどうかを、データ転送情報に付帯される誤り検出符号により確認することができる。よって、より信頼性の高いデータ転送を実現できる。
また、マイクロプロセッサ211は、データ転送情報のみでなく、データ転送LSI500がローカルメモリ212からデータ転送情報を読み出す位置を決定するための基準位置も計算対象に含めて誤り検出符号を生成する。そのため、データ転送LSI500は、データ転送情報の内容に誤りがある場合であっても、データ転送LSI500がデータ転送情報を読み出したメモリ上の記憶位置が間違っている場合であっても、誤りがあることを検出することができる。
The data transfer LSI 500 can confirm whether or not the read data transfer information is correct information by using an error detection code attached to the data transfer information. Therefore, more reliable data transfer can be realized.
The microprocessor 211 also generates an error detection code including not only the data transfer information but also the reference position for determining the position where the data transfer LSI 500 reads the data transfer information from the local memory 212. Therefore, the data transfer LSI 500 has an error even when there is an error in the contents of the data transfer information, or even when the storage position on the memory from which the data transfer LSI 500 has read the data transfer information is incorrect. Can be detected.

なお、本実施の形態において、データ転送情報600のCRC欄604、RCRC欄609及びLRC欄611に設定される誤り検出符号は、CRC符号やLRC符号に限定されるものではなく、チェックサムやハミング符号など様々なものを用いることができる。また、データ転送情報600のCRC欄604、RCRC欄609及びLRC欄611に設定される誤り検出符号は、データ転送LSI500が計算するようにしてもよい。   In the present embodiment, the error detection codes set in the CRC column 604, RCRC column 609, and LRC column 611 of the data transfer information 600 are not limited to CRC codes or LRC codes, but checksums and hammings. Various things, such as a code | symbol, can be used. Further, the data transfer LSI 500 may calculate the error detection codes set in the CRC column 604, the RCRC column 609, and the LRC column 611 of the data transfer information 600.

また、本実施の形態では、識別情報欄607に設定される識別情報は転送情報リスト単位に設定されるが、データ転送情報600単位に識別情報が付与されるようにしてもよい。データ転送LSI500は、データ転送情報600に基づいてデータ転送処理を行い、その結果である後述の終了ステータス情報を転送情報リスト単位に付与された識別情報に対応させてローカルメモリ212に書き込む。よって、マイクロプロセッサ211は、識別情報を付与する単位でデータ転送処理の結果を取得することができる。   In this embodiment, the identification information set in the identification information column 607 is set in units of transfer information lists, but the identification information may be given in units of data transfer information 600. The data transfer LSI 500 performs data transfer processing based on the data transfer information 600, and writes the end status information, which will be described later, into the local memory 212 in correspondence with the identification information assigned to each transfer information list. Therefore, the microprocessor 211 can obtain the result of the data transfer process in units of providing identification information.

===終了ステータス情報===
図9は、データ転送LSI500によるデータ転送が終了した際に、データ転送LSI500がローカルメモリ212に書き込む終了ステータス情報の一例を示す表である。
=== End status information ===
FIG. 9 is a table showing an example of end status information that the data transfer LSI 500 writes to the local memory 212 when the data transfer by the data transfer LSI 500 ends.

終了ステータス情報700は、識別情報欄701、終了ステータスコード欄702、転送処理数欄703、RCRC欄704を備える。
識別情報欄701には、データ転送LSI500が読み出したデータ転送情報600の識別情報欄607に設定されている識別情報がそのまま設定される。これにより、データ転送LSI500は終了ステータス情報700を転送情報リストと対応付ける
終了ステータスコード欄702には、データ転送LSI500がデータを転送をどのように終了したかを示す値が設定される。本実施の形態では、終了ステータスコード欄702の第1ビットが「1」である場合、データ転送LSI500が転送情報リストについてのデータ転送処理を正常に終了したことを示す。第2ビットが「1」である場合は、データ転送LSI500がマイクロプロセッサ211の強制終了コマンドによってデータ転送処理を強制終了したことを示す。第3ビットが「1」である場合は、データ転送LSI500がマイクロプロセッサ211からの中止コマンドによってデータ転送処理を中止していることを示す。第4ビットが「1」である場合は、データ転送LSI500がハードウェアのエラーによってデータ転送処理を中止したことを示す。
The end status information 700 includes an identification information column 701, an end status code column 702, a transfer processing number column 703, and an RCRC column 704.
In the identification information column 701, the identification information set in the identification information column 607 of the data transfer information 600 read by the data transfer LSI 500 is set as it is. As a result, the data transfer LSI 500 associates the end status information 700 with the transfer information list. In the end status code column 702, a value indicating how the data transfer LSI 500 has finished transferring data is set. In the present embodiment, when the first bit of the end status code column 702 is “1”, it indicates that the data transfer LSI 500 has normally ended the data transfer process for the transfer information list. When the second bit is “1”, it indicates that the data transfer LSI 500 has forcibly terminated the data transfer process by the forced termination command of the microprocessor 211. When the third bit is “1”, it indicates that the data transfer LSI 500 has stopped the data transfer process by the stop command from the microprocessor 211. When the fourth bit is “1”, it indicates that the data transfer LSI 500 has stopped the data transfer process due to a hardware error.

本発明によれば、データ転送情報600と終了ステータス情報700とが、マイクロプロセッサ211がデータ転送情報600に付与する識別情報によって対応づけられる。従って、例えば、ローカルメモリ212に複数の終了ステータス情報700が併存する場合でも、マイクロプロセッサ211は前記各終了ステータスが、それぞれどのデータ転送情報600についての終了ステータスであるのかを特定することができる。また、マイクロプロセッサ211は、データ転送情報600をデータ転送LSI500が正しく処理して、ローカルメモリ212へ終了ステータス情報700を返答したかを判断することができる。例えば、データ転送LSI500により終了ステータス情報700が書き込まれるローカルメモリ212上のアドレスが既知である場合、マイクロプロセッサ211は、データ転送LSI500がローカルメモリ212に書き込んだ終了ステータス情報700が、マイクロプロセッサ211が指示したデータ転送情報600に対応するものであることを確認できる。これにより、マイクロプロセッサ211は、データ転送LSI500がマイクロプロセッサ211の期待するデータ転送情報600を読み出したこと、及びデータ転送LSI500がローカルメモリ212上の既知のアドレスに終了ステータス情報700を書き込んだことを検査することができる。   According to the present invention, the data transfer information 600 and the end status information 700 are associated with each other by the identification information provided to the data transfer information 600 by the microprocessor 211. Therefore, for example, even when a plurality of end status information 700 coexists in the local memory 212, the microprocessor 211 can specify which data transfer information 600 each end status is an end status of. Further, the microprocessor 211 can determine whether the data transfer LSI 500 has correctly processed the data transfer information 600 and returned the end status information 700 to the local memory 212. For example, when the address on the local memory 212 to which the end status information 700 is written by the data transfer LSI 500 is known, the microprocessor 211 indicates that the end status information 700 written to the local memory 212 by the data transfer LSI 500 is It can be confirmed that it corresponds to the instructed data transfer information 600. Accordingly, the microprocessor 211 indicates that the data transfer LSI 500 has read the data transfer information 600 expected by the microprocessor 211 and that the data transfer LSI 500 has written the end status information 700 to a known address on the local memory 212. Can be inspected.

転送処理数欄703には、転送情報リストに所属するデータ転送情報600のうち、データ転送LSI500が処理をしたデータ転送情報600の数が設定される。マイクロプロセッサ211は、データ転送情報600のチェインフラグ欄608を用いて、転送情報リストのうち処理すべきデータ転送情報600の数をデータ転送LSI500に指示し、データ転送LSI500は、実際にデータ転送の処理を行った数を終了ステータス情報700の転送処理数欄703に設定する。マイクロプロセッサ211は、指示したデータ転送処理の数と、データ転送LSI500が行った処理の数とを比較して、データ転送LSI500が正しく動作したかどうかを判断することができる。
RCRC欄704には、データ転送情報600のRCRC欄509に設定されている値がそのまま設定される。なお、データ転送LSI500が、データ転送情報600のRCRC欄509に設定される値に基づいて、転送対象となるデータ等についての誤り検出符号を計算し、その結果をRCRC欄704に設定するようにもできる。
In the transfer processing number column 703, the number of data transfer information 600 processed by the data transfer LSI 500 among the data transfer information 600 belonging to the transfer information list is set. The microprocessor 211 uses the chain flag column 608 of the data transfer information 600 to instruct the data transfer LSI 500 of the number of data transfer information 600 to be processed in the transfer information list, and the data transfer LSI 500 actually performs the data transfer. The number of processings is set in the transfer processing number field 703 of the end status information 700. The microprocessor 211 can compare the instructed number of data transfer processes with the number of processes performed by the data transfer LSI 500 to determine whether the data transfer LSI 500 has operated correctly.
In the RCRC column 704, the value set in the RCRC column 509 of the data transfer information 600 is set as it is. The data transfer LSI 500 calculates an error detection code for the data to be transferred based on the value set in the RCRC column 509 of the data transfer information 600 and sets the result in the RCRC column 704. You can also.

本発明では、マイクロプロセッサ211からデータ転送LSI500に対してメモリを介して間接的にデータ転送情報が通知されるが、このようにデータ転送LSI500が終了ステータス情報700をメモリに書き込むことで、例えば、マイクロプロセッサ211が終了ステータスを事後的に調べることで、データ転送LSI500によりデータ転送処理が行われたかどうかを調べることができる。   In the present invention, the data transfer information is indirectly notified from the microprocessor 211 to the data transfer LSI 500 via the memory. When the data transfer LSI 500 writes the end status information 700 in the memory in this way, for example, The microprocessor 211 can check whether the data transfer processing has been performed by the data transfer LSI 500 by checking the end status afterwards.

データ転送LSI500は、ローカルメモリ212から読み出したデータ転送情報600の識別情報を、データ転送処理の終了ステータス情報700の識別情報欄701に設定する。従って、複数の終了ステータス情報700がローカルメモリ212上に併存する場合にも、マイクロプロセッサ211は、各終了ステータス情報700が夫々どのデータ転送情報600についての終了ステータス情報700であるかを特定することができる。
データ転送LSI500は、データ転送処理を終了すると、その結果を終了ステータス情報700として、ローカルメモリ212の所定のアドレスから順に書き込む。本実施の形態では、このローカルメモリ212の所定のアドレスは、マイクロプロセッサ211が初期設定などによって、予めデータ転送LSI500のレジスタに設定するものとする。以下に、データ転送LSI500の各レジスタの設定について説明する。
The data transfer LSI 500 sets the identification information of the data transfer information 600 read from the local memory 212 in the identification information column 701 of the end status information 700 of the data transfer process. Therefore, even when a plurality of end status information 700 coexists on the local memory 212, the microprocessor 211 specifies which data transfer information 600 each of the end status information 700 is the end status information 700 for. Can do.
When the data transfer LSI 500 completes the data transfer process, the result is written as end status information 700 in order from a predetermined address in the local memory 212. In this embodiment, it is assumed that the predetermined address of the local memory 212 is set in advance in the register of the data transfer LSI 500 by the microprocessor 211 by initial setting or the like. Hereinafter, setting of each register of the data transfer LSI 500 will be described.

===レジスタ構成===
図10は、データ転送LSI500が備えるレジスタを示す図である。データ転送LSI500は、LPBAレジスタ801、LSBAレジスタ802、LSIBAレジスタ803、LNUMレジスタ804、SNUMレジスタ805、LIPレジスタ806、STPレジスタ807、LOPレジスタ808、POPレジスタ809、ABORTレジスタ810を備えている。
=== Register configuration ===
FIG. 10 is a diagram illustrating a register included in the data transfer LSI 500. The data transfer LSI 500 includes an LPBA register 801, an LSBA register 802, an LSIBA register 803, an LNUM register 804, an SNUM register 805, an LIP register 806, an STP register 807, an LOP register 808, a POP register 809, and an ABORT register 810.

LPBAレジスタ801には、マイクロプロセッサ211がローカルメモリ212にデータ転送情報600を書き込むアドレスの基準となるアドレス(以下、リストベースアドレスと称する)が設定される。マイクロプロセッサ211は、LPBAレジスタ801に設定されるリストベースアドレスから順にデータ転送情報600を書き込む。
LSBAレジスタ802には、データ転送LSI500がローカルメモリ212に終了ステータス情報700を書き込むアドレスの基準となるアドレス(以下、ステータスベースアドレスと称する)が設定される。データ転送LSI500は、ステータスベースアドレスから順に終了ステータス情報700を書き込む。
LSIBAレジスタ803には、データ転送LSI500がステータスベースアドレスから何番目に終了ステータス情報700を書き込んだかを示すポインタ(以下ステータスポインタと称する)を書き込むローカルメモリ212上のアドレス(以下、ステータスポインタアドレスと称する)が設定される。
LNUMレジスタ804には、1つの転送情報リストに設定可能なデータ転送情報600の数が設定される。
SNUMレジスタ805には、データ転送LSI500がローカルメモリ212上に終了ステータス700を書き込むことのできる数が設定される。
In the LPBA register 801, an address (hereinafter referred to as a list base address) serving as a reference for the address at which the microprocessor 211 writes the data transfer information 600 in the local memory 212 is set. The microprocessor 211 writes the data transfer information 600 in order from the list base address set in the LPBA register 801.
In the LSBA register 802, an address serving as a reference for the address at which the data transfer LSI 500 writes the end status information 700 in the local memory 212 (hereinafter referred to as a status base address) is set. The data transfer LSI 500 writes the end status information 700 in order from the status base address.
In the LSIBA register 803, an address (hereinafter referred to as a status pointer address) on the local memory 212 to which a pointer (hereinafter referred to as a status pointer) indicating how many times the status transfer address is written by the data transfer LSI 500 is written. ) Is set.
In the LNUM register 804, the number of data transfer information 600 that can be set in one transfer information list is set.
In the SNUM register 805, the number that the data transfer LSI 500 can write the end status 700 on the local memory 212 is set.

LIPレジスタ806には、マイクロプロセッサ211がローカルメモリ212に書き込んだ転送情報リストがリストベースアドレスから何番目のものであるかを示す情報(以下、リスト書き込みポインタと称する)がマイクロプロセッサ211により設定される。マイクロプロセッサ211は転送情報リストに属するデータ転送情報600をローカルメモリ212に書き込む度に、LIPレジスタ806を更新する。
STPレジスタ807には、ステータスポインタが設定される。データ転送LSI500は、終了ステータス情報700をローカルメモリ212に書き込む度にSTPレジスタ807を更新する。また、データ転送LSI500は、STPレジスタ807に設定された値を、ローカルメモリ212上のステータスポインタアドレスに書き込む。
LOPレジスタ808には、データ転送LSI500が読み出したデータ転送情報600が所属する転送情報リストがリストベースアドレスから何番目のものであるかを示すポインタ(以下、リスト読み出しポインタと称する)がデータ転送LSI500によって設定される。
The LIP register 806 is set by the microprocessor 211 with information (hereinafter referred to as a list write pointer) indicating the number of the transfer information list written in the local memory 212 by the microprocessor 211 from the list base address. The The microprocessor 211 updates the LIP register 806 every time the data transfer information 600 belonging to the transfer information list is written to the local memory 212.
A status pointer is set in the STP register 807. The data transfer LSI 500 updates the STP register 807 every time the end status information 700 is written to the local memory 212. In addition, the data transfer LSI 500 writes the value set in the STP register 807 to the status pointer address on the local memory 212.
In the LOP register 808, a pointer (hereinafter referred to as a list read pointer) indicating the number of the transfer information list to which the data transfer information 600 read by the data transfer LSI 500 belongs is from the list base address (hereinafter referred to as a list read pointer). Set by

POPレジスタ809には、データ転送LSI500がローカルメモリ212から読み出したデータ転送情報600が属する転送情報リストについて、その転送情報リストに属するデータ転送情報600のうちデータ転送LSI500が実際の処理を行った数が設定される。マイクロプロセッサ212は、上述したデータ転送情報600のチェインフラグ欄608などを用いて指示したデータ転送処理の数と、データ転送LSI500が実際に行ったデータ転送処理の数とを比較して、正しくデータ転送処理が行われたことを確認することができる。   In the POP register 809, regarding the transfer information list to which the data transfer information 600 read out from the local memory 212 by the data transfer LSI 500 belongs, the number of data transfer LSI 500 that has actually performed the data transfer information 600 in the transfer information list. Is set. The microprocessor 212 compares the number of data transfer processes instructed by using the chain flag column 608 of the data transfer information 600 described above with the number of data transfer processes actually performed by the data transfer LSI 500, and corrects the data. It can be confirmed that the transfer process has been performed.

ABORTレジスタ810は、データ転送LSI500が行っているデータ転送処理を中止するように指示するためのレジスタである。ABORTレジスタ810には、データ転送LSI500が転送情報リスト単位でデータ転送処理を行い、各データ転送処理が終わったところで中止するように指示する値(以下、SUSABORTと称する)を設定することができる。SUSABORTとは、例えば、「0x0004」のような値である。また、ABORTレジスタ810には、データ転送LSI500が実行しているデータ転送処理を即座に終了することを指示する値(以下、MPABORTと称する)を設定することもできる。MPABORTとは、例えば、「0x0001」のような値である。なお、データ転送LSI500がデータ転送処理の中止を行う処理の詳細は後述する。   The ABORT register 810 is a register for instructing to stop the data transfer processing performed by the data transfer LSI 500. The ABORT register 810 can be set with a value (hereinafter referred to as SUSABORT) that instructs the data transfer LSI 500 to perform data transfer processing in units of transfer information lists and to stop when each data transfer processing is completed. SUSABORT is a value such as “0x0004”, for example. In addition, a value (hereinafter referred to as MPABORT) for instructing to immediately end the data transfer processing being executed by the data transfer LSI 500 can be set in the ABORT register 810. MPABORT is a value such as “0x0001”, for example. The details of the process in which the data transfer LSI 500 cancels the data transfer process will be described later.

データ転送LSI500は、LIPレジスタ806に設定されているリスト書き込みポインタとLOPレジスタ808に設定されているリスト読み出しポインタとを比較することによって、マイクロプロセッサ211から新しいデータ転送処理の指示が与えられたことを検出することができる。
データ転送LSI500は、LIPレジスタ806及びLOPレジスタ808の内容を比較することにより、後続して処理すべき転送情報リストが存在するかどうかを調べることができる。
The data transfer LSI 500 has received a new data transfer processing instruction from the microprocessor 211 by comparing the list write pointer set in the LIP register 806 with the list read pointer set in the LOP register 808. Can be detected.
The data transfer LSI 500 can check whether there is a transfer information list to be processed subsequently by comparing the contents of the LIP register 806 and the LOP register 808.

このように、マイクロプロセッサ211がリストベースアドレスから順に転送情報リストを書き込み、データ転送LSI500がリストベースアドレスから順に転送情報リストを読み出すことができる。つまり、ローカルメモリ212上に転送情報リストを登録するキューを実現することができる。   Thus, the microprocessor 211 can write the transfer information list in order from the list base address, and the data transfer LSI 500 can read the transfer information list in order from the list base address. That is, a queue for registering the transfer information list on the local memory 212 can be realized.

なお、上述した各レジスタは、データ転送情報フェッチ回路506が備えるようにしてもよいし、DMA501が備えるようにしてもよい。また、これらのレジスタに格納する情報は、レジスタではなく、ローカルメモリ212や共有メモリ220に格納し、データ転送LSI500がローカルメモリ212や共有メモリ220を参照するようにしてもよい。   Each register described above may be included in the data transfer information fetch circuit 506, or may be included in the DMA 501. Further, the information stored in these registers may be stored in the local memory 212 or the shared memory 220 instead of the register, and the data transfer LSI 500 may refer to the local memory 212 or the shared memory 220.

===転送情報リストを用いたデータ転送処理の流れ===
次に、本実施の形態による、転送情報リストを用いたデータ転送処理について説明する。図11は、転送情報リストを用いたデータ転送処理が行われる処理の流れを示すフローチャートである。
=== Flow of Data Transfer Processing Using Transfer Information List ===
Next, data transfer processing using a transfer information list according to the present embodiment will be described. FIG. 11 is a flowchart showing a flow of processing in which data transfer processing using a transfer information list is performed.

マイクロプロセッサ211は、データ転送LSI500のLNUMレジスタ804に設定した所定の数のデータ転送情報600を転送情報リストとしてローカルメモリ212に書き込み(S11001)、データ転送LSI500のLIPレジスタ806にリストポインタを設定する(S11002)。   The microprocessor 211 writes a predetermined number of data transfer information 600 set in the LNUM register 804 of the data transfer LSI 500 to the local memory 212 as a transfer information list (S11001), and sets a list pointer in the LIP register 806 of the data transfer LSI 500. (S11002).

一方、データ転送LSI500は、LIPレジスタ806とLOPレジスタ808とを比較しながら(S11003)、LIPレジスタ806に新しいリストポインタが設定されるのを待機している。データ転送LSI500は、マイクロプロセッサ212によってLIPレジスタ806にリストポインタが設定されたことを検出すると(S11003:NO)、ローカルメモリ212上のデータ転送情報600を読み出す(S11004)。データ転送LSI500内部では、データ転送情報フェッチ回路506がローカルメモリ212からデータ転送情報600が読み出し、DMA501のレジスタにデータ転送処理に必要な値を設定する(S11005)。データ転送LSI500は読み出したデータ転送情報600に基づいて、キャッシュメモリ230とバッファメモリ214との間のデータ転送に関する処理を行う(S11006)。
データ転送LSI500はデータ転送処理を終了すると、そのデータ転送情報600のチェインフラグ欄608に設定されている値が「1」であるかどうかを調べる(S11007)。データ転送情報600のチェインフラグ欄608に設定されている値が「1」であった場合(S11007:YES)には(S11004)に進む。ただし、次の(S11004)において読み出すデータ転送情報600は、先にデータ転送LSI500がデータ転送情報600を読み出したアドレスから、データ転送情報600のデータ長分進めたアドレスに記憶されているデータ転送情報600を読み出す。このようにして、データ転送LSI500は、読み出したデータ転送情報600のチェインフラグ608に基づいて、順次データ転送情報600を読み出す。なお、データ転送LSI500は、同一の転送情報リストに属するデータ転送情報600の全てを一度に読み出すようにしてもよい。この場合、データ転送LSI500は、データ転送情報600の識別情報欄607に同一の値が設定されているデータ転送情報600を、同一の転送情報リストに属しているものと判断する。
On the other hand, the data transfer LSI 500 waits for a new list pointer to be set in the LIP register 806 while comparing the LIP register 806 and the LOP register 808 (S11003). When the data transfer LSI 500 detects that the list pointer is set in the LIP register 806 by the microprocessor 212 (S11003: NO), the data transfer LSI 500 reads the data transfer information 600 on the local memory 212 (S11004). In the data transfer LSI 500, the data transfer information fetch circuit 506 reads the data transfer information 600 from the local memory 212, and sets a value necessary for data transfer processing in the register of the DMA 501 (S11005). The data transfer LSI 500 performs processing related to data transfer between the cache memory 230 and the buffer memory 214 based on the read data transfer information 600 (S11006).
When the data transfer LSI 500 completes the data transfer process, it checks whether the value set in the chain flag column 608 of the data transfer information 600 is “1” (S11007). If the value set in the chain flag column 608 of the data transfer information 600 is “1” (S11007: YES), the process proceeds to (S11004). However, the data transfer information 600 to be read in the next (S11004) is the data transfer information stored in the address advanced by the data length of the data transfer information 600 from the address from which the data transfer LSI 500 previously read the data transfer information 600. 600 is read. In this way, the data transfer LSI 500 sequentially reads the data transfer information 600 based on the chain flag 608 of the read data transfer information 600. Note that the data transfer LSI 500 may read all the data transfer information 600 belonging to the same transfer information list at a time. In this case, the data transfer LSI 500 determines that the data transfer information 600 in which the same value is set in the identification information column 607 of the data transfer information 600 belongs to the same transfer information list.

データ転送情報600のチェインフラグ欄608が「1」でなかった場合(S11007:NO)には、データ転送LSI500は、データ転送処理の結果を終了ステータス情報700としてローカルメモリ212に書き込み(S11008)、STPレジスタ807に設定されるステータスポインタを1つ増やす(S11009)。データ転送LSI500は、STPレジスタ807に設定されたステータスポインタをローカルメモリ212上のステータスポインタアドレスに書き込み、LOPレジスタ808に設定されるリストポインタを1増やして、LOPレジスタ808を更新する(S11010)。   If the chain flag column 608 of the data transfer information 600 is not “1” (S11007: NO), the data transfer LSI 500 writes the result of the data transfer process as the end status information 700 in the local memory 212 (S11008). The status pointer set in the STP register 807 is incremented by one (S11009). The data transfer LSI 500 writes the status pointer set in the STP register 807 to the status pointer address on the local memory 212, increments the list pointer set in the LOP register 808 by 1, and updates the LOP register 808 (S11010).

一方、データ転送LSI500によってステータスポインタが更新されると、マイクロプロセッサ211はその更新を検出し(S11011:YES)、ローカルメモリ212から終了ステータス情報700を読み出し、例えば、情報処理装置100にエラー情報を送信したり、表示装置にエラーの表示をするなど、その終了ステータス情報700に応じた終了処理を行う(S11012)。   On the other hand, when the status pointer is updated by the data transfer LSI 500, the microprocessor 211 detects the update (S11011: YES), reads the end status information 700 from the local memory 212, and sends error information to the information processing apparatus 100, for example. An end process corresponding to the end status information 700, such as transmission or display of an error on the display device, is performed (S11012).

このように、マイクロプロセッサ211が、複数のデータ転送情報600をひとつの転送情報リストとしてローカルメモリ212に書き込むことによって、データ転送LSI500は、複数のデータ転送情報のそれぞれを連続してメモリから読み出すことができる。また、データ転送LSI500は、メモリから読み出したデータ転送情報600が関連して処理されるデータ転送情報群に所属するかどうかを、データ転送情報600の識別情報を用いて判別することができる。また、データ転送LSI500は、ローカルメモリ212から読み出したデータ転送情報600の識別情報欄607あるいはチェインフラグ欄608を用いて、そのデータ転送情報が所属するデータ転送群に所属するの他のデータ転送情報600を読み出し、データ転送処理を行うことができる。   As described above, the microprocessor 211 writes the plurality of data transfer information 600 as one transfer information list in the local memory 212, so that the data transfer LSI 500 continuously reads each of the plurality of data transfer information from the memory. Can do. Further, the data transfer LSI 500 can determine whether or not the data transfer information 600 read from the memory belongs to the data transfer information group to be processed in association using the identification information of the data transfer information 600. Further, the data transfer LSI 500 uses the identification information column 607 or the chain flag column 608 of the data transfer information 600 read from the local memory 212, and uses the other data transfer information belonging to the data transfer group to which the data transfer information belongs. 600 can be read and data transfer processing can be performed.

例えば、ディスクアレイ装置において、外部ホスト装置からデータの書き込み要求に付随する書き込みデータはキャッシュメモリに転送される。この場合に、キャッシュメモリ上に書き込みデータの全てについて連続したアドレスを確保できない場合がある。このように、データの転送元や転送先の記憶領域が不連続の領域であるような場合等、複数のデータ転送処理を連続して行いたい場合、本発明では、第1のプロセッサは、不連続の記憶領域を指定する複数のデータ転送情報に同一の処理識別情報を設定し、それら一群のデータ転送情報をキューに登録する。第2のプロセッサは、同一の処理識別情報が付帯されている一群のデータ転送情報についてデータ転送処理を行うことで、一群のデータ転送転送情報に対応するデータ転送処理を連続して行うことができる。   For example, in a disk array device, write data accompanying a data write request from an external host device is transferred to a cache memory. In this case, a continuous address may not be secured for all the write data on the cache memory. As described above, when a plurality of data transfer processes are to be performed continuously, such as when the data transfer source and transfer destination storage areas are discontinuous areas, in the present invention, the first processor The same processing identification information is set in a plurality of data transfer information designating continuous storage areas, and the group of data transfer information is registered in the queue. The second processor can continuously perform the data transfer process corresponding to the group of data transfer transfer information by performing the data transfer process on the group of data transfer information attached with the same process identification information. .

なお、データ転送LSI500はSTPレジスタ807に設定されるステータスポインタを定期的にローカルメモリ212に書き込むようにしてもよい。また、データ転送LSI500はSTPレジスタを用いず、直接ローカルメモリ212にステータスポインタを格納するようにしてもよい。   Note that the data transfer LSI 500 may periodically write the status pointer set in the STP register 807 to the local memory 212. Further, the data transfer LSI 500 may store the status pointer directly in the local memory 212 without using the STP register.

===転送情報リスト単位でのデータ転送処理の中止===
次に、データ転送LSI500が上記のようなデータ転送処理を中止する処理について説明する。
=== Cancellation of data transfer processing in units of transfer information list ===
Next, a process in which the data transfer LSI 500 stops the data transfer process as described above will be described.

上述したように、データ転送LSI500は、転送情報リストに設定されている複数のデータ転送情報600について、チェインフラグ欄608に「1」が設定されている間、連続的にデータ転送処理を行う。ここで、マイクロプロセッサ211が、データ転送LSI500のABORTレジスタ810にSUSABORTを書き込むと、データ転送LSI500は、上記の転送情報リストに設定されている複数のデータ転送情報についての一連のデータ転送処理を終了した後に、ローカルメモリ212に書き込まれている後続の転送情報リストについてのデータ転送処理を中止する。一方、マイクロプロセッサ211がデータ転送LSI500のABORTレジスタ810にMPABORTを書き込むと、データ転送LSI500は、上記のデータ転送処理を行っている間であっても、処理を中止する。すなわち、マイクロプロセッサ211は、MPABORTをABORTレジスタ810に書き込むことにより、データ転送LSI500が実行している処理を強制終了することが可能となる。そのため、マイクロプロセッサ211は、例えば、データ転送LSI500がローカルメモリ212に終了ステータス情報700を一定期間書き込まなかった場合に、MPABORTをABORTレジスタ810に書き込み、データ転送LSI500のデータ転送処理を強制終了するように、データ転送LSI500を制御することができる。   As described above, the data transfer LSI 500 continuously performs data transfer processing for a plurality of data transfer information 600 set in the transfer information list while “1” is set in the chain flag column 608. Here, when the microprocessor 211 writes SUSABORT to the ABORT register 810 of the data transfer LSI 500, the data transfer LSI 500 ends a series of data transfer processes for a plurality of data transfer information set in the transfer information list. After that, the data transfer process for the subsequent transfer information list written in the local memory 212 is stopped. On the other hand, when the microprocessor 211 writes MPABORT to the ABORT register 810 of the data transfer LSI 500, the data transfer LSI 500 stops the process even while the data transfer process is being performed. That is, the microprocessor 211 can forcibly terminate the process being executed by the data transfer LSI 500 by writing MPABORT to the ABORT register 810. Therefore, for example, when the data transfer LSI 500 does not write the end status information 700 in the local memory 212 for a certain period, the microprocessor 211 writes MPABORT in the ABORT register 810 and forcibly ends the data transfer processing of the data transfer LSI 500. In addition, the data transfer LSI 500 can be controlled.

データ転送LSI500がデータ転送処理を中止する流れは、図4を用いて説明した、上述の第1の実施の形態に係るDMAコントローラ60のデータ転送処理の中止する流れと同様である。DMAコントローラ60の代わりにデータ転送LSI500がデータ転送処理を行い、中止コマンドや強制終了コマンドが設定されるレジスタは、アボートレジスタ62に代わり上記ABORTレジスタ810である。   The flow in which the data transfer LSI 500 stops the data transfer processing is the same as the flow of stopping the data transfer processing of the DMA controller 60 according to the first embodiment described above with reference to FIG. The register in which the data transfer LSI 500 performs data transfer processing instead of the DMA controller 60 and the abort command or forced termination command is set is the ABORT register 810 instead of the abort register 62.

また、(S4006)において継続するデータ転送処理は、ここでは転送情報リストに設定されている複数のデータ転送情報600についてのデータ転送処理となる。また、転送情報キュー21は、ローカルメモリ212上のリストベースアドレスから連続する記憶領域として実現され、終了ステータスキュー22は、ローカルメモリ212上のステータスベースアドレスから連続する記憶領域として実現されている。   Further, the data transfer process continued in (S4006) is a data transfer process for a plurality of data transfer information 600 set in the transfer information list here. The transfer information queue 21 is realized as a storage area continuous from the list base address on the local memory 212, and the end status queue 22 is realized as a storage area continuous from the status base address on the local memory 212.

また、データ転送LSI500は、データ転送処理を終了した結果の終了ステータスとして、上記の終了ステータス情報700を作成し、ローカルメモリ212に書き込む。その際に、データ転送LSI500は、ローカルメモリ212から読み出したデータ転送情報600の識別情報欄607に設定されている識別情報を、識別情報欄701に設定する。また、データ転送LSI500は、ABORTレジスタ810にSUSABORTやMPABORTが設定されていた場合には、終了ステータスコード欄702の該当するビットに「1」を設定する。   Further, the data transfer LSI 500 creates the end status information 700 as the end status as a result of the end of the data transfer process, and writes it in the local memory 212. At this time, the data transfer LSI 500 sets the identification information set in the identification information column 607 of the data transfer information 600 read from the local memory 212 in the identification information column 701. The data transfer LSI 500 sets “1” in the corresponding bit of the end status code field 702 when SUSABORT or MPABORT is set in the ABORT register 810.

このように、本発明では、第2のプロセッサ(データ転送LSI500)は、同一の処理識別情報が付帯されている一群のデータ転送情報(チェインフラグ欄608によって連結されているデータ転送情報群)についてデータ転送処理を行い、これら一群のデータ転送情報全てについてのデータ転送処理を行った後に、レジスタに中止コマンドが設定されていると、それ以降のデータ転送処理を中止する。従って、第2のプロセッサは、これら一群のデータ転送情報に基づく一連のデータ転送処理を完了した時点でデータ転送処理を中止することができる。よって、第2のプロセッサが、連続して処理すべき複数のデータ転送処理の途中でデータ転送処理を中止することがない。これにより、第2のプロセッサのデータ転送処理の中止による、データ転送装置全体としてのデータ転送能力の低下を最小限に抑えることができる。   As described above, in the present invention, the second processor (data transfer LSI 500) performs a group of data transfer information (data transfer information group linked by the chain flag column 608) to which the same processing identification information is attached. After performing the data transfer process and performing the data transfer process for all of the group of data transfer information, if a cancel command is set in the register, the subsequent data transfer process is stopped. Therefore, the second processor can stop the data transfer process when a series of data transfer processes based on the group of data transfer information is completed. Therefore, the second processor does not stop the data transfer process in the middle of a plurality of data transfer processes to be processed continuously. Thereby, it is possible to minimize a decrease in the data transfer capability of the entire data transfer device due to the cancellation of the data transfer process of the second processor.

また、データ転送LSI500は、中止コマンドがABORTレジスタ810に設定されたことにより、データ転送処理を中止したかどうかを示す中止フラグを終了ステータス情報700の終了ステータスコード欄702に設定する。従って、マイクロプロセッサ211は、データ転送LSI500のABORTレジスタ810に設定した中止コマンドに応じてデータ転送LSI500がデータ転送処理を中止したことを、ローカルメモリ212に記憶される終了ステータス情報700の終了ステータスコード欄702を参照することによって取得することができる。よって、マイクロプロセッサ211は、データ転送LSI500の動作を監視したり、データ転送LSI500からデータ転送処理を中止した旨の通知を直接受けたりすることなく、データ転送LSI500がデータ転送処理を中止したことをローカルメモリ212を介して間接的に取得することができる。そのため、マイクロプロセッサ211の効率的な動作を図ることができる。   Further, the data transfer LSI 500 sets a stop flag indicating whether or not the data transfer process is stopped in the end status code column 702 of the end status information 700 when the stop command is set in the ABORT register 810. Accordingly, the microprocessor 211 indicates that the data transfer LSI 500 has stopped the data transfer process in response to the stop command set in the ABORT register 810 of the data transfer LSI 500, and the end status code of the end status information 700 stored in the local memory 212. It can be obtained by referring to the column 702. Accordingly, the microprocessor 211 confirms that the data transfer LSI 500 has stopped the data transfer process without monitoring the operation of the data transfer LSI 500 or receiving a notification from the data transfer LSI 500 that the data transfer process has been stopped directly. It can be obtained indirectly via the local memory 212. Therefore, efficient operation of the microprocessor 211 can be achieved.

===その他の実施の形態===
本実施の形態では、マイクロプロセッサ211がローカルメモリ212に書き込む単位を転送情報リスト単位としたが、データ転送情報単位とすることもできる。例えば、データ転送LSI500のLIPレジスタ804を、ローカルメモリ212上に記憶されている複数のデータ転送情報600の何番目かを示す情報とする。マイクロプロセッサ211が連続する複数のデータ転送情報600を書き込んだ際に、その最後となるデータ転送情報600がローカルメモリ212上で何番目に書き込まれたデータ転送情報になったかをLIPレジスタ804に設定する。データ転送LSI500は、リストベースアドレスにデータ転送情報600のデータ長を、LOPレジスタ808に設定された数分加算して、ローカルメモリ212からデータ転送情報600を読み出すアドレスを求め、データ転送情報600を読み出すことができる。また、データ転送LSI500は、読み出したデータ転送情報600のチェインフラグ欄608が「1」である間、読み出すアドレスにデータ転送情報600のデータ長を足しながら、データ転送情報600を読み続けることができる。これにより、マイクロプロセッサ211からデータ転送LSI500に伝達されるデータ転送に関する情報は、転送情報リスト単位ではなくデータ転送情報600単位となり、可変長のデータ転送情報600の受け渡しをすることができる。
=== Other Embodiments ===
In this embodiment, the unit that the microprocessor 211 writes to the local memory 212 is the transfer information list unit, but it may be a data transfer information unit. For example, the LIP register 804 of the data transfer LSI 500 is information indicating the number of the plurality of data transfer information 600 stored on the local memory 212. When the microprocessor 211 writes a plurality of continuous data transfer information 600, the LIP register 804 is set to indicate what number the data transfer information 600 written last on the local memory 212 becomes. To do. The data transfer LSI 500 adds the data length of the data transfer information 600 to the list base address by the number set in the LOP register 808, obtains an address for reading the data transfer information 600 from the local memory 212, and obtains the data transfer information 600. Can be read. Further, the data transfer LSI 500 can continue to read the data transfer information 600 while adding the data length of the data transfer information 600 to the read address while the chain flag column 608 of the read data transfer information 600 is “1”. . Thus, the data transfer information transmitted from the microprocessor 211 to the data transfer LSI 500 is not the transfer information list unit but the data transfer information 600 unit, and the variable length data transfer information 600 can be transferred.

また、本発明の形態において、データ転送情報600はマイクロプロセッサ211の管理するローカルメモリ212に書き込まれるようにしたが、ローカルメモリ212の代わりに、共有メモリ220やキャッシュメモリ230、その他のメモリ等、マイクロプロセッサ及びデータ転送LSIが同様にアクセス可能な記憶デバイスに記憶するようにしてもよい。   In the embodiment of the present invention, the data transfer information 600 is written in the local memory 212 managed by the microprocessor 211. However, instead of the local memory 212, the shared memory 220, the cache memory 230, other memories, etc. Similarly, the microprocessor and the data transfer LSI may store the data in an accessible storage device.

また、本発明はディスク制御部240に適用する形態とすることもできる。例えば、ディスク制御部240がマイクロプロセッサと、ローカルメモリと、記憶デバイス300にアクセスするインタフェースと、データ転送LSIとを備えるとすると、キャッシュメモリ230と記憶デバイス300との間で転送されるデータに関するデータ転送処理に、上述したチャネル制御部210でのデータ転送処理と同様のデータ転送処理を実現できる。   The present invention can also be applied to the disk control unit 240. For example, if the disk control unit 240 includes a microprocessor, a local memory, an interface for accessing the storage device 300, and a data transfer LSI, data relating to data transferred between the cache memory 230 and the storage device 300 In the transfer process, the same data transfer process as the data transfer process in the channel control unit 210 described above can be realized.

また、本発明は、チャネル制御部210の備える通信インタフェース213(通信インタフェース部)と、マイクロプロセッサ211と、ローカルメモリ212と、データ転送LSI500と、記憶デバイス300に対するインタフェース(記憶デバイスインタフェース)とが一体的に配された記憶デバイス制御装置に適用することもできる。この場合、データ転送LSI500は、キャッシュメモリ230に替えて、記憶デバイス300と、バッファメモリ214との間でのデータ転送処理を行うことができる。   In the present invention, the communication interface 213 (communication interface unit) included in the channel control unit 210, the microprocessor 211, the local memory 212, the data transfer LSI 500, and the interface (storage device interface) to the storage device 300 are integrated. The present invention can also be applied to storage device control devices that are arranged in an automatic manner. In this case, the data transfer LSI 500 can perform data transfer processing between the storage device 300 and the buffer memory 214 instead of the cache memory 230.

以上本実施の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。   Although the present embodiment has been described above, the above embodiment is intended to facilitate understanding of the present invention and is not intended to limit the present invention. The present invention can be changed and improved without departing from the gist thereof, and the present invention includes equivalents thereof.

本発明の一実施の形態による、コンピュータを示すブロック図である。1 is a block diagram illustrating a computer according to an embodiment of the present invention. 本発明の一実施の形態による、データ転送情報の一例を示す図である。It is a figure which shows an example of the data transfer information by one embodiment of this invention. 本発明の一実施の形態による、データ転送処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the data transfer process by one embodiment of this invention. 本発明の一実施の形態による、DMAコントローラ60がデータ転送処理を中止する処理の流れを示すフローチャートである。6 is a flowchart showing a flow of processing in which a DMA controller 60 stops data transfer processing according to an embodiment of the present invention. 本発明の一実施の形態による、第2の実施の形態としての情報処理システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of the information processing system as 2nd Embodiment by one Embodiment of this invention. 本発明の一実施の形態による、チャネル制御部210のハードウエア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the channel control part 210 by one embodiment of this invention. 本発明の一実施の形態による、データ転送LSI500の構成を示すブロック図である。3 is a block diagram showing a configuration of a data transfer LSI 500 according to an embodiment of the present invention. FIG. 本発明の一実施の形態による、データ転送LSI500がデータ転送に必要な情報であるデータ転送情報の詳細を示す表である。4 is a table showing details of data transfer information, which is information necessary for data transfer by the data transfer LSI 500 according to an embodiment of the present invention. 本発明の一実施の形態による、データ転送LSI500によるデータ転送が終了した際に、データ転送LSI500がローカルメモリ212に書き込む終了ステータス情報の一例を示す表である。6 is a table showing an example of end status information that the data transfer LSI 500 writes to the local memory 212 when data transfer by the data transfer LSI 500 ends according to an embodiment of the present invention. 本発明の一実施の形態による、データ転送LSI500が備えるレジスタを示す表である。It is a table | surface which shows the register | resistor with which data transfer LSI500 by one embodiment of this invention is provided. 本発明の一実施の形態による、転送情報リストを用いたデータ転送処理が行われる処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process in which the data transfer process using the transfer information list by one embodiment of this invention is performed.

符号の説明Explanation of symbols

1 コンピュータ
10 CPU 20 RAM
21 転送情報キュー 22 終了ステータスキュー
30 記憶装置 40 入力装置
50 出力装置 60 DMAコントローラ
61 スタートレジスタ 62 アボートレジスタ
70 I/Oインタフェース 71 バッファメモリ
100 情報処理装置 200 記憶デバイス制御装置
210 チャネル制御部 211 マイクロプロセッサ
212 ローカルメモリ 213 通信インタフェース
214 バッファメモリ 220 共有メモリ
230 キャッシュメモリ 240 ディスク制御部
300 記憶デバイス 400 ネットワーク
500 データ転送LSI500
600 データ転送情報 700 終了ステータス情報
1 Computer 10 CPU 20 RAM
21 Transfer information queue 22 End status queue 30 Storage device 40 Input device 50 Output device 60 DMA controller 61 Start register 62 Abort register 70 I / O interface 71 Buffer memory 100 Information processing device 200 Storage device control device 210 Channel control unit 211 Microprocessor 212 Local Memory 213 Communication Interface 214 Buffer Memory 220 Shared Memory 230 Cache Memory 240 Disk Control Unit 300 Storage Device 400 Network 500 Data Transfer LSI 500
600 Data transfer information 700 End status information

Claims (15)

第1の記憶領域を特定する情報と第2の記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、
前記データ転送情報を前記キューに登録する第1のプロセッサと、
前記第1の記憶領域に記憶されているデータを前記第2の記憶領域に転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、
を備え、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記レジスタに前記中止コマンドが設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とするデータ転送装置。
A memory comprising a queue for storing data transfer information including information for specifying a first storage area and information for specifying a second storage area;
A first processor for registering the data transfer information in the queue;
A second processor that performs data transfer processing for transferring data stored in the first storage area to the second storage area, and includes a register;
With
The first processor writes a stop command, which is a command indicating that the data transfer processing performed by the second processor is stopped, to the register of the second processor,
The second processor reads the data transfer information registered in the queue, performs the data transfer process based on the read data transfer information, and determines whether the stop command is set in the register And, if the cancel command is set in the register, canceling the data transfer process for the subsequent data transfer information registered in the queue,
A data transfer device.
請求項1に記載のデータ転送装置であって、
前記第1のプロセッサは、前記データ転送を再開することを示すコマンドである再開コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記レジスタに前記再開コマンドが設定されているかどうかを判断し、前記レジスタに前記再開コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を再開すること、
を特徴とするデータ転送装置。
The data transfer device according to claim 1,
The first processor writes a resume command, which is a command indicating that the data transfer is resumed, to the register of the second processor;
The second processor determines whether the resume command is set in the register, and if the resume command is set in the register, the subsequent data transfer information registered in the queue Resuming the data transfer process for
A data transfer device.
請求項1に記載のデータ転送装置であって、
前記データ転送情報には、前記第2のプロセッサが転送するデータのデータ長が設定され、
前記第2のプロセッサは、前記キューから読み出した前記データ転送情報の前記データ長に、データ転送処理を行わないことを示す値が設定されているかどうかを判断し、当該データ転送情報の前記データ長に前記値が設定されている場合、当該データ転送情報に基づく前記データ転送処理を行わないこと、
を特徴とするデータ転送装置。
The data transfer device according to claim 1,
In the data transfer information, a data length of data transferred by the second processor is set,
The second processor determines whether or not a value indicating that data transfer processing is not performed is set in the data length of the data transfer information read from the queue, and the data length of the data transfer information When the value is set in, the data transfer processing based on the data transfer information is not performed,
A data transfer device.
請求項1に記載のデータ転送装置であって、
前記第2のプロセッサは、前記キューから読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記データ転送処理の結果を示す終了ステータス情報を前記メモリに書き込むこと、
を特徴とするデータ転送装置。
The data transfer device according to claim 1,
The second processor performs the data transfer process based on the data transfer information read from the queue, and writes end status information indicating a result of the data transfer process to the memory;
A data transfer device.
請求項1に記載のデータ転送装置であって、
前記第1のプロセッサは、前記データ転送情報に識別情報を設定して前記キューに登録し、
前記第2のプロセッサは、前記キューから読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記レジスタに前記中止コマンドが設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止し、
前記第2のプロセッサは、前記レジスタに前記中止コマンドが設定されていたかどうかを示す中止フラグと、前記データ転送処理の結果を示す情報と、前記データ転送情報に設定されている前記識別情報とを含む終了ステータス情報を前記メモリに書き込み、
前記第1のプロセッサは、前記メモリから前記終了ステータス情報を読み出し、読み出した前記終了ステータス情報の前記中止フラグを参照して、前記第2のプロセッサが前記データ転送処理を中止したかどうかを判断すること、
を特徴とするデータ転送装置。
The data transfer device according to claim 1,
The first processor sets identification information in the data transfer information and registers it in the queue,
The second processor performs the data transfer process based on the data transfer information read from the queue, determines whether the stop command is set in the register, and sets the stop command in the register. The data transfer process for the subsequent data transfer information registered in the queue is stopped,
The second processor includes a stop flag indicating whether the stop command is set in the register, information indicating a result of the data transfer process, and the identification information set in the data transfer information. Write end status information including to the memory,
The first processor reads the end status information from the memory and refers to the stop flag of the read end status information to determine whether the second processor has stopped the data transfer process. about,
A data transfer device.
請求項5に記載のデータ転送装置であって、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を終了することを示すコマンドである強制終了コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記レジスタに前記強制終了コマンドが設定されているかどうかを判断し、前記レジスタに前記強制終了コマンドが設定されている場合は、前記データ転送処理を中止し、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理も中止すること、
を特徴とするデータ転送装置。
The data transfer device according to claim 5, wherein
The first processor writes a forced termination command, which is a command indicating termination of the data transfer processing performed by the second processor, to the register of the second processor,
The second processor determines whether or not the forced termination command is set in the register. If the forced termination command is set in the register, the second processor stops the data transfer process and enters the queue. Canceling the data transfer process for the registered subsequent data transfer information;
A data transfer device.
請求項6に記載のデータ転送装置であって、
前記第1のプロセッサは、前記第2のプロセッサの前記レジスタに前記中止コマンドを設定し、前記メモリに前記終了ステータス情報が書き込まれたかどうかを判断し、前記終了ステータス情報が前記メモリに書き込まれた場合には、前記メモリに書き込まれた前記終了ステータス情報の前記中止フラグを参照して、前記第2のプロセッサが前記データ転送処理を中止したかどうかを判断し、
前記第1のプロセッサは、所定の期間に、前記第2のプロセッサが前記データ転送処理を中止したと判断できなかった場合に、前記強制中止コマンドを前記第2のプロセッサの前記レジスタに書き込むこと、
を特徴とするデータ転送装置。
The data transfer device according to claim 6, wherein
The first processor sets the stop command in the register of the second processor, determines whether the end status information has been written to the memory, and the end status information has been written to the memory In the case, with reference to the stop flag of the end status information written in the memory, it is determined whether the second processor has stopped the data transfer process,
The first processor writes the forced abort command to the register of the second processor when the second processor cannot determine that the data transfer process has been aborted in a predetermined period;
A data transfer device.
請求項1に記載のデータ転送装置であって、
前記第1のプロセッサは、一群の前記データ転送情報について、前記一群のデータ転送情報の夫々が関連する前記データ転送処理に対応するものであることを示す処理識別情報を前記一群のデータ転送情報の夫々に付帯させて前記キューに登録し、
前記第2のプロセッサは、同一の前記処理識別情報が付帯されて前記キューに登録されている前記一群のデータ転送情報の夫々について前記データ転送処理を行い、前記レジスタに前記中止コマンドが設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とするデータ転送装置。
The data transfer device according to claim 1,
For the group of data transfer information, the first processor sets process identification information indicating that each of the group of data transfer information corresponds to the related data transfer process of the group of data transfer information. Each of them is attached to each queue and registered in the queue.
The second processor performs the data transfer process for each of the group of data transfer information registered in the queue with the same process identification information attached, and the stop command is set in the register. And if the cancel command is set in the register, canceling the data transfer processing for the subsequent data transfer information registered in the queue;
A data transfer device.
第1の記憶領域を特定する情報と第2の記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、
前記データ転送情報を前記キューに登録する第1のプロセッサと、
前記第1の記憶領域に記憶されているデータを前記第2の記憶領域に転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、
を備えるデータ転送装置の制御方法であって、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記中止コマンドが前記レジスタに設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とするデータ転送装置の制御方法。
A memory comprising a queue for storing data transfer information including information for specifying a first storage area and information for specifying a second storage area;
A first processor for registering the data transfer information in the queue;
A second processor that performs data transfer processing for transferring data stored in the first storage area to the second storage area, and includes a register;
A data transfer device control method comprising:
The first processor writes a stop command, which is a command indicating that the data transfer processing performed by the second processor is stopped, to the register of the second processor,
The second processor reads the data transfer information registered in the queue, performs the data transfer process based on the read data transfer information, and determines whether the stop command is set in the register And, if the cancel command is set in the register, canceling the data transfer process for the subsequent data transfer information registered in the queue,
A method for controlling a data transfer apparatus.
情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信し、受信したデータ入出力要求を記憶するバッファメモリを備える通信インタフェース部と、
前記記憶デバイスとの間でデータを授受する記憶デバイスインタフェース部と、
前記バッファメモリの記憶領域を特定する情報と、前記記憶デバイスの記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、
前記データ転送情報を前記キューに登録する第1のプロセッサと、
前記バッファメモリと前記記憶デバイスとの間でデータを転送するデータ転送処理を行い、レジスタを備える第2のプロセッサと、
を備え、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記中止コマンドが前記レジスタに設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とする記憶デバイス制御装置。
A communication interface unit including a buffer memory for receiving a data input / output request transmitted from the information processing apparatus to the storage device, and storing the received data input / output request;
A storage device interface unit that exchanges data with the storage device;
A memory comprising a queue for storing data transfer information including information for specifying a storage area of the buffer memory and information for specifying a storage area of the storage device;
A first processor for registering the data transfer information in the queue;
A second processor that performs data transfer processing for transferring data between the buffer memory and the storage device, and includes a register;
With
The first processor writes a stop command, which is a command indicating that the data transfer processing performed by the second processor is stopped, to the register of the second processor,
The second processor reads the data transfer information registered in the queue, performs the data transfer process based on the read data transfer information, and determines whether the stop command is set in the register And when the cancel command is set in the register, canceling the data transfer processing for the subsequent data transfer information registered in the queue,
A storage device control apparatus.
情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
前記チャネル制御部と前記ディスク制御部との間で授受されるデータを記憶するキャッシュメモリと、
を備える記憶デバイス制御装置であって、
前記チャネル制御部は、
前記情報処理装置から前記データ入出力要求を受信し、受信した前記データ入出力要求を記憶するバッファメモリを備える通信インタフェース部と、
前記バッファメモリの記憶領域を特定する情報と、前記キャッシュメモリの記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、
前記データ転送情報を前記キューに登録する第1のプロセッサと、
前記バッファメモリと前記キャッシュメモリとの間でデータを転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、
を備え、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記中止コマンドが前記レジスタに設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とする記憶デバイス制御装置。
A channel control unit for receiving a data input / output request transmitted from the information processing apparatus to the storage device;
A disk control unit for controlling data input / output with respect to the storage device;
A cache memory for storing data exchanged between the channel control unit and the disk control unit;
A storage device control device comprising:
The channel controller
A communication interface unit comprising a buffer memory for receiving the data input / output request from the information processing apparatus and storing the received data input / output request;
A memory comprising a queue for storing data transfer information including information for specifying a storage area of the buffer memory and information for specifying a storage area of the cache memory;
A first processor for registering the data transfer information in the queue;
A second processor for performing data transfer processing for transferring data between the buffer memory and the cache memory, and comprising a register;
With
The first processor writes a stop command, which is a command indicating that the data transfer process performed by the second processor is stopped, to the register of the second processor;
The second processor reads the data transfer information registered in the queue, performs the data transfer process based on the read data transfer information, and determines whether the stop command is set in the register And, if the cancel command is set in the register, canceling the data transfer process for the subsequent data transfer information registered in the queue,
A storage device control apparatus.
情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
前記チャネル制御部と前記ディスク制御部との間で授受されるデータを記憶するキャッシュメモリと、
を備える記憶デバイス制御装置であって、
前記ディスク制御部は、
前記キャッシュメモリとの間でデータの授受を行い、前記キャッシュメモリから読み出すデータ又は前記キャッシュメモリに書き込むデータを記憶するバッファメモリを備えるキャッシュインタフェース部と、
前記バッファメモリの記憶領域を特定する情報と、前記記憶デバイスの記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、
前記データ転送情報を前記キューに登録する第1のプロセッサと、
前記バッファメモリと前記記憶デバイスとの間でデータを転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、
を備え、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記中止コマンドが前記レジスタに設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とする記憶デバイス制御装置。
A channel control unit for receiving a data input / output request transmitted from the information processing apparatus to the storage device;
A disk control unit for controlling data input / output with respect to the storage device;
A cache memory for storing data exchanged between the channel control unit and the disk control unit;
A storage device control device comprising:
The disk controller is
A cache interface unit comprising a buffer memory for transferring data to and from the cache memory and storing data read from the cache memory or data to be written to the cache memory;
A memory comprising a queue for storing data transfer information including information for specifying a storage area of the buffer memory and information for specifying a storage area of the storage device;
A first processor for registering the data transfer information in the queue;
A second processor for performing data transfer processing for transferring data between the buffer memory and the storage device, and comprising a register;
With
The first processor writes a stop command, which is a command indicating that the data transfer processing performed by the second processor is stopped, to the register of the second processor,
The second processor reads the data transfer information registered in the queue, performs the data transfer process based on the read data transfer information, and determines whether the stop command is set in the register And, if the cancel command is set in the register, canceling the data transfer process for the subsequent data transfer information registered in the queue,
A storage device control apparatus.
情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信し、受信したデータ入出力要求を記憶するバッファメモリを備える通信インタフェース部と、
前記記憶デバイスとの間でデータを授受する記憶デバイスインタフェース部と、
前記バッファメモリの記憶領域を特定する情報と、前記記憶デバイスの記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、
前記データ転送情報を前記キューに登録する第1のプロセッサと、
前記バッファメモリと前記記憶デバイスとの間でデータを転送するデータ転送処理を行い、レジスタを備える第2のプロセッサと、
を備える記憶デバイス制御装置の制御方法であって、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記中止コマンドが前記レジスタに設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とする記憶デバイス制御装置の制御方法。
A communication interface unit including a buffer memory for receiving a data input / output request transmitted from the information processing apparatus to the storage device, and storing the received data input / output request;
A storage device interface unit that exchanges data with the storage device;
A memory comprising a queue for storing data transfer information including information for specifying a storage area of the buffer memory and information for specifying a storage area of the storage device;
A first processor for registering the data transfer information in the queue;
A second processor that performs data transfer processing for transferring data between the buffer memory and the storage device, and includes a register;
A control method of a storage device control apparatus comprising:
The first processor writes a stop command, which is a command indicating that the data transfer processing performed by the second processor is stopped, to the register of the second processor,
The second processor reads the data transfer information registered in the queue, performs the data transfer process based on the read data transfer information, and determines whether the stop command is set in the register And, if the cancel command is set in the register, canceling the data transfer process for the subsequent data transfer information registered in the queue,
A control method for a storage device control apparatus.
情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
前記チャネル制御部と前記ディスク制御部との間で授受されるデータを記憶するキャッシュメモリと、
を備える記憶デバイス制御装置の制御方法であって、
前記チャネル制御部は、
前記情報処理装置から前記データ入出力要求を受信し、受信した前記データ入出力要求を記憶するバッファメモリを備える通信インタフェース部と、
前記バッファメモリの記憶領域を特定する情報と、前記キャッシュメモリの記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、
前記データ転送情報を前記キューに登録する第1のプロセッサと、
前記バッファメモリと前記キャッシュメモリとの間でデータを転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、
を備え、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記中止コマンドが前記レジスタに設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とする記憶デバイス制御装置の制御方法。
A channel control unit for receiving a data input / output request transmitted from the information processing apparatus to the storage device;
A disk control unit for controlling data input / output with respect to the storage device;
A cache memory for storing data exchanged between the channel control unit and the disk control unit;
A control method of a storage device control apparatus comprising:
The channel controller
A communication interface unit comprising a buffer memory for receiving the data input / output request from the information processing apparatus and storing the received data input / output request;
A memory comprising a queue for storing data transfer information including information for specifying a storage area of the buffer memory and information for specifying a storage area of the cache memory;
A first processor for registering the data transfer information in the queue;
A second processor for performing data transfer processing for transferring data between the buffer memory and the cache memory, and comprising a register;
With
The first processor writes a stop command, which is a command indicating that the data transfer processing performed by the second processor is stopped, to the register of the second processor,
The second processor reads the data transfer information registered in the queue, performs the data transfer process based on the read data transfer information, and determines whether the stop command is set in the register And, if the cancel command is set in the register, canceling the data transfer process for the subsequent data transfer information registered in the queue,
A control method for a storage device control apparatus.
情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネルアダプタであって、
前記データ入出力要求を受信し、受信した前記データ入出力要求を記憶するバッファメモリを備える通信インタフェースと、
前記バッファメモリの記憶領域を特定する情報と、前記キャッシュメモリの記憶領域を特定する情報とを含むデータ転送情報を格納するキューを備えるメモリと、
前記バッファメモリと前記キャッシュメモリとの間でデータを転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、
を備え、
前記情報処理装置と前記記憶デバイスとの間で授受されるデータを記憶するキャッシュメモリが接続され、
前記第1のプロセッサは、前記通信インタフェースが受信する前記データ入出力要求に応じて、前記バッファメモリにおける記憶領域を示す情報と、前記キャッシュメモリにおける記憶領域を示す情報とを含むデータ転送情報を前記キューに登録し、
前記第1のプロセッサは、前記第2のプロセッサが行う前記データ転送処理を中止することを示すコマンドである中止コマンドを前記第2のプロセッサの前記レジスタに書き込み、
前記第2のプロセッサは、前記キューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づく前記データ転送処理を行い、前記中止コマンドが前記レジスタに設定されているかどうかを判断し、前記レジスタに前記中止コマンドが設定されている場合は、前記キューに登録されている後続の前記データ転送情報についての前記データ転送処理を中止すること、
を特徴とするチャネルアダプタ。
A channel adapter that receives a data input / output request transmitted from an information processing apparatus to a storage device,
A communication interface comprising a buffer memory for receiving the data input / output request and storing the received data input / output request;
A memory comprising a queue for storing data transfer information including information for specifying a storage area of the buffer memory and information for specifying a storage area of the cache memory;
A second processor for performing data transfer processing for transferring data between the buffer memory and the cache memory, and comprising a register;
With
A cache memory for storing data exchanged between the information processing apparatus and the storage device is connected,
In response to the data input / output request received by the communication interface, the first processor receives data transfer information including information indicating a storage area in the buffer memory and information indicating a storage area in the cache memory. Subscribe to the queue,
The first processor writes a stop command, which is a command indicating that the data transfer processing performed by the second processor is stopped, to the register of the second processor,
The second processor reads the data transfer information registered in the queue, performs the data transfer process based on the read data transfer information, and determines whether the stop command is set in the register And when the cancel command is set in the register, canceling the data transfer processing for the subsequent data transfer information registered in the queue,
Features a channel adapter.
JP2003402995A 2003-12-02 2003-12-02 Method for controlling data transferring device, data transferring device, storage device controller, method for controlling storage device controller, and channel adaptor Pending JP2005165619A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003402995A JP2005165619A (en) 2003-12-02 2003-12-02 Method for controlling data transferring device, data transferring device, storage device controller, method for controlling storage device controller, and channel adaptor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003402995A JP2005165619A (en) 2003-12-02 2003-12-02 Method for controlling data transferring device, data transferring device, storage device controller, method for controlling storage device controller, and channel adaptor

Publications (1)

Publication Number Publication Date
JP2005165619A true JP2005165619A (en) 2005-06-23

Family

ID=34726432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003402995A Pending JP2005165619A (en) 2003-12-02 2003-12-02 Method for controlling data transferring device, data transferring device, storage device controller, method for controlling storage device controller, and channel adaptor

Country Status (1)

Country Link
JP (1) JP2005165619A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122117A (en) * 2005-10-25 2007-05-17 Hitachi Ltd Storage system and storage control method
JP2007179086A (en) * 2005-12-26 2007-07-12 Fujitsu Ltd Memory access device
JP2008146186A (en) * 2006-12-07 2008-06-26 Canon Inc Dma transfer device, data transfer control method, and data transfer control program
JP2010532518A (en) * 2007-06-29 2010-10-07 エミュレックス デザイン アンド マニュファクチュアリング コーポレーション Method and system for efficient queue management
JP2011221981A (en) * 2010-04-08 2011-11-04 Hitachi Ltd Method and apparatus for managing error codes for storage system coupled with external storage system
JP2013246457A (en) * 2012-05-23 2013-12-09 Renesas Electronics Corp Host controller and host device
JP2014010759A (en) * 2012-07-02 2014-01-20 Toshiba Corp Bridge device, method therefor, storage apparatus and program
WO2018135437A1 (en) * 2017-01-19 2018-07-26 Necプラットフォームズ株式会社 Transfer control device, transfer device, transfer control method, and transfer control program
JP7473600B2 (en) 2022-07-15 2024-04-23 株式会社日立製作所 STORAGE SYSTEM, DATA TRANSMISSION METHOD, AND NETWORK INTERFACE

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122117A (en) * 2005-10-25 2007-05-17 Hitachi Ltd Storage system and storage control method
JP4756992B2 (en) * 2005-10-25 2011-08-24 株式会社日立製作所 Storage system and storage control method
JP2007179086A (en) * 2005-12-26 2007-07-12 Fujitsu Ltd Memory access device
JP2008146186A (en) * 2006-12-07 2008-06-26 Canon Inc Dma transfer device, data transfer control method, and data transfer control program
JP2010532518A (en) * 2007-06-29 2010-10-07 エミュレックス デザイン アンド マニュファクチュアリング コーポレーション Method and system for efficient queue management
JP2011221981A (en) * 2010-04-08 2011-11-04 Hitachi Ltd Method and apparatus for managing error codes for storage system coupled with external storage system
JP2013246457A (en) * 2012-05-23 2013-12-09 Renesas Electronics Corp Host controller and host device
JP2014010759A (en) * 2012-07-02 2014-01-20 Toshiba Corp Bridge device, method therefor, storage apparatus and program
US9122779B2 (en) 2012-07-02 2015-09-01 Kabushiki Kaisha Toshiba Bridge device with an error tolerant DMA transfer function
WO2018135437A1 (en) * 2017-01-19 2018-07-26 Necプラットフォームズ株式会社 Transfer control device, transfer device, transfer control method, and transfer control program
JP2018116550A (en) * 2017-01-19 2018-07-26 Necプラットフォームズ株式会社 Transfer controller
US20200042476A1 (en) * 2017-01-19 2020-02-06 Nec Platforms, Ltd. Transfer control device, transfer device, transfer control method, and transfer control program
US11023399B2 (en) 2017-01-19 2021-06-01 Nec Platforms, Ltd. Transfer control device, transfer device, transfer control method, and transfer control program
JP7473600B2 (en) 2022-07-15 2024-04-23 株式会社日立製作所 STORAGE SYSTEM, DATA TRANSMISSION METHOD, AND NETWORK INTERFACE

Similar Documents

Publication Publication Date Title
JP4536361B2 (en) Data transfer apparatus, storage device control apparatus, and storage device control apparatus control method
US7016985B2 (en) Method, system, and program for prioritizing input/output (I/O) requests submitted to a device driver
US6526477B1 (en) Host-memory based raid system, device, and method
US7380115B2 (en) Transferring data using direct memory access
US7823008B2 (en) Maintaining consistency in a remote copy data storage system
US7395392B2 (en) Storage system and storage control method
JP2000056931A (en) Storage management system
JPH08314848A (en) Method and apparatus for transfer of data between two devices by shortening of overhead of microprocessor
US20110282963A1 (en) Storage device and method of controlling storage device
US7143206B2 (en) Method for controlling data transfer unit having channel control unit, storage device control unit, and DMA processor
JP2005165619A (en) Method for controlling data transferring device, data transferring device, storage device controller, method for controlling storage device controller, and channel adaptor
JP2006190257A (en) Data transfer device and its method
JP3442932B2 (en) Information processing system
JP2003288317A (en) System and method for detecting and compensating for runt block data transfer
US6801954B1 (en) Method and apparatus to concurrently operate on multiple data movement transactions in a disk array subsystem
US8151028B2 (en) Information processing apparatus and control method thereof
JP3683831B2 (en) Checkpoint designating method, apparatus and program recording medium for channel recovery in data processing system
JP2728449B2 (en) Printing system, printing apparatus and print control method thereof
JPH02166511A (en) Printing system
JPH1078856A (en) Interruption by priority printing method and system therefor
US5689725A (en) System for generating status signals of second bus on first bus by comparing actual phase of the second bus with expected phase of second bus
JPS6329862A (en) Data communication system
JP3248796B2 (en) Network printer system
JPH0546520A (en) Communication method and communication system of digital computer and memory
JPS6029861A (en) Peripheral device interface