Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for managing data in a computing system comprising a plurality of cores, the method comprising: assigning an address within a memory address space for access by one of a plurality of memory controllers that are coupled to different respective cores, with the one of the one or more memory controllers being assigned access based on a designated portion of the address, with the designated portion being selected to exclude one or more highest order bits and bits that correspond to a cache line associated with the memory address; and receiving by the one or more of the plurality of cores a memory access request, and in response to the received memory access request to access data stored at the address; determining, which of the plurality of memory controllers to direct the memory access request to, based on the designated portion of the address.
2. The method of claim 1 , wherein the address includes the one or more highest order bits, which are adjacent to one or more bits that include the designated portion of the address, which are adjacent to the bits that correspond to a cache line, which are adjacent to one or more bits that correspond to a slot within the cache line.
3. The method of claim 2 , wherein the one or more highest order bits and the bits that include the designated portion of the address identify a memory page that includes the address.
4. The method of claim 1 , wherein the address within the memory address space is a physical address translated from a virtual address.
5. The method of claim 1 , wherein the address space is partitioned into a plurality of logical memory partitions.
6. The method of claim 5 , wherein one or more bits of the designated portion of the address determine one of the logical memory partitions that includes the address.
7. The method of claim 6 , wherein each memory controller is coupled to memory storing data values that have addresses of a corresponding physical memory partition.
8. The method of claim 7 , wherein determining which of the plurality of memory controllers to which the memory access request is to be directed based on the designated portion of the address comprises mapping addresses included in a given logical memory partition to different respective physical memory partitions of the plurality of memory controllers according to a mapping function.
9. The method of claim 8 , wherein the mapping function comprises a hash function applied to the one or more bits of the designated portion of the address that determine one of the logical memory partition that includes the address.
10. The method of claim 8 , wherein the mapping function comprises a hash function applied to: the one or more bits of the designated portion of the address that determine one of the logical memory partition that includes the address, and additional information other than the one or more highest order bits and the bits that correspond to a cache line associated with the memory address.
11. The method of claim 10 , wherein the additional information comprises information stored in a register in the core at which the memory access request is received.
12. The method of claim 10 , wherein the additional information comprises one or more bits of the address other than the one or more highest order bits and the bits that correspond to a cache line associated with the memory address.
13. The method of claim 10 , wherein the additional information comprises information identifying one of the cores.
14. The method of claim 8 , wherein the mapping function load balances memory access requests among the plurality of memory controllers.
15. The method of claim 8 , wherein the mapping function maps addresses included in a given logical memory partition to different respective physical memory partitions of the plurality of memory controllers so that addresses associated with a first process executing on at least one of the cores are mapped to a different physical memory partition than addresses associated with a second process executing on at least one of the cores.
16. The method of claim 8 , wherein the mapping function maps addresses included in a given logical memory partition to different respective physical memory partitions of the plurality of memory controllers so that a first memory controller that is faster than a second memory controller has more addresses mapped to its physical memory partition than the addresses mapped to the physical memory partition of the second memory controller.
17. The method of claim 1 , wherein the plurality of memory controllers are a subset of fewer than all of the memory controllers coupled the computing system.
18. A computing system, comprising: a plurality of cores; a plurality of memory controllers coupled to different respective cores; and processors in the cores configured to: map groups of one or more cores of the computing system to corresponding ones of a plurality of memory controllers; assign an address within a memory address space for access by one of the plurality of memory controllers that are coupled to different respective cores, with the one of the one or more memory controllers being assigned access based on a designated portion of the address, with the designated portion being selected to exclude one or more highest order bits and bits that correspond to a cache line associated with the memory address; and receive a memory access request, and in response to the received memory access request to access data stored at the address; determine which of the plurality of memory controllers to direct the memory access request to, based on the designated portion of the address.
19. The computing system of claim 18 , wherein the address within the memory address space is a physical address translated from a virtual address.
20. The computing system of claim 18 , wherein the address space is partitioned into a plurality of logical memory partitions.
21. The computing system of claim 20 , wherein one or more bits of the designated portion of the address determine one of the logical memory partitions that includes the address.
22. The computing system of claim 21 , wherein each memory controller is coupled to memory storing data values that have addresses of a corresponding physical memory partition.
23. The computing system of claim 18 , wherein the processors configured to determine which of the plurality of memory controllers to which the memory access request is to be directed based on the designated portion of the address, are further configured to: map addresses included in a given logical memory partition to different respective physical memory partitions of the plurality of memory controllers according to a mapping function that comprises: either a hash function applied to the one or more bits of the designated portion of the address that determine one of the logical memory partition that includes the address; or a hash function applied to the one or more bits of the designated portion of the address that determine one of the logical memory partition that includes the address, and additional information other than the one or more highest order bits and the bits that correspond to a cache line associated with the memory address.
24. The computing system of claim 23 , wherein the mapping function load balances memory access requests among the plurality of memory controllers.
25. The computing system of claim 18 , wherein the plurality of memory controllers are a subset of fewer than all of the memory controllers coupled the computing system.
26. A computing device comprises: a plurality of cores with each of the cores including one or more processor devices; a plurality of memory controllers that are coupled to different respective ones of the plurality of cores; the processor devices configured to: assign an address within a memory address space for access by one of the plurality of memory controllers coupled to one of the different respective cores, with the one of the memory controllers being assigned access based on a designated portion of the address, with the designated portion being selected to exclude one or more highest order bits and bits that correspond to a cache line associated with the memory address; receive a memory access request, and in response to the received memory access request to access data stored at the address; determine which of the plurality of memory controllers to direct the memory access request to, based on the designated portion of the address.
27. The computing device of claim 26 , wherein the address includes the one or more highest order bits that are adjacent to one or more bits that include the designated portion of the address and that are adjacent to the bits that correspond to a cache line, which are adjacent to one or more bits that correspond to a slot within the cache line.
28. The computing device of claim 26 wherein the one or more highest order bits and the bits that include the designated portion of the address identify a memory page that includes the address.
29. The computing device of claim 26 wherein the address within the memory address space is a physical address translated from a virtual address.
30. The computing device of claim 26 wherein the address space is partitioned into a plurality of logical memory partitions and the one or more bits of the designated portion of the address determine one of the logical memory partitions that includes the address.
31. The computing device of claim 30 wherein each memory controller is coupled to memory storing data values that have addresses of a corresponding physical memory partition.
32. The computing device of claim 30 wherein the processor devices configured to determine which of the plurality of memory controllers to which the memory access request is to be directed based on the designated portion of the address are further configured to: map addresses included in a given logical memory partition to different respective physical memory partitions of the plurality of memory controllers according to a mapping function.
33. The computing device of claim 32 wherein the mapping function comprises: a hash function applied to the one or more bits of the designated portion of the address that determine one of the logical memory partition that includes the address, and additional information other than the one or more highest order bits and the bits that correspond to a cache line associated with the memory address.
34. The computing device of claim 32 wherein the additional information comprises one of information identifying one of the cores, information stored in a register in the core at which the memory access request is received and one or more bits of the address other than the one or more highest order bits and the bits that correspond to a cache line associated with the memory address.
Unknown
June 23, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.