Per-group prefetch status to reduce duplicate prefetch requests

    公开(公告)号:US10664403B1

    公开(公告)日:2020-05-26

    申请号:US16200585

    申请日:2018-11-26

    摘要: A technique for prefetching data for a cache is provided. The technique includes detecting access to a data block. In response to the detection, a prefetch block generates proposed blocks for prefetch. The prefetch block also examines prefetch tracking data to determine whether a prefetch group including the proposed blocks is marked as already having been prefetched. If the group has been marked as already having been prefetched, then prefetch block does not prefetch that data, thereby avoiding traffic between the prefetch block and the cache memory. Using this technique, unnecessary requests to prefetch data into the cache memory are avoided.

    MULTIPLE LINKED LIST DATA STRUCTURE
    2.
    发明申请

    公开(公告)号:US20180246820A1

    公开(公告)日:2018-08-30

    申请号:US15442402

    申请日:2017-02-24

    发明人: Jimshed Mirza Qian Ma

    IPC分类号: G06F13/16

    摘要: A system and method for maintaining information of pending operations are described. A buffer uses multiple linked lists implementing a single logical queue for a single requestor. The buffer maintains multiple head pointers and multiple tail pointers for the single requestor. Data entries of the single logical queue are stored in an alternating pattern among the multiple linked lists. During the allocation of buffer entries, the tail pointers are selected in the same alternating manner, and during the deallocation of buffer entries, the multiple head pointers are selected in the same manner.

    LOW LATENCY DIRTY RAM FOR CACHE INVALIDATION SPEED IMPROVEMENT

    公开(公告)号:US20200159664A1

    公开(公告)日:2020-05-21

    申请号:US16195435

    申请日:2018-11-19

    IPC分类号: G06F12/0891 G06F3/06

    摘要: A technique for improving performance of a cache is provided. The technique involves maintaining indicators of whether cache entries are dirty in a random access memory (“RAM”) that has a lower latency to a cache controller than the cache memory that stores the cache entries. When a request to invalidate one or more cache entries is received by the cache controller, the cache controller checks the RAM to determine whether any cache entries are dirty and thus should be written out to a backing store. Using the RAM removes the need to check the actual cache memory for whether cache entries are dirty, which reduces the latency associated with performing such checks and thus with performing cache invalidations.

    Multiple linked list data structure

    公开(公告)号:US10545887B2

    公开(公告)日:2020-01-28

    申请号:US15442402

    申请日:2017-02-24

    发明人: Jimshed Mirza Qian Ma

    IPC分类号: G06F13/16

    摘要: A system and method for maintaining information of pending operations are described. A buffer uses multiple linked lists implementing a single logical queue for a single requestor. The buffer maintains multiple head pointers and multiple tail pointers for the single requestor. Data entries of the single logical queue are stored in an alternating pattern among the multiple linked lists. During the allocation of buffer entries, the tail pointers are selected in the same alternating manner, and during the deallocation of buffer entries, the multiple head pointers are selected in the same manner.

    VARIABLE LATENCY REQUEST ARBITRATION
    5.
    发明申请

    公开(公告)号:US20200159581A1

    公开(公告)日:2020-05-21

    申请号:US16195412

    申请日:2018-11-19

    IPC分类号: G06F9/50

    摘要: A technique for scheduling processing tasks having different latencies is provided. The technique involves identifying one or more available requests in a request queue, where each request queue corresponds to a different latency. A request arbiter examines a shift register to determine whether there is an available slot for the one or more requests. A slot is available for a request if there is a slot that is a number of slots from the end of the shift register equal to the number of cycles the request takes to complete processing in a corresponding processing pipeline. If a slot is available, the request is scheduled for execution and the slot is marked as being occupied. If a slot is not available, the request is not scheduled for execution on the current cycle. On transitioning to a new cycle, the shift register is shifted towards its end and the technique repeats.

    PER-GROUP PREFETCH STATUS TO REDUCE DUPLICATE PREFETCH REQUESTS

    公开(公告)号:US20200167287A1

    公开(公告)日:2020-05-28

    申请号:US16200585

    申请日:2018-11-26

    摘要: A technique for prefetching data for a cache is provided. The technique includes detecting access to a data block. In response to the detection, a prefetch block generates proposed blocks for prefetch. The prefetch block also examines prefetch tracking data to determine whether a prefetch group including the proposed blocks is marked as already having been prefetched. If the group has been marked as already having been prefetched, then then prefetch block does not prefetch that data, thereby avoiding traffic between the prefetch block and the cache memory. Using this technique, unnecessary requests to prefetch data into the cache memory are avoided.

    COMPRESSED MEMORY ACCESS IMPROVEMENT THROUGH COMPRESSION-AWARE PARTIAL WRITES

    公开(公告)号:US20200167076A1

    公开(公告)日:2020-05-28

    申请号:US16200573

    申请日:2018-11-26

    IPC分类号: G06F3/06 G06F12/0875 G06F9/38

    摘要: A technique for improving performance of a data compression system is provided. The technique is applicable to compressed data sets that include compression blocks. Each compression block may be either compressed or uncompressed. Metadata indicating whether compression blocks are actually compressed or not is stored. If compression blocks are not compressed, then a read-decompress-modify-compress-write pipeline is bypassed. Instead, a compression unit writes the data specified by the partial request into the compression block, without reading, decompressing, modifying, recompressing, and writing the data, resulting in a much faster operation.

    Low latency dirty RAM for cache invalidation speed improvement

    公开(公告)号:US10956338B2

    公开(公告)日:2021-03-23

    申请号:US16195435

    申请日:2018-11-19

    IPC分类号: G06F12/0891 G06F3/06

    摘要: A technique for improving performance of a cache is provided. The technique involves maintaining indicators of whether cache entries are dirty in a random access memory (“RAM”) that has a lower latency to a cache controller than the cache memory that stores the cache entries. When a request to invalidate one or more cache entries is received by the cache controller, the cache controller checks the RAM to determine whether any cache entries are dirty and thus should be written out to a backing store. Using the RAM removes the need to check the actual cache memory for whether cache entries are dirty, which reduces the latency associated with performing such checks and thus with performing cache invalidations.

    Variable latency request arbitration

    公开(公告)号:US10915359B2

    公开(公告)日:2021-02-09

    申请号:US16195412

    申请日:2018-11-19

    IPC分类号: G06F9/50

    摘要: A technique for scheduling processing tasks having different latencies is provided. The technique involves identifying one or more available requests in a request queue, where each request queue corresponds to a different latency. A request arbiter examines a shift register to determine whether there is an available slot for the one or more requests. A slot is available for a request if there is a slot that is a number of slots from the end of the shift register equal to the number of cycles the request takes to complete processing in a corresponding processing pipeline. If a slot is available, the request is scheduled for execution and the slot is marked as being occupied. If a slot is not available, the request is not scheduled for execution on the current cycle. On transitioning to a new cycle, the shift register is shifted towards its end and the technique repeats.