The present invention is directed generally toward solid state drive controllers and more particularly toward solid state storage device controllers adapted for expandability.
Storage systems today are in transition to integrate large amounts of NAND flash memory to enable much higher storage system performance (IOPs, Bandwidth and/or lower-latency) than was previously done with traditional storage systems built on hard disk drives (HDDs). One key design factor in efficiently integrating flash in a storage system is to be able to allocate a significant amount of the system power budget to the flash memory subsystem. It is well-known that the performance that can be obtained in a storage system with flash is directly related to the number of active flash die which in turn is related to the amount of power consumed by the flash memory subsystem. More active die means higher system performance but greater power consumed. The basic makeup of today's flash solutions consist of three parts: the flash memory subsystem; the flash storage processor (or flash controller) and usually some DRAM based buffer memory; each of these components is scaled (in power and size) to meet the needs of different flash solutions, but in all cases, it is important to keep the power allocated to the flash storage processor and DRAM buffer as low as possible, reserving as much as possible for the flash memory itself.
Another problem is that it is important to be able to easily scale the solution from storage systems with small amounts of flash to systems with large amounts of flash and to do this without having to re-design the flash storage processor for each new design point. In order to design a scalable flash-based storage system without redesigning the Flash Storage Processor for each design point, one can either add external switches to aggregate multiple Flash Storage Processors or design the Flash Storage Processor itself to be scalable. To scale the solution one must scale both the interconnect between the host and the flash storage processor, and the number of flash channels to the flash storage array.
One method is to implement a single, monolithic device which has all the necessary interconnect to the host and channels to the flash array to support all possible solutions across various performance and capacity design points. The problem with this approach is that it is optimized for the highest performance and largest system, but suboptimal for all other configurations. It is also very difficult to economically create a board layout that can accommodate the very large number of signals attached to that device, which can quickly become more than 1000 signals. Flash-Based storage systems that need less flash would carry the burden (power, cost, area) of interconnect needed to support systems with larger flash-based storage systems.
Another method is to implement a two-tier approach where the top tier is an aggregator type device or switch which includes a host facing interface and multiple target facing ports which interconnect to a 2nd-tier of flash storage processors which in turn connect directly to flash memories. The number of target facing ports is directly related to the number of flash storage processors you may want to support across different performance and capacity points. In this architecture, the number of target facing ports must be known in advance. If the intent is to mix solid state storage devices such as NAND flash, MRAM, PCM, ReRAM, NVRAM or other solid state drives (SSDs), and Hard Disk Drive (HDDs) to build large scale hybrid storage solutions, then enough target facing ports are required for all flash storage processors and all hard disks in the system. One skilled in the art may appreciate that “solid state storage device” and “SSD” may refer to any solid state memory technology.
Consequently, it would be advantageous if an apparatus existed that embeds a scalable element into the design of the Flash Storage Processor such that additional performance and capacity can be easily gained by simply adding additional Scalable Flash Storage Processors. In this way additional interconnect and flash channels are only added when needed. The scalable element can be any of a switch, expander or multiplexor/demultiplexor.
Accordingly, the present invention is directed to a novel method and apparatus for expanding available SSD memory in a computer system by embedding a small switch or expander into a Flash Storage Processor device and interconnecting them in such a way as to achieve a more economical way of scaling flash-based storage.
A SAS-based Flash storage target (hereafter termed “Scalable SAS Target”) with two SAS interfaces whereby one SAS port is used to attach to a device which aggregates SAS traffic from many HDD or SSD storage targets up to a host and another SAS interface which is used to connect additional SAS SSD or HDD targets in essence, scaling additional SAS ports for connection with each new “Scalable SAS Target” connected. Each SAS interface or SAS port may comprise a one or more signal lanes. Ports comprising two or more signal lanes are commonly referred to as “wideport” interfaces. Wideports can be split into connections to aggregate single port target devices such as HDDs. The advantage with this configuration is that the SAS Flash Storage Processor does not need to be designed with sufficient interconnect to scale across all possible design points; the ports scale as one adds additional “Scalable SAS Targets”. The other essential advantage is that the power associated with the interconnect scales in the same manner. It should be noted that although this scheme scales ports and interconnect power, the scheme does not scale bandwidth. Bandwidth to the host is shared when aggregating additional downstream traffic thru the connection of additional SAS SSD or HDD targets.
The “Scalable SAS Target” achieves this attribute by embedding a small 4-port SAS switch, with 2 of the SAS ports connecting externally as described earlier. This embodiment has no modes in operation. SAS commands destined for the SSD are executed directly, and SAS commands targeted to any subsequent downstream devices are routed externally to the downstream port.
It should be noted that the two SAS ports can be used in a Dual Port SAS mode where both SAS ports connect to a host device and no ports are used to interconnect downstream devices. In this case, the dual SAS ports are used to provide redundancy as is typical for current dual-port SAS target devices. Adding the downstream port does not cost any additional device pins as compared to current Dual Port SAS Flash Storage Processors.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles.
The numerous objects and advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which:
Reference will now be made in detail to the subject matter disclosed, which is illustrated in the accompanying drawings. The scope of the invention is limited only by the claims; numerous alternatives, modifications and equivalents are encompassed. For the purpose of clarity, technical material that is known in the technical fields related to the embodiments has not been described in detail to avoid unnecessarily obscuring the description.
Referring to
While the SSD controller 100 is shown implemented through various SAS components, a person skilled in the art may appreciate that other technologies may also be used. For example, the SSD controller 100 may be implemented with devices using Serial Advanced Technology Attachment (SATA) or Peripheral Component Interconnect Express (PCIe).
Referring to
Referring to
A controller 302 connected to a SSD controller 300 through a single SAS interface as in
Referring to
One skilled in the art may appreciate that while three SSD controllers 500, 502, 504 are shown, three SSD controllers 500, 502, 504 is not a limitation. The advantages of the present invention in this embodiment may be realized with fewer than three SSD controllers 500, 502, 504, or with more than three SSD controllers 500, 502, 504.
Referring to
One skilled in the art may appreciate that while three SSD controllers 600, 602, 604 are shown, three SSD controllers 600, 602, 604 is not a limitation. The advantages of the present invention in this embodiment may be realized with fewer than three SSD controllers 600, 602, 604, or with more than three SSD controllers 600, 602,604.
Each of the SSD controllers 600, 602, 604 may be connected a HDD 610, 612, 614. The first SSD controller 600 may be connected to a first HDD 610 through a second SAS interface, the second SSD controller 602 may be connected to a second HDD 612 through a second SAS interface and the third SSD controller 604 may be connected to a third HDD 614 through a second SAS interface.
Referring to
Each of the SSD controllers 700, 702, 704 may be connected the expander 716 through each of their respective second SAS interfaces. Each HDD 710, 712, 714 may also be connected to the expander 716. A person skilled in the art may appreciate that while three HDDs 710, 712, 714 as shown, the present invention is not limited to three HDDs 710, 712, 714.
One skilled in the art may further appreciate that while three SSD controllers 700, 702, 704 are shown, three SSD controllers 700, 702, 704 is not a limitation. The advantages of the present invention in this embodiment may be realized with fewer than three SSD controllers 700, 702, 704, or with more than three SSD controllers 700, 702,704.
Referring to
Each of the SSD controllers 800, 802, 804 may be connected to an expander 816, 818, 820 through each of their respective second SAS interfaces. One or more HDDs 810, 812, 814 may also be connected to one of the expanders 816, 818, 820. A person skilled in the art may appreciate that while three HDDs 810, 812, 814 as shown, the present invention is not limited to three HDDs 810, 812, 814. Furthermore, each expander 816, 818, 820 may be connected to more than one HDD 810, 812, 814.
One skilled in the art may further appreciate that while three SSD controllers 800, 802, 804 are shown, three SSD controllers 800, 802, 804 is not a limitation. The advantages of the present invention in this embodiment may be realized with fewer than three SSD controllers 800, 802, 804, or with more than three SSD controllers 800, 802,804. Furthermore, while each SSD controller 800, 802, 804 is shown connected to a unique expander 816, 818, 820, more than one SSD controller 800, 802, 804 may be connected to any one expander 816, 818, 820.
Referring to
One skilled in the art may appreciate that while three SSD controllers 900, 902, 904 are shown, three SSD controllers 900, 902, 904 is not a limitation. The advantages of the present invention in this embodiment may be realized with fewer than three SSD controllers 900, 902, 904, or with more than three SSD controllers 900, 902,904.
It may be appreciated by those skilled in the art while the embodiments described herein refer to SAS-based Flash Storage Processors, the “Scaleable Flash Storage Processor” could just as easily be PCIe-based or any other of a number of switchable interconnects.
It is believed that the present invention and many of its attendant advantages will be understood by the foregoing description, and it will be apparent that various changes may be made in the form, construction, and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form herein before described being merely an explanatory embodiment thereof, it is the intention of the following claims to encompass and include such changes.