Resources Contact Us Home
Browse by: INVENTOR PATENT HOLDER PATENT NUMBER DATE
 
 
Fault tolerant computer system
7610509 Fault tolerant computer system
Patent Drawings:Drawing: 7610509-10    Drawing: 7610509-11    Drawing: 7610509-12    Drawing: 7610509-13    Drawing: 7610509-14    Drawing: 7610509-15    Drawing: 7610509-2    Drawing: 7610509-3    Drawing: 7610509-4    Drawing: 7610509-5    
« 1 2 »

(14 images)

Inventor: Abe
Date Issued: October 27, 2009
Application: 11/304,890
Filed: December 16, 2005
Inventors: Abe; Shinji (Tokyo, JP)
Assignee: NEC Corporation (Tokyo, JP)
Primary Examiner: Baderman; Scott T
Assistant Examiner: Leibovich; Yair
Attorney Or Agent: Sughrue Mion, PLLC
U.S. Class: 714/11
Field Of Search: 714/12; 714/11
International Class: G06F 11/00
U.S Patent Documents:
Foreign Patent Documents: 5-94277; 9-16426; 11-149457; 2002-77186; 2004-280732
Other References: Microsoft Publication: Windows Platform Design Notes: "PCI-to--PCI Bridges and CardBus Controllers on Windows 2000, Windows XP, and WindowsServer 2003" Version 1.10--Apr. 22, 2004. cited by examiner.









Abstract: A fault tolerant (FT) computer system includes a first system; and a second system configured to operate in synchronization with the first system. Each of the first and second systems includes a CPU; and a routing controller connected with the CPU. The first system includes a first I/O device as an activist I/O device, and the second system includes a second I/O device as a standby I/O device. The routing controller controls a routing between the CPU and the first I/O device and the second I/O device. When a fault has occurred in the first I/O device, the routing controller in said first system routes a request data a request data received from the CPU and destined to the first I/O device, to the second I/O device.
Claim: What is claimed is:

1. A fault tolerant (FT) computer system comprising: a first system as an active system comprising first I/O devices; and a second system as a standby system comprisingsecond I/O devices, which are the same as said first I/O devices, said second system connected with said first system through a link section, and configured to operate in synchronization with said first systems; wherein each of said first and secondsystems comprises a CPU; wherein said first system comprises an operating system (OS) and a routing controller connected with the CPU of said first systems; wherein said routing controller in said first system is configured to control a routing betweensaid CPU in said first system and said first and second I/O devices; wherein the first and second systems are configured such that the second I/O devices are not visible to the OS of the first system before a fault has occurred in one of said first I/Odevices; and wherein, when a fault has occurred in one of said first I/O devices, said routing controller in said first system is configured to route a request data, received from said CPU in said first system and destined to said first I/O device, toone of said second I/O devices corresponding to said first I/O device with the fault.

2. The fault tolerant computer system according to claim 1, wherein said routing controller in said first system comprises: an address converter connected with said CPU of the first system; a response data converter connected with said CPU ofthe first system; and a router connected with said address converter and said response data converter; wherein said fault tolerant computer system is configured such that, when the fault has occurred in said first I/O device, said address convertergenerates a converted request data from said request data by replacing a device data indicating said first I/O device by a device data indicating said second I/O device, if receiving said request data from said CPU of the first system, and forwards theconverted request data to said router; and wherein said router is configured to route said converted request data to said second I/O device based on said device data contained in said converted request data.

3. The fault tolerant computer system according to claim 2, wherein said device data is a PCI bus number, a device number and a function number in a PCI hierarchy structure.

4. The fault tolerant computer system according to claim 3, wherein said routing controller in said first system further comprises: a register configured to be accessible to said address converter and configured to store said PCI bus number,said device number, and said function number.

5. The fault tolerant computer system according to claim 2, wherein said device data is an address in a system memory map space.

6. The fault tolerant computer system according to claim 5, wherein said routing controller in said first system further comprises: a register configured to be accessible to said address converter and configured to store said address.

7. The fault tolerant computer system according to claim 2, wherein said response data converter is configured to generate a converted response data from a response data by rewriting a part of said response data, when said second I/O deviceoperates in a normal state and said response data converter receives said response data from said second I/O device through said router, and output said converted response data to said CPU in said first system.

8. The fault tolerant computer system according to claim 7, wherein said response data converter is configured to generate said converted response data by replacing a class code of said second I/O device which is contained in said response databy another class code.

9. The fault tolerant computer system according to claim 8, wherein said routing controller in said first system further comprises: a register configured to be accessible to said response data converter and configured to store said anotherclass code.

10. The fault tolerant computer system according to claim 2, wherein: said second system further comprises a routing controller; said first system comprises a first PCI bridge as one of said first I/O devices connected with said routingcontroller of said first system and said first I/O device; and said second system comprises a second PCI bridge as one of said second I/O devices connected with said routing controller of said second system and said second I/O device; wherein the faulttolerant computer system is configured such that a VGA Enable bit of said first PCI bridge and a VGA Enable bit of said second PCI bridge are both set to Enable when said first I/O device and said second I/O device operate in a normal state.

11. The fault tolerant computer system according to claim 10, configured such that when an access to said VGA Enable bit of said second PCI bridge is generated, said response data converter receives said VGA Enable bit from said second PCIbridge through said router, and converts the received VGA Enable bit into Disable.

12. The fault tolerant computer system according to claim 10, configured such that said first I/O devices and said second I/O devices are open-system devices.

13. The fault tolerant computer system according to claim 1, wherein said first I/O device and said second I/O device are VGA devices.

14. A fault tolerant (FT) computer system comprising: a first system comprising a first I/O device as an activist I/O device and an operating system (OS); and a second system comprising a second I/O device as a standby I/O device, which is thesame as said first I/O device, said second system connected with said first system through a link section, and configured to operate in synchronization with said first system, wherein each of said first and second systems comprises: a CPU; and a routingcontroller, connected with said CPU and configured to control a routing between said CPU and said first I/O device and said second I/O device; wherein said routing controller comprises a register group and a controllers; wherein said controller of saidrouting controller comprises: an address converter connected with said CPU and configured to selectively convert a request data output from said CPU based on a first data stored in said register group; a response data converter connected with said CPUand configured to selectively convert a response data to be output to said CPU, based on a second data stored in said register group; and a router connected with said address converter and said response data converter and configured to route saidrequest data and said response data; and wherein said fault tolerant computer system is configured such that, before a fault has occurred in the first I/O device, the first I/O device is visible to the OS of the first system and the second I/O device ishidden from the OS of the first system.

15. The fault tolerant computer system according to claim 14, configured such that when a fault has occurred in said first I/O device, said routing controller in said first system routes said request data received from said CPU in said firstsystem and destined to said first I/O device, to said second I/O device.

16. The fault tolerant computer system according to claim 14, wherein said response data converter in said first system is configured to convert said response data based on said second data, if receiving said response data from said second I/Odevice through said router, when said first and second I/O devices operate in a normal state, and output said converted response data to said CPU in said first system.

17. The fault tolerant computer system according to claim 14, wherein said first system further comprises a first PCI bridge as a second I/O device connected with said routing controller of said first system and with said first I/O device; andwherein said second system further comprises a second PCI bridge as a second I/O device connected with said routing controller of said second system and with said second I/O device; and wherein said fault tolerant computer system is configured such thata VGA Enable bit of said first PCI bridge and a VGA Enable bit of said second PCI bridge are both set to Enable when said first I/O device and said second I/O device operate in a normal state.

18. The fault tolerant computer system according to claim 14, wherein said first I/O device and said second I/O device are VGA devices.

19. The FT computer system of claim 1, wherein the first system and the second system operate perfectly in synchronization with each other, including clocks.

20. The FT computer system of claim 1, configured such that, after the fault has occurred, said first I/O device with the fault becomes hidden from the OS of the first system and said corresponding second I/O device becomes visible to the OS ofthe first system.

21. The FT computer system of claim 20, configured such that I/O device switching due to the fault is carried out in hardware, and the OS is not aware of the switching and of the fault.

22. The FT computer system of claim 21, configured such that the OS of the first system continues to operate as though said first I/O devices are active even after said I/O switching to corresponding second I/O devices.

23. The FT computer system of claim 20, wherein: the routing controller of said first system comprises a class code register; and the first system is configured such that switching between a first I/O device and a corresponding second I/Odevice when a fault has occurred involves replacing said class code with a different value.

24. The FT computer system of claim 20, wherein said first system is configured such that: memory space is allocated to each of first I/O devices; and addresses of active first or second I/O devices are registered in said memory space, andaddresses of hidden first or second I/O devices are not registered in said memory space.

25. The FT computer system of claim 24, wherein: said first system further comprises a PCI bridge connected between said routing controller and said first I/O devices; said first system is configured such that said PCI bridge uses said memoryspace in accessing I/O devices; and said first system is configured such that I/O devices not registered in said memory space are physically disabled.

26. The FT computer system of claim 1, configured such that: an inactive I/O device in the first or second system is invisible to the OS, and a corresponding active I/O device in the second or first system is visible to the OS; and after afault has occurred in said corresponding active I/O device in the second or first system, said corresponding active I/O device in the second or first system becomes inactive and invisible to the OS, and said inactive I/O in the first or second systembecomes active and visible to the OS.

27. The FT computer system of claim 13, configured such that: when a first VGA device in the first or second system is used and visible to the OS, a corresponding second VGA device in the second or first system is hidden from the OS; and aftera fault has occurred in said first VGA device, said first VGA device becomes hidden from the OS, and said second VGA device becomes visible to the OS.

28. The FT computer system of claim 14, configured such that, when a fault occurs in said first I/O device, said first I/O device becomes hidden from the OS of the first system, and said second I/O device becomes visible to the OS of the firstsystem.

29. The FT computer system of claim 28, configured such that switching, from the first I/O device to the second I/O device when a fault occurs in said first I/O device, is carried out in hardware with said switching and said fault hidden fromthe OS.
Description: BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a fault tolerant (FT) computer system. In particular, the present invention relates to a technique for controlling an I/O device in an FT computer system.

2. Description of the Related Art

A server used in essential business such as traffic control, finance, and stock is responsible for a base of a social life. Thus, high reliability and fault tolerance are required for the server. Also, in the business server of a corporation,the hosting service using the Internet, and the like, the down of the server caused by a fault may result in a severe commercial loss. In this way, the demand for the high reliability server has been increased in a wide field.

As the computer system having the high reliability, a "Fault Tolerant (FT) Computer System" is known. In the FT computer system, hardware modules such as CPU and memory of the system are duplexed or multiplexed, and the respective modules arecontrolled to operate in synchronization with a same clock. When a fault has occurred in a certain portion of system, i.e., one module, the fault module is logically separated from the system, and the normally operating modules continue a process. Thus, the fault tolerance is improved.

FIG. 1 is a conceptual view showing the configuration of the typical FT computer system. This FT computer system 100 has duplexed hardware modules and a fault tolerant controller (FT controller) 110 connected to the hardware modules. In FIG. 1,CPUs 120 (120a, 120b), main memory 130 (130a, 130b) and I/O devices 140 (140a, 140b) are duplexed. One CPU 120a (120b) and one main memory 130a (130b) constitute one CPU subsystem 150. In short, this FT computer system 100 is duplexed by the two CPUsubsystems 150. The two CPU subsystems 150 are controlled to operate in synchronization with a same clock. Also, the duplexed I/O devices (groups) 140 constitute an 10 subsystem 160. The FT controller 110 controls the CPU subsystems 150 and the IOsubsystem 160. Specifically, the FT controller 110 carries out the maintenance of the synchronous operation (two-system synchronous operation) between the two CPU subsystems 150, the detection of a fault in a module, the separation control of the faultmodule, and the like.

Generally, the FT computer system is divided into a portion in which the dual control is carried out in hardware, and a portion in which the dual control is carried out in software. For example, the CPU subsystem 150 of the CPU 120 and the mainmemory 130 is the base where the software itself is operated. Thus, the CPU subsystem 150 is required to be dually controlled in hardware. When a fault has occurred in the CPU subsystem 150a, the FT controller 110 (hardware) instantly separates thefault CPU or memory from the system. Thus, without any stop of the system, the process is continued by the remaining CPU subsystem 150b and IO subsystem 160. On the other hand, the IO subsystem 160 is dually controlled in software. For example, when afault has occurred in an I/O device 140a, the FT controller 110 detects the fault and carries out an error report to a software program (hereinafter, to be referred to as an "I/O Device Driver") that controls the I/O device 140a. At this time, the I/Odevice driver stops the use of the fault I/O device 140a and uses the duplexed different I/O device 140b instead of it. In this way, the switching between the I/O devices 140 in the IO subsystem 160 is carried out in software.

In order to carry out the switching control for the I/O devices 140 as mentioned above, the I/O device driver is required to have a function of recognizing the error report from the FT controller 110 and a function of carrying out the switchingprocess to a substitution I/O device. That is, the I/O device driver to drive the I/O devices 140 and an operating system (OS) for collectively control the driver are required to be adaptive for the FT computer system.

Japanese Laid Open Patent Application (JP-A-Heisei, 9-16426) discloses an I/O switching technique, in an FT computer having a two-port console. This conventional technique aims to carry out monitor and maintenance by the single console withoutany connection switching of cables. The FT computer based on this conventional technique has two systems of console outputs, and their input/output buses are switched when a fault has occurred. The switching between their input/output buses is carriedout in response to a command from OS. Thus, it is considered in this conventional technique that the dedicated OS is required to be used.

By the way, in recent years, a so-called "Open System" using an Intel-compatible CPU ("Intel" is registered trademark) is a trend in the field of the server. As the main tendency, the I/O device produced by an independent hardware vendor isinstalled in an open PC server system, and the I/O device driver produced by the same vendor is used to control the I/O device. However, most of such I/O device drivers are not produced under the consideration of the FT computer system. In such I/Odevice drivers, the switching function between the I/O devices is not installed at all. Also, the I/O devices installed typically in the open computer system such as a video adaptor (VGA: Video Graphics Adaptor) are directly accessed from OS in manycases. However, it is actually impossible to apply a modification for the fault tolerant computer system to the OS mainly used in the open computer system.

The high reliability server corresponding to the open hardware and software systems is demanded. The technique is demanded which can attain the fault tolerant computer system in accordance with the open OS or I/O device driver. In particular,the technique that can carry out the dual control for the I/O devices is desirable in order to improve the fault tolerance and reliability in the open server system.

In conjunction with the above description, a portable computer is disclosed in Japanese Laid Open Patent Application (JP-A-Heisei 5-94277). The portable computer of this conventional example is provided with a display unit composed of amonochrome panel and a color panel, a monochrome panel display control circuit which controls display of the monochrome panel, and a color panel display control circuit which controls display of the color panel. A setting section sets a selection datato a switching section, which switches the monochrome panel display control circuit and the color panel display control circuit based on the selection data.

Also, a degrade system of a cluster connection multi-processor system is disclosed in Japanese Laid open Patent Application (JP-A-Heisei 11-149457). The multi-processor system of this conventional example is provided with a plurality of CPUs, aplurality of CPU control sections to control the plurality of CPUs, and a memory and an I/O control section which are shared by the plurality of CPUs. The plurality of CPUs and the plurality of CPU control sections are connected a cluster bus, and theplurality of CPU control sections are connected by a system bus. The CPU control section at least contains a control register (as a freeze register) to control disconnection of the CPU from the cluster bus and a control register (as a "CPU statusregister") to indicate a connection situation of the CPU and the cluster bus. When each of the CPUs on the cluster bus starts an operation, a flag is written in the CPU status register corresponding to the CPU to indicate a cluster connection. Then, aninitial diagnosis of the CPUs is started, when a fault is detected in one CPU, the fact is written in the frieze register. The fault CPU is logically disconnected from the cluster bus. The CPU control section never responds to a request from the faultCPU absolutely, and controls to separate the fault CPU from the system.

Also, a switching unit of a multiplexing apparatus is disclosed in Japanese Laid Open Patent Application (JP-P2002-77186A). In the multiplexing apparatus of this conventional example, the switching unit is provided between a connection originapparatus and a plurality of connection destination apparatuses which are multiplexed, to select and connect one of the connection destination apparatuses and the connection origin apparatus. In the switching unit, a storage section stores connectionpriority levels of the connection destination apparatuses. A first signal input/output section is connected with the connection origin apparatus. A second signal input/output section is connected with the plurality of connection destination apparatusesthrough communication lines and inputs and outputs data from and to a specific one of the connection destination apparatuses. A routing section connects the first and second signal input/output sections directly and indirectly. A selecting sectionselects one of the connection destination apparatuses which has a high connection priority level as the specific connection destination apparatus. Also, the selecting section selects one of the connection destination apparatuses which has a lowerconnection priority level than that of the specific connection destination apparatus, when confirming generation of a connection fault in the specific connection destination apparatus based on a monitor signal of the second input section, and selects oneof the connection destination apparatuses which has a higher connection priority level than that of the specific connection destination apparatus, when confirming elimination of a connection fault in the connection destination apparatus with the higherconnection priority level based on the monitor signal of the second input section.

Also, a fault tolerant system is disclosed in Japanese Laid Open Patent Application (JP-P2004-280732A). In the fault tolerant system of this conventional example, first and second north bridges and duplexed and first and second input/output busbridges are duplexed, and an asynchronous interface is used as an interface between the first and second north bridges and the first and second input/output bus bridges. A section is provided for each of the first and second north bridges to synchronizedata transmission and reception for the asynchronous interface between the first and second north bridges.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide a fault tolerant (FT) computer system in which open-system hardware and software are used as a base.

Another object of the present invention is to provide an FT computer system that can carry out a dual control of I/O devices, without modifying an existing OS or I/O device driver.

Still another object of the present invention is to improve the fault tolerance and reliability of an open-system server.

In an aspect of the present invention, a fault tolerant (FT) computer system includes a first system as an active system comprising first I/O devices; and a second system as a standby system comprising second I/O devices, which are same as thefirst I/O devices, connected with the first system through a link section, and configured to operate in synchronization with the first system. Each of the first and second systems includes a CPU; and a routing controller connected with the CPU. Therouting controller in the first system controls a routing between the CPU in the first system and the first I/O devices and the second I/O devices. When a fault has occurred in one of the first I/O devices, the routing controller in the first systemroutes a request data received from the CPU in the first system and destined to the first I/O device, to one of the second I/O devices corresponding to the I/O device.

Here, the routing controller in the first system may include an address converter connected with the CPU; a response data converter connected with the CPU; and a router connected with the address converter and the response data converter. Whenthe fault has occurred in the first I/O device, the address converter may generate a converted request data from the request data by replacing a device data indicating the first I/O device by a device data indicating the second I/O device, if receivingthe request data from the CPU, and may forward the converted request data to the router. The router may route the converted request data to the second I/O device based on the device data contained in the converted request data.

In this case, the device data may be a PCI bus number, a device number and a function number in a PCI hierarchy structure. In this case, the routing controller in the first system may further include a register referred to from the addressconverter and configured to store the PCI bus number, the device number and the function number.

Also, the device data may be an address in a system memory map space. In this case, the routing controller in the first system may further include a register referred to from the address converter and configured to store the address.

Also, the response data converter may generate a converted response data from a response data by rewriting a part of the response data, when the second I/O device operates in a normal state and the response data converter receives the responsedata from the second I/O device through the router, and may output the converted response data to the CPU in the first system. In this case, the response data converter may generate the converted response data by replacing a class code of the second I/Odevice which is contained in the response data by another class code. Also, the routing controller in the first system may further include a register referred to from the response data converter and configured to store the another class code.

Also, the first system comprises a first PCI bridge as one of the first I/O devices connected with the routing controller of the first system and the first I/O device, and the second system comprises a second PCI bridge as one of the second I/Odevices connected with the routing controller of the second system and the second I/O device. A VGA Enable bit of the first PCI bridge and a VGA Enable bit of the second PCI bridge are preferably both set to Enable when the first I/O device and thesecond I/O device operate in a normal state.

In this case, when an access to the VGA Enable bit of the second PCI bridge is generated, the response data converter may receive the VGA Enable bit from the second PCI bridge through the router, and may convert the received VGA Enable bit intoDisable.

Also, the first I/O devices and the second I/O devices may be open-system devices.

Also, the first I/O device and the second I/O device may be VGA devices.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing schematically showing the configuration of a conventional fault tolerant (FT) computer system;

FIG. 2 is a block diagram showing the configuration of a fault tolerant (FT) computer system according to the present invention;

FIG. 3 is a conceptual view showing a PCI hierarchical structure in the FT computer system;

FIG. 4 is a conceptual view showing a system memory map in the FT computer system of the present invention;

FIG. 5A is a conceptual view showing a content of a PCI configuration register in the FT computer system of the present invention;

FIG. 5B is a conceptual view showing a content of a class code register in the FT computer system of the present invention;

FIG. 6 is a block diagram showing the configuration of a routing controller in the FT computer system of the present invention;

FIG. 7 is a conceptual view showing the configuration of a routing control register group in the FT computer system of the present invention;

FIG. 8 is a conceptual view showing an example of the PCI hierarchical structure of the FT computer system of the present invention;

FIG. 9A is a conceptual view showing an example of the system memory map in the FT computer system of the present invention;

FIG. 9B is a conceptual view showing an example of the PCI configuration map in the FT computer system of the present invention;

FIGS. 10A to 10C are a flowchart showing an operation of the FT computer system according to the present invention;

FIG. 11 is a diagram showing an example of an operation of the FT computer system according to the present invention;

FIG. 12 is a diagram showing an example of an operation of the FT computer system according to the present invention; and

FIG. 13 is a diagram showing an example of an operation of the FT computer system according to the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Hereinafter, a fault tolerant (FT) computer system according to the present invention will be described in detail with reference to the attached drawings.

FIG. 2 is a block diagram showing the configuration of the FT computer system according to the present invention. The FT computer system 1 is provided with a primary system 1a and a secondary system 1b which are duplexed.

The primary system la is provided with a CPU 2a, a main memory 3a, a routing controller 4a, an FT control section 5a (first FT control section), a PCI bridge 6a, a PCI bus 7a, a VGA device 8a and an I/O device 9a. The secondary system 1b has thesame configuration as the primary system 1a and is provided with a CPU 2b, a main memory 3b, a routing controller 4b, an FT control section 5b (second FT control section), a PCI bridge 6b, a PCI bus 7b, a VGA device 8b and an I/O device 9b. In both ofthe primary and secondary systems, a set of the CPU 2 (2a, 2b), the main memory 3 (3a, 3b), the routing controller 4 (4a, 4b) and a part of the FT control section 5 (5a, 5b) constitutes a CPU subsystem 11 (11a, 11b). The CPU subsystems 11 in the bothSystems operate perfectly in synchronization with each other, including clocks. Also, a part of the FT control section 5 (5a, 5b), the PCI bridge 6 (6a, 6b) and duplexed I/O device groups (8a, 9a, and 8b, 9b) constitute I/O subsystems 12 (12a, 12b). The I/O subsystem 12 and one CPU subsystem 11 operates as one computer system.

The routing controller 4 is connected to the CPU 2, the main memory 3 and the FT control section 5. The routing controller 4 is also referred to as a north bridge and acts as a role for routing a request from the CPU 2 to the memory or I/Osubsystem. Here, the routing controller 4 is connected through two paths to the FT control section 5. This is because the I/O device group (8a, 9a, and 8b, 9b) is duplexed. In short, the routing controller 4 determines whether a certain access shouldbe carried out on the I/O device (8a, 9a) on the primary system side or the I/O device (8b, 9b) on the secondary system side. The routing controller 4 selects one of the two paths in accordance with the determination result, and carries out the routingof a request for the access.

The FT control section 5 compares and checks the operations of both of the two CPU subsystems 11 and keeps the synchronization between the primary/secondary CPU subsystems 11. Also, the FT control section 5 carries out the detection of a faultin a module based on an error check, the separation control of a fault module and the like.

The PCI bridge 6 connects the respective I/O devices 8 and 9 and the FT control section 5 through the PCI bus 7. According to the present invention, the dual control of the I/O devices is attained. As the I/O device that is a target for thedual control, the VGA (Vide Graphics Adaptor) device 8 is exemplified. The VGA device is one of legacy I/O devices, and is directly accessed from OS operating on the CPU 2 in many cases. It should be noted that the PCI bridge 6 and I/O devices 8 and 9used in this embodiment have been used in a typical open-system server. The units having special functions for the fault tolerance are the routing controller 4 and the FT control section 5.

Also, as shown in FIG. 2, the first FT control section 5a and the second FT control section 5b are connected through FT links 10. Each of the FT links 10 is used for the access from one of the CPU subsystems 11 to the I/O subsystem 12 of theother. In short, one of the FT links 10 is used for the access from the CPU subsystem 11a of the primary system la to the I/O devices 8b and 9b of the secondary system 1b and the other of the FT links 10 is used for the access from the CPU subsystem 11bof the secondary system 1b to the I/O devices 8a and 9a of the primary system 1a. Thus, the first FT control section 5a can handle the accesses from the CPU subsystems 11 in the both systems 1 to the PCI bridge 6a and the I/O devices 8a and 9a under theadministration thereof, and the second FT control section 5b can handle the accesses from the CPU subsystems 11 in the both systems to the PCI bridge 6b and the I/O devices 8b and 9b under the administration thereof. The synchronization check of theboth systems is limited to the range handled by the FT control sections 5. Therefore, in this FT computer system, the synchronization check carried out by the FT control sections 5 is dispersedly executed.

Also, as shown in FIG. 2, the two VGA devices 8a and 8b are connected through a switch 13 to a display 14. The FT computer system 1 according to this embodiment originally has two VGA outputs since VGA devices 8a and 8b are duplexed. However,since the number of the displays 14 is limited to one, this switch 13 switches the VGA outputs. Usually, the display 14 is connected to the output of the VGA device 8 on the primary system side. At the time of a fault occurrence, the connection betweenthe display 14 and the VGA device output is properly switched based on the control of the FT control section 5. Only one VGA device 8 exists to be connected in the FT computer system as the standard VGA device.

FIG. 3 is a conceptual view showing the PCI (Peripheral Component Interconnect) hierarchical structure in the FT computer system 1 according to this embodiment. PCI bus numbers, device numbers and function numbers are given to all accessibledevices in accordance with "PCI Bus Specification". Thus, the hierarchical structure where the CPUs 2 serve as apexes is obtained. For example, "Device #0" is allocated to a memory controller device 21 existing in the routing controller 4. "Device #1"is allocated to an FT control device 22 existing in the FT control section 5. "Device #2" is allocated to the PCI bridge 6a (the first PCI bridge; PCI Bridge #1) of the primary system 1a. "Device #3" is allocated to the PCI bridge 6b (the second PCIbridge: PCI Bridge #2) of the secondary system 1b. The memory controller device 21, FT control device 22, first PCI bridge 6a and second PCI bridge 6b are located in the lower layer of the CPU 2 and connected to the CPU 2 through the bus to which "Bus#0" is allocated.

Also, the VGA device (Video Device #1) 8a and the I/O device (I/O Device #1) 9a exist under the administration of the first PCI bridge 6a, and those VGA device Ba and I/O device 9a are connected to the first PCI bridge 6a through the bus to which"Bus #1" is allocated. "Device #0" is allocated to the VGA device 8a, and "Device #1" is allocated to the I/O device 9a. Also, when the VGA device (Video Device #2) 8b and the I/O device (I/O Device #2) 9b exist under the administration of the firstPCI bridge 6b, the VGA device 8b and I/O device 9b are connected to the second PCI bridge 6b through the bus to which "Bus #2" is allocated. "Device #0" is allocated to the VGA device 8b, and "Device #1" is allocated to the I/O device 9b.

In order to allow the VGA device 8 and the I/O device 9 to be accessed by software programs including the OS operated on the CPU 2, there are three methods of (1) PCI Configuration Access, (2) IO Mapped Access, and (3) Memory Mapped PCI Access. Of them, when "PCI Configuration Access" is carried out, an access request is forwarded by referring to the hierarchical structure shown in FIG. 3. In short, the access request is forwarded through the routing controller 4, the FT control section 5 andthe PCI bridge 6 to the bus having the corresponding PCI bus number. Finally, the access request reaches the VGA device 8 or I/O device 9 as a target.

Also, FIG. 4 is a conceptual view showing a system memory map according to this embodiment. Each of the VGA device 8 and the I/O device 9 is allocated with an address space. In case of the Intel-compatible system used generally in theopen-system server, as shown in FIG. 4, the VGA device 8 and the I/O device 9 are mapped on the system memory space of the addresses of 4 gigabytes or less. For example, the access request to the address space from "Address A-low" to "Address A-hi" isforwarded to the first PCI bridge 6a by the routing controller 4. Then, the first PCI bridge 6a forwards it to the PCI bus "Bus #1". At this time, each of the devices connected to "PCI Bus #1" refers to the address of the access request issued on thebus, and receives this access request if it is matched with a self-address space.

Also, in the Intel-compatible system, the access to the address space of "A0000h to BFFFFh" is handled as a Standard VGA Space as shown in FIG. 4. The access request to this standard VGA space is forwarded to the standard VGA device solelyexisting in the FT computer system. In this case, as an assumption condition, the standard VGA device is determined by a system software program such as BIOS when the FT computer system is started. Then, a "VGA Enable bit" is set in a PCI configurationregister of the PCI bridge 6 where manages or controls the standard VGA device exists. When the access request to the address space of "A0000h to BFFFFh" is detected, the routing controller 4 forwards the access request to the PCI bridge 6 in which theVGA Enable bit has been set. Thus, the access to the standard VGA device is attained. When the foregoing "Memory Mapped PCI Access" is carried out, the access request is forwarded by referring to the system memory map shown in FIG. 4.

FIG. 5A conceptually shows a part of an address space of the PCI configuration register of the typical I/O device. Also, FIG. 5B conceptually shows a class code register. Generally, the driver and the OS access the space of all the devices inthe system and carry out the mapping on the address space for each manufacturer of the devices and each kind. For example, an identifier indicating the type of the I/O device is written in a class code field. The address of this class code field is"030000h" in case of the VGA device 8 and "FF0000h" in case of the I/O device that does not belong to any category. These addresses are defined by "PCI Bus Specification".

The items with regard to FIGS. 3, 4, 5A and 5B as mentioned above are defined in "PCI Bus Specification".

The routing controller 4 according to the present invention attains the dual control of the VGA device 8 in hardware. FIG. 6 is a block diagram showing the configuration of the routing controller 4 according to the present invention. Therouting controller 4 decodes the address to the I/O device 8 or 9 as a target and carries out the suitable routing so that an access request from the CPU 2 is forwarded to the target. As shown in FIG. 6, the routing controller 4 according to the presentinvention includes a controller 40, routing control registers 41 and an error detector 42. Also, the controller 40 includes an address converter 43, a response data converter 44 and a router 45.

Various data for settings of the routing controller 4, which will be described later are stored in the routing control registers 41.

The error detector 42 holds an error data detected in the PCI bridge 6, the VGA device 8 and the I/O device 9, and reports the error detection to the controller 40.

The address converter 43 is connected to the CPU 2 and the router 45. The address converter 43 receives a request data from the CPU 2. At this time, the address converter 43 converts the address corresponding to the request, i.e., a requestaddress in accordance with the setting of the routing control registers 41 and generates "Conversion Address Data". Then, the address converter 43 outputs "Conversion Request Data" including the generated conversion address data, to the router 45.

The router 45 is connected to the FT control sections 5a and 5b and carries out the routing in accordance with the conversion address data.

The response data converter 44 is connected to the CPU 2 and the router 45. The response data converter 44 receives a response data through the router 45 from the I/O device 9 or VGA device. At this time, the response data converter 44 rewritesa part of the received response data in accordance with the setting of the routing control registers 41, and generates "Conversion Response Data". Then, the response data converter 44 outputs the conversion response data as the response data to the CPU2.

FIG. 7 is a conceptual view showing the configuration of the routing control registers 41 according to the present invention. The routing control registers 41 are provided with a plurality of registers 51 to 58 which will be described below.

Config. Address Routing Control Enable:

The register 51 is a register for activating/inactivating the function to carry out the dual control on the device such as the VGA device 8 and the like. When the register 51 is set to "Disable", the dual control of the hardware is stopped. Inthis case, the routing controller 4 carries out an operation similar to the conventional typical north bridge. When the register 51 is set to "Enable", the dual control of the hardware is started.

Default Target Device:

This register 52 is a register for specifying "Standard VGA Device" that is actually used among the two VGA devices 8a and 8b. When the system is started, any of "Primary" and "Secondary" is set in this register 52 by the BIOS. When the"Primary" is set, the VGA device 8a is employed as the standard VGA device. When the "Secondary" is set, the VGA device 8b is employed as the standard VGA device. When the error detector 42 reports the error of the PCI bridge 6 or VGA device 8, therouting controller 4 refers to this register 52 and switches the routing to the VGA device B.

Primary Device PCI Configuration Number:

Secondary Device PCI Configuration Number:

The PCI bus numbers, device numbers and function numbers of the VGA devices 8a and 8b, which are dually controlled, are set in each of the registers 53a and 53b. When the "PCI Configuration Access" is received as the access request from the CPU2, the routing controller 4 compares them with the values stored in the registers 53a and 53b. Thus, the routing controller 4 can recognize the access to the VGA device 8.

Primary Device Class Code Replace Enable:

Secondary Device Class Code Replace Enable:

Each of the registers 54a and 54b is a register for activating/inactivating a function to replace the class code in accessing the class code register. When the registers 54 are set to "Enable", the routing controller 4 (response data converter44) uses the value set in a "Replace Class Code" register 55 as described below and generates the "Conversion Response Data". In short, the response data converter 44 converts the response data for the access to the class code register for the VGAdevice 8a or 8b, by using the class code set in the "Replace Class Code" register 55. When the registers 54 are set to "Disable", the foregoing replacement is not carried out.

Generally, when the two VGA devices 8 exist in the system, the OS regards both of them as the different VGA devices 8 and operates to independently control them. However, the system according to the present invention is the fault tolerantcomputer system. When one VGA device 8a is used, the other VGA device 8b is required to be hidden from the OS. When a fault has occurred in one VGA device 8a, the other VGA device 8b is required to be used as a substitution device. Here, when the VGAdevice 8 itself is hidden, the device itself becomes invisible from the OS. Thus, the address of the hidden VGA device 8 is not registered in the system memory space. As a result, the setting of the address space for the PCI bridge 6 is not carriedout, which physically disables the access to the substitution VGA device. For this reason, according to the present invention, the method is employed of replacing only the class code by a different value. Therefore, the unused VGA device 8 can behidden in a pseudo manner.

Replace Class Code:

The value used in the above replacement is set in this register 55. When the access request to the class code register for the VGA device 8 that is not the device set as the "Default Target Device" is generated, the response data converter 44 ofthe routing controller 4 replaces the response data by the value set in the register 55. The class code of the VGA device 8 is defined as "030000h". However, according to the present invention, for example, the class code "FF0000h" indicating "OtherDevice" is set in the register 55. As a result, the OS recognizes the VGA device 8, which is not the device set in the "Default Target Device", as the typical I/O device.

Primary VGA Enable Bit Hide Enable:

Secondary VGA Enable Bit Hide Enable:

The registers 56a and 56b are registers for hiding the "VGA Enable bit" of the PCI bridge 6 which is an open-system device. The OS such as the Windows (registered trademark) does not guarantee the operation when the "VGA Enable bits" of theplurality of PCI bridges 6 are set to "Enable". Thus, in case of the conventional case, the "VGA Enable bit" was set only for one of the PCI bridges 6a and 6b. When the "VGA Enable bit" is not set to the "Enable", the PCI bridge 6 does not forward theaccess request to the standard VGA address space (A0000h to BFFFFh) to the lower PCI bus. However, the system according to the present invention is the FT computer system. When a fault has occurred in the VGA device 8 set to the "Default TargetDevice", the substitution VGA device must be used. Thus, it is necessary that the access request to the standard VGA space is not shut down by the PCI bridge 6 on the substitution VGA device side. That is, the "VGA Enable bit" of the PCI bridges 6a and6b of the both systems must be set to "Enable". In order to solve the contradiction when the OS such as the Windows is applied to this system, the registers 56a and 56b provide the function of hiding the "VGA Enable bit". If the access to the "VGAEnable bit" of the PCI bridge 6 that the register 56 is set to "Enable" is detected, the response data converter 44 of the routing controller 4 replaces the response data and consequently hides the "VGA Enable bit".

Primary Base Address:

Secondary Base Address:

Primary Address Size:

Secondary Address Size:

The registers 57a, 57b, 58a and 58b are registers for setting the base addresses allocated to the respective VGA devices 8 and their sizes. The VGA device 8 has a memory space. In case of the Intel-compatible system, it is mapped to a part ofthe system memory space whose side is lower than 4 gigabytes. The addresses where the VGA devices 8a and 8b in both of the primary/secondary systems are mapped are set in the registers 57a and 57b. The registers 57a and 57b are referred to by theaddress converter 43, in order to convert the access request from the CPU 2 to the access request to the substitution VGA device, when the VGA device 8 set in "Default Target Device" is faulted. In short, the address converter 43 converts the address inorder to make it appear to the OS as if the same VGA device 8 continues to be used even when a fault has occurred in the default VGA device 8. Therefore, it is possible to execute the access routing to the actually different substitution device whilehiding the fault of the default VGA device 8 from the OS.

By the routing controller 4 as described above, it is possible to execute the address conversion and the switching control by using the hardware when a fault has occurred in the default VGA device 8. Thus, the FT computer system 1 can continuethe process. Here, the foregoing control is carried out in the state hidden from the OS. Also, the error of the VGA device 8 and the like is perfectly hidden from the OS. In short, the situation that the normally operating device continues to bealways used is generated for the OS in the pseudo manner. The number of the VGA devices 8 visible from the OS is always one. Thus, the dual control of the VGA device 8 is possible without any modification to the OS. Also, the dual control is possible,even if the open-system device is employed as the I/O devices 8 and 9 and the PCI bridge 6. That is, the duplication of the I/O devices can be attained even in the server including the existing OS, I/O devices and I/O device driver which are producedwithout any intention of the FT computer.

Next, one example of the operation of the FT computer system 1 according to the present invention will be described below in detail. In the FT computer system 1 shown in FIGS. 2 and 3, the I/O device groups 8 and 9 on the primary system side areassumed to be active I/O devices, and the I/O device groups 8 and 9 on the secondary system side are assumed to be standby I/O devices. The active I/O devices are the I/O device group used for the process, and the standby I/O devices are the I/O devicegroup to be used instead of the faulted active I/O devices. In short, the VGA device 8a of the primary system 1a is the standard VGA device that is usually used, and the VGA device 8b of the secondary system 1b is the standby VGA device or substitutionVGA device.

Here, it is supposed that the routing control registers 41 shown in FIG. 7 are set as described below.

Config. Address Routing Control Enable: "Enable"

Consequently, the dual control for the I/O devices by the hardware according to the present invention becomes active.

Default Target Device: "Primary"

As mentioned above, the VGA device 8a on the primary system side is set to be active. There is a case that the VGA device 8 (I/O device) on the side set in the register 52 is referred to as "Default".

Primary Device PCI Config. Number: "Bus #1, Dev #0, Func #0"

Secondary Device PCI Config. Number: "Bus #2, Dev #0, Func #0"

The device information under the PCI hierarchy shown in FIG. 3 is set in the register 53. The device information of the VGA device 8a on the primary system side is set in the register 53a, and the device information of the VGA device 8b on thesecondary system side is set in the register 53b.

Primary Device Class Code Replace Enable: "Disable"

Secondary Device Class Code Replace Enable: "Enable"

Replace Class Code: "FF0000h"

The VGA device 8a on the primary system side is the VGA device visible from the OS. On the other hand, the VGA device 8b on the secondary system side is the VGA device hidden from the OS, and it is required to be recognized as "Other Device" bythe OS. For this reason, the setting where the class code on the secondary system side is replaced by "FF0000h" is executed.

Primary VGA Enable bit Hide Enable: "Disable"

Secondary VGA Enable bit Hide Enable: "Enable"

Irrespectively of the active/standby status, the "VGA Enable bit" of the PCI bridges 6a and 6b are set to "Enable" by the BIOS. However, according to this embodiment, when the access request to "VGA Enable bit" of the PCI bridge 6b on thestandby side is generated, the bit information is required to be hidden. For this reason, the register 56b to the secondary system side is set to "Enable".

Primary Base Address: F00.sub.--0000h

Primary Address Size: 200.sub.--0000h

Secondary Base Address: F800.sub.--0000h

Secondary Address Size: 200.sub.--0000h

The values of the registers 57a, 57b and 58a, 58b depend on the values of the base address register of the PCI configuration register (refer to FIG. 5A) of the VGA device 8. Here, it is supposed that the foregoing values are tentatively set.

By the above-mentioned settings, the PCI hierarchy of the system when it is viewed from the OS has the structure as shown in FIG. 8. Both "VGA Enable bits (VGA_En)" of the PCI bridges 6a and 6b on the active and standby sides are set to"Enable". Also, the VGA device 8b on the standby side is recognized as "Other Device 60" from the OS. Also, FIG. 9A shows the system memory map, and FIG. 9B shows the PCI configuration map. The active VGA device is mapped to "FD00.sub.--0000h toFFFF_FFFFh", and the standby VGA device is mapped to "F800.sub.--000h to FAFF_FFFFh". Also, the address "A0000h to BFFFFh" is treated as the compatible VGA space.

In order for the software including the OS on the CPU 2 to access the VGA device 8, there are at least 3 methods of (1) PCI Configuration Access, (2) Memory Mapped PCI Access and (3) IO Mapped Access. In the following description, the routing tothe "PCI Configuration Access" and the routing to the "Memory Mapped PCI Access" will be especially described. It should be noted that the "IO Mapped Access" is substantially same as the routing to the "Memory Mapped PCI Access". Therefore, thedescription is omitted here.

FIGS. 10A to 10C are a flowchart showing the operation of the routing controller 4 of the FT computer system 1 according to the present invention. At first, the CPU 2 issues a read request to a certain device (target). When receiving the readrequest from the CPU 2, the address converter 43 examines a type of the access (Step S1). When the type of the access is not any of the foregoing three types, the address converter 43 merely forwards the request to the router 45 (Step S300). The router45 carries out the routing to the device that is the target (Step S301).

(1) PCI Configuration Access

At the step S1, when the type of the access is "PCI Configuration Access", the control flow shown in FIG. 1B is executed. When the CPU 2 issues the read request to the PCI configuration register (refer to FIG. 8), the address converter 43 of thecontroller 40 extracts a bus number, a device number, a function number and a register offset address from that request. Then, the address converter 43 of the controller 40 compares the extracted values with the values set for "Primary/Secondary DevicePCI Config. Number (registers 53a, 53b)" (Step S101). For example, if the extracted values are matched with the values set in "Secondary Device PCI Config. Number" (Step S101; Yes), the address converter 43 of the controller 40 determines whether ornot the matched device is in a normal state, in accordance with the error data stored in the error detector 42 (Step S102). If the matched device is in the normal state (Step S102; Yes), the address converter 43 of the controller 40 further examines theregister offset address and determines whether or not the address is within the range of the addresses (09h to 0Bh: refer to FIG. 5) of the class code register (Step S103).

If the access to the class code register is not included (Step S103; No), a step S300 is executed. If the access to the class code register is included (Step S103; Yes), the address converter 43 of the controller 40 confirms the setting of"Secondary Device Class Code Replace" (Step S104). Here, since the "Secondary Device Class Code Replace" has been set to "Enable" (Step S104; Yes), the controller 40 instructs the response data converter 44 to replace the class code (Step S105). Then,the step S300 is executed.

Subsequently, the response data is returned from the secondary VGA device 8b. When receiving the response data, the response data converter 44 replaces the class code indicated in the response data by "FF0000h" set in "Replace Class Code". Then, the response data converter 44 passes the conversion response data after the replacement to the CPU 2. Through the above-mentioned sequence, when the OS accesses the class code of the standby VGA device 8b, "FF0000h (Other Device)" is alwaysreturned. Thus, the OS never recognizes existence of the two VGA devices 8a and 8b.

Also, it is supposed that the request from the CPU 2 is a read request for referring to "VGA Enable bit" of the secondary PCI bridge 6b (Step S101; No, Step S111; Yes). The "VGA Enable bit" is defined by "PCI-to-PCI Bridge Specification" andexists in a bridge control register (Offset Address: 3Eh). If the access to that location is recognized (Step S112; Yes), the address converter 43 of the controller 40 refers to "Secondary VGA Enable bit Hide" (Step S113). Here, the "Secondary VGAEnable bit Hide" is set to the "Enable" (Step S113; Yes). Therefore, the controller 40 instructs the response data converter 44 to hide the "VGA Enable bit" (Step S114). Then, the step S300 is executed.

Subsequently, the secondary PCI bridge 6b returns the response data. When receiving the response data, the response data converter 44 replaces the "VGA Enable bit" indicated in the response data, by "Disable(=0)". Then, the response dataconverter 44 forwards the conversion response data after the replacement, to the CPU 2, Through the above-mentioned sequence, when the OS accesses the "VGA Enable bit" of the PCI bridge 6b on the standby side, "Disable" is always returned. Thus, the PCIbridge 6b on the standby side is hidden from the OS. The PCI bridge which appears to the OS as if the "VGA Enable bit" has been set although the "VGA Enable bits" are actually set in the plurality of PCI bridges 6 is limited to the PCI bridge 6a on theprimary system side. Therefore, the mismatching is never generated for the OS.

Next, a case where a fault has occurred in the active VGA device 8a, or a case where any error is generated in the active VGA device 8a will be described. The data with regard to this fault is reported to the controller 40 by the error detector42.

When the CPU 2 issues a read request to the active VGA device 8a, the address converter 43 of the controller 40 extracts the bus number, the device number, the function number and the register offset address from the read request. Then, theaddress converter 43 of the controller 40 compares the extracted values with the values set in "Primary/Secondary Device PCI Config. Number" (Step S101). Here, it is supposed that the extracted values are matched with the values set in the "PrimaryDevice PCI Config. Number" (Step S101; Yes). Also, it is supposed that the active VGA device 8a as the access target is in a fault state (Step S102; No). At this time, the address converter 43 of the controller 40 determines whether or not the activeVGA device 8a as the access target is matched with "Default" (Step S121). If it is not matched (Step S121; No), the step S300 is executed. In this example, the access target is matched with the default target (Step S121; Yes). In this case, theaddress converter 43 refers to the "Secondary Device PCI Config. Number" and replaces the extracted values by the bus number, device number and function number of the standby VGA device 8b that is not the default (Step S122). In this way, theconversion address data is generated. Then, the address converter 43 outputs "Conversion Request Data" including the generated conversion address data, to the router 45 (Step S300). In this example, a request to "Bus #1: Dev #0: Func #0" is rewrittento a request to "Bus #2: Dev #0: Func #0". As a result, as shown in FIG. 11, the read request is routed to the secondary VGA device 8b (60). As shown in FIG. 14, the access to the primary VGA device 8a is replaced by the access to the secondary VGAdevice 8b (60). Thus, the fault of the primary VGA device 8a can be hidden from the OS, and the process can be continued. It seems to the OS as if the primary VGA device 8a continues to be accessed.

(2) Memory Mapped PCI Access

At the step S1, when the type of the access is the "Memory Mapped PCI Access", the control flow shown in FIG. 10C is executed. The system memory map shown in FIGS. 9A and 9B are referred to in case of this "Memory Mapped PCI Access". At first,when the read request is received from the CPU 2, the address converter 43 of the controller 40 checks its request address (Step S201, Step S211). For example, if the read request to the standard VGA space (A0000h to BFFFFh) is issued from the CPU 2(Step S201; No, Step S211; Yes), the address converter 43 of the controller 40 checks whether or not an error occurs in the default device specified by the "Default Target Device" (Step S212). If the default device is in the normal state (Step S212;No), the address converter 43 instructs the router 45 to forcedly route the read request to the PCI bridge 6a on the default side (Step S213). Thus, the read request is routed to the PCI bridge 6a on the primary system side and consequently routed tothe active VGA device 8a on the primary system side.

If a fault has occurred in the default device (Step S212; Yes), the address converter 43 instructs the router 45 to forcedly route the read request to the PCI bridge 6 on the non-default side device (standby side) (Step S230). Thus, the readrequest is routed to the PCI bridge 6b on the secondary system side and consequently routed to the standby VGA device 8b on the secondary system side. Also, for example, if the request address is included in the address space of the VGA device 8 (StepS201; Yes), the address converter 43 of the controller 40 confirms whether or not the fault has occurred in the VGA device 8 as the target (Step S02). If the primary VGA device 8a is in the normal state (Step S202; No), the step S300 is executed. Ifthe fault has occurred in the primary VGA device 8a as the target (Step S202; Yes), the controller 40 determines whether or not the target is matched with the default device (Step S221). In case of this example, the primary VGA device 8a is the defaultdevice (Step S221; Yes). Thus, the address converter 43 replaces the request address by the address of the secondary VGA device 8b on the non-default side (Step S222). In this example, as shown in FIG. 13, a request to "FE00.sub.--0000h" is rewrittento a request to "F900.sub.--0000h". These address values are calculated in accordance with "Primary/Secondary Base Address" and "Primary/Secondary Base Size". Thus, as shown in FIG. 11, the read request is routed to the secondary VGA device 8b (60). Therefore, the fault of the primary VGA device 8a can be hidden from the OS, and the process can be continued. It seems to the OS as if the primary VGA device 8a continues to be accessed.

It should be noted that in the usual case, the OS does not directly access the "Other Device" (standby VGA device 8b) whose function is unknown. Even if a fault has occurred in the "Other Device", the routing controller 4 does not report thefault to the CPU 2, similarly to the operation for hiding the fault in the active devices. Thus, a secondary fault does not lead to the system-down.

As described above, according to the FT computer system 1 of the present invention, the dual control for the two VGA devices 8 in the active system and the standby system is attained. At the time of the occurrence of a fault, the switchingprocess using the hardware is carried out, thereby to allow the usual process to be continued. Here, the dual control is carried out in a manner hidden from the OS, and the error of the VGA device 8 and the like are perfectly hidden from the OS.

Specifically, in case of accessing the "PCI Configuration Register" of the VGA device 8, the class code is replaced, and in case of accessing the PCI bridge 6, the "VGA Enable bit" is hidden, and at the time of the occurrence of the fault, theaddress is replaced. In short, the situation where the standard VGA device on the active side continues to be always used is produced for the OS in a pseudo manner. The number of the VGA devices 8 visible from the OS is always one (only the standardVGA device). Thus, the dual control for the VGA device 8 is possible without any special modification to the OS. Also, the dual control is possible even if the typical open-system device is employed as the I/O devices 8 and 9 and the PCI bridge 6. That is, even in the server including the existing OS, I/O device and I/O device driver which are produced without any intention of the FT computer system, the duplication of the I/O devices and the fail-over can be attained. Thus, the fault toleranceand reliability of the open-system server is improved.

It should be noted that in the embodiments, the VGA device 8 is indicated as the example of the I/O device. However, the present invention is effective for the devices other than the VGA device 8. In short, the similar switching function andhiding function are applied to the devices other than the VGA device. Thus, the open-system devices can be dually controlled by using the hardware.

According to the present invention, the FT computer system where the open-system hardware and software are used as the base is attained. In particular, according to the FT computer system of the present invention, it is possible to carry out thedual control of the I/O device (hardware) without modifying the existing OS or I/O device driver. Thus, the fault tolerance and reliability of the open server is improved.

* * * * *
 
 
  Recently Added Patents
Data processing circuit with arbitration between a plurality of queues
Memory component and memory device
Range extension techniques for a wireless local area network
Non-volatile flash-RAM memory with magnetic memory
Sperm factor sequences
Systems and methods for cryopreservation of cells
Selecting modulation and coding scheme in the presence of interference
  Randomly Featured Patents
Method and composition for treating hypopigmentation of the hair and skin
Method of reducing the surface roughness of a semiconductor wafer
Electrical connector for flat cables
MP3 video player with camera
Polymeric optical device having low polarization dependence and method of fabricating the same
Lightweight member for reinforcing, sealing or baffling
Digital signal demodulator
High zoom ratio zoom lens system
Apparatus for regulating the warp section tension during warping
DVD-RAM disc discriminative reproducing device