Dynamic address translation table allocation

US9710395B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9710395-B1
Application numberUS-201615334588-A
CountryUS
Kind codeB1
Filing dateOct 26, 2016
Priority dateOct 26, 2016
Publication dateJul 18, 2017
Grant dateJul 18, 2017

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 system and method dynamically allocate address translation tables for direct memory access windows by donating logical memory blocks to allocate to the address translation tables. A dynamic address translation table allocation module dynamically changes the allocation of memory to the address translation tables without a platform or partition reboot. A portion of the dynamic address translation table allocation module may reside in the hypervisor and in the partition and communicate to dynamically allocate memory to the address translation tables. The dynamic address translation table allocation module in the partition may donate logical memory blocks to the hypervisor to increase the allocation of memory to the address translation tables.

First claim

Opening claim text (preview).

The invention claimed is: 1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; an operating system residing in the memory and executed by the at least one processor; a hypervisor residing in the memory and executed by the at least one processor that manages a plurality of logical partitions; and a dynamic address translation table allocation module (DAAM) residing in the memory and executed by the at least one processor that dynamically changes the allocation of memory to the address translation tables using memory donated from the operating system, wherein the DAAM comprises an OS DAAM residing in the operating system and a hypervisor DAAM residing in the hypervisor. 2. The apparatus of claim 1 wherein the memory donated by the operating system is a logical memory block (LMB). 3. The apparatus of claim 1 wherein the OS DAAM queries the hypervisor for a maximum direct memory access (DMA) window size. 4. The apparatus of claim 3 wherein the OS DAAM determines the maximum DMA window size is not optimal and donates memory to the hypervisor to increase the address translation table size. 5. The apparatus of claim 4 wherein the OS DAAM donates memory by giving a logical memory block to the hypervisor. 6. The apparatus of claim 4 wherein a hypervisor DAAM in the hypervisor updates the size of the address translation table and calculates a new maximum DMA window size. 7. The apparatus of claim 6 wherein the OS DAAM creates a DMA window to maximize the input output performance of an adapter by sending a request to create a DMA window of the maximum size as determined by the hypervisor DAAM. 8. A computer-implemented method for dynamically changing direct memory access window size, the method comprising: providing an operating system; providing a hypervisor that manages a plurality of logical partitions; dynamically changing size of a direct memory access (DMA) window by changing the allocation of memory to an address translation table using memory donated from the operating system to the hypervisor; wherein the operating system queries the hypervisor for a maximum direct memory access (DMA) window size; wherein the operating system determines the maximum DMA window size is not optimal and donates memory to the hypervisor to increase size of the address translation table; and wherein the hypervisor updates the size of the address translation table and calculates a new maximum DMA window size. 9. The method of claim 8 wherein the memory donated by the operating system to the hypervisor is a logical memory block (LMB). 10. The method of claim 8 wherein the operating system creates an DMA window to maximize input output performance of an adapter by sending a request to create a DMA window of the maximum size as determined by the hypervisor. 11. The method of claim 10 wherein the hypervisor determines if the maximum DMA window size is optimal by determining if performance is acceptable with the maximum DMA window size, and where it is determined that performance is not acceptable determining if more memory is available to donate to the hypervisor. 12. A computer-implemented method for dynamically changing direct memory access window size, the method comprising: providing an operating system on a processor; providing a hypervisor that manages a plurality of logical partitions; dynamically changing size of a direct memory access (DMA) window by changing allocation of memory to an address translation table using memory donated from the operating system to the hypervisor comprising: the operating system querying the hypervisor for a maximum DMA window size, and if the maximum DMA window size is not optimal the operating system donates memory to the hypervisor to increase size of the address translation table; the hypervisor updating the size of the address translation table and calculating a new maximum DMA window size; the operating system creating a DMA window to maximize the input output performance of an adapter by sending a request to create a DMA window having the maximum DMA window size determined by the hypervisor; and wherein the hypervisor determines if the maximum DMA window size is optimal by determining if performance is acceptable with the maximum DMA window size, and when it is determined that performance is not acceptable, determining if more memory in the operating system is available to donate to the hypervisor.

Assignees

Inventors

Classifications

  • for peripheral access to main memory, e.g. direct memory access [DMA] · CPC title

  • using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] · CPC title

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

  • Details of virtual memory and virtual address translation · CPC title

  • using page tables, e.g. page table structures · 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 US9710395B1 cover?
A system and method dynamically allocate address translation tables for direct memory access windows by donating logical memory blocks to allocate to the address translation tables. A dynamic address translation table allocation module dynamically changes the allocation of memory to the address translation tables without a platform or partition reboot. A portion of the dynamic address translati…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/1081. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 18 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).