Performing error correction in computer memory

US10971246B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10971246-B2
Application numberUS-201916387846-A
CountryUS
Kind codeB2
Filing dateApr 18, 2019
Priority dateSep 2, 2016
Publication dateApr 6, 2021
Grant dateApr 6, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Performing error correction in computer memory including receiving a read request targeting a read address within the computer memory; accessing a mark table comprising a plurality of entries, each entry including a field specifying a region size, a field specifying a match address, and a field specifying a mark location; performing a lookup of the mark table using the read address including, for each entry in the mark table: generating a mask based on the region size stored in the entry; determining, based on the mask, whether the read address is within a memory region specified by the match address and region size stored in the entry; and if the read address is within the memory region specified by the match address and region size stored in the entry, performing error correction using the mark location stored in the entry.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of performing error correction in computer memory, the method comprising: receiving a read request targeting a read address within the computer memory; accessing a mark table comprising a plurality of entries, each entry corresponding to a detected error at a memory address in a physical location of computer memory, each entry including a field specifying a memory region size identifying a hierarchical memory level within the computer memory, a field specifying a match address, and a field specifying a mark location; performing a lookup of the mark table using the read address including, for each entry in the mark table: generating a mask based on the memory region size stored in the entry; determining, based on the mask, whether the read address is within a memory region specified by the match address and memory region size stored in the entry; and if the read address is within the memory region specified by the match address and memory region size stored in the entry, performing error correction using the mark location stored in the entry. 2. The method of claim 1 , wherein the mark table is stored in content addressable memory (CAM), and wherein the lookup is a CAM lookup. 3. The method of claim 1 , wherein generating the mask based on the memory region size stored in the entry comprises: accessing an entry in a mask-generation table corresponding to the memory region size stored in the entry; and retrieving the mask from the entry in the mask-generation table. 4. The method of claim 1 , wherein determining, based on the mask, whether the read address is within the memory region specified by the match address and memory region size stored in the entry comprises: applying an XOR operation to the read address and the match address to obtain a result address; applying the mask to the result address to obtain a masked result address; and determining whether the masked result address is equal to zero. 5. The method of claim 1 , wherein the memory region is one selected from a group consisting of a dual in-line memory module (DIMM), a rank, a bank group, and a bank. 6. The method of claim 1 , wherein the field specifying the mark location indicates at least one of a group consisting of a chip mark and a symbol mark. 7. An apparatus for performing error correction in computer memory, the apparatus comprising memory firmware and a mark table, the apparatus configured to carry out the steps of: receiving, by the memory firmware, a read request targeting a read address within the computer memory; accessing, by the memory firmware, the mark table comprising a plurality of entries, each entry corresponding to a detected error at a memory address in a physical location of computer memory, each entry including a field specifying a memory region size identifying a hierarchical memory level within the computer memory, a field specifying a match address, and a field specifying a mark location; performing, by the memory firmware, a lookup of the mark table using the read address including, for each entry in the mark table: generating a mask based on the memory region size stored in the entry; determining, based on the mask, whether the read address is within a memory region specified by the match address and memory region size stored in the entry; and if the read address is within the memory region specified by the match address and memory region size stored in the entry, performing error correction using the mark location stored in the entry. 8. The apparatus of claim 7 , wherein the mark table is stored in content addressable memory (CAM), and wherein the lookup is a CAM lookup. 9. The apparatus of claim 7 , wherein generating the mask based on the memory region size stored in the entry comprises: accessing an entry in a mask-generation table corresponding to the memory region size stored in the entry; and retrieving the mask from the entry in the mask-generation table. 10. The apparatus of claim 7 , wherein determining, based on the mask, whether the read address is within the memory region specified by the match address and memory region size stored in the entry comprises: applying an XOR operation to the read address and the match address to obtain a result address; applying the mask to the result address to obtain a masked result address; and determining whether the masked result address is equal to zero. 11. The apparatus of claim 7 , wherein the memory region is one selected from a group consisting of a dual in-line memory module (DIMM), a rank, a bank group, and a bank. 12. The apparatus of claim 7 , wherein the field specifying the mark location indicates at least one of a group consisting of a chip mark and a symbol mark. 13. A computer program product for performing error correction in computer memory, the computer program product comprising a non-transitory computer readable storage medium having computer program instructions embodied therewith that, when executed, cause a computer to carry out the steps of: receiving a read request targeting a read address within the computer memory; accessing a mark table comprising a plurality of entries, each entry corresponding to a detected error at a memory address in a physical location of computer memory, each entry including a field specifying a memory region size identifying a hierarchical memory level within the computer memory, a field specifying a match address, and a field specifying a mark location; performing a lookup of the mark table using the read address including, for each entry in the mark table: generating a mask based on the memory region size stored in the entry; determining, based on the mask, whether the read address is within a memory region specified by the match address and memory region size stored in the entry; and if the read address is within the memory region specified by the match address and memory region size stored in the entry, performing error correction using the mark location stored in the entry. 14. The computer program product of claim 13 , wherein the mark table is stored in content addressable memory (CAM), and wherein the lookup is a CAM lookup. 15. The computer program product of claim 13 , wherein generating the mask based on the memory region size stored in the entry comprises: accessing an entry in a mask-generation table corresponding to the memory region size stored in the entry; and retrieving the mask from the entry in the mask-generation table. 16. The computer program product of claim 13 , wherein determining, based on the mask, whether the read address is within the memory region specified by the match address and memory region size stored in the entry comprises: applying the mask to the read address and the match address to obtain a masked read address and a masked match address; and determining whether the masked read address and the masked match address are equal. 17. The computer program product of claim 13 , wherein determining, based on the mask, whether the read address is within the memory region specified by the match address and memory region size stored in the entry comprises: applying an XOR operation to the read address and the match address to obtain a result address; applying the mask to the result address to obtain a masked result address; and determining whether the masked result address is equal to zero. 18. The computer program product of claim 13 , wherein the memory region is one selected from a group consisting of a dual in-line memory module (DIMM), a rank, a b

Assignees

Inventors

Classifications

  • using arrangements adapted for a specific error detection or correction feature · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Single storage device · CPC title

  • in cache or content addressable memories · CPC title

  • using page tables, e.g. page table structures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10971246B2 cover?
Performing error correction in computer memory including receiving a read request targeting a read address within the computer memory; accessing a mark table comprising a plurality of entries, each entry including a field specifying a region size, a field specifying a match address, and a field specifying a mark location; performing a lookup of the mark table using the read address including, f…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F11/1048. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 06 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).