Local instruction ordering based on memory domains

US10782896B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10782896-B2
Application numberUS-201916240104-A
CountryUS
Kind codeB2
Filing dateJan 4, 2019
Priority dateJul 1, 2015
Publication dateSep 22, 2020
Grant dateSep 22, 2020

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.

A method for managing an observed order of instructions in a computing system includes utilizing an overloaded memory barrier instruction to specify whether a global ordering constraint or a local ordering constraint is enforced.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for managing an observed order of instructions in a computing system, the method comprising: executing a plurality of instructions at a first plurality of processing elements in the computing system, the executing including issuing at least a first instruction of the plurality of instructions at a first processing element, the first instruction being configured to access memory associated with a second plurality of processing elements in the computing system; and issuing a second instruction of the plurality of instructions at the first processing element, the second instruction causing the first processing element to pause issuance of further instructions for accessing memory in a first memory domain of a plurality of memory domains in the computing system until the first processing element receives one or more first acknowledgements that at least the first instruction of the plurality of instructions has reached a first location in circuitry of the first plurality of processing elements; wherein the second instruction is specified as being associated with the first memory domain of the plurality of memory domains in the computing system; and wherein the first processing element receives a second acknowledgement that at least the first instruction of the plurality of instructions has reached a second location in circuitry of the second plurality of processing elements. 2. The method of claim 1 further comprising issuing at least a third instruction of the plurality of instructions at a second processing element of the first plurality of processing elements, the third instruction configured to access the memory associated with the second plurality of processing elements, wherein at least the third instruction is constrained to issue after completion of the second instruction is observed by the first plurality of processing elements. 3. The method of claim 2 wherein the third instruction reaches the second location in the circuitry of the second plurality of processing elements prior to the first instruction reaching the first location in the circuitry of the first plurality of processing elements. 4. The method of claim 1 wherein the second instruction includes a memory barrier instruction. 5. The method of claim 1 wherein the first location in the circuitry of the first plurality of processing elements includes a first ordering point from which the one or more first acknowledgements originate and the second location in the circuitry of the second plurality of processing elements includes a second ordering point from which the second acknowledgement originates. 6. The method of claim 5 wherein instructions received at the first ordering point in a first received order are issued at the first plurality of processing elements in the first received order and instructions received at the second ordering point in a second received order are issued at the second plurality of processing elements in the second received order. 7. The method of claim 1 wherein at least some instructions of the plurality of instructions are memory access instructions. 8. The method of claim 7 wherein the at least some instructions of the plurality of instructions access memory addresses associated with memory mapped peripheral devices. 9. The method of claim 8 wherein the at least some instructions of the plurality of instructions access memory addresses associated with input/output devices. 10. The method of claim 9 wherein the first instruction is configured to access a memory address associated with an input/output device associated with the second plurality of processing elements. 11. The method of claim 1 wherein the first plurality of processing elements is associated with a first multi-element processing device located in a first CPU socket and the second plurality of processing elements is associated with a second multi-element processing device located in a second CPU socket. 12. The method of claim 1 wherein the first plurality of processing elements is associated with a first multi-element processing device located in a first CPU socket and the second plurality of processing elements is associated with the first multi-element processing device located in the first CPU socket. 13. The method of claim 1 wherein a first subset of the first plurality of processing elements is associated with a first multi-element processing device located in a first CPU socket and a second subset of the first plurality of processing elements is associated with a second multi-element processing device located in a second CPU socket. 14. The method of claim 13 wherein a first subset of the second plurality of processing elements is associated with the first multi-element processing device located in the first CPU socket and a second subset of the second plurality of processing elements is associated with the second multi-element processing device located in the second CPU socket. 15. The method of claim 1 further comprising executing a second plurality of instructions at a third plurality of processing elements in the computing system, the executing including issuing at least a third instruction of the second plurality of instructions at a third processing element of the third plurality of processing elements, the third instruction being configured to access memory associated with a fourth plurality of processing elements in the computing system; and issuing a fourth instruction of the second plurality of instructions at the third processing element, the fourth instruction causing the third processing element to pause issuance of further instructions for accessing memory in the computing system until the third processing element receives one or more third acknowledgements indicating that at least the third instruction has reached a third location in circuitry of the third plurality of processing elements. 16. An apparatus for managing an observed order of instructions in a computing system, the apparatus comprising: a first plurality of processing elements for executing a plurality of instructions, the first plurality of processing elements including a first processing element for: issuing at least a first instruction of the plurality of instructions, the first instruction being configured to access memory associated with a second plurality of processing elements in the computing system; and issuing a second instruction of the plurality of instructions, the second instruction causing the first processing element to pause issuance of further instructions for accessing memory in a first memory domain of a plurality of memory domains in the computing system until the first processing element receives one or more first acknowledgements that at least the first instruction of the plurality of instructions has reached a first location in circuitry of the first plurality of processing elements; wherein the second instruction is specified as being associated with the first memory domain of the plurality of memory domains in the computing system; and wherein the first processing element receives a second acknowledgement that at least the first instruction of the plurality of instructions has reached a second location in circuitry of the second plurality of processing elements. 17. The method of claim 1 wherein an address of memory accessed by the first instruction is included in the first memory domain. 18. The method of claim 1 wherein the second instruction is specified as enforcing one of either: (1) a local ordering constraint for instructions accessing m

Assignees

Inventors

Classifications

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · 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 US10782896B2 cover?
A method for managing an observed order of instructions in a computing system includes utilizing an overloaded memory barrier instruction to specify whether a global ordering constraint or a local ordering constraint is enforced.
Who is the assignee on this patent?
Cavium Llc, Marvell Asia Pte Ltd
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 22 2020 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).