Cache coherence using dynamic coarseness tracking
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2024-05-20
- Publication Date
- 2026-06-11
Smart Images

Figure 2026518943000001_ABST
Abstract
Claims
[Claim 1] Receiving a request to allocate an incoming cache line to one of the multiple SFT entries (152) of a snoop filter (SFT (910) (710) (410) (150a) (150)), The SFT(910)(710)(410)(150a)(150) executes a tag(160) lookup function for the tag(160) of the incoming cache line, In response to determining that the incoming cache line is not part of an existing sector of any of the plurality of SFT entries (152), discovering one or more candidate SFT entries (152) such that the candidate SFT entries (152) can be converted into aggregate entries. Select one of the aforementioned candidate entries (152) (500), Assigning the incoming cache line to the selected SFT entry (152), Methods that include... [Claim 2] The method according to claim 1, further comprising increasing the sector size value of the selected SFT entry to indicate that the SFT includes a new cache line, wherein the sector size is part of the SFT entry metadata. [Claim 3] The method according to claim 1, wherein finding one or more candidate SFT entries further comprises finding one or more candidate SFT entries, wherein the sector size is smaller than a predetermined maximum sector size. [Claim 4] The method according to claim 3, wherein the predetermined maximum sector size value is programmable by setting one or more registers. [Claim 5] The method according to claim 1, wherein selecting one of the candidate SFT entries further includes evaluating the sector size values stored in the metadata of the plurality of SFT entries, the sector size values of a given SFT entry indicating the size of a sector are tracked by the given SFT entry. [Claim 6] The method according to claim 5, wherein selecting one of the candidate SFT entries further comprises selecting one of the candidate SFT entries having the minimum sector size. [Claim 7] In response to determining that the incoming cache line is part of an existing sector of a given SFT entry among the plurality of SFT entries, the incoming cache line is assigned to the given SFT entry among the plurality of SFT entries, and the value of the tracking counter for the given SFT entry among the plurality of SFT entries is increased. The method according to claim 1, further comprising: [Claim 8] In response to determining that the incoming cache line is not part of an existing sector of any of the multiple SFT entries, and that none of the multiple SFT entries can be converted into an aggregate entry, Assigning a new SFT entry to the incoming cache line, The value of the sector size of the new SFT entry is set to minimum_entry_size, The method according to claim 2, including the method described in claim 2. [Claim 9] One or more physically manufactured computer-readable storage media for encoding computer executable instructions for executing computer processes on a computer system (1000) (100), wherein the computer processes are Receiving a request to allocate an incoming cache line to one of the multiple SFT entries (152) of a snoop filter (SFT (910) (710) (410) (150a) (150)), The SFT(910)(710)(410)(150a)(150) executes a tag(160) lookup function for the tag(160) of the incoming cache line, In response to determining that the incoming cache line is not part of an existing sector of any of the plurality of SFT entries (152), discovering one or more candidate SFT entries (152) such that the candidate SFT entries (152) can be converted into aggregate entries. Select one of the aforementioned candidate entries (152) (500), Assigning the incoming cache line to the selected SFT entry (152), One or more physically manufactured computer-readable storage media, including [the specified term]. [Claim 10] The computer process further comprises increasing the sector size value of the selected SFT entry to indicate that the SFT includes a new cache line, wherein the sector size is part of the SFT entry metadata, one or more physically manufactured computer-readable storage media of the manufacture according to claim 9. [Claim 11] Finding one or more candidate SFT entries further comprises finding one or more candidate SFT entries, wherein the sector size is smaller than a predetermined maximum sector size, one or more physically manufactured computer-readable storage media according to claim 9. [Claim 12] The selection of one of the candidate SFT entries further comprises evaluating a sector size value stored in the metadata of the plurality of SFT entries, wherein the sector size value of a given SFT entry indicating the size of a sector is tracked by the given SFT entry, one or more physically manufactured computer-readable storage media according to claim 9. [Claim 13] The selection of one of the candidate SFT entries further comprises selecting one of the candidate SFT entries having the minimum sector size, according to claim 10, one or more physically manufactured computer-readable storage media. [Claim 14] The aforementioned computer process In response to determining that the incoming cache line is part of an existing sector of a given SFT entry among the plurality of SFT entries, the incoming cache line is assigned to the given SFT entry among the plurality of SFT entries, and the value of the tracking counter for the given SFT entry among the plurality of SFT entries is increased. The physically manufactured computer-readable storage medium according to claim 9, further comprising: [Claim 15] In response to determining that the incoming cache line is not part of an existing sector of any of the multiple SFT entries, and that none of the multiple SFT entries can be converted into an aggregate entry, Assigning a new SFT entry to the incoming cache line, The value of the sector size of the new SFT entry is set to minimum_entry_size, One or more physically manufactured computer-readable storage media according to claim 10, including the following: [Claim 16] The system (1000)(100) Memory (114) and, One or more processor units, A cache coherence system (1000)(100)(1010) stored in the memory (114) and executable by the one or more processor units, wherein the cache coherence system (1000)(100)(1010) encodes computer executable instructions in the memory (114) for executing a computer process on the one or more processor units, and the computer process Receiving a request to allocate an incoming cache line to one of the multiple SFT entries (152) of a snoop filter (SFT (910) (710) (410) (150a) (150)), The SFT(910)(710)(410)(150a)(150) executes a tag(160) lookup function for the tag(160) of the incoming cache line, In response to determining that the incoming cache line is not part of an existing sector of any of the plurality of SFT entries (152), discovering one or more candidate SFT entries (152) such that the candidate SFT entries (152) can be converted into aggregate entries. Select one of the aforementioned candidate entries (152) (500), Assigning the incoming cache line to the selected SFT entry (152), A cache coherence system including, A system equipped with these features. [Claim 17] The system according to claim 16, further comprising the computer process increasing the sector size value of the selected SFT entry to indicate that the SFT includes a new cache line, wherein the sector size is part of the SFT entry metadata. [Claim 18] The system according to claim 16, wherein finding one or more candidate SFT entries further comprises finding one or more candidate SFT entries, wherein the sector size is smaller than a predetermined maximum sector size. [Claim 19] The system according to claim 16, wherein selecting one of the candidate SFT entries further includes evaluating the sector size values stored in the metadata of the plurality of SFT entries, the sector size values of a given SFT entry indicating the size of a sector are tracked by the given SFT entry. [Claim 20] The system according to claim 16, wherein selecting one of the candidate SFT entries further comprises selecting one of the candidate SFT entries having the minimum sector size.