Interleaved channels in a solid-state drive

Information

  • Patent Grant
  • 9529710
  • Patent Number
    9,529,710
  • Date Filed
    Wednesday, February 19, 2014
    10 years ago
  • Date Issued
    Tuesday, December 27, 2016
    8 years ago
Abstract
A solid state drive (SSD) includes: non-volatile semiconductor memory (NVSM); a first plurality of flash controllers, each flash controller having a processor; and a second plurality of channels, each consecutive channel assigned to a different flash controller.
Description
BACKGROUND

Technical Field


Apparatuses and methods consistent with the present inventive concept relate generally to data storage devices and in particular to interleaving channels in a solid state data storage device.


Related Art


A data storage system may include various volatile and non-volatile storage devices such as a hard disk drive (HDD), an optical storage drive, and a solid state drive (SSD). An SSD provides increased throughput capability due to its parallel architecture incorporating a plurality of solid-state memory devices (e.g., NAND flash memory devices) and data striping across the plurality of memory devices. FIG. 1 illustrates a representative solid state memory device.


Referring to FIG. 1, a solid-state memory device 100 includes a plurality of blocks 110 with each block including a plurality of pages 120. The blocks in the solid-state memory device 100 may be divided into planes of even-numbered blocks 130 and odd-numbered blocks 140. In an example embodiment, there are 2,048 blocks per memory device with 16 memory devices configured in each of 16 channels, one channel providing access to an active memory device of the 16 memory devices in that channel.


In an SSD, a flash memory controller controls read and write operations to and from the plurality of memory devices. Since an SSD may contain 256 or more solid state memory devices, the resulting load on the flash memory controller can negatively impact data throughput.





BRIEF DESCRIPTION OF THE DRAWINGS

Aspects and features of the present inventive concept will be more apparent by describing example embodiments with reference to the accompanying drawings, in which:



FIG. 1 is an illustration of a representative solid state memory device according to an example embodiment of the present inventive concept;



FIG. 2 is a block diagram illustrating an SSD according to an example embodiment of the present inventive concept;



FIG. 3 is a block diagram illustrating a plurality of flash controller quads in an SSD controller according to an example embodiment of the present inventive concept;



FIG. 4 is a block diagram illustrating an SSD having eight memory channels and two flash controller quads according to an example embodiment of the present inventive concept; and



FIG. 5 is a flowchart illustrating a method according to an example embodiment of the present inventive concept.





DETAILED DESCRIPTION

While certain embodiments are described, these embodiments are presented by way of example only, and are not intended to limit the scope of protection. The methods and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions, and changes in the form of the example methods and systems described herein may be made without departing from the scope of protection.


Overview


Some embodiments of the present inventive concept involve interleaving channels in an SSD, with sub-groups of channels controlled by separate flash controllers to provide load balancing in the usage of the solid-state non-volatile memory device channels.



FIG. 2 is a block diagram illustrating an SSD according to an example embodiment of the present inventive concept. Referring to FIG. 2, in one implementation an SSD 200 may include a plurality of solid-state memory devices 100, for example, 256 memory devices arranged in 16 memory channels of 16 memory devices in each channel, and an SSD controller 210. The solid-state memory devices 100 may be, for example but not limited to, flash memory devices or other non-volatile solid-state memory (NVSM) devices. Throughout this disclosure, the solid-state memory devices may be referred to interchangeably as solid-state memory devices, flash memory devices, and NVSM devices, all of which will be understood to mean the memory devices of the present inventive concept. The SSD controller 210 may include control logic 220, a plurality of flash controller quads 230 (Quad0-Quad3), and an interface 250.


Data and commands to and from the SSD 200 may be communicated through the interface 250. The control logic may include a processor (e.g., a central processing unit (CPU)), and overall operation of the SSD 200 may be controlled by the control logic 220.


Groups of the solid-state memory devices 100 may be connected in memory channels 240 through which read and write operations to and from individual solid-state memory devices 100 are performed. In terms of a matrix of memory devices, each column of memory devices may constitute a memory channel. Alternatively, each row of memory devices may constitute a memory channel. Each of the plurality of flash controller quads 230 may include its own CPU and controls data reads and writes to a plurality of memory channels 240.


Interleaving Channels in an SSD



FIG. 3 is a block diagram illustrating a plurality of flash controller quads in an SSD controller according to an example embodiment of the present inventive concept. In the example embodiment illustrated in FIG. 3, each flash controller quad 230a-230d contains a CPU and controls data reads and writes to four memory channels 240. One of ordinary skill in the art will appreciate that the number of memory channels controlled by a flash controller quad may be more or less than four without departing from the scope of the present inventive concept. It should also be noted that the use of the term “controller quad” is for illustrative purposes only in these example 4-channel embodiments and that other embodiments may use flash controller processors/control units that control any number of memory channels.


The memory channel numbers controlled by each flash controller quad 230a-230d for an SSD having 4, 8, or 16 flash channels are described in Table 1 below. As illustrated in FIG. 3 and shown in Table 1, the memory channels are interleaved in order to distribute flash read/write activity across the plurality of flash controller quads 230a-230d (Quad0-Quad3).













TABLE 1







Memory
Flash
Memory Channel



Channels
Quads
Numbers in Flash Quads









16
4
Quad0 has Channels 0, 4, 8, and 12





Quad1 has Channels 1, 5, 9, and 13





Quad2 has Channels 2, 6, 10, and 14





Quad3 has Channels 3, 7, 11, and 15



 8
2
Quad0 has Channels 0, 2, 4, and 6





Quad1 has Channels 1, 3, 5, and 7



 4
1
Quad0 has Channels 0, 1, 2, and 3










Since each sequential flash channel is controlled by a different flash controller quad, for example, memory channel 0 is controlled by quad0, memory channel 1 is controlled by quad1, etc., and since the channels are accessed in an order consistent with the channel numbers assigned, the workload for the CPU in each flash controller quad is naturally distributed.


Also, because the host processor is generally reading from the memory devices in the same order as it is writing to the memory devices, naturally distributing writes in this manner will also help with the distribution of reads. The embodiments of the present inventive concept provide parallelism which reduces resource congestion.



FIG. 4 is a block diagram illustrating an SSD having eight memory channels and two flash controller quads according to an example embodiment of the present inventive concept. As illustrated in FIG. 4, a memory array 400, for example, but not limited to, a NVSM, includes a plurality of solid-state memory devices 100. The plurality of solid-state memory devices 100 may be arranged logically and/or physically in a matrix having rows and columns. Portions of the memory array 400 may be assigned to memory channels. In the example embodiment illustrated in FIG. 4, each column 410a-410h of sequentially connected memory devices 100 corresponds to a memory channel controlled by one of the flash controller quads 420a, 420b.


Referring to Table 1, for an SSD configuration having eight memory channels and two flash controller quads, quad0 controls memory channels 0, 2, 4, and 6, while quad1 controls memory channels 1, 3, 5, and 7. Referring again to FIG. 4, each consecutive channel 0-7 is assigned to a different flash controller: flash controller quad 420a controls memory channels 0, 2, 4, and 6, and flash controller quad 420b controls memory channels 1, 3, 5, and 7. Since data is written to the channels sequentially, i.e., first to channel 0, then to channel 1, then to channel 2, etc., over time the programming load is distributed over the plurality of flash controllers.



FIG. 5 is a flowchart illustrating a method according to an example embodiment of the present inventive concept.


Referring to FIG. 5, as described in Table 1 and illustrated in FIG. 4 eight consecutive memory channels are assigned to different flash controllers (510). Logical segments of data (logical pages, or L-pages of data) are accumulated, regardless of order, up to the size of a physical segment of data (a flash-page, or F-page of data) (520). An L-page is a logical segment of data equivalent to 4 kilobytes (KB) of data. One of ordinary skill in the art will appreciate that L-pages having more or less than 4 KB of data are possible without departing from the scope of the present inventive concept. An F-page is a physical segment of data equivalent to 16 kilobytes (KB) of data. One of ordinary skill in the art will appreciate that F-pages having more or less than 16 KB of data are possible without departing from the scope of the present inventive concept.


The SSD control logic assigns a physical address to the physical segment of data corresponding to a memory device in a portion of the NVSM assigned to a next consecutive channel (530). The accumulated data is programmed to the memory device by the flash controller assigned to the next consecutive channel in logical order (540). Thus, accumulated data is programmed to a memory device assigned to a first channel, then to a memory device assigned to a second channel, and so forth, such that the programming load is distributed over the plurality of flash controllers over time.


The example embodiments disclosed herein can be applied to solid state drives, hybrid hard drives, and the like. Solid-state memory may comprise a wide variety of technologies, such as flash integrated circuits, Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory, NOR memory, EEPROM, Ferroelectric Memory (FeRAM), MRAM, or other discrete NVM (non-volatile solid-state memory) chips. In addition, other forms of storage, for example, but not limited to, DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc., may additionally or alternatively be used. As another example, various components illustrated in the figures may be implemented as software and/or firmware on a processor, ASIC/FPGA, or dedicated hardware. Also, the features and attributes of the specific example embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure.


While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the protection. The methods and systems described herein may be embodied in a variety of other forms. Various omissions, substitutions, and/or changes in the form of the example methods and systems described herein may be made without departing from the spirit of the protection.


Other embodiments that are apparent to those of ordinary skill in the art, including embodiments which do not provide all of the features and advantages set forth herein, are also within the scope of this disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.

Claims
  • 1. A solid state drive (SSD), comprising: non-volatile semiconductor memory (NVSM) comprising a plurality of solid state memory devices;an SSD controller comprising a plurality of flash controllers; anda plurality of channels, wherein a number of the plurality of channels is greater than a number of the plurality of flash controllers, wherein each of the plurality of channels is coupled to at least one of the plurality of solid state memory devices, wherein each of the plurality of channels is assigned a unique channel number, andwherein every pair of channels assigned to two consecutive channel numbers are assigned to a different one of the plurality of flash controllers to interleave the channels, andwherein the SSD controller is configured to: accumulate logical segments of data up to a size of a physical segment of data, andsequentially program consecutive physical segments of data to channels assigned to two consecutive channel numbers to distribute a programming load over the plurality of flash controllers.
  • 2. The SSD of claim 1, wherein a pair of channels assigned to two consecutive channel numbers are assigned to consecutive flash controllers.
  • 3. The SSD of claim 1, wherein the SSD is further configured to accumulate the logical segments of data and assign a physical address to the physical segment of data, the physical address corresponding to a memory device in a portion of the NVSM assigned to a channel with a next channel number.
  • 4. The SSD of claim 3, wherein the physical segment of data is programmed to the memory device by the flash controller assigned to the channel with the next channel number.
  • 5. The SSD of claim 1, wherein the NVSM comprises a plurality of solid state memory devices arranged in a matrix having a plurality of rows and columns.
  • 6. The SSD of claim 5, wherein one of the plurality of columns comprises a channel.
  • 7. The SSD of claim 5, wherein one of the plurality of rows comprises a channel.
  • 8. A method for operating a solid state drive (SSD) comprising non-volatile semiconductor memory (NVSM) having a plurality of solid state memory devices, an SSD controller comprising a plurality of flash controllers, and a plurality of channels, wherein a number of the plurality of channels is greater than a number of the plurality of flash controllers, wherein each of the plurality of channels is coupled to at least one of the plurality of solid state memory devices, wherein each of the plurality of channels is assigned a unique channel number, the method comprising: assigning every pair of channels assigned to two consecutive channel numbers to a different one of the plurality of flash controllers to interleave the channels,accumulating logical segments of data up to a size of a physical segment of data, andsequentially programming consecutive physical segments of data to channels assigned to two consecutive channel numbers to distribute a programming load over the plurality of flash controllers.
  • 9. The method of claim 8, further comprising assigning a physical address to the physical segment of data, the physical address corresponding to a memory device in the NVSM assigned to a channel with a next channel number.
  • 10. The method of claim 8, wherein the programming the physical segment of data comprises programming the physical segment of data by the flash controller assigned to the channel with the next channel number.
  • 11. The method of claim 8, wherein the NVSM comprises a plurality of solid state memory devices arranged in a matrix having a plurality of rows and columns.
  • 12. The method of claim 11, wherein one of the plurality of columns comprises a channel.
  • 13. The method of claim 11, wherein one of the plurality of rows comprises a channel.
  • 14. A data storage system, comprising: a data storage controller; anda solid state drive (SSD), comprising: non-volatile semiconductor memory (NVSM) comprising a plurality of solid state memory devices;a plurality of flash controllers; anda plurality of channels, wherein a number of the plurality of channels is greater than a number of the plurality of flash controllers, wherein each of the plurality of channels is coupled to at least one of the plurality of solid state memory devices, and wherein each of the plurality of channels is assigned a unique channel number, wherein every pair of channels assigned to two consecutive channel numbers are assigned to a different one of the plurality of flash controllers to interleave the channels, andwherein the plurality of flash controllers is configured to program consecutive physical segments of data to one of the plurality of solid state memory devices via channels assigned to two consecutive channel numbers to distribute a programming load over the plurality of flash controllers.
  • 15. The data storage system of claim 14, wherein: the data storage controller is configured to accumulate logical segments of data up to a size of a physical segment of data,the data storage controller is configured to assign each physical segment of data a physical address, the physical address corresponding to one of the plurality of solid state memory devices assigned to a channel with a next channel number, andthe flash controller, to which the channel with the next channel number is assigned, is configured to program the physical segment of data to the physical address in the one of the plurality of solid state memory devices assigned to the channel with the next channel number.
  • 16. The data storage system of claim 14, wherein the plurality of solid state memory devices are arranged in a matrix having a plurality of rows and columns.
  • 17. The data storage system of claim 16, wherein one of the plurality of columns comprises a channel.
  • 18. The data storage system of claim 16, wherein one of the plurality of rows comprises a channel.
  • 19. The data storage system of claim 14, wherein the data storage controller comprises the plurality of flash controllers.
CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of U.S. provisional application No. 61/913,217, filed Dec. 6, 2013, the disclosure of which is hereby incorporated in its entirety by reference.

US Referenced Citations (116)
Number Name Date Kind
6856556 Hajeck Feb 2005 B1
7126857 Hajeck Oct 2006 B2
7430136 Merry, Jr. et al. Sep 2008 B2
7447807 Merry et al. Nov 2008 B1
7502256 Merry, Jr. et al. Mar 2009 B2
7509441 Merry et al. Mar 2009 B1
7596643 Merry, Jr. et al. Sep 2009 B2
7653778 Merry, Jr. et al. Jan 2010 B2
7685337 Merry, Jr. et al. Mar 2010 B2
7685338 Merry, Jr. et al. Mar 2010 B2
7685374 Diggs et al. Mar 2010 B2
7733712 Walston et al. Jun 2010 B1
7765373 Merry et al. Jul 2010 B1
7898855 Merry, Jr. et al. Mar 2011 B2
7912991 Merry et al. Mar 2011 B1
7936603 Merry, Jr. et al. May 2011 B2
7962792 Diggs et al. Jun 2011 B2
8037234 Yu et al. Oct 2011 B2
8078918 Diggs et al. Dec 2011 B2
8090899 Syu Jan 2012 B1
8095851 Diggs et al. Jan 2012 B2
8108692 Merry et al. Jan 2012 B1
8122185 Merry, Jr. et al. Feb 2012 B2
8127048 Merry et al. Feb 2012 B1
8135903 Kan Mar 2012 B1
8151020 Merry, Jr. et al. Apr 2012 B2
8161227 Diggs et al. Apr 2012 B1
8166245 Diggs et al. Apr 2012 B2
8176238 Yu et al. May 2012 B2
8243525 Kan Aug 2012 B1
8254172 Kan Aug 2012 B1
8261012 Kan Sep 2012 B2
8266367 Yu et al. Sep 2012 B2
8285919 Luo et al. Oct 2012 B2
8296625 Diggs et al. Oct 2012 B2
8312207 Merry, Jr. et al. Nov 2012 B2
8316176 Phan et al. Nov 2012 B1
8341332 Ma et al. Dec 2012 B2
8341339 Boyle et al. Dec 2012 B1
8355279 Yoon et al. Jan 2013 B2
8375151 Kan Feb 2013 B1
8392635 Booth et al. Mar 2013 B2
8397107 Syu et al. Mar 2013 B1
8407449 Colon et al. Mar 2013 B1
8423722 Deforest et al. Apr 2013 B1
8433844 Lin Apr 2013 B2
8433858 Diggs et al. Apr 2013 B1
8443167 Fallone et al. May 2013 B1
8447920 Syu May 2013 B1
8448018 Jeddeloh May 2013 B2
8458435 Rainey, III et al. Jun 2013 B1
8478930 Syu Jul 2013 B1
8489854 Colon et al. Jul 2013 B1
8495324 Kirvan et al. Jul 2013 B2
8495471 Antonakopoulos et al. Jul 2013 B2
8503237 Horn Aug 2013 B1
8521972 Boyle et al. Aug 2013 B1
8549236 Diggs et al. Oct 2013 B2
8583835 Kan Nov 2013 B1
8601311 Horn Dec 2013 B2
8601313 Horn Dec 2013 B1
8612669 Syu et al. Dec 2013 B1
8612804 Kang et al. Dec 2013 B1
8615681 Horn Dec 2013 B2
8638602 Horn Jan 2014 B1
8639872 Boyle et al. Jan 2014 B1
8683113 Abasto et al. Mar 2014 B2
8700834 Horn et al. Apr 2014 B2
8700950 Syu Apr 2014 B1
8700951 Call et al. Apr 2014 B1
8706985 Boyle et al. Apr 2014 B1
8707104 Jean Apr 2014 B1
8713066 Lo et al. Apr 2014 B1
8713357 Jean et al. Apr 2014 B1
8719531 Strange et al. May 2014 B2
8724422 Agness et al. May 2014 B1
8725931 Kang May 2014 B1
8745277 Kan Jun 2014 B2
8751728 Syu et al. Jun 2014 B1
8769190 Syu et al. Jul 2014 B1
8769232 Suryabudi et al. Jul 2014 B2
8775720 Meyer et al. Jul 2014 B1
8782327 Kang et al. Jul 2014 B1
8788778 Boyle Jul 2014 B1
8788779 Horn Jul 2014 B1
8788880 Gosla et al. Jul 2014 B1
8793429 Call et al. Jul 2014 B1
20080126682 Zhao et al. May 2008 A1
20090204872 Yu et al. Aug 2009 A1
20090240873 Yu et al. Sep 2009 A1
20100174849 Walston et al. Jul 2010 A1
20100250793 Syu Sep 2010 A1
20100262762 Borchers et al. Oct 2010 A1
20110072195 Lin Mar 2011 A1
20110099323 Syu Apr 2011 A1
20110213921 Yu et al. Sep 2011 A1
20110283049 Kang et al. Nov 2011 A1
20120239976 Cometti et al. Sep 2012 A1
20120260020 Suryabudi et al. Oct 2012 A1
20120278531 Horn Nov 2012 A1
20120284460 Guda Nov 2012 A1
20120324191 Strange et al. Dec 2012 A1
20130132638 Horn et al. May 2013 A1
20130132643 Huang May 2013 A1
20130135816 Huang May 2013 A1
20130145106 Kan Jun 2013 A1
20130290793 Booth et al. Oct 2013 A1
20140059405 Syu et al. Feb 2014 A1
20140101369 Tomlin et al. Apr 2014 A1
20140115427 Lu Apr 2014 A1
20140133220 Danilak et al. May 2014 A1
20140136753 Tomlin et al. May 2014 A1
20140149826 Lu et al. May 2014 A1
20140157078 Danilak et al. Jun 2014 A1
20140181432 Horn Jun 2014 A1
20140223255 Lu et al. Aug 2014 A1
Provisional Applications (1)
Number Date Country
61913217 Dec 2013 US