Claims
- 1. A method of controlling interrupts by an adapter to a host system, said host system having a host memory, said host memory having buffers, and further said host system having a driver to operate said adapter, the method comprising the steps of:
- consuming buffers in said host memory by said adapter using said driver in reading said buffers during adapter read operation, and in writing said buffers during adapter write operation;
- maintaining a consumer index in said adapter, said consumer index indicating a last buffer consumed, as consumed buffers are indicated by said adapter, said adapter updating said consumer index to a current value as new buffers are consumed;
- writing a completion index to said adapter by said driver after all buffers are consumed, said completion index indicating a last buffer consumed, as consumed buffers are indicated by said host system;
- setting an arm bit in said adapter, said arm bit indicating that said driver in said host system has completed servicing of an interrupt issued by said adapter; and,
- interrupting said host system by said adapter to activate said driver, in the event that said arm bit is set AND said completion index indicates a different buffer than said current value of said consumer index.
- 2. A method for controlling interrupts by an adapter to a host system, said adapter writing data to buffers in a host memory in said host system, said adapter and said host memory connected by a system bus, the method comprising the steps of:
- maintaining a receive consumer index by said adapter, said receive consumer index indicating a last buffer in said host memory where said adapter has written data, as consumed buffers are indicated by said adapter;
- writing data by said adapter into a buffer indicated by said receive consumer index, said adapter updating said receive consumer index to a current value as said data is written into new buffers;
- writing a completion index by a driver to said adapter, said completion index indicating a last consumed buffer, as consumed buffers are indicated by said driver in said host system;
- setting an arm bit in said adapter to indicate that said driver in said host system has completed servicing of an interrupt issued by said adapter; and,
- interrupting said host by said adapter to activate said driver, in the event that said arm bit is set AND said completion index indicates a different buffer than said current value of said receive consumer index.
- 3. A method for controlling interrupts by an adapter to a host system, said adapter reading data from buffers in a host memory in said host system, said adapter and said host memory connected by a system bus, the method comprising the steps of:
- maintaining a transmit consumer index by said adapter, said transmit consumer index indicating a last buffer in said host memory where said adapter has read data, as said buffers are indicated by said adapter;
- reading data by said adapter from a buffer indicated by said transmit consumer index, said adapter updating said transmit consumer index to a current value as new buffers are read;
- writing a completion index by a driver to said adapter after all buffers are read, said completion index indicating a last buffer read as said buffers are indicated by said driver in said host system;
- setting an arm bit in said adapter to indicate that said driver in said host system has completed servicing of an interrupt issued by said adapter; and,
- interrupting said host system by said adapter to activate said driver, in the event that said arm bit is set AND said completion index indicates a different buffer than said current value of said transmit consumer index.
- 4. The method of claim 1, or claim 2, or claim 3 further comprising:
- testing periodically under the control of a clock, whether said arm bit is set in conjunction with testing the equality of said completion index and said current value of said consumer index.
- 5. The method of claim 1, or claim 2, or claim 3 further comprising:
- writing a consumer index by said adapter to said host.
- 6. The method of claim 1, or claim 2, or claim 3 wherein said setting of an arm bit in said adapter, further comprises:
- detecting, by said adapter, the write of said completion index to said adapter, and setting said arm bit in response to detection of writing said completion index to said adapter.
- 7. The method of claim 1, or claim 2, or claim 3 wherein said setting of an arm bit in said adapter, further comprises:
- writing said arm bit to said adapter by said host.
- 8. The method as in claim 1, or claim 2, or claim 3, further comprising:
- transferring, in response to said interrupting said host, data between a packet memory in said adapter and said host memory by said consuming buffers in said host memory.
- 9. The method as in claim 8 in which the step of transferring data between said packet memory and said host memory comprises:
- transferring data via DMA.
- 10. The method in accordance with claim 1, or claim 2, or claim 3, further comprising:
- clearing said arm bit, in response to said interrupting of said host system, to prevent additional interrupts of said host system.
- 11. The method in accordance with claim 1, or claim 2, or claim 3, further comprising:
- receiving a rearm request from said host system; and,
- setting said arm bit in response to said receiving of a rearm request.
- 12. The method in accordance with claim 1, or claim 2, or claim 3, further comprising:
- transferring, in response to said current value of said consumer index, an updated consumer index to said host system after a transferring of data between a packet memory and said host memory.
- 13. The method in accordance with claim 1, or claim 2, or claim 3, wherein said host system has a network coupled to said host system, further comprising:
- transferring data between a packet memory and said network.
- 14. An apparatus to control interrupts by an adapter to a host system, said host system having a host memory, said host memory having buffers, and further said host system having a driver to operate said adapter, the apparatus comprising:
- means for consuming buffers in said host memory by said adapter using said driver in reading said buffers during adapter read operation, and in writing said buffers during adapter write operation;
- means for maintaining a consumer index in said adapter, said consumer index indicating a last buffer consumed, as consumed buffers are indicated by said adapter, said adapter updating said consumer index to a current value as new buffers are consumed;
- means for writing a completion index to said adapter by said driver after all buffers are consumed, said completion index indicating a last buffer consumed, as consumed buffers are indicated by said host system;
- means for setting an arm bit in said adapter, said arm bit indicating that said driver in said host system has completed servicing of an interrupt issued by said adapter; and,
- means for interrupting said host system by said adapter to activate said driver, in the event that said arm bit is set AND said completion index indicates a different buffer than said current value of said consumer index.
- 15. An apparatus to control interrupts by an adapter to a host system, said adapter writing data to buffers in a host memory in said host system, said adapter and said host memory connected by a system bus, the apparatus comprising:
- means for maintaining a receive consumer index by said adapter, said receive consumer index indicating a last buffer in said host memory where said adapter has written data, as consumed buffers are indicated by said adapter;
- means for writing data by said adapter into a buffer indicated by said receive consumer index, said adapter updating said receive consumer index to a current value as said data is written into new buffers;
- means for writing a completion index by a driver to said adapter, said completion index indicating a last consumed buffer, as consumed buffers are indicated by said driver in said host system;
- means for setting an arm bit in said adapter to indicate that said driver in said host system has completed servicing of an interrupt issued by said adapter; and,
- means for interrupting said host by said adapter to activate said driver, in the event that said arm bit is set AND said completion index indicates a different buffer than said current value of said receive consumer index.
- 16. An apparatus to control interrupts by an adapter to a host system, said adapter reading data from buffers in a host memory in said host system, said adapter and said host memory connected by a system bus, the apparatus comprising:
- means for maintaining a transmit consumer index by said adapter, said transmit consumer index indicating a last buffer in said host memory where said adapter has read data, as said buffers are indicated by said adapter;
- means for reading data by said adapter from a buffer indicated by said transmit consumer index, said adapter updating said transmit consumer index to a current value as new buffers are read;
- means for writing a completion index by a driver to said adapter after all buffers are read, said completion index indicating a last buffer read as said buffers are indicated by said driver in said host system;
- means for setting an arm bit in said adapter to indicate that said driver in said host system has completed servicing of an interrupt issued by said adapter; and,
- means for interrupting said host by said adapter to activate said driver, in the event that said arm bit is set AND said completion index indicates a different buffer than said current value of said transmit consumer index.
- 17. The apparatus of claim 14 or claim 15 or claim 16, further comprising:
- means for testing periodically under the control of a clock, whether said arm bit is set in conjunction with testing the equality of said completion index and said current value of said consumer index.
- 18. The apparatus of claim 14 or claim 15 or claim 16, further comprising:
- means for writing a consumer index by said adapter to said host.
- 19. The apparatus of claim 14 or claim 15 or claim 16, wherein said means for setting of an arm bit in said adapter, further comprises:
- means for detecting, by said adapter, the write of said completion index to said adapter, and setting said arm bit in response to detection of writing said completion index to said adapter.
- 20. The apparatus of claim 14 or claim 15 or claim 16, wherein said means for setting of an arm bit in said adapter, further comprises:
- writing said arm bit to said adapter by said host.
- 21. The apparatus of claim 14 or claim 15 or claim 16, further comprising:
- means for transferring, in response to said interrupting said host, data between a packet memory in said adapter and said host memory by said consuming buffers in said host memory.
- 22. The apparatus of claim 14 or claim 15 or claim 16, further comprising:
- means for clearing said arm bit, in response to said interrupting of said host system, to prevent additional interrupts of said host system.
- 23. The apparatus of claim 14 or claim 15 or claim 16, further comprising:
- means for receiving a rearm request from said host system; and,
- means for setting said arm bit in response to said receiving of a rearm request.
- 24. The apparatus in accordance with claim 14 or claim 15 or claim 16, further comprising:
- means for transferring, in response to said current value of said consumer index, an updated consumer index to said host system after a transferring of data between a packet memory and said host memory.
- 25. The apparatus of claim 14 or claim 15 or claim 16, wherein said host system has a network coupled to said host system, further comprising:
- means for transferring data between said a packet memory and said network.
Parent Case Info
This application is a continuation of application Ser. No. 07/818,564, filed Jan. 9, 1992, now abandoned.
US Referenced Citations (8)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0267974 |
May 1988 |
EPX |
Continuations (1)
|
Number |
Date |
Country |
Parent |
818564 |
Jan 1992 |
|