Patents Examined by Prasith Thammavong
  • Patent number: 10394482
    Abstract: Systems and methods for replicating a snapshot of a volume are described. In one embodiment, a storage controller of a storage system may be operable to initialize a first replication process between a first storage volume of the first storage system and a second storage volume of a second storage system, copy content from a first system snapshot of the first storage volume to a second system snapshot of the first storage volume, and copy content from a first user snapshot of the first storage volume to the first system snapshot of the first storage volume. In some cases, a system snapshot is not accessible to a user and a user snapshot is accessible to the user. In some cases, at least one of the system snapshot and the user snapshot include a point in time capture of data on the first storage volume.
    Type: Grant
    Filed: April 14, 2016
    Date of Patent: August 27, 2019
    Assignee: SEAGATE TECHNOLOGY LLC
    Inventors: Douglas W. Dewey, Kenneth F. Day, Ian R. Davies
  • Patent number: 10394711
    Abstract: Managing lowest point of coherency (LPC) memory using a service layer adapter, the adapter coupled to a processor and an accelerator on a host computing system, the processor configured for symmetric multi-processing, including receiving, by the adapter, a memory access instruction from the accelerator; retrieving, by the adapter, a real address for the memory access instruction; determining, using base address registers on the adapter, that the real address targets the LPC memory, wherein the base address registers direct memory access requests between the LPC memory and other memory locations on the host computing system; and sending, by the adapter, the memory access instruction and the real address to a media controller for the LPC memory, wherein the media controller for the LPC memory is attached to the adapter via a memory interface.
    Type: Grant
    Filed: November 30, 2016
    Date of Patent: August 27, 2019
    Assignee: International Business Machines Corporation
    Inventors: Etai Adar, Lakshminarayana B. Arimilli, Yiftach Benjamini, Bartholomew Blaner, William J. Starke, Jeffrey A. Stuecheli
  • Patent number: 10387036
    Abstract: A semiconductor memory device according to the present disclosure includes: a memory cell array including a plurality of planes; a command processing unit configured to generate an internal command to be executed by at feast one plane among the plurality of planes on the basis of external commands received from an external controller; a status register configured to store status information of the external commands by a tag included in the external command according to results of performing the internal command.
    Type: Grant
    Filed: December 1, 2016
    Date of Patent: August 20, 2019
    Assignee: SK hynix Inc.
    Inventor: Beom Ju Shin
  • Patent number: 10379758
    Abstract: The subject technology provides for managing a data storage system. A host write command to write host data associated with a logical address to a non-volatile memory is received. A first physical address in the non-volatile memory mapped to the logical address in an address mapping table is determined. An indicator that the first physical address is bad checked. If the first physical address is indicated as bad, a valid count associated with a first set of physical addresses at a current value is maintained. The first set of physical addresses comprises the first physical address. If the first physical address is not indicated as bad, the first physical address is marked as invalid. The valid count associated with the first set of physical addresses is decremented.
    Type: Grant
    Filed: July 31, 2017
    Date of Patent: August 13, 2019
    Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
    Inventors: Kai-Lung Cheng, Yun-Tzuo Lai, Eugene Lisitsyn, Jerry Lo, Subhash Balakrishna Pillai
  • Patent number: 10372655
    Abstract: Systems and devices are provided for broadcasting a message to addressed logic blocks in lieu of, or in addition to, programming individual status registers of an integrated circuit. One such device may be an integrated circuit that includes a broadcast bus and addressed logic blocks. The broadcast bus may broadcast an addressed message that includes content and a target address. Each of the addressed logic blocks may receive the addressed message from the broadcast bus and use the content of the addressed message only when the target address matches an address assigned to that logic block.
    Type: Grant
    Filed: March 20, 2017
    Date of Patent: August 6, 2019
    Assignee: Altera Corporation
    Inventor: Steven Perry
  • Patent number: 10353747
    Abstract: A controller for a shared memory is disclosed. The controller comprises a transaction scanner configured to scan-in a plurality of transactions to access the shared memory and to divide the transactions into beat-level memory access commands. The controller also comprises a command super-arbiter comprising a plurality of command arbiters corresponding to a plurality of shared memory blocks in the shared memory. The command super-arbiter is configured to access a quality of service for each of the transactions, arbitrate the beat-level memory access commands associated with the transactions based on the quality of service for each of the plurality of transactions, and dispatch the beat-level memory access commands to the shared memory blocks based on results of arbitrating the beat-level memory access commands.
    Type: Grant
    Filed: July 13, 2015
    Date of Patent: July 16, 2019
    Assignee: Futurewei Technologies, Inc.
    Inventors: Hao Luan, Alan Gatherer, Bin Yang
  • Patent number: 10346039
    Abstract: According to one embodiment, a memory system includes a memory and a controller. The memory includes a plurality of blocks. The controller receives a first data group and a second data group from a host. The controller stores the first data group to a first block group, and stores the second data group to a second block group. The first block group includes one or more first blocks among the plurality of blocks. The second block group includes one or more second blocks among the plurality of blocks. The controller controls the number of first blocks so that the number of the first blocks is not more than a first value, and the controller controls the number of second blocks so that the number of the second blocks is not more than a second value.
    Type: Grant
    Filed: March 9, 2016
    Date of Patent: July 9, 2019
    Assignee: TOSHIBA MEMORY CORPORATION
    Inventor: Yoshihisa Kojima
  • Patent number: 10348675
    Abstract: Systems, apparatuses, methods, and computer-readable storage mediums for performing lease-based fencing using a time-limited lease window. During the time-limited lease window, writes to a shared storage medium are permitted, while writes are denied for expired leases. When a successful heartbeat is generated for a primary storage controller, the lease window is extended for the primary storage controller from the time of a previous heartbeat. Accordingly, a prolonged stall between successive heartbeats by the primary storage controller will result in the newly extended lease being expired at the time it is granted. This scheme prevents a split brain scenario from occurring when a secondary storage controller takes over as the new primary storage controller in response to detecting the stall.
    Type: Grant
    Filed: September 1, 2016
    Date of Patent: July 9, 2019
    Assignee: Pure Storage, Inc.
    Inventors: Joern Engel, Alan Driscoll, Neil Vachharajani, Ronald S. Karr
  • Patent number: 10339048
    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: Grant
    Filed: December 23, 2014
    Date of Patent: July 2, 2019
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Camp, Timothy J. Fisher, Aaron D. Fry, Nikolas Ioannou, Ioannis Koltsidas, Roman Pletka, Sasa Tomic
  • Patent number: 10331562
    Abstract: A cache repair tool includes an interface, a monitoring engine, and a purging engine. The interface receives a request to repair a cache. The request includes a maximum size threshold less than a total storage capacity of the cache. The request includes an identification of a data type. The monitoring engine determines an available capacity of the cache. The monitoring engine determines that the available capacity is less than or equal to the maximum size threshold. The purging engine purges data of the identified data type from the cache in response to the determination that the determined size exceeds the maximum size threshold.
    Type: Grant
    Filed: March 28, 2017
    Date of Patent: June 25, 2019
    Assignee: Bank of America Corporation
    Inventors: Anuj Sharma, Vishal Kelkar, Gaurav Srivastava
  • Patent number: 10324843
    Abstract: A method, computer program product, and computing system for receiving an indication of an intent to restore at least a portion of a data array based upon a historical record of the data array. One or more changes made to the content of that data array after the generation of the historical record may be identified, thus generating a differential record. One or more data entries within a cache memory system associated with the at least a portion of a data array may be invalidated based, at least in part, upon the differential record.
    Type: Grant
    Filed: May 25, 2016
    Date of Patent: June 18, 2019
    Assignee: EMC IP Holding Company LLC
    Inventors: David Erel, Assaf Natanzon
  • Patent number: 10303618
    Abstract: An operating system monitors a performance metric of a direct memory access (DMA) engine on an I/O adapter to update a translation table used during DMA operations. The translation table is used during a DMA operation to map a virtual address provided by the I/O adapter to a physical address of a data page in the memory modules. If the DMA engine is being underutilized, the operating system updates the translation table such that a virtual address maps to physical address corresponding to a memory location in a more energy efficient memory module. However, if the DMA engine is over-utilized, the operating system may update the translation table such that the data used in the DMA engine is stored in memory modules that provide quicker access times—e.g., the operating system may map virtual addresses to physical addresses in DRAM rather than phase change memory.
    Type: Grant
    Filed: September 25, 2012
    Date of Patent: May 28, 2019
    Assignee: International Business Machines Corporation
    Inventor: Justin K. King
  • Patent number: 10303370
    Abstract: A method and system for controlling an MBC configured flash memory device to store data in an SBC storage mode, or a partial MBC storage mode. In a full MBC storage mode, pages of data are programmed sequentially from a first page to an Nth page for each physical row of memory cells. Up to N virtual page addresses per row of memory cells accompany each page to be programmed for designating the virtual position of the page in the row. For SBC or partial MBC data storage, a flash memory controller issues program command(s) to the MBC memory device using less than the maximum N virtual page addresses for each row. The MBC memory device sequentially executes programming operations up to the last received virtual page address for the row.
    Type: Grant
    Filed: May 10, 2018
    Date of Patent: May 28, 2019
    Assignee: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
    Inventor: Jin-Ki Kim
  • Patent number: 10296398
    Abstract: A controller for a shared memory is disclosed. The controller comprises a transaction scanner configured to scan-in a plurality of transactions to access the shared memory and to divide the transactions into beat-level memory access commands. The controller also comprises a command super-arbiter comprising a plurality of command arbiters corresponding to a plurality of shared memory blocks in the shared memory. The command super-arbiter is configured to access a quality of service for each of the transactions, arbitrate the beat-level memory access commands associated with the transactions based on the quality of service for each of the plurality of transactions, and dispatch the beat-level memory access commands to the shared memory blocks based on results of arbitrating the beat-level memory access commands.
    Type: Grant
    Filed: July 13, 2015
    Date of Patent: May 21, 2019
    Assignee: Futurewei Technologies, Inc.
    Inventors: Hao Luan, Alan Gatherer, Bin Yang
  • Patent number: 10296469
    Abstract: Systems, apparatuses, methods, and computer-readable storage mediums for performing lease-based fencing using a time-limited lease window. During the time-limited lease window, writes to a shared storage medium are permitted, while writes are denied for expired leases. When a successful heartbeat is generated for a primary storage controller, the lease window is extended for the primary storage controller from the time of a previous heartbeat. Accordingly, a prolonged stall between successive heartbeats by the primary storage controller will result in the newly extended lease being expired at the time it is granted. This scheme prevents a split brain scenario from occurring when a secondary storage controller takes over as the new primary storage controller in response to detecting the stall.
    Type: Grant
    Filed: July 24, 2014
    Date of Patent: May 21, 2019
    Assignee: Pure Storage, Inc.
    Inventors: Joern Engel, Alan Driscoll, Neil Vachharajani, Ronald S. Karr
  • Patent number: 10281974
    Abstract: A three-dimensional stacked (3DS) memory module includes multiple memory chips and a data I/O chip physically integrated into the 3D stack. The data I/O chip includes multiple data interfaces and multiple respectively corresponding data buffers. A memory controller routes data traffic through all available data interfaces for maximum bandwidth. In some circumstances, the memory controller directs the data I/O chip to shut down (de-activate) one or more of the data interfaces (for example, to reduce power consumption of the memory module). All subsequent data traffic to and from the memory module is routed through the remaining active interfaces. All physical addresses in the 3DS memory module are addressable through the remaining active interfaces. In some circumstances, the memory controller directs the data I/O chip to re-activate some or all of the de-activated data interfaces. Once re-activated, subsequent data traffic to and from the memory module can again be routed through all active interfaces.
    Type: Grant
    Filed: August 23, 2017
    Date of Patent: May 7, 2019
    Assignee: International Business Machines Corporation
    Inventors: Kevin M. Mcilvain, Saravanan Sethuraman, Warren E. Maule, Kyu-hyoun Kim
  • Patent number: 10269421
    Abstract: Technology is described herein for caching residual data in latches during a write operation of non-volatile storage. When writing data at the request of a host, it is possible for there to be some residual data that cannot be programmed at two (or more) bits per memory cell into a page of memory cells, given the programming scheme being used. This residual data may be cached in latches. The residual data from the latches may be combined with other data from the host to increase programming speed when programming, for example, sequential data using a full sequence programming scheme. Also, caching the residual data in latches keeps write amplification low.
    Type: Grant
    Filed: November 30, 2016
    Date of Patent: April 23, 2019
    Assignee: SanDisk Technologies LLC
    Inventor: Dinesh Agarwal
  • Patent number: 10255187
    Abstract: A method for weak stream software data and instruction prefetching using a hardware data prefetcher is disclosed. A method includes, determining if software includes software prefetch instructions, using a hardware data prefetcher, and, accessing the software prefetch instructions if the software includes software prefetch instructions. Using the hardware data prefetcher, weak stream software data and instruction prefetching operations are executed based on the software prefetch instructions, free of training operations.
    Type: Grant
    Filed: May 3, 2016
    Date of Patent: April 9, 2019
    Assignee: Intel Corporation
    Inventors: Karthikeyan Avudaiyappan, Mohammad Abdallah
  • Patent number: 10255184
    Abstract: Disclosed aspects relate to a computer system having a plurality of processor chips and a plurality of memory buffer chips, and for transferring data in the computer system. One or more of the processor chips is communicatively coupled to at least one memory module which is assigned to the processor chip. One or more of the processor chips includes a cache and is communicatively coupled to one or more of the memory buffer chips via a memory-buffer-chip-specific bidirectional point-to-point communication connection. At least one of the memory buffer chips includes a coherence directory and is configured for being exclusively in charge for implementing directory-based coherence over the caches of the processor chips for at least one pre-defined address-based subset of memory lines stored in at least one of the memory modules assigned to a processor chip.
    Type: Grant
    Filed: November 7, 2016
    Date of Patent: April 9, 2019
    Assignee: International Business Machines Corporation
    Inventor: Burkhard Steinmacher-Burow
  • Patent number: 10248419
    Abstract: Methods, systems and computer program products for accelerating sorting of data are provided herein. A computer-implemented method includes retrieving a plurality of cache lines of data from an input buffer, wherein each cache line comprises a plurality of elements, scattering the plurality of elements of each retrieved cache line into a plurality of bins, wherein said scattering comprises using one or more vector instructions, forming a bin cache line in a corresponding one of the plurality of bins, wherein the bin cache line comprises a group of the plurality of elements which were scattered to the corresponding one of the plurality of bins, writing the bin cache line from the corresponding one of the plurality of bins to a memory, and loading the bin cache line from the memory to the input buffer.
    Type: Grant
    Filed: March 9, 2016
    Date of Patent: April 2, 2019
    Assignee: International Business Machines Corporation
    Inventors: Jeffrey H. Derby, Robert Montoye, Dheeraj Sreedhar