Patents by Inventor Charles J. Camp

Charles J. Camp 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: 9558107
    Abstract: In at least one embodiment, a controller of a non-volatile memory array determines, for each of a plurality of regions of physical memory in the memory array, an associated health grade among a plurality of health grades and records the associated health grade. The controller also establishes a mapping between access heat and the plurality of health grades. In response to a write request specifying an address, the controller selects a region of physical memory to service the write request from a pool of available regions of physical memory based on an access heat of the address and the mapping and writes data specified by the write request to the selected region of physical memory.
    Type: Grant
    Filed: December 24, 2013
    Date of Patent: January 31, 2017
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Camp, Ioannis Koltsidas, Nikolaos Papandreou, Thomas Parnell, Roman A. Pletka, Charalampos Pozidis, Gary A. Tressler, Andrew D. Walls
  • Patent number: 9524116
    Abstract: Following a relocation write in which data is relocated without update from an old physical location to a new physical location within the non-volatile memory array, a controller defers an update of a logical-to-physical translation (LPT) entry to associate a logical address of the data with a new physical address of the new physical location, for example, for a time-out period. During deferment of the update to the LPT entry, the controller services a read request targeting the logical address from data at the old physical location. In response to no update to the data being made during deferment of the update to the LPT entry, the controller performs the deferred update to the LPT entry. In response to an update to the data being made during the deferment of the update to the LPT entry, the controller refrains from performing the deferred update to the LPT entry.
    Type: Grant
    Filed: June 21, 2016
    Date of Patent: December 20, 2016
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Camp, Timothy J. Fisher, Nikolas Ioannou, Roman A. Pletka, Sasa Tomic
  • Patent number: 9513830
    Abstract: The disclosed embodiments are directed to methods and apparatuses for providing efficient and enhanced protection of data stored in a nonvolatile memory system. The methods and apparatuses involve a system controller for a plurality of nonvolatile memory devices in the nonvolatile memory system that is capable of protecting data using two layers of data protection, including inter-card card stripes and intra-card page stripes.
    Type: Grant
    Filed: October 12, 2015
    Date of Patent: December 6, 2016
    Assignee: International Business Machines Corporation
    Inventors: Holloway H. Frost, Charles J. Camp, Kenneth Scianna, Lance W. Shelton
  • Patent number: 9501235
    Abstract: Methods and apparatuses for reduction of Read Disturb errors in a NAND FLASH memory system comprise a controller configured to organize FLASH memory devices into blocks, each block having a plurality of pages, and each page defining an individually addressable physical memory location. The controller is further configured to accumulate a Block READ Count corresponding to the number of times any pages in a first block of pages have been read since the first block was last erased. Once the READ count reaches a predetermined number, the controller responds to subsequent READ requests for pages within the first block by moving data associated with a requested page to a page in a second, different block without moving data associated with other pages in the first block, and modifying a logical-to-physical translation table to associate the moved data with the physical address of the page in the second block.
    Type: Grant
    Filed: February 1, 2016
    Date of Patent: November 22, 2016
    Assignee: International Business Machines Corporation
    Inventors: Holloway H. Frost, Charles J. Camp, Timothy J. Fisher, James A. Fuxa, Lance W. Shelton
  • Patent number: 9496043
    Abstract: In a data storage system including a non-volatile memory array, a controller determines a write frequency of a logical address mapped to a physical subset of the non-volatile memory array. Based on the determined write frequency of the logical address, the controller dynamically adjusts at least one operating parameter of a program/erase (P/E) cycle to optimize at least one of endurance of the block and data retention time of the physical subset of the non-volatile memory array. The at least one operating parameter includes one or more of a set including a pulse budget, a verify voltage and a verify threshold.
    Type: Grant
    Filed: June 24, 2015
    Date of Patent: November 15, 2016
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Camp, Timothy J. Fisher, Aaron D. Fry, Nikolaos Papandreou, Thomas Parnell, Charalampos Pozidis, Andrew D. Walls
  • Patent number: 9483350
    Abstract: A flash memory codeword architecture is provided. A non-integer count of logical pages is packed into a codeword payload data container. A codeword payload header is generated. The codeword payload header includes an offset to a first logical page that is packed, at least in part, into the codeword payload data container. The codeword payload data container and the codeword payload header are concatenated to generate a codeword payload. Error-correcting code data is generated based, at least in part, on the codeword payload using a systematic error-correcting code. The codeword payload and error-correcting code data is concatenated to generate a codeword. A physical page is programmed with the codeword.
    Type: Grant
    Filed: February 3, 2016
    Date of Patent: November 1, 2016
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Camp, Timothy J. Fisher, Aaron D. Fry, Lincoln T. Simmons, Adalberto G. Yanes
  • Publication number: 20160306556
    Abstract: A storage system includes a memory controller connected to a solid state memory device and a read status table that tracks a pending read from the solid state memory device and a physical address of the solid state memory device that is associated with the pending read. The memory controller releases the physical address for reassignment when the read status table indicates that no pending reads are associated with the physical address. In certain embodiments, the read status table may be included within the memory controller. In certain embodiments, subsequent to the release of the physical address, erase operations may erase data at the physical address and the physical address may be reassigned to a new logical address by ensuing host write operations.
    Type: Application
    Filed: June 27, 2016
    Publication date: October 20, 2016
    Inventors: Charles J. Camp, Timothy J. Fisher, Kevin E. Sallese
  • Patent number: 9471512
    Abstract: A Flash-based storage system, card, and/or module comprises a Flash controller configured to encrypt the data pages of a page stripe by shuffling the data pages, including loading each data page into a data shuffling buffer in a sequential order relative to other data pages in the page stripe, and thereafter unloading each data page in a non-sequential order relative to other data pages in the page stripe. The Flash controller is also configured to scramble the data pages of the page stripe by performing a bitwise logical operation on the data pages that are unloaded from the data shuffling buffer. A user key and one or more system keys are used to perform the shuffling and scrambling. The Flash controller is further configured to flush the user key by bypassing the system's backup power supply and performing an emergency system shutdown without backing up system data.
    Type: Grant
    Filed: November 16, 2015
    Date of Patent: October 18, 2016
    Assignee: International Business Machines Corporation
    Inventors: Holloway H. Frost, Charles J. Camp
  • Patent number: 9442661
    Abstract: A multidimensional storage array includes independently addressable storage elements and an input shifter. The storage elements are physically arranged into rows and columns and store particular bit(s) of a data word. The input shifter implements a circular shift to serially loaded data words to the multidimensional storage array. An output shifter may reverse the circular shift of a requested data word. The data entering the storage array may be shifted to expose column addressed data such that an entire column or columns may be fed to a requesting device in a single hardware clock cycle and/or may be shifted to expose row addressed data such that an entire row or rows may be fed to the requesting device in a single hardware clock cycle. The data entering the storage array may be shifted such that column addressed data words may be stored in a plurality of diagonally arranged storage elements.
    Type: Grant
    Filed: December 9, 2013
    Date of Patent: September 13, 2016
    Assignee: International Business Machines Corporation
    Inventors: Tobias Blaettler, Charles J. Camp, Thomas Parnell
  • Patent number: 9417809
    Abstract: A data storage system includes a controller that controls a non-volatile memory array including a plurality of blocks each including a plurality of physical pages. The controller implements multiple pattern-based page retirement classes, where each of a plurality of the pattern-based page retirement classes is defined by a respective one of a plurality of different patterns of page indices of physical pages within the plurality of blocks that are to be considered retired from use. For each block among the plurality of blocks, the controller updates an indication of a page retirement class to which the block belongs in response to detection of a retirement-causing error in a data page stored in a physical page of the block. The controller forms block stripes for storing data from the plurality of blocks based on at least the page retirement classes of the blocks.
    Type: Grant
    Filed: December 7, 2015
    Date of Patent: August 16, 2016
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Camp, Timothy J. Fisher, Nikolas Ioannou, Roman A. Pletka, Sasa Tomic
  • Patent number: 9400745
    Abstract: A storage system includes a memory controller connected to a solid state memory device and a read status table that tracks a pending read from the solid state memory device and a physical address of the solid state memory device that is associated with the pending read. The memory controller releases the physical address for reassignment when the read status table indicates that no pending reads are associated with the physical address. In certain embodiments, the read status table may be included within the memory controller. In certain embodiments, subsequent to the release of the physical address, erase operations may erase data at the physical address and the physical address may be reassigned to a new logical address by ensuing host write operations.
    Type: Grant
    Filed: November 6, 2013
    Date of Patent: July 26, 2016
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Camp, Timothy J. Fisher, Kevin E. Sallese
  • Patent number: 9389792
    Abstract: Following a relocation write in which data is relocated without update from an old physical location to a new physical location within the non-volatile memory array, a controller defers an update of a logical-to-physical translation (LPT) entry to associate a logical address of the data with a new physical address of the new physical location, for example, for a time-out period. During deferment of the update to the LPT entry, the controller services a read request targeting the logical address from data at the old physical location. In response to no update to the data being made during deferment of the update to the LPT entry, the controller performs the deferred update to the LPT entry. In response to an update to the data being made during the deferment of the update to the LPT entry, the controller refrains from performing the deferred update to the LPT entry.
    Type: Grant
    Filed: December 7, 2015
    Date of Patent: July 12, 2016
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Camp, Timothy J. Fisher, Nikolas Ioannou, Roman A. Pletka, Sasa Tomic
  • Publication number: 20160196182
    Abstract: According to one embodiment, a method includes issuing a read request to read one or more units of data from at least one non-volatile random access memory (NVRAM) device. The read request includes one or more read voltage thresholds. The method also includes receiving the one or more data units and read command parameters used to read the one or more data units from the at least one NVRAM device. Moreover, the method includes storing error-free data units, the read command parameters used to read the error-free data units from the at least one NVRAM device, and a read completion status to one of a plurality of read buffers. The read completion status indicates a completed read when a data unit is error-free and indicates an incomplete read when a data unit is errored.
    Type: Application
    Filed: March 10, 2016
    Publication date: July 7, 2016
    Inventors: Charles J. Camp, Timothy J. Fisher, Aaron D. Fry, Ashwitha Krishna Kumar, David A. Pierce, Kevin E. Sallese, Lincoln T. Simmons
  • Publication number: 20160188212
    Abstract: In a data storage system, a data set as compressed by a first compression technique (e.g., a hardware-based compression technique) is stored in non-volatile data storage in association with at least a particular address. In response to a subsequent garbage collection read of the particular address, control logic determines whether or not to compress the data set with a second compression technique (e.g., a software-based compression technique). In response to determining not to compress the data set with the second compression technique, the control logic writes the data set back to the non-volatile data storage as compressed by the first compression technique. In response to determining to compress the data set with the second compression technique, the control logic compresses the data set with the second compression technique and writes the data set back to the non-volatile data storage as compressed by the second compression technique.
    Type: Application
    Filed: December 30, 2014
    Publication date: June 30, 2016
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: CHARLES J. CAMP, ANDREW D. WALLS
  • Publication number: 20160188223
    Abstract: A data storage system includes a higher level controller, a lower level controller, and a plurality of storage components including a particular storage component. Data is stored within the data storage system utilizing at least one level of striping across the plurality of storage components. Latencies of input/output operations (IOPs) requesting access to the data stored within the data storage system are monitored. In response to determining that a latency of a read IOP requesting read data stored in the particular storage component exceeds a latency threshold and in absence of a data error, the read IOP is serviced by reconstructing the read data from storage components among the plurality of storage components other than the particular storage component. The lower level controller also provides feedback to the higher level controller to cause the higher level controller to reduce IOPs directed to at least the particular storage component.
    Type: Application
    Filed: December 30, 2014
    Publication date: June 30, 2016
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: CHARLES J. CAMP, ANDREW D. WALLS
  • Publication number: 20160188230
    Abstract: A quarter product code codeword includes various R code symbols and C code symbols each including a plurality of symbols. Each symbol is loaded into a diagonal anti-diagonal structure in two unique locations. To provide for fast loading, the symbols may be shifted by one or more shift registers associated with the diagonal or anti-diagonal structure. The two locations at which each symbol is positioned are included within different diagonals or anti-diagonals making it possible to load or unload either symbol or multiple symbols in a single clock cycle. Further, by partitioning the diagonal anti-diagonal structure, multiple respective symbols or plurality of symbols may be loaded or unloaded in a single clock cycle.
    Type: Application
    Filed: December 28, 2014
    Publication date: June 30, 2016
    Inventors: Tobias Blaettler, Charles J. Camp, Thomas Mittelholzer, Nikolaos Papandreou, Thomas Parnell, Charalampos Pozidis
  • Publication number: 20160179678
    Abstract: A system according to one embodiment includes non-volatile memory, and a non-volatile memory controller having a cache. An architecture of the cache supports separation of data streams, and the cache architecture supports parallel writes to different non-volatile memory channels. Additionally, the cache architecture supports pipelining of the parallel writes to different non-volatile memory planes. Furthermore, the non-volatile memory controller is configured to perform a direct memory lookup in the cache based on a physical block address. Other systems, methods, and computer program products are described in additional embodiments.
    Type: Application
    Filed: December 19, 2014
    Publication date: June 23, 2016
    Inventors: Charles J. Camp, Timothy J. Fisher, Aaron D. Fry, Nikolas Ioannou, Ioannis Koltsidas, Roman Pletka, Sasa Tomic, Andrew D. Walls
  • Publication number: 20160179412
    Abstract: An apparatus, according to one embodiment, includes non-volatile memory configured to store data, and a controller and logic integrated with and/or executable by the controller, the logic being configured to: determine, by the controller, that at least one block of the non-volatile memory and/or portion of a block of the non-volatile memory meets a retirement condition, re-evaluate, by the controller, the at least one block and/or the portion of a block to determine whether to retire the at least one block and/or the portion of a block, indicate, by the controller, that the at least one block and/or the portion of a block remains usable when a result of the re-evaluation is not to retire the block, and indicate, by the controller, that the at least one block and/or the portion of a block is retired when the result of the re-evaluation is to retire the block.
    Type: Application
    Filed: December 23, 2014
    Publication date: June 23, 2016
    Inventors: Charles J. Camp, Timothy J. Fisher, Aaron D. Fry, Nikolas Ioannou, Ioannis Koltsidas, Roman Pletka, Sasa Tomic
  • Publication number: 20160179433
    Abstract: A mechanism is provided for performing de-duplication process on a set of non-volatile memories as part of another process routinely performed on the set of non-volatile memories. A hash value of data stored at a first physical location in a non-volatile memory in the set of non-volatile memories is received from a non-volatile memory controller associated with the non-volatile memory. Responsive to the hash value matching one or more existing hash values for data stored at one or more other physical locations in the set of non-volatile memories, an optimal physical location is identified from the first physical location and the one or more other physical locations. Responsive to identifying the optimal physical location, a set of logical addresses associated with the hash values is updated to point to the optimal physical location. The non-optimal physical locations are further invalidated in order that the non-optimal physical locations are erased.
    Type: Application
    Filed: December 19, 2014
    Publication date: June 23, 2016
    Inventors: Charles J. Camp, Timothy J. Fisher, Cheng-Chung Song, Robert W. Tillerson, Andrew D. Walls
  • Publication number: 20160179664
    Abstract: According to one embodiment, a method includes assigning a subset of physical pages within a block of non-volatile memory to a pseudo-physical block, wherein a number of pages in the pseudo-physical block is less than a number of physical pages within the non-volatile memory block, and reassigning physical pages within the block of non-volatile memory to the pseudo-physical block upon occurrence of an event. The assigning includes: determining a health metric for each of the physical pages within the block of non-volatile memory, and selecting a subset of the physical pages for assignment to the pseudo-physical block based on the health metric. Moreover, the subset of pages has a fixed size for at least a number of reassignments.
    Type: Application
    Filed: December 23, 2014
    Publication date: June 23, 2016
    Inventors: Charles J. Camp, Thomas Mittelholzer, Nikolaos Papandreou, Thomas Parnell, Charalampos Pozidis