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

Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer

Assignee: Cirrus Logic Inc
•
Filing: 1995-12-21
•
Granted: 1998-10-27
•
Expires: 2015-12-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus of managing a multi-channel direct memory access (DMA) operation in which a sequence of data frames are received at a controller that controls a DMA transfer. The data frames are placed in data buffers in a memory by the controller. Multiple data frames are stored by the controller in at least one of the data buffers. The storing of multiple data frames in a single buffer provides efficient utilization of memory space as large size buffers are used to hold more than a single data frame, and also reduces the management overhead involved in placing the data frames in the data buffers.

Inventors

  • 👤 Anthony J. P. O'Toole
  • 👤 Sriraman Chari

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 23:28
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/20; G06F13/28

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 52 words
A method of managing a direct memory access (DMA) operation, comprising: receiving a sequence of data frames at a controller in a DMA transfer; and placing the data frames in data buffers in a memory, wherein multiple data frames are stored by the controller in at least one of the data buffers.
Claim 2
Independent Claim 52 words
A method of managing a direct memory access (DMA) operation, comprising: receiving a sequence of data frames at a controller in a DMA transfer; and placing the data frames in data buffers in a memory, wherein multiple data frames are stored by the controller in at least one of the data buffers.
Claim 3
Dependent Claim 47 words
The method of claim 1, further comprising creating a status entry in a receive status queue whenever a data frame is stored in one of the data buffers, wherein the status entry includes status information relating to the storing of multiple data frames in a data buffer.
Claim 4
Dependent Claim 35 words
The method of claim 2, wherein the status information for the status entry of a data frame includes end of frame information that indicates whether a complete data frame was stored in the data buffer.
Claim 5
Dependent Claim 34 words
The method of claim 3, wherein the status information for the status entry of a data frame includes end of buffer information that indicates whether a data buffer is terminated with that data frame.
Claim 6
Dependent Claim 45 words
The method of claim 4, wherein the status information for the status entry of a data frame includes subsequent frame information that indicates whether the data frame is a first data frame in the data buffer or a subsequent data frame in the data buffer.
Claim 7
Dependent Claim 53 words
The method of claim 5, further comprising comparing a remaining storage space in the data buffer with a minimum limit prior to storing a subsequent data frame in the data buffer, the subsequent data frame not being stored in the data buffer when the remaining storage space is less than the minimum limit.
Claim 8
Dependent Claim 26 words
The method of claim 1, wherein the status entry further includes a frame buffer starting address that points to the starting address of a data frame.
Claim 9
Dependent Claim 22 words
The method of claim 1, wherein the step of receiving data frames includes receiving the data frames over a plurality of channels.
Claim 10
Dependent Claim 30 words
The method of claim 8, wherein the controller is a network controller that places the data frames into the data buffers and creates the status entries in the status queue.
Claim 11
Independent Claim 77 words
A method of managing a multi-channel direct memory access (DMA) operation, comprising: storing descriptors of data buffers in locations of a circular descriptor queue; obtaining with a network controller a set of available descriptors from the descriptor queue; and performing a DMA transfer with a host system via the network controller using at least some of the available data buffers whose descriptors were obtained, including storing multiple data frames in at least one of the data buffers.
Claim 12
Independent Claim 77 words
A method of managing a multi-channel direct memory access (DMA) operation, comprising: storing descriptors of data buffers in locations of a circular descriptor queue; obtaining with a network controller a set of available descriptors from the descriptor queue; and performing a DMA transfer with a host system via the network controller using at least some of the available data buffers whose descriptors were obtained, including storing multiple data frames in at least one of the data buffers.
Claim 13
Dependent Claim 24 words
The method of claim 10, further comprising the network controller indicating to the host system which data buffers were used in the DMA transfer.
Claim 14
Dependent Claim 56 words
The method of claim 11, wherein the step of indicating to the host system which data buffers were used in the DMA transfer includes writing in a receive status queue a status entry for each data frame transferred in a DMA transfer, the status entry identifying the data buffer in which the data frame is stored.
Claim 15
Dependent Claim 24 words
The method of claim 12, wherein each status entry includes status information relating to the storing of multiple data frames in a data buffer.
Claim 16
Dependent Claim 35 words
The method of claim 13, wherein the status information for the status entry of a data frame includes end of frame information that indicates whether a complete data frame was stored in the data buffer.
Claim 17
Dependent Claim 34 words
The method of claim 14, wherein the status information for the status entry of a data frame includes end of buffer information that indicates whether a data buffer is terminated with that data frame.
Claim 18
Dependent Claim 45 words
The method of claim 15, wherein the status information for the status entry of a data frame includes subsequent frame information that indicates whether the data frame is a first data frame in the data buffer or a subsequent data frame in the data buffer.
Claim 19
Dependent Claim 53 words
The method of claim 16, further comprising comparing a remaining storage space in the data buffer with a minimum limit prior to storing a subsequent data frame in the data buffer, the subsequent data frame not being stored in the data buffer when the remaining storage space is less than the minimum limit.
Claim 20
Dependent Claim 26 words
The method of claim 17, wherein the status entry further includes a frame buffer starting address that points to the starting address of a data frame.
Claim 21
Dependent Claim 18 words
The method of claim 10, further comprising the step of receiving data frames over a plurality of channels.
Claim 22
Dependent Claim 34 words
The method of claim 19, wherein the data frames are received by a network controller that stores the data frames into the data buffers and creates the status entries in the receive status queue.
Claim 23
Dependent Claim 120 words
The method of claim 10, wherein the descriptors are stored in a block of locations that are contiguous to one another in the descriptor queue, the set of descriptors being unavailable in the descriptor queue after being obtained by the network controller; and further comprising refilling the descriptor queue with the descriptors of the data buffers used in the DMA transfer, the descriptors being refilled in the locations in the descriptor queue that immediately follow the location of a last one of the available descriptors in the descriptor queue, the refilled descriptors constituting newly available descriptors in the descriptor queue, such that all of the available descriptors in the descriptor queue are always in contiguous locations in the descriptor queue.
Claim 24
Dependent Claim 84 words
An arrangement for managing multi-channel direct memory access (DMA) transfers of data, comprising: a bus; a host system having a central processing unit (CPU) and a memory coupled to the bus, the memory having a plurality of data buffers; a multi-channel network controller coupled to the bus, the network controller transferring data frames received at the network controller to the host system via data buffers that are available for use, wherein multiple data frames are stored in at least one of the data buffers.
Claim 25
Dependent Claim 84 words
An arrangement for managing multi-channel direct memory access (DMA) transfers of data, comprising: a bus; a host system having a central processing unit (CPU) and a memory coupled to the bus, the memory having a plurality of data buffers; a multi-channel network controller coupled to the bus, the network controller transferring data frames received at the network controller to the host system via data buffers that are available for use, wherein multiple data frames are stored in at least one of the data buffers.
Claim 26
Dependent Claim 36 words
The arrangement of claim 22, wherein the memory further includes a receive status queue to which a status entry is written after each data frame is placed in a data buffer used in a DMA transfer.
Claim 27
Dependent Claim 24 words
The arrangement of claim 23, wherein each status entry includes status information relating to the storing of multiple data frames in a data buffer.
Claim 28
Dependent Claim 35 words
The arrangement of claim 24, wherein the status information for the status entry of a data frame includes end of frame information that indicates whether a complete data frame was stored in the data buffer.
Claim 29
Dependent Claim 34 words
The arrangement of claim 25, wherein the status information for the status entry of a data frame includes end of buffer information that indicates whether a data buffer is terminated with that data frame.
Claim 30
Dependent Claim 45 words
The arrangement of claim 26, wherein the status information for the status entry of a data frame includes subsequent frame information that indicates whether the data frame is a first data frame in the data buffer or a subsequent data frame in the data buffer.
Claim 31
Dependent Claim 53 words
The arrangement of claim 27, further comprising comparing a remaining storage space in the data buffer with a minimum limit prior to storing a subsequent data frame in the data buffer, the subsequent data frame not being stored in the data buffer when the remaining storage space is less than the minimum limit.
Claim 32
Dependent Claim 26 words
The arrangement of claim 25, wherein the status entry further includes a frame buffer starting address that points to the starting address of a data frame.
Claim 33
Dependent Claim 22 words
The arrangement of claim 23, wherein the step of receiving data frames includes receiving the data frames over a plurality of channels.

References Cited (Backward Citations)

US5251303A Cited
US5483665A Cited
US5316582A Cited
US5386532A Cited
US5388237A Cited
US5655104A Cited
US5655151A Cited
US5606665A Cited
US5561820A Cited
US5613162A Cited
US5664116A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag