Claims
- 1. A method for transmitting frame groups which may contain information field(s) from a main processor storage buffer area across a communications link including a plurality of carriers to a receiving buffer area, comprising the steps of:
- beginning transmission of a frame group without waiting to receive any further information field(s) for the frame group from main processor storage;
- providing information in a link-control word portion of a frame specifying a total number of blocks to be transmitted to the receiving buffer;
- specifying in the link-control word that the frame group for which the link-control word is associated is the first of one or the first of multiple frame groups required to transmit the contents of the buffer area.
- 2. A method for ending a frame group in an environment of multiple independent transceivers operating with independent clocks, comprising the steps of:
- asynchronously broadcasting a command from a source to all transceivers instructing them to suspend, or end, a frame being currently transmitted; and
- receiving at each tranceiver the broadcast command, and if the command is a suspend command, determining on what block boundary within the frame to end the frame transmission; and
- ending the frame at a block boundary
- within the frame even if its transmission is incomplete and not ended
- and returning to the source an indication of frame end.
- 3. The method of claim 2 wherein all data is transmitted to all receive buffers at the same logical time and the progress of frame transmission is equally determined on all transmitters by examining an amount of data received by the transmit buffers.
- 4. The method of claim 1
- wherein the amount of data received by a buffer of said transceivers currently transmitting said frame is determined by waiting for the data transmission to end.
- 5. The method of claim 1
- wherein the amount of data received by a buffer of said transceivers currently transmitting said frame is determined at the instant that a Suspend command is received by the transmit buffers.
- 6. The method of claim 5
- wherein the amount of data received by a buffer of said transceivers currently transmitting said frame is determined when the transmitters would normally transmit null words.
- 7. A method for determining that all of the transmitters of a frame group communication link having multiple transceivers and a link controller have finished transmitting a current frame group comprising the steps of:
- setting a busy bit for each tranceiver when the command to transmit a frame is sent to the transmitters; and also
- setting said busy bit for each transceiver
- when the transmitter indicates that it is busy transmitting a frame; and
- resetting said busy bit only by transitions from the active state to inactive state
- when the transmitter indicates that it is no longer busy sending the frame for indicating the ending of frame transmission.
- 8. A method according to claim 7 wherein after all transceivers have ended frame transmission and all transmitters have indicated that they are no longer busy sending a frame after a Suspend command, allowing a step of sending a higher priority frame group after transmission of the current frame group is initiated whether or not a frame transmission has completed.
- 9. A method according to claim 8
- wherein a transmission of a frame group can prematurely become ended as a result of an initiated Suspend command, as by an interrupt for a higher priority message, whereupon said busy bit for each transceiver has been reset, and wherein thereafter the transmission of said prematurely ended frame group is resumed after an intervening transmission, as a higher priority frame group transmission, has completed.
- 10. A method of controlling communication among nodes of a computer system having a plurality of communicating nodes, comprising the steps of:
- transmitting in transmit mode a sending data frame having a beginning link-control word, and an information field and having some first priority between nodes of the computer system from at least one transmitting communicating node to at least one receiving communicating node;
- interrupting the transmission of said transmit mode data frame and suspending its transmission at said first transmitting communicating node whether or not said first priority frame transmission has completed transmission of all of its information field and completed transmission of its frame without causing an error or abortion of the sending data frame at a receiving communicating node,
- transmitting a priority interrupt message frame while said transmit mode data frame is suspended, and
- after the priority interrupt message frame is transmitted, resuming the transmission of said transmit mode data frame.
- 11. A method for suspending a frame group in an environment of multiple independent transceivers operating with independent clocks, comprising the steps of:
- asychronously broadcasting a suspend command from a source upon a stall indication to all transceivers instructing them to suspend a frame being currently transmitted; and
- receiving at each tranceiver the broadcast suspend command and determining on what block boundary within the frame to end the frame transmission; and
- ending the frame and returning to the source an indication of frame end, wherein, said suspend command is broadcast from said source upon a stall indication, and upon a indication received by the source that transmission of frames has ended, then broadcasting a resume command to all transceivers to instruct them to resume transmission.
- 12. A method for transmitting frame groups which may contain information field(s) from a main processor storage buffer area across a communications link including a plurality of carriers to a receiving buffer area, comprising the steps of:
- beginning transmission of a frame group with a first data frame of said group having a beginning link-control work, and information fields as soon as data flow from main processor storage starts and before waiting to receive any further information field(s) for the frame group has been received from main processor storage;
- providing information in a link-control word portion of a frame specifying a total number of blocks to be transmitted to the receiving buffer;
- suspending transmission of a frame group from a transmitter whether or not a frame of said transmitting frame group has completed transmission of all of its information field and completed transmission of its frame without causing an error message or abortion of the sending data frame; and
- resuming transmission of the suspended frame group; wherein
- upon resumption of transmission of a suspended frame group a link-control word of a first frame of frame group being transmitted as a resuming transmission of the suspended frame group specifies where the information of the frame group being transmitted begins without resending any information previously sent in frame(s) previously transmitted before suspension of the suspended frame group.
- 13. A method according to claim 12 wherein is included
- asynchronously broadcasting a command from a source to all transceivers instructing them to suspend, or end, a frame being currently transmitted; and
- receiving at each tranceiver the broadcast command, and if the command is a suspend command, determining on what block boundary within the frame to end the frame transmission; and
- ending the frame and returning to the source an indication of frame end, whereby upon resume the source can supply for resumption of transmission a first frame upon resume transmission that specifies where a resumed transmission begins whereby the information of the frame group being transmitted upon resumption begins without resending any information previously sent in frame(s) previously transmitted before suspension of the suspended frame group.
- 14. A method for transmitting frame groups which may contain information field(s) from a main processor storage buffer area across a communications link including a plurality of carriers to a receiving buffer area from transmit buffer associated with each carrier, comprising the steps of:
- beginning transmission of a frame group from said plurality of carriers without waiting to receive any further information field(s) for the frame group from main processor storage;
- providing information in a link-control word portion of a frame specifying a total number of blocks to be transmitted to the receiving buffer;
- specifying in the link-control word that the frame group for which the link-control word is associated is the first of one or the first of multiple frame groups required to transmit the contents of the buffer area,
- whereby all frames of the frame group are started as soon as the data flow from said main processor starts
- wherein for ending a transmission of a frame group, the method includes:
- asynchronously broadcasting a command from a source to all transceivers instructing them to suspend, or end, a frame being currently transmitted; and
- receiving at each tranceiver the broadcast command, and if the command is a suspend command, determining on what block boundary within the frame to end the frame transmission; and
- ending the frame and returning to the source an indication of frame end whereby all frames of the frame group are ended on the same word boundry even though a carrier may be transmiting words of differing word positions at the same time as words of the frame group are being transmitted over another carrier.
- 15. The method of claim 14 wherein all data is transmitted to all receive buffers at the same time even though a carrier may be transmiting words of differing word positions at the same time as words of the frame group are being transmitted over another carrier and the progress of frame transmission is equally determined on all transmitters by examining an amount of data received by the transmit buffers.
- 16. A method according to claim 15 wherein for determining that all of the transmitters of a frame group communication link having multiple transceivers and a link controller have finished transmitting a current frame group comprising the steps of:
- setting a busy bit for each tranceiver when the command to transmit a frame is sent to the transmitters; and also
- setting said busy bit for each transceiver
- when the transmitter indicates that it is busy transmitting a frame; and
- resetting said busy bit only by transitions from the active state to inactive state
- when the transmitter indicates that it is no longer busy sending the frame for indicating the ending of frame transmission.
- 17. A method according to claim 16 wherein
- after all transceivers have ended frame transmission and all transmitters have indicated that they are no longer busy sending a frame after a Suspend command, allowing a step of sending a higher priority frame group after transmission of the current frame group is initiated whether or not a frame transmission has completed.
- 18. A method according to claim 16 wherein a transmission of a frame group can prematurely become ended as a result of an initiated Suspend command, as by an interrupt for a higher priority message, whereupon said busy bit for each transceiver has been reset, and wherein thereafter the transmission of said prematurely ended frame group is resumed after an intervening transmission, as a higher priority frame group transmission, has completed.
- 19. A method according to claim 14, wherein
- for suspending a frame group in an environment of multiple independent transceivers operating with independent clocks
- asychronously broadcasting a suspend command in the event of a stall indication from a source to all transceivers instructing them to suspend a frame being currently transmitted; and
- receiving at each tranceiver the broadcast suspend command and determining on what block boundary within the frame to end the frame transmission; and
- ending the frame and returning to the source an indication of frame end, wherein, said suspend command is broadcast from said source upon a stall indication, and upon a indication received by the source that transmission of frames has ended, then broadcasting a resume command to all transceivers to instruct them to resume transmission.
- 20. A method according to claim 19 wherein
- after suspending transmission a frame group; performing the step of resuming transmission of the suspended frame group; wherein
- upon resumption of transmission of a suspended frame group a link-control word of a first frame of frame group being transmitted as a resuming transmission of the suspended frame group specifies where the information of the frame group being transmitted begins without resending any information previously sent in frame(s) previously transmitted before suspension of the suspended frame group.
- 21. A method according to claim 20 wherein is included
- asynchronously broadcasting a command from a source to all transceivers instructing them to suspend, or end, a frame being currently transmitted; and
- receiving at each tranceiver the broadcast command, and if the command is a suspend command, determining on what block boundary within the frame to end the frame transmission; and
- ending the frame and returning to the source an indication of frame end, whereby upon resume the source can supply for resumption of transmission a first frame upon resume transmission that specifies where a resumed transmission begins, whereby the information of the frame group being transmitted upon resumption begins without resending any information previously sent in frame(s) previously transmitted before suspension of the suspended frame group.
- 22. A communication system, comprising:
- a plurality of communication nodes each having port means for communication to and from the node,
- communication means for passing information from the port means of one node to another node, including:
- data frame storage means for storing in memory data frames be transmitted, and for transmitting in transmit mode a sending data frame having a beginning link-control word, and an information field and having some first priority between nodes of the computer system from at least one transmitting communicating node to at least one receiving communication node;
- priority control means for determining the priority of frame transmission, and
- transmission means for transmitting in transmit mode data frames stored in memory from one node to another,
- said priority control means including means for suspending transmission of a data frame during transmit for a period of time for transmission of an interrupt message after which the transmission of data frames in transmit mode is resumed,
- said priority control means including means for
- interrupting the transmission of said transmit mode data frame and suspending its transmission at said first transmitting communicating node whether or not said first priority frame transmission has completed transmission of all of its information field and completed transmission of its frame without causing an error message or abortion of the sending data frame at a receiving communicating node and for
- transmitting a priority interrupt message frame while said transmit mode data frame is suspended, and
- after the priority interrupt message frame is transmitted, for resuming the transmission of said transmit mode data frame.
- 23. A communication system according to claim 22 wherein
- said priority control means includes a priority interrupt means for initiating a higher priority frame transmission than a data frame transmission in transmit mode and for transmitting a priority interrupt message in interrupt mode transmission during suspension; and then
- resuming said transmission in transmit mode at the level it was interrupted whereby transmission from the communication node to the receiving node is resumed without resending previously transmitted information.
- 24. A communication system according to claim 23 wherein said priority control means includes a suspend/resume state machine.
- 25. A communication system according to claim 24 wherein is included a link controller for managing transmission of link adapters, and said suspend/resume state machine controls ending of current transmitted frame groups and instructs the controller functions to send high priority frame groups, and resumes transmission for a prematurely ended buffer area, said suspend/resume state machine receiving instructions to send high priority frames and to move data from the link adapters to the system.
- 26. A communication system according to claim 25 wherein the controller has a counting mechanism for determining when an outbound frame transfer has stalled, including a stall counter, for counting the number of cycles that the controller is requesting data from the system and that data has not yet been delivered.
- 27. A communication system according to claim 25 wherein an outbound stall condition is detected only when transmitting functions are busy sending a frame and the data flow from the system has been slowed down for a relatively long time, whereupon the suspend/resume state machine immediately sends the suspend command to the transmitting functions which acknowledge that they have ended the frame by indicating that they are no longer busy, the condition being detected by a decision block, whereupon a resume command is immediately sent to restart transmission as soon as data is available from the system.
Parent Case Info
This application is a continuation-in-part of U.S. Ser. No. 07/839,986, filed Feb. 20, 1992, by Bartow et al., now U.S. Pat. No. 5,267,240, issued Nov. 30, 1993, entitled FRAME-GROUP TRANSMISSION AND RECEPTION FOR PARALLEL/SERIAL BUSES.
US Referenced Citations (13)
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
839986 |
Feb 1992 |
|