×

Shared fabric attached memory allocator

  • US 10,705,951 B2
  • Filed: 01/31/2018
  • Issued: 07/07/2020
  • Est. Priority Date: 01/31/2018
  • Status: Active Grant
First Claim
Patent Images

1. A system, comprising:

  • a plurality of processing nodes configured to execute one or more processes, each processing node comprising a processor, a local memory, and a fabric bridge;

    a switching fabric comprising a plurality of fabric switch instances, each fabric switch instance coupled to at least one of the plurality of processing nodes via the fabric bridge of the at least one of the plurality of processing nodes;

    a fabric-attached memory (FAM) comprising a plurality of memory instances, each memory instance of the FAM being directly coupled to a fabric switch instance of the switching fabric and each fabric switch instance being coupled with at least one other fabric switch instance of the switching fabric;

    wherein each memory instance of the FAM is shared by each of the processing nodes such that each memory block within every memory instance, independent of whether the memory block has been previously accessed, allocated or released by a different processing node of the plurality of processing nodes, may be accessed, allocated, and released by each processing node of the plurality of processing nodes;

    a memory allocator to allocate and release one or more memory blocks in the FAM in response to memory allocation requests and memory release requests from the one or more processes executed by one or more of the processing nodes,the memory allocator to partition the FAM into a memory shelf comprising a plurality of memory books of equal size,the memory allocator to map a shelf into a virtual memory zone, the zone aligned with boundaries of one or more books,the memory allocator to maintain an indexed free-memory list having a plurality of index levels, where each index level is an entry point to a list of free memory blocks of a particular size in the zone, andthe memory allocator to maintain a bitmap of the zone to identify if a memory block of a particular size is allocated.

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