Patents by Inventor Steven T. Sprouse
Steven T. Sprouse has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 10684794Abstract: In a memory system having a storage controller and a plurality of distinct sets of non-volatile memory devices, each respective channel controller of a plurality of channel controllers, each channel controller corresponding to a distinct set of the plurality of distinct sets of non-volatile memory devices, determines a backlog of the respective channel controller in accordance with pending commands in one or more command queues, receives power credits allocated by the storage controller, based at least in part on the backlog of the respective channel controller, and while executing commands in the one or more command queues, limits execution of said commands in accordance with the received power credits. For example, limiting execution includes deferring execution of a respective command in accordance with a determination that executing the respective command would require power credits in excess of power credits available in the respective channel controller.Type: GrantFiled: July 12, 2017Date of Patent: June 16, 2020Assignee: SanDisk Technologies LLCInventors: Reed P. Tidwell, Steven T. Sprouse, Satish B. Vasudeva, James M. Higgins, Jonathan Q. Tu
-
Patent number: 10509591Abstract: In a memory system having a storage controller and a plurality of distinct sets of non-volatile memory devices, each respective channel controller of a plurality of channel controllers, each channel controller corresponding to a distinct set of the plurality of distinct sets of non-volatile memory devices, receives power credits allocated by the storage controller, including an average power credit and a peak power credit; and while executing commands in the one or more command queues, limits execution of said commands in accordance with the received average power credit and the received peak power credit. In some embodiments, a total number of average power credits allocated by the storage controller is variable and a total number of peak power credits allocated by the storage controller is fixed.Type: GrantFiled: July 12, 2017Date of Patent: December 17, 2019Assignee: SANDISK TECHNOLOGIES LLCInventors: Reed P. Tidwell, Steven T. Sprouse, Satish B. Vasudeva, James M. Higgins, Jonathan Q. Tu
-
Patent number: 10218789Abstract: In an illustrative example, a data storage device includes a non-volatile memory and a controller coupled to the non-volatile memory. The controller includes an erasure correcting code engine configured to generate first erasure recovery data and temporary erasure recovery data in a volatile memory at least partially based on first data to be written to the non-volatile memory. The first erasure recovery data is configured to enable a first type of data recovery of the first data, and the temporary erasure recovery data is configured to enable a second type of data recovery of the first data. The controller is further configured to store the first erasure recovery data and the temporary erasure recovery data in the volatile memory and, after verifying that the first data is stored in the non-volatile memory, to discard or modify the temporary erasure recovery data.Type: GrantFiled: October 12, 2017Date of Patent: February 26, 2019Assignee: Western Digital Technologies, Inc.Inventors: Nian Niles Yang, Steven T. Sprouse, Philip David Reusswig, Tienchien Kuo, Xinmiao Zhang
-
Publication number: 20180335978Abstract: In a memory system having a storage controller and a plurality of distinct sets of non-volatile memory devices, each respective channel controller of a plurality of channel controllers, each channel controller corresponding to a distinct set of the plurality of distinct sets of non-volatile memory devices, receives power credits allocated by the storage controller, including an average power credit and a peak power credit; and while executing commands in the one or more command queues, limits execution of said commands in accordance with the received average power credit and the received peak power credit. In some embodiments, a total number of average power credits allocated by the storage controller is variable and a total number of peak power credits allocated by the storage controller is fixed.Type: ApplicationFiled: July 12, 2017Publication date: November 22, 2018Inventors: Reed P. Tidwell, Steven T. Sprouse, Satish B. Vasudeva, James M. Higgins, Jonathan Q. Tu
-
Publication number: 20180335977Abstract: In a memory system having a storage controller and a plurality of distinct sets of non-volatile memory devices, each respective channel controller of a plurality of channel controllers, each channel controller corresponding to a distinct set of the plurality of distinct sets of non-volatile memory devices, determines a backlog of the respective channel controller in accordance with pending commands in one or more command queues, receives power credits allocated by the storage controller, based at least in part on the backlog of the respective channel controller, and while executing commands in the one or more command queues, limits execution of said commands in accordance with the received power credits. For example, limiting execution includes deferring execution of a respective command in accordance with a determination that executing the respective command would require power credits in excess of power credits available in the respective channel controller.Type: ApplicationFiled: July 12, 2017Publication date: November 22, 2018Inventors: Reed P. Tidwell, Steven T. Sprouse, Satish B. Vasudeva, James M. Higgins, Jonathan Q. Tu
-
Patent number: 10127150Abstract: A NAND Flash based content addressable memory (CAM) is used for a key-value addressed storage drive. The device can use a standard transport protocol such as PCI-E, SAS, SATA, eMMC, SCSI, and so on. A host writes a key-value pair to the drive, where the drive writes the keys along bit lines of a CAM NAND portion of the drive and stores the value in the drive. The drive then maintains a table linking the keys to location of the value. In a read process, the host provides a key to drive, which then broadcasts down the word lines of blocks storing the keys. Based on any matching bit lines, the tables can then be used to retrieve and supply the corresponding data to the host.Type: GrantFiled: January 24, 2013Date of Patent: November 13, 2018Assignee: SanDisk Technologies LLCInventors: Steven T. Sprouse, Yan Li
-
Publication number: 20180032395Abstract: In an illustrative example, a data storage device includes a non-volatile memory and a controller coupled to the non-volatile memory. The controller includes an erasure correcting code engine configured to generate first erasure recovery data and temporary erasure recovery data in a volatile memory at least partially based on first data to be written to the non-volatile memory. The first erasure recovery data is configured to enable a first type of data recovery of the first data, and the temporary erasure recovery data is configured to enable a second type of data recovery of the first data. The controller is further configured to store the first erasure recovery data and the temporary erasure recovery data in the volatile memory and, after verifying that the first data is stored in the non-volatile memory, to discard or modify the temporary erasure recovery data.Type: ApplicationFiled: October 12, 2017Publication date: February 1, 2018Inventors: Nian Niles Yang, Steven T. Sprouse, Philip David Reusswig, Tienchien Kuo, Xinmiao Zhang
-
Patent number: 9768808Abstract: The various implementations described herein include systems, methods and/or devices for modifying an error correction format of a respective memory portion of non-volatile memory in a storage device. In one aspect, the method includes, for respective memory portions of the non-volatile memory, obtaining a performance metric of the respective memory portion, and modifying a current error correction format in accordance with the measured performance metric, the current error correction format corresponding to a code rate, codeword structure, and error correction type. Furthermore, data is stored, and errors are detected and corrected, in the respective memory portion in accordance with the modified error correction format. The current and modified error correction formats are distinct, and comprise two of a sequence of predefined error correction formats, wherein a plurality of the sequence of predefined error correction formats have a same number of error correction bits and different numbers of data bits.Type: GrantFiled: October 16, 2015Date of Patent: September 19, 2017Assignee: SanDisk Technologies LLCInventors: Steven T. Sprouse, Aaron K. Olbrich, James Fitzpatrick, Neil R. Darragh
-
Patent number: 9760307Abstract: An array of non-volatile memory cells includes a first plurality of nonvolatile memory cells and a second plurality of non-volatile memory cells. The first plurality of memory cells, which have first diameters of memory holes, are assigned to store portions of data that are not frequently read. The second plurality of memory cells, which have second diameters of memory holes, are assigned to store portions of data that are frequently read. The first diameters are smaller than the second diameters.Type: GrantFiled: September 22, 2015Date of Patent: September 12, 2017Assignee: SanDisk Technologies LLCInventors: Chris Avila, Yingda Dong, Alexander Kwok-Tung Mak, Steven T. Sprouse
-
Publication number: 20160299812Abstract: The various implementations described herein include systems, methods and/or devices for encoding and decoding data for memory portions of non-volatile memory in a storage device. In one aspect, the method includes, for respective memory portions of the non-volatile memory, in accordance with an error correction format of the respective memory portion: encoding data to produce codewords; storing the codewords in the respective memory portion; and decoding the codewords to produce decoded data. Furthermore, each memory portion of the non-volatile memory has a corresponding error correction format corresponding to a code rate, a codeword structure, and an error correction type, and comprising one of a sequence of predefined error correction formats. A plurality of the predefined error correction formats have a same number of error correction bits and different numbers of data bits, where at least two memory portions have distinct error correction formats.Type: ApplicationFiled: October 30, 2015Publication date: October 13, 2016Inventors: Aaron K. Olbrich, Steven T. Sprouse, James Fitzpatrick, Neil R. Darragh
-
Publication number: 20160301427Abstract: The various implementations described herein include systems, methods and/or devices for modifying an error correction format of a respective memory portion of non-volatile memory in a storage device. In one aspect, the method includes, for respective memory portions of the non-volatile memory, obtaining a performance metric of the respective memory portion, and modifying a current error correction format in accordance with the measured performance metric, the current error correction format corresponding to a code rate, codeword structure, and error correction type. Furthermore, data is stored, and errors are detected and corrected, in the respective memory portion in accordance with the modified error correction format. The current and modified error correction formats are distinct, and comprise two of a sequence of predefined error correction formats, wherein a plurality of the sequence of predefined error correction formats have a same number of error correction bits and different numbers of data bits.Type: ApplicationFiled: October 16, 2015Publication date: October 13, 2016Inventors: Steven T. Sprouse, Aaron K. Olbrich, James Fitzpatrick, Neil R. Darragh
-
Publication number: 20160299844Abstract: The various implementations described herein include systems, methods and/or devices method for reading data stored in a non-volatile storage device having a plurality of physical memory portions having a predefined sequence of physical locations in one or more non-volatile memory devices. In one aspect, the method includes, executing a command for reading a requested logical group of data having a specified logical address, including mapping the logical address to physical locations in the storage device. If the physical locations correspond to two physical memory portions at sequential physical locations, a single sequential read operation is used to read data from the two physical memory portions. If the physical locations correspond to two physical memory portions at non-sequential physical locations, two read operations are used to read data from the two non-sequential physical memory portions.Type: ApplicationFiled: October 14, 2015Publication date: October 13, 2016Inventors: Steven T. Sprouse, Aaron K. Olbrich
-
Patent number: 9355713Abstract: In a Multi Level Cell (MLC) memory array block in which lower pages are written first, before any upper pages, the lower page data is subject to an exclusive OR (XOR) operation so that if any lower page becomes uncorrectable by ECC (UECC) then the page can be recovered using XOR. Lower pages in such blocks may be written in nonsequential order.Type: GrantFiled: October 30, 2014Date of Patent: May 31, 2016Assignee: SanDISK Technologies Inc.Inventors: Jianmin Huang, Bo Lei, Jun Wan, Gerrit Jan Hemink, Steven T. Sprouse, Dana Lee
-
Patent number: 9342401Abstract: In a charge-storage memory array, memory cells that are programmed to a particular threshold voltage range and have subsequently lost charge have their threshold voltages restored by selectively adding charge to the memory cells. Adding charge only to memory cells with high threshold voltage ranges may sufficiently increase threshold voltages of other memory cells so that they do not require separate addition of charge.Type: GrantFiled: September 16, 2013Date of Patent: May 17, 2016Assignee: SanDisk Technologies Inc.Inventors: Nian Yang, Chris Avila, Steven T. Sprouse, Aaron Lee
-
Publication number: 20160026410Abstract: In a nonvolatile memory array, such as a three-dimensional array of charge-storage memory cells, data is scrubbed according to a scheme which weights particular data that is exposed to potentially damaging voltages. Data that may cause damage to other data is moved to a location where such potential damage is reduced.Type: ApplicationFiled: September 22, 2015Publication date: January 28, 2016Inventors: Chris Avila, Yingda Dong, Alexander Kwok-Tung Mak, Steven T. Sprouse
-
Patent number: 9244631Abstract: In a Multi Level Cell (MLC) memory array, a burst of data from a host may be written in only lower pages of a block in a rapid manner. Other data from a host may be written in lower and upper pages so that data is more efficiently arranged for long term storage.Type: GrantFiled: December 6, 2013Date of Patent: January 26, 2016Assignee: SanDisk Technologies Inc.Inventors: Sergey Gorobets, Chris Avila, Steven T. Sprouse
-
Patent number: 9218881Abstract: A NAND flash memory chip includes a first partition that has smaller memory cells, with smaller charge storage elements, and a second partition that has larger memory cells, with larger charge storage elements, in the same memory array. Data is selected for storage in the first or second partition according to characteristics, or expected characteristics, of the data.Type: GrantFiled: October 23, 2012Date of Patent: December 22, 2015Assignee: SanDisk Technologies Inc.Inventors: Nian Niles Yang, Chris Nga Yee Avila, Steven T. Sprouse
-
Publication number: 20150332759Abstract: In a Multi Level Cell (MLC) memory array block in which lower pages are written first, before any upper pages, the lower page data is subject to an exclusive OR (XOR) operation so that if any lower page becomes uncorrectable by ECC (UECC) then the page can be recovered using XOR. Lower pages in such blocks may be written in nonsequential order.Type: ApplicationFiled: October 30, 2014Publication date: November 19, 2015Inventors: Jianmin Huang, Bo Lei, Jun Wan, Gerrit Jan Hemink, Steven T. Sprouse, Dana Lee
-
Patent number: 9182928Abstract: In a Multi Level Cell (MLC) memory array, a burst of data from a host may be written in only lower pages of a block in a rapid manner. Other data from a host may be written in lower and upper pages so that data is more efficiently arranged for long term storage.Type: GrantFiled: May 23, 2014Date of Patent: November 10, 2015Assignee: SanDisk Technologies Inc.Inventors: Sergey Gorobets, Chris Avila, Steven T. Sprouse
-
Patent number: 9176864Abstract: A non-volatile memory organized into flash erasable blocks sorts units of data according to a temperature assigned to each unit of data, where a higher temperature indicates a higher probability that the unit of data will suffer subsequent rewrites due to garbage collection operations. The units of data either come from a host write or from a relocation operation. The data are sorted either for storing into different storage portions, such as SLC and MLC, or into different operating streams, depending on their temperatures. This allows data of similar temperature to be dealt with in a manner appropriate for its temperature in order to minimize rewrites. Examples of a unit of data include a logical group and a block.Type: GrantFiled: May 10, 2012Date of Patent: November 3, 2015Assignee: SANDISK TECHNOLOGIES, INC.Inventors: Sergey Anatolievich Gorobets, Alan David Bennett, Tom Hugh Shippey, Liam Michael Parker, Yauheni Yaromenka, Steven T. Sprouse, William S. Wu, Marielle Bundukin