New! View global litigation for patent families

JP4894963B2 - Data processing system - Google Patents

Data processing system

Info

Publication number
JP4894963B2
JP4894963B2 JP2011081387A JP2011081387A JP4894963B2 JP 4894963 B2 JP4894963 B2 JP 4894963B2 JP 2011081387 A JP2011081387 A JP 2011081387A JP 2011081387 A JP2011081387 A JP 2011081387A JP 4894963 B2 JP4894963 B2 JP 4894963B2
Authority
JP
Grant status
Grant
Patent type
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011081387A
Other languages
Japanese (ja)
Other versions
JP2011181080A (en )
Inventor
正二 久米
哲弘 後藤
吉宏 豊原
Original Assignee
株式会社日立製作所
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
Grant date

Links

Images

Description

本発明は、データ転送を行うデータ処理システムに関するものであり、特に、一つのシステム上にて複数のOSが稼動し、一つのチャネルアダプタにて複数のOSに対する処理を同時に行うコンピュータ装置に関するものである。 The present invention relates to a data processing system for performing data transfer, in particular, a plurality of the OS running in the one system, relates simultaneous computer device processes for a plurality of OS via one channel adapter is there.

これまで、メインフレームでは、一つのシステム上において制御プログラムの下で複数のOSを動作させるLPAR(Logical Partition)機能をサポートしてきたが、今般、該LPAR機能をメインフレームだけではなく、オープン系サーバもサポートし始めている。 In the past, the main frame has been supported LPAR (Logical Partition) function for operating a plurality of OS under the control program on one system, now, not only the main frame the LPAR function, open-system server It has also begun to support. オープン系サーバにて該LPAR機能をサポートするにあたり、入出力処理を行うチャネルアダプタをサーバのスロットに挿入し、ホスト・プロセッサと接続する業界標準規格の手段として、PCI−SIGにて策定されたPCI(Peripheral Component Interchange)バスを用いる構成が広く用いられている。 In support of the LPAR function in an open-system server, a channel adapter for performing input and output processing is inserted into a slot in the server, as a means of industry standard for connecting a host processor, was developed by PCI-SIG PCI (Peripheral Component Interchange) has configurations widely used to use the bus. PCIバスの場合、チャネルアダプタのようなデバイス一つに対して、標準的に所持しているPCIコンフィギュレーションレジスタを含み、該デバイスを制御するための制御レジスタを一つしか保持しておらず、該理由からも複数のOSによって共用することは困難であった。 If the PCI bus, the device one such channel adapter includes a PCI configuration register that standard possession only does not hold one control register for controlling the device, it has been difficult to share a plurality of OS from the reason.

上記のような、LPAR機能をサポートしたシステムの例として特開2002−41306がある。 As described above, there is JP-2002-41306 as an example of a system that supports the LPAR function. 一つのシステム上において複数のOSが動作可能であるが、PCIバスをインタフェースにもつPCI I/Oアダプタに対しては複数OSによる共用は実現されておらず、各PCI I/Oアダプタに対してそれぞれ一つのOSを割り当てるものである。 A plurality of OS on one system is operational, not the shared by multiple OS is implemented for PCI I / O adapters with PCI bus interface, for each PCI I / O adapters it is intended to assign a single OS, respectively.

その他の例としてメインフレーム等でLPAR機能を実現している特開2002−99437がある。 There is JP 2002-99437 that implements the LPAR functions in mainframe other examples. 概要を図10に示す。 An overview is shown in Figure 10. メインフレームにおいて、PCI I/OデバイスのようなLANアダプタ1003を制御するため、該LANアダプタを搭載するLANパッケージ1000内にハードウェアコントローラ1001と、ローカルメモリ1002を設けることによって複数OSによる共用を実現している。 In the main frame, for controlling the LAN adapter 1003, such as a PCI I / O devices, realized with hardware controller 1001 to the LAN package 1000 within mounting the LAN adapter, the shared by the OS by providing a local memory 1002 doing. コントローラ1001内において該LANアダプタ用ドライバ1005が動作する。 The LAN adapter driver 1005 is operated in the controller 1001. コントローラ1001はPCIバス又はシステム固有仕様バス1007に接続され、LANアダプタ1003とPCIバス1004で接続されている。 The controller 1001 is connected to the PCI bus or system-specific specifications bus 1007 is connected with LAN adapters 1003 and the PCI bus 1004.

図11に実装について詳細に述べる。 Described in detail the implementation in FIG. 11. 該コントローラ1001がOS1からの入出力起動を受け付けると、システムメモリ上の転送用データ1105をLANパッケージ内のローカルメモリ1002に該OS1に対する転送データ1105をバッファリングし、また、該OS1の入出力処理制御データ1103に対して、LANアダプタ用の入出力処理制御データを該ローカルメモリ1002に作成する。 When the controller 1001 receives the output start from OS1, it buffers the transfer data 1105 for the OS1 transfers data 1105 in the system memory to the local memory 1002 in the LAN package and, input and output processing of the OS1 the control data 1103 to create the output processing control data for the LAN adapter to the local memory 1002. 同様にOS2から起動された入出力処理に対する制御データと転送データをローカルメモリ1002に作成する。 Similarly creates a transfer data and control data for the activated output processing from OS2 into the local memory 1002. 該LANアダプタ1003はシステムメモリではなく、該ローカルメモリをアクセスすることによってデータ転送を行っている。 The LAN adapter 1003 is not a system memory, and performs data transfer by accessing the local memory. LANパッケージ上のローカルメモリに制御データを作成し直し、転送データのバッファリングしているため、性能に影響を及ぼし、また開発コストも掛かる。 Recreate the control data to the local memory on the LAN package, since the buffering of the transfer data, affect the performance, also it takes the development costs.

オープン系サーバにおいてLPAR機能がサポートされ始めているが、搭載できるスロット数に制限があるため、一つのチャネルアダプタを複数のOSから共用することが求められている。 Although LPAR function in the open-system server has begun to be supported, because there is a limit to the number of slots that can be mounted, there is a need to share one channel adapter from a plurality of the OS.

また、コストを低く抑えるためにもハードウェアから成るコントローラ、ローカルメモリを使用しないでチャネルアダプタの共用を実現することが期待されている。 The controller consisting also hardware to keep costs low, can be realized sharing of the channel adapter without using the local memory is expected.

特開2002−41306 JP 2002-41306 特開2002−99437 JP 2002-99437

上記従来技術の場合、オープン系サーバにてサポートされているPCIバスインタフェースを持つPCI I/Oデバイスに対する複数OSによる共用は実現されていない。 For the prior art, shared by the OS for PCI I / O devices with a PCI bus interface supported by an open-system server has not been realized. また、メインフレームにおいてPCI I/Oデバイスに対する複数OSによる共用は実現されているが、パッケージ上にデータバッファと入出力処理制御データ用にローカルメモリ、及び該データバッファと入出力処理制御データのコントローラを設けている。 Although shared by multiple OS for PCI I / O devices are implemented in the main frame, a local memory for data buffer input and output process control data on the package, and input and output control data and the data buffer controller a is provided. コントローラ、ローカルメモリを使用することにより、性能悪化、及びコストの増大を招いている。 The controller, by using the local memory, leading to performance deterioration, and increased cost.
(課題1) (Issue 1)
PCIのような標準仕様のバスに対応し、複数のOSにて一つのチャネルアダプタを共用できるようにする。 Corresponding to bus standards such as PCI, to be able to share one channel adapter in a plurality of the OS.
(課題2) (Problem 2)
PCIバスインタフェースを持つデバイスに対して、ハードウェアから成るコントローラ、ローカルメモリを設けることなく複数のOSにて一つのチャネルアダプタを共用できるようにする。 For devices with PCI bus interface controller comprised of hardware, to allow sharing one channel adapter in a plurality of OS without providing a local memory.

処理装置上で制御プログラムが動作し、該制御プログラムの制御下で複数のオペレーティングシステム(OS)の動作が可能であり、I/Oデバイスとの間で転送データを送受信するチャネルアダプタを具備し、該チャネルアダプタはPCIバスを介して前記処理装置に接続されると供にポートを介して前記I/Oデバイスに接続され、前記チャネルアダプタは該チャネルアダプタを制御するためのチャネル制御レジスタを有し、各OSのチャネルドライバが転送データの入出力処理を行うための入出力処理制御データを作成すると共に前記チャネルアダプタを制御するデータ処理システムであって、各OSのチャネルドライバの代わりに実際に前記チャネルアダプタを制御する仮想チャネルドライバを前記制御プログラム内に設け、各OS Control program in the processing unit operates, it is capable of operating multiple operating system (OS) under the control of the control program, comprising a channel adapter for transmitting and receiving data transferred to and from the I / O device, the channel adapter connected to the I / O device via the port to supply to be connected to the processor via the PCI bus, the channel adapter includes a channel control register for controlling the channel adapter a data processing system for controlling the channel adapter with channel driver for each OS creates the input and output process control data for performing input and output processing of transfer data, actually the instead of the channel drivers for each OS It provided a virtual channel driver to control the channel adapter in the control program, the OS チャネルドライバが前記チャネル制御レジスタにアクセスする時、前記制御プログラムが前記アクセスをインターセプトし、前記仮想チャネルドライバが実際に前記チャネル制御レジスタにアクセスする。 When the channel driver to access the channel control register, the control program intercepts the access, the virtual channel driver accesses actually the channel control register.

さらに、前記チャネル制御レジスタはI/O処理を起動するためのI/O処理イネーブルレジスタを含み、各OSのチャネルドライバが前記I/O処理イネーブルレジスタに“1”をセットする時、前記制御プログラムが前記セットアクセスをインターセプトし、前記仮想チャネルドライバが実際に前記I/O処理イネーブルレジスタに“1”をセットする。 Furthermore, the time channel control register which contains the I / O processing enable register for starting the I / O processing, channel driver for each OS is set to "1" to the I / O processing enable register, the control program There intercepts the set access, sets "1" in the virtual channel driver actually the I / O processing enable register.

本発明によれば、複数のOSからの入出力(I/O)処理を同時に実行できるチャネルアダプタを提供できる。 The present invention can provide a channel adapter that can perform input and output from the plurality of OS (I / O) processing simultaneously.

本発明の一実施例を適用したデータ処理システムの構成図である。 It is a configuration diagram of the applied data processing system of an embodiment of the present invention. データ処理システムの構成例を示す図である。 It is a diagram illustrating a configuration example of a data processing system. チャネル装置内のチャネル制御レジスタの内容を示す図である。 Is a diagram showing the contents of the channel control register in the channel device. 入出力処理制御データであるQueue Pair、Completion Queue,アドレス変換テーブルを示す図である。 An input-output control data Queue Pair, Completion Queue, a diagram showing an address conversion table. 本発明の一実施例で用いたI/O処理のためのデータ情報であるSend Queueを示す図である。 It is a diagram illustrating a Send Queue is a data information for the I / O process used in one embodiment of the present invention. データ処理システムの構成図である。 It is a block diagram of a data processing system. LPAR番号と使用可能なQP、CQの対応を示すテーブルである。 LPAR number and available QP, is a table showing the correspondence CQ. 各OSが作成するTPTと複数のTPTを一つにまとめた例を示す図である。 Is a diagram showing an example where each OS is summarized in one TPT and a plurality of TPT to create. 本発明の一実施例を適用したデータ処理システムの構成図である。 It is a configuration diagram of the applied data processing system of an embodiment of the present invention. 従来手法の一例の概要を示す図である。 Is a diagram showing an outline of an example of a conventional method. 従来手法の一例の詳細を示す図である。 Is a diagram illustrating an example details of the conventional method.

複数OSによるPCI I/Oデバイスの共用を、PCI I/Oデバイスを制御するためのコントローラとローカルメモリを必要とせず、ソフトウェアによって実現した。 Sharing of PCI I / O devices by multiple OS, without the need for a controller and local memory for controlling the PCI I / O devices, and implemented by software.

オープン系サーバがサポートしている業界標準規格のチャネルアダプタとして、ANSI(American National Standards Institute)によって規格が作成されているファイバチャネル、さらにはIBTA(InfiniBand Trade Association)によって規格が作成されているInfiniBand等がある。 As the industry standard for the channel adapters open-system server supports, ANSI (American National Standards Institute) Fiber Channel being created standards by news InfiniBand like being created standards by IBTA (InfiniBand Trade Association) there is.

ここでは、入出力処理を行うための入出力処理制御データとしてInfiniBand等にて使用しているSend QueueとReceive Queueから成るQueue Pair、Completion Queueを使用し、そして、仮想アドレスと、該仮想アドレスを物理アドレスに変換するアドレス変換テーブル(TPT)を用いるチャネルアダプタを仮定する。 Here, Send Queue and consisting Receive Queue Queue Pair using at InfiniBand such as input and output the control data for performing output processing, using the Completion Queue, then a virtual address, the virtual address assume a channel adapter using the address translation table (TPT) that converts a physical address.

まず、入出力処理の概要について説明する。 First, an overview of the input and output processing.

図2はデータ処理システムの構成例を示す。 Figure 2 shows an example of the configuration of a data processing system. メモリアクセス制御チップ203はプロセッサ204、205、あるいはチャネルアダプタ206からの主記憶(MS)200に対するメモリアクセスを主に制御し、メモリアクセス制御チップ203とチャネルアダプタ206はPCIバスにて接続し、メモリアクセス制御チップ203とプロセッサ204、205はシステム固有仕様のホストバスにて接続している。 Memory access control chip 203 mainly controls the memory access to the main storage (MS) 200 from the processor 204, 205 or the channel adapter 206, a memory access control chip 203 and the channel adapter 206 is connected by a PCI bus, a memory access control chip 203 and the processor 204, 205 are connected by the host bus system-specific specifications. チャネルアダプタ206はポートを1つ持ち、スイッチ207を介して、I/Oデバイス208と接続する。 Have the channel adapter 206 one port, through the switch 207 connects the I / O device 208. LPAR機能をサポートしている該データ処理システムは、1つのMS200を、例えば各LPARに2MBずつメモリを割り当て、各LPAR上のOSは該割り当てられた2MBのメモリを使用してオペレーションを行う。 It said data processing system that supports LPAR function, one MS 200, for example, allocates memory to each LPAR by 2MB, OS on each LPAR performs operations using the memory of the 2MB allocated the.

該チャネルアダプタ206は、該データ処理システムに対して、PCIバスにて接続され、PCIバス接続するデバイスとして標準的に所有しているPCIコンフィギュレーションレジスタを含み、該チャネルアダプタを制御するための制御レジスタとしてチャネル制御レジスタを持っている。 The channel adapter 206 with respect to the data processing system, is connected by a PCI bus, it includes the PCI configuration register that standard owned as a device for PCI bus connection, control for controlling the channel adapter it has a channel control register as a register. 図3にチャネル制御レジスタの内容を示すが詳細については後述する。 It shows the contents of the channel control register will be described in detail later in FIG.

続いて、入出力処理(I/O処理)を行うためのソフトウェアとハードウェアのインタフェースについて述べる。 Next, we describe the software and hardware interface for performing input and output processing (I / O process).

各OSはSend QueueとReceive Queueから成るQueue Pair(QP)、及び処理を終了したQP識別子をキューイングするCompletion Queue(CQ)を用いてデータ転送を行い、該QPの作成、CQの制御、チャネルアダプタに対するデータ転送処理の起動等の処理はOS内のチャネルドライバが行う。 Each OS consists Send Queue and Receive Queue Queue Pair (QP), and QP identifiers have been processed to transfer data using the Completion Queue (CQ) for queuing, the creation of the QP, the control of the CQ, the channel processing the activation of data transfer processing for the adapter is performed by the channel driver in OS. 図4にQPとCQの概要を示す。 It shows an outline of QP and CQ in FIG. Send Queue、及びReceive Queueはそれぞれデータバッファを指すアドレスを含むDescriptorとデータバッファから成る。 Send Queue, and Receive Queue consists Descriptor and data buffer comprising an address respectively points to the data buffer. データを送信する場合、Send QueueのDescriptor401に送信するデータバッファ403の物理アドレスをセットする。 When sending data, and sets the physical address of the data buffer 403 to be transmitted to the Descriptor401 the Send Queue. データ受信の場合、Receive QueueのDescriptor404に受信データをストアするデータバッファ405の物理アドレスをセットする。 For data reception, and it sets the physical address of the data buffer 405 for storing the received data to Descriptor404 the Receive Queue. 各Queue Pairは識別子を持ち、図4の例では#100(QP100)の識別子を持っているものであり、チャネルアダプタは同時に複数のQPに対する処理が可能である。 Each Queue Pair has an identifier, in the example of FIG. 4 are those that have an identifier of # 100 (QP100), the channel adapter is capable of processing for a plurality of QP simultaneously.

また、各Descriptorを指す物理アドレスはアドレス変換テーブル(TPT)406に保持する。 Also, the physical address that points to the Descriptor is held in the address translation table (TPT) 406. TPTは一つの物理的に連続した領域であり、該チャネルアダプタが使用する全QPのSend Queue用Descriptorアドレス、及びReceive Queue用Descriptorアドレスを保持する。 TPT is one physically continuous areas, retaining Send Queue for Descriptor addresses of all the QP the channel adapter uses, and Descriptor address for Receive Queue. ここで、TPT内の各Send Queue用、Receive Queue用Descriptorアドレスレジスタは16バイトからなり、最上位ビットの値が'1'のとき、当該Descriptorアドレスが有効であることを示し、下位8バイトが当該Descriptorの物理アドレスを示す。 Here, for each Send Queue in TPT, Descriptor address register for Receive Queue consists of 16 bytes, when the value of the most significant bit is '1', indicates that the Descriptor address is valid, the lower 8 bytes indicating the physical address of the Descriptor.

CQもそれぞれ識別子を持ち、チャネルアダプタが処理を終えたQPの識別子と、Send Queue、あるいはReceive Queueのどちらに対して処理を終えたかの情報を含む。 CQ also has an identifier, respectively, comprises the identifier of the QP channel adapter has finished processing, or information have been processed for either Send Queue or Receive Queue,. ここではCQの各エントリーは16バイトから成り、上位8バイトの最上位ビットが'1'のとき該エントリーが有効であることを示し、下位8バイト中の上位4バイトが処理を終えたQP識別子を示し、該下位8バイト中の下位4バイトが'1'のときは、Send Queue、'0'のときはReceive Queueに対する処理を終えたことを示すものとする。 Here consists Each entry 16 bytes of CQ, indicates that the entry when the most significant bit of the upper 8 bytes are '1' are valid, QP identifier upper 4 bytes in the lower 8 bytes have been processed are shown, when the lower 4 bytes in the lower position 8 bytes of '1', Send Queue, when the '0' and an indication that it has been processed for the Receive Queue.

図3のチャネル制御レジスタ300内に定義したTPTベースアドレスレジスタ303の値は、アドレス変換テーブル(TPT)406の先頭アドレス(物理アドレス)を指すものであり、チャネルドライバがセットする。 The value of TPT base address register 303 defined in the channel control register 300 of Figure 3, which refers to the address translation table (TPT) 406 the start address (physical address), the channel driver set. チャネルアダプタはTPTベースアドレスレジスタ303の値を使用してアドレス変換テーブル(TPT)406へのアクセスを行う。 The channel adapter performs the access to the address translation table (TPT) 406 using the values ​​of TPT base address register 303.

図5にSend Queueの詳細データ構造を示す。 Figure 5 shows a detailed data structure of the Send Queue. 図5において、DB_AD501はデータバッファアドレス領域の先頭アドレス(物理アドレス)を示す8バイトの領域から成り、FLAG503は、I/O処理が正常終了したかあるいはエラーにて終了したかを示す情報、エラー発生時のエラーの種類示すエラー情報、及び、次に処理すべき別のDescriptorが存在するかどうかを示す情報(Next Descriptor有無)、更に、データ転送を行う相手先のQP番号、関連するCQ識別子(CQ#)と該CQを指す物理アドレスを含む。 In FIG. 5, DB_AD501 consists 8-byte area indicating the start address (physical address) of the data buffer address area, FLAG503 is information indicating which ended at or error I / O processing is completed successfully, an error error type indicating error information upon occurrence, and then information indicating whether another Descriptor to be processed exists (next Descriptor presence), further, the destination of QP numbers for data transfer, associated CQ identifier comprising (CQ #) and a physical address indicating the CQ. 次に処理すべきDescriptorが存在する場合、8バイト長から成るNext Descriptor502に次のDescriptorの先頭アドレス(物理アドレス)がセットされる。 If to be processed next Descriptor exists, the start address (physical address) of the next Descriptor to Next Descriptor502 of 8 bytes long is set. なお、本実施例においては、最初のDescriptorのDB_ADはコマンド領域を示し、2番目以降のDescriptorのDB_ADがデータバッファを示すものとする。 In the present embodiment, DB_AD first Descriptor indicates command area, DB_AD of the second and subsequent Descriptor denote the data buffer. 図5はSend Queueの例を示すが、Receive Queueのフォーマットも同じであり、DB_ADが指すところに受信データをストアする。 Figure 5 shows an example of a Send Queue, but the format of the Receive Queue is also the same, to store the received data where the pointed DB_AD.

I/O処理における起動方法として、ここではチャネルドライバが、前記チャネル制御レジスタ300内に定義されたQP#レジスタ302に処理を行うQP識別子(QP#)を、Send/Receiveレジスタ306にSend Queue、あるいはReceive Queueのどちらであるかを示す情報をセットする。 As Starting in I / O processing, where the channel driver, the QP identifier (QP #) that performs processing on QP # register 302 defined in the channel control register 300, Send to Send / Receive register 306 Queue, or to set the information that indicates whether it is a Receive Queue. また、TPTオフセットアドレスレジスタ304に仮想アドレスとして、当該QPのDescriptorアドレスを保持している領域を示す、TPTベースアドレスからのオフセットアドレスをセットし、I/O処理イネーブルレジスタ305に'1'をwriteすることにより該チャネルアダプタにI/O起動を指示するものとする。 Further, as the virtual address to the TPT offset address register 304 indicates the area that holds the Descriptor address of the QP, and sets the offset address from the TPT base address, the '1' to the I / O processing enable register 305 write and those that direct I / O start the channel adapter by.

I/O処理を行うとき、チャネルドライバはDB_AD501に物理アドレスをセットし、DB_ADの指しているところにコマンド(256バイト)領域504をセットする。 When performing I / O processing, channel driver sets the physical address to DB_AD501, sets the command (256 bytes) region 504 where the points of DB_AD. 該コマンド領域は、コマンドの他に、I/O処理を行う相手先ポートを示すターゲットID、及び該ポート配下に存在するデバイスを示すLUN等の情報も含む。 The command area includes, in addition to the commands, including information LUN for indicating a device that exists in the target ID, and under the port indicating the destination port for I / O processing. なお、コマンド領域の256バイトに引き続く256バイトの領域を該コマンドに対する応答フレームをストアするコマンド応答情報領域505とする。 Incidentally, the 256-byte area following the 256-byte command area and command response information area 505 for storing a response frame to the command.

続いて、FLAG503の情報をセットする。 Then, to set the information of FLAG503. 相手先のQP#、及び該Descriptorに関連するCQ#としてCQ1をセットし、該CQ1の先頭アドレス(物理アドレス)をセットする。 Destination of QP #, and sets the CQ1 as CQ # associated with the Descriptor, which sets the start address (physical address) of the CQ1.

また、別のDescriptor510を定義し、該Descriptor510の先頭アドレスをNext Descriptor502にセットし、該Descriptor510のDB_AD507のアドレスが示すところに送信用のデータバッファ506が存在する。 Also, define another Descriptor510, the start address of the Descriptor510 set to Next Descriptor502, data buffer 506 is present for transmission where indicated DB_AD507 address of the Descriptor510. データバッファを可変長にする場合は、セグメントFLAG509内にデータ長を示す情報を含めれば良いが、本実施例では説明簡略化のためデータバッファのサイズを4Kバイト固定長とし、データ長をセットしない。 If the data buffer to the variable length may if you include information indicating the data length in the segment FLAG509 but the size of the data buffer for brevity in this embodiment as a 4K-byte fixed-length, not set the data length . チャネルドライバは上記のようにSend Queueを作成し、I/O処理を起動する。 Channel driver creates a Send Queue as described above, to start the I / O processing. なお、各Descriptor内にFLAGが定義されるが、相手先のQP番号、関連するCQ#、及び該CQ#の物理アドレスは先頭Descriptor内のFLAGの値が有効であるものとする。 Although FLAG is defined in each Descriptor, partner of QP numbers, associated CQ #, and a physical address of the CQ # is assumed values ​​of FLAG in the top Descriptor is valid.

チャネルアダプタはチャネルドライバからのI/O処理起動を認識すると、上記チャネル制御レジスタ内のTPTオフセットアドレスレジスタ304にセットされたオフセット(仮想アドレス)とアドレス変換テーブル(TPT)406から該当するDescriptorの先頭アドレス(物理アドレス)を得る。 When the channel adapter recognizes the I / O processing activation from channel driver, the head of the Descriptor corresponding from the channel control register of TPT offset address register 304 to the set offset (virtual address) and the address translation table (TPT) 406 obtain the address (physical address). 該物理アドレスを使用することによって、該当Descriptorのフェッチ処理を行い、フェッチしたDescriptor情報からコマンド504、及び、送信用データバッファ506のフェッチを行う。 By using the physical address, performs fetching processing of the corresponding Descriptor, command 504 from the fetched Descriptor information, and performs the fetching of the transmission data buffer 506. そして、コマンド領域504内に指定されているターゲットID、及びFLAG503内に指定された相手先のQP#に向けてデータ転送を行う。 Then, the data transfer toward the QP # Target ID, and the destination specified in the FLAG503 is specified in the command area 504. プロトコルに基づきデータ転送を行い、相手先から処理終了を示す応答フレームを受信したとき、前記コマンド応答情報領域505に該応答フレームをストアする。 Transfers data based on protocol, when receiving a response frame indicating the processing end from the other party, and stores the response frame to the command response information area 505. 該応答フレームのストアを完了した後、FLAG503内の情報に基づき該当するCompletion Queue #1(CQ1)407に処理を終えたQP識別子、Send Queueを示す情報、当該エントリーの有効ビットをセットし、チャネル制御レジスタ内の完了CQレジスタ308にCQ#である'1'をセットし、I/O処理終了を示すI/O割り込みをOSに対して上げる。 After completing the store of the response frame, set QP identifiers have been processed in the Completion Queue # 1 (CQ1) 407 applicable based on the information in FLAG503, information indicating the Send Queue, the valid bit of the entry channel It sets a CQ # '1' to complete CQ register 308 in the control register, increasing the I / O interrupt indicating the I / O processing completed for OS. なお、エラー発生時はFLAG503にエラー情報をセットする。 It should be noted that, when an error occurs sets the error information to FLAG503. 該OS内のチャネルドライバは該I/O割り込みを認識することによって、完了CQレジスタ308をreadし、該当するCQ1の内容から該チャネルアダプタに対して起動したI/O処理の終了処理を行う。 Channel driver in the OS is by recognizing the I / O interrupts, the completion CQ register 308 to read, the termination processing of the I / O processing is started with respect to the channel adapter from the contents of the corresponding CQ1. 以上がI/O処理の動作概要である。 The above is the outline of the operation of the I / O processing.

図6はソフトウェアとチャネルアダプタの関係を示し、QP000〜QP999(604)までの1000個のQP、CQ00〜CQ99(607)までの100個のCQを使用して入出力処理を行う例を示す。 Figure 6 shows the relationship between software and the channel adapter, an example of performing the output processing using 1000 QP to QP000~QP999 (604), the 100 CQ up CQ00~CQ99 (607).

続いて、本願の一実施例について説明する。 Next, a description will be given of an embodiment of the present application.

図1は本願の特徴を示した、一実施例である。 Figure 1 shows the features of the present application, is an example. なお、本実施例では、2つのOSが1つのチャネルアダプタを共用する場合について説明する。 In this embodiment, the case where two OS share a single channel adapter.

図1のデータ処理システム上にて、LPAR制御プログラム101の制御の下でLPAR#1とLPAR#2の2つのLPARが立ち上がり、LPAR#1においてOS1(105)が稼動し、LPAR#2においてOS2(106)が稼動することを示す。 Of in the data processing on the system 1, the rising two LPAR of LPAR # 1 and LPAR # 2 under the control of the LPAR control program 101, OS1 (105) is operated in the LPAR # 1, in LPAR # 2 OS2 (106) indicating that the run.

各チャネルドライバはLPAR制御プログラム101から、該チャネルドライバが動作するLPAR#を取得できる関数を備えているものとする。 Each channel driver from the LPAR control program 101, is assumed to have a function capable of acquiring the LPAR # of the channel driver operates. 本実施例では、チャネルドライバ112はLPAR#1上において、チャネルドライバ113はLPAR#2上において動作するという情報を得る。 In this embodiment, the channel driver 112 on LPAR # 1, channel driver 113 obtains the information that the operating on LPAR # 2. 仮想チャネルドライバ102はチャネルアダプタ100を実際に制御するドライバであり、チャネルドライバ112、及びチャネルドライバ113がチャネルアダプタ100のチャネル制御レジスタ114のアクセス等を行うときは、該アクセスのための関数をLPAR制御プログラム101がインタセプトし、仮想チャネルドライバ102が実際のチャネル制御レジスタ114のアクセスを行う。 Virtual channel driver 102 is a driver that actually controls the channel adapter 100, when the channel driver 112 and the channel driver 113, performs such as access channel control register 114 of the channel adapter 100, a function for the access LPAR control program 101 intercepts, and accesses the virtual channel driver 102 is the actual channel control register 114.

本データ処理システムは図7に示すように各OS上において使用可能なQueue Pair(QP)とCompletion Queue(CQ)の識別子と個数を構成情報の一部として定義しておく。 This data processing system be defined as part of the configuration information identifiers and the number of available Queue Pair (QP) and Completion Queue (CQ) on the OS, as shown in FIG. 上記にて該チャネルアダプタは例として、QP000〜QP9999までのQP1000個を処理可能であり、CQ00〜CQ99までのCQ100個を処理可能と述べたが、これらの資源を各OSに分配し、異なるOS間において同じ識別子をもつQP、あるいはCQが共用されないように構成情報に定義する。 As an example the channel adapter in the above, it can process QP1000 one to QP000~QP9999, have been described can be processed to CQ100 pieces up CQ00~CQ99, to distribute these resources to each OS, different OS QP, or CQ is defined in the configuration information as not shared with the same identifier in between. 図7の例ではLPAR#1では、QP100から100個、つまりQP100〜199まで使用可能、またCQはCQ1の1個のみ使用可能であることを示す。 In LPAR # 1 in the example of FIG. 7 shows that 100 from QP100, i.e. available to QP100~199, also CQ can be used only one CQ1. 同様にLPAR#2では、QP200から100個、つまりQP200〜299まで使用可能であり、またCQはCQ2の1個のみ使用可能であることを示す。 In LPAR # 2 similarly, 100 from QP200, may be used that is to QP200~299, also CQ indicates that it is available only one CQ2.

チャネルドライバは該チャネルドライバが動作するLPAR#から上記使用可能QP#、及びCQ#の情報を前記構成情報からカーネル関数等を使用して得る。 Channel driver obtained using a kernel function such as the available QP # from LPAR # of the channel driver operates, and the information of CQ # from the configuration information. 同様にLPAR制御プログラムもLPAR#と各LPARにおいて使用されるQP#、及びCQ#の情報を前記構成情報からカーネル関数等を使用して得る。 Similarly LPAR control program may also QP # used in the LPAR # and each LPAR, and information CQ # from the configuration information using a kernel function and the like.

チャネルドライバ112はQP100〜QP199までを制御し、TPT110に対して、QP100〜QP199のSend Queue、及びReceive QueueのDescriptorアドレスのみをセットし、最上位ビットのアドレス有効ビットを'1'にセットする。 Channel driver 112 controls the up QP100~QP199, relative TPT110, Send Queue of QP100~QP199, and sets only the Descriptor address Receive Queue, set to the address valid bit in the most significant bit '1'. チャネルドライバ112はTPT110に各Descriptorのアドレスをセットし終わると、チャネル制御レジスタ114内のTPTベースアドレスレジスタ303にTPTの先頭アドレスを書き込み、更にTPTが有効になったことを知らせるため、TPT有効レジスタ307に'1'を書き込むよう処理を行う。 When the channel driver 112 finishes set the address of each Descriptor to TPT110, the TPT base address register 303 in the channel control register 114 writes the start address of the TPT, to indicate that the further TPT is enabled, TPT valid register It performs processing to write a '1' to 307.

ここで、LPAR制御プログラム101はチャネルドライバ112がTPTベースアドレスレジスタ303に値を書き込む関数をインタセプトし、仮想チャネルドライバ102がTPT110とは異なる仮想アドレス変換テーブル(VTPT)103の先頭アドレスを該チャネル制御レジスタ114のTPTベースアドレスレジスタ303に書き込む。 Here, LPAR control program 101 intercepts a function channel driver 112 writes a value to TPT base address register 303, a virtual channel driver 102 is the channel control the start address of the different virtual address translation table (VTPT) 103 and TPT110 write to TPT base address register 303 of the register 114. また、LPAR制御プログラムはチャネルドライバ112がTPT有効レジスタ307に値を書き込む関数をインターセプトし、仮想チャネルドライバ102がTPT110のアドレス有効ビットが'1'であることころの該当アドレスをVTPT103にコピーし、LPAR制御プログラム101がTPT有効レジスタ307に'1'を書き込む。 Further, LPAR control program intercepts the function channel driver 112 writes a value to the TPT valid register 307, copy the appropriate address of the rollers that the virtual channel driver 102 address valid bit TPT110 is '1' VTPT103, LPAR control program 101 writes a '1' to TPT valid register 307.

同様に、チャネルドライバ113はQP200〜QP299までを制御し、TPT111に対して、QP200〜QP299のSend Queue、及びReceive QueueのDescriptorアドレスのみをセットし、最上位ビットのアドレス有効ビットを'1'にセットする。 Similarly, the channel driver 113 controls the up QP200~QP299, relative TPT111, Send Queue of QP200~QP299, and sets only the Descriptor address Receive Queue, the address valid bit of the most significant bit '1' set. チャネルドライバ113はTPT111に各Descriptorのアドレスをセットし終わると、チャネル制御レジスタ114内のTPTベースアドレスレジスタ303にTPTの先頭アドレスを書き込み、更にTPT有効レジスタにTPTが有効になったことを知らせるため、該TPT有効レジスタ307に'1'を書き込むよう処理を行う。 When the channel driver 113 finishes set the address of each Descriptor to TPT111, the TPT base address register 303 in the channel control register 114 writes the start address of the TPT, to further TPT indicating that TPT enable register has been enabled performs a process to write a '1' to the TPT valid register 307. ここで上記と同様に、LPAR制御プログラム101は、チャネルドライバ113がTPTベースアドレスレジスタ303に値を書き込む関数をインタセプトし、仮想チャネルドライバ102がVTPT103の先頭アドレスを該チャネル制御レジスタ114のTPTベースアドレスレジスタに書き込む。 Here as above, LPAR control program 101, TPT base address of the channel driver 113 intercepts a function to write a value to the TPT base address register 303, a virtual channel driver 102 is the channel control register 114 the start address of VTPT103 write to the register. (既に値がセットされている場合、同じ値が上書きされる。)また、LPAR制御プログラム101はチャネルドライバ113がTPT有効レジスタ307に値を書き込む前記関数をインターセプトし、仮想チャネルドライバ102がTPT111のアドレス有効ビットが'1'であることころの該当アドレスをVTPT103にコピーし、LPAR制御プログラム101がTPT有効レジスタに'1'を書き込む。 (If the value already has been set, the same value is overwritten.) Also, LPAR control program 101 intercepts the function channel driver 113 writes a value to the TPT valid register 307, a virtual channel driver 102 is TPT111 copy the appropriate address of the roller that address valid bit is '1' VTPT103, LPAR control program 101 writes a '1' to TPT valid register.

図8に示すように、チャネルドライバ112はTPT110においてQP100〜QP199のDescriptorに対してのみ値をセットし、またチャネルドライバ113はTPT111においてQP200〜QP299のDescriptorに対してのみ値をセットするため、各OSが異なるDescriptorを使用することによって共用されることもなく、各TPT先頭からのオフセットがずれている。 As shown in FIG. 8, the channel driver 112 sets the value only for the Descriptor of QP100~QP199 in TPT110, also to set the value only to the Descriptor of QP200~QP299 in channel driver 113 TPT111, each without being shared by the OS uses a different Descriptor, offsets are offset from each TPT top. よって、仮想チャネルドライバ102がVTPT103を作成するとき、TPT110、111の値をTPTベースアドレスからのオフセットを変更することなく容易にコピーでき、該VTPT103を作成し直すのみで、転送用データのコピー、及び、Descriptor等の他の入出力制御データの変更を伴わない。 Therefore, when the virtual channel driver 102 creates a VTPT103, the value of TPT110,111 easily copied without changing the offset from the TPT base address, only recreate the VTPT103, copy of the transfer data, and, without changing the other input and output control data Descriptor like.

なお、本実施例では、仮想チャネルドライバ102がLPAR制御プログラム101内に存在する方式を述べているが、別の方式として、図9に示すようにLPAR#3にOS3(901)を立ち上げ、OS3(901)内にて仮想チャネルドライバ102を動作させ、VTPT103をOS3制御メモリ内に作成することも可能である。 In this embodiment, although the virtual channel driver 102 is described a method that exists in the LPAR control program 101, as another method, it launched OS3 (901) to LPAR # 3 as shown in FIG. 9, OS3 (901) to operate the virtual channel driver 102 in the, it is also possible to create a VTPT103 to OS3 control memory.

チャネルアダプタ100はTPT有効レジスタが'1'にセットされたとき、VTPTをフェッチし、チャネルアダプタ内に保持して、最新のVTPTを使用する。 When the channel adapter 100 of TPT valid register is set to '1', fetch the VTPT, and retained within channel adapter, to use the latest VTPT. チャネル制御レジスタ114内のTPTベースアドレスレジスタ303の値はVTPT103の先頭アドレスがセットされているため、チャネルアダプタ100はVTPT103を使用することになる。 Since the value is the start address of VTPT103 of TPT base address register 303 in the channel control register 114 is set, the channel adapter 100 would use the VTPT103.

次に、OS1(105)のチャネルドライバ112が図4、及び図5に示すQP100、及びCQ1を使用してデータ送信処理を行う場合について述べる。 Will now be described the case of performing the data transmission process using the channel driver 112 in FIG. 4, and QP100 shown in FIG. 5, and the CQ1 the OS1 (105). 該チャネルドライバ112はQP100のSend Queueにおいて、DB_AD501に物理アドレスをセットし、DB_AD501の指しているところにコマンド(256バイト)領域504をセットする。 In Send Queue of the channel driver 112 QP100, it sets the physical address to DB_AD501, sets the command (256 bytes) region 504 where the points of DB_AD501. また、別のDescriptor510を定義し、該Descriptor510の先頭アドレスをNext Descriptor502にセットし、該Descriptor510のDB_AD507のアドレスが示すところに送信用のデータバッファ506が存在する。 Also, define another Descriptor510, the start address of the Descriptor510 set to Next Descriptor502, data buffer 506 is present for transmission where indicated DB_AD507 address of the Descriptor510. チャネルドライバ112はFLAG509内に関連するCQ#として#1、及び該CQ1の先頭アドレスをセットし、I/O処理起動のためチャネル制御レジスタ114内のTPTオフセットアドレスレジスタ304にカーネル関数を使用して値を書き込む。 Channel driver 112 # 1 as CQ # associated with the FLAG509, and sets the head address of the CQ1, using a kernel function to TPT offset address register 304 in the channel control register 114 for the I / O processing activation write the value. このとき、LPAR制御プログラム101は該関数をインタセプトし、仮想チャネルドライバ102がTPTオフセットアドレスレジスタ304に値を書き込む。 At this time, LPAR control program 101 intercepts the number the function, the virtual channel driver 102 writes a value to TPT offset address register 304. 続いて、チャネルドライバ112はカーネル関数を使用してチャネル制御レジスタ114内のQP#レジスタ302にQP#を、I/O処理イネーブルレジスタ305に'1'をセットしようとする。 Subsequently, the channel driver 112 a QP # using the kernel function QP # register 302 in the channel control register 114, it tries to set a '1' to I / O processing enable register 305. このときLPAR制御プログラム101は該関数をインタセプトし、仮想チャネルドライバ102がQP#レジスタ302にQP#を、I/O処理イネーブルレジスタ305に'1'を書き込む。 At this time the LPAR control program 101 intercepts the number the function, the QP # virtual channel driver 102 to QP # register 302 by writing '1' to the I / O processing enable register 305.

チャネルアダプタ100は仮想チャネルドライバ102からのI/O処理起動を認識すると、上記チャネル制御レジスタ114内のTPTオフセットアドレスレジスタ304にセットされたオフセットとVTPT103から該当するDescriptorの先頭アドレスを得る。 When the channel adapter 100 recognizes the I / O processing activation from the virtual channel driver 102 to obtain the start address of the Descriptor of the appropriate section TPT it offsets address register 304 and the set offset VTPT103 in the channel control register 114. 該先頭アドレスを使用することによって、該当Descriptorのフェッチ処理を行い、フェッチしたDescriptor情報からコマンド504、及び、送信用データバッファ506のフェッチを行い、コマンド領域504内に指定されているターゲットID、及びFLAG503内に指定された相手先のQP#に向けてデータ転送を行う。 By using the top address, performs fetching processing of the corresponding Descriptor, command 504 from the fetched Descriptor information, and performs a fetch of the transmission data buffer 506, a target ID that is specified in the command area 504 and, performing a data transfer towards a specified destination of QP # in the FLAG503. プロトコルに基づきデータ転送を行い、相手先からの応答フレームを受信したとき、前記コマンド応答情報領域505に該応答フレームをストアする。 Transfers data based on protocol, when receiving the response frame from the other party, and stores the response frame to the command response information area 505. 該応答フレームのストアを完了した後、CQ1にQP100とSend Queueを示す情報をセットし、チャネル制御レジスタ114内の完了CQレジスタ308にCP#である'1'をセットした後、I/O処理終了を示すI/O割り込みをOSに対して上げる。 After completing the store of the response frame, and sets information indicating a QP100 and Send Queue to CQ1, after setting the a CP # '1' to complete CQ register 308 in the channel control register 114, I / O processing increase the I / O interrupt indicating the end against OS.

LPAR制御プログラム101は該I/O割り込みをインタセプトし、仮想チャネルドライバ102がチャネル制御レジスタ内の完了CQレジスタ308の値をreadし、CQ1に対する処理が終わったことを認識し、該処理がLPAR#1に対するものであることがわかるので、インタセプトしたI/O割り込みをOS1に対して上げる。 LPAR control program 101 intercepts the I / O interrupts, to read the value of the completion CQ register 308 of the virtual channel driver 102 channel control registers, recognizes that the process for the CQ1 is finished, the processing is LPAR # since it can be seen that is for 1, increase the I / O interrupt intercepted against OS1. OS1のチャネルドライバ112は該I/O割り込みを認識することによって、CQ1の内容をreadし、該I/O処理の終了処理を行う。 Channel driver 112 of the OS1 by recognizing the I / O interrupt, then read the contents of CQ1, the termination processing of the I / O processing.

OS2(106)のチャネルドライバ113はQP200〜QP299、及びCQ2を使用してI/O処理を行う。 Channel driver 113 OS2 (106) performs I / O processing using QP200~QP299, and CQ2. その他のI/O処理の概要はOS1(105)が行うものと同様である。 Summary of other I / O processing is similar to that performed by the OS1 (105).

上記実施例では、データを送信する場合を述べているが、データを受信した場合、受信したフレームに指定されたQP#が入っているため、該指定されたQPのReceive Queueを使用してI/O処理を行うことによりデータの受信も可能である。 In the above embodiment, it describes a case of transmitting the data, when receiving the data, because it is in the QP # specified in the received frame, using the Receive Queue of the specified QP I / O processing received data by performing are possible.

以上、本発明にかかわる実施例を説明してきたが、PCIバスインタフェースを持つデバイスに対して、ハードウェアから成るコントローラ、ローカルメモリを設けることなく、チャネルドライバが動作する仮想計算機番号を制御プログラムから取得し、仮想アドレスを物理アドレスに変換するテーブルのみを作成しなおすことによって、転送用データのコピーを行うことも無く、入出力制御データを変更しないで、複数のOSから共用できるチャネル装置を提供できる。 Having thus described the embodiments according to the present invention obtains, for devices with PCI bus interface controller comprised of hardware, without providing a local memory, the virtual machine number that the channel driver operates from the control program and, by recreating only table for converting the virtual address into a physical address, it is also not to perform copying of the transfer data, without changing the input and output control data, it is possible to provide a channel system that can be shared by a plurality of OS .

100 チャネルアダプタ101 LPAR制御プログラム102 仮想チャネルドライバ103 仮想アドレス変換テーブル105、106 オペレーティングシステム107 フレームの送受信を行うリンク108、109 入出力処理制御データのQueue Pair 100 channel adapter 101 LPAR control program 102 virtual channel driver 103 virtual address translation table 105 for transmitting and receiving the operating system 107 frame links 108 and 109 output the control data of the Queue Pair
110、111 各OS上に作成されるアドレス変換テーブル112、113 各OS上にて動作するチャネルドライバ114 チャネルアダプタ内のチャネル制御レジスタ115、116 入出力処理制御データのCompletion Queue 110 and 111 Completion Queue channel control register 115 and 116 output the control data in channel driver 114 channel adapter operating at the the address conversion table 112 and 113 on each OS created on each OS
200 主記憶(MS) 200 main storage (MS)
201 チャネルアダプタのポート202 ケーブル203 メモリアクセス制御チップ204、205 プロセッサ206 チャネルアダプタ207 スイッチ(Switch) Port 202 cable 203 of 201 channel adapter memory access control chip 204 and 205 processor 206 channel adapter 207 switch (Switch)
208 I/Oデバイス300 チャネル制御レジスタ301 PCIコンフィギュレーションレジスタ302 QP#レジスタ303 TPTベースアドレスレジスタ304 TPTオフセットアドレスレジスタ305 I/O処理イネーブルレジスタ306 Send/Receiveレジスタ307 TPT有効レジスタ308 処理を終えたCQ#を示す完了CQレジスタ400 入出力処理を制御するQueue Pair 208 I / O device 300 channel control registers 301 PCI configuration register 302 QP # register 303 TPT base address register 304 TPT offset address register 305 I / O processing enable register 306 Send / Receive register 307 TPT finished valid register 308 process CQ # controls the completion CQ register 400 output processing indicating the Queue Pair
401 Send Queue内のDescriptor 401 Descriptor of the Send Queue
403 Send Queue内のDescriptorが指すデータバッファ404 Receive Queue内のDescriptor Descriptor in the data buffer 404 Receive the Queue pointed Descriptor within 403 Send Queue
405 Receive Queue内のDescriptorが指すデータバッファ406 アドレス変換テーブルの内容407 Completion Queueの内容500、510 Send QueueのDescriptor 405 Receive Contents of 407 Completion Queue data buffer 406 address translation table Descriptor pointed in Queue 500, 510 Send Queue of Descriptor
501 コマンド領域を示すアドレスを含むDA_AD DA_AD comprising an address indicating a 501 command area
502、508 次に処理すべきDescriptorを指すアドレス領域503、509 当該Descriptorに関係した情報を含むFLAG領域504 コマンド領域505 コマンドに対する応答フレームをストアする領域506 データバッファ領域507 データ領域を示すアドレスを含むDA_AD Including an address representing a store region 506 data buffer area 507 data area response frame to FLAG region 504 command area 505 command including information related to the address area 503, 509 corresponding Descriptor pointing to 502,508 to be processed next Descriptor DA_AD
600 チャネルアダプタ601 チャネル制御レジスタ602 フレームの送受信を行うリンク603 オペレーティングシステム604 QP000〜QP999 600 link to transmit and receive channel adapter 601 channel control registers 602 frame 603 operating system 604 QP000~QP999
605 QP000〜QP999に対するTPT 605 TPT for QP000~QP999
606 チャネルドライバ607 CQ00〜CQ99 606 channel driver 607 CQ00~CQ99
700 LPAR番号と各LPARに定義されたQP#とCQ# 700 QP # and CQ #, which is LPAR number and defined for each LPAR
1000 LANアダプタを搭載したLANパッケージ1001 コントローラ1002 ローカルメモリ1003 LANアダプタ 1000 LAN package 1001 Controller 1002 local memory 1003 LAN adapter equipped with LAN adapters
1004 PCIバス1005 LANアダプタ用ドライバ1006 フレームの送受信を行うリンク1007 LANパッケージのインタフェースであるPCIバスあるいはシステム固有仕様バス 1004 PCI bus or system-specific specification bus is the interface of PCI bus 1005 links 1007 LAN package for sending and receiving for the LAN adapter driver 1006 frame

Claims (2)

  1. 処理装置上で制御プログラムが動作し、該制御プログラムの制御下で複数のオペレーティングシステム(OS)の動作が可能であり、I/Oデバイスとの間で転送データを送受信するチャネルアダプタを具備し、該チャネルアダプタはPCIバスを介して前記処理装置に接続されると供にポートを介して前記I/Oデバイスに接続され、前記チャネルアダプタは該チャネルアダプタを制御するためのチャネル制御レジスタを有し、各OSのチャネルドライバが転送データの入出力処理を行うための入出力処理制御データを作成すると共に前記チャネルアダプタを制御するデータ処理システムであって、各OSのチャネルドライバの代わりに実際に前記チャネルアダプタを制御する仮想チャネルドライバを前記制御プログラム内に設け、各OS Control program in the processing unit operates, it is capable of operating multiple operating system (OS) under the control of the control program, comprising a channel adapter for transmitting and receiving data transferred to and from the I / O device, the channel adapter connected to the I / O device via the port to supply to be connected to the processor via the PCI bus, the channel adapter includes a channel control register for controlling the channel adapter a data processing system for controlling the channel adapter with channel driver for each OS creates the input and output process control data for performing input and output processing of transfer data, actually the instead of the channel drivers for each OS It provided a virtual channel driver to control the channel adapter in the control program, the OS チャネルドライバが前記チャネル制御レジスタにアクセスする時、前記制御プログラムが前記アクセスのための関数をインターセプトし、前記仮想チャネルドライバが実際に前記チャネル制御レジスタにアクセスすることを特徴とするデータ処理システム。 When the channel driver to access the channel control register, data processing system, wherein the control program intercepts functions for the access to access to the channel control register the virtual channel driver actually.
  2. 前記チャネル制御レジスタはI/O処理を起動するためのI/O処理イネーブルレジスタを含み、各OSのチャネルドライバが前記I/O処理イネーブルレジスタに“1”を書き込む時、前記制御プログラムは前記チャネルドライバが前記I/O処理イネーブルレジスタに“1”を書き込む関数をインターセプトし、前記仮想チャネルドライバが実際に前記I/O処理イネーブルレジスタに“1”を書き込むことを特徴とする請求項1記載のデータ処理システム。 When the channel control register which contains the I / O processing enable register for starting the I / O processing, channel driver for each OS writes "1" to the I / O processing enable register, the control program is the channel driver intercepts function "1" is written to the I / O processing enable register, according to claim 1, wherein "1" is written to the virtual channel driver actually the I / O processing enable register data processing system.
JP2011081387A 2011-04-01 2011-04-01 Data processing system Active JP4894963B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011081387A JP4894963B2 (en) 2011-04-01 2011-04-01 Data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011081387A JP4894963B2 (en) 2011-04-01 2011-04-01 Data processing system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004269111 Division 2004-09-16

Publications (2)

Publication Number Publication Date
JP2011181080A true JP2011181080A (en) 2011-09-15
JP4894963B2 true JP4894963B2 (en) 2012-03-14

Family

ID=44692468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011081387A Active JP4894963B2 (en) 2011-04-01 2011-04-01 Data processing system

Country Status (1)

Country Link
JP (1) JP4894963B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311122B2 (en) * 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US9397954B2 (en) 2012-03-26 2016-07-19 Oracle International Corporation System and method for supporting live migration of virtual machines in an infiniband network

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3503948B2 (en) * 1995-09-13 2004-03-08 株式会社 日立製作所 Electronic computer system
JPH10301795A (en) * 1997-04-28 1998-11-13 Hitachi Ltd Virtual computer system
JP4087072B2 (en) * 2001-01-25 2008-05-14 株式会社日立製作所 A storage system and a virtual private volume control method

Also Published As

Publication number Publication date Type
JP2011181080A (en) 2011-09-15 application

Similar Documents

Publication Publication Date Title
US7653754B2 (en) Method, system and protocol that enable unrestricted user-level access to a network interface adapter
US6067595A (en) Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
US5768618A (en) Method for performing sequence of actions in device connected to computer in response to specified values being written into snooped sub portions of address space
US6138176A (en) Disk array controller with automated processor which routes I/O data according to addresses and commands received from disk drive controllers
US7251704B2 (en) Store and forward switch device, system and method
US6421742B1 (en) Method and apparatus for emulating an input/output unit when transferring data over a network
US6098114A (en) Disk array system for processing and tracking the completion of I/O requests
US5915104A (en) High bandwidth PCI to packet switched router bridge having minimized memory latency
US7613847B2 (en) Partially virtualizing an I/O device for use by virtual machines
US6070194A (en) Using an index and count mechanism to coordinate access to a shared resource by interactive devices
US5802318A (en) Universal serial bus keyboard system
US6134630A (en) High-performance bus architecture for disk array system
US20100274876A1 (en) Network interface device with memory management capabilities
US6983337B2 (en) Method, system, and program for handling device interrupts
US7451456B2 (en) Network device driver architecture
US20080313661A1 (en) Administering an Epoch Initiated for Remote Memory Access
US20070162641A1 (en) Method and apparatus for utilizing platform support for direct memory access remapping by remote DMA ("RDMA")-capable devices
US20060168359A1 (en) Method, system, and program for handling input/output commands
US5638517A (en) Method and apparatus for transmitting a message from a computer system over a network adapter to the network by performing format conversion and memory verification
US20030009432A1 (en) Access assurance for remote memory access over network
US20050114559A1 (en) Method for efficiently processing DMA transactions
US20060149919A1 (en) Method, system, and program for addressing pages of memory by an I/O device
US7010638B2 (en) High speed bridge controller adaptable to non-standard device configuration
US20060004904A1 (en) Method, system, and program for managing transmit throughput for a network controller
US20070005867A1 (en) Virtual peripheral device interface and protocol for use in peripheral device redirection communication

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110818

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111129

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111212

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

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3