Hardware assisted remote transactional memory

US10963383B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10963383-B2
Application numberUS-201815979511-A
CountryUS
Kind codeB2
Filing dateMay 15, 2018
Priority dateMay 15, 2018
Publication dateMar 30, 2021
Grant dateMar 30, 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.

Hardware assisted remote transactional memory including receiving, from a first remote processor over a high-speed communications fabric, an indication of a beginning of a first memory transaction; queuing, in a first hardware memory assistant, memory instructions for the first memory transaction; receiving, from a second remote processor over the high-speed communications fabric, an indication of a beginning of a second memory transaction; queuing, in a second hardware memory assistant, memory instructions for the second memory transaction; receiving, from the first remote processor over the high-speed communications fabric, an indication of an ending of the first memory transaction; comparing memory addresses accessed in the first memory transaction to memory addresses accessed in the second memory transaction; and in response to determining that the memory addresses accessed in the first memory transaction overlap with the memory addresses accessed in the second memory transaction, aborting the first memory transaction.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: by program instructions on a computing device, receiving, by a first hardware memory assistant within a shared memory system, from a first remote processor over a high-speed communications fabric, an indication of a beginning of a first memory transaction, wherein the shared memory system is remote from the first remote processor and a second remote processor; queuing, in a first queue of the first hardware memory assistant, memory instructions for the first memory transaction received from the first remote processor over the high-speed communications fabric; receiving, by a second hardware memory assistant within the shared memory system, from the second remote processor over the high-speed communications fabric, an indication of a beginning of a second memory transaction; queuing, in a second queue of the second hardware memory assistant, memory instructions for the second memory transaction received from the second remote processor over the high-speed communications fabric; receiving, from the first remote processor over the high-speed communications fabric, an indication of an ending of the first memory transaction; comparing memory addresses accessed in the first memory transaction to memory addresses accessed in the second memory transaction; and in response to determining that the memory addresses accessed in the first memory transaction overlap with the memory addresses accessed in the second memory transaction, aborting the first memory transaction. 2. The method of claim 1 , further comprising: in response to determining that the memory addresses accessed in the first memory instructions do not overlap with the memory addresses accessed in the second memory instructions: committing the first memory transaction to shared memory; and sending, to the first remote processor, a confirmation that the first memory transaction has been committed to memory. 3. The method of claim 2 , wherein comparing the memory addresses accessed in the first memory transaction to the memory addresses accessed in the second memory transaction comprises locking the second hardware memory assistant; and in response to determining that the memory addresses accessed in the first memory instructions do not overlap with the memory addresses accessed in the second memory instructions, unlocking the second hardware memory assistant. 4. The method of claim 1 , further comprising: in response to determining that the memory addresses accessed in the first memory transaction overlap with the memory addresses accessed in the second memory transaction, aborting the second memory transaction. 5. The method of claim 1 , wherein comparing the memory addresses accessed in the first memory transaction to the memory addresses accessed in the second memory transaction comprises comparing the memory address from the memory instructions queued in the first hardware memory assistant to the memory addresses from the memory instructions queued in the second hardware memory assistant. 6. The method of claim 1 , wherein the first hardware memory assistant and the second hardware memory assistant are each a collection of hardware logic and reside on a hardware memory assistant switch communicatively coupled to remote shared memory targeted by the first memory transaction and the second memory transaction, wherein both the hardware memory assistant switch and the remote shared memory are within the shared memory system that is remote from the first and second remote processors. 7. The method of claim 1 , wherein the first hardware memory assistant is assigned to the first remote processor, and wherein the second hardware memory assistant is assigned to the second remote processor. 8. An apparatus comprising a computing device, a computer processor, and a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: receiving, by a first hardware memory assistant within a shared memory system, from a first remote processor over a high-speed communications fabric, an indication of a beginning of a first memory transaction, wherein the shared memory system is remote from the first remote processor and a second remote processor; queuing, in a first queue of the first hardware memory assistant, memory instructions for the first memory transaction received from the first remote processor over the high-speed communications fabric; receiving, by a second hardware memory assistant within the shared memory system, from the second remote processor over the high-speed communications fabric, an indication of a beginning of a second memory transaction; queuing, in a second queue of the second hardware memory assistant, memory instructions for the second memory transaction received from the second remote processor over the high-speed communications fabric; receiving, from the first remote processor over the high-speed communications fabric, an indication of an ending of the first memory transaction; comparing memory addresses accessed in the first memory transaction to memory addresses accessed in the second memory transaction; and in response to determining that the memory addresses accessed in the first memory transaction overlap with the memory addresses accessed in the second memory transaction, aborting the first memory transaction. 9. The apparatus of claim 8 , wherein the computer program instructions further cause the apparatus to carry out the steps of: in response to determining that the memory addresses accessed in the first memory instructions do not overlap with the memory addresses accessed in the second memory instructions: committing the first memory transaction to shared memory; and sending, to the first remote processor, a confirmation that the first memory transaction has been committed to memory. 10. The apparatus of claim 9 , wherein comparing the memory addresses accessed in the first memory transaction to the memory addresses accessed in the second memory transaction comprises locking the second hardware memory assistant; and in response to determining that the memory addresses accessed in the first memory instructions do not overlap with the memory addresses accessed in the second memory instructions, unlocking the second hardware memory assistant. 11. The apparatus of claim 8 , wherein the computer program instructions further cause the apparatus to carry out the steps of: in response to determining that the memory addresses accessed in the first memory transaction overlap with the memory addresses accessed in the second memory transaction, aborting the second memory transaction. 12. The apparatus of claim 8 , wherein comparing the memory addresses accessed in the first memory transaction to the memory addresses accessed in the second memory transaction comprises comparing the memory address from the memory instructions queued in the first hardware memory assistant to the memory addresses from the memory instructions queued in the second hardware memory assistant. 13. The apparatus of claim 8 , wherein the first hardware memory assistant and the second hardware memory assistant are each a collection of hardware logic and reside on a hardware memory assistant switch communicatively coupled to remote shared memory targeted by the first memory transaction and the second memory transaction, wherein both the hardware memory assistant switch and the remote shared memory are within the shared memory system that is remote from the first and second remote processo

Assignees

Inventors

Classifications

  • G06F9/467Primary

    Transactional memory (G06F9/528 takes precedence) · CPC title

  • Cache consistency protocols · CPC title

  • Address space sharing · CPC title

  • G06F12/084Primary

    with a shared cache · 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 US10963383B2 cover?
Hardware assisted remote transactional memory including receiving, from a first remote processor over a high-speed communications fabric, an indication of a beginning of a first memory transaction; queuing, in a first hardware memory assistant, memory instructions for the first memory transaction; receiving, from a second remote processor over the high-speed communications fabric, an indication…
Who is the assignee on this patent?
Lenovo Entpr Solutions Singapore Pte Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/467. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 30 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).