Patents Examined by Tuan Thai
  • Patent number: 10191852
    Abstract: Methods and apparatus for locking at least a portion of a shared memory resource. In one embodiment, an electronic device configured to lock at least a portion of a shared memory is disclosed. The electronic device includes a host processor, at least one peripheral processor and a physical bus interface configured to couple the host processor to the peripheral processor. The electronic device further includes a software framework that is configured to: attempt to lock a portion of the shared memory; verify that the peripheral processor has not locked the shared memory; when the portion of the shared memory is successfully locked via the verification that the peripheral processor has not locked the portion of the shared memory, execute a critical section of the shared memory; and otherwise attempt to lock the at least the portion of the shared memory at a later time.
    Type: Grant
    Filed: September 22, 2016
    Date of Patent: January 29, 2019
    Assignee: Apple Inc.
    Inventors: Vladislav Petkov, Haining Zhang, Karan Sanghi, Saurabh Garg
  • Patent number: 10191859
    Abstract: Methods and apparatus for providing access to a shared memory resource. In one embodiment, a first processor generates a first window register associated with the shared memory resource; and transmits the first window register from the first processor to a second processor, the first window register defining a first extent of address space within the shared memory resource that is directly accessible by the second processor without requiring a performance of arbitration operations by the first processor.
    Type: Grant
    Filed: September 20, 2016
    Date of Patent: January 29, 2019
    Assignee: Apple Inc.
    Inventors: Saurabh Garg, Karan Sanghi, Vladislav Petkov, Haining Zhang
  • Patent number: 10180797
    Abstract: Provided are a computer program product, system and method for determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device. A current write amplification is based on storage writes to a media at a storage device and host writes from a host to the storage device. An adjustment to the current write amplification is determined to produce an adjusted write amplification based on an estimated lifespan of the storage device, a maximum storage writes for the storage device, and the storage writes at the storage device since the storage device was powered-on. A determination is made to an adjustment to spare space based on the adjusted write amplification. The spare space and the free space available to the user are reconfigured to adjust the spare space by the determined adjustment to the spare space.
    Type: Grant
    Filed: May 31, 2017
    Date of Patent: January 15, 2019
    Assignee: INTEL CORPORATION
    Inventor: Knut S. Grimsrud
  • Patent number: 10146445
    Abstract: A memory is disclosed comprising a first memory portion, a second memory portion, and an interface, wherein the memory portions are electrically isolated from each other and the interface is capable of receiving a row command and a column command in the time it takes to cycle the memory once. By interleaving access requests (comprising row commands and column commands) to the different portions of the memory, and by properly timing these access requests, it is possible to achieve full data bus utilization in the memory without increasing data granularity.
    Type: Grant
    Filed: July 13, 2016
    Date of Patent: December 4, 2018
    Assignee: Rambus Inc.
    Inventor: Billy Garrett, Jr.
  • Patent number: 10140213
    Abstract: A memory controller receives a memory invalidation request that references a line of far memory in a two level system memory topology with far memory and near memory, identifies an address of the near memory corresponding to the line, and reads data at the address to determine whether a copy of the line is in the near memory. Data of the address is to be flushed to the far memory if the data includes a copy of another line of the far memory and the copy of the other line is dirty. A completion is sent for the memory invalidation request to indicate that a coherence agent is granted exclusive access to the line. With exclusive access, the line is to be modified to generate a modified version of the line and the address of the near memory is to be overwritten with the modified version of the line.
    Type: Grant
    Filed: March 2, 2017
    Date of Patent: November 27, 2018
    Assignee: Intel Corporation
    Inventors: Robert G. Blankenship, Jeffrey D. Chamberlain, Yen-Cheng Liu, Vedaraman Geetha
  • Patent number: 10133493
    Abstract: A Dynamic Random Access Memory (DRAM) controller includes a memory interface and a processor. The memory interface is configured to communicate with a DRAM including one or more memory banks. The processor is configured to receive Input/Output (I/O) commands, each I/O command addressing a respective memory bank and a respective row within the memory bank to be accessed in the DRAM, to further receive one or more indications, indicative of likelihoods that a subsequent I/O command will address a same row in a same memory bank as a previous I/O command, to adaptively set, based on the indications, a policy of deactivating rows of the DRAM, and to execute the I/O commands in the DRAM in accordance with the policy.
    Type: Grant
    Filed: February 28, 2017
    Date of Patent: November 20, 2018
    Assignee: Marvell World Trade Ltd.
    Inventors: Michael Weiner, Hunglin Hsu, Nadav Klein, Junhua Xu, Chia-Hung Chien
  • Patent number: 10127090
    Abstract: A method and an apparatus for determining a usage level of a memory device to notify a running application to perform memory reduction operations selected based on the memory usage level are described. An application calls APIs (Application Programming Interface) integrated with the application codes in the system to perform memory reduction operations. A memory usage level is determined according to a memory usage status received from the kernel of a system. A running application is associated with application priorities ranking multiple running applications statically or dynamically. Selecting memory reduction operations and notifying a running application are based on application priorities. Alternatively, a running application may determine a mode of operation to directly reduce memory usage in response to a notification for reducing memory usage without using API calls to other software.
    Type: Grant
    Filed: November 28, 2016
    Date of Patent: November 13, 2018
    Assignee: Apple Inc.
    Inventors: Matthew G. Watson, James Michael Magee
  • Patent number: 10120811
    Abstract: Provided are a computer program product, system, and method for considering a frequency of access to groups of tracks and density of the groups to select groups of tracks to destage. One of a plurality of densities for one of a plurality of groups of tracks is incremented in response to determining at least one of that the group is not ready to destage and that one of the tracks in the group in the cache transitions to being ready to destage. A determination is made of a group frequency indicating a frequency at which tracks in the group are modified. At least one of the density and the group frequency is used for each of the groups to determine whether to destage the group. The tracks in the group in the cache are destaged to the storage in response to determining to destage the group.
    Type: Grant
    Filed: September 29, 2015
    Date of Patent: November 6, 2018
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kevin J. Ash, Lokesh M. Gupta
  • Patent number: 10120605
    Abstract: A data allocating method includes steps of: determining whether data to be written into a physical memory block is hot data or cold data; when the data is hot data, according to a hot data allocating order, searching at least one first empty sub-block from the physical memory block to allocate the data; when the data is cold data, according to a cold data allocating order, searching at least one second empty sub-block from the physical memory block to allocate the data.
    Type: Grant
    Filed: April 8, 2016
    Date of Patent: November 6, 2018
    Assignee: MACRONIX INTERNATIONAL CO., LTD.
    Inventors: Hung-Sheng Chang, Yu-Ming Chang, Hsiang-Pang Li, Yuan-Hao Chang, Tei-Wei Kuo
  • Patent number: 10108550
    Abstract: Methods, systems, and apparatus for receiving a request to access, from a main memory, data contained in a first portion of a first page of data, the first page of data having a first page size; initiating a page fault based on determining that the first page of data is not stored in the main memory; allocating a portion of the main memory equivalent to the first page size; transferring the first portion of the first page of data from the secondary memory to the allocated portion of the main memory without transferring the entire first page of data; and updating a first page table entry associated with the first portion of the first page of data to point to a location of the allocated portion of the main memory to which the first portion of the first page of data is transferred.
    Type: Grant
    Filed: September 22, 2016
    Date of Patent: October 23, 2018
    Assignee: Google LLC
    Inventors: Joel Dylan Coburn, Albert Borchers, Christopher Lyle Johnson, Robert S. Sprinkle
  • Patent number: 10101914
    Abstract: A memory management method for a rewritable non-volatile memory module is provided. The memory management method includes receiving an adjust command from a host system, wherein the adjust command is configured to indicate that data stored in at least one logical unit of a plurality of logical units is invalid; updating a logical address status table according to the adjust command, wherein the logical address status table reflects a data status of the data stored in each of the logical units, wherein the data status includes a first state or a second state; and updating a physical address status table according to the logical address status table and the physical address status table if a predetermined condition is met, wherein the physical address status table reflects a data status of data stored in each of a plurality of physical programming units.
    Type: Grant
    Filed: April 8, 2016
    Date of Patent: October 16, 2018
    Assignee: PHISON ELECTRONICS CORP.
    Inventors: Kok-Yong Tan, Horng-Sheng Yan
  • Patent number: 10102119
    Abstract: A non-volatile memory system may include a write task queue that queues write commands and a garbage collection module that analyzes information about pending write commands in the write task queue in order to perform garbage collection. Based on its analysis of the write task queue, the garbage collection module performs discouraging actions to discourage itself from selecting certain blocks in a candidate list to be source blocks for garbage collection. In addition or alternatively, the garbage collection module performs encouraging actions to encourage itself to select blocks storing current valid data associated with a write command as source blocks for garbage collection. Write amplification may be reduced as a result of the discouraging and encouraging actions.
    Type: Grant
    Filed: October 30, 2015
    Date of Patent: October 16, 2018
    Assignee: SanDisk Technologies LLC
    Inventors: Raja Alwar Gopinath, Daniel Edward Tuers, Nicholas Thomas, Abhijeet Manohar
  • Patent number: 10101941
    Abstract: For handling data mirror invalid timestamped write activities, an apparatus is disclosed. The apparatus includes a data mirror that mirrors write activities from a first storage device at a first site to a second storage device at a second site. The apparatus includes a time monitor that retrieves a timestamp for each of the mirrored write activities and monitors a reference clock in a storage control session as a comparison to validate the timestamp for each of the mirrored write activities. If the timestamp of a mirrored write activity is outside of a pre-determined parameter range, then the time monitor identifies the mirrored write activity as having a missing timestamp, assigns a next logical timestamp to the mirrored write activity, and prepares the mirrored write activity for inclusion in a consistency group associated with the next logical timestamp.
    Type: Grant
    Filed: September 20, 2016
    Date of Patent: October 16, 2018
    Assignee: International Business Machines Corporation
    Inventors: Dash D. Miller, Miguel A. Perez, David C. Reed
  • Patent number: 10102129
    Abstract: A processor includes a processing core, a L1 cache comprising a first processing core and a first L1 cache comprising a first L1 cache data entry of a plurality of L1 cache data entries to store data. The processor also includes an L2 cache comprising a first L2 cache data entry of a plurality of L2 cache data entries. The first L2 cache data entry corresponds to the first L1 cache data entry and each of the plurality of L2 cache data entries are associated with a corresponding presence bit (pbit) of a plurality of pbits. Each of the plurality of pbits indicates a status of a corresponding one of the plurality of L2 cache data entries. The processor also includes a cache controller, which in response to a first request among a plurality of requests to access the data at the first L1 cache data entry, determines that a copy of the data is stored in the first L2 cache data entry; and retrieves the copy of the data from the L2 cache data entry in view of the status of the pbit.
    Type: Grant
    Filed: December 21, 2015
    Date of Patent: October 16, 2018
    Assignee: Intel Corporation
    Inventors: Krishna N. Vinod, Avinash Sodani, Zainulabedin J. Aurangabadwala
  • Patent number: 10101920
    Abstract: Embodiments disclosed herein are related to systems and methods for attributing disk Input/Output (IO) to one or more system entities. A disk IO attribution context is generated that defines disk IO utilization parameters for a system entity. A pointer is attached to the system entity that points to the disk IO attribution context. The pointer is exposed to system components of an underlying computer system. The pointer prompts the system components to report the disk IO utilization parameters when the system components have performed a disk IO operation for the system entity. The disk IO utilization parameters reported by the one or more system components are recorded in the disk IO attribution context.
    Type: Grant
    Filed: June 30, 2016
    Date of Patent: October 16, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mehmet Iyigun, Yevgeniy M Bak
  • Patent number: 10101964
    Abstract: A system and method for managing data in a ring buffer is disclosed. The system includes a legacy ring buffer functioning as an on-chip ring buffer, a supplemental buffer for storing data in the ring buffer, a preload ring buffer that is on-chip and capable of receiving preload data from the supplemental buffer, a write controller that determines where to write data that is write requested by a write client of the ring buffer, and a read controller that controls a return of data to a read client pursuant to a read request to the ring buffer.
    Type: Grant
    Filed: September 20, 2016
    Date of Patent: October 16, 2018
    Assignee: ADVANCED MICRO DEVICES, INC.
    Inventors: XuHong Xiong, Pingping Shao, ZhongXiang Luo, ChenBin Wang
  • Patent number: 10095417
    Abstract: A method for reading data from persistent storage. The method includes receiving a client read request for data from a client. The client read request includes a logical address. The method further includes determining a physical address corresponding to the logical address, determining that the physical address is directed to an open block in the persistent storage and determining that the physical address is directed to a last closed word line of the open block. The method further includes, based on these determinations, obtaining at least one read threshold value for the reading from last closed word lines, issuing a control module read request comprising the at least one read threshold value to a storage module that includes the open block, and obtaining the data from the open block using the at least one read threshold value.
    Type: Grant
    Filed: December 13, 2016
    Date of Patent: October 9, 2018
    Assignee: EMC IP Holding Company LLC
    Inventors: Seungjune Jeon, Haleh Tabrizi, Alan Hanson, Andrew Cullen, Justin Ha, Michael Rijo, Samuel Hudson
  • Patent number: 10095628
    Abstract: Provided are a computer program product, system, and method for considering a density of tracks to destage in groups of tracks to select groups of tracks to destage. Groups of tracks in the cache are scanned to determine whether they are ready to destage. A determination is made as to whether the tracks in one of the groups are ready to destage in response to scanning the tracks in the group. A density for the group is increased in response to determining that the group is not ready to destage. The group is destaged in response to determining that the density of the group exceeds a density threshold.
    Type: Grant
    Filed: September 29, 2015
    Date of Patent: October 9, 2018
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kevin J. Ash, Lokesh M. Gupta
  • Patent number: 10089240
    Abstract: A computer architecture provides a memory cache that is accessed not by physical addresses but by virtual addresses directly from running processes. Ambiguities that can result from multiple virtual addresses mapping to a single physical address are handled by dynamically tracking synonyms and connecting a limited number of virtual synonyms mapping to the same physical address to a single key virtual address that is used exclusively for cache access.
    Type: Grant
    Filed: September 28, 2015
    Date of Patent: October 2, 2018
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Gurindar S. Sohi, Hongil Yoon
  • Patent number: 10082983
    Abstract: A system for monitoring a plurality of storage systems includes an interface specifying a set of methods for using at least one storage system, an implementation of the interface for each of the plurality of storage systems, wherein at least one of the implementations of the interface is configured to process a plurality of requests, and a performance monitor configured to monitor performance of requests for at least one of a plurality of classes of requests.
    Type: Grant
    Filed: April 5, 2016
    Date of Patent: September 25, 2018
    Assignee: International Business Machines Corporation
    Inventor: Arun K. Iyengar