|Publication number||US6772270 B1|
|Application number||US 09/501,881|
|Publication date||3 Aug 2004|
|Filing date||10 Feb 2000|
|Priority date||10 Feb 2000|
|Also published as||US7032063|
|Publication number||09501881, 501881, US 6772270 B1, US 6772270B1, US-B1-6772270, US6772270 B1, US6772270B1|
|Inventors||Dietmar M. Kurpanek|
|Original Assignee||Vicom Systems, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (15), Referenced by (64), Classifications (13), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Field of the Invention
The present invention relates to computer subsystem communications, and, more particularly, to a method and apparatus for coupling a Fibre Channel controller with more than one host computer system, storage router, or the like.
2. Description of the Related Art
Modern computers often include a number of different subsystems, each performing one or more functions necessary to the computer's operation. For example, computers normally include storage subsystems for storing operating system programs, application programs and data, and the like. As computers' processing capabilities have increased, the need for increasingly sophisticated, scalable and flexible access to these storage subsystems has become an important issue.
This need has led to the development of what is commonly referred to as a ‘Storage Area Network’ (SAN). Within a SAN, host computers provide access to arrays of storage devices that can be either local or remotely located, and can be either centralized in one location or distributed over many. This architectural variability and the complexity of such storage subsystems mandates that the host computers be coupled to devices that can route requests to the storage devices and make their actual configuration transparent to the end-user (i.e. ‘storage routers’). This added layer between the end-user and data stored on the storage devices de-couples the end-user from the SAN's architecture.
Historically, host systems have been connected to storage devices using storage routers that are dedicated to mapping the storage devices' location and configuration and providing transparent access to the end-user. While the host system is generally neither aware of nor dependent upon having such information, such access should be provided in a reliable and immediate fashion. The storage routers ensure such functionality by mapping the architecture of the storage devices, storing this information and subsequently providing for ready access by the host system. To ensure reliability, redundant access is often supported, employing multiple routing devices. Also, in order to make such an arrangement scalable across geographic locations, the routing devices must themselves be interconnected by a more conventional device such as an hub.
The aforementioned configuration is not without problems. Specifically, the necessity of coupling hubs to the storage routers complicates the implementation of a SAN. First, such an architecture impacts the ability of users to flexibly scale the SAN. External hubs are produced with a relatively large number of ports so that architectures employing such hubs can be readily expanded without the need for additional external hubs. For example, external hubs normally provide a minimum of eight ports. If an installation requires fewer ports, or if growth is patterned in such a way that multiples other than eight are desirable, an unavoidable waste of capacity (in terms of ports) results. Second, cost is increased because no matter how small the installation, more than one external hub is required to provide the necessary connectivity. Third, compatibility issues are raised by the introduction of external hubs into the SAN architecture. This is the case any time the products of third-party vendors must be installed in a network's architecture. The installation and subsequent maintenance of such a system is also further complicated, due at least in part to the need to support the products of multiple vendors. Finally, as more devices are employed in the SAN's architecture, the more likely it is that one device will perform poorly relative to the remaining devices and so create a bottleneck in the SAN's throughput.
It is therefore desirable to introduce greater simplicity into the hardware used to communicate between a host system and storage array, while meeting the prerequisites of redundancy and reliability. Preferably, such an architecture also provides improved performance and reduces the SAN's overall cost.
The present invention provides a computer-subsystem configuration that allows Fibre Channel devices, for example a storage router, to coupled to more than one such device or host computer. The present invention can reside, for example, in a storage router (e.g.,a SAN router) as a subsystem of the storage router.
A configuration according to the present invention provides multi-port coupling capability to the storage router containing such a multi-port Fibre Channel controller. This allows the device to be coupled to more than one host and/or other Fibre Channel storage routers. In another configuration, a dual-port Fibre Channel controller is provided. This allows the device to be coupled to more than one host; or to a host and another Fibre Channel storage router; or to two other Fibre Channel storage routers, for example. Among other advantages, this provides the ability to ‘daisy-chain’ Fibre Channel devices (i.e. attach multiple devices in series with one another in an unbroken chain), to construct a ‘loop’ configuration (i.e., attach multiple devices in series with one another, and two of the devices to, for example, a host), or to configure other topologies. Such options provide several benefits, among them redundancy within the device chain.
Notably, embodiments of the present invention allow these configuration options without the use of an external hub device. This is a significant improvement over a single-port configuration. An external hub is required to interconnect current Fibre Channel storage routers. This dependency is problematic for a number of reasons, which include scalability, flexibility, cost, compatibility of devices and the creation of bottlenecks. By removing the need for such devices in a SAN's architecture, the dual-port storage router configuration considerably simplifies and strengthens the host systems' ability to access storage devices in a reliable and efficient manner.
In one embodiment of the present invention, a multi-port Fibre Channel controller is disclosed. Such a multi-port Fibre Channel controller includes a number of Fibre Channel ports, an interface unit coupled to each one of the Fibre Channel ports, a Fibre Channel controller and a processor. The processor is coupled to the Fibre Channel controller, and the Fibre Channel controller is coupled to control the interface unit and coupled to the subsystem interface. Such a multi-port Fibre Channel controller may be configured as a dual-port Fibre Channel controller by, for example, employing only two Fibre Channel ports (i.e., a first Fibre Channel port and a second Fibre Channel port).
In another embodiment of the present invention, a method of operating a multi-port Fibre Channel controller is disclosed. Such a multi-port Fibre Channel controller includes a number of ports, as described above, and may contain other of the features and elements of the multi-port Fibre Channel controller described above. The method begins by determining a state of an interface controller. Next, one of the ports is configured. The interface controller is associated with the port, where the port is one of the number of ports. Next, a determination is made as to whether the interface controller is receiving a Fibre Channel signal that is valid. The interface controller is preferably configured to receive the Fibre Channel signal, for example. The port is then enabled if the Fibre Channel signal is valid. If desirable, the multiport Fibre Channel controller may be made to perform an initialization procedure, such as a loop initialization procedure.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. As will also be apparent to one of skill in the art, the operations disclosed herein may be implemented in a number of ways, and such changes and modifications may be made without departing from this invention and its broader aspects. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
FIG. 1 is a block diagram illustrating generally a multi-port Fibre Channel controller according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating an embodiment of the present invention including couplings to a host system.
FIG. 3 is a block diagram illustrating another embodiment of a multi-port Fibre Channel controller according to the present invention.
FIG. 4 is a block diagram illustrating an example of a switch device used in an embodiment of a multi-port Fibre Channel controller according to the present invention.
FIG. 5 is a block diagram illustrating a SAN employing an embodiment of the present invention and configured in a ‘daisy-chain’ configuration.
FIG. 6 is a block diagram illustrating a SAN employing an embodiment of the present invention and configured in a ‘loop’ configuration.
FIG. 7 is a flowchart illustrating a method according to an embodiment of the present invention.
The use of the same reference symbols in different drawings indicates similar or identical items.
The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention which is defined in the claims following the description.
The present invention provides a computer-subsystem configuration that allows Fibre Channel devices, for example storage routers, to couple with more than one such device or host computer. A multi-port Fibre Channel controller according to the present invention provides multi-port coupling capability to a storage router containing such a Fibre Channel controller. This capability allows a number of architectural possibilities for the Fibre Channel network (more specifically, a Storage Area Network (SAN)) in which such a storage router is employed. Namely, such storage routers can be coupled, for example, to more than one host; or to a host and another Fibre Channel storage router; or to two other storage routers; or in another such configuration. This flexibility allows the devices to be placed in a number of configurations, including ‘daisy-chain’ and ‘loop’ configurations, both of which improve SAN redundancy and scalability. Of at least equal importance, however, embodiments of the present invention provide these options without recourse to the use of an external hub, as is presently required. This is advantageous for a number of reasons, including cost, flexibility, compatibility of devices, scalability, avoidance of bottlenecks and other such reasons.
Exemplary Multi-Port Fibre Channel Controller
FIG. 1 illustrates a Fibre Channel controller according to the present invention. A multi-port Fibre Channel controller 100 is depicted that includes ports 110(1)-(N). It will be noted that the term port and Fibre Channel port are used interchangeably herein. Ports 110(1)-(N) are coupled by an interface unit 120 to a Fibre Channel controller 130, which is in turn coupled to a subsystem interface 140. Subsystem interface 140 couples Fibre Channel controller 130 (and so, multi-port Fibre Channel controller 100) to a subsystem 150. Thus, Fibre Channel controller 130 interconnects the subsystem interface 140 (and so subsystem 150) with interface unit 120 and ports 110(1-N). A processor 160 is coupled to control the various subsystems of multi-port Fibre Channel controller 100, such as one or more of interface unit 120, Fibre Channel controller 130 and subsystem interface 140. Multi-port Fibre Channel controller 100 may be coupled within, for instance, a storage router (not shown) and allow the storage router to communicate with subsystem 150, subsystem 150 being coupled to the storage router via subsystem interface 140.
It will be noted that the variable identifier “N” is used in several instances in FIG. 1 to more simply designate the final element (e.g., ports 110(1)-(N)) of a series of related or similar elements (e.g., ports 110). The repeated use of such variable identifiers is not meant to imply a correlation between the sizes of such series of elements, although such correlation may exist. The use of such variable identifiers does not require that each series of elements has the same number of elements as another series delimited by the same variable identifier. Rather, in each instance of use, the variable identified by “N” may hold the same or a different value than other instances of the same variable identifier.
Moreover, regarding the signals described herein, those skilled in the art will recognize that a signal may be directly transmitted from a first block to a second block, or a signal may be modified (e.g., amplified, attenuated, delayed, latched, buffered, inverted, filtered or otherwise modified) between the blocks. Although the signals of the above described embodiment are characterized as transmitted from one block to the next, other embodiments of the present invention may include modified signals in place of such directly transmitted signals as long as the informational and/or functional aspect of the signal is transmitted between blocks. To some extent, a signal input at a second block may be conceptualized as a second signal derived from a first signal output from a first block due to physical limitations of the circuitry involved (e.g., there will inevitably be some attenuation and delay). Therefore, as used herein, a second signal derived from a first signal includes the first signal or any modifications to the first signal, whether due to circuit limitations or due to passage through other circuit elements which do not change the informational and/or final functional aspect of the first signal.
The foregoing described embodiment wherein the different components are contained within different other components (e.g., subsystem interface contained within multi-port Fibre Channel controller 100). It is to be understood that such depicted architectures are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In an abstract, but still definite sense, any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being “operably connected”, or “operably coupled”, to each other to achieve the desired functionality.
Returning now to FIG. 1, an aspect of interest in embodiments of the present invention is the multiplicity of Fibre Channel ports provided by such a system, depicted in FIG. 1 as ports 110(1) to 100(N) that reside on the Fibre Channel controller device 100. Each of these ports can provide access to its own bi-directional I/O data link (depicted in FIG. 1 as I/Os 190(1)-(N)). For example, port 110(1) provides access to I/O 190(1), which has an incoming data link and an outgoing data link. Similarly, port 110(2) provides access to I/O 190(2), and so on. These I/O data links provide the mechanism by which host requests for access to the resources of the SAN can be received and passed on to the storage devices and communication between storage routers can take place.
The provision of multiple Fibre Channel ports is advantageous for a number of reasons, including scalability, the avoidance of bottlenecks, device compatibility, cost, flexibility, and other such criteria. By including multiple Fibre Channel ports in a multi-port Fibre Channel controller of the present invention, a SAN architecture employing multiple Fibre Channel controllers is simplified and enjoys other economies. Because external hubs are only available in configurations supporting a relatively large number of ports (e.g., 8 or more), SAN architectures in need of either a small number of ports (less than that provided by the external hub used) or a number of ports that is not a multiple of that provided by the external hub will necessarily waste ports. Moreover, the addition of presently-available Fibre Channel controllers may necessitate the addition of external hubs, complicating installation of the additional Fibre Channel controllers. A multi-port Fibre Channel controller of the present invention allows a Fibre Channel network's interconnectivity to scale with the addition of such multi-port Fibre Channel controllers, without wasting resources.
The use of external hubs of different makes may also incur different throughput rates at different points in the network, giving rise to a situation where the SAN's throughput is limited by a single (or small number of) external hub(s), thus creating a bottleneck at the external hub(s) in question. In fact, the use of external hubs of different makes also gives rise to the possibility of compatibility problems, both between the external hubs of different makes, and between one or more of the external hubs and the Fibre Channel controllers, as well as the need to maintain different manufacturers' products. Moreover, a minimal increase in unit cost of the Fibre Channel controller is encountered when employing a multi-port Fibre Channel controller architecture of the present invention, while avoiding the relatively large additional cost of an external hub (as well as the cost of unused ports, as described previously), thus reducing the overall system cost. As is explained subsequently, the ability to switch between the use of one port and two ports also allows a multi-port Fibre Channel controller according to the present invention to be flexibly configured in response to the needs of the SAN being constructed.
FIG. 2 depicts a block diagram illustrating the manner in which an embodiment of the present invention can be coupled with a host system. As in FIG. 1, a multi-port Fibre Channel controller 200 is configured to operate in an environment such as that depicted in FIG. 2. Multi-port Fibre Channel controller 200 includes ports 210(l)-(N). Ports 210(1)-(N) are coupled by an interface unit 220 to a Fibre Channel controller 230, which is in turn coupled to a subsystem interface 240. Subsystem interface 240 couples Fibre Channel controller 230 (and so, multi-port Fibre Channel controller 200) to a subsystem 250. Subsystem 250 may be, for example, a storage subsystem such as a hard disk drive, tape storage unit, CD-RW unit, CD-ROM, ZIP drive, or such other storage unit as may be necessary and appropriate to the given storage application. A processor 260 is coupled to control the various subsystems of multi-port Fibre Channel controller 200, such as one or more of interface unit 220, Fibre Channel controller 230 and subsystem interface 240. As before, multi-port Fibre Channel controller 200 may be coupled within, for instance, a storage router (not shown) and allow the storage router to communicate with subsystem 250, subsystem 250 being coupled to the storage router via subsystem interface 240.
In the SAN architecture depicted in FIG. 2, port 210(1) of multi-port fiber channel controller device 200 is employed to coupled multi-port fiber channel controller device 200 to host system 270 via a Fibre Channel interface 275 installed in host system 270. The other I/O ports (ports 210(2-N)) on Fibre Channel controller 200 can then be coupled to other elements on the Fibre Channel architecture, including, but not necessarily limited to, other host systems and other storage routers. It will be noted that, as is shown in FIG. 2, this functionality is provided without the use of an external hub.
Exemplary Dual-Port Fibre Channel Controller
FIG. 3 is a block diagram illustrating a dual-port Fibre Channel controller according to the present invention. Although the invention allows for the support of multiple Fibre Channel ports coupled to a single Fibre Channel controller, a dual-port Fibre Channel controller is a particularly useful embodiment of a multi-port Fibre Channel controller according to the present invention. Most elements of such a dual-port Fibre Channel controller can be similar to those in a multi-port device such as that depicted in FIG. 1. Thus, as before, a dual-port fiber channel controller device 300 can include two Fibre Channel ports (ports 310(1) and 310(2)), a switch 320, a Fibre Channel controller 330, a subsystem interface 340 (coupled to a subsystem 350) and a processor 360.
Subsystem interface 340 enables dual-port fiber channel controller 300 to communicate with the subsystem coupled to the storage router (e.g., subsystem 350). Fibre Channel controller 330 couples subsystem interface 340 to switch 320, and so to ports 310(1) and 310(2). Each of these ports provides access to a separate I/O link, I/O 390(1) and I/O 390(2), respectively. Such an embodiment of the present invention provides the several advantages previously set forth, as well as advantages specific to a dual-port embodiment of the present invention. For example, the provision of a two ports in a dual-port fiber channel controller such as dual-port fiber channel controller 300 allows for ready support of “daisy-chain,” “loop” and other such topologies.
FIG. 4 depicts an example of switch 320, a switch 410, that can be used to control the operation of the dual ports in FIG. 3 (ports 310(1) and 310(2)). The configuration depicted in FIG. 4 not only illustrates one possible configuration of switch 320, but also illustrates a configuration that has particular utility in regard to the use of commercially-available Fibre Channel cabling, as explained below. In FIG. 4, port 310(1) (also referred to herein as ‘port 1’) and port 310(2) (also referred to herein as ‘port 2’) are coupled to Fibre Channel controller 330 by switch 410. Switch 410 includes two switches (switches 420 and 430). In the configuration shown in FIG. 4, switches 420 and 430 provide three possible states: ‘both ports active’, ‘only port 1 active’ and ‘only port 2 active’. The positions of the two switches (switches 420 and 430) determine these states. In particular, both port 1 and port 2 will be active only if switch 420 is in position 420(B) and switch 430 is in position 430(A). If switch 420 is in position 420(A) and switch 430 is in position 430(A), then only port 1 will be active. Conversely, if switch 430 is in position 430(B), only port 2 will be active, regardless of the position of switch 420.
The above configuration of switch 410, and the connections thus provided between ports 310(1) and 310(2), and Fibre Channel controller 330 provide several advantages in addition to those mentioned previously regarding a multi-port fiber channel controller according to the present invention. The configuration of switch 410 allows ports 310(1) and 310(2) to be used singlely (i.e., the states ‘only port 1 active’ and ‘only port 2 active’) or in combination (i.e., the state ‘both ports active’). This allows dual-port fiber channel controller 300 to be configured to operate in a point-to-point SAN architecture (in which only one of ports 310(1) and 310(2) is active), or to operate in a daisy-chain SAN architecture (or loop or similar SAN architecture; in which both of ports 310(1) and 310(2) are active). This flexibility is provided without the use of an external hub, and allows the same dual-port fiber channel controller to be used to construct either a point-to-point or chained topology by simply setting a switch and connecting the dual-port fiber channel controller accordingly.
As a preliminary matter, a dual-port Fibre Channel controller such as described herein is useful for Fibre Channel Arbitrated Loop (FC-AL) configurations, among other configurations, and may be used to construct arbitrated loops containing any number of storage routers and either one or two other single-ported FC-AL devices, for example, without the need for one or more external hubs. As noted, in the absence of a Fibre Channel controller supporting an embodiment of the present invention, an external (and in this case, FC-AL) hub is required to construct any loop containing more than two ports (e.g., a port on the host and a port on a storage router). Thus, the degenerate case of the FC-AL configuration is a point-to-point configuration.
This ability to configure dual-port fiber channel controller 300 also permits the use of standard, commercially-available Fibre Channel cables in either configuration. Standard Fibre Channel cables actually consist of two fibers, normally associated with an inbound link and an outbound link. In a point-to-point configuration, a single Fibre Channel cable is used to couple a host (e.g., host 270) to a storage router (not shown) by coupling the outbound link of the host's Fibre Channel interface (e.g., Fibre Channel interface 275) to the inbound link of a Fibre Channel port on the storage router (e.g., port 310(1) or port 310(2)), and vice versa.
By configuring switch 410 to allow ports 310(1) and 310(2) to be used in combination, a dual-port fiber channel controller according to the present invention also provides the benefit of allowing standard, commercially-available double-fiber Fibre Channel cables to be used in daisy-chain, loop or similar SAN architectures. In such SAN architectures, unlike a point-to-point architecture, only one of the fibers is normally used in linking Fibre Channel devices. Thus, a Fibre Channel cable must normally be split in such applications, or a single fiber cable used. Splitting of a double-fiber cable incurs the extra time and cost associated with splitting the Fibre Channel cable, and increases the possibility of damaging the optical fibers within. Use of a single-fiber cable (either from a split double-fiber cable or a commercially available single-fiber cable) is an awkward solution because such a solution doubles the number of cables used in a given network, increasing the likelihood of misconnection, misrouting, fiber damage and the like. Alternatively, if double-fiber cables are used (i.e., single-fiber cables are not used), then an external hub must be used, incurring the disadvantages previously discussed.
A dual-port fiber channel controller according to the present invention solves these and other such problems. Such a dual-port fiber channel controller permits the construction of multi-device loops using standard double-fiber Fibre Channel cables without requiring the use of an external hub. The previously identified advantages, with regard to cost, flexibility, compatibility of devices, scalability, avoidance of bottlenecks and other such criteria, of an architecture that does not use external hubs are thus provided. Further, the cabling of a Fibre Channel network employing a dual-port Fibre Channel controller of the present invention is simplified by such a controller's support for double-fiber Fibre Channel cables.
Exemplary Storage Area Network Using Dual-Port Fibre Channel Controllers
FIG. 5 is a block diagram illustrating the ability to daisy-chain multiple storage routers together and couple them to a host system when using a dual-port Fibre Channel controller according to the present invention. FIG. 5 depicts a number of multi-port Fiber Channel controllers 500(1)-(N) coupled to one another in a daisychain configuration 505. Multi-port Fibre Channel controllers 500(1)-(N) are also coupled to subsystems 550(1)-(N), respectively. Multi-port Fibre Channel controller 500(1) is also coupled to a host system 570, specifically to a Fibre Channel interface 575 of host system 570, by a link 590(1). It will be understood by one of skill in the art that any one of multi-port Fiber Channel controllers 500(l)-(N) may be so coupled. Multi-port Fiber Channel controllers 500(1)-(N) are coupled to one another by links 590(2)-(N). For example, multi-port Fibre Channel controller 500(1) is coupled to multi-port Fibre Channel controller 500(2) by link 590(2) between ports 510(1,2) and 510(2,1). Each of multi-port Fiber Channel controllers 500(1)-(N) in the daisy-chain is coupled, in turn, to the next one of multi-port Fiber Channel controllers 500(1)-(N) via a similar port-to-port link (i.e., links 590(2)-(N)).
A computer system such as host 570 can be of any design, in general. Such computer systems may be one of a variety of types, including a mainframe, a minicomputer or a personal computer system, which may include a system unit having a system processor and associated volatile and non-volatile memory, one or more display monitors and keyboards, one or more diskette drives, one or more fixed disk storage devices and one or more printers. These computer systems are information handling systems which are designed to provide computing power to one or more users, either locally or remotely. Such a computer system may also include one or a plurality of I/O devices (i.e. peripheral devices) which are coupled to the system processor and which perform specialized functions. Examples of I/O devices include modems, sound and video devices and specialized communication devices. Mass storage devices such as hard disks, CD-ROM drives and magneto-optical drives may also be provided, either as an integrated or peripheral device. The preceding discussion applies equally to a storage router or other network element to which a multi-port Fibre Channel controller according to an embodiment of the present invention might be attached.
The configuration depicted in FIG. 5 allows multi-port Fibre Channel controllers 500(1)-(N) to communicate and transfer data among and between themselves, as well as with host 570. Such a configuration provides the added redundancy and scalability that is presently only possible with the use of additional external devices, such as an external hub. The SAN architecture depicted in FIG. 5 can be extended to form a ‘loop’ architecture as is shown in FIG. 6.
FIG. 6 is a block diagram illustrating an example in which a Fibre Channel link, such as link 600, is coupled to a port, such as port 510(N,2), of a Fibre Channel controller device preferably at or near the end of a daisy-chain, such as device 500(N), in order to form a loop configuration 610. Link 600 can, for example (and as shown), couple port 510(N,2) (or that of another storage router at or near the other end of the daisy-chain) to Fibre Channel interface 575 of host 570. The advantages of forming such a loop include greater redundancy and fault-tolerance in a SAN employing such dual-port Fibre Channel controllers. Once again, loop configuration 610 can be constructed without recourse to an external hub or single-fiber cabling by using a dual-port Fibre Channel controller according to the present invention.
FIG. 7 depicts a flow diagram illustrating a method according to one embodiment of the present invention. The hardware for each Fibre Channel port includes detectors which report whether a gigabit interface controller (GBIC, which contains a connector, Fibre Channel transceivers and associated hardware, and are exemplary (in part) of ports 1 10(1)-(N) of FIG. 1) is present in the port's socket and functional, and detectors which report whether the GBIC is receiving a valid Fibre Channel signal at the GBIC's receiving port. The controlling software is able to sense and respond to these signals. (Each of these two logical signals is in fact made up of more than one physical hardware signal, allowing the software to choose between different criteria for differentiating the various GBIC states.) The software controls two hardware signals for each port which respectively enable the GBIC's transmitter, and fully enable the port to participate on the Arbitrated Loop. Normally, a port is not enabled without also enabling the port's transmitter. Either port, when its transmitter is enabled but the port is disabled, will transmit what is being emitted from the transmitter of the storage router's Fibre Channel controller IC (i.e. a valid Fibre Channel signal). The port's input is basically discarded, save for checking the input's validity. When one port is enabled, the port's input is presented to the receiver of the Fibre Channel controller. When both ports are enabled, port 1 transmits the Fibre Channel controller's output while port 2 transmits port 1's input. Port 2's input is routed to the receiver of the Fibre Channel controller.
Referring again to FIG. 7, if control software detects that a GBIC is present (step 700) and functional (step 710), then the software enables that GBIC's transmitter (step 720). If the software further detects that the GBIC is receiving a valid Fibre Channel signal (step 730), then the software fully enables that port (step 740). If a valid Fibre Channel signal is not detected (step 730), then the software waits for a valid Fibre Channel signal (step 750) unless the software times out wait for such a signal (step 760). Any time a port is switched from disabled to enabled (or vice versa), the configuration of the loop may have changed. The software requests that the Fibre Channel controller begin a loop initialization procedure (LIP) (step 770). The LIP allows the software (with the assistance of the controller) to detect and recover from any configuration change. The LIP also alerts other devices on the loop that a configuration change may have occurred.
FIG. 7 depicts a flow chart of the operation of a module and method for operating a dual-port Fibre Channel controller according to an embodiment of the invention. It is appreciated that operations discussed herein may consist of directly entered commands by a computer system user or by steps executed by application specific hardware modules, but the preferred embodiment includes steps executed by software modules. The functionality of steps referred to herein may correspond to the functionality of modules or portions of modules.
The operations referred to herein may be modules or portions of modules (e.g., software, firmware or hardware modules). For example, although the described embodiment includes software modules and/or includes manually entered user commands, the various exemplary modules may be application specific hardware modules. The software modules discussed herein may include script, batch or other executable files, or combinations and/or portions of such files. The software modules may include a computer program or subroutines thereof encoded on computer-readable media.
Additionally, those skilled in the art will recognize that the boundaries between modules are merely illustrative and alternative embodiments may merge modules or impose an alternative decomposition of functionality of modules. For example, the modules discussed herein may be decomposed into submodules to be executed as multiple computer processes. Moreover, alternative embodiments may combine multiple instances of a particular module or submodule. Furthermore, those skilled in the art will recognize that the operations described in exemplary embodiment are for illustration only. Operations may be combined or the functionality of the operations may be distributed in additional operations in accordance with the invention.
Alternatively, such actions may be embodied in the structure of circuitry that implements such functionality, such as the micro-code of a complex instruction set computer (CISC), firmware programmed into programmable or erasable/programmable devices, the configuration of a field-programmable gate array (FPGA), the design of a gate array or full-custom application-specific integrated circuit (ASIC), or the like.
Each of the blocks of FIG. 7 may be executed by a module (e.g., a software module) or a portion of a module or a computer system user using, for example, a computer system such as the storage router previously mentioned, or a similar network element, as well as a computer system such as host 570. Thus, the above described method, the operations thereof and modules therefor may be executed on a computer system configured to execute the operations of the method and/or may be executed from computer-readable media. The method may be embodied in a machine-readable and/or computer-readable medium for configuring a computer system to execute the method. Thus, the software modules may be stored within and/or transmitted to a computer system memory to configure the computer system to perform the functions of the module.
Such a computer system normally processes information according to a program (a list of internally stored instructions such as a particular application program and/or an operating system) and produces resultant output information via I/O devices. A computer process typically includes an executing (running) program or portion of a program, current program values and state information, and the resources used by the operating system to manage the execution of the process. A parent process may spawn other, child processes to help perform the overall functionality of the parent process. Because the parent process specifically spawns the child processes to perform a portion of the overall functionality of the parent process, the functions performed by child processes (and grandchild processes, etc.) may sometimes be described as being performed by the parent process.
Such a computer system typically includes multiple computer processes executing “concurrently.” Often, a computer system includes a single processing unit which is capable of supporting many active processes alternately. Although multiple processes may appear to be executing concurrently, at any given point in time only one process is actually executed by the single processing unit. By rapidly changing the process executing, a computer system gives the appearance of concurrent process execution. The ability of a computer system to multiplex the computer system's resources among multiple processes in various stages of execution is called multitasking. Systems with multiple processing units, which by definition can support true concurrent processing, are called multiprocessing systems. Active processes are often referred to as executing concurrently when such processes are executed in a multitasking and/or a multiprocessing environment.
The software modules described herein may be received by such a computer system, for example, from computer readable media. The computer readable media may be permanently, removably or remotely coupled to the computer system. The computer readable media may non-exclusively include, for example, any number of the following: magnetic storage media including disk and tape storage media; optical storage media such as compact disk media (e.g., CD-ROM, CD-R, etc.) and digital video disk storage media; nonvolatile memory storage memory including semiconductor-based memory units such as FLASH memory, EEPROM, EPROM, ROM or application specific integrated circuits; volatile storage media including registers, buffers or caches, main memory, RAM, etc.; and data transmission media including computer network, point-to-point telecommunication, and carrier wave transmission media. In a UNIX-based embodiment, the software modules may be embodied in a file which may be a device, a terminal, a local or remote file, a socket, a network connection, a signal, or other expedient of communication or state change. Other new and various types of computer-readable media may be used to store and/or transmit the software modules discussed herein.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5745701||13 Feb 1995||28 Apr 1998||France Telecom||Security protected system for interconnection of local networks via a public transmission network|
|US5768623||19 Sep 1995||16 Jun 1998||International Business Machines Corporation||System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers|
|US5809328 *||21 Dec 1995||15 Sep 1998||Unisys Corp.||Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channel controller, gigabit link module, microprocessor, and bus control device|
|US5935205||21 Jun 1996||10 Aug 1999||Hitachi, Ltd.||Computer system having a plurality of computers each providing a shared storage access processing mechanism for controlling local/remote access to shared storage devices|
|US5978379||23 Jan 1997||2 Nov 1999||Gadzoox Networks, Inc.||Fiber channel learning bridge, learning half bridge, and protocol|
|US6014383||10 Feb 1997||11 Jan 2000||Compaq Computer Corporation||System and method for controlling multiple initiators in a fibre channel environment|
|US6108694||18 Nov 1998||22 Aug 2000||Hitachi, Ltd.||Memory disk sharing method and its implementing apparatus|
|US6128750||26 Jun 1998||3 Oct 2000||Emc Corporation||Fail-over switching system|
|US6148004 *||11 Feb 1998||14 Nov 2000||Mcdata Corporation||Method and apparatus for establishment of dynamic ESCON connections from fibre channel frames|
|US6148414||3 Mar 1999||14 Nov 2000||Seek Systems, Inc.||Methods and systems for implementing shared disk array management functions|
|US6192027 *||4 Sep 1998||20 Feb 2001||International Business Machines Corporation||Apparatus, system, and method for dual-active fibre channel loop resiliency during controller failure|
|US6202115||17 Apr 1998||13 Mar 2001||Adaptec, Inc.||Fault tolerant redundant bus bridge systems and methods|
|US6219753 *||4 Jun 1999||17 Apr 2001||International Business Machines Corporation||Fiber channel topological structure and method including structure and method for raid devices and controllers|
|US6233702||7 Jun 1995||15 May 2001||Compaq Computer Corporation||Self-checked, lock step processor pairs|
|US6400730 *||8 Feb 2000||4 Jun 2002||Nishan Systems, Inc.||Method and apparatus for transferring data between IP network devices and SCSI and fibre channel devices over an IP network|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US6898670 *||4 Apr 2001||24 May 2005||Storeage Networking Technologies||Storage virtualization in a storage area network|
|US6996607 *||19 Jul 2004||7 Feb 2006||Hitachi, Ltd.||Storage subsystem and method employing load balancing|
|US7032063 *||30 Jul 2004||18 Apr 2006||Vicom Systems, Inc.||Multi-port storage communications controller|
|US7046668||14 Jan 2004||16 May 2006||Pettey Christopher J||Method and apparatus for shared I/O in a load/store fabric|
|US7047346 *||31 Dec 2001||16 May 2006||Storage Technology Corporation||Transparent fiber channel concentrator for point to point technologies|
|US7100002 *||16 Sep 2003||29 Aug 2006||Denali Software, Inc.||Port independent data transaction interface for multi-port devices|
|US7103064||14 Jan 2004||5 Sep 2006||Nextio Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US7136923 *||1 Jul 2004||14 Nov 2006||Hitachi, Ltd.||Method of managing a storage area network|
|US7174413||1 Apr 2006||6 Feb 2007||Nextio Inc.||Switching apparatus and method for providing shared I/O within a load-store fabric|
|US7188209||19 Apr 2004||6 Mar 2007||Nextio, Inc.||Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets|
|US7219183||19 Apr 2004||15 May 2007||Nextio, Inc.||Switching apparatus and method for providing shared I/O within a load-store fabric|
|US7317689 *||10 Feb 2003||8 Jan 2008||Foundry Networks, Inc.||System and method to access and address high-speed interface converter devices|
|US7370147 *||22 Jun 2005||6 May 2008||Hitachi, Ltd.||Disk array device and control method therefor|
|US7406619 *||23 Mar 2005||29 Jul 2008||Adaptec, Inc.||Cache synchronization in a RAID subsystem using serial attached SCSI and/or serial ATA|
|US7457906||14 Jan 2004||25 Nov 2008||Nextio, Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US7493416||27 Jan 2005||17 Feb 2009||Nextio Inc.||Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture|
|US7502370||27 Jan 2005||10 Mar 2009||Nextio Inc.||Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture|
|US7512717||27 Jan 2005||31 Mar 2009||Nextio Inc.||Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture|
|US7617333||27 Jan 2005||10 Nov 2009||Nextio Inc.||Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture|
|US7620064||26 Sep 2005||17 Nov 2009||Nextio Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US7620066||26 Sep 2005||17 Nov 2009||Nextio Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US7664909||9 Jun 2004||16 Feb 2010||Nextio, Inc.||Method and apparatus for a shared I/O serial ATA controller|
|US7698483||25 Oct 2004||13 Apr 2010||Nextio, Inc.||Switching apparatus and method for link initialization in a shared I/O environment|
|US7706372||19 Apr 2006||27 Apr 2010||Nextio Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US7782893||4 May 2006||24 Aug 2010||Nextio Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US7808924 *||24 May 2002||5 Oct 2010||Cisco Technology, Inc.||Apparatus and method for preventing disruption of fibre channel fabrics caused by ReConfigure Fabric (RCF) messages|
|US7821969||17 Mar 2008||26 Oct 2010||Cisco Technology, Inc.||Apparatus and method for preventing disruption of fibre channel fabrics caused by reconfigure fabric (RCF) messages|
|US7836211||16 Mar 2004||16 Nov 2010||Emulex Design And Manufacturing Corporation||Shared input/output load-store architecture|
|US7872979||11 Dec 2007||18 Jan 2011||Foundry Networks, Llc||System and method to access and address high-speed interface converter devices|
|US7895464||2 Jun 2008||22 Feb 2011||Adaptec, Inc.||Cache synchronization in a RAID subsystem using serial attached SCSI and/or serial ATA|
|US7917658||25 May 2008||29 Mar 2011||Emulex Design And Manufacturing Corporation||Switching apparatus and method for link initialization in a shared I/O environment|
|US7953074||31 Jan 2005||31 May 2011||Emulex Design And Manufacturing Corporation||Apparatus and method for port polarity initialization in a shared I/O device|
|US8032659||3 Feb 2005||4 Oct 2011||Nextio Inc.||Method and apparatus for a shared I/O network interface controller|
|US8102843||19 Apr 2004||24 Jan 2012||Emulex Design And Manufacturing Corporation||Switching apparatus and method for providing shared I/O within a load-store fabric|
|US8320401||27 Dec 2010||27 Nov 2012||Foundry Networks, Llc||System and method to access and address high-speed interface converter devices|
|US8346884||30 Jul 2004||1 Jan 2013||Nextio Inc.||Method and apparatus for a shared I/O network interface controller|
|US8913615||9 May 2012||16 Dec 2014||Mellanox Technologies Ltd.||Method and apparatus for a shared I/O network interface controller|
|US9015350||9 May 2012||21 Apr 2015||Mellanox Technologies Ltd.||Method and apparatus for a shared I/O network interface controller|
|US9106487||9 May 2012||11 Aug 2015||Mellanox Technologies Ltd.||Method and apparatus for a shared I/O network interface controller|
|US20040081179 *||23 Oct 2002||29 Apr 2004||Gregorcyk Arthur J.||Method and system for selecting between serial storage buses using data signals of the buses|
|US20040172494 *||14 Jan 2004||2 Sep 2004||Nextio Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US20040179534 *||14 Jan 2004||16 Sep 2004||Nextio Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US20040210678 *||16 Mar 2004||21 Oct 2004||Nextio Inc.||Shared input/output load-store architecture|
|US20040227947 *||14 Jan 2004||18 Nov 2004||Jose Luis Navarro Herrero||On-line method and equipment for detecting, determining the evolution and quantifying a microbial biomass and other substances that absorb light along the spectrum during the development of biotechnological processes|
|US20040260842 *||19 Apr 2004||23 Dec 2004||Nextio Inc.||Switching apparatus and method for providing shared I/O within a load-store fabric|
|US20050004998 *||19 Jul 2004||6 Jan 2005||Hitachi, Ltd.||Storage subsystem|
|US20050025119 *||19 Apr 2004||3 Feb 2005||Nextio Inc.||Switching apparatus and method for providing shared I/O within a load-store fabric|
|US20050060501 *||16 Sep 2003||17 Mar 2005||Denali Software, Inc.||Port independent data transaction interface for multi-port devices|
|US20050102437 *||25 Oct 2004||12 May 2005||Nextio Inc.||Switching apparatus and method for link initialization in a shared I/O environment|
|US20050147117 *||31 Jan 2005||7 Jul 2005||Nextio Inc.||Apparatus and method for port polarity initialization in a shared I/O device|
|US20050157725 *||27 Jan 2005||21 Jul 2005||Nextio Inc.|
|US20050157754 *||27 Jan 2005||21 Jul 2005||Nextio Inc.||Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture|
|US20050165955 *||20 Dec 2004||28 Jul 2005||Duncan Wakelin||Method of using a storage switch and apparatus using and controlling same|
|US20050172041 *||27 Jan 2005||4 Aug 2005||Nextio Inc.|
|US20050172047 *||27 Jan 2005||4 Aug 2005||Nextio Inc.|
|US20050223270 *||23 Mar 2005||6 Oct 2005||Adaptec, Inc.||Cache synchronization in a RAID subsystem using serial attached SCSI and/or serial ATA|
|US20050268152 *||1 Jul 2004||1 Dec 2005||Hitachi, Ltd.||Method of managing a storage area network|
|US20060018341 *||26 Sep 2005||26 Jan 2006||Nextlo Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US20060018342 *||26 Sep 2005||26 Jan 2006||Nextio Inc.||Method and apparatus for shared I/O in a load/store fabric|
|US20060059302 *||9 Nov 2004||16 Mar 2006||Susumu Tsuruta||Disk array subsystem|
|US20060184711 *||1 Apr 2006||17 Aug 2006||Nextio Inc.||Switching apparatus and method for providing shared i/o within a load-store fabric|
|US20060236030 *||22 Jun 2005||19 Oct 2006||Hitachi, Ltd.||Disk array device and control method therefor|
|DE102004062362A1 *||13 Dec 2004||14 Jun 2006||Netchilli Gmbh||Vorrichtung zum Anschließen an eine Datenverarbeitungseinrichtung|
|WO2006063725A1 *||8 Dec 2005||22 Jun 2006||Netchilli Gmbh||Device for linking to a data processing device|
|U.S. Classification||710/316, 710/305, 385/100|
|International Classification||H04L29/06, H04L29/08, H04L12/24|
|Cooperative Classification||H04L67/1097, H04L69/329, H04L41/12, H04L29/06|
|European Classification||H04L41/12, H04L29/08N9S, H04L29/06|
|3 Aug 2000||AS||Assignment|
Owner name: VICOM SYSTEMS, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KURPANEK, DIETMAR M.;REEL/FRAME:011127/0869
Effective date: 20000721
|31 Jan 2008||FPAY||Fee payment|
Year of fee payment: 4
|7 Feb 2012||FPAY||Fee payment|
Year of fee payment: 8
|7 Feb 2012||SULP||Surcharge for late payment|
Year of fee payment: 7