Heterogeneous memory systems, and related methods and computer-readable media for supporting heterogeneous memory access requests in processor-based systems
US-9224452-B2 · Dec 29, 2015 · US
US9384153B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9384153-B2 |
| Application number | US-201213601973-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 31, 2012 |
| Priority date | Aug 31, 2012 |
| Publication date | Jul 5, 2016 |
| Grant date | Jul 5, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Embodiments of electronic circuits, computer systems, and associated methods include a module that accesses memory using virtual addressing, the memory including local memory that is local to the module and nonlocal memory that is accessible via a system bus coupled to the module, the module including logic coupled to the local memory via a local bus. The logic is configured to receive a memory access specified to a virtual address, determine whether the virtual address is within the local memory, and direct the memory access either to the local memory via the local bus or to the nonlocal memory via the system bus based on the determination.
Opening claim text (preview).
What is claimed is: 1. A computer system comprising: an electronic circuit comprising: a system bus; a nonlocal memory coupled to the system bus; a processor coupled to the system bus; a module coupled to the system bus, the module comprising: a local memory, an address comparator, a plurality of base virtual address registers, a plurality of top virtual address registers, and a direct memory access (DMA) controller, wherein the address comparator is coupled to the local memory via a local bus, the address comparator is coupled to each of the plurality of base virtual address registers and the plurality of top virtual address registers, the DMA controller is configured to access the local memory and the nonlocal memory using virtual addressing, independently of the processor; and a memory management unit (MMU) coupled between the address comparator of the module and the system bus; wherein the address comparator is configured to: receive a first memory access specified to a first received virtual address from the DMA controller, wherein the first memory access is associated with a first software component of a plurality of software components implemented in the computer system, select a first base virtual address register and a first top virtual address register that are associated with the first software component, wherein the first base virtual address register and the first top virtual address register respectively store a base virtual address and a top virtual address that define a first range of virtual addresses from a plurality of ranges of virtual addresses, wherein each of the plurality of ranges of virtual addresses is assigned to the local memory, compare the first received virtual address to the base virtual address and to the top virtual address, in response to a combination of a first determination that the first received virtual address is at or above the base virtual address and a second determination that the first received virtual address is at or below the top virtual address: calculate an offset corresponding to the first received virtual address, and direct the first memory access directly to the local memory via the local bus, using the offset as a physical address in the local memory; and in response to a third determination that the first received virtual address is below the base virtual address or a fourth determination that the first received virtual address is above the top virtual address: direct the first memory access to the system bus via the MMU, wherein the MMU is configured to translate the first received virtual address of the first memory access into a physical address of the nonlocal memory according to a map for converting virtual addresses to physical addresses; and the processor is configured to execute instructions including instructions for accessing the local memory and the nonlocal memory. 2. The computer system according to claim 1 further comprising: executable logic comprising: at least one operating system that configures the electronic circuit and manages a plurality of processes; and the plurality of processes that provide context for executables executing on the processor. 3. The computer system according to claim 1 further comprising: executable logic comprising at least one operating system that creates and manages the map for converting virtual addresses to physical addresses for a plurality of processes, and configures memory management with the map for ones of the plurality of processes, wherein the first received virtual address is translated to the physical address of the nonlocal memory using the map. 4. The computer system according to claim 1 further comprising: the module further comprising a plurality of portals, a plurality of local memory virtual address registers, and a plurality of local memory partitions; and executable logic comprising at least one operating system that assigns the plurality of portals selectively to a plurality of processes comprising allocation of the plurality of local memory virtual address registers selectively to the plurality of portals, allocation of the plurality of local memory partitions selectively to the plurality of portals, and configuration of local memory virtual addresses for the plurality of processes. 5. The computer system according to claim 1 further comprising: executable logic comprising executables that operate the module using instructions dispatched to the module using virtual addresses configured for a plurality of processes. 6. The computer system according to claim 1 further comprising: executable logic comprising executables configured to operate the module wherein the module further comprises a direct memory access (DMA) controller that uses virtual addressing and the module selectively accesses the local memory and the nonlocal memory using the DMA controller on behalf of the executables. 7. The computer system according to claim 1 further comprising: the module further comprising a portal; and executable logic comprising at least one operating system and a plurality of processes wherein the plurality of processes time-share the portal and the at least one operating system resets a local memory virtual address configuration during re-assignment of the portal. 8. The computer system according to claim 1 further comprising: executable logic comprising: a plurality of virtual machines that provide context for a respective guest operating system of a plurality of guest operating systems; and a hypervisor that configures the electronic circuit and manages the plurality of virtual machines, the hypervisor configured to create and manage a map for converting virtual addresses to physical addresses for the plurality of guest operating systems, and configures memory management with the map for ones of the plurality of virtual machines. 9. The computer system according to claim 1 further comprising: the module further comprising a plurality of portals, a plurality of local memory virtual address registers, and a plurality of local memory partitions; and executable logic comprising a hypervisor that partitions the local memory and the plurality of portals among a plurality of virtual machines, and configures a local memory virtual address for the plurality of virtual machines in the local memory virtual address registers for an assigned portal of the plurality of portals, the hypervisor configured to assign a virtual machine virtual address to ones of the plurality of virtual machines, the virtual machine virtual address comprising a selected portal and a selected local memory partition. 10. The computer system according to claim 1 further comprising: executable logic comprising a guest operating system running on a virtual machine that operates the module using guest operating system instructions dispatched to the module using a virtual address configured for the virtual machine. 11. The computer system according to claim 1 further comprising: the module further comprising a direct memory access (DMA) controller and a portal; and executable logic comprising a guest operating system running on a virtual machine that accesses the local memory and the nonlocal memory using the DMA controller on behalf of the guest operating system as specified by a virtual address configured for the virtual machine and a portal indicated for making the access. 12. A method of operating a computer system comprising: receiving a memory access request specified to a received virtual address from a direct memory access (DMA) controller, wherein the memory access request is associated with a first software component of
Configuration of memory controller to different memory types · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.