JP2009193469A - Device, method and program for dynamic switching - Google Patents

Device, method and program for dynamic switching Download PDF

Info

Publication number
JP2009193469A
JP2009193469A JP2008035240A JP2008035240A JP2009193469A JP 2009193469 A JP2009193469 A JP 2009193469A JP 2008035240 A JP2008035240 A JP 2008035240A JP 2008035240 A JP2008035240 A JP 2008035240A JP 2009193469 A JP2009193469 A JP 2009193469A
Authority
JP
Japan
Prior art keywords
transaction
routing
bit
valid
dynamic switching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008035240A
Other languages
Japanese (ja)
Other versions
JP4984077B2 (en
Inventor
Takahiro Tanioka
隆浩 谷岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008035240A priority Critical patent/JP4984077B2/en
Publication of JP2009193469A publication Critical patent/JP2009193469A/en
Application granted granted Critical
Publication of JP4984077B2 publication Critical patent/JP4984077B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve a function for dynamically switching a master device to a slave device during a system operation in a configuration where a multifunction PCI device is duplicated. <P>SOLUTION: A transaction routing controller receives a transaction from an FSB interface on a processor side and an I/O interface on an I/O device side, determines a target device for the transaction by referring to a routing table, when the transaction is a memory access transaction, and transmits the transaction to the interface for the target device. At this time, when the device to which the transaction is transmitted is found to be a duplicated I/O device as the result of referring to the routing information, the transaction is transmitted to either one or both of the master device and the slave device, depending on the duplication status of the device. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、動的切り替え装置に関し、特に二重化されたI/Oデバイスの動的切り替え装置に関する。   The present invention relates to a dynamic switching apparatus, and more particularly to a dynamic switching apparatus for duplexed I / O devices.

PCIデバイスに代表される入出力(I/O:Input/Output)コントローラデバイス(以下、I/Oデバイス)を二重化し、システムの耐故障性を向上させるにあたり、通常のフォルトトレラント(FT:Fault Tolerant)コンピュータ等では、二重化されたI/Oデバイスへのアクセスをソフトウェアのデバイスドライバ層で吸収し、上位層のオペレーティングシステム(OS:Operating System)やアプリケーションからは単一のI/Oデバイスとして見えるようにする手法が採用されている。この手法の問題点は、二重化を実現するための複雑なデバイスドライバが必要となることである。   In order to improve the fault tolerance of a system by duplicating an input / output (I / O) controller device (hereinafter referred to as I / O device) represented by a PCI device, an ordinary fault tolerant (FT) is used. In a computer or the like, access to the duplicated I / O device is absorbed by the device driver layer of the software so that it can be seen as a single I / O device from the upper layer operating system (OS) and application. This technique is adopted. The problem with this method is that a complex device driver is required to realize duplication.

この問題点を解決するために、I/Oデバイスの二重化をハードウェア層で実現する方法がある。この方法では、プロセッサからI/Oデバイスへのトランザクション(Transaction)を複製してマスターデバイスとスレーブデバイスの双方へルーティング(routing)し、I/Oデバイスからプロセッサへのトランザクションは、マスターデバイス若しくはスレーブデバイスのいずれか一方のデバイスからのみルーティングする機構をチップセットに実装する。この方法により、I/OデバイスをミラーリングしてチップセットからI/Oデバイスまでの経路で障害が発生した場合に、システムの運用を継続したまま動的にその経路を縮退させる事が可能である。   In order to solve this problem, there is a method for realizing duplication of I / O devices in the hardware layer. In this method, a transaction from the processor to the I / O device is copied and routed to both the master device and the slave device, and the transaction from the I / O device to the processor is performed by either the master device or the slave device. A mechanism for routing only from one of the devices is implemented in the chipset. By this method, when a failure occurs in the path from the chipset to the I / O device by mirroring the I / O device, it is possible to dynamically degenerate the path while continuing the operation of the system. .

しかしながら、この方法には、適用可能なI/Oデバイスの種類が、不揮発性メモリ(NvRAM:Non−Volatile Random Access Memory)のような静的なデバイスに限られるという制約があった。その理由は、例えば、リアルタイムクロック(RTC:Real Time Clock)やタイマー等の内部ステートを持つデバイスは、二重化した双方に同じようにトランザクションを送出しても双方のデバイスを内部ステートまで完全に同期して動作させる事が困難だからである。ネットワークカード(NIC:Network Interface Card)のような外部とのインターフェース(I/F:interface)も、コールドスタンバイによる冗長構成を採用するほうが一般的である。   However, this method has a limitation that the type of I / O device that can be applied is limited to a static device such as a non-volatile random access memory (NvRAM). The reason for this is that, for example, a device having an internal state such as a real time clock (RTC) or a timer will completely synchronize both devices to the internal state even if a duplicate transaction is sent to both sides. This is because it is difficult to operate. Generally, an external interface (I / F: interface) such as a network card (NIC: Network Interface Card) also adopts a redundant configuration by cold standby.

関連する技術として、特開平07−123109号公報(特許文献1)にルーティング制御方式が開示されている。
この関連技術では、ルーティングテーブルを参照して、現用系にかかる情報及び予備系にかかる情報のルーティングを管理する。
As a related technique, a routing control method is disclosed in Japanese Patent Application Laid-Open No. 07-123109 (Patent Document 1).
In this related technology, the routing of information related to the active system and information related to the standby system is managed with reference to the routing table.

また、特開平10−207815号公報(特許文献2)に動的切替装置が開示されている。
この関連技術では、動的切替装置は、チャネル装置及び入出力装置の数に対応した所定数のポートを有し、通常のデータ転送に伴なう経路切り替え時に所定数のポート毎に経路を切り替えてデータを送出した相手先情報を記憶する相手先記憶手段と、チャネル装置及び入出力装置の間を接続しているインターフェースの障害を検出した場合に相手先記憶手段により記憶されている相手先情報に基づいて該当する相手先に対して障害通知情報を送出する障害通知手段とを備えている。
Japanese Patent Laid-Open No. 10-207815 (Patent Document 2) discloses a dynamic switching device.
In this related technology, the dynamic switching device has a predetermined number of ports corresponding to the number of channel devices and input / output devices, and switches the route for each predetermined number of ports when switching the route accompanying normal data transfer. Destination information stored in the destination storage means when a failure is detected in the interface connected between the channel device and the input / output device. And a failure notification means for transmitting failure notification information to the corresponding counterpart based on the above.

また、特表2005−516478号公報(特許文献3)にフォールト・トレラント・ルーチング・データベースを提供するシステムが開示されている。
この関連技術では、当該システムは、ネットワーク環境内でルーティング・テーブル更新情報を交換するルータを含む。また、当該システムは、プライマリ・プロセスは遠隔プロセスとの通信に関与し、この通信にはデータ内容及び通信状態の転送が含まれる。また、当該システムは、プライマリ・プロセスはデータ内容及び通信状態をデータ格納装置に格納する。プライマリ・プロセスが故障した場合、遠隔プロセスとの通信は、データ格納装置からデータ内容及び通信状態を取り出すことによりプライマリ・プロセスをミラーリングする、バックアップ・プロセスに移される。これより、バックアップ・プロセスは、データ格納装置から取り出された通信状態を用いて、遠隔プロセスとの通信を続行する。
Japanese Patent Application Publication No. 2005-516478 (Patent Document 3) discloses a system that provides a fault tolerant routing database.
In this related art, the system includes a router that exchanges routing table update information in a network environment. In the system, the primary process is involved in communication with a remote process, and this communication includes transfer of data contents and communication status. In the system, the primary process stores the data content and the communication state in the data storage device. If the primary process fails, communication with the remote process is transferred to a backup process that mirrors the primary process by retrieving data content and communication status from the data store. Thus, the backup process continues to communicate with the remote process using the communication state retrieved from the data storage device.

特開平07−123109号公報JP 07-123109 A 特開平10−207815号公報Japanese Patent Laid-Open No. 10-207815 特表2005−516478号公報JP 2005-516478 A

本発明の目的は、二重化されたI/Oデバイスのマスターデバイスとスレーブデバイスをシステム運用中にマスターデバイスのみ有効、スレーブデバイスのみ有効、両デバイスをミラーリングした状態のいずれにも切り替える事ができる動的切り替え装置、動的切り替え方法、及び動的切り替えプログラムを提供することである。   An object of the present invention is to dynamically switch a master device and a slave device of a duplexed I / O device to any one of the master device valid, the slave device valid, and the mirrored state of both devices during system operation. , A dynamic switching method, and a dynamic switching program.

本発明では、メモリコントローラに実装するルーティングテーブルに、I/Oデバイスを二重化する際にマスターデバイスへのトランザクションをトランザクションルーティングコントローラにてそのまま当該マスターデバイスへ送出させる指示情報と、当該トランザクションを複製してスレーブデバイスへ送出させる指示情報を併せ持つ。この二つの指示情報の組み合わせにより、マスターデバイスに宛てたトランザクションを、マスターデバイスのみに送出・スレーブデバイスのみに送出・マスターデバイスとスレーブデバイス双方に送出といういずれの動作も実現することが可能である。また、サービスプロセッサ(SP:Service Processor)21の制御によりメモリコントローラ中のI/OインターフェースからI/Oデバイスへのトランザクションを一時的に抑止し、先行する仕掛かり中のトランザクションが流れ終わるのを待ち合わせてからルーティングテーブル中のルーティング情報を更新し、I/Oインターフェースの動作を再開することで、二重化されたI/Oデバイスの動作モードの切替を実現する。   In the present invention, in the routing table implemented in the memory controller, when duplicating an I / O device, the transaction information to the master device is sent as it is to the master device as it is by the transaction routing controller, and the transaction is copied to the slave device. It also has instruction information to be sent to. By combining these two pieces of instruction information, it is possible to realize any operation of sending a transaction addressed to the master device only to the master device, sending only to the slave device, and sending to both the master device and the slave device. Also, the transaction from the I / O interface in the memory controller to the I / O device is temporarily suppressed under the control of the service processor (SP: Service Processor) 21, and the end of the previous transaction in progress is waited for. Thereafter, the routing information in the routing table is updated, and the operation of the I / O interface is restarted, thereby switching the operation mode of the duplexed I / O device.

本発明の動的切り替え装置は、I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及びI/Oデバイスへのルーティング経路情報を格納したルーティングテーブルと、トランザクションを受け取り、ルーティングテーブルを参照し、有効ビットが偽である場合、トランザクションの送出を抑止し、有効ビットが真である場合、ルーティング経路情報に従い、I/Oデバイスに対してトランザクションを送出し、I/Oデバイスの切り替えが発生した場合、トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、有効ビットを更新し、トランザクションの送出を再開するトランザクションルーティングコントローラとを具備する。   The dynamic switching device of the present invention receives a routing table storing information related to a valid bit indicating that routing to an I / O device is valid, and routing path information to the I / O device, and a transaction, and performs routing. If the valid bit is false with reference to the table, the sending of the transaction is suppressed. If the valid bit is true, the transaction is sent to the I / O device according to the routing path information. When switching occurs, the transaction routing controller temporarily suppresses the transmission of a transaction, waits for a certain period of time, updates the valid bit, and resumes the transmission of the transaction.

本発明の動的切り替え方法は、トランザクションを受け取ると、I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及びI/Oデバイスへのルーティング経路情報を格納したルーティングテーブルを参照するステップと、有効ビットが偽である場合、トランザクションの送出を抑止するステップと、有効ビットが真である場合、ルーティング経路情報に従い、I/Oデバイスに対してトランザクションを送出するステップと、I/Oデバイスの切り替えが発生した場合、トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、有効ビットを更新し、トランザクションの送出を再開するステップとを含む。   In the dynamic switching method of the present invention, when a transaction is received, information related to a valid bit indicating that routing to the I / O device is valid, and a routing table storing routing path information to the I / O device are referred to. A step of suppressing the sending of a transaction if the valid bit is false, a step of sending a transaction to the I / O device according to the routing path information if the valid bit is true, A step of temporarily stopping the transmission of a transaction when the O device is switched, waiting for a predetermined time, updating a valid bit, and restarting the transmission of the transaction.

本発明の動的切り替えプログラムは、トランザクションを受け取ると、I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及びI/Oデバイスへのルーティング経路情報を格納したルーティングテーブルを参照するステップと、有効ビットが偽である場合、トランザクションの送出を抑止するステップと、有効ビットが真である場合、ルーティング経路情報に従い、I/Oデバイスに対してトランザクションを送出するステップと、I/Oデバイスの切り替えが発生した場合、トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、有効ビットを更新し、トランザクションの送出を再開するステップとをコンピュータに実行させるためのプログラムである。   When the dynamic switching program of the present invention receives a transaction, the dynamic switching program refers to a routing table storing information related to a valid bit indicating that routing to the I / O device is valid, and routing path information to the I / O device. A step of suppressing the sending of a transaction if the valid bit is false, a step of sending a transaction to the I / O device according to the routing path information if the valid bit is true, A program for causing a computer to execute the steps of temporarily suppressing the sending of a transaction, waiting for a fixed time, updating a valid bit, and restarting the sending of a transaction when O device switching occurs. .

I/Oデバイスのミラーリングやコールドスタンバイを任意に実現できる。また、I/Oデバイスの縮退若しくは切替を動的に行う事ができる。   I / O device mirroring and cold standby can be realized arbitrarily. In addition, the I / O device can be degenerated or switched dynamically.

以下に、本発明の第1実施形態について添付図面を参照して説明する。
図1を参照すると、本発明の動的切り替え装置の一例であるコンピュータシステムは、プロセッサ(CPU:Central Processing Unit)11と、プロセッサ(CPU)12と、フロントサイドバス(FSB:Front Side Bus)13と、メモリコントローラ(MEMCTL:Memory Controller)14と、メモリ(MEM:Memory)15と、I/Oコントローラ(IOCTL:Input/Output Controller)16と、I/Oコントローラ(IOCTL)17を備える。
Hereinafter, a first embodiment of the present invention will be described with reference to the accompanying drawings.
Referring to FIG. 1, a computer system as an example of the dynamic switching device of the present invention includes a processor (CPU: Central Processing Unit) 11, a processor (CPU) 12, and a front side bus (FSB: Front Side Bus) 13. A memory controller (MEMCTL: Memory Controller) 14, a memory (MEM: Memory) 15, an I / O controller (IOCTL: Input / Output Controller) 16, and an I / O controller (IOCTL) 17.

図1において、プロセッサ(CPU)11及びプロセッサ(CPU)12は、同一のフロントサイドバス(FSB)13に接続され、対称型マルチプロセッサ(SMP:Symmetric Multiple Processor)構成を形成している。また、フロントサイドバス(FSB)13には、メモリコントローラ(MEMCTL)14が接続されている。ここでは、メモリコントローラ(MEMCTL)14は、CPU、メモリ、I/Oデバイス間のトランザクションのルーティングを司る。   In FIG. 1, a processor (CPU) 11 and a processor (CPU) 12 are connected to the same front side bus (FSB) 13 to form a symmetric multiprocessor (SMP) configuration. A memory controller (MEMCTL) 14 is connected to the front side bus (FSB) 13. Here, the memory controller (MEMCTL) 14 manages the routing of transactions among the CPU, memory, and I / O device.

更に、メモリコントローラ(MEMCTL)14には、メモリ(MEM)15、I/Oコントローラ(IOCTL)16及びI/Oコントローラ(IOCTL)17が接続されている。I/Oコントローラ(IOCTL)16及びI/Oコントローラ(IOCTL)17は、メモリコントローラ(MEMCTL)14からのトランザクションと反対側のPCIバス(PCI−Bus)18若しくはPCIバス(PCI−Bus)19を接続するバスブリッジである。PCIバス(PCI−Bus)18には、I/Oデバイス(Master Device)30が接続されている。PCIバス(PCI−Bus)19には、I/Oデバイス(Slave Device)40が接続されている。   Further, a memory (MEM) 15, an I / O controller (IOCTL) 16, and an I / O controller (IOCTL) 17 are connected to the memory controller (MEMCTL) 14. An I / O controller (IOCTL) 16 and an I / O controller (IOCTL) 17 are connected to a PCI bus (PCI-Bus) 18 or a PCI bus (PCI-Bus) 19 on the opposite side of the transaction from the memory controller (MEMCTL) 14. A bus bridge to be connected. An I / O device (Master Device) 30 is connected to the PCI bus (PCI-Bus) 18. An I / O device (Slave Device) 40 is connected to the PCI bus (PCI-Bus) 19.

本実施形態において、I/Oデバイス(Master Device)30は、不揮発性メモリ(NvRAM)やリアルタイムクロック(RTC)外部I/Oインターフェース等を搭載したマルチファンクションI/Oデバイスを想定しており、図1では、それぞれファンクション(Function)31〜33と表記している。I/Oデバイス(Slave Device)40も、I/Oデバイス(Master Device)30と同等の構成のI/Oデバイスである。   In the present embodiment, the I / O device (Master Device) 30 is assumed to be a multifunction I / O device equipped with a nonvolatile memory (NvRAM), a real-time clock (RTC) external I / O interface, etc. In FIG. 1, functions 31 to 33 are indicated. The I / O device (Slave Device) 40 is also an I / O device having the same configuration as the I / O device (Master Device) 30.

また、本実施形態のコンピュータシステムには、システムの運用制御を司るサービスプロセッサ(SP:Service Processor)21が搭載されており、メモリコントローラ(MEMCTL)14を始めシステム内の各要素に対する初期化、モード設定、リセット等の制御を行う事ができる。なお、図1には、本実施形態の説明に直接関係しない通信経路は図示していない。但し、実際には、直接関係しない通信経路が存在する場合もある。   Further, the computer system of this embodiment is equipped with a service processor (SP: Service Processor) 21 that controls the operation of the system, and initializes and modes each element in the system including the memory controller (MEMCTL) 14. Control such as setting and resetting can be performed. Note that FIG. 1 does not show communication paths that are not directly related to the description of the present embodiment. However, in practice, there may be communication paths that are not directly related.

本実施形態において、コンピュータシステムに接続されるプロセッサ、メモリの数は本発明の要件に直接関与するものではなく、任意の構成において本発明は実施可能であることは明らかである。また、同様に、I/Oコントローラの数、I/Oコントローラに接続されるPCIバスの数も、本発明に関与するものではない。また、PCIバスの代わりにPCI−XバスやPCI Expressバスの他、任意のI/Oバスを用いることも可能である。更に、I/Oデバイスの機能・構成も、本実施形態の機能・構成に限定するものではない。   In the present embodiment, the number of processors and memories connected to the computer system is not directly related to the requirements of the present invention, and it is apparent that the present invention can be implemented in any configuration. Similarly, the number of I / O controllers and the number of PCI buses connected to the I / O controller are not related to the present invention. In addition to the PCI bus, any I / O bus can be used in addition to the PCI-X bus and the PCI Express bus. Further, the function / configuration of the I / O device is not limited to the function / configuration of the present embodiment.

次に、図2を参照して、メモリコントローラ(MEMCTL)14の論理ブロック図を示す。
メモリコントローラ(MEMCTL)14は、FSBインターフェース(FBS I/F)141と、ルーティングテーブル(Routing Table)142と、トランザクションルーティングコントローラ(Txn Routing CTL)143と、メモリインターフェース(MEM I/F)144と、I/Oインターフェース(I/O I/F)145と、I/Oインターフェース(I/O I/F)146と、SPインターフェース(SP I/F)147を備える。
Next, referring to FIG. 2, a logic block diagram of the memory controller (MEMCTL) 14 is shown.
The memory controller (MEMCTL) 14 includes an FSB interface (FBS I / F) 141, a routing table 142, a transaction routing controller (Txn Routing CTL) 143, a memory interface (MEM I / F) 144, An I / O interface (I / O I / F) 145, an I / O interface (I / O I / F) 146, and an SP interface (SP I / F) 147 are provided.

図2において、メモリコントローラ(MEMCTL)14とコンピュータシステム内の各要素との接続インターフェースは、それぞれFSBインターフェース(FBS I/F)141、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145及びI/Oインターフェース(I/O I/F)146として図示されている。   In FIG. 2, the connection interface between the memory controller (MEMCTL) 14 and each element in the computer system includes an FSB interface (FBS I / F) 141, a memory interface (MEM I / F) 144, and an I / O interface (I / O I / F) 145 and I / O interface (I / O I / F) 146.

なお、FSBインターフェース(FBS I/F)141は、フロントサイドバス(FSB)13との接続インターフェースである。メモリインターフェース(MEM I/F)144は、メモリ(MEM)15との接続インターフェースである。I/Oインターフェース(I/O I/F)145は、I/Oコントローラ(IOCTL)16との接続インターフェースである。I/Oインターフェース(I/O I/F)146は、I/Oコントローラ(IOCTL)17との接続インターフェースである。   The FSB interface (FBS I / F) 141 is a connection interface with the front side bus (FSB) 13. The memory interface (MEM I / F) 144 is a connection interface with the memory (MEM) 15. The I / O interface (I / O I / F) 145 is a connection interface with the I / O controller (IOCTL) 16. The I / O interface (I / O I / F) 146 is a connection interface with the I / O controller (IOCTL) 17.

また、SPインターフェース(SP I/F)147として示したブロックは、CPU上で動作するソフトウェアとSP間の通信経路を提供するインターフェースブロックである。ここでは、SPインターフェース(SP I/F)147は、プロセッサ(CPU)11及びプロセッサ(CPU)12上で動作するソフトウェアとサービスプロセッサ(SP)21間の通信経路を提供する。   A block indicated as an SP interface (SP I / F) 147 is an interface block that provides a communication path between software operating on the CPU and the SP. Here, the SP interface (SP I / F) 147 provides a communication path between the software operating on the processor (CPU) 11 and the processor (CPU) 12 and the service processor (SP) 21.

トランザクションルーティングコントローラ(Txn Routing CTL)143は、各インターフェースブロックを結ぶ位置に存在し、各インターフェースブロックから入力したメモリリード(メモリ読み出し)・リプライ(応答)・メモリライト(メモリ書き込み)・割り込み等の各種トランザクションをルーティングし、適切なインターフェースブロックへ出力する。これらの各種トランザクションに含まれる情報の例として、メモリアクセスのターゲットアドレス、リプライデータ、リプライや割り込みのソースデバイスID、ターゲットデバイスID等が考えられる。また、トランザクションルーティングコントローラ(Txn Routing CTL)143は、ルーティング経路を決定するためにルーティングテーブル(Routing Table)142を参照する。   A transaction routing controller (Txn Routing CTL) 143 exists at a position connecting each interface block, and various types of memory read (memory read), reply (response), memory write (memory write), interrupt, etc. input from each interface block. Route the transaction and output it to the appropriate interface block. Examples of information included in these various transactions include a memory access target address, reply data, a reply or interrupt source device ID, a target device ID, and the like. Further, the transaction routing controller (Txn Routing CTL) 143 refers to the routing table 142 to determine a routing route.

続いて、図3を参照して、ルーティングテーブル(Routing Table)142に格納されるルーティング情報の形式について説明する。
ルーティングテーブル(Routing Table)142は、図示したような一連の情報を含むレコードを複数有するテーブルであり、I/Oデバイスの個々のファンクション(Function)毎に1つのレコードを登録する。本実施形態のコンピュータシステムは、メモリ(MEM)15の他、I/Oデバイス上のレジスタやメモリデバイスを物理記憶空間上にメモリマップドI/O(MMIO:Memory Mapped I/O)としてマッピングする構成を採用しているため、テーブルの1レコードに格納される情報は、これら物理記憶空間上にマッピングされたいずれかのデバイスへのルーティング経路情報である。
Next, the format of the routing information stored in the routing table 142 will be described with reference to FIG.
The routing table 142 is a table having a plurality of records including a series of information as illustrated, and registers one record for each function of the I / O device. The computer system according to the present embodiment maps registers and memory devices on the I / O device in addition to the memory (MEM) 15 as memory mapped I / O (MMIO: Memory Mapped I / O) on the physical storage space. Since the configuration is adopted, the information stored in one record of the table is routing path information to any device mapped on the physical storage space.

ルーティングテーブル(Routing Table)142の1レコードにおける個々のフィールドを見ると、ルーティングテーブル(Routing Table)142のレコードは、Vmビット(Vm)51と、マスターデバイスID(Master DID)52と、Vsビット(Vs)53と、スレーブデバイスID(Slave DID)54と、アドレスオフセット(Addr. Offset)55と、アドレス範囲(Addr. Range)56を含む。   Looking at the individual fields in one record of the routing table 142, the record of the routing table 142 has a Vm bit (Vm) 51, a master device ID (Master DID) 52, and a Vs bit (Vs). ) 53, a slave device ID (Slave DID) 54, an address offset (Addr. Offset) 55, and an address range (Addr. Range) 56.

Vmビット(Vm)51は、二重化されたマスターI/Oデバイスへのルーティングが有効である事を示す有効ビットを示す。マスターデバイスID(Master DID)52は、物理記憶空間上にマッピングされた当該マスターI/Oデバイスへのルーティング経路情報を示す。Vsビット(Vs)53は、スレーブI/Oデバイスへのルーティングが有効であることを示す有効ビットを示す。スレーブデバイスID(Slave DID)54は、物理記憶空間上にマッピングされた当該スレーブI/Oデバイスへのルーティング経路情報を示す。アドレスオフセット(Addr. Offset)55は、当該I/Oデバイスの各ファンクション(Function)をI/Oデバイス毎に連続したメモリ領域にマッピングする際のそのメモリ領域全体の先頭アドレスから個々のファンクション(Function)の領域へのオフセットとして用いられる。アドレス範囲(Addr. Range)56は、個々のファンクション(Function)の領域のサイズを示す。   A Vm bit (Vm) 51 indicates a valid bit indicating that routing to a duplicated master I / O device is valid. A master device ID (Master DID) 52 indicates routing path information to the master I / O device mapped on the physical storage space. The Vs bit (Vs) 53 indicates a valid bit indicating that routing to the slave I / O device is valid. A slave device ID (Slave DID) 54 indicates routing path information to the slave I / O device mapped on the physical storage space. An address offset (Addr. Offset) 55 is used to map each function (Function) from the start address of the entire memory area when mapping each function (Function) of the I / O device to a continuous memory area for each I / O device. ) Is used as an offset to the area. The address range (Addr. Range) 56 indicates the size of the area of each function (Function).

次に、図2のメモリコントローラ(MEMCTL)14の動作を説明する。
まず、始めに、システム立ち上げ時の初期設定方法について説明する。
Next, the operation of the memory controller (MEMCTL) 14 in FIG. 2 will be described.
First, an initial setting method when starting up the system will be described.

本実施形態のシステム構成として図1に設定した構成において、I/Oデバイス(Master Device)30を二重化されたI/Oデバイスのマスターデバイスとして動作させ、I/Oデバイス(Slave Device)40をスレーブデバイスとして動作させるための設定が必要である。この設定は、システムの立ち上げ時に、サービスプロセッサ(SP)21からルーティングテーブル(Routing Table)142に対し、図4に記載したような情報を設定する事により実現される。   In the configuration set in FIG. 1 as the system configuration of the present embodiment, the I / O device (Master Device) 30 is operated as a master device of the duplexed I / O device, and the I / O device (Slave Device) 40 is the slave device. Must be set to operate as This setting is realized by setting information as shown in FIG. 4 from the service processor (SP) 21 to the routing table (routing table) 142 at the time of starting the system.

図4の表は、ルーティングテーブル(Routing Table)142の表の形式(データフォーマット)の一例である。
図4の表における設定内容を詳細に説明すると、I/Oデバイス(Master Device)30に対する設定項目について、図4の表の上方に3レコード分の定義がされている。本実施形態では、I/Oデバイス(Master Device)30は、3種のファンクション(Function)を搭載したマルチファンクションI/Oカードであり、個々のファンクション(Function)に対応するMMIO空間のアドレスを1レコードずつ定義する。ここでは、個々のファンクション(Function)名をそれぞれa、b、cと記載している。
The table in FIG. 4 is an example of a table format (data format) of the routing table 142.
The setting contents in the table of FIG. 4 will be described in detail. With respect to the setting items for the I / O device (Master Device) 30, three records are defined above the table of FIG. In this embodiment, the I / O device (Master Device) 30 is a multi-function I / O card equipped with three types of functions, and the address of the MMIO space corresponding to each function (Function) is 1 Define each record. Here, individual function names are described as a, b, and c, respectively.

なお、本実施形態では、図1に示すように、I/Oデバイス(Master Device)30は、ファンクション(Function)a:31と、ファンクション(Function)b:32と、ファンクション(Function)c:33を含む。また、I/Oデバイス(Slave Device)40は、ファンクション(Function)a’:41と、ファンクション(Function)b’:42と、ファンクション(Function)c’:43を含む。   In this embodiment, as shown in FIG. 1, the I / O device (Master Device) 30 includes a function (Function) a: 31, a function (Function) b: 32, and a function (Function) c: 33. including. Further, the I / O device (Slave Device) 40 includes a function (function) a ': 41, a function (Function) b': 42, and a function (Function) c ': 43.

本実施形態では、これら3種のファンクション(Function)a、b、cのうち、ファンクション(Function)aに対してミラーリングの設定がされているとすると、I/Oデバイス(Master Device)30のファンクション(Function)a:31に対するVmビット(Vm)51及びVsビット(Vs)53が、いずれも真(T:True)に設定されることになる。このとき、I/Oデバイス(Slave Device)40に対応するレコードは、Vmビット(Vm)51及びVsビット(Vs)53が、いずれも偽(F:False)に設定されている。これにより、CPUから直接I/Oデバイス(Slave Device)40へのアクセスができないようになっている。   In the present embodiment, if the mirroring is set for the function a among the three types of functions a, b, and c, the function of the I / O device (Master Device) 30 is set. (Function) a: The Vm bit (Vm) 51 and the Vs bit (Vs) 53 for 31 are both set to true (T: True). At this time, in the record corresponding to the I / O device (Slave Device) 40, the Vm bit (Vm) 51 and the Vs bit (Vs) 53 are both set to false (F: False). This prevents the CPU from accessing the I / O device (Slave Device) 40 directly.

ファンクション(Function)b:32は、コールドスタンバイを設定する例である。ここでは、I/Oデバイス(Master Device)30のVmビット(Vm)51が真(T)で、Vsビット(Vs)53が偽(F)として表現される。I/Oデバイス(Slave Device)40に対応するレコードのVmビット(Vm)51及びVsビット(Vs)53は、上記ファンクション(Function)a:31と同じく、いずれも偽(F)に設定されている。   A function (Function) b: 32 is an example of setting a cold standby. Here, the Vm bit (Vm) 51 of the I / O device (Master Device) 30 is expressed as true (T), and the Vs bit (Vs) 53 is expressed as false (F). The Vm bit (Vm) 51 and the Vs bit (Vs) 53 of the record corresponding to the I / O device (Slave Device) 40 are both set to false (F) as in the case of the function a: 31. Yes.

更に、ファンクション(Function)c:33は、I/Oデバイス(Master Device)30及びI/Oデバイス(Slave Device)40のファンクション(Function)をそれぞれ別個に動作させるため、双方のレコードにおいてVmビット(Vm)51が真(T)、Vsビット(Vs)53が偽(F)に設定されている。   Furthermore, since the function (Function) c: 33 operates the function (Function) of the I / O device (Master Device) 30 and the I / O device (Slave Device) 40 separately, the Vm bit ( Vm) 51 is set to true (T), and Vs bit (Vs) 53 is set to false (F).

このような設定の結果、物理記憶空間上にマッピングされた各デバイス、ファンクション(Function)のMMIO空間は、図5に示すようなレイアウトになる。I/Oデバイス(Master Device)30のファンクション(Function)a、b、cが個々に物理記憶空間上にマッピングされている事に加え、I/Oデバイス(Slave Device)40のファンクション(Function)a’、b’がI/Oデバイス(Master Device)30のファンクション(Function)a、bと同じアドレスにマッピングされており、ソフトウェアからは、単一のデバイスとして見えることがわかる。   As a result of such setting, the MMIO space of each device and function mapped on the physical storage space has a layout as shown in FIG. The functions (Functions) a, b, and c of the I / O device (Master Device) 30 are individually mapped on the physical storage space, and the function (Function) a of the I / O device (Slave Device) 40 ', B' is mapped to the same address as the functions a, b of the I / O device (Master Device) 30, and it can be seen from the software as a single device.

次に、システム運用中のメモリコントローラ(MEMCTL)14の動作について説明する。
図6を参照して、プロセッサからのメモリアクセスのトランザクションに対する動作について説明する。
(1)ステップS101
トランザクションルーティングコントローラ(Txn Routing CTL)143は、プロセッサ(CPU)11及びプロセッサ(CPU)12からのメモリリードやメモリライト等のメモリアクセスのトランザクションを、FSBインターフェース(FBS I/F)141を経由して受け取る。
(2)ステップS102
トランザクションルーティングコントローラ(Txn Routing CTL)143は、ルーティングテーブル(Routing Table)142を参照して、当該トランザクションで指定されるアドレス範囲に該当するルーティング情報を検索する。
(3)ステップS103
トランザクションルーティングコントローラ(Txn Routing CTL)143は、該当するルーティング情報のレコードが見つかると、Vmビット(Vm)51を参照し、Vmビット(Vm)51が真(T)である場合には、そのレコードからマスターデバイスID(Master DID)52を取り出して、トランザクションのターゲットとなるデバイスへのルーティング経路に従い、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
(4)ステップS104
更に、トランザクションルーティングコントローラ(Txn Routing CTL)143は、Vsビット(Vs)53を参照し、Vsビット(Vs)53が真(T)である場合には、スレーブデバイスID(Slave DID)54を取り出して、ターゲットとなるデバイスへのルーティング経路に従い、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
Next, the operation of the memory controller (MEMCTL) 14 during system operation will be described.
With reference to FIG. 6, an operation for a memory access transaction from the processor will be described.
(1) Step S101
The transaction routing controller (Txn Routing CTL) 143 performs memory access transactions such as memory read and memory write from the processor (CPU) 11 and the processor (CPU) 12 via the FSB interface (FBS I / F) 141. receive.
(2) Step S102
The transaction routing controller (Txn Routing CTL) 143 refers to the routing table (Routing Table) 142 and searches for routing information corresponding to the address range specified by the transaction.
(3) Step S103
When a corresponding routing information record is found, the transaction routing controller (Txn Routing CTL) 143 refers to the Vm bit (Vm) 51. If the Vm bit (Vm) 51 is true (T), the record is recorded. A master device ID (Master DID) 52 is taken out from the memory interface, and a memory interface (MEM I / F) 144, an I / O interface (I / O I / F) 145, and an I / O are followed in accordance with a routing path to the target device of the transaction. A transaction is sent to one of the O interfaces (I / O I / F) 146.
(4) Step S104
Further, the transaction routing controller (Txn Routing CTL) 143 refers to the Vs bit (Vs) 53 and extracts the slave device ID (Slave DID) 54 when the Vs bit (Vs) 53 is true (T). The memory interface (MEM I / F) 144, the I / O interface (I / O I / F) 145, and the I / O interface (I / O I / F) 146 are in accordance with the routing path to the target device. Send the transaction to either.

図7を参照して、I/Oコントローラからのメモリアクセスのトランザクションに対する動作について説明する。
(1)ステップS201
トランザクションルーティングコントローラ(Txn Routing CTL)143は、I/Oコントローラ(IOCTL)16若しくはI/Oコントローラ(IOCTL)17から、I/Oインターフェース(I/O I/F)145若しくはI/Oインターフェース(I/O I/F)146を経由して、メモリリードやメモリライト等のメモリアクセスのトランザクションを受け取る。
(2)ステップS202
トランザクションルーティングコントローラ(Txn Routing CTL)143は、先の場合(図6)と同様に、ルーティングテーブル(Routing Table)142を参照して、当該トランザクションで指定されるアドレス範囲に該当するルーティング情報を検索する。
(3)ステップS203
トランザクションルーティングコントローラ(Txn Routing CTL)143は、該当するルーティング情報のレコードが見つかると、まず、Vmビット(Vm)51を参照し、Vmビット(Vm)51が真(T)である場合には、そこからマスターデバイスID(Master DID)52を取り出して、トランザクションのターゲットとなるデバイスへのルーティング経路に従い、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
(4)ステップS204
更に、トランザクションルーティングコントローラ(Txn Routing CTL)143は、Vsビット(Vs)53を検索し、Vsビット(Vs)53が真(T)である場合には、スレーブデバイスID(Slave DID)54を取り出して、ターゲットとなるデバイスへのルーティング経路に従い、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
With reference to FIG. 7, an operation for a memory access transaction from the I / O controller will be described.
(1) Step S201
The transaction routing controller (Txn Routing CTL) 143 is transferred from the I / O controller (IOCTL) 16 or the I / O controller (IOCTL) 17 to the I / O interface (I / O I / F) 145 or the I / O interface (I / O I / F) 146 receives a memory access transaction such as memory read or memory write.
(2) Step S202
The transaction routing controller (Txn Routing CTL) 143 refers to the routing table (routing table) 142 and searches for routing information corresponding to the address range specified in the transaction, as in the previous case (FIG. 6). .
(3) Step S203
When the corresponding routing information record is found, the transaction routing controller (Txn Routing CTL) 143 first refers to the Vm bit (Vm) 51, and if the Vm bit (Vm) 51 is true (T), A master device ID (Master DID) 52 is taken out from the memory device, and a memory interface (MEM I / F) 144, an I / O interface (I / O I / F) 145, A transaction is sent to one of the / O interfaces (I / O I / F) 146.
(4) Step S204
Further, the transaction routing controller (Txn Routing CTL) 143 searches the Vs bit (Vs) 53, and if the Vs bit (Vs) 53 is true (T), extracts the slave device ID (Slave DID) 54. The memory interface (MEM I / F) 144, the I / O interface (I / O I / F) 145, and the I / O interface (I / O I / F) 146 are in accordance with the routing path to the target device. Send the transaction to either.

図8を参照して、トランザクションに対するリプライや割り込みに対する動作について説明する。
(1)ステップS301
トランザクションルーティングコントローラ(Txn Routing CTL)143は、メモリリード等のトランザクションに対するリプライや、割り込みをいずれかのインターフェースブロックから受信する。すなわち、トランザクションルーティングコントローラ(Txn Routing CTL)143は、FSBインターフェース(FBS I/F)141、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145及びI/Oインターフェース(I/O I/F)146のいずれかのインターフェースブロックから、メモリリード等のトランザクションに対するリプライや、割り込みを受信する。
(2)ステップS302
トランザクションルーティングコントローラ(Txn Routing CTL)143は、ルーティングテーブル(Routing Table)142を参照し、トランザクション送出元を特定するための条件に一致するレコードを検索する。ここでは、トランザクションルーティングコントローラ(Txn Routing CTL)143は、ルーティングテーブル(Routing Table)142を参照し、Vmが真(T)且つマスターデバイスID(Master DID)52がトランザクション送出元のデバイスIDと一致する、若しくは、Vmが偽(F)且つVsが真(T)且つスレーブデバイスID(Slave DID)54がトランザクション送出元のデバイスIDと一致するレコードを検索する。
(3)ステップS303
トランザクションルーティングコントローラ(Txn Routing CTL)143は、トランザクション送出元を特定するための条件に一致するレコードが存在する場合、トランザクション送出元のデバイスが二重化されたI/Oデバイスのうちのマスターデバイスであるか、コールドスタンバイ状態の運用系のスレーブデバイスであると判定する。
(4)ステップS304
トランザクションルーティングコントローラ(Txn Routing CTL)143は、当該トランザクションのターゲットデバイスIDに従い、ルーティング経路を決定し、適切なインターフェースブロックへトランザクションを送出する。すなわち、トランザクションルーティングコントローラ(Txn Routing CTL)143は、FSBインターフェース(FBS I/F)141、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145及びI/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
(5)ステップS305
トランザクションルーティングコントローラ(Txn Routing CTL)143は、トランザクション送出元を特定するための条件に一致するレコードが見つからなかった場合、例えば、ミラーリングのスレーブデバイスからのトランザクションを受信したような場合、ルーティングは行わず当該トランザクションを破棄する。
With reference to FIG. 8, operations for reply and interrupt for a transaction will be described.
(1) Step S301
The transaction routing controller (Txn Routing CTL) 143 receives a reply to a transaction such as a memory read or an interrupt from any interface block. That is, the transaction routing controller (Txn Routing CTL) 143 includes an FSB interface (FBS I / F) 141, a memory interface (MEM I / F) 144, an I / O interface (I / O I / F) 145, and an I / O. From any interface block of the interface (I / O I / F) 146, a reply to a transaction such as a memory read or an interrupt is received.
(2) Step S302
The transaction routing controller (Txn Routing CTL) 143 refers to the routing table 142 and searches for a record that matches the condition for specifying the transaction transmission source. Here, the transaction routing controller (Txn Routing CTL) 143 refers to the routing table 142, and Vm is true (T) and the master device ID (Master DID) 52 matches the device ID of the transaction sending source. Alternatively, a record in which Vm is false (F), Vs is true (T), and the slave device ID (Slave DID) 54 matches the device ID of the transaction transmission source is searched.
(3) Step S303
The transaction routing controller (Txn Routing CTL) 143 determines whether the transaction transmission source device is a master device of the duplexed I / O devices when there is a record that matches the condition for specifying the transaction transmission source. It is determined that the slave device is an active slave device in the cold standby state.
(4) Step S304
The transaction routing controller (Txn Routing CTL) 143 determines a routing path according to the target device ID of the transaction, and sends the transaction to an appropriate interface block. That is, the transaction routing controller (Txn Routing CTL) 143 includes an FSB interface (FBS I / F) 141, a memory interface (MEM I / F) 144, an I / O interface (I / O I / F) 145, and an I / O. The transaction is sent to one of the interfaces (I / O I / F) 146.
(5) Step S305
The transaction routing controller (Txn Routing CTL) 143 does not perform routing when a record that matches a condition for specifying a transaction transmission source is not found, for example, when a transaction from a mirroring slave device is received. Discard the transaction.

次に、図9を参照して、システム立ち上げ時に二重化されたI/Oデバイスを初期化し、コールドスタンバイ状態に設定する手順を説明する。
(1)ステップS401
まず、システムの起動開始時に、初期設定として、サービスプロセッサ(SP)21は、ルーティングテーブル(Routing Table)142にI/Oデバイスのルーティング情報を登録する際、対象のI/Oデバイスのファンクション(Function)のレコードに対し、前述したミラーリングの設定を行う。オペレーティングシステムが起動する一連のシーケンスの中で、オペレーティングシステムのデバイスドライバ(図示せず)により、当該I/Oデバイスの初期設定が行われる。この時点では、二重化されたI/Oデバイスはミラーリングされているので、マスター・スレーブ双方に対して同じ初期設定が行われる。ここでは、サービスプロセッサ(SP)21は、I/Oデバイス(Master Device)30及びI/Oデバイス(Slave Device)40の双方に対して同じ初期設定を行う。
(2)ステップS402
初期設定が完了した時点で、デバイスドライバは、スレーブ側のI/Oデバイスを切り離してコールドスタンバイ状態で並行して運用する旨の指示を、サービスプロセッサ(SP)21に対して通知する。この通知は、より具体的な例として、I/Oデバイスと同じくサービスプロセッサ(SP)21の通信用レジスタをMMIOにマッピングし、図2のトランザクションルーティングコントローラ(Txn Routing CTL)143からSPインターフェース(SP I/F)147を経由してサービスプロセッサ(SP)21へ通知する実装が考えられる。
(3)ステップS403
サービスプロセッサ(SP)21は、通知を受け取ると、I/Oデバイスのスレーブデバイスを動的に切り離し、コールドスタンバイへ移行する。ここでは、サービスプロセッサ(SP)21は、I/Oデバイス(Slave Device)40を動的に切り離し、コールドスタンバイへ移行する。
Next, a procedure for initializing a duplexed I / O device at the time of system startup and setting the cold standby state will be described with reference to FIG.
(1) Step S401
First, at the start of system startup, as an initial setting, when the service processor (SP) 21 registers the routing information of the I / O device in the routing table 142, the function (Function) of the target I / O device is registered. ) Is set for the above-described mirroring. In a series of sequences in which the operating system is activated, initial setting of the I / O device is performed by a device driver (not shown) of the operating system. At this time, since the duplexed I / O device is mirrored, the same initial setting is performed for both the master and the slave. Here, the service processor (SP) 21 performs the same initial setting for both the I / O device (Master Device) 30 and the I / O device (Slave Device) 40.
(2) Step S402
When the initial setting is completed, the device driver notifies the service processor (SP) 21 of an instruction to disconnect the slave I / O device and operate in parallel in the cold standby state. As a more specific example, this notification is performed by mapping the communication register of the service processor (SP) 21 to the MMIO as in the case of the I / O device, and from the transaction routing controller (Txn Routing CTL) 143 of FIG. Implementation that notifies the service processor (SP) 21 via (I / F) 147 is conceivable.
(3) Step S403
Upon receiving the notification, the service processor (SP) 21 dynamically disconnects the slave device of the I / O device and shifts to the cold standby. Here, the service processor (SP) 21 dynamically disconnects the I / O device (Slave Device) 40 and shifts to a cold standby.

図10を参照して、コールドスタンバイ状態にする操作手順を説明する。
以下の手順は、サービスプロセッサ(SP)21からトランザクションルーティングコントローラ(Txn Routing CTL)143を始めシステム内の各要素の動作を制御する事で実現するもので、制御の手順はサービスプロセッサ(SP)21内のプログラムとして実装されるものである。
(1)ステップS501
まず、最初に、サービスプロセッサ(SP)21は、メモリコントローラ(MEMCTL)14内の各I/OインターフェースからI/Oコントローラへのトランザクション送出を抑止する。その結果、抑止されたトランザクションは、トランザクションルーティングコントローラ(Txn Routing CTL)143中に存在するバッファ等(図示せず)に一時的に滞留する。実装方法に依存して、I/Oインターフェースから送出を抑止するトランザクションは、二重化されたI/Oデバイスに向けたもののみに限定しても良い。この場合、サービスプロセッサ(SP)21は、トランザクションのターゲットデバイスIDを参照して、トランザクションの送出・抑止を決定する事になる。また、このとき、サービスプロセッサ(SP)21は、I/OコントローラからI/Oインターフェースへのトランザクション送出を抑止せず、I/Oデバイスからのトランザクション送出に対しては動作を継続する。
(2)ステップS502
サービスプロセッサ(SP)21は、この状態で一定時間待ち合わせを行う。これにより、各プロセッサ、メモリ、他のI/OデバイスからI/Oインターフェースを経由して送出済みの仕掛かり中トランザクションに対するリプライ処理が完了する。待ち合わせの時間は、コンピュータシステムの実装に依存して適切な値を定義する必要がある。すなわち、サービスプロセッサ(SP)21は、現在のトランザクションに対するリプライ処理が全て完了するまで待機する。
(3)ステップS503
I/Oデバイスに対する先行するトランザクションが完了した後に、サービスプロセッサ(SP)21は、ルーティングテーブル(Routing Table)142中のレコードの更新を行う。具体的には、対象のミラーリングされたデバイスが定義されているレコードに記載されているVsビット(Vs)53を偽(F)に書き換える。
(4)ステップS504
続いて、サービスプロセッサ(SP)21は、I/OインターフェースからI/Oコントローラへのトランザクション送出を再開する。これによりトランザクションルーティングコントローラ(Txn Routing CTL)143内に滞留していたトランザクションは、更新されたルーティング情報に従い、マスターデバイスのみへルーティングされてI/Oインターフェースから送出される事になる。
With reference to FIG. 10, the operation procedure for setting the cold standby state will be described.
The following procedure is realized by controlling the operation of each element in the system including the transaction routing controller (Txn Routing CTL) 143 from the service processor (SP) 21. The control procedure is the service processor (SP) 21. It is implemented as an internal program.
(1) Step S501
First, the service processor (SP) 21 inhibits transaction transmission from each I / O interface in the memory controller (MEMCTL) 14 to the I / O controller. As a result, the inhibited transaction temporarily stays in a buffer or the like (not shown) existing in the transaction routing controller (Txn Routing CTL) 143. Depending on the mounting method, the transaction for suppressing transmission from the I / O interface may be limited to only those directed to the duplexed I / O device. In this case, the service processor (SP) 21 refers to the target device ID of the transaction and determines whether to send or inhibit the transaction. At this time, the service processor (SP) 21 does not suppress the transaction transmission from the I / O controller to the I / O interface, and continues the operation for the transaction transmission from the I / O device.
(2) Step S502
The service processor (SP) 21 waits for a certain time in this state. This completes the reply process for the in-process transaction that has been sent from each processor, memory, and other I / O device via the I / O interface. It is necessary to define an appropriate value for the waiting time depending on the implementation of the computer system. That is, the service processor (SP) 21 waits until all reply processing for the current transaction is completed.
(3) Step S503
After the preceding transaction for the I / O device is completed, the service processor (SP) 21 updates the record in the routing table 142. Specifically, the Vs bit (Vs) 53 described in the record in which the target mirrored device is defined is rewritten to false (F).
(4) Step S504
Subsequently, the service processor (SP) 21 resumes the transaction transmission from the I / O interface to the I / O controller. As a result, the transaction staying in the transaction routing controller (Txn Routing CTL) 143 is routed only to the master device and sent from the I / O interface according to the updated routing information.

以上で、I/Oデバイスをコールドスタンバイ状態にする操作は完了するが、この時のスレーブデバイスの状態は、オペレーティングシステム起動時のデバイスドライバによる初期設定が完了した状態のまま保持されていることがわかる。   This completes the operation for setting the I / O device in the cold standby state. At this time, the state of the slave device may be held in a state in which the initial setting by the device driver at the time of starting the operating system is completed. Recognize.

続いて、図11を参照して、コールドスタンバイ状態にあるスレーブデバイスを切り替えて新しいマスターデバイスとして運用する手順を説明する。
(1)ステップS601
障害の発生等、何らかの理由によりマスターデバイスとスレーブデバイスの切り替えを行う必要が生じたとき、サービスプロセッサ(SP)21は、先に示したミラーリングからコールドスタンバイへの移行時と同様に、各I/OインターフェースからI/Oコントローラへのトランザクション送出を一時的に抑止する。
(2)ステップS602
サービスプロセッサ(SP)21は、一定時間の待ち合わせを行う。
(3)ステップS603
サービスプロセッサ(SP)21は、ルーティングテーブル(Routing Table)142中の当該デバイスに対応するレコードのVmビット(Vm)51を偽(F)に更新し、Vsビット(Vs)53を真(T)に更新する。すなわち、サービスプロセッサ(SP)21は、コールドスタンバイ状態にあるスレーブデバイスを切り替えて新しいマスターデバイスとする。
(4)ステップS604
サービスプロセッサ(SP)21は、I/Oインターフェースからのトランザクション送出を再開する。このとき、サービスプロセッサ(SP)21は、新しいマスターデバイスに対して、トランザクション送出を行う。
Next, a procedure for switching a slave device in a cold standby state to operate as a new master device will be described with reference to FIG.
(1) Step S601
When it becomes necessary to switch between the master device and the slave device for some reason, such as the occurrence of a failure, the service processor (SP) 21 receives each I / O as in the case of the transition from the mirroring to the cold standby described above. Transaction transmission from the interface to the I / O controller is temporarily suppressed.
(2) Step S602
The service processor (SP) 21 waits for a fixed time.
(3) Step S603
The service processor (SP) 21 updates the Vm bit (Vm) 51 of the record corresponding to the device in the routing table (routing table) 142 to false (F), and sets the Vs bit (Vs) 53 to true (T). Update to That is, the service processor (SP) 21 switches the slave device in the cold standby state to become a new master device.
(4) Step S604
The service processor (SP) 21 resumes the transaction transmission from the I / O interface. At this time, the service processor (SP) 21 sends a transaction to the new master device.

これによりトランザクションルーティングコントローラ(Txn Routing CTL)143内に滞留していたトランザクションは、更新されたルーティング情報に従い、新しいマスターデバイスへ送出される事になる。このとき、元のマスターデバイスと新しいマスターデバイス(元のスレーブデバイス)の状態は、一般に同一ではないため、切り替えの前後では、オペレーティングシステムやアプリケーションソフトウェアから見た動作の継続性は保証されないことに留意する必要がある。そのため、主にデバイスドライバやアプリケーションソフトウェアにて、I/Oデバイスへの入出力の再試行等の工夫が必要になると考えられる。   As a result, the transaction staying in the transaction routing controller (Txn Routing CTL) 143 is sent to the new master device according to the updated routing information. At this time, since the state of the original master device and the new master device (original slave device) is generally not the same, it should be noted that continuity of operation as viewed from the operating system and application software is not guaranteed before and after switching. There is. For this reason, it is considered that devices such as device drivers and application software require contrivances such as retrying input / output to the I / O device.

更に、サービスプロセッサ(SP)21がハードウェアの障害検出等を契機にI/Oデバイスの切り替えを開始する代わりに、I/Oデバイスの異常を検出したデバイスドライバがSPインターフェース(SP I/F)147を通じてサービスプロセッサ(SP)21に対してI/Oデバイスの切替を指示する方法も考えられる。この場合はデバイスドライバにてI/Oデバイスの切り替えタイミングを適切に選択する事ができるため、上記に説明した切り替え前後での動作の継続性の問題への対処もし易くなると考えられる。   Further, instead of the service processor (SP) 21 starting switching of the I / O device when a hardware failure is detected, the device driver that detects the abnormality of the I / O device is the SP interface (SP I / F). A method of instructing the service processor (SP) 21 to switch the I / O device through 147 can also be considered. In this case, since it is possible to appropriately select the I / O device switching timing by the device driver, it is considered that the above-described problem of continuity of operation before and after switching can be easily handled.

最後に、ミラーリング状態にあるI/Oデバイスの一方を動的に縮退する手順について説明する。言うまでも無く、本発明の実施形態の構成によれば、二重化されたI/Oデバイスをオペレーティングシステム起動時のデバイスドライバによる初期設定後もミラーリングしたまま運用することも可能である。   Finally, a procedure for dynamically degenerating one of the I / O devices in the mirroring state will be described. Needless to say, according to the configuration of the embodiment of the present invention, the duplexed I / O device can be operated while being mirrored even after the initial setting by the device driver at the time of starting the operating system.

上記の例と同じく、障害の発生等の理由によりミラーリングされたI/Oデバイスのいずれかを縮退する必要が生じたとき、サービスプロセッサ(SP)21は先に示したミラーリングからコールドスタンバイへの移行時と同様に、各I/OインターフェースからI/Oコントローラへのトランザクション送出を一時的に抑止し、一定時間の待ち合わせを行い、ルーティングテーブル(Routing Table)142中の当該デバイスに対応するレコードのVmビット若しくはVsビットのいずれか、縮退すべきデバイスに対応する方を偽(F)に更新する。   As in the above example, when it becomes necessary to degenerate one of the mirrored I / O devices due to a failure or the like, the service processor (SP) 21 shifts from the above-described mirroring to cold standby. Similarly to the time, the transaction transmission from each I / O interface to the I / O controller is temporarily suppressed, the waiting for a certain time is performed, and the Vm of the record corresponding to the device in the routing table 142 is displayed. The bit or Vs bit, whichever corresponds to the device to be degenerated, is updated to false (F).

ここで、I/Oインターフェースからのトランザクション送出を再開する前に、サービスプロセッサ(SP)21は縮退したI/Oデバイスの動作を停止させる。I/Oデバイスの停止方法は本発明の範囲を超えるため、個々では詳細に説明しないが、PCIデバイスであればデバイスの機能に依存して当該デバイスのConfigurationレジスタを操作してデバイスの動作を止める方法や、デバイスが接続されるバスブリッジが存在すればバスブリッジを操作してPCIバスをリセットする方法、I/Oインターフェースの機能に依存して当該デバイスからのトランザクションを受け取らないようにマスクする方法等が考えられる。当該デバイスがメモリデバイスのような受動的なデバイスであれば、何もせずそのまま置いておく方法でも構わない。いずれにせよ、これらの操作によって縮退したI/Oデバイスは、その動作がシステムに影響を及ぼすことが無いよう、論理的に切り離されることになる。   Here, before restarting the transaction transmission from the I / O interface, the service processor (SP) 21 stops the operation of the degenerated I / O device. The method for stopping the I / O device is beyond the scope of the present invention and will not be described in detail. However, if it is a PCI device, depending on the function of the device, the device configuration register is operated to stop the device operation. A method of resetting the PCI bus by operating the bus bridge if there is a bus bridge to which the device is connected, a method of masking from receiving a transaction from the device depending on the function of the I / O interface Etc. are considered. If the device is a passive device such as a memory device, it may be left as it is without doing anything. In any case, the I / O device that is degenerated by these operations is logically disconnected so that its operation does not affect the system.

ここまでの操作が完了したら、サービスプロセッサ(SP)21は、I/Oインターフェースからのトランザクション送出を再開し、トランザクションルーティングコントローラ(Txn Routing CTL)143内に滞留していたトランザクションは、更新されたルーティング情報に従い、残った一方のI/Oデバイスへ送出される事になる。   When the operations so far are completed, the service processor (SP) 21 resumes the transaction transmission from the I / O interface, and the transaction staying in the transaction routing controller (Txn Routing CTL) 143 is updated to the updated routing. According to the information, it is sent to the remaining I / O device.

以上のように、本発明は、メモリコントローラ内に実装するルーティングテーブルに持たせたマスターデバイス及びスレーブデバイスへのトランザクションルーティング情報と、サービスプロセッサ内に実装する制御プログラム、及びCPU上で動作するデバイスドライバやBIOS(Basic Input/Output System)等のソフトウェアによって、コンピュータシステム内で二重化されたI/Oデバイス、特に一つのデバイスに複数の機能を備えたマルチファンクションPCIデバイスを二重化した構成において、システム運用中に動的にマスターデバイスからスレーブデバイスへの切替機能を実現したことを特徴としている。   As described above, the present invention provides transaction routing information to the master device and slave device provided in the routing table implemented in the memory controller, a control program implemented in the service processor, a device driver operating on the CPU, During operation of the system in a configuration in which I / O devices duplicated in a computer system by software such as BIOS (Basic Input / Output System) are duplicated, especially a multifunction PCI device having a plurality of functions in one device. It is characterized by the dynamic switching function from the master device to the slave device.

図2において、ルーティングテーブル(Routing Table)142は、図3に示す形式の情報を格納する。ルーティングテーブル(Routing Table)142に格納される情報は、物理主記憶空間の各々の範囲に対するトランザクションのルーティング情報を格納した複数のレコードを有するテーブルであり、それぞれのレコードは、Vmビット(Vm)51と、マスターデバイスID(Master DID)52と、Vsビット(Vs)53と、スレーブデバイスID(Slave DID)54と、アドレスオフセット(Addr. Offset)55と、アドレス範囲(Addr. Range)56を含む。   In FIG. 2, a routing table 142 stores information in the format shown in FIG. The information stored in the routing table 142 is a table having a plurality of records storing transaction routing information for each range of the physical main storage space. Each record has Vm bits (Vm) 51. A master device ID (Master DID) 52, a Vs bit (Vs) 53, a slave device ID (Slave DID) 54, an address offset (Addr. Offset) 55, and an address range (Addr. Range) 56.

Vmビット(Vm)51は、プロセッサ及びI/Oデバイスからのメモリアクセスに対し、二重化されたマスターデバイスへのルーティングが有効である事を示す有効ビットを示す。マスターデバイスID(Master DID)52は、物理記憶空間上の当該アドレスにマッピングされたマスターデバイスへのルーティング経路情報を示す。Vsビット(Vs)53は、スレーブデバイスへのルーティングが有効である事を示す有効ビットを示す。スレーブデバイスID(Slave DID)54は、物理記憶空間上の当該アドレスにマッピングされたスレーブデバイスへのルーティング経路情報を示す。アドレスオフセット(Addr. Offset)55は、当該トランザクションをルーティングすべきアドレスオフセットを示す。アドレス範囲(Addr. Range)56は、アドレスオフセットに対応するアドレス範囲を示す。   The Vm bit (Vm) 51 indicates a valid bit indicating that the routing to the duplicated master device is valid for the memory access from the processor and the I / O device. A master device ID (Master DID) 52 indicates routing path information to the master device mapped to the address on the physical storage space. The Vs bit (Vs) 53 indicates a valid bit indicating that routing to the slave device is valid. The slave device ID (Slave DID) 54 indicates routing path information to the slave device mapped to the address on the physical storage space. An address offset (Addr. Offset) 55 indicates an address offset at which the transaction is to be routed. An address range (Addr. Range) 56 indicates an address range corresponding to the address offset.

図2において、トランザクションルーティングコントローラ(Txn Routing CTL)143は、プロセッサ側のFSBインターフェース(FBS I/F)141及びI/Oデバイス側のI/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146からのトランザクションを受け付け、当該トランザクションがメモリアクセスのトランザクションであればルーティングテーブル(Routing Table)142を参照して、当該トランザクションのターゲットデバイスを決定し、そのターゲットデバイスに向けたインターフェースへトランザクションを送出する。このとき、ルーティング情報を参照した結果で当該トランザクションの送出先デバイスが二重化されたI/Oデバイスである場合、当該デバイスの二重化の状態によりマスターデバイスとスレーブデバイスのいずれか一方若しくは両方に対してトランザクションの送出を行う。二重化の状態とは、「マスターデバイスのみが有効に機能している状態」、「スレーブデバイスのみが有効に機能している状態」、「両デバイスが有効に機能しておりミラーリングされた状態」のいずれかである。   In FIG. 2, a transaction routing controller (Txn Routing CTL) 143 includes an FSB interface (FBS I / F) 141 on the processor side, an I / O interface (I / O I / F) 145 on the I / O device side, When a transaction from the O interface (I / O I / F) 146 is received and the transaction is a memory access transaction, the target device of the transaction is determined by referring to the routing table 142 and the target Send the transaction to the interface for the device. At this time, when the destination device of the transaction is a duplexed I / O device as a result of referring to the routing information, depending on the duplexed state of the device, the transaction of the transaction to one or both of the master device and the slave device is performed. Send it out. Duplex status is any of “only the master device is functioning effectively”, “only the slave device is functioning effectively”, or “both devices are functioning effectively and mirrored” It is.

更に、トランザクションルーティングコントローラ(Txn Routing CTL)143は、FSBインターフェース(FBS I/F)141、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146、若しくはメモリインターフェース(MEM I/F)144からメモリアクセスに対するリプライトランザクションを受け付けた場合、ルーティング情報を参照する。トランザクションルーティングコントローラ(Txn Routing CTL)143は、ルーティング情報を参照して当該リプライトランザクションを送出したデバイスが二重化されたI/Oデバイスであり、当該デバイスの二重化の状態によりマスターデバイス若しくはスレーブデバイスのいずれか一方のみが有効に機能している場合、リプライトランザクションが指示するターゲットデバイスへルーティングを行う。このとき、トランザクションルーティングコントローラ(Txn Routing CTL)143は、ミラーリングされた状態であれば、マスターデバイスからのトランザクションのルーティングを行いスレーブデバイスからのトランザクションを破棄する。   Further, the transaction routing controller (Txn Routing CTL) 143 includes an FSB interface (FBS I / F) 141, an I / O interface (I / O I / F) 145, and an I / O interface (I / O I / F) 146. Alternatively, when a reply transaction for a memory access is received from the memory interface (MEM I / F) 144, the routing information is referred to. The transaction routing controller (Txn Routing CTL) 143 is an I / O device in which the device that sent the reply transaction with reference to the routing information is duplicated, and either the master device or the slave device depending on the duplication status of the device If only the function is valid, routing is performed to the target device indicated by the reply transaction. At this time, if the transaction routing controller (Txn Routing CTL) 143 is in the mirrored state, the transaction routing from the master device is performed and the transaction from the slave device is discarded.

このようにして、本発明では二重化されたI/Oデバイスに対するメモリアクセスをI/Oデバイスの二重化の状態に応じてトランザクションルーティングコントローラ(Txn Routing CTL)143にていずれか一方のI/Oデバイス若しくは双方のI/Oデバイスに向けて送出しているので、ソフトウェアのデバイスドライバからはマスターデバイスに対する単一のメモリアクセスでマスター・スレーブ両方のデバイスへのメモリアクセスを実現する事ができる。   In this way, in the present invention, memory access to the duplexed I / O device is performed by the transaction routing controller (Txn Routing CTL) 143 according to the duplexed state of the I / O device. Since the data is sent to both I / O devices, the software device driver can achieve memory access to both the master and slave devices with a single memory access to the master device.

次に、図2においてサービスプロセッサ(SP)21(図示せず;図1に記載)は、システム運用中にメモリコントローラ(MEMCTL)14中の各機能ブロックを制御し、I/Oインターフェースへのトランザクション送出を一時的に停止し、ルーティングテーブル中のルーティング情報を更新して二重化されたI/Oデバイスの二重化の状態を変更し、I/Oインターフェースの動作を再開する。   Next, in FIG. 2, a service processor (SP) 21 (not shown; described in FIG. 1) controls each functional block in the memory controller (MEMCTL) 14 during system operation, and performs transactions to the I / O interface. The transmission is temporarily stopped, the routing information in the routing table is updated, the duplexing state of the duplexed I / O device is changed, and the operation of the I / O interface is resumed.

このようにして、本発明では二重化されたI/Oデバイスのマスターデバイスとスレーブデバイスをシステム運用中にマスターデバイスのみ有効、スレーブデバイスのみ有効、両デバイスをミラーリングした状態のいずれにも切り替える事ができる。   In this way, according to the present invention, the master device and slave device of the duplexed I / O device can be switched to any of the master device valid, the slave device valid, and the mirrored state of both devices during system operation.

なお、本発明においては、以下に記載するような効果を奏する。
第1の効果は、ルーティングテーブルに格納されるルーティング情報にVmビット、マスターデバイスID、Vsビット、スレーブデバイスIDを付加しており、トランザクションルーティングコントローラが当該ルーティング情報を参照してトランザクション送出先のI/Oデバイスが二重化されている場合に二重化されたマスターデバイスとスレーブデバイスの双方又はいずれか一方にトランザクション送出できる仕組みを具備したことにより、I/Oデバイスのミラーリングやコールドスタンバイを任意に実現できる事である。
In addition, in this invention, there exists an effect as described below.
The first effect is that the Vm bit, master device ID, Vs bit, and slave device ID are added to the routing information stored in the routing table, and the transaction routing controller refers to the routing information to determine the I / O of the transaction destination. By providing a mechanism capable of sending a transaction to a duplicated master device and / or a slave device when the O device is duplicated, I / O device mirroring and cold standby can be realized arbitrarily. .

第2の効果は、ルーティングテーブルに格納されるルーティング情報で定義されるMMIO空間のマッピングが、I/Oデバイスのファンクション(Function)単位に定義できるため、二重化する対象のI/Oデバイスが複数の機能を持つマルチファンクションデバイスの場合に、ファンクション(Function)単位に適切な二重化方法を選択してミラーリング、コールドスタンバイのいずれかで動作させるか、個別のデバイスとして動作させるか決定できる事である。   The second effect is that the mapping of the MMIO space defined by the routing information stored in the routing table can be defined for each function of the I / O device, so that there are multiple I / O devices to be duplicated. In the case of a multi-function device having a function, it is possible to determine whether to operate in either mirroring or cold standby by selecting an appropriate duplexing method for each function (Function) or to operate as an individual device.

第3の効果は、サービスプロセッサからメモリコントローラ内の各機能ブロックの動作を制御し、一時的なI/Oデバイスへのトランザクションを停止、I/Oデバイスの縮退若しくは切り替え、トランザクションのルーティング経路変更、トランザクションのルーティング再開とする事で、I/Oデバイスの縮退若しくは切替を動的に行う事ができる事である。   The third effect is to control the operation of each functional block in the memory controller from the service processor, stop the transaction to the temporary I / O device, degenerate or switch the I / O device, change the routing route of the transaction, By resuming transaction routing, I / O devices can be degenerated or switched dynamically.

ここでは、二重化されたI/Oデバイスのマスターデバイスとスレーブデバイスを例に説明しているが、実際には、二重化されたI/Oデバイスに限定されない。例えば、スレーブデバイスが複数である事例も考えられる。すなわち、二重化に限らず、多重化されたI/Oデバイスに対しても、本発明を適用することが可能である。   Here, the master device and slave device of the duplexed I / O device are described as an example, but actually, the device is not limited to the duplexed I / O device. For example, a case where there are a plurality of slave devices is also conceivable. That is, the present invention can be applied not only to duplex but also to multiplexed I / O devices.

図1は、本発明の動的切り替え装置の構成例を示すブロック図である。FIG. 1 is a block diagram showing a configuration example of a dynamic switching device according to the present invention. 図2は、メモリコントローラ(MEMCTL)の論理ブロック図である。FIG. 2 is a logic block diagram of the memory controller (MEMCTL). 図3は、ルーティング情報の形式を示す図である。FIG. 3 is a diagram showing a format of routing information. 図4は、ルーティングテーブル(Routing Table)の表の形式(データフォーマット)の一例を示す図である。FIG. 4 is a diagram illustrating an example of a table format (data format) of a routing table (routing table). 図5は、MMIO空間のレイアウトの例を示す図である。FIG. 5 is a diagram illustrating an example of the layout of the MMIO space. 図6は、プロセッサからのメモリアクセスのトランザクションに対する動作を示すフローチャートである。FIG. 6 is a flowchart showing an operation for a memory access transaction from the processor. 図7は、I/Oコントローラからのメモリアクセスのトランザクションに対する動作を示すフローチャートである。FIG. 7 is a flowchart showing an operation for a memory access transaction from the I / O controller. 図8は、トランザクションに対するリプライや割り込みに対する動作を示すフローチャートである。FIG. 8 is a flowchart showing an operation for a reply or interrupt for a transaction. 図9は、システム立ち上げ時に二重化されたI/Oデバイスを初期化し、コールドスタンバイ状態に設定する手順を示すフローチャートである。FIG. 9 is a flowchart showing a procedure for initializing a duplexed I / O device at the time of system startup and setting it to a cold standby state. 図10は、コールドスタンバイ状態にする操作手順を示すフローチャートである。FIG. 10 is a flowchart showing an operation procedure for setting a cold standby state. 図11は、コールドスタンバイ状態にあるスレーブデバイスを切り替えて新しいマスターデバイスとして運用する手順を示すフローチャートである。FIG. 11 is a flowchart showing a procedure for switching a slave device in a cold standby state to operate as a new master device.

符号の説明Explanation of symbols

11… プロセッサ(CPU:Central Processing Unit)
12… プロセッサ(CPU)
13… フロントサイドバス(FSB:Front Side Bus)
14… メモリコントローラ(MEMCTL:Memory Controller)
141… FSBインターフェース(FBS I/F)
142… ルーティングテーブル(Routing Table)
143… トランザクションルーティングコントローラ(Txn Routing CTL)
144… メモリインターフェース(MEM I/F)
145… I/Oインターフェース(I/O I/F)
146… I/Oインターフェース(I/O I/F)
147… SPインターフェース(SP I/F)
15… メモリ(MEM:Memory)
16… I/Oコントローラ(IOCTL:Input/Output Controller)
17… I/Oコントローラ(IOCTL)
18… PCIバス(PCI−Bus)
19… PCIバス(PCI−Bus)
21… サービスプロセッサ(SP:Service Processor)
30… I/Oデバイス(Master Device)
31… ファンクション(Function)a
32… ファンクション(Function)b
33… ファンクション(Function)c
40… I/Oデバイス(Slave Device)
41… ファンクション(Function)a’
42… ファンクション(Function)b’
43… ファンクション(Function)c’
51… Vmビット(Vm)
52… マスターデバイスID(Master DID)
53… Vsビット(Vs)
54… スレーブデバイスID(Slave DID)
55… アドレスオフセット(Addr. Offset)
56… アドレス範囲(Addr. Range)
11 ... Processor (CPU: Central Processing Unit)
12 ... Processor (CPU)
13 ... Front Side Bus (FSB: Front Side Bus)
14 ... Memory controller (MEMCTL: Memory Controller)
141 ... FSB interface (FBS I / F)
142 ... Routing Table
143 ... Transaction routing controller (Txn Routing CTL)
144 ... Memory interface (MEM I / F)
145 ... I / O interface (I / O I / F)
146 ... I / O interface (I / O I / F)
147 ... SP interface (SP I / F)
15 ... Memory (MEM: Memory)
16 ... I / O controller (IOCTL: Input / Output Controller)
17 ... I / O controller (IOCTL)
18 ... PCI bus (PCI-Bus)
19 ... PCI bus (PCI-Bus)
21 ... Service processor (SP: Service Processor)
30 ... I / O device (Master Device)
31 ... Function a
32 ... Function b
33 ... Function c
40 ... I / O device (Slave Device)
41 ... Function (a)
42 ... Function b '
43 ... Function c '
51 ... Vm bit (Vm)
52 ... Master Device ID (Master DID)
53 ... Vs bit (Vs)
54 ... Slave device ID (Slave DID)
55 ... Address offset (Addr. Offset)
56 ... Address range (Addr. Range)

Claims (18)

I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及び前記I/Oデバイスへのルーティング経路情報を格納したルーティングテーブルと、
トランザクションを受け取り、前記ルーティングテーブルを参照し、前記有効ビットが偽である場合、前記トランザクションの送出を抑止し、前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出し、前記I/Oデバイスの切り替えが発生した場合、前記トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、前記有効ビットを更新し、前記トランザクションの送出を再開するトランザクションルーティングコントローラと
を具備する
動的切り替え装置。
A routing table storing information about valid bits indicating that routing to the I / O device is valid, and routing path information to the I / O device;
A transaction is received, the routing table is referenced, and if the valid bit is false, the sending of the transaction is suppressed, and if the valid bit is true, the I / O device is sent according to the routing path information. When the I / O device is switched, the transaction is temporarily prevented from being transmitted, the transaction is waited for a certain time, the valid bit is updated, and the transaction is resumed. And a transaction switching controller.
請求項1に記載の動的切り替え装置であって、
前記ルーティングテーブルは、前記I/Oデバイスのファンクション(Function)の領域のサイズを示すアドレス範囲に関する情報を、前記有効ビット及び前記ルーティング経路情報と対応付けて更に格納し、
前記トランザクションルーティングコントローラは、前記トランザクションを受け取り、前記ルーティングテーブルを参照し、前記有効ビットが真であり、前記アドレス範囲が前記トランザクションで指定されている場合、前記アドレス範囲に対応する前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出する
動的切り替え装置。
The dynamic switching device according to claim 1,
The routing table further stores information on an address range indicating the size of the function (Function) area of the I / O device in association with the valid bit and the routing route information.
The transaction routing controller receives the transaction, refers to the routing table, and if the valid bit is true and the address range is specified in the transaction, the transaction routing controller follows the routing route information corresponding to the address range. A dynamic switching device that sends the transaction to the I / O device.
請求項1又は2に記載の動的切り替え装置であって、
前記トランザクションルーティングコントローラは、前記トランザクションに対するリプライ(応答)又は割り込みを受け取り、前記ルーティングテーブルを参照し、前記有効ビットが真であり、前記ルーティング経路情報において前記I/Oデバイスが前記トランザクションの送出元である場合、前記ルーティング経路情報に従い、適切な送出先に対して、前記トランザクションを送出する
動的切り替え装置。
The dynamic switching device according to claim 1 or 2,
The transaction routing controller receives a reply (response) or interrupt to the transaction, refers to the routing table, the valid bit is true, and the I / O device in the routing path information is the source of the transaction If there is, a dynamic switching device that sends the transaction to an appropriate destination according to the routing route information.
請求項1乃至3のいずれか一項に記載の動的切り替え装置であって、
前記ルーティングテーブルは、
前記I/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットであるVmビットと、
前記I/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットであるVsビットと
を含む
動的切り替え装置。
The dynamic switching device according to any one of claims 1 to 3,
The routing table is
A Vm bit which is a valid bit indicating that routing to the master device is valid among the I / O devices;
A dynamic switching device including a Vs bit which is a valid bit indicating that routing to a slave device is valid among the I / O devices.
請求項4に記載の動的切り替え装置であって、
前記トランザクションルーティングコントローラは、前記Vmビット及び前記Vsビットが共に真である場合、前記マスターデバイス及び前記スレーブデバイスの双方に対して前記トランザクションを送出する
動的切り替え装置。
The dynamic switching device according to claim 4,
The transaction routing controller sends the transaction to both the master device and the slave device when both the Vm bit and the Vs bit are true.
請求項4又は5に記載の動的切り替え装置であって、
前記トランザクションルーティングコントローラは、前記Vmビットが偽であり、前記Vsビットが真である場合、前記スレーブデバイスに対して前記トランザクションを送出する
動的切り替え装置。
The dynamic switching device according to claim 4 or 5,
The transaction routing controller sends the transaction to the slave device when the Vm bit is false and the Vs bit is true.
トランザクションを受け取ると、I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及び前記I/Oデバイスへのルーティング経路情報を格納したルーティングテーブルを参照するステップと、
前記有効ビットが偽である場合、前記トランザクションの送出を抑止するステップと、
前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出するステップと、
前記I/Oデバイスの切り替えが発生した場合、前記トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、前記有効ビットを更新し、前記トランザクションの送出を再開するステップと
を含む
動的切り替え方法。
Receiving a transaction, referring to a routing table storing information about valid bits indicating that routing to the I / O device is valid, and routing path information to the I / O device;
If the valid bit is false, inhibiting sending the transaction;
Sending the transaction to the I / O device according to the routing path information if the valid bit is true;
A step of temporarily stopping the transmission of the transaction when the I / O device is switched, waiting for a predetermined time, updating the valid bit, and restarting the transmission of the transaction. Switching method.
請求項7に記載の動的切り替え方法であって、
前記ルーティングテーブルにおいて、前記I/Oデバイスのファンクション(Function)の領域のサイズを示すアドレス範囲に関する情報を、前記有効ビット及び前記ルーティング経路情報と対応付けるステップと、
前記トランザクションを受け取ると、前記ルーティングテーブルを参照し、前記有効ビットが真であり、前記アドレス範囲が前記トランザクションで指定されている場合、前記アドレス範囲に対応する前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出するステップと
を更に含む
動的切り替え方法。
The dynamic switching method according to claim 7,
Associating information on an address range indicating a size of a function (Function) area of the I / O device with the effective bit and the routing route information in the routing table;
When the transaction is received, the I / O is referenced according to the routing route information corresponding to the address range when the valid bit is true and the address range is specified in the transaction by referring to the routing table. Sending the transaction to a device. A dynamic switching method.
請求項7又は8に記載の動的切り替え方法であって、
前記トランザクションに対するリプライ(応答)又は割り込みを受け取ると、前記ルーティングテーブルを参照するステップと、
前記有効ビットが真であり、前記ルーティング経路情報において前記I/Oデバイスが前記トランザクションの送出元である場合、前記ルーティング経路情報に従い、適切な送出先に対して、前記トランザクションを送出するステップと
を更に含む
動的切り替え方法。
The dynamic switching method according to claim 7 or 8,
Upon receipt of a reply or response to the transaction, referencing the routing table;
When the valid bit is true and the I / O device is the source of the transaction in the routing path information, sending the transaction to an appropriate destination according to the routing path information; Further including a dynamic switching method.
請求項7乃至9のいずれか一項に記載の動的切り替え方法であって、
前記ルーティングテーブルは、
前記I/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットであるVmビットと、
前記I/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットであるVsビットと
を含む
動的切り替え方法。
A dynamic switching method according to any one of claims 7 to 9,
The routing table is
A Vm bit which is a valid bit indicating that routing to the master device is valid among the I / O devices;
A dynamic switching method including a Vs bit that is a valid bit indicating that routing to a slave device is valid among the I / O devices.
請求項10に記載の動的切り替え方法であって、
前記Vmビット及び前記Vsビットが共に真である場合、前記マスターデバイス及び前記スレーブデバイスの双方に対して前記トランザクションを送出するステップ
を更に含む
動的切り替え方法。
The dynamic switching method according to claim 10,
The method of dynamic switching further comprising the step of sending the transaction to both the master device and the slave device if both the Vm bit and the Vs bit are true.
請求項10又は11に記載の動的切り替え方法であって、
前記Vmビットが偽であり、前記Vsビットが真である場合、前記スレーブデバイスに対して前記トランザクションを送出するステップ
を更に含む
動的切り替え方法。
The dynamic switching method according to claim 10 or 11,
The method of dynamic switching further comprising the step of sending the transaction to the slave device if the Vm bit is false and the Vs bit is true.
トランザクションを受け取ると、I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及び前記I/Oデバイスへのルーティング経路情報を格納したルーティングテーブルを参照するステップと、
前記有効ビットが偽である場合、前記トランザクションの送出を抑止するステップと、
前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出するステップと、
前記I/Oデバイスの切り替えが発生した場合、前記トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、前記有効ビットを更新し、前記トランザクションの送出を再開するステップと
をコンピュータに実行させるための
動的切り替えプログラム。
Receiving a transaction, referring to a routing table storing information about valid bits indicating that routing to the I / O device is valid, and routing path information to the I / O device;
If the valid bit is false, inhibiting sending the transaction;
Sending the transaction to the I / O device according to the routing path information if the valid bit is true;
When switching of the I / O device occurs, the computer temporarily stops sending the transaction, waits for a predetermined time, updates the valid bit, and resumes sending the transaction. Dynamic switching program for
請求項13に記載の動的切り替えプログラムであって、
前記ルーティングテーブルにおいて、前記I/Oデバイスのファンクション(Function)の領域のサイズを示すアドレス範囲に関する情報を、前記有効ビット及び前記ルーティング経路情報と対応付けるステップと、
前記トランザクションを受け取ると、前記ルーティングテーブルを参照し、前記有効ビットが真であり、前記アドレス範囲が前記トランザクションで指定されている場合、前記アドレス範囲に対応する前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出するステップと
を更にコンピュータに実行させるための
動的切り替えプログラム。
The dynamic switching program according to claim 13,
Associating information on an address range indicating a size of a function (Function) area of the I / O device with the effective bit and the routing route information in the routing table;
When the transaction is received, the I / O is referenced according to the routing route information corresponding to the address range when the valid bit is true and the address range is specified in the transaction by referring to the routing table. A dynamic switching program for causing a computer to further execute the step of sending the transaction to a device.
請求項13又は14に記載の動的切り替えプログラムであって、
前記トランザクションに対するリプライ(応答)又は割り込みを受け取ると、前記ルーティングテーブルを参照するステップと、
前記有効ビットが真であり、前記ルーティング経路情報において前記I/Oデバイスが前記トランザクションの送出元である場合、前記ルーティング経路情報に従い、適切な送出先に対して、前記トランザクションを送出するステップと
を更にコンピュータに実行させるための
動的切り替えプログラム。
The dynamic switching program according to claim 13 or 14,
Upon receipt of a reply or response to the transaction, referencing the routing table;
When the valid bit is true and the I / O device is the source of the transaction in the routing path information, sending the transaction to an appropriate destination according to the routing path information; Furthermore, a dynamic switching program for causing a computer to execute.
請求項13乃至15のいずれか一項に記載の動的切り替えプログラムであって、
前記ルーティングテーブルは、
前記I/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットであるVmビットと、
前記I/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットであるVsビットと
を含む
動的切り替えプログラム。
A dynamic switching program according to any one of claims 13 to 15,
The routing table is
A Vm bit which is a valid bit indicating that routing to the master device is valid among the I / O devices;
A dynamic switching program including a Vs bit which is a valid bit indicating that routing to a slave device is valid among the I / O devices.
請求項16に記載の動的切り替えプログラムであって、
前記Vmビット及び前記Vsビットが共に真である場合、前記マスターデバイス及び前記スレーブデバイスの双方に対して前記トランザクションを送出するステップ
を更にコンピュータに実行させるための
動的切り替えプログラム。
The dynamic switching program according to claim 16, wherein
A dynamic switching program for causing a computer to further execute a step of sending the transaction to both the master device and the slave device when both the Vm bit and the Vs bit are true.
請求項16又は17に記載の動的切り替えプログラムであって、
前記Vmビットが偽であり、前記Vsビットが真である場合、前記スレーブデバイスに対して前記トランザクションを送出するステップ
を更にコンピュータに実行させるための
動的切り替えプログラム。
The dynamic switching program according to claim 16 or 17,
A dynamic switching program for causing a computer to further execute a step of sending the transaction to the slave device when the Vm bit is false and the Vs bit is true.
JP2008035240A 2008-02-15 2008-02-15 Dynamic switching device, dynamic switching method, and dynamic switching program Expired - Fee Related JP4984077B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008035240A JP4984077B2 (en) 2008-02-15 2008-02-15 Dynamic switching device, dynamic switching method, and dynamic switching program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008035240A JP4984077B2 (en) 2008-02-15 2008-02-15 Dynamic switching device, dynamic switching method, and dynamic switching program

Publications (2)

Publication Number Publication Date
JP2009193469A true JP2009193469A (en) 2009-08-27
JP4984077B2 JP4984077B2 (en) 2012-07-25

Family

ID=41075403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008035240A Expired - Fee Related JP4984077B2 (en) 2008-02-15 2008-02-15 Dynamic switching device, dynamic switching method, and dynamic switching program

Country Status (1)

Country Link
JP (1) JP4984077B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011191877A (en) * 2010-03-12 2011-09-29 Buffalo Inc Storage device and control program for the same
JP2012128697A (en) * 2010-12-16 2012-07-05 Hitachi Ltd Information processing unit
JP2012168650A (en) * 2011-02-10 2012-09-06 Nec Computertechno Ltd Information processor, and operation method of information processor
JP5733384B2 (en) * 2011-02-24 2015-06-10 富士通株式会社 Information processing device
KR20180078323A (en) 2016-01-13 2018-07-09 미쓰비시덴키 가부시키가이샤 How to switch communication systems, communication devices, and communicators

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04186422A (en) * 1990-11-21 1992-07-03 Nec Corp Duplex volume system
JPH0744435A (en) * 1993-08-04 1995-02-14 Nec Corp I/o load distribution control system at duplicating file equipment
JPH09305327A (en) * 1996-05-20 1997-11-28 Pfu Ltd Disk device
JP2001344191A (en) * 2000-06-02 2001-12-14 Nec Soft Ltd System and method for controlling duplexed input and output
JP2004094433A (en) * 2002-08-30 2004-03-25 Nec Corp Fault tolerant computer, its disk management mechanism and disk management program
JP2004120411A (en) * 2002-09-26 2004-04-15 Fujitsu Ltd Repeating system
JP2006154880A (en) * 2004-11-04 2006-06-15 Hitachi Ltd Information processing system and access method
JP2008225534A (en) * 2007-03-08 2008-09-25 Nec Corp Dynamic degeneration apparatus and method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04186422A (en) * 1990-11-21 1992-07-03 Nec Corp Duplex volume system
JPH0744435A (en) * 1993-08-04 1995-02-14 Nec Corp I/o load distribution control system at duplicating file equipment
JPH09305327A (en) * 1996-05-20 1997-11-28 Pfu Ltd Disk device
JP2001344191A (en) * 2000-06-02 2001-12-14 Nec Soft Ltd System and method for controlling duplexed input and output
JP2004094433A (en) * 2002-08-30 2004-03-25 Nec Corp Fault tolerant computer, its disk management mechanism and disk management program
JP2004120411A (en) * 2002-09-26 2004-04-15 Fujitsu Ltd Repeating system
JP2006154880A (en) * 2004-11-04 2006-06-15 Hitachi Ltd Information processing system and access method
JP2008225534A (en) * 2007-03-08 2008-09-25 Nec Corp Dynamic degeneration apparatus and method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011191877A (en) * 2010-03-12 2011-09-29 Buffalo Inc Storage device and control program for the same
JP2012128697A (en) * 2010-12-16 2012-07-05 Hitachi Ltd Information processing unit
JP2012168650A (en) * 2011-02-10 2012-09-06 Nec Computertechno Ltd Information processor, and operation method of information processor
JP5733384B2 (en) * 2011-02-24 2015-06-10 富士通株式会社 Information processing device
KR20180078323A (en) 2016-01-13 2018-07-09 미쓰비시덴키 가부시키가이샤 How to switch communication systems, communication devices, and communicators

Also Published As

Publication number Publication date
JP4984077B2 (en) 2012-07-25

Similar Documents

Publication Publication Date Title
JP4585463B2 (en) Program for functioning virtual computer system
CN106776159B (en) Fast peripheral component interconnect network system with failover and method of operation
US9916216B2 (en) Selectively coupling a PCI host bridge to multiple PCI communication paths
US7844852B2 (en) Data mirror cluster system, method and computer program for synchronizing data in data mirror cluster system
US8468314B2 (en) Storage system, storage apparatus, and remote copy method for storage apparatus in middle of plural storage apparatuses
US7441150B2 (en) Fault tolerant computer system and interrupt control method for the same
JP6098778B2 (en) Redundant system, redundancy method, redundancy system availability improving method, and program
JP2006285919A (en) Computer system, computer and remote copy processing method
JP4984077B2 (en) Dynamic switching device, dynamic switching method, and dynamic switching program
JP2005267216A (en) Storage remote copying method and information processing system
JP2008046685A (en) Duplex system and system switching method
US9398094B2 (en) Data transfer device
JP2012208896A (en) Disk array device, connection path control method, and connection path control program
US8090907B2 (en) Method for migration of synchronous remote copy service to a virtualization appliance
US6810010B1 (en) Redundant LAN system, active line/stand-by line switching method, and recording medium
JP5287974B2 (en) Arithmetic processing system, resynchronization method, and farm program
JP2006172243A (en) Fault-tolerant computer device and synchronization method for the same
JP2006285336A (en) Storage, storage system, and control method thereof
JP2004046507A (en) Information processor
JP2004094433A (en) Fault tolerant computer, its disk management mechanism and disk management program
JP4984051B2 (en) Dynamic degeneration apparatus and method
JP2007264976A (en) Computer system, data saving method and program
JP5251690B2 (en) Remote copy system and remote copy method
JP5703860B2 (en) Fault tolerant system, memory control method, and program
JP6658299B2 (en) Information processing apparatus and information processing apparatus control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees