Patents by Inventor Aaron K. Olbrich
Aaron K. Olbrich 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: 9946483Abstract: Systems and methods disclosed herein allow for efficiently managing unmapped blocks to extend life of solid-state drives. In one aspect, a method includes: measuring a level of over-provisioning (“OP”) in a storage device and operating it in a first mode of operation while the OP satisfies a first threshold. The method also includes: changing to a second mode of operation if the OP does not satisfy the first threshold. While operating in the second mode of operation, the method includes: (i) determining an unmapped portion of a declared storage capacity of the storage device; and (ii) determining whether processing a write command would reduce the unmapped portion to less than a second threshold. If processing the write command wouldn't reduce the unmapped portion to less than the second threshold, the method includes: accepting and processing the write command. Else, the method includes: forgoing acceptance and processing of the write command.Type: GrantFiled: May 17, 2016Date of Patent: April 17, 2018Assignee: SanDisk Technologies LLCInventors: Senthil M. Thangaraj, Divya Reddy, Aaron K. Olbrich
-
Patent number: 9946473Abstract: Systems and methods disclosed herein allow for efficiently managing unmapped blocks to extend life of solid-state drives. In one aspect, a method includes: determining a quantity of unmapped storage units in the storage device and operating the storage device in a first mode of operation while the quantity satisfies a first threshold. The method also includes: changing to a second mode of operation if the quantity of unmapped storage units doesn't satisfy the first threshold. While operating in the second mode of operation, the method includes: determining whether processing a write command would reduce the quantity of unmapped storage units to a quantity less than a second threshold. If processing the write command wouldn't reduce the quantity of unmapped storage units to a quantity less than the second threshold, the method includes: accepting and processing the write command. Else, the method includes: forgoing acceptance and processing of the write command.Type: GrantFiled: May 17, 2016Date of Patent: April 17, 2018Assignee: SanDisk Technologies LLCInventors: Senthil M. Thangaraj, Divya Reddy, Aaron K. Olbrich
-
Patent number: 9898364Abstract: A memory controller configures a plurality of word lines associated with a respective block of a 3D memory device in a first configuration, where the first configuration includes a set of configuration parameters for each word line of the plurality of word lines determined at least in part on the vertical positions of each word line relative to a substrate of the 3D memory device and, while the plurality of word lines are configured in the first configuration, writes data to and reads data from the respective block. For the respective block, the memory controller: adjusts a first parameter in the respective set of configuration parameters corresponding to a respective word line of the plurality of word lines in response to detecting a first trigger condition as to the respective word line and, after adjusting the first parameter, writes data to and reads data from the respective word line.Type: GrantFiled: November 17, 2014Date of Patent: February 20, 2018Assignee: SANDISK TECHNOLOGIES LLCInventors: James M. Higgins, Robert W. Ellis, Neil R. Darragh, Aaron K. Olbrich, Navneeth Kankani, Steven Sprouse
-
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: 9753649Abstract: Systems, methods and/or devices are used to enable tracking intermix of writes and un-map commands across power cycles. In one aspect, the method includes (1) receiving, at a storage device, a plurality of commands from a host, the storage device including non-volatile memory, (2) maintaining a log corresponding to write commands and un-map commands from the host, (3) maintaining a mapping table in volatile memory, the mapping table used to translate logical addresses to physical addresses, (4) saving the mapping table, on a scheduled basis that is independent of the un-map commands, to the non-volatile memory of the storage device, (5) saving the log to the non-volatile memory, and (6) upon power up of the storage device, rebuilding the mapping table from the saved mapping table in the non-volatile memory of the storage device and from the saved log in the non-volatile memory of the storage device.Type: GrantFiled: March 16, 2015Date of Patent: September 5, 2017Assignee: SanDisk Technologies LLCInventors: Douglas A. Prins, Aaron K. Olbrich, Huapeng Guan, Graeme Weston-Lewis, Anand Kulkarni, Yipei Yu
-
Publication number: 20170160976Abstract: Systems and methods disclosed herein allow for efficiently managing unmapped blocks to extend life of solid-state drives. In one aspect, a method includes: measuring a level of over-provisioning (“OP”) in a storage device and operating it in a first mode of operation while the OP satisfies a first threshold. The method also includes: changing to a second mode of operation if the OP does not satisfy the first threshold. While operating in the second mode of operation, the method includes: (i) determining an unmapped portion of a declared storage capacity of the storage device; and (ii) determining whether processing a write command would reduce the unmapped portion to less than a second threshold. If processing the write command wouldn't reduce the unmapped portion to less than the second threshold, the method includes: accepting and processing the write command. Else, the method includes: forgoing acceptance and processing of the write command.Type: ApplicationFiled: May 17, 2016Publication date: June 8, 2017Inventors: Senthil M. Thangaraj, Divya Reddy, Aaron K. Olbrich
-
Publication number: 20170160957Abstract: Systems and methods disclosed herein allow for efficiently managing unmapped blocks to extend life of solid-state drives. In one aspect, a method includes: determining a quantity of unmapped storage units in the storage device and operating the storage device in a first mode of operation while the quantity satisfies a first threshold. The method also includes: changing to a second mode of operation if the quantity of unmapped storage units doesn't satisfy the first threshold. While operating in the second mode of operation, the method includes: determining whether processing a write command would reduce the quantity of unmapped storage units to a quantity less than a second threshold. If processing the write command wouldn't reduce the quantity of unmapped storage units to a quantity less than the second threshold, the method includes: accepting and processing the write command. Else, the method includes: forgoing acceptance and processing of the write command.Type: ApplicationFiled: May 17, 2016Publication date: June 8, 2017Inventors: Senthil M. Thangaraj, Divya Reddy, Aaron K. Olbrich
-
Patent number: 9652175Abstract: A memory controller receives a command to perform a memory operation, the command including a data packet comprising a plurality of data divisions. In response to receiving the command, for each individual memory device, the memory controller assigns to the individual memory device a respective data division, the respective data division including a plurality of data segments, and determines a single relative memory address associated with an address specified by the received command. The memory controller assembles a sub-request comprising a single contiguous instruction portion, which includes the single relative memory address and one or more instructions to perform the memory operation, and the respective data division, the respective data division following the single contiguous instruction portion, and transmits the sub-request to every memory portion of the number of memory portions of the individual memory device.Type: GrantFiled: June 2, 2015Date of Patent: May 16, 2017Assignee: SANDISK TECHNOLOGIES LLCInventors: Anantharaj Thalaimalai Vanaraj, Sainath Viswasarai, Aaron K. Olbrich
-
Patent number: 9483210Abstract: A storage controller is provided that contains multiple processors. In some embodiments, the storage controller is coupled to a flash memory module having multiple flash memory groups, each flash memory group corresponding to a distinct flash port in the storage controller, each flash port comprising an associated processor. Each processor handles a portion of one or more host commands, including reads and writes, allowing multiple parallel pipelines to handle one or more host commands simultaneously.Type: GrantFiled: October 7, 2015Date of Patent: November 1, 2016Assignee: SANDISK TECHNOLOGIES LLCInventors: Aaron K. Olbrich, Douglas A. Prins
-
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
-
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: 20160299699Abstract: A memory controller receives a command to perform a memory operation, the command including a data packet comprising a plurality of data divisions. In response to receiving the command, for each individual memory device, the memory controller assigns to the individual memory device a respective data division, the respective data division including a plurality of data segments, and determines a single relative memory address associated with an address specified by the received command. The memory controller assembles a sub-request comprising a single contiguous instruction portion, which includes the single relative memory address and one or more instructions to perform the memory operation, and the respective data division, the respective data division following the single contiguous instruction portion, and transmits the sub-request to every memory portion of the number of memory portions of the individual memory device.Type: ApplicationFiled: June 2, 2015Publication date: October 13, 2016Inventors: Anantharaj Thalaimalai Vanaraj, Sainath Viswasarai, Aaron K. Olbrich
-
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
-
Patent number: 9448743Abstract: A storage controller is provided that contains multiple processors. In some embodiments, the storage controller is coupled to a flash memory module having multiple flash memory groups, each flash memory group corresponding to a distinct flash port in the storage controller, each flash port comprising an associated processor. Each processor handles a portion of one or more host commands, including reads and writes, allowing multiple parallel pipelines to handle one or more host commands simultaneously.Type: GrantFiled: April 25, 2014Date of Patent: September 20, 2016Assignee: SANDISK TECHNOLOGIES LLCInventors: Douglas A. Prins, Aaron K. Olbrich
-
Patent number: 9367246Abstract: A single command initiates a first read operation and sequence of one or more additional read operations from the same portion of memory. The one or more additional read operations are terminable after the first read operation provides a first plurality of data values that is made available to a requesting device and/or module. In some implementations, the first plurality of data values includes hard information values. Subsequent pluralities of data values are generated from the same portion of memory until a terminating event occurs. In some implementations, until a terminating event occurs, a respective hybrid plurality of data values is generated by combining the latest read plurality of data values with one of a previously generated hybrid plurality of data values and the first plurality of data values. Each hybrid plurality of data values is representative of a corresponding plurality of soft information values.Type: GrantFiled: August 9, 2013Date of Patent: June 14, 2016Assignee: SANDISK TECHNOLOGIES INC.Inventors: Jack Edward Frayer, Aaron K. Olbrich
-
Publication number: 20160117099Abstract: Systems, methods and/or devices are used to enable tracking intermix of writes and un-map commands across power cycles. In one aspect, the method includes (1) receiving, at a storage device, a plurality of commands from a host, the storage device including non-volatile memory, (2) maintaining a log corresponding to write commands and un-map commands from the host, (3) maintaining a mapping table in volatile memory, the mapping table used to translate logical addresses to physical addresses, (4) saving the mapping table, on a scheduled basis that is independent of the un-map commands, to the non-volatile memory of the storage device, (5) saving the log to the non-volatile memory, and (6) upon power up of the storage device, rebuilding the mapping table from the saved mapping table in the non-volatile memory of the storage device and from the saved log in the non-volatile memory of the storage device.Type: ApplicationFiled: March 16, 2015Publication date: April 28, 2016Inventors: Douglas A. Prins, Aaron K. Olbrich, Huapeng Guan, Graeme Weston-Lewis, Anand Kulkarni, Yipei Yu
-
Publication number: 20160034227Abstract: A storage controller is provided that contains multiple processors. In some embodiments, the storage controller is coupled to a flash memory module having multiple flash memory groups, each flash memory group corresponding to a distinct flash port in the storage controller, each flash port comprising an associated processor. Each processor handles a portion of one or more host commands, including reads and writes, allowing multiple parallel pipelines to handle one or more host commands simultaneously.Type: ApplicationFiled: October 7, 2015Publication date: February 4, 2016Inventors: Aaron K. Olbrich, Douglas A. Prins
-
Patent number: 9239783Abstract: A storage controller has multiple processors, divided into groups, each of which handles a different stage of a pipelined process of performing host reads and writes. In some embodiments, the storage controller operates with a flash memory module, and includes a first processor group, a second processor group and a third processor group, each having one or more processors for handling a different stage of a pipelined execution of host storage commands. With respect to a first host command, a first processor of the first processor group, a first processor of the second processor group, and a first processor of the third processor group comprise a first pipeline, and with respect to a second host command, a second processor of the first processor group, a second processor of the second processor group, and a second processor of the third processor group comprise a second pipeline.Type: GrantFiled: May 14, 2013Date of Patent: January 19, 2016Assignee: SANDISK ENTERPRISE IP LLCInventors: Douglas A. Prins, Aaron K. Olbrich
-
Publication number: 20150347229Abstract: A memory controller configures a plurality of word lines associated with a respective block of a 3D memory device in a first configuration, where the first configuration includes a set of configuration parameters for each word line of the plurality of word lines determined at least in part on the vertical positions of each word line relative to a substrate of the 3D memory device and, while the plurality of word lines are configured in the first configuration, writes data to and reads data from the respective block. For the respective block, the memory controller: adjusts a first parameter in the respective set of configuration parameters corresponding to a respective word line of the plurality of word lines in response to detecting a first trigger condition as to the respective word line and, after adjusting the first parameter, writes data to and reads data from the respective word line.Type: ApplicationFiled: November 17, 2014Publication date: December 3, 2015Inventors: James M. Higgins, Robert W. Ellis, Neil R. Darragh, Aaron K. Olbrich, Navneeth Kankani, Steven Sprouse
-
Patent number: 9158677Abstract: A storage controller is provided that contains multiple processors. In some embodiments, the storage controller is coupled to a flash memory module having multiple flash memory groups, each flash memory group corresponding to a distinct flash port in the storage controller, each flash port comprising an associated processor. Each processor handles a portion of one or more host commands, including reads and writes, allowing multiple parallel pipelines to handle one or more host commands simultaneously.Type: GrantFiled: May 3, 2013Date of Patent: October 13, 2015Assignee: SANDISK ENTERPRISE IP LLCInventors: Aaron K. Olbrich, Douglas A. Prins