Patent US6704812B2 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6704812B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Transparent and dynamic management of redundant physical paths to peripheral devices

Assignee: International Business Machines Corp
•
Filing: 2000-11-30
•
Granted: 2004-03-09
•
Expires: 2020-11-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A redundancy manager preferably in an I/O adapter has been disclosed to manage commands to peripheral devices in a computer system. These peripheral devices have multiple ports and may have a different bus associated with each port. The buses, referred to as independent pathways, moreover, need not have the same protocol. The redundancy manager determines the number of independent pathways connected to the peripheral device, presents only one logical device to the operating system and any device driver and any other command or device processing logic in the command path before the redundancy manager. For each incoming command, the redundancy manager determines which pathways are properly functioning and selects the best pathway for the command based on load balancing considerations and any ordering semantics that must be preserved in the incoming command and any outstanding commands and associated data that have not yet executed. The redundancy manager further reroutes the command to an alternate path and resets the device for the alternate path if the selected path failed. Thus, a dynamic mechanism and method to manage multiple pathways to I/O devices such as storage disks do not require the intervention of either the operating system of the computer or any device driver associated with the device or the interconnecting bus.

Inventors

  • 👤 Brian Eric Bakke
  • 👤 Scott Alan Bauman
  • 👤 Frederic Lawrence Huss
  • 👤 Andrew J Kulich
  • 👤 Laurel Scaife
  • 👤 Timothy Jerry Schimke

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 16:33
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/38; G06F13/382; G06F13/385

Claims Analysis

Total Claims: 39
Claim 1
Independent Claim 136 words
In a computer system, a method of managing command and data flow to peripheral devices, comprising the steps of: (a) determining the number of a plurality of independent physical paths to at least one peripheral device connected to the computer system; (b) resolving all of the plurality of independent physical paths to the at least one peripheral device into one logical path; (c) presenting the one logical path to any components of the computer system that originates or preprocesses a command destined for the at least one peripheral device; (d) receiving the command destined for the at least one peripheral device from the originating and/or preprocessing components; and (e) for each received command, selecting one of the plurality of independent physical paths on which to route the received command to the at least one peripheral device.
Claim 2
Dependent Claim 136 words
In a computer system, a method of managing command and data flow to peripheral devices, comprising the steps of: (a) determining the number of a plurality of independent physical paths to at least one peripheral device connected to the computer system; (b) resolving all of the plurality of independent physical paths to the at least one peripheral device into one logical path; (c) presenting the one logical path to any components of the computer system that originates or preprocesses a command destined for the at least one peripheral device; (d) receiving the command destined for the at least one peripheral device from the originating and/or preprocessing components; and (e) for each received command, selecting one of the plurality of independent physical paths on which to route the received command to the at least one peripheral device.
Claim 3
Dependent Claim 53 words
The method of claim 1 wherein said step of determining the number of a plurality of independent physical paths to the at least one peripheral device connected to the computer system further comprises reading all the identification codes uniquely associated with at least one peripheral device on the plurality of independent physical paths.
Claim 4
Dependent Claim 27 words
The method of claim 2 wherein said unique identification code associated with at least one peripheral device is a world wide identification code and/or vital product data.
Claim 5
Dependent Claim 78 words
The method of claim 2 wherein said step of resolving all of the plurality of independent physical paths to the at least one peripheral device into one logical path further comprises determining if there is a duplicative identification code on any of the plurality of independent physical paths thereby indicating that the at least one peripheral device has a plurality of independent physical paths connected to it, and if so, correlating the connected plurality of independent physical paths.
Claim 6
Dependent Claim 17 words
The method of claim 1 , further comprising: (a) preserving protocol requirements of the selected physical path.
Claim 7
Dependent Claim 48 words
The method of claim 1 , wherein said step of selecting one of the plurality of independent physical paths on which to route the command to the at least one peripheral device further comprises determining the number of functional physical paths to the at least one peripheral device.
Claim 8
Dependent Claim 38 words
The method of claim 6 , further comprising: (a) determining the number of outstanding commands to the at least one peripheral device; and (b) determining if any outstanding command and/or the received command has any required execution attributes.
Claim 9
Dependent Claim 30 words
The method of claim 7 , further comprising honoring any required execution attributes of the received command and/or of any outstanding commands destined for the at least one peripheral device.
Claim 10
Dependent Claim 112 words
The method of claim 8 , wherein the step of honoring any required execution attributes of the received command and/or of any outstanding commands intended for the at least one peripheral device further comprises: (a) if there are outstanding commands, determining if any outstanding command have any required execution attributes; determining if the received command has any required execution attribute; determining if there are any outstanding commands to the at least one peripheral device on more than one independent physical path; (b) if so, waiting until only one independent physical path has any outstanding commands for the peripheral device and selecting the physical path with the outstanding commands for the received command.
Claim 11
Dependent Claim 20 words
The method of claim 6 further comprising reallocating a received command load to the peripheral device on the independent paths.
Claim 12
Dependent Claim 57 words
The method of claim 10 , wherein said step of balancing a command load to the peripheral device on the independent paths further comprises: (a) for each independent physical path, summing the product of a plurality of load balancing factors and the weight given each factor; and (b) selecting the independent physical path having the lowest sum.
Claim 13
Dependent Claim 28 words
The method of claim 11 , wherein one of the plurality of load balancing factors comprises the number of outstanding commands to the at least one peripheral device.
Claim 14
Dependent Claim 28 words
The method of claim 11 , wherein one of the plurality of load balancing factors comprises the number of outstanding commands on a physical path to all devices.
Claim 15
Dependent Claim 36 words
The method of claim 11 , wherein one of the plurality of load balancing factors comprises the amount of data associated with an outstanding command on a physical path to the at least one peripheral device.
Claim 16
Dependent Claim 32 words
The method of claim 11 , wherein one of the plurality of load balancing factors comprises the expected latency of outstanding commands on a physical path to the at least one device.
Claim 17
Dependent Claim 29 words
The method of claim 11 , wherein one of the plurality of load balancing factors comprises the expected latency of outstanding commands on a physical path to all devices.
Claim 18
Dependent Claim 28 words
The method of claim 11 , wherein one of the plurality of load balancing factors comprises the latency of a physical path to the at least one device.
Claim 19
Dependent Claim 79 words
The method of claim 1 , wherein said step of determining the number of a plurality of independent physical paths to the at least one peripheral device further comprises: (a) detecting that at least one of the plurality of independent physical paths to the at least one peripheral device has failed; (b) rerouting the received command to a functional physical path; (c) ensuring the at least one peripheral device is in a state ready to accept the rerouted command.
Claim 20
Dependent Claim 19 words
The method of claim 18 , further comprising repairing the failed physical path concurrently with rerouting the received command.
Claim 21
Dependent Claim 15 words
The method of claim 18 , further comprising using the failed path after its repair.
Claim 22
Dependent Claim 132 words
A computer system for transferring commands to a peripheral device, comprising: (a) a central processing unit to execute an operating system and at least one device driver application program applicable to at least one peripheral device; (b) a main memory connected to the central processing unit with a memory bus; (c) at least one peripheral device attached to the central processing unit and the main memory; (d) a plurality of independent physical paths connecting the central processing unit and main memory with the at least one peripheral device; (e) a redundancy manager connected between the at least one peripheral device and the host system bus to dynamically manage each command to the at least one peripheral device without intervention of the operating system and/or the at least one device driver application program.
Claim 23
Dependent Claim 132 words
A computer system for transferring commands to a peripheral device, comprising: (a) a central processing unit to execute an operating system and at least one device driver application program applicable to at least one peripheral device; (b) a main memory connected to the central processing unit with a memory bus; (c) at least one peripheral device attached to the central processing unit and the main memory; (d) a plurality of independent physical paths connecting the central processing unit and main memory with the at least one peripheral device; (e) a redundancy manager connected between the at least one peripheral device and the host system bus to dynamically manage each command to the at least one peripheral device without intervention of the operating system and/or the at least one device driver application program.
Claim 24
Dependent Claim 19 words
The computer system of claim 21 , wherein the plurality of independent pathways do not have the same protocol.
Claim 25
Dependent Claim 15 words
The computer system of claim 21 , wherein the redundancy manager comprises an input/output adapter.
Claim 26
Dependent Claim 34 words
The computer system of claim 21 , wherein the redundancy manager manages commands on the plurality of independent physical paths independent of command processing and independent of the protocols of the independent physical paths.
Claim 27
Dependent Claim 35 words
The computer system of claim 24 , wherein the redundancy manager further comprises a path determiner which dynamically chooses for each command the independent path for the command to the at least one peripheral device.
Claim 28
Dependent Claim 47 words
The computer system of claim 24 , wherein the redundancy manager further comprises a path resolver that resolves all the independent physical paths to the at least one peripheral device into one logical path presented to the operating system, the device driver application program, the command processing.
Claim 29
Dependent Claim 26 words
The computer system of claim 24 , wherein the redundancy manager further comprises a load balancer that balances the command load across the independent physical paths.
Claim 30
Dependent Claim 28 words
The computer system of claim 24 , wherein the redundancy manager further comprises a ordering maintainer which preserves ordering semantics of the protocols of the independent physical paths.
Claim 31
Dependent Claim 35 words
The computer system of claim 24 , wherein the redundancy manager further comprises a rerouter which reroutes commands/data from a failed independent physical path to a functional independent physical path connected to the peripheral device.
Claim 32
Dependent Claim 37 words
The computer system of claim 29 , wherein the redundancy manager further comprises a path repair detector that detects when the failed independent physical is once again functional and begins to manage commands on the recovered path.
Claim 33
Dependent Claim 224 words
An I/O adapter connected between a central processing unit having an operating system and a plurality of device driver applications and a plurality of external peripheral devices of which at least one of the external peripheral devices has a multiported connection to independent physical paths connected to the I/O adapter, the I/O adapter having a redundancy manager comprising: (a) means to detect the number of independent physical paths to the at least one external peripheral device; (b) means to resolve more than one independent physical path to the same at least one external peripheral device into one logical pathway; (c) means to present the one logical pathway to the central processing unit and to any command/data processing prior to the redundancy manager; (d) means to receive a command/data intended for the at least one peripheral device; (e) means to dynamically determine the optimum independent physical path for the received command/data to the at least one peripheral device; (f) means to preserve the protocols and ordering semantics of the independent physical paths to the at least one peripheral device; (g) means to detect if an independent physical path has failed; (h) means to reroute a command from the failed independent physical path; (i) means to detect that the failed independent physical path has recovered; and (j) means to automatically use the recovered independent physical path.
Claim 34
Dependent Claim 224 words
An I/O adapter connected between a central processing unit having an operating system and a plurality of device driver applications and a plurality of external peripheral devices of which at least one of the external peripheral devices has a multiported connection to independent physical paths connected to the I/O adapter, the I/O adapter having a redundancy manager comprising: (a) means to detect the number of independent physical paths to the at least one external peripheral device; (b) means to resolve more than one independent physical path to the same at least one external peripheral device into one logical pathway; (c) means to present the one logical pathway to the central processing unit and to any command/data processing prior to the redundancy manager; (d) means to receive a command/data intended for the at least one peripheral device; (e) means to dynamically determine the optimum independent physical path for the received command/data to the at least one peripheral device; (f) means to preserve the protocols and ordering semantics of the independent physical paths to the at least one peripheral device; (g) means to detect if an independent physical path has failed; (h) means to reroute a command from the failed independent physical path; (i) means to detect that the failed independent physical path has recovered; and (j) means to automatically use the recovered independent physical path.
Claim 35
Dependent Claim 140 words
A program product for use in a computer network for managing multiple independent physical pathways connected to a peripheral device, said computer program product comprising a signal-bearing medium carrying thereon a redundancy manager comprising: (a) a detector of all multiple independent paths connected to the peripheral device; (b) a resolver to project to the computer network one logical pathway to the peripheral device; (c) a path calculator which determines an optimum pathway of the multiple independent physical paths for transit of incoming commands/data to the peripheral device; (d) a deferral agent to defer ordering semantics of the incoming and any outstanding commands/data intended for the peripheral device to a protocol of the multiple independent paths; and (e) a selector operable for each incoming command/data to determine an appropriate path considering the results of the path calculator and the deferral agent.
Claim 36
Dependent Claim 140 words
A program product for use in a computer network for managing multiple independent physical pathways connected to a peripheral device, said computer program product comprising a signal-bearing medium carrying thereon a redundancy manager comprising: (a) a detector of all multiple independent paths connected to the peripheral device; (b) a resolver to project to the computer network one logical pathway to the peripheral device; (c) a path calculator which determines an optimum pathway of the multiple independent physical paths for transit of incoming commands/data to the peripheral device; (d) a deferral agent to defer ordering semantics of the incoming and any outstanding commands/data intended for the peripheral device to a protocol of the multiple independent paths; and (e) a selector operable for each incoming command/data to determine an appropriate path considering the results of the path calculator and the deferral agent.
Claim 37
Dependent Claim 38 words
The program product of claim 32 , wherein the detector notifies the selector that one or more of the multiple independent paths have failed and the selector reroutes the incoming command/data to another of the multiple independent paths.
Claim 38
Dependent Claim 31 words
The program product of claim 33 , further comprising a state resetter to reset all the multiple independent paths other than the failed path(s)into a state to accept the incoming command/data.
Claim 39
Dependent Claim 29 words
The program product of claim 34 , further comprising a recovery notifier to begin using the failed one of the multiple independent paths when the failure has been corrected.

References Cited (Backward Citations)

US5845091A Cited
US5922077A Cited
US5878237A Cited
US6032194A Cited
US6434637B1 Cited
US6526521B1 Cited
US6560683B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2007-03-09 2007-09-08 2008-03-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2011-03-09 2011-09-08 2012-03-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2015-03-09 2015-09-08 2016-03-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag