Memory management method and device and memory controller

US10108553B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10108553-B2
Application numberUS-201715415344-A
CountryUS
Kind codeB2
Filing dateJan 25, 2017
Priority dateJul 31, 2014
Publication dateOct 23, 2018
Grant dateOct 23, 2018

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 memory management method and device are disclosed. The method includes: managing, by a storage management device, a memory; and when determining that a page table does not include a virtual address carried in a fetch request, managing, by the memory management device, the memory. When determining that the virtual address is valid, the memory management device applies for a blank page. The memory management device is located in a memory controller.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, wherein the method is applied to a memory management device that is located in a memory controller, and the method comprises: receiving a fetch request sent by a processor, wherein the fetch request carries a virtual address; determining whether a translation look-aside buffer (TLB) located in the memory management device caches a page table corresponding to the virtual address carried in the fetch request; when the TLB caches a page table corresponding to the virtual address carried in the fetch request, obtaining a physical address corresponding to the virtual address from the page table, wherein the page table comprises a correspondence between virtual addresses and physical addresses; and when the TLB does not buffer a page table corresponding to the virtual address carried in the fetch request, performing the following: obtaining a base address field of a page table of a process corresponding to the virtual address, and searching for the page table of the process corresponding to the virtual address according to the base address field of the page table of the process corresponding to the virtual address; when the page table of the process corresponding to the virtual address comprises the virtual address carried in the fetch request, obtaining a physical address corresponding to the virtual address; and when the page table of the process corresponding to the virtual address does not comprise the virtual address carried in the fetch request, determining whether the virtual address is valid, and applying for a blank page when it is determined that the virtual address is valid. 2. The method according to claim 1 , further comprising: when the application for the blank page succeeds, starting memory reading and writing; and when the application for the blank page fails, selecting a replacement page and providing the replacement page to an operating system so that the operating system replaces a page. 3. The method according to claim 2 , wherein after the application for the blank page succeeds, the method further comprises: updating the page table of the process corresponding to the virtual address so that the page table of the process corresponding to the virtual address comprises the virtual address carried in the fetch request, and saving the page table of the process corresponding to the virtual address to the TLB. 4. The method according to claim 1 , wherein determining whether the virtual address is valid comprises: determining whether the virtual address falls within an allocated virtual address space; when the virtual address falls within the allocated virtual address space, determining that the virtual address is valid; and when the virtual address does not fall within the allocated virtual space, finding whether the virtual address exists in a virtual memory address (VMA) space, and if the virtual address exists in the VMA space, determining that the virtual address is valid. 5. The method according to claim 1 , wherein before applying for the blank page, the method further comprises: counting a frequency of use of each cached blank page in a preset period; and selecting a blank page having a lowest frequency of use in the preset period when applying for the blank page. 6. The method according to claim 1 , wherein it is found that the page table of the process corresponding to the virtual address comprises the virtual address carried in the fetch request, and before obtaining the physical address corresponding to the virtual address, the method further comprises: saving the page table of the process corresponding to the virtual address to the TLB. 7. A device, wherein the device is located in a memory controller, and the device comprises: a translation look-aside buffer (TLB); a memory management unit (MMU); and a microcontroller; wherein the TLB is configured to: receive a fetch request sent by a processor, wherein the fetch request carries a virtual address, and determine whether the TLB caches a page table corresponding to the virtual address carried in the fetch request; and when the TLB caches a page table corresponding to the virtual address carried in the fetch request, obtain a physical address corresponding to the virtual address from the page table, wherein the page table comprises a correspondence between virtual addresses and physical addresses; wherein the MMU is configured to: when the TLB does not cache a page table corresponding to the virtual address carried in the fetch request, obtain a base address field of a page table of a process corresponding to the virtual address and search for the page table of the process corresponding to the virtual address according to the base address field of the page table of the process corresponding to the virtual address; and when the page table of the process corresponding to the virtual address comprises the virtual address, obtain a physical address corresponding to the virtual address; and wherein the microcontroller is configured to: when the page table of the process corresponding to the virtual address does not comprise the virtual address, determine whether the virtual address is valid, and when it is determined that the virtual address is valid, apply for a blank page. 8. The device according to claim 7 , wherein the microcontroller is further configured to: when the application for the blank page succeeds, start memory reading and writing; and when the application for the blank page fails, select a replacement page and provide the replacement page to an operating system, so that the operating system replaces a page. 9. The device according to claim 7 , wherein the microcontroller is further configured to: determine whether the virtual address falls within an allocated virtual address space; when the virtual address falls within an allocated virtual address space, determine that the virtual address is valid; or when the virtual address does not fall within an allocated virtual address space, find whether the virtual address exists in a virtual memory address (VMA) space, and when the virtual address exists in the VMA space, determine that the virtual address is valid. 10. The device according to claim 7 , wherein the microcontroller is further configured to: receive the fetch request; obtain the base address field of the page table of the process corresponding to the virtual address carried in the fetch request; and send the base address field of the page table of the process corresponding to the virtual address to the MMU, so that the MMU searches for the page table of the process corresponding to the virtual address according to the base address field of the page table of the process corresponding to the virtual address. 11. The device according to claim 7 , wherein the microcontroller is further configured to: count a frequency of use of each cached blank page in a preset period, and select a blank page having a lowest frequency of use in the preset period when applying for the blank page. 12. A memory controller, comprising the device according to claim 7 .

Assignees

Inventors

Classifications

  • Multi-level TLB, e.g. microTLB and main TLB · CPC title

  • TLB miss handling · CPC title

  • using page tables, e.g. page table structures · CPC title

  • Details of translation look-aside buffer [TLB] · CPC title

  • using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] · 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 US10108553B2 cover?
A memory management method and device are disclosed. The method includes: managing, by a storage management device, a memory; and when determining that a page table does not include a virtual address carried in a fetch request, managing, by the memory management device, the memory. When determining that the virtual address is valid, the memory management device applies for a blank page. The mem…
Who is the assignee on this patent?
Huawei Tech Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F12/1009. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 23 2018 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).