Memory corruption detection support for distributed shared memory applications

US9898414B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9898414-B2
Application numberUS-201414530354-A
CountryUS
Kind codeB2
Filing dateOct 31, 2014
Priority dateMar 28, 2014
Publication dateFeb 20, 2018
Grant dateFeb 20, 2018

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.

Nodes in a distributed node system are configured to support memory corruption detection when memory is shared between the nodes. Nodes in the distributed node system share data in units of memory referred to herein as “shared cache lines.” A node associates a version value with data in a shared cache line. The version value and data may be stored in a shared cache line in the node's main memory. When the node performs a memory operation, it can use the version value to determine whether memory corruption has occurred. For example, a pointer may be associated with a version value. When the pointer is used to access memory, the version value of the pointer may indicate the expected version value at the memory location. If the version values do not match, then memory corruption has occurred.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: in a memory of a local node, generating a copied cache line that is a copy of a source cache line on a source node, wherein the said copied cache line comprises version bits and data bits, said version bits being set to a version value; generating a pointer that points to said copied cache line, said pointer having a pointer value that includes said version value; using said pointer to perform a memory operation on said copied cache line, wherein performing a memory operation includes: comparing the version value included in said pointer value to the version value to which the version bits of the copied cache line are set; and determining whether memory corruption has occurred based on the comparison. 2. The method of claim 1 , wherein generating a copied cache line includes: determining a version value of the source cache line; and setting the version bits to the version value of the source cache line. 3. The method of claim 2 , wherein the version value is generated by the source node in response to a memory allocation request. 4. The method of claim 1 , wherein comparing the version value includes: determining whether the copied cache line is invalid; and in response to determining that the copied cache line is invalid, copying the source cache line to the copied cache line. 5. The method of claim 4 , wherein the method further includes the steps of: the local node storing in a store buffer one or more updates to the copied cache line that have not been propagated to said source cache line; and further in response to determining that the copied cache line is invalid, propagating said one or more updates to said copied cache line. 6. The method of claim 1 , further comprising: executing a trap operation if memory corruption has occurred. 7. The method of claim 6 , wherein executing a trap operation includes: informing an application that memory corruption has occurred. 8. The method of claim 6 , wherein executing a trap operation includes: terminating the memory operation. 9. One or more non-transitory storage media storing instructions which, when executed by one or more processors, cause performance of: in a memory of a local node, generating a copied cache line that is a copy of a source cache line on a source node, wherein the said copied cache line comprises version bits and data bits, said version bits being set to a version value; generating a pointer that points to said copied cache line, said pointer having a pointer value that includes said version value; using said pointer to perform a memory operation on said copied cache line, wherein performing a memory operation includes: comparing the version value included in said pointer value to the version value to which the version bits of the copied cache line are set; determining whether said copied cache line has been corrupted based on the comparison. 10. The one or more non-transitory storage media of claim 9 , wherein generating a copied cache line includes: determining a version value of the source cache line; setting the version bits to the version value of the source cache line. 11. The one or more non-transitory storage media of claim 10 , wherein the version value is generated by the source node in response to a memory allocation request. 12. The one or more non-transitory storage media of claim 9 , wherein comparing the version value includes: determining whether the copied cache line is invalid; copying the source cache line to the copied cache line if the copied cache line is invalid. 13. The one or more non-transitory storage media of claim 12 , wherein the instructions further include instructions for: the local node storing in a store buffer one or more updates to the copied cache line that have not been propagated to said source cache line; and further in response to determining that the copied cache line is invalid, propagating said one or more updates to said copied cache line. 14. The one or more non-transitory storage media of claim 9 , further comprising: executing a trap operation if memory corruption has occurred. 15. The one or more non-transitory storage media of claim 14 , wherein executing a trap operation includes: informing an application that memory corruption has occurred. 16. The one or more non-transitory storage media of claim 14 , wherein executing a trap operation includes: terminating the memory operation. 17. A computer system, comprising: one or more computing nodes, wherein each computing node of the one or more computing nodes is configured to: in a memory of said each computing node, generate a copied cache line that is a copy of a source cache line on a source node belonging to said one or more computing nodes, wherein the said copied cache line comprises version bits and data bits, said version bits being set to a version value; generate a pointer that points to said copied cache line, said pointer having a pointer value that includes said version value; use said pointer to perform a memory operation on said copied cache line, wherein the memory operation includes: to compare the version value included in said pointer value to the version value to which the version bits of the copied cache line are set; and to determine whether said copied cache line has been corrupted based on the comparison. 18. The system of claim 17 , wherein to generate a copied cache line, each computing node of the one or more computing nodes is configured to: determine the version value of said source cache line; and set the version bits to the version value of the source cache line. 19. The system of claim 18 , wherein for each computing node of the one or more computing nodes, the version value is generated by a source node that is configured to generate the version value in response to a memory allocation request. 20. The system of claim 17 , wherein for each computing node of said one or more computing nodes, to compare the version value, each computing node is configured to: determine whether the copied cache line is invalid; and copy the source cache line to the copied cache line if the copied cache line is invalid. 21. The system of claim 17 , wherein for each computing node of said one or more computing nodes, each computing node is configured to: store in a store buffer one or more updates to the copied cache line that have not been propagated to said source cache line; and further in response to the determination that the copied cache line is invalid, propagate said one or more updates to said copied cache line. 22. The system of claim 17 , wherein for each computing of said one or more computing nodes, to execute a trap operation, each computing node is configured to execute a trap operation if memory corruption has occurred. 23. The system of claim 22 , wherein for each computing of node said one or more computing nodes, to execute a trap operation, each computing node is configured to inform an application that memory corruption has occurred. 24. The system of claim 22 , wherein to execute a trap operation, each computing node of said one or more computing is configured to terminate the memory operation.

Assignees

Inventors

Classifications

  • by bit configuration check, e.g. of formats or tags · CPC title

  • in a multiprocessor or a multi-core unit (multiprocessors per se G06F15/80) · CPC title

  • in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00) · CPC title

  • adopting a particular infrastructure · CPC title

  • Monitoring storage devices or systems · 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 US9898414B2 cover?
Nodes in a distributed node system are configured to support memory corruption detection when memory is shared between the nodes. Nodes in the distributed node system share data in units of memory referred to herein as “shared cache lines.” A node associates a version value with data in a shared cache line. The version value and data may be stored in a shared cache line in the node's main memor…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/0724. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 20 2018 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).