Patents Examined by Yong Choe
  • Patent number: 9753653
    Abstract: Systems, methods, and/or devices are used to manage high-priority NAND operations. In some embodiments, the method includes receiving a first command (e.g., requesting a high-priority memory operation) corresponding to a first location (e.g., having both a first physical address and a first aliased physical address) in a first die of a plurality of physical non-volatile memory die in a storage device. If the first die is performing a blocking low-priority memory operation (e.g., the low-priority operation was sent to the first die using a second physical address), the method includes sending a memory operation command, corresponding to the first memory operation, to the first die using the first aliased physical address. In some embodiments, a predefined die-selection portion of the second physical address matches the predefined die-selection portion of the first physical address and does not match the predefined die-selection portion of the first aliased physical address.
    Type: Grant
    Filed: October 28, 2015
    Date of Patent: September 5, 2017
    Assignee: SanDisk Technologies LLC
    Inventors: Robert W. Ellis, Jack Edward Frayer, Vidyabhushan Mohan, Todd Lindberg
  • Patent number: 9747155
    Abstract: A method of distributing data in a distributed storage system includes receiving a file and dividing the received file into chunks. The chunks are data-chunks and non-data chunks. The method further includes grouping chunks into a group and determining a distribution of the chunks of the group among storage devices of the distributed storage system based on a maintenance hierarchy of the distributed storage system. The maintenance hierarchy includes hierarchical maintenance levels and maintenance domains. Each maintenance domain has an active state or an inactive state; and each storage device is associated with at least one maintenance domain. The method also includes distributing the chunks of the group to the storage devices based on the determined distribution. The chunks of the group are distributed across multiple maintenance domains to maintain an ability to reconstruct chunks of the group when a maintenance domain is in the inactive state.
    Type: Grant
    Filed: November 3, 2016
    Date of Patent: August 29, 2017
    Assignee: Google Inc.
    Inventors: Robert Cypher, Sean Quinlan, Steven Robert Schirripa, Lidor Carmi, Christian Eric Schrock
  • Patent number: 9747318
    Abstract: The invention relates to retrieving data from a storage system. One embodiment of the invention comprises receiving a write operation, establishing a correspondence relationship between a logic block address and a physical block address of the write operation, and determining whether a valid data percentage in a mapping table is greater than a predetermined threshold after the correspondence relationship is added in stored metadata of stored metadata.
    Type: Grant
    Filed: June 15, 2015
    Date of Patent: August 29, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Min Fang, Hui X. Gu, Xiao Yan Li, Fan Gang Zeng
  • Patent number: 9747031
    Abstract: A computer system for copying a source file to a destination file using a virtual memory manager of a computer operating system is provided. One or more processors, one or more non-tangible computer-readable storage devices, and a plurality of program instructions are included. The program instructions provide for receiving, by the virtual memory manager, a request to copy the source file to a destination file. The program instructions further provides that based on the status of the virtual page, performing at least one moving the virtual page to the destination file, copying the virtual page to the destination file, reading the virtual page into memory, and ignoring the virtual page.
    Type: Grant
    Filed: November 8, 2016
    Date of Patent: August 29, 2017
    Assignee: International Business Machines Corporation
    Inventors: Vishal C. Aslot, Ninad S. Palsule
  • Patent number: 9747201
    Abstract: An electronic device with volatile memory repeatedly compares an amount of free volatile memory to a first predetermined threshold level of free volatile memory. When the device determines that the amount of free volatile memory is less than the first predetermined threshold level, the device deallocates volatile memory by terminating one or more processes based on predetermined priority levels of the one or more processes.
    Type: Grant
    Filed: March 26, 2015
    Date of Patent: August 29, 2017
    Assignee: FACEBOOK, INC.
    Inventors: Dung Nguyen Tien, Fraidun Akhi, Jonathan Cook
  • Patent number: 9740414
    Abstract: Optimizing copy operations in a storage array, including: receiving a plurality of copy operations; detecting a triggering event that causes a storage array controller to initiate execution of the plurality of copy operations; and combining, in dependence upon a metadata optimization policy, the plurality of copy operations into a single copy operation.
    Type: Grant
    Filed: October 29, 2015
    Date of Patent: August 22, 2017
    Assignee: Pure Storage, Inc.
    Inventors: Jianting Cao, Christopher Golden, David Grunwald, Luke Paulsen, Scott Smith
  • Patent number: 9740424
    Abstract: A computer program product for copying a source file to a destination file using a virtual memory manager of a computer operating system is provided. The computer program product includes receiving, by the virtual memory manager, a request to copy the source file to a destination file. The computer program product further provides that based on the status of the virtual page, performing at least one moving the virtual page to the destination file, copying the virtual page to the destination file, reading the virtual page into memory, and ignoring the virtual page.
    Type: Grant
    Filed: November 8, 2016
    Date of Patent: August 22, 2017
    Assignee: International Business Machines Corporation
    Inventors: Vishal C. Aslot, Ninad S. Palsule
  • Patent number: 9740657
    Abstract: A memory device for multiple processors capable of processing a plurality of memory access requests and a memory system having the same are provided. The memory device includes one command and control signal port configured to receive a command and control signal from a memory controller, one address port configured to receive an address signal from the memory controller, a data port configured to form a plurality of data channels being independently driven to simultaneously process a plurality of memory access requests of the memory controller, and a plurality of memory banks divided into a plurality of sub-banks to simultaneously perform operations according to the plurality of memory access requests when the plurality of memory access requests are sequentially transmitted through the command and control signal port and the address port.
    Type: Grant
    Filed: June 30, 2014
    Date of Patent: August 22, 2017
    Assignee: Foundation of Soongsil University-Industry Cooperation
    Inventor: Chanho Lee
  • Patent number: 9734081
    Abstract: A compute server accomplishes physical address to virtual address translation to optimize physical storage capacity via thin provisioning techniques. The thin provisioning techniques can minimize disk seeks during command functions by utilizing a translation table and free list stored to both one or more physical storage devices as well as to a cache. The cached translation table and free list can be updated directly in response to disk write procedures. A read-only copy of the cached translation table and free list can be created and stored to physical storage device for use in building the cached translation table and free list upon a boot of the compute server. The copy may also be used to repair the cached translation table in the event of a power failure or other event affecting the cache.
    Type: Grant
    Filed: December 10, 2014
    Date of Patent: August 15, 2017
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Sean Lie
  • Patent number: 9733866
    Abstract: In one embodiment, a method includes determining a size of a file associated with each job in a job queue of files to be migrated to one of a plurality of drives that includes at least one of each of the following: a faster drive and a relatively slower drive. The availability of a faster drive is determined. The file associated with the job in the job queue having a file size larger than a threshold is sent to the faster drive.
    Type: Grant
    Filed: January 28, 2015
    Date of Patent: August 15, 2017
    Assignee: International Business Machines Corporation
    Inventor: Khanh V. Ngo
  • Patent number: 9734069
    Abstract: Systems and methods for multicast tree-based data distribution in a distributed shared cache. An example processing system comprises: a plurality of processing cores, each processing core communicatively coupled to a cache; a tag directory associated with caches of the plurality of processing cores; a shared cache associated with the tag directory; a processing logic configured, responsive to receiving an invalidate request with respect to a certain cache entry, to: allocate, within the shared cache, a shared cache entry corresponding to the certain cache entry; transmit, to at least one of: a tag directory or a processing core that last accessed the certain entry, an update read request with respect to the certain cache entry; and responsive to receiving an update of the certain cache entry, broadcast the update to at least one of: one or more tag directories or one or more processing cores identified by a tag corresponding to the certain cache entry.
    Type: Grant
    Filed: December 11, 2014
    Date of Patent: August 15, 2017
    Assignee: Intel Corporation
    Inventors: Simon C. Steely, Jr., William C. Hasenplaugh, Samantika S. Sury
  • Patent number: 9734911
    Abstract: A mass storage memory system and method of operation are disclosed. The memory system includes an interface adapted to receive data from a host system, a plurality of memory die and a controller, where the controller is configured to read or write data synchronously across a plurality of die connected to different channels based on a first command, and to read or write data asynchronously and independently in different die in the same channel based on a second command. The controller may program data in a maximum unit of programming for a single memory die. The controller may be a plurality of controllers each configured to select which die of an exclusive subset of die to write data based on characteristics of the die in the subset. The plurality of die may be multi-layer, and multi-partition per layer, flash memory die.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: August 15, 2017
    Assignee: SanDisk Technologies LLC
    Inventors: Alan Welsh Sinclair, Nicholas James Thomas, Barry Wright
  • Patent number: 9727370
    Abstract: A transactional execution of a set of instructions in a transaction of a program may be initiated to collect memory operand access characteristics of a set of instructions of a transaction during the transactional execution. The memory operand access characteristics may be stored upon a termination of the transactional execution of the set of instructions. The memory operand access characteristics may include an address of an accessed storage location, a count of a number of times the storage location is accessed, a purpose value indicating whether the storage location is accessed for a fetch, store, or update operation, a count of a number of times the storage location is accessed for one or more of a fetch, store, or update operation; a translation mode in which the storage location is accessed; and an addressing mode.
    Type: Grant
    Filed: August 23, 2016
    Date of Patent: August 8, 2017
    Assignee: International Business Machines Corporation
    Inventors: Dan F. Greiner, Michael Karl Gschwind, Valentina Salapura, Timothy J. Slegel
  • Patent number: 9720734
    Abstract: Systems and methods disclosed herein are used to efficiently configure a plurality of memory caches. In one aspect, a method includes a server receiving or accessing a storage policy including a first caching mode for a first set of one or more virtual machine elements and a second caching mode for a second set of one or more virtual machine elements. If a virtual machine element requires configuration, the server determines whether the virtual machine element is a virtual machine element of the first set or the second set. If the virtual machine element is a virtual machine element of the first set, the server applies the first caching mode to a section of a logical solid state drive. If the virtual machine element is a virtual machine element of the second set, the server applies the second caching mode to the section of the logical solid state drive.
    Type: Grant
    Filed: October 28, 2015
    Date of Patent: August 1, 2017
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: Jaidil Karippara, Serge Shats, Atoka Vikuto Sema
  • Patent number: 9720725
    Abstract: Transactional execution of a transaction beginning instruction initiates prefetching, by a CPU, of discontiguous storage locations specified by a list. The list includes entries specifying addresses and may also include corresponding metadata. The list may be specified by levels of indirection. Fetching of corresponding discontiguous cache lines is initiated while in TX mode. Additional instructions in the transaction may be executed and use the prefetched cache lines.
    Type: Grant
    Filed: August 20, 2015
    Date of Patent: August 1, 2017
    Assignee: International Business Machines Corporation
    Inventors: Fadi Y. Busaba, Dan F. Greiner, Michael Karl Gschwind, Maged M. Michael, Valentina Salapura, Eric M. Schwarz, Timothy J. Slegel
  • Patent number: 9711194
    Abstract: A circuit for controlling the operation of a memory system having different types of memory is described. The circuit comprises a first memory having a first type of memory element and having a first access time; a second memory having a second type of memory element and having a second access time, wherein the second type of memory element is different than the first type of memory element; a memory control circuit enabling access to the first memory and the second memory; a delay buffer coupled to the second memory to compensate for a difference in the first access time and the second access time; and a circuit for merging outputs of the first memory and delayed outputs of the second memory to generate ordered output data. A method of controlling the operation of a memory system is also disclosed.
    Type: Grant
    Filed: January 28, 2015
    Date of Patent: July 18, 2017
    Assignee: XILINX, INC.
    Inventors: Michaela Blott, Ling Liu, Kornelis A. Vissers
  • Patent number: 9710392
    Abstract: Embodiments are described for methods and systems for mapping virtual memory pages to physical memory pages by analyzing a sequence of memory-bound accesses to the virtual memory pages, determining a degree of contiguity between the accessed virtual memory pages, and mapping sets of the accessed virtual memory pages to respective single physical memory pages. Embodiments are also described for a method for increasing locality of memory accesses to DRAM in virtual memory systems by analyzing a pattern of virtual memory accesses to identify contiguity of accessed virtual memory pages, predicting contiguity of the accessed virtual memory pages based on the pattern, and mapping the identified and predicted contiguous virtual memory pages to respective single physical memory pages.
    Type: Grant
    Filed: August 15, 2014
    Date of Patent: July 18, 2017
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Syed Ali Jafri, Yasuko Eckert, Srilatha Manne, Mithuna S Thottethodi
  • Patent number: 9705819
    Abstract: A device or system includes a plurality of storage resources each associated with a respective performance class, each being associated with selected performance characteristics such as IOPS, bandwidth, etc. The device or system includes a compute instance having access to allocated storage resources, the allocated storage devices including one or more storage resources. The device or system also includes an optimization component adapted to obtain information relating to utilization by the compute instance component of the allocated storage resources, determine that a change to the allocated storage resources is necessary, based on the information, cause data to be migrated from a first storage resource associated with a first performance class to a second storage resource associated with a second storage class, and cause a removal from the allocated storage resources of the first storage resource and an addition to the allocated storage resources of the second storage resource.
    Type: Grant
    Filed: November 7, 2016
    Date of Patent: July 11, 2017
    Assignee: FittedCloud, Inc.
    Inventors: Prakash Manden, Prashant Parikh, Jin Ren, Jienhua Huang
  • Patent number: 9696917
    Abstract: Example embodiments of the present invention relate to a method, an apparatus, and a computer program product for updating disk geometry in a multipathing environment. The method includes receiving a disk geometry update for a logical unit on a storage array accessible via a multipathing device in the multipathing environment. The method then includes translating the disk geometry update for the logical unit for each respective disk device aggregated by the multipathing device. Requests for the logical unit then may be issued according to the updated geometry.
    Type: Grant
    Filed: June 30, 2014
    Date of Patent: July 4, 2017
    Assignee: EMC IP Holding Company LLC
    Inventors: Manu R. Sareena, Prashant Kulli, Shivasharan Srikanteshwara, Kurumurthy Gokam, Nihar R. Panda
  • Patent number: 9696908
    Abstract: A non volatile memory device includes a first buffer register configured to receive and store the data to be stored into the memory device provided via a memory bus. A command window is activatable for interposing itself for access to a memory matrix between the first buffer element and the memory matrix. The command window includes a second buffer element that stores data stored in or to be stored into a group of memory elements. A first data transfer means executes a first transfer of the data stored in the second buffer register into the first buffer register during a first phase of a data write operation started by the reception of a first command. A second data transfer means receives the data provided by the memory bus and modifies, based on the received data, the data stored in the first buffer register during a second phase of the data write operation started by the reception of a second command.
    Type: Grant
    Filed: December 28, 2015
    Date of Patent: July 4, 2017
    Assignee: Micron Technology, Inc.
    Inventors: Daniele Balluchi, Graziano Mirichigni