Claims
- 1. A method for transmission flow control in high-speed serial data transmission element comprising the steps of:
maintaining an available credits indicia associated with each port of a plurality of ports associated with said transmission element; transmitting packets to an identified port in a receiving element when allowed in accordance with the available credits indicia associated with said identified port; receiving port status information from said receiving element wherein said port status information is associated with said identified port; detecting changes in said port status information wherein detecting of said changes is asynchronous with respect to the step of transmitting; and reducing said available credits indicia associated with said identified port in accordance with the detected changes.
- 2. The method of claim 1 wherein said transmission element is an SPI compliant transmission element.
- 3. The method of claim 2wherein the step of detecting a reduction in available buffer space for said identified port comprises detecting a change in the xSTAT[1:0] field from STARVING status to HUNGRY status, and wherein the step of reducing available credits comprises the step of setting said available credits associated with said identified port to the lesser of the present value of said available credits and the MAXBURST2 parameter associated with said identified port.
- 4. The method of claim 2 wherein said transmission element is an SPI compliant transmission element, and
wherein the step of detecting a reduction in available buffer space for said identified port comprises detecting a change in the xSTAT[1:0] field from STARVING status to SATISFIED status, and wherein the step of reducing available credits comprises the step of setting said available credits associated with said identified port to zero.
- 5. A method for reception flow control a high-speed serial data receiving element comprising the steps of:
generating storage metric information regarding buffer memory associated with each port of multiple ports associated with said receiving element; and transmitting updated port status information to a transmitting element associated with said port wherein said updated port status information is derived from said storage metric information.
- 6. The method of claim 5 further comprising the step of:
allocating dedicated buffer memory associated with said each port; and allocating shared buffer memory common to all of said multiple ports.
- 7. The method of claim 6 wherein the step of generating comprises the step of:
counting the amount of said dedicated buffer memory used by said each port.
- 8. The method of claim 7 wherein the step of transmitting updated port status information further comprises the step of:
updating said updated port status information in accordance with the present count of said amount of dedicated buffer memory used by said each port.
- 9. The method of claim 6 wherein the step of generating comprises the step of:
counting the amount of said shared buffer memory used by said each port.
- 10. The method of claim 9 wherein the step of transmitting updated port status information further comprises the step of:
updating said updated port status information in accordance with the present count of said amount of shared buffer memory used by said each port.
- 11. The method of claim 7 wherein the step of generating comprises the steps of:
counting the amount of said shared buffer memory used by said each port; and counting the amount of said dedicated buffer memory used by said each port.
- 12. The method of claim 11 wherein the step of transmitting updated port status information further comprises the step of:
updating said updated port status information in accordance with the present count of said amount of dedicated buffer memory used by said each port and in accordance with the present count of said amount of shared buffer memory used by said each port.
- 13. The method of claim 12 wherein said receiving element is an SPI compliant receiving element.
- 14. The method of claim 13 wherein the step of updating comprises the step of:
updating said port status information to a status value selected from the group consisting of SATISFIED, HUNGRY, and STARVED in accordance with the present count of said amount of dedicated buffer memory used by said each port and in accordance with the present count of said amount of shared buffer memory used by said each port.
- 15. In an SPI compliant serial communication system having a transmission element and a receiving element, a method comprising:
generating buffer memory storage metric information within said receiving element wherein said storage metric information indicates buffer memory utilization by each port of a plurality of ports; generating, within said receiving element, port status information regarding said each port wherein said port status information includes flow control information; transmitting said port status information to said transmission element wherein said port status information is transmitted as xSTAT[1:0] status fields for said each port; and transmitting packets from said transmission element to said receiving element when permitted in accordance with said flow control information, wherein said port status information is updated and transmitted to said transmission element asynchronously with respect to the transmission of said packets.
- 16. The method of claim 15 further comprising the step of:
allocating dedicated buffer memory associated with said each port; and allocating shared buffer memory common to all of said multiple ports.
- 17. The method of claim 16 wherein the step of generating said buffer memory storage metric information comprises the steps of:
counting the amount of said shared buffer memory used by said each port; and counting the amount of said dedicated buffer memory used by said each port.
- 18. The method of claim 17 wherein the step of transmitting said port status information further comprises the step of:
updating said port status information in accordance with the present count of said amount of dedicated buffer memory used by said each port and in accordance with the present count of said amount of shared buffer memory used by said each port.
- 19. The method of claim 18 wherein the step of updating comprises the step of:
updating said port status information as an xSTAT[1:0] status value selected from the group consisting of SATISFIED, HUNGRY, and STARVED in accordance with the present count of said amount of dedicated buffer memory used by said each port and in accordance with the present count of said amount of shared buffer memory used by said each port.
- 20. The method of claim 15 wherein the step of transmitting packets further comprises the steps of:
detecting, within said transmission element, a change in said port status information from STARVING status to HUNGRY status, and setting an available credits associated with said identified port to the lesser of the present value of said available credits and the MAXBURST2 parameter associated with said identified port.
- 21. The method of claim 15 wherein the step of transmitting packets further comprises the steps of:
detecting, within said transmission element, a change in said port status information from STARVING status to SATISFIED status, and setting an available credits associated with said identified port to zero.
- 22. In a communication system including a transmitting element coupled to receiving element having multiple ports, a method operable within said transmitting element comprising the steps of:
maintaining an available credit count for each port of said multiple ports wherein said available credit count indicates a number of packets that may be transmitted to said each port; and reducing said available credit count for a first port in response to packet transmissions to other ports of said multiple ports.
- 23. Apparatus in a receiving element having multiple ports comprising:
dedicated buffer memory associated with each port of said multiple ports wherein said dedicated buffer memory is used for buffering received packets addressed to the corresponding port; shared buffer memory shared by all of said multiple ports used for receiving packets addressed to any of said multiple ports; flow control logic adapted to determine a flow control status for each port of said multiple ports as a function of usage of said dedicated memory associated with said each port and as a function of usage of said shared memory by all of said multiple ports.
- 24. The apparatus of claim 23 wherein said flow control logic includes:
storage metric counters for counting usage of said dedicated memory associated with said each port and for counting usage of said shared memory by all of said multiple ports.
- 25. Apparatus in a transmitting element adapted to transmit to receiving elements having multiple ports, said apparatus comprising:
flow control logic for generating flow control information for each port of said multiple ports wherein said flow control logic is responsive to flow control status received from receiving elements; and transmission means coupled to said flow control logic for transmitting packets to a port of said multiple ports when permitted in accordance with flow control information provided by said flow control logic, wherein said flow control logic includes an available credit count for said each port and wherein said available credit counter is adjusted in accordance with packets transmitted to a corresponding port of said multiple ports by said transmission means and wherein said available credit counter is also reduced asynchronously with respect transmissions of packets to said corresponding port.
RELATED PATENTS
[0001] This patent claims priority to U.S. Provisional Patent Application Serial No. 60/341,339, filed Dec. 17, 2001, entitled FLOW CONTROL MEANS FOR IMPROVED SHARED STORAGE MANAGEMENT BY DYNAMICALLY ALTERING FLOW CONTROL STATUS and which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60341339 |
Dec 2001 |
US |