This disclosure relates to a controller architecture for controlling multiple storage devices.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the inventors hereof, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted to be prior art against the present disclosure.
A data storage device such as a disk drive, as well as a solid-state drive, communicates with a host system through a storage controller. In many cases, a large number of drives present themselves to the host as a single drive system. Such a collection of drives typically includes a large number of controllers, giving rise to inefficiencies.
Data storage apparatus in accordance with implementations of this disclosure includes a plurality of drive units, each of the drive units including a plurality of memory channels, and a plurality of storage medium controllers. Each storage medium controller addresses at least one of the memory channels. Each of the storage medium controllers is incapable of performing file system operations. An integrated storage controller connected to each of the drive units performs all file system operations of the data storage apparatus.
An integrated storage controller, in accordance with implementations of this disclosure, controls a plurality of drive units, where each drive unit includes a plurality of memory channels, and a plurality of storage medium controllers, each storage medium controller addresses at least one of the memory channels, and each of the storage medium controllers is incapable of performing file system operations. The integrated storage controller includes a central processing unit, a host interface, and at least one storage medium interface for communicating with the plurality of storage medium controllers. The integrated storage controller performs all file system operations of the data storage apparatus.
A method according to implementations of this disclosure, for operating data storage apparatus having a plurality of drive units, where each of the drive units includes a plurality of memory channels and a plurality of storage medium controllers, each storage medium controller addressing at least one of the memory channels, and each of the storage medium controllers being incapable of performing file system operations, includes performing all file system operations of the data storage apparatus in an integrated storage controller connected to all of the drive units, and performing, in the integrated storage controller, error correction across all of the memory channels.
Such a method also may include performing, in each storage medium controller, error correction across all of the at least one of the memory channels addressed by that controller.
In addition, in such a method, performing error correction across all of the memory channels may include redundancy, whereby the data storage apparatus is operable in case of failure of one of the memory channels.
Such a method also may include performing, in the integrated storage controller, wear-leveling across all of the memory channels.
Further features of the disclosure, its nature and various advantages, will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
As discussed above, in many cases, a large number of storage devices present themselves to a host system as a single storage device. Such a collection of drives or devices typically includes a large number of controllers, giving rise to inefficiencies. In accordance with implementations of this disclosure, those inefficiencies may be mitigated by simplifying the controller architecture.
An array of storage devices such as disk drives or solid-state drives may be connected to a host system according to various protocols, including, e.g., the Serial-Attached SCSI Small Computer System Interface (also known as Serial-Attached SCSI or simply SAS), or the Peripheral Component Interconnect Express (also known as PCI Express or simply PCIe).
Although only two SSDs 101 are shown, a larger number of SSDs 101 may be connected together by each expander 102. Expander 102 is a fan-out device that connects to storage controller 103. Storage controller 103 interfaces with the host system. In this example of an enterprise storage system, the host system is a network, to which storage controller 103 is connected by a network interface card (NIC) 104.
Typically, storage controller 103 is based on an x86-class central processing unit (CPU), and uses working memory (e.g., DRAM) 113. Storage controller 103 may include a specialized interface card that allows it to connect to, e.g., four expanders 102. Expanders 102 may be cascaded, allowing, e.g., 128 SSDs 101 to be connected to a single storage controller 103 (such arrangements are sometimes referred to as JBOD, for “just a bunch of drives”) if each expander 102 is cascaded with four additional expanders (not shown).
A plurality of SSDs 201 may be connected together by PCIe switches 202, which serve a function similar to that of expanders 102, to connects to storage controller 103. Storage controller 103 interfaces with the host system. In this example of an enterprise storage system, the host system is a network, to which storage controller 103 is connected by a network interface card (NIC) 104.
PCIe-based arrangement 200 may interface more easily with storage controller 103 than SAS-based arrangement 100 because PCIe is more nearly “native” to the CPU of storage controller 103. However, both arrangements introduce inefficiencies. For example, SSD controllers 121, 221 are nearly as complex as storage controller 103, and both storage controller 103 and SSD controllers 121, 221 use working memory 113, 131. And all of the controller components and working memories add to system expense.
The inefficiencies may be more apparent from the software perspective, illustrated in
Finally, the SAS or PCIe controller 121, 221 in each SSD 101, 201 runs firmware (or software) for several processes. First, there is firmware for controlling the reading from and writing to memory channels 111, at least partially duplicating the file system functions of storage controller 103. Second, there is firmware to control wear leveling (a technique to prolong the life of the memory media by assuring that each cell in a Flash memory is written to roughly the same number of times as each other cell). Third, there is firmware for error correction (ECC). Finally, there is input/output firmware to allow communication with expander/switch 102, 202.
The need to run all of the software described above is at least part of the reason for the presence of working memory 131. In addition, protocol translation is needed between the internal protocol of storage controller 103 (e.g., Advanced eXtensible Interface, or AXI) and the PCIe and/or SAS protocols. And expanders 102 or switches 202 are relatively expensive.
The efficiency of a storage device array, and particularly a solid-state drive array, may be improved according to implementations of this disclosure, as shown, e.g., in
According to implementations of this disclosure, the functions of SAS controller 121 or PCIe controller 221, each of which controls multiple memory channels 111, are replaced by storage medium controllers, each of which controls a small number of storage medium channels 111 (e.g., one or two storage medium channels 111). Many of the functions of SSD controllers 121, 221 are moved into a modified storage controller, as discussed below. The modified storage controller also eliminates the need for SAS expanders 102 or PCIe switches 202.
An overall architecture 400 in accordance with implementations of this disclosure is shown in
Each storage medium controller 401 is connected directly to a storage controller 403. Storage medium controllers 401 may be connected to storage controller 403 by low-power, low-latency interfaces (LPLLI) which may be implemented using any desired serial interface, including, but not limited to, industry-standard serial interfaces (e.g., PCIe, LVDS, UFS, etc.). Storage controller 403 performs all of the file system functions of storage architecture 400—i.e., all manipulations associated with determining a particular location on one of memory channels 111 for storage of particular data from the host system. The individual storage medium controllers 401 do not perform any file system operations and control only the physical transfer of data to or from locations determined by storage controller 403. Storage controller 403 also performs wear-leveling functions, RAID-type redundancy functions if used, and error correction functions.
In one exemplary implementation, low-level on-the-fly ECC is performed by storage medium controllers 401, while high-level ECC (e.g., error recovery schemes involving re-reading data from storage media, or ECC schemes spanning all of memory channels 111) is performed by storage controller 403. In another exemplary implementation, all ECC functions are performed by storage controller 403, while the storage medium controllers 401 manage only commands (e.g., read, write, erase, trim, etc.) to the storage media and perform data transfer between the storage media and storage controller 403.
Each low-power, low-level interface 505 is capable of connection to a large number—e.g., 32 or 64—storage medium controllers 401. Therefore, depending on the number of low-power, low-level interfaces 505 that are provided, storage controller 403 can control 64, 96, 128, or more, storage medium controllers 401.
An implementation 600 of a storage medium controller 401 according to this disclosure is shown in
Because it does not perform high-level ECC or redundancy functions, or file system address translations, storage medium controller 401 can be much simpler than SAS or PCIe controller 121, 221, and does not need extra memory such as DRAM 131. In this example, storage medium controller 401 does include low-level hardware ECC 603 as discussed above, as well as data buffer 604 and sequencer 605, which issues commands (e.g., read page, write page, erase block, etc.) to the storage media and keeps track of command status.
The improved efficiency of a storage controller architecture in accordance with this disclosure can be seen in
While network interface card 104 and LPLLI storage controller 403 are shown as separate items, they could be provided together. In such a case, the storage system (not shown) would then include a single combined storage controller/network interface (not shown), along with one more solid-state drive units 701 (which may include a plurality of storage medium controllers 401, each paired with one or two memory media 111).
An implementation 800 of a method of operating such a system is diagrammed in
The operation performed at 804 is optional, although it is to be expected that that operation would be performed in connection with a write operation in any system in accordance with this disclosure.
At 804, redundancy is implemented across all of the memory channels used to carry out a write command. This may be performed as part of the error correction at 803. At 805, wear-leveling is performed across all of the memory channels used to carry out a write command.
At 806, error correction is performed, in each channel controller used to carry out the read or write command, across the memory channel or channels connected to that controller and used to carry out the read or write command, and method 800 ends.
It will be understood that the foregoing is only illustrative of the principles of the invention, and that the invention can be practiced by other than the described embodiments, which are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.
This claims the benefit of copending, commonly-assigned U.S. Provisional Patent Application No. 62/041,909, filed Aug. 26, 2014, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62041909 | Aug 2014 | US |