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

Mechanism for reducing data copying overhead in protected memory operating systems

Assignee: Oracle America Inc
•
Filing: 1995-11-06
•
Granted: 1998-07-07
•
Expires: 2015-11-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and an apparatus for reducing data copying overhead associated with protected memory operating systems. In an ATM (Asynchronous Transfer Method) network, the present invention's NIC (network interface circuit) demultiplexes the information in the header of the incoming packet and routes the packet directly to its final destination using the present invention's concept of targeted buffer rings. Thus, instead of having the packet be DMA'd to a buffer in a descriptor ring in the kernel, it may be routed directly to the buffer ring of the destination process.

Inventors

  • 👤 Denton E. Gentry
  • 👤 Rasoul M. Oskouy

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 02:35
CPC Classifications
H; H04; H04Q; H04Q11/00; H04Q11/04; H04Q11/0428; H04Q11/0478; G; G06; G06F; G06F13/00; G06F13/10; G06F13/12; G06F13/124; G06F13/128; H04L; H04L12/00; H04L12/54; H04L12/56; H04L12/5601; H04L2012/5614; H04L2012/5616; H04L2012/5638; H04L2012/5646; H04L2012/5652; H04L2012/5678; H04L2012/5681

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 80 words
A method for reducing data copying overhead comprising the steps of: receiving a packet to be routed to a final destination, said packet having routing information which includes direct memory access information; and writing data of said packet to a private buffer associated with the final destination if said direct memory access information refers to a target buffer descriptor as being provided for said packet, said target buffer descriptor pointing directly to a private buffer of said packet's final destination.
Claim 2
Independent Claim 80 words
A method for reducing data copying overhead comprising the steps of: receiving a packet to be routed to a final destination, said packet having routing information which includes direct memory access information; and writing data of said packet to a private buffer associated with the final destination if said direct memory access information refers to a target buffer descriptor as being provided for said packet, said target buffer descriptor pointing directly to a private buffer of said packet's final destination.
Claim 3
Dependent Claim 51 words
The method of claim 1 wherein said step of receiving further comprises the steps of: demultiplexing information in a header portion of said packet to retrieve routing information for said packet including direct memory access information; and storing said direct memory access information of said packet in a RX load register.
Claim 4
Dependent Claim 54 words
The method of claim 2 further comprising the steps of: loading data of said packet into external buffer memory; and writing a virtual channel identifier of said packet to a schedule queue once there is enough data in said virtual channel identifier and said data may be direct memory accessed to a host memory.
Claim 5
Dependent Claim 48 words
The method of claim 1 wherein said step of direct memory accessing further comprises the steps of: retrieving said virtual channel identifier from said schedule queue and looking up a corresponding direct memory access state; and retrieving said direct memory access information from said direct memory access state.
Claim 6
Dependent Claim 27 words
The method of claim 4 further comprising the step of obtaining a buffer pointer if there is no buffer pointer indicated in said direct memory access information.
Claim 7
Dependent Claim 24 words
The method of claim 4 further comprising the step of looking up targeted buffer pointer ring if indicated in said direct memory access information.
Claim 8
Dependent Claim 45 words
The method of claim 6 further comprising the steps of: obtaining a common buffer if said virtual channel identifier indicates a non-target buffer ring; and obtaining a private buffer if said virtual channel identifier indicates a target buffer ring and said private buffer is available.
Claim 9
Dependent Claim 28 words
The method of claim 7 wherein said step of obtaining a private buffer further comprises the step of obtaining said common buffer if no private buffer is available.
Claim 10
Dependent Claim 53 words
The method of claim 7 further comprising the steps of: placing said buffer in said direct memory access state; placing said data of said packet in said buffer pointer; and direct memory accessing said data to said host memory until all cells of said packet are direct memory accessed to said host memory.
Claim 11
Dependent Claim 27 words
The method of claim 9 further comprising the step of writing said direct memory access information for said packet into a completion ring in said host memory.
Claim 12
Dependent Claim 44 words
The method of claim 10 further comprising the steps of: identifying whether said packet is target or non-target from said direct memory access information once said data for said packet is direct memory accessed; and notifying said final destination that said packet has arrived.
Claim 13
Independent Claim 127 words
An apparatus for reducing data copying overhead comprising: a host memory having one or more target and non-target buffers for storing data of in-coming packets sent to said host memory, said packet having routing information including direct memory access information; and an unload mechanism coupled to said host memory for sending said packet to a final destination in said host memory according to said direct memory access information, said direct memory access information indicating whether said unload mechanism is to use a target buffer descriptor pointing directly to a target buffer of said packet's final destination to send said packet to said host memory, said final destination being notified of arrival of said packet in said target buffer once said packet is sent to said final destination.
Claim 14
Independent Claim 127 words
An apparatus for reducing data copying overhead comprising: a host memory having one or more target and non-target buffers for storing data of in-coming packets sent to said host memory, said packet having routing information including direct memory access information; and an unload mechanism coupled to said host memory for sending said packet to a final destination in said host memory according to said direct memory access information, said direct memory access information indicating whether said unload mechanism is to use a target buffer descriptor pointing directly to a target buffer of said packet's final destination to send said packet to said host memory, said final destination being notified of arrival of said packet in said target buffer once said packet is sent to said final destination.
Claim 15
Dependent Claim 32 words
The apparatus of claim 12 wherein said unload mechanism is coupled to a load mechanism for storing direct memory access information of said packet once said packet is received from an origin.
Claim 16
Dependent Claim 28 words
The apparatus of claim 13 wherein said unload mechanism and said load mechanism are coupled to a direct memory access state buffer storing said direct memory access information.
Claim 17
Dependent Claim 37 words
The apparatus of claim 13 further comprising an external buffer memory coupled to said unload mechanism and said load mechanism through an external buffer memory interface, said external buffer memory for storing said data of said packet.
Claim 18
Dependent Claim 62 words
The apparatus of claim 15 further comprising a schedule queue coupled to said lo ad mechanism and said unload mechanism, said schedule queue for holding a virtual channel identifier of said packet, said virtual channel identifier being written into said schedule queue once there is enough data in said virtual channel identifier and said data may be sent to said host memory.
Claim 19
Dependent Claim 96 words
The apparatus of claim 12 wherein said unload mechanism further comprises an unload look-ahead mechanism coupled to said direct memory access state buffer and said schedule queue, said unload look-ahead mechanism for retrieving said virtual channel identifier from said schedule queue, looking up corresponding direct memory access state, for retrieving said direct memory access information from said direct memory access state and writing said direct memory access information for said packet into a completion ring in said host memory after data for said packet has been direct memory accessed to a buffer in said host memory.
Claim 20
Dependent Claim 127 words
The apparatus of claim 12 wherein said unload mechanism further comprises a get buffer mechanism coupled to said direct memory access state buffer, said get buffer mechanism for obtaining a buffer pointer if there is no buffer pointer indicated in said direct memory access information, for looking up targeted buffer pointer ring if indicated in said direct memory access information, for obtaining a common buffer if said virtual channel identifier indicates a non-target buffer ring, for obtaining a private buffer if said virtual channel identifier indicates a target buffer ring and said private buffer is available, for obtaining said common buffer if said direct memory access information indicates a target buffer but no private buffer is available and placing said buffer in said direct memory access state.
Claim 21
Dependent Claim 41 words
The apparatus of claim 18 wherein said unload mechanism places said data of said packet in said buffer pointer and sends said data to said host memory until all cells of said packet are direct memory accessed to said host memory.
Claim 22
Dependent Claim 51 words
The apparatus of claim 19 further comprising a kernel in said host memory for identifying whether said packet is target or non-target from said direct memory access information once said data for said packet is sent and for notifying said final destination in said host memory that said packet has arrived.
Claim 23
Independent Claim 145 words
A system for reducing data copying overhead comprising: a host memory having one or more target and non-target buffers for storing data of in-coming packets sent to said host memory, said packet having routing information including direct memory access information; and an unload mechanism coupled to said host memory for sending said packet to a final destination in said host memory according to said direct memory access information, said direct memory access information indicating whether said unload mechanism is to use a target buffer descriptor pointing directly to a target buffer of said packet's final destination to send said packet to said host memory, said final destination being notified of arrival of said packet in said target buffer once said packet is sent to said final destination; and a processor coupled to said host memory for processing said sending said packet to said host memory.
Claim 24
Independent Claim 145 words
A system for reducing data copying overhead comprising: a host memory having one or more target and non-target buffers for storing data of in-coming packets sent to said host memory, said packet having routing information including direct memory access information; and an unload mechanism coupled to said host memory for sending said packet to a final destination in said host memory according to said direct memory access information, said direct memory access information indicating whether said unload mechanism is to use a target buffer descriptor pointing directly to a target buffer of said packet's final destination to send said packet to said host memory, said final destination being notified of arrival of said packet in said target buffer once said packet is sent to said final destination; and a processor coupled to said host memory for processing said sending said packet to said host memory.
Claim 25
Dependent Claim 32 words
The system of claim 21 wherein said unload mechanism is coupled to a load mechanism for storing direct memory access information of said packet once said packet is received from an origin.
Claim 26
Dependent Claim 28 words
The system of claim 22 wherein said unload mechanism and said load mechanism are coupled to a direct memory access state buffer storing said direct memory access information.
Claim 27
Dependent Claim 37 words
The system of claim 23 further comprising an external buffer memory coupled to said unload mechanism and said load mechanism through an external buffer memory interface, said external buffer memory for storing said data of said packet.
Claim 28
Dependent Claim 63 words
The system of claim 24 further comprising a schedule queue coupled to said load mechanism and said unload mechanism, said schedule queue for holding a virtual channel identifier of said packet, said virtual channel identifier being written into said schedule queue once there is enough data in said virtual channel identifier and said data may be direct memory accessed to said host memory.
Claim 29
Dependent Claim 96 words
The system of claim 21 wherein said unload mechanism further comprises an unload look-ahead mechanism coupled to said direct memory access state buffer and said schedule queue, said unload look-ahead mechanism for retrieving said virtual channel identifier from said schedule queue, looking up corresponding direct memory access state, for retrieving said direct memory access information from said direct memory access state and writing said direct memory access information for said packet into a completion ring in said host memory after data for said packet has been direct memory accessed to a buffer in said host memory.
Claim 30
Dependent Claim 127 words
The system of claim 21 wherein said unload mechanism further comprises a get buffer mechanism coupled to said direct memory access state buffer, said get buffer mechanism for obtaining a buffer pointer if there is no buffer pointer indicated in said direct memory access information, for looking up targeted buffer pointer ring if indicated in said direct memory access information, for obtaining a common buffer if said virtual channel identifier indicates a non-target buffer ring, for obtaining a private buffer if said virtual channel identifier indicates a target buffer ring and said private buffer is available, for obtaining said common buffer if said direct memory access information indicates a target buffer but no private buffer is available and placing said buffer in said direct memory access state.
Claim 31
Dependent Claim 41 words
The system of claim 27 wherein said unload mechanism places said data of said packet in said buffer pointer and direct memory accesses said data to said host memory until all cells of said packet are sent to said host memory.
Claim 32
Dependent Claim 51 words
The system of claim 28 further comprising a kernel in said host memory for identifying whether said packet is target or non-target from said direct memory access information once said data for said packet is sent and for notifying said final destination in said host memory that said packet has arrived.

References Cited (Backward Citations)

US5355453A Cited
US5347634A Cited
US5491808A Cited
US5289470A Cited
US5530902A Cited
US5640399A Cited
US5590313A Cited
US5633867A Cited
US5666514A Cited
US5619647A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-07-06 2002-01-05 2002-07-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-07-06 2006-01-05 2006-07-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-07-06 2010-01-05 2010-07-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag