The present invention relates to storage systems, and more particularly to storage systems including bridge device topologies.
Often, memory systems use a bridge chip topology for translating commands associated with one protocol to another protocol associated with a drive being utilized. Typical bridge device topologies include a bridge coupled to a drive. In these cases, the single bridge typically supports multiple output devices on multiple ports.
If the drive is much faster than the bridge, then the performance of the drive is limited by the bridge and a single drive unit will not see the performance of the drive. Rather, the unit will see the performance of the bridge. There is thus a need for addressing these and/or other issues associated with the prior art.
A system, method, and computer program product are provided for interfacing one or more storage devices with a plurality of bridge chips. One or more storage devices are provided. Additionally, a plurality of bridge chips are provided. Furthermore, at least one multiplexing device is provided for interfacing the one or more storage devices with the plurality of bridge chips.
In the context of the present description, a storage device refers to any device capable of storing data. For example, in various embodiments, the storage device 102 may include, but is not limited to, a Serial ATA (SATA) drive, a Serial Attached SCSI (SAS) drive, a Fibre Channel (FC) drive, or a Universal Serial Bus (USB) drive, and/or any other storage device.
Additionally, the system 100 includes a plurality of bridge chips 104. In the context of the present description, a bridge chip refers to any device capable of performing a protocol translation. For example, in various embodiments, the bridge chips 104 may include an SAS/SATA bridge (e.g. an SAS to SATA bridge, etc.), a USB/SATA bridge (e.g. a USB to SATA bridge, etc.), an FC/SATA bridge (e.g. an FC to SATA bridge, etc.), PCI/PCIe to SAS/SATA bridge, or any device capable of performing a protocol translation.
Furthermore, at least one multiplexing device 106 is provided for interfacing the one or more storage devices 102 with the plurality of bridge chips 104. In the context of the present description, a multiplexing device refers to any device capable of performing multiplexing. For example, in various embodiments, the multiplexing device may include a multiplexer, a bridge chip, a bridge, or any other device (e.g. hardware and/or software, etc.) capable of performing multiplexing.
In various embodiments, the interfacing may include a direct connection or an indirect connection. In either case, the multiplexing device 106 may provide an interface such that the storage devices 102 may communicate with the plurality of bridge chips 104. In this way, multiple bridge chips may be utilized in a storage system. Thus, the resources associated with a bridge chip may be solely dedicated to a particular device (e.g. a port, translation function, etc.). Of course, the resources of the bridge chip may be allocated in any manner desired.
More illustrative information will now be set forth regarding various optional architectures and features with which the foregoing framework may or may not be implemented, per the desires of the user. It should be strongly noted that the following information is set forth for illustrative purposes and should not be construed as limiting in any manner. Any of the following features may be optionally incorporated with or without the exclusion of other features described.
As shown, the system 200 includes a storage device 202. In this case, the storage device 202 includes a SATA drive. Additionally, the system 200 includes a plurality of bridge chips 204.
In various embodiments, the bridge chips may include an SAS/SATA bridge (e.g. an SAS to SATA bridge, etc.), a USB/SATA bridge (e.g. a USB to SATA bridge, etc.), an FC/SATA bridge (e.g. an FC to SATA bridge, etc.), or any device capable of performing a protocol translation. In this case, the bridge chips 204 include an SAS/SATA bridge.
Furthermore, at least one multiplexer 206 is provided for interfacing the storage device 202 with the bridge chips 204. In this case, the multiplexer 206 includes a SATA multiplexer. Additionally, the multiplexer 206 may include a plurality of ports.
For example, the multiplexer 206 may include a plurality of input ports. The input ports may be connected to the storage device 202. Additionally, the multiplexer 206 may include a plurality of output ports. The output ports may be connected to the plurality of bridge chips 204. In this case, a number of the output ports may be divided equally and allocated to each of the bridge chips 204.
In one embodiment, the multiplexer 206 may be configured such that each of the plurality of ports are active at the same time. Furthermore, one of the plurality of bridge chips 204 may be connected to a group of the plurality of ports.
As shown in
As an option, the communication link 208 may be configured to be utilized for error recovery. As another option, the communication link 208 may be configured to be utilized for vender unique communication. As shown further in
In this way, storage systems using storage devices (e.g. SATA drives, etc.) that are much faster than an attached bridge will not be limited by the bridge. This may be accomplished by using multiple bridges connected to a multiplexing device.
As shown in
As noted, there may also be a communication path between the bridge chip for error recovery and other vendor unique communication. This may greatly improve the bridge performance for a single port since all the bridge resources may be used to drive one port and not two ports. It should be noted that the performance may then be based on multiple bridge chips and not one bridge chip. This allows each bridge chip to focus resources on a particular bridge function.
In one embodiment, the SATA multiplexer may be implemented using a number of tags from a first port and a number of tags on a second port. The tags on a third port may then be dedicated to the storage device. For example, the multiplexer may be implemented using tags 0-15 from port A and 0-15 on the port B, and then queuing tags 0-31 on port C to the SATA drive.
As shown, a SATA drive 302 is in communication with multiple bridge chips 304. In this case, a SATA multiplexer 306 interfaces the SATA drive 302 and the bridge chips 304. Further, multiple communication links 308 are provided.
The communication links 308 may include any type of communication path capable of being used to communicate between bridge chips. In various embodiments, the communication links 308 may be utilized for error recovery, vendor unique communication, and/or any other type of communication between bridge chips.
The bridge chips 304 are capable of using all of the resources for a single SAS port. As shown, each of the bridge chips 304 are dedicated to one SAS port 310. This may greatly improve the bridge performance for a single port since all the bridge resources may drive only one port.
It should be noted that any number of bridge chips may be utilized with one or more multiplexing devices. In one embodiment, the number of bridge chips used in the system may be equal to the number of SAS ports present. Of course, any number of bridge chips may be utilized.
As shown, a plurality of storage devices 402 are provided. Further, one or more bridge chips 404 dedicated to interfacing with devices coupled to the storage devices 402 (e.g. device ports, etc.) are provided. Additionally, one or more bridge chips 406 may be utilized as a multiplexing device.
Thus, if the resources are maxed out on one of the bridge chips 404, data may be distributed across the bridge chips 406, where at least one of the bridge chips 406 include multiplexer type functionality. In another embodiment, a multiplexer may be utilized, and additionally, functions may be spread across multiple bridges. Accordingly, a bridge chip may be used instead of a multiplexer, or in addition to multiplexer to perform multiplexing functionality.
As shown in
If the resources are maxed out on one of the bridge chips 504, data may be distributed across the multiple bridge chips 506, where at least one of the bridge chips 506 include multiplexer type functionality. As shown in
As shown, a command is sent from one of a plurality of bridge chips. See operation 602. The command may include any command capable of being sent from a bridge chip. For example, in various embodiments, the command may include a read command, a write command, a FORMAT command, and/or any other command.
In one embodiment, the command may be a command that was translated from a first protocol to a second protocol. In this case, the bridge chip may have translated the command. Further, sending the command from the bridge chip may include relaying a command using the bridge chip. This relaying may include translating the command.
The command is then received at one or more storage devices. See operation 604. In this case, the command is communicated utilizing one or more multiplexing devices interfacing the one or more storage devices with the plurality of bridge chips.
Thus, in one embodiment, the command may be received by one of the bridges in a first format associated with a first protocol. The bridge may then translate the command to a second format associated with a second protocol.
The bridge may then send the command to the storage device. A multiplexing device may then receive the command sent by the bridge to the storage device and route the command signal to the storage device. In this case, the multiplexing device may be directly coupled to the storage device and the bridge chips (e.g. using a bus, etc.). The multiplexing device may also be indirectly coupled to the storage device and the bridge chips (e.g. through an intermediate device, etc.).
In another embodiment, a command or data may be received by one of the bridges in a first format associated with a first protocol (e.g. a SATA protocol, etc.). In this case, the storage device may have sent the command or data. The bridge may then translate the command or data to a second format associated with a second protocol (e.g. an SAS protocol, etc.).
The bridge may then send the command to another device coupled to, or in communication with, the bridge. A multiplexing device may then receive the command or data sent by the storage device to the bridge and route the command signal to the appropriate bridge.
The system 700 also includes a graphics processor 706 and a display 708, i.e. a computer monitor. In one embodiment, the graphics processor 706 may include a plurality of shader modules, a rasterization module, etc. Each of the foregoing modules may even be situated on a single semiconductor platform to form a graphics processing unit (GPU).
In the present description, a single semiconductor platform may refer to a sole unitary semiconductor-based integrated circuit or chip. It should be noted that the term single semiconductor platform may also refer to multi-chip modules with increased connectivity which simulate on-chip operation, and make substantial improvements over utilizing a conventional central processing unit (CPU) and bus implementation. Of course, the various modules may also be situated separately or in various combinations of semiconductor platforms per the desires of the user.
The system 700 may also include a secondary storage 710. The secondary storage 710 includes, for example, a hard disk drive and/or a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, etc. The removable storage drive reads from and/or writes to a removable storage unit in a well known manner.
Computer programs, or computer control logic algorithms, may be stored in the main memory 704 and/or the secondary storage 710. Such computer programs, when executed, enable the system 700 to perform various functions. Memory 704, storage 710 and/or any other storage are possible examples of computer-readable media.
In one embodiment, the architecture and/or functionality of the various previous figures may be implemented in the context of the host processor 701, graphics processor 706, an integrated circuit (not shown) that is capable of at least a portion of the capabilities of both the host processor 701 and the graphics processor 706, a chipset (i.e. a group of integrated circuits designed to work and sold as a unit for performing related functions, etc.), and/or any other integrated circuit for that matter.
Still yet, the architecture and/or functionality of the various previous figures may be implemented in the context of a general computer system, a circuit board system, a game console system dedicated for entertainment purposes, an application-specific system, and/or any other desired system. For example, the system 700 may take the form of a desktop computer, lap-top computer, and/or any other type of logic. Still yet, the system 700 may take the form of various other devices including, but not limited to, a personal digital assistant (PDA) device, a mobile phone device, a television, etc.
Further, while not shown, the system 700 may be coupled to a network [e.g. a telecommunications network, local area network (LAN), wireless network, wide area network (WAN) such as the Internet, peer-to-peer network, cable network, etc.] for communication purposes.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
5386552 | Garney | Jan 1995 | A |
5485595 | Assar et al. | Jan 1996 | A |
5519831 | Holzhammer | May 1996 | A |
5544356 | Robinson et al. | Aug 1996 | A |
5568423 | Jou et al. | Oct 1996 | A |
5568626 | Takizawa | Oct 1996 | A |
5621687 | Doller | Apr 1997 | A |
5675816 | Hiyoshi et al. | Oct 1997 | A |
5819307 | Iwamoto et al. | Oct 1998 | A |
5835935 | Estakhri et al. | Nov 1998 | A |
5881229 | Singh et al. | Mar 1999 | A |
5937434 | Hasbun et al. | Aug 1999 | A |
5956473 | Ma et al. | Sep 1999 | A |
5963970 | Davis | Oct 1999 | A |
6000006 | Bruce et al. | Dec 1999 | A |
6154808 | Nagase et al. | Nov 2000 | A |
6173360 | Beardsley et al. | Jan 2001 | B1 |
6230233 | Lofgren et al. | May 2001 | B1 |
6405295 | Bando | Jun 2002 | B1 |
6446183 | Challenger et al. | Sep 2002 | B1 |
6539453 | Guterman | Mar 2003 | B1 |
6694402 | Muller | Feb 2004 | B1 |
6732221 | Ban | May 2004 | B2 |
6831865 | Chang et al. | Dec 2004 | B2 |
6914853 | Coulson | Jul 2005 | B2 |
6925523 | Engel et al. | Aug 2005 | B2 |
6948026 | Keays | Sep 2005 | B2 |
6973531 | Chang et al. | Dec 2005 | B1 |
6985992 | Chang et al. | Jan 2006 | B1 |
7000063 | Friedman et al. | Feb 2006 | B2 |
7032087 | Chang et al. | Apr 2006 | B1 |
7035967 | Chang et al. | Apr 2006 | B2 |
7076605 | Son | Jul 2006 | B1 |
7096313 | Chang et al. | Aug 2006 | B1 |
7103732 | Chang et al. | Sep 2006 | B1 |
7120729 | Gonzalez et al. | Oct 2006 | B2 |
7395384 | Sinclair et al. | Jul 2008 | B2 |
7552306 | Madhavarao et al. | Jun 2009 | B2 |
7681008 | Tomlin et al. | Mar 2010 | B2 |
7689762 | Hobson | Mar 2010 | B2 |
20040081179 | Gregorcyk, Jr. | Apr 2004 | A1 |
20050102323 | Henderson et al. | May 2005 | A1 |
20060004935 | Seto et al. | Jan 2006 | A1 |
20060020744 | Sinclair et al. | Jan 2006 | A1 |
20060020745 | Conley et al. | Jan 2006 | A1 |
20060265549 | Chapel et al. | Nov 2006 | A1 |
20070005815 | Boyd et al. | Jan 2007 | A1 |
20070030734 | Sinclair et al. | Feb 2007 | A1 |
20070136521 | Voorhees et al. | Jun 2007 | A1 |
20070234117 | Elliott et al. | Oct 2007 | A1 |
20080082741 | Biessener et al. | Apr 2008 | A1 |
20080082773 | Tomlin et al. | Apr 2008 | A1 |
20080082774 | Tomlin et al. | Apr 2008 | A1 |
20080091898 | Takahashi et al. | Apr 2008 | A1 |
20080151405 | Kurtas et al. | Jun 2008 | A1 |
20080155145 | Stenfort | Jun 2008 | A1 |
20080155163 | Stenfort | Jun 2008 | A1 |
20080155562 | Stenfort | Jun 2008 | A1 |
20080162811 | Steinmetz | Jul 2008 | A1 |
20080215926 | Stenfort | Sep 2008 | A1 |
20080229045 | Qi | Sep 2008 | A1 |
20080276035 | Hobson | Nov 2008 | A1 |
20080307155 | Sinclair | Dec 2008 | A1 |
20090006787 | De Souza et al. | Jan 2009 | A1 |
20090077315 | Ogasawara | Mar 2009 | A1 |
20090164698 | Ji et al. | Jun 2009 | A1 |
20090259882 | Shellhamer | Oct 2009 | A1 |
20090313411 | Stenfort | Dec 2009 | A1 |
20090313443 | Stenfort | Dec 2009 | A1 |
20090313527 | Stenfort | Dec 2009 | A1 |
20100058021 | Kawamura | Mar 2010 | A1 |
20100250829 | Stenfort | Sep 2010 | A1 |
20100250830 | Stenfort | Sep 2010 | A1 |
20110004722 | Jeddeloh | Jan 2011 | A1 |
Number | Date | Country |
---|---|---|
WO2010111694 | Sep 2010 | WO |
WO2010111694 | Sep 2010 | WO |
WO2011003050 | Jan 2011 | WO |
WO2011003050 | Jan 2011 | WO |
Entry |
---|
Oct. 3, 2011 List of Art Rejections, 1 page. |
“The Encyclopedia of Networking”, Werner Feibel, Network Press, 2nd Edition, 1995; 3 sheets (Title, copyright and p. 873). |
“Illustrated Dictionary of Computing”, Jonar C Nader, Prentice Hall, 2nd Edition,1995; 3 sheets (including inter alia Title, copyright pages and pp. 510-511). |
“max out”, In Merriam-Webster Online Dictionary, as captured by the Internet Archive on Apr. 24, 2009, as retrieved Jun. 14, 2014 from the Internet Archive at web.archive.org/web/20090422104955/http://www.merriamwebster.com/dictionary/max out, 1 sheet. |
Number | Date | Country | |
---|---|---|---|
20110004710 A1 | Jan 2011 | US |