×

Memory sharing across distributed nodes

  • US 10,223,116 B2
  • Filed: 03/14/2013
  • Issued: 03/05/2019
  • Est. Priority Date: 10/02/2012
  • Status: Active Grant
First Claim
Patent Images

1. In a distributed system comprising a first node and a second node, wherein the first node has a first main memory and the second node has a second main memory, wherein the first main memory and the second main memory comprise random access memory, a method performed by the first node, comprising:

  • generating and storing, in the first main memory, a mapping that maps one or more memory addresses in a first memory location in the first main memory to one or more virtual memory addresses corresponding to a second memory location in the second main memory;

    executing, by a processor on the first node, a set of program instructions pertaining to a particular thread of execution, wherein the set of program instructions includes a load instruction to load data from the first memory location of the first main memory, and a store instruction to store updated data into the first memory location of the first main memory;

    wherein executing the load instruction comprises;

    determining, by the processor, whether the data in the first memory location is valid;

    in response to a determination that the data in the first memory location is invalid, causing the load instruction to trap, which causes the processor to suspend execution of the set of program instructions and to begin execution of a first set of trap handling instructions;

    wherein executing the first set of trap handling instructions causes;

    based on the mapping, obtaining valid data from the second memory location of the second main memory, and storing the valid data into the first memory location of the first main memory; and

    updating a validity indicator to indicate that the data in the first memory location is valid; and

    resuming, by the processor, execution of the set of program instructions;

    wherein executing the store instruction comprises;

    causing the store instruction to trap, which causes the first processor to suspend execution of the set of program instructions and to begin execution of a second set of trap handling instructions;

    wherein the second set of trap handling instructions causes, based on the mapping, propagating the updated data to the second node to be stored within the second memory location of the second main memory; and

    resuming, by the first processor, execution of the set of program instructions.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×