APPARATUS AND METHOD FOR TRANSMITTING OUTGOING DATA USING DATA DESCRIPTORS

Information

  • Patent Application
  • 20070233994
  • Publication Number
    20070233994
  • Date Filed
    March 28, 2007
    17 years ago
  • Date Published
    October 04, 2007
    17 years ago
Abstract
An apparatus and method for transmitting outgoing data uses data descriptors for multiple sets of contiguous data blocks stored in buffers. When new sets of contiguous data blocks are created due to acknowledgement signals for particular data blocks of the multiple sets of contiguous data blocks, new data descriptors are generated for some of the new sets of contiguous data blocks. These new data descriptors are placed in spaces in the buffers where the particular data blocks were originally stored.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram of an apparatus for transmitting outgoing data in a communication system in accordance with an embodiment of the invention.



FIG. 2 is a block diagram of buffers of the apparatus of FIG. 1 in accordance with an embodiment of the invention.



FIG. 3A is a block diagram of a buffer descriptor in accordance with an embodiment of the invention.



FIG. 3B is a block diagram of a data descriptor in accordance with an embodiment of the invention.



FIGS. 4A-4C illustrates a process of generating and placing new data descriptors in the buffers as data blocks are positively acknowledged in accordance with an embodiment of the invention.



FIG. 5 is a process flow diagram of a method for transmitting outgoing data in a communication system in accordance with an embodiment of the invention.


Claims
  • 1. A method for transmitting outgoing data, said method comprising: storing said outgoing data in buffers as multiple sets of contiguous data blocks;generating a data descriptor for each of said multiple sets of contiguous data blocks in said buffers;transmitting said multiple sets of contiguous data blocks from said buffers;receiving acknowledgement signals for particular data blocks in said multiple sets of contiguous data blocks;making available spaces in said buffers where said particular data blocks were originally stored in response to said acknowledgement signals such that new sets of contiguous data blocks are created in said buffers; andgenerating new data descriptors for said new sets of contiguous data blocks, including placing said new data descriptors in said spaces of said buffers.
  • 2. The method of claim 1 wherein said data descriptor includes at least one of a link field, a control field, a connection field, an offset field and a length field.
  • 3. The method of claim 2 wherein said data descriptor is sixteen bytes long.
  • 4. The method of claim 1 further comprising generating a buffer descriptor for each of said buffers.
  • 5. The method of claim 3 wherein said buffer descriptor includes at least one of a control field, a length field, a link field and a counter field.
  • 6. The method of claim 5 further comprises calculating a buffer address from a memory address of a particular data descriptor in said, said buffer address corresponding to a particular buffer of said buffers in which said particular data descriptor is located.
  • 7. The method of claim 6 wherein said buffers occupy contiguous memory space and wherein each of said buffers is of the same size.
  • 8. The method of claim 7 wherein said calculating includes calculating said buffer address using: buffer_address=(data_descriptor_address-base_buffer_address)/buffer_size, where said buffer_address is a memory address of said buffer, said data_descriptor_address is a memory address of said particular data descriptor, said base_buffer_address is a memory address of the first buffer of said buffers and said buffer_size is the size of said buffers.
  • 9. The method of claim 1 wherein said storing includes writing said data blocks into said buffers using a first direct memory access (DMA) controller, and wherein said transmitting includes reading said data block from said buffers using a second DMA controller.
  • 10. An apparatus for transmitting outgoing data, said system comprising: a plurality of buffers to store said outgoing data in said buffers as multiple sets of contiguous data blocks such that each of said multiple sets of contiguous data blocks is stored in one of said buffers; anda media access control (MAC) controller operatively connected to said buffers, said MAC controller being configured to generate a data descriptor for each of said multiple sets of contiguous data blocks in said buffers, said MAC controller being further configured to generate new data descriptors for new sets of contiguous data blocks that are produced in response to receipt of acknowledgment signal for particular data blocks in said multiple sets of contiguous data blocks, said MAC controller being further configured to place said new data descriptors in spaces in said buffers where said particular data blocks were originally stored.
  • 11. The apparatus of claim 10 further comprising a direct memory access (DMA) controller operatively connected to said buffers, said DMA controller being configured to write said outgoing data into said buffers.
  • 12. The apparatus of claim 11 further comprising a second direct memory access (DMA) controller operatively connected to said buffers, said second DMA controller being configured to read said outgoing data into said buffers.
  • 13. The apparatus of claim 10 wherein said buffers are in a random access memory.
  • 14. The apparatus of claim 10 wherein said data descriptor includes at least one of a link field, a control field, a connection field, an offset field and a length field.
  • 15. The apparatus of claim 14 wherein said data descriptor is sixteen bytes long.
  • 16. The apparatus of claim 10 wherein said MAC controller is further configured to generate a buffer descriptor for each of said buffers.
  • 17. The apparatus of claim 16 wherein said buffer descriptor includes at least one of a control field, a length field, a link field and a counter field.
  • 18. The method of claim 17 wherein said buffers occupy contiguous memory space and wherein each of said buffers is of the same size.
  • 19. The apparatus of claim 18 wherein said MAC controller is further configured to calculate a buffer address from a memory address of a particular data descriptor in said buffers, said buffer address corresponding to a particular buffer of said buffers in which said particular data descriptor is located.
  • 20. The apparatus of claim 18 wherein said MAC controller is configured to calculate said buffer address using: buffer_address=(data_descriptor_address-base_buffer_address)/buffer_size, where said buffer_address is a memory address of said buffer, said data_descriptor_address is a memory address of said particular data descriptor, said base_buffer_address is a memory address of the first buffer of said buffers and said buffer_size is the size of said buffers.
Provisional Applications (1)
Number Date Country
60787273 Mar 2006 US