← Back to Patent Explorer
US6163834A Expired / Lapsed US ⏱️ 0.0 years remaining

Two level address translation and memory registration system and method

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1998-12-30
•
Granted: 2000-12-19
•
Expires: 2018-12-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A two-level memory region registration and address translation method includes a memory handle table and a translation and protection table (TPT). Each memory region registered is associated with a unique memory handle index which accesses one entry of the memory handle table. The accessed entry in the memory handle table stores a memory handle that is combined with virtual addresses in the registered memory region to access TPT entries storing translation data for the virtual addresses in the registered memory region.

Inventors

  • 👤 David J. Garcia
  • 👤 Daniel L. Fowler

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 05:52
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/0292; G06F12/08; G06F12/10; G06F12/1081; H; H04; H04L; H04L1/00; H04L1/22; H04L49/00; H04L49/90; H04L9/00; H04L9/40; G06F12/023; H04L1/12; H04L1/16; H04L1/18; H04L1/1867; H04L1/188; H04L49/30; H04L49/3009; H04L49/35; H04L49/351; H04L69/00; H04L69/26; H04L69/30; H04L69/32; H04L69/322; H04L69/326

Claims Analysis

Total Claims: 7
Claim 1
Independent Claim 185 words
A memory registration and two-level address translation and protection method implemented by a network interface card (NIC) and kernel agent forming a virtual interface provider, said method comprising the steps of: providing a memory handle index corresponding to each region of memory registered; maintaining a memory handle table with each entry accessed by a memory handle index and storing a memory handle; maintaining a translation and protection table including a plurality of TPT entries, each TPT entry storing a physical address which is the translation of a virtual address utilized by a virtual interface consumer to access registered memory; providing a first virtual address to be translated, with the first virtual address included in a first registered memory region, and also providing a first memory handle index corresponding to the first registered region; utilizing the first memory handle to access an entry in the memory handle table holding a first memory handle; combining the first memory handle and the first virtual address to form a pseudo-address for accessing a first entry in the TPT holding a first physical address that translates the first virtual address.
Claim 2
Dependent Claim 185 words
A memory registration and two-level address translation and protection method implemented by a network interface card (NIC) and kernel agent forming a virtual interface provider, said method comprising the steps of: providing a memory handle index corresponding to each region of memory registered; maintaining a memory handle table with each entry accessed by a memory handle index and storing a memory handle; maintaining a translation and protection table including a plurality of TPT entries, each TPT entry storing a physical address which is the translation of a virtual address utilized by a virtual interface consumer to access registered memory; providing a first virtual address to be translated, with the first virtual address included in a first registered memory region, and also providing a first memory handle index corresponding to the first registered region; utilizing the first memory handle to access an entry in the memory handle table holding a first memory handle; combining the first memory handle and the first virtual address to form a pseudo-address for accessing a first entry in the TPT holding a first physical address that translates the first virtual address.
Claim 3
Dependent Claim 97 words
The method of claim 1 further comprising the steps of: including start and extent fields in each entry of the TPT; after generating the first pseudo-address to access the TPT: comparing the first pseudo-address to the start field and indicating an extent violation if the magnitude of the of the start field is greater than the magnitude of the first pseudo-address; comparing the first pseudo-address to the sum of the start and extent fields and indicating an extent violation of the magnitude of the start and extent fields is less than the magnitude of the first pseudo-address.
Claim 4
Independent Claim 330 words
A method for defragmenting a translation protection table comprising the steps of: providing a translation protection table (TPT), having a plurality of TPT entries, with each TPT entry holding translation data for a virtual address included in a registered memory region; providing a memory handle table (MHT), having a plurality of MHT entries, each MHT entry associated with a registered memory region, with each MHT entry holding a memory handle, with the memory handle used in conjunction with a virtual address to access the TPT entry holding translation data for the virtual address; providing a unique memory handle index for each memory region registered, with each unique memory handle index for accessing the entry of the memory handle table holding the memory handle for accessing TPT entries holding translation data for virtual addresses in the registered memory region; storing translation data for each page of a first registered memory region as the content of contiguous entries of the translation protection table, with the first memory region associated with a first memory handle index; if sufficient unused entries for storing translation data for a second memory region, associated with a second memory handle index, exist in the TPT but the entries are not contiguous: copying contents of fragmented entries, storing translation data for the first registered memory region, to selected unused entries in the TPT, to form a contiguous region of unused TPT entries for storing translation data for the second memory region; updating the memory handle, stored in the MHI table entry indexed by the first MHI, to access the selected TPT entries now storing translation data for the first registered memory region storing translation data for the second memory region in the contiguous region of TPT entries that previously stored translation data for the first memory region; storing a memory handle in the entry to the MHT entry accessed by the second MHI to access the contiguous region of TPT entries holding translation data for the second memory region.
Claim 5
Independent Claim 330 words
A method for defragmenting a translation protection table comprising the steps of: providing a translation protection table (TPT), having a plurality of TPT entries, with each TPT entry holding translation data for a virtual address included in a registered memory region; providing a memory handle table (MHT), having a plurality of MHT entries, each MHT entry associated with a registered memory region, with each MHT entry holding a memory handle, with the memory handle used in conjunction with a virtual address to access the TPT entry holding translation data for the virtual address; providing a unique memory handle index for each memory region registered, with each unique memory handle index for accessing the entry of the memory handle table holding the memory handle for accessing TPT entries holding translation data for virtual addresses in the registered memory region; storing translation data for each page of a first registered memory region as the content of contiguous entries of the translation protection table, with the first memory region associated with a first memory handle index; if sufficient unused entries for storing translation data for a second memory region, associated with a second memory handle index, exist in the TPT but the entries are not contiguous: copying contents of fragmented entries, storing translation data for the first registered memory region, to selected unused entries in the TPT, to form a contiguous region of unused TPT entries for storing translation data for the second memory region; updating the memory handle, stored in the MHI table entry indexed by the first MHI, to access the selected TPT entries now storing translation data for the first registered memory region storing translation data for the second memory region in the contiguous region of TPT entries that previously stored translation data for the first memory region; storing a memory handle in the entry to the MHT entry accessed by the second MHI to access the contiguous region of TPT entries holding translation data for the second memory region.
Claim 6
Independent Claim 166 words
A system for performing address translation that utilizes a memory handle index provided to a user application, with memory handle index associated with a memory region registered by the user application, and with the memory region comprising a plurality of contiguous virtual addresses, said system comprising: a memory handle table, having a plurality of MHT entries, with each MHT entry accessed by a unique memory handle index and holding a memory handle; a translation and protection table (TPT), having a plurality of TPT entries, with each TPT entry accessed by a TPT pointer and holding translation data for a virtual address in a registered memory region; pointer generating logic, responsive to a particular virtual address and a particular memory handle index provided by a user application, for combining a memory handle, accessed from the memory handle table by the particular memory handle index, with the particular virtual address to generate a particular TPT pointer that accesses translation data for the particular virtual address from the TPT.
Claim 7
Independent Claim 166 words
A system for performing address translation that utilizes a memory handle index provided to a user application, with memory handle index associated with a memory region registered by the user application, and with the memory region comprising a plurality of contiguous virtual addresses, said system comprising: a memory handle table, having a plurality of MHT entries, with each MHT entry accessed by a unique memory handle index and holding a memory handle; a translation and protection table (TPT), having a plurality of TPT entries, with each TPT entry accessed by a TPT pointer and holding translation data for a virtual address in a registered memory region; pointer generating logic, responsive to a particular virtual address and a particular memory handle index provided by a user application, for combining a memory handle, accessed from the memory handle table by the particular memory handle index, with the particular virtual address to generate a particular TPT pointer that accesses translation data for the particular virtual address from the TPT.

References Cited (Backward Citations)

US4733350A Cited
US5619274A Cited
US5386524A Cited
EP0757318A2 Cited
US5555405A Cited
US5920886A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-12-19 2004-06-19 2004-12-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-12-19 2008-06-19 2008-12-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-12-19 2012-06-19 2012-12-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag