Flexible dictionary sharing for compressed caches

    公开(公告)号:US11586555B2

    公开(公告)日:2023-02-21

    申请号:US17231957

    申请日:2021-04-15

    Abstract: Systems, apparatuses, and methods for implementing flexible dictionary sharing techniques for caches are disclosed. A set-associative cache includes a dictionary for each data array set. When a cache line is to be allocated in the cache, a cache controller determines to which set a base index of the cache line address maps. Then, a selector unit determines which dictionary of a group of dictionaries stored by those sets neighboring this set would achieve the most compression for the cache line. This dictionary is then selected to compress the cache line. An offset is added to the base index of the cache line to generate a full index in order to map the cache line to the set corresponding to this chosen dictionary. The compressed cache line is stored in this set with the chosen dictionary, and the offset is stored in the corresponding tag array entry.

    SEMI-SORTING COMPRESSION WITH ENCODING AND DECODING TABLES

    公开(公告)号:US20210050864A1

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

    申请号:US16542872

    申请日:2019-08-16

    Abstract: A data processing platform, method, and program product perform compression and decompression of a set of data items. Suffix data and a prefix are selected for each respective data item in the set of data items based on data content of the respective data item. The set of data items is sorted based on the prefixes. The prefixes are encoded by querying multiple encoding tables to create a code word containing compressed information representing values of all prefixes for the set of data items. The code word and suffix data for each of the data items are stored in memory. The code word is decompressed to recover the prefixes. The recovered prefixes are paired with their respective suffix data.

    SYSTEM AND METHOD FOR SELF-RESIZING ASSOCIATIVE PROBABILISTIC HASH-BASED DATA STRUCTURES

    公开(公告)号:US20200167327A1

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

    申请号:US16692679

    申请日:2019-11-22

    Abstract: A method of maintaining a probabilistic filter includes, in response to receiving a key K1 for adding to the probabilistic filter, generating a fingerprint F1 based on applying a fingerprint hash function HF to the key K1, identifying an initial bucket Bi1 by selecting between at least a first bucket B1 determined based on a first bucket hash function H1 of the key K1 and a second bucket B2 determined based on a second bucket hash function H2 of the key K1, and inserting the fingerprint F1 into the initial bucket Bi1; and resizing the probabilistic filter. Resizing the probabilistic filter includes incrementing a resize counter value, determining a bucket B′ for the fingerprint F1 based on a value of the fingerprint F1 and the resize counter value, and inserting the fingerprint F1 into the bucket B′ in the probabilistic filter.

    Instruction set architecture and software support for register state migration

    公开(公告)号:US10037267B2

    公开(公告)日:2018-07-31

    申请号:US15299990

    申请日:2016-10-21

    Abstract: Systems, apparatuses, and methods for migrating execution contexts are disclosed. A system includes a plurality of processing units and memory devices. The system is configured to execute any number of software applications. The system is configured to detect, within a first software application, a primitive for migrating at least a portion of the execution context of a source processing unit to a target processing unit, wherein the primitive includes one or more instructions. The execution context includes a plurality of registers. A first processing unit is configured to execute the one or more instructions of the primitive to cause a portion of an execution context of the first processing unit to be migrated to a second processing unit. In one embodiment, executing the primitive instruction(s) causes an instruction pointer value, with an optional offset value, to be sent to the second processing unit.

    FLEXIBLE DICTIONARY SHARING FOR COMPRESSED CACHES

    公开(公告)号:US20230161710A1

    公开(公告)日:2023-05-25

    申请号:US18158212

    申请日:2023-01-23

    CPC classification number: G06F12/0895 H03M7/3088 G06F2212/1044 G06F2212/608

    Abstract: Systems, apparatuses, and methods for implementing flexible dictionary sharing techniques for caches are disclosed. A set-associative cache includes a dictionary for each data array set. When a cache line is to be allocated in the cache, a cache controller determines to which set a base index of the cache line address maps. Then, a selector unit determines which dictionary of a group of dictionaries stored by those sets neighboring this set would achieve the most compression for the cache line. This dictionary is then selected to compress the cache line. An offset is added to the base index of the cache line to generate a full index in order to map the cache line to the set corresponding to this chosen dictionary. The compressed cache line is stored in this set with the chosen dictionary, and the offset is stored in the corresponding tag array entry.

    SEMI-SORTING COMPRESSION WITH ENCODING AND DECODING TABLES

    公开(公告)号:US20220239315A1

    公开(公告)日:2022-07-28

    申请号:US17722931

    申请日:2022-04-18

    Abstract: A data processing platform, method, and program product perform compression and decompression of a set of data items. Suffix data and a prefix are selected for each respective data item in the set of data items based on data content of the respective data item. The set of data items is sorted based on the prefixes. The prefixes are encoded by querying multiple encoding tables to create a code word containing compressed information representing values of all prefixes for the set of data items. The code word and suffix data for each of the data items are stored in memory. The code word is decompressed to recover the prefixes. The recovered prefixes are paired with their respective suffix data.

    Flexible dictionary sharing for compressed caches

    公开(公告)号:US10983915B2

    公开(公告)日:2021-04-20

    申请号:US16544468

    申请日:2019-08-19

    Abstract: Systems, apparatuses, and methods for implementing flexible dictionary sharing techniques for caches are disclosed. A set-associative cache includes a dictionary for each data array set. When a cache line is to be allocated in the cache, a cache controller determines to which set a base index of the cache line address maps. Then, a selector unit determines which dictionary of a group of dictionaries stored by those sets neighboring this set would achieve the most compression for the cache line. This dictionary is then selected to compress the cache line. An offset is added to the base index of the cache line to generate a full index in order to map the cache line to the set corresponding to this chosen dictionary. The compressed cache line is stored in this set with the chosen dictionary, and the offset is stored in the corresponding tag array entry.

    METHOD ENABLING VIRTUAL PAGES TO BE ALLOCATED WITH NONCONTIGUOUS BACKING PHYSICAL SUBPAGES

    公开(公告)号:US20200320016A1

    公开(公告)日:2020-10-08

    申请号:US16378479

    申请日:2019-04-08

    Abstract: A device includes an address translation buffer to, for each virtual page number of a plurality of virtual page numbers, store a mapping associated with the virtual page number. The mapping identifies a set of physical subpages allocated for the virtual page number, and the set of physical subpages includes at least a first physical subpage of a plurality of contiguous subpages in a physical memory region and excludes at least a second physical subpage of the plurality of contiguous subpages in the physical memory region. A memory management unit is coupled with the address translation buffer to, in response to receiving a requested virtual subpage number and a requested virtual page number of the plurality of virtual page numbers, determine, based on the mapping associated with the requested virtual page number, a physical subpage number identifying a physical subpage that is allocated for the requested virtual subpage number.

    Semi-sorting compression with encoding and decoding tables

    公开(公告)号:US11309911B2

    公开(公告)日:2022-04-19

    申请号:US16542872

    申请日:2019-08-16

    Abstract: A data processing platform, method, and program product perform compression and decompression of a set of data items. Suffix data and a prefix are selected for each respective data item in the set of data items based on data content of the respective data item. The set of data items is sorted based on the prefixes. The prefixes are encoded by querying multiple encoding tables to create a code word containing compressed information representing values of all prefixes for the set of data items. The code word and suffix data for each of the data items are stored in memory. The code word is decompressed to recover the prefixes. The recovered prefixes are paired with their respective suffix data.

    FLEXIBLE DICTIONARY SHARING FOR COMPRESSED CACHES

    公开(公告)号:US20210056036A1

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

    申请号:US16544468

    申请日:2019-08-19

    Abstract: Systems, apparatuses, and methods for implementing flexible dictionary sharing techniques for caches are disclosed. A set-associative cache includes a dictionary for each data array set. When a cache line is to be allocated in the cache, a cache controller determines to which set a base index of the cache line address maps. Then, a selector unit determines which dictionary of a group of dictionaries stored by those sets neighboring this set would achieve the most compression for the cache line. This dictionary is then selected to compress the cache line. An offset is added to the base index of the cache line to generate a full index in order to map the cache line to the set corresponding to this chosen dictionary. The compressed cache line is stored in this set with the chosen dictionary, and the offset is stored in the corresponding tag array entry.

Patent Agency Ranking