Cache coherence using dynamic coarseness tracking

JP2026518943APending Publication Date: 2026-06-11MICROSOFT TECHNOLOGY LICENSING LLC

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
    Figure 2026518943000001_ABST
Patent Text Reader

Abstract

The technique described provides a method comprising: receiving a request to assign an incoming cache line to one of several SFT entries of a snoop filter (SFT); performing a tag lookup function on the tags of the incoming cache line of the SFT; discovering one or more candidate SFT entries in response to determining that the incoming cache line is not part of an existing sector of any of the several SFT entries, wherein the candidate SFT entries can be converted into aggregate entries; selecting one of the candidate SFT entries; and assigning the incoming cache line to the selected SFT entry.
Need to check novelty before this filing date? Find Prior Art

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.