×

Direct memory access channel architecture and method for reception of network information

  • US 5,805,927 A
  • Filed: 09/24/1997
  • Issued: 09/08/1998
  • Est. Priority Date: 01/28/1994
  • Status: Expired due to Term
First Claim
Patent Images

1. A method for transferring packets of data from an input/output (I/O) device to a main memory of a computer system with a direct memory access (DMA) controller, wherein the computer system includes a first bus and a second bus coupled to the DMA controller, and wherein the DMA controller includes a buffer and at least one register set which includes an address register, the method comprising the steps of:

  • establishing at least one buffer in said main memory, wherein each of said at least one buffer in said main memory comprises at least one segment, and wherein each of said at least one segment corresponds to one of said packets of data;

    determining a first packet of said packets of data;

    initially setting a number of most significant bits of said address register equal to corresponding most significant bits of an address of a first memory location of said corresponding segment in said main memory;

    initially setting a next higher least significant bit over a number of least significant bits of said address register to one;

    transferring a portion of said first packet from said I/O device to said buffer in said DMA controller via said second bus;

    transferring said portion of said first packet from said buffer in said DMA controller to a location of said corresponding segment in said main memory, via said first bus, wherein said location is indicated by an address stored in said address register, wherein said number of least significant bits of said address register are hardwired to zero, and wherein a number of memory locations corresponding to addresses represented by said number of least significant bits is equal in size to said portion of said first packet;

    incrementing said address register by an amount equal in size to said portion of said first packet after transferring each said portion of said first packet from said buffer in said DMA controller to said corresponding segment in said main memory;

    repeating said transferring said portion steps and said incrementing said address register step until said first packet is completely transferred to said corresponding segment in said main memory;

    transferring status data from a status register of said I/O device to said buffer in said DMA controller in response to a final portion of said first packet being transferred to said corresponding segment;

    resetting said number of most significant bits of said address register equal to said corresponding most significant bits of said address of said first memory location of said corresponding segment in said main memory, in response to transferring said final portion of said first packet;

    resetting said next higher least significant bit over said number of least significant bits of said address register to zero, wherein an address of a beginning location of said corresponding segment is indicated by said address stored in said address register;

    transferring said status data from said buffer in said DMA controller to said beginning location of said corresponding segment;

    incrementing said address register by an amount equal in size to said portion of said first packet after transferring said status data from said buffer in said DMA controller to said beginning location of said corresponding segment;

    incrementing said address register by an amount equal to a size of one of said at least one segment in response to a final portion of said status data being transferred to said corresponding segment; and

    decrementing a packet count by one in response to said final portion of said status data being transferred to said corresponding segment.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×