Control method for distributed processing system

Abstract: A distributed processor system includes a plurality of processors (10, 20, 30) connected via a transmission medium (01). A control method for a distributed processor system includes the steps of judging, in each processor, its own receiving capability and performing abnormality processing on the basis of the result of the judgment.

Description: BACKGROUND OF THE INVENTION FIELD OF THE INVENTION The present invention relates to a control method for a multiprocessor system. DESCRIPTION OF THE RELATED ART As for conventional data transmission and reception control methods for multiprocessor systems, a command/response scheme is used in a high level data link control (HDLC) procedure or the like as described in "Information Processing", Information Processing Society of Japan, Vol. 23, No. 12, 1982, pp. 1154 to 1160. This scheme is one-to-one communication wherein a processor for transmitting data specifies a processor which should receive the data, and the processor which has received the data transmits a response informing of success of reception to the processor which has transmitted the data. The processor of transmission side detects success of the data transmission upon receiving the response, whereas the processor of transmission side detects failure of the data transmission on the basis of the fact that the response is not returned. This scheme is based on the assumption that the processor of transmission side knows the address of the processor of reception side. Further, there is also a broadcast system in which data are transmitted without specifying a specific receiving processor, and all processors within the system receive the data. In this system, the response confirming the reception of data from the receiving processor is not transmitted. Even if a fault occurs in a processor within the system or a processor is newly added, therefore, the processor of transmission side can transmit data without being conscious of such a fact. In the one-to-one communication which is the above described related art, data omission at the data transmission level is not caused because a response is returned for every transmission. Since the one-to-one communication is based on the assumption that the processor of transmission side knows addresses of all processors of receiving side, however, it is necessary to inform all processors of a change in system configuration when it is caused by expansion, a fault or the like, resulting in a problem in expandability. In broadcast communication, such a need is obviated and expandability is high. Since a response is not returned, however, there is possibility that data omission is caused when an increased load causes overflow of a receiving buffer and broadcasted data cannot be received, for example. Another distributed processor system which operates on a one-to-one communication basis and thus involves the restrictions explained above is described by A. Hopper et al. in "Local Area Network Design", Addison-Wesley Publishing Company, 1986, pages 10 to 13, 94 to 103 and 155 to 163. The first part of claim 1 includes those features of the invention which are known from this document. SUMMARY OF THE INVENTION It is the object of the present invention to provide a control method for a distributed processor system, which improves the reliability, expandability and maintenance efficiency of the system by providing a highly reliable broadcast communication system free from data omission. This object is met by the method defined in claim 1. BRIEF DESCRIPTION OF THE DRAWINGS Figs. 1A, 1B and 1C are operation flow charts of a first embodiment of the present invention. Figs. 2A and 2B are system configuration diagrams. Fig. 3 is a configuration diagram of a receiving bufer. Fig. 4 is a format diagram of transmission data. Fig. 5 is a system configuration diagram of a second embodiment of the present invention. Fig. 6 is a configuration diagram of a transmission and reception buffer. Figs. 7A, 7B and 7C are operation flow charts. Figs. 8 to 10 are flow charts of received data monitoring means, message sending means and data transmitting means of a third embodiment, respectively. Fig. 11 is a diagram for explaining effects of a fourth embodiment. Fig. 12A is a block diagram showing entire system configuration of a fifth embodiment of the present invention. Fig. 12B is a block diagram showing detailed configuration of BCP. Figs. 12C and 12D are diagram for explaining receiving processing and busy signal sending. Fig. 13 is a diagram for explaining a receiving buffer. Fig. 14 is a processing flow chart of buffer full detection processing and busy signal sending pocessing. Fig. 15 is a flow chart of transmission processing. Fig. 16 is a flow chart of receiving processing. Fig. 17 is a diagram for explaining a message format. Fig. 18 is a processing flow chart of receiving processing and busy signal sending in a sixth embodiment. Fig. 19 is a flow chart of transmission processing performed in the sixth embodiment. Fig. 20 is a block diagram showing detailed configuration of BCP in a seventh embodiment. Figs. 21A and 21B are diagrams showing internal configuration of NCP. Fig. 22 is a diagram showing entire system configuration. Figs. 23A and 23B are diagrams showing a message format. Figs. 24A, 24B and 24C are diagrams for explaining receiving processing performed in each NCP. Figs. 25A and 25B are flow charts for explaining the transmission processing. Figs. 26A and 26B are diagrams for explaining a ninth embodiment. Fig. 27 is a flow chart for explaining a tenth embodiment. Fig. 28 is a diagram for explaining an eleventh embodiment. Figs. 29A and 29B are diagrams for explaining a twelfth embodiment. DESCRIPTION OF THE PREFERRED EMBODIMENTS A first embodiment of the present invention will now be described by referring to drawings. Fig. 2A is a configuration diagram of the entire system. Processors 10, 20 and 30 are connected together via a transmission path 01. The processors 10, 20 and 30 have interfaces 11, 21 and 31 with respect to the transmission path 01, respectively. Although three processors 10, 20 and 30 are illustrated, any number of processors may be connected so long as the number is two or more. In this case, operation of each processor does not change. Fig. 2B shows the structure of the interface 11 of the processor 10 with respect to the transmission path 01. Other processors also have the same structure as that of the processor 10. The interface 11 comprises data receiving means 13 for receiving data from the transmission path 01, a receiving buffer 14 for storing therein the received data, received data monitoring means 15 for monitoring the number of data stored in the receiving buffer 14, message sending means 16 for transmitting a data transmission delay requesting message to the transmission path 01, data transmitting means 17 for transmitting data to the transmission path 01, a transmitting buffer 18 for storing therein data to be transmitted, and a timer 19. These respective means can be implemented by using a common processor or individual processors. The processing unit 12 acquires data from the receiving buffer 14, performs processing upon the data, and stores data to be transmitted into the transmitting buffer 18. Fig. 3 shows the configuration of the receiving buffer 14. The receiving buffer comprises a plurality of data storing areas. Each area comprises a data section 200 and a flag section 201. The flag 201 is "1" when that area has data stored therein, whereas the flag 201 is "0" when that area has no data stored therein. The data receiving means 13 stores data in the lowest area in the figure having no data stored therein, i.e., having a flag "0". If the flag of the lowest area is "1", the processing unit 12 takes the data of that lowest area in and moves data of areas located above that area downward one by one. The receiving data monitoring means monitors the receiving state by counting areas each having a logic "1" in flag 201. Fig. 1A is an operation flow chart of the received data monitoring means 15. The number of data stored in the receiving buffer is monitored (step 101). When the number is not less than a predetermined value N, the message sending means is informed about it (step 102). Immediately upon receiving the information from the received data monitoring means 15, the message sending means 16 transmits a data transmission delay requesting message to the transmission path 01. Fig. 1B is an operation flow chart of the data receiving means 13. The data receiving means 13 receives data (step 110). If the data is a data transmission delay requesting message (step 111), the data receiving means 13 informs the data transmitting means 17 (step 112) of that fact. Otherwise, the data receiving means puts data in the receiving buffer 14 (step 113) and finishes the processing (step 114). Fig. 1C is an operation flow chart of the data transmitting means 17. When the data receiving means 13 has informed the data transmitting means 17 of reception of the data transmission delay requesting message (step 121), the data transmitting means 17 starts the timer (step 122). When the timer stops (step 123), the operation returns to its original state. If the data transmitting means does not inform the delay request and the transmitting buffer contains data (step 124), the data transmitting means 17 transmits data (step 125) and returns to the original state. The time length set in the timer has a constant value or alternatively has a variable value depending upon how frequently the data transmission delay requesting message is received. In the latter case, time T elapsing since previous reception of the same message until its reception at this time is measured, and the value of the timer is so changed as to become smaller when T is large and become larger when T is small. By using this method, it becomes possible to delay the data transmission according to the degree of congestion on the transmission path 01 and loads of other processors. When data is to be transmitted to the transmission path 01, the broadcast scheme is used. Fig. 4 is a format diagram of data flowing on the transmission path. Numerals 211 and 216 denote symbols representing the start and end of data, respectively. Numeral 212 denotes a content code for representing contents of the data. Numeral 213 denotes a serial No. Numeral 214 denotes the processor No. which transmits data, and numeral 215 denotes information. Data having such a format is broadcasted. As a result, all processors on the transmission path 01 receive the data and judge whether the data is necessary data or not on the basis of the content code 212. The processors judge whether the same data was received in the past or not on the basis of the serial No. 213 and discard new data in case of overlap. By the processor No. 214, each of the processors judges whether the received data has been generated in its own processor. If the data transmission delay requesting message also complies with the format of Fig. 4, it is possible to keep the data transmission delay message transmitted by itself from stopping the transmission of data to be transmitted which has been generated in its own processor. In a second embodiment of the present invention, each processor monitors its own data receiving capability in case loads of all processors on the transmission path and capacities of the receiving buffers are equivalent. If its own data receiving capability is lowered, each processor supposes that data receiving capabilities of other processors are similarly lowered and stops its own data transmission temporarily. The second embodiment will hereafter be described by referring to drawings. Fig. 5 is a configuration diagram of an interface section 51 between the transmission path 01 and the processor. The interface 51 comprises data receiving means 53 for receiving data from the transmission path, data transmitting means 54 for transmitting data supplied from a processing unit 52 and for informing the receiving means of the data, a timer 55, a transmitting and receiving buffer 56, and buffer monitoring means 57 for monitoring the number of data stored in the transmitting and receiving buffer 56. These means can be implemented by a common processor or individual processors. Fig. 6 is a configuration diagram of the transmitting and receiving buffer 56. The transmitting and receiving buffer 56 comprises a data section 300, a transmitting/receiving flag 301 and a data storage flag 302. The transmitting/receiving flag 301 becomes "0" when the data contained in that section is data to be transmitted, and it becomes "1" when the data contained in that section is received data. The data storage flag 302 becomes "1" when that line contains some data, and it becomes "0" when that line contains no data. When the data receiving means 53 stores data into the transmitting and receiving buffer 56, therefore, both flags become "1". The processing unit takes data having "1"s in both flags and changes the storage flag 302 to "0". When the processing unit 52 stores data to be transmitted into the transmitting and receiving buffer 56, the processing unit 52 sets the transmitting/ receiving flag 301 at "0" and sets the storage flag 302 at "1". When the data transmitting means 54 performs data transmission, it transmits data having a transmitting/receiving flag 301 set at "0" and a storage flag set at "1", and sets the storage flag at "0". By using such a buffer and an administration method, it becomes possible to suppress data transmission and use a vacant region of the transmitting and receiving buffer 56 exclusively for data when data reception is frequently performed. This is equivalent to a temporary increase in capacity of the receiving buffer, and hence lowering in receiving capability can be suppressed. Fig. 7A is an operation flow chart of the data receiving means 53 in the present embodiment. When the data receiving means 53 receives data or is informed about data by the transmitting means 54 (step 310), the means 53 stores that data into the transmitting and receiving buffer 56 (step 311). Fig. 7B is an operation flow chart of the data transmitting means 54. When the data transmitting means 54 is informed about lowering in data receiving capability by the buffer monitoring means 57 (step 321), the means 54 starts the timer (step 324). When the timer stops (step 325), the data transmitting means 54 returns to its original state. When the information from the buffer monitoring means 57 is not present, the data transmitting means 54 judges whether data to be transmitted is present in the transmitting and receiving buffer 56 or not by seeing the transmitting/ receiving flag 301 and the storage flag 302 (step 322). If data to be transmitted is present, the data transmitting means 54 transmits data and informs the data receiving means 53 about it (step 323). The value set into the timer is constant in a method, and it is a variable value depending upon the frequency of information supplied from the buffer monitoring means 57 in another method. Fig. 7C is an operation flow chart of the buffer monitoring means 57. The buffer monitoring means 57 monitors the number of received data stored in the transmitting and receiving buffer by checking the transmitting/receiving flag 301 and the storage flag 302 which are set. If the number of received data exceeds N (step 331), the buffer monitoring means informs the data transmitting means 54 and the processing unit 52 about it (step 332). Upon receiving information from the buffer monitoring means 57, the processing unit temporarily stops storing data to be transmitted into the transmitting and receiving buffer 56. Duration of stoppage is equivalent to or longer than the timer value of the data transmitting means 54. Thereby the processing unit 52 takes in received data without putting data to be transmitted into the buffer. As a result, the ratio of the number of received data stored in the transmitting and receiving buffer 56 to the number of data to be transmitted is increased, resulting in a raised data receiving capability. Further, if loads of all processors and capacities of all transmitting and receiving buffers 56 are equivalent to each other, data transmission is temporarily and simultaneously stopped in all of the processors. Therefore, data cease from flowing on the transmission path 01, and the number of received data stored in the transmitting and receiving buffer of each processor also decreases, resulting in an enhanced data receiving capability. When the received data monitoring means 15 or the buffer monitoring means 57 detects an abnormal state by checking the number of data stored in the buffer, the means 15 or 57 directly informs the message sending means 16 or the data transmitting means 54 about it in the above described two embodiments. Alternatively, however, the means 15 or 57 may inform of the abnormal state via a flag. Upon detecting an abnormality, the received data monitoring means 15 or the buffer monitoring means 57 sets a flag. The message sending means 16 or the data transmitting means 54 always monitors this flag. When the flag is set, the message sending means 16 or the data transmitting means 54 sends out a message or stops data transmission. A third embodiment of the present invention will now be described by referring to drawings. In the present embodiment, data transmission delay is canceled by a cancel requesting message supplied from a processor which has issued the delay request. Operation of the received data monitoring means 15, the message sending means 16 and the data transmitting means 17 shown in Fig. 2B will now be described by referring to Figs. 8 to 10. First of all, operation of the received data monitoring means 15 will now be described by referring to Fig. 8. The received data monitoring means 15 always monitors the number of data stored in the receiving buffer 14. When the number of data exceeds a fixed number N (step 421), the received data monitoring means 15 considers that the load of the processing unit 12 becomes large and the receiving buffer becomes full, and the means 15 issues a delay requesting signal to the message sending means 16 (step 422). Thereafter, the received data monitoring means 15 monitors the number of data stored in the receiving buffer 14 again. When the number of data becomes smaller than a fixed number N' (step 423), the received data monitoring means 15 supplies a cancel requesting signal to the message sending means 16 (step 424) and returns to its original state. N' has a value smaller than or equal to that of N. The delay requesting signal and the cancel requesting signal to be delivered to the message sending means 16 are defined between the received data monitoring means 15 and the message sending means 16. For example, these signals can be implemented by defining a Boolean variable as the delay requesting signal when it is "1" and as the cancel signal when it is "0" and by making always the variable "0" while the delay requesting signal is not being issued. Operation of the message sending means 16 will now be described by referring to Fig. 9. Upon receiving the delay requesting signal (step 430), the message sending means 16 begins to measure time by using a timer (step 431) and send a data transmission delay requesting message with a format shown in Fig. 4 to the network 01. In the data transmission method of this system, broadcast transmission which does not use the address of destination of receiving is employed. Therefore, the data transmission delay requesting message is received by all of other processors located on the network 01. Thereafter, the message sending means 16 judges whether the cancel requesting signal has been delivered from the received data monitoring means 15 or not (step 433). If the cancel requesting signal has been delivered, the delay cancel message is broadcasted to the network 01 (step 435). Unless the cancel requesting signal has been delivered, the message sending means 16 checks the value of the timer. If the value of the timer is not less than a fixed time T, the message sending means returns to the step 431. If the value of the timer is less than T, the message sending means returns to the step 433 (step 434). By repeating such operation, it is possible to transmit a data transmission delay requesting message at fixed time intervals since reception of the delay requesting signal until reception of the cancel signal. Operation of the data transmitting means 17 will now be described by referring to Fig. 10. On the basis of the message of the data receiving means 13, the data transmitting means 17 judges whether the data receiving means 13 has received the data transmission delay requesting message or not (step 441). If the data receiving means has already received the data transmission delay requesting message, the data transmitting means 17 begins to measure time by using the timer (step 442) and substitutes processor number 214 contained in the message into a variable P (step 443). The data transmitting means then judges whether the delay cancel message has been received or not (step 444). Unless the delay cancel message has been received, the data transmitting means judges whether the data transmission delay requesting message has been newly received (step 445). If it has been newly received, the data transmitting means returns to the step 442 and starts counting in the timer. And the processor No. of the origin of transmission of the new message is substituted into P (step 443). If the message is judged not to be received at the step 445, the value of the timer is checked (step 449). If the value of the timer is larger than a fixed time T', the data transmitting means returns to the step 441. Unless the value of the timer is not larger than T', the data transmitting means returns to the step 444. T' must be longer than the fixed time T of the message sending means. In case it is judged at the step 444 the delay cancel message has been received, the data transmitting means returns to the step 441 when No. of the processor which has transmitted the delay cancel message is equal to P. If No. of the processor is not equal to P, the data transmitting means proceeds to the step 445. As a result, the delay state is always canceled by the latest data transmission delay requesting message and the delay cancel message from the same origin of transmission. If it is judged at the step 441 a message has not been received, it is checked whether data is present in the transmitting buffer 18 or not (step 446). Unless data is present, the data transmitting means returns to the step 441. If data is present, the data transmitting means broadcasts data stored in the transmitting buffer 18 to the network, and sets the flag 201 corresponding to the transmitting data at "0" (step 447). Data stored in the transmitting buffer can be transmitted by transmitting all of the data stored in the transmitting buffer at a time or alternatively transmitting data by data. In case the latter method is adopted, it is contemplated that data stored in the buffer are transmitted beginning from the oldest data. As a result of operation heretofore described and performed by respective means, effects described below are obtained. First of all, by using a flag representing whether data is present or not on each data storing area of the receiving buffer 14 and the transmitting buffer 18, it has been facilitated to judge how many data are already contained in the buffer. A second effect will now be described. Since the data transmitting means 17 memorizes the processor No. of origin of transmission of the latest data transmission delay requesting message, it is prevented that the delay state of the whole system is canceled by a delay cancel message of another processor even if a processor which has not got through the delay requesting state yet is present. The second effect will now be described in detail by referring to Fig. 11. It is now assumed that three or more processors are connected to the network. First of all, a processor 1 issues a delay request at time t₁ and thereafter a processor 2 issues a delay request at time t₂. Although the processor 1 cancels delay at time t₃, the processor 2 does not cancel the delay yet. As the whole system, therefore, the delay must not be canceled at t₃. A similar constraint holds true after the processor 3 issues a delay request at time t₉ as well. After all, data transmission in the system as a whole must be suppressed since time t₁ until t₆ when the processor 3 cancels the delay. In a fourth embodiment of the present invention, one-to-one communication scheme using address is employed instead of the broadcast scheme, which does not use address, as the transmission scheme. In this case, the address of destination is described instead of the content code 212, and the data transmission delay requesting message and the delay cancel message are put in the section of the information 215. Configuration of the whole system, configuration of the data transmitting and receiving device, and operation flow charts of respective means other than the message sending means are the same as those of the first embodiment. The message sending means memorizes addresses of all nodes on the network, and sends out all of messages having addresses of respective nodes when it sends out messages. The effect of the present embodiment will now be described. Since data flowing on the network do not contain content codes and one-to-one communication is performed by using an address, each processor need not discriminate the content code of data taken in. Therefore, the processing within the receiving processor is simple, resulting in an effect of the present embodiment. In the first to fourth embodiments heretofore described, the present scheme is performed in the interface section (11 shown in Fig. 2B). However, the present scheme may be performed in communication control program of the processing unit side. In case the present scheme is incorporated into the processing unit side, it is possible to implement highly reliable broadcast communication by using already existing LAN (Local Area Network) as it is. A fifth embodiment will now be described in detail. Fig. 12A is a block diagram showing the configuration of the whole system in which the present invention is embodied. Numerals 1100, 1101 and 1102 denote processors. Processors 1100, 1101 and 1102 have bus control processors (hereafter abbreviated to BCP) 1110, 1111 and 1112, respectively, and are connected to a bus 1010. Fig. 12B is a block diagram showing the entire configuration of BCP. The BCP lets flow data fed from a transmitting circuit 1012 to a network via a transceiver tap 1011, and takes in a signal on the network via a receiving circuit 1013. A message taken into the BCP is transferred to the processor 1100 via a chekcing buffer 1120 and a receiving buffer 1121. A message transmitted from the processor 1100 is let flow to the network via a transmitting buffer 1122 within the BCP. Control regarding to these transmission and reception is performed by a control unit 1124 included in the BCP. Assuming that the signal propagation time between processors located at both ends of the bus is D, the length of a message used in the system whereto the present invention is applied is so defined that the message may be continuously transmitted for at least 2D. Fig. 17 shows a message format used in the present system. In Fig. 17, FS 1060 and FS 1061 are flags indicating the start and end of the message. A message section comprises a control section 1062, an information section 1063, and a frame check sequence (FCS) 1064 for checking transmission errors in data. The control section 1062 comprises its own MAC address 1601 for indicating which processor has sent out that message and a serial No. 1602 for indicating in which sequential number the data is generated by the processor. Although not illustrated in Fig. 17, information required for interprocessor communication and the like are added to the control section 1062 as occasion demands. First of all, the case where the receiving buffer 1121 becomes full will now be described. Fig. 13 is a configuration diagram of the receiving buffer 1121. This receiving buffer comprises a storage completion flag 1020 and a data area 1021 for storing data therein. Fig. 14 is a flow chart of buffer detection and busy signal sending. In Fig. 12B, a receiving administration section monitors all storage completion flags 1020 contained in the receiving buffer 1121 (step 1030). If all storage completion flags 1020 are "1", the receiving administration section judges the receiving buffer 1121 full and sends out a busy signal to the network (step 1031). The busy signal is generated by a busy signal generator 1127 shown in Fig. 12B and sent out continuously until the receiving buffer 1121 becomes ready to store data. If a message is sent out from another processor while a busy signal is being sent out as shown in Fig. 12D, therefore, this message collides with the busy signal. If the receiving buffer 1121 becomes ready to store data, the busy signal is rapidly stopped and a message from another processor is received as shown in Fig. 12C. Processing flow of message transmission will now be described by referring to Fig. 15. A message generated in a processor is transferred to a transmitting buffer 1122 and simultaneously transferred to a retransmitting buffer as well. Assuming now that a processor ready to transmit message is 1100 shown in Fig. 12A, the BCP 1110 of the processor 1100 monitors whether the network is busy or not (step 1041). When the network becomes idle, the BCP 1110 sends out a measage to be transmitted to the network (step 1042). This transmitted signal immediately enters the receiving circuit 1013. The signal on this receiving circuit 1013 is monitored (step 1043) and compared with the transmitted signal in a detector 1126 (step 1044). If the transmitted signal is different from the received signal, it is judged the transmitted signal collides with a signal sent out from another processor (i.e., a signal of transmitted message or a busy signal), and transmission is suspended (step 1045). A message contained in the retransmitting buffer 1123 is copied into the transmitting buffer 1122 (step 1046). Time randomly defined by a backoff administration section 1130 is set into a timer 1128 (step 1047). The time thus set is waited and the message is retransmitted (step 1048). If the network becomes busy during this waiting time, the timer 1128 is reset (step 1050). It is waited for the network to become idle, and the time randomly defined by the backoff administration 1130 is set into the timer 1128. And the similar retransmission processing (step 1048) is performed. If the signal being sent out is entirely coincident with the signal being received until the transmission is finished, the transmission is judged finished. Because of a retransmission request transmitted from a processor of receiving side which has detected bit missing caused by a transmission error, however, retransmission request receipt time is set in the timer 1128 (step 1051). Unless a retransmission request has not come within a time, the message within the retransmitting buffer is erased, and the retransmission processing is finished. If a retransmission request has come within a time, the message within the retransmitting buffer 1123 is copied into the transmitting buffer 1122 (step 1052). It is monitored whether the network is busy or not (step 1041). It is waited for the network to become idle and then retransmission is performed. The above described processing is then repeated. Description of the above described backoff processing for collision detection and retransmission is nothing but one example for explaining the present embodiment. All functions of communication protocol, such as CSMA/CD, for a network of bus type now in use are applied thereto. In the present embodiment, the signal sending other than backoff processing is performed at the same time that the network becomes idle. The timing of the CSMA system now in use is applied to this signal sending timing as well. Message receiving processing will now be described by referring to Figs. 16 and 17. A processor of the receiving side first checks whether the top of a signal coming into the receiving circuit indicates data or not, and judges whether the received signal is a message transmitted from another processor or a busy signal (step 1052). That is to say, unless the signal on the receiving circuit is a signal indicating the flag 1060 representing the beginning of the message, the signal is judged to be a busy signal and that signal is abolished (step 1053). If the signal on the receiving circuit is a signal indicating the flag 1060 representing the beginning of the message, succeeding signals are successively stored into the checking buffer 1120 (step 1054). When signals as far as a signal indicating the flag 1061 representing the end of the message have been stored, bit check is performed in order to detect bit missing or the like caused by transmission error by using the frame check sequence 1064 added to the message (step 1055). Further, it is checked whether data is new data or not by performing serial number check. If it is a complete message, it is stored in the receiving buffer 1121 (step 1056). And a storage completion flag is set (step 1057). This storage flag is cleared to zero when data stored in the area has been transferred to the processor. In case a transmission error has been detected, the received signal is abolished (step 1058), and a retransmission requesting message is sent out (step 1059). On the other hand, in case a signal indicating the flag 1061 representing the end of a message cannot be received, the received signal is abolished. In this case, the processor of the receiving side judges the processor of the transmitting side detects collision and suspends transmission or the processor of the receiving side break down. The processor of the receiving side does not request retransmission. In the above described receiving processing, it is now assumed when succeeding signals are successively received after the start of the message has been received, the processor of the transmission side detects collision and suspends transmission. In case collision at this time is one caused by a busy signal, the busy signal is sent out as it is. Therefore, the processor of receiving side continues to receive the busy signal. If the busy signal is sent for a long time, therefore, trouble is caused in the processor of receiving side. When the checking buffer 1120 stores signals exceeding a fixed value, therefore, the receiving administration section 1132 has function of abolishing the signals. A sixth embodiment will now be described. In the present embodiment, only a processor which has acquired the right of transmission can perform transmission. Assuming in Fig. 12A that a processor which has acquired the right of transmission is 1100, the processor 1100 sends a message stored in the transmitting buffer 1122 into the network. At this time, collision detection is performed by using the detector 1126 in the same way as the fifth embodiment. Detailed description of bit check in receiving and collision detection flow in transmission of the sixth embodiment will be omitted. First of all, receiving processing will now be described by referring to Fig. 18. A processor which has no right of transmission monitors storage completion flags contained in the receiving buffer 1121. If the receiving buffer 1121 is in such a state that a message can be stored therein, the processor which has no right of transmission takes in a message flowing through the network (step 1701). On the basis of the serial number of the message, it is judged whether the received message is new data or not (step 1702). If the received message is a new message, the processor transfers it to the receiving buffer 1121 (step 1703). Unless the received message is a new message, the processor erases the data (step 1705). If the receiving buffer 1121 is full, however, the busy signal is sent out the instant the top of a bit train of the message is received by a branch section 1125 (step 1704). Sending of this busy signal gives rise to collision with a message. Transmission processing will now be described by referring to Fig. 19. The processor 1100 of transmission side starts transmission (step 1801). If collision is detected although transmission is performed, it is judged the transmitted message is not broadcasted to all processors, and retransmission is attempted (step 1802). If collision disappears during the message transmission, the broadcast can be judged successful, and the message stored in the retransmitting buffer is erased. Owing to the above described method, the processor of transmission side can judge whether broadcast has been successful or not at the same time that it transmits the message. In bus communication, therefore, reliable broadcasting can be achieved. In the embodiments of the present invention heretofore described, the fact that a processor which is not ready to receive a message because of fullness of the receiving buffer is present in a system can be detected by the message sending side on the basis of occcurrence detection of collision of a message generated by itself. And retransmission can thus be performed. The fullness state of the receiving buffer is temporary. While the message retransmission is being performed, data stored in the receiving buffer is processed, resulting in a receivable state. If processing becomes impossible in the configuration of Fig. 12B because of occurrence of an abnormality such as processing falling into an infinite loop in the processor 1100 or interruption of power supply of the processor 1100 side (in case the BCP and the processor have separate power supply units), however, data stored in the receiving buffer of the BCP 1110 remains unprocessed and the receiving buffer remains in a full state. An example in which processor abnormality detecting mechanism is incorporated into the BCP will hereafter be described as a seventh embodiment. Fig. 20 shows the configuration of a BCP in the seventh embodiment. When a message stored in the receiving buffer 1121 is sent out to the processor 1100, a processor abnormality detecting function section 1133 judges whether the sending has been normally finished or not. In case of failure, the message is sent out again to the processor when a predetermined interval has elapsed. In case the sending is not normally finished even if retransmission is repeated predetermined number of times, the processor is judged out of order, and a processor down sensing flag 1134 is set. Information indicating the processor down is then sent out to the network. When the receiving buffer is full, the same processing as that of the embodiment shown in Figs. 5 and 6 is performed provided that the processor down sensing flag 1134 is reset. If the flag 1134 is set, however, processing as described below is performed. That is to say, a busy signal is not issued even if the receiving buffer is full. When a message is received from the network, one old data stored in the receiving buffer is erased, and a message from the network is taken in. Further, the BCP 1110 which has detected processor down continues to send the message stored in the receiving buffer to the processor. On the basis of result of normal sending, the BCP 1110 detects recovery of the processor from breakdown and resets the processor down sensing flag 1134. An eighth embodiment of the present invention will now be described in detail by referring to Figs. 21A, 21B and 22. First of all, the entire configuration of a system whereto the present invention is applied will now be described by referring to Fig. 22. Numeral 2001 denotes a unilateral ring-shaped transmission path for transmitting messages in a direction indicated by an arrow. Numerals 2010 to 2060 denote network control processors (hereafter abbreviated to NCP) for performing message transmission control on the transmission path on the basis of token passing scheme. Further, numerals 2011 to 2061 denote processing units respectively connected to NCP 2010 to 2060 so as to perform aimed processing while keeping in contact with each other via this network. In the present embodiment, the ring-shaped transmission path is a single transmission path. However, the ring-shaped transmission path need not be single. Even if a multi-ring transmissin path or a bilateral double ring having alternate circuit configuration is used, the present invention scheme is applicable thereto. Fig. 21A shows configuration within the NCP 2010. The NCP 2020 to 2060 have the same configuration as that of the NCP 2010. An interface 2101 is a section for administrating message reception from the transmission path 2001 and message transmission to the transmission path 2001. A processor 2102 administers transmission control processing performed in the NCP 2010. A first receiving buffer 2104 and a second receiving buffer 2105 are areas for storing therein messages received from the network. An area corresponding to one message is assigned to the first receiving buffer 2104. Further, an area for storing a predetermined number of messages therein is assigned to the second receiving buffer 2105, which has cyclic buffer configuration. A second receiving buffer administering flag 2106 is a flag indicating whether the second receiving buffer 2105 is full or not, i.e., whether no more message can be stored into the second receiving buffer 2105 or not. A transmitting buffer 2107 is a buffer for storing therein a message to be transmitted to the network. The transmitting buffer 2107 has cyclic buffer configuration in the same way as the receiving buffer 2. A transmitting buffer administering flag 2108 is a flag indicting whether a message to be transmitted is present in the transmitting buffer or not. When the processor 2102 receives data to be transmitted from the processing unit 2011 connected thereto, the processor 2102 stores the data into the transmitting buffer 2107 and sets the transmitting buffer administering flag 2108. When all messages stored in the transmitting buffer 2107 are sent out to the network and the transmitting buffer 2107 becomes idle, the processor 2102 resets the trans mitting buffer administering flag 2108. A timer 2109 is provided for detecting whether a transmitted message returns within a fixed time or not. A content code table 2110 is a table for storing therein a content code of a message to be taken into the NCP 2010 (i.e., a code indicating contents of the message). Contents of the table 2110 are set and updated by specification fed from the processing unit (2011 of Fig. 22). A retransmitting counter 2111 is provided for counting retransmission attempts of the transmitted message. A received message serial number table 2112 is a table for checking double reception of the retransmitted message. A busy flag 2113 is a flag for indicating whether its own NCP acquires free token and occupies the network or not. A message serial number counter 2114 indicates the value of serial number added to a message to be transmitted. The count of the message serial number counter 2114 increases by one whenever it receives the transmitted message from the processing unit 2011. Further, an interface 2103 is provided for controlling delivery and receipt of data with respect to the processing unit (2011 of Fig. 22). In the present configuration, a message received from the network 2001 is stored into the first receiving buffer 2104 or the second receiving buffer 2105 via the interface 2101 and a line 2120. A message stored in the transmitting buffer 2107 is sent out to the network 2001 via a line 2130 and the interface 2101. A line 2140 is provided to send a signal for controlling the message flow within the interface 2101. It is now assumed that different addresses are assigned to respective NCPs. Internal configuration of the interface 2101 is shown in Fig. 21B. A message on the transmission path 2001 is taken into the interface by a receiving section 3011 and sent to the processor 2102 via the line 2120. At the same time, the message is sent to a switch 3013 included in the interface as well. When the switch 3013 is connected to the receiving side, the message taken in is outputted to the transmission path 2001 as it is via a transmitting section 3012. When the switch 3013 is connected to the transmitting side, the message taken in disappears at the switch section. When the switch 3013 is connected to the transmitting side, a message stored in the transmitting buffer 2107 is outputted onto the transmission path 2001 via a line 2130 and the transmitting section 3012. Changeover of the switch 3013 is performed by a control signal outputted by the processor 2102 via the line 2140. Figs. 23A and 23B show formats of messages flowing on the network. In the token passing system, a free token makes the round on the network when messages to be transmitted are not present in respective NCPs. An NCP in which a message to be transmitted is generated takes this free token in, converts it to a busy token, add the message to be transmitted to the end of the busy token, and sends out the resultant busy token plus message to the network. Fig. 23A shows the format of a free token message. FS 2301 and FE 2307 are flags indicating the start and end of the message, respectively. Numeral 2302 denotes an area for storing therein a code indicating the contents of the message. In case of the present message, F-TK indicating that the token is a free token is stored in the area 2302. SA 2303 is the address of an NCP which has generated the message. C 2304 is a serial number required for transmission, and FCS 2306 is data for error detection. Fig. 23B shows the format of the busy token message. FS 2301, FE 2307, SA 2303, C 2304 and FCS 2306 are the same as those of Fig. 23A. DATA 2305 denotes information to be transmitted. Area 2308 indicates a content code CC representing contents of the information data 2305. The free token F-TK 2302 of Fig. 23A is a code different from the content code CC 2308 of Fig. 23B. In each NCP, a message having a code other than the free token F-TK is regarded as a busy token. In the present embodiment, an identical area is used as the area indicating the identification of the token and as the area indicating contents of the data. However, a format having a token identifying area and a content code storage area separately provided may be used. Further, a value of the message serial number counter 2114 of Fig. 21A is set into the C 2304. Processing flow in each NCP of the present embodiment will hereafter be described by referring to Figs. 23A, 23B and 25. Fig. 24A is a flow chart of message reception in each NCP. In the following description, it is assumed that a switch 3013 included in the interface 2101 as shown in Fig. 21A is so set as to be connected to the receiving side. That is to say, it is assumed that the message received from the network is inputted to the processor 2102 and simultaneously outputted to the network as it is. When a message is received from the network, contents of the content code area (2308 of Fig. 23B) in the message are first judged (processing step 2401). If the received message is the free token F-TK, it is first judged on the basis of the busy flag area (2113 of Fig. 21A) whether its own NCP is in the free token acquisition state or not (processing step 416). In case of the free token acquisition state, the received message is stored in the first receiving buffer (2104 of Fig. 21A) (processing step 423), and processing is finished. When its own NCP is not in the free token acquisition state, it is judged on the basis of the transmitting buffer administering flag (2108 of Fig. 21A) whether a message to be transmitted is present or not (processing step 2417). Unless a message to be transmitted is present, processing step 2423 is executed and processing is finished. When a message to be transmitted is present, the switch 3013 included in the interface as shown in Fig. 21B is changed over to the transmitting side (processing step 2418) to prevent the received free token from being outputted to the network. On the other hand, the received free token is stored into the first receiving buffer (2104 of Fig. 21A) (processing step 2419). By using the FCS (frame check sequence) data (2306 of Fig. 23B), it is checked whether an error such as bit disguise is present or not (processing step 2420). When an error is present, the switch 3013 in the interface is changed over to the receiving side (processing step 2424) and processing is finished. When an error is not present, the busy flag (2113 of Fig. 21A) is set (processing step 2421) and the message stored in the transmitting buffer is transmitted to the network (processing step 2422) and processing is finished. Message transmission processing will be described later. Processing performed when the judgment result at the processing step 2401 is the busy token, i.e., content code will now be described. In this case, the content code of the received message is compared with a code registered in its content code table (2110 of Fig. 21A) to judge whether codes coincide each other or not at the processing step 2401. In case of non-coincidence, it is judged whether the SA section of the received message (2303 of Fig. 23B) coincides with its own NCP address or not (processing step 2408). In case of noncoincidence, the received message is stored into the first receiving buffer (processing step 2409) and processing is unfinished. If SA coincides with its own NCP address, self-generated message processing 2410, which will be described later in transmission processing, is performed and then the processing is finished. If the received message coincides with the code stored in the content code table at the processing step 2401, processing described hereafter is performed and the received message is sent to its own connection processing unit. First of all, it is judged in the same way as the above described processing step 2408 whether the SA section of the received message coincides with its own NCP address or not (processing step 2402). In case of coincidence, self-generated message processing 2410 is performed and processing is finished. In case of noncoincidence, it is first detected on the basis of the second receiving buffer administering flag (2106 of Fig. 21A) whether the second receiving buffer is full or not (processing step 2403). If the second receiving buffer is full, the received message cannot be taken in its own NCP, and hence the switch 3013 included in the interface as shown in Fig. 21B is changed over to the transmitting side (processing step 2412) to prevent the received message from being sent out to the network. On the other hand, the received message is stored into the first receiving buffer (2104 of Fig. 21A) (processing step 2413). Upon completion of storage, it is judged on the basis of the busy flag (2113 of Fig. 21A) whether its own NCP is in the free token acquisition state or not (processing step 2414). If its own NCP is not in the token acquisition state, the switch 3013 included in the interface is changed over to the receiving side (processing step 2415) and processing is finished. If the second receiving buffer is judged not full at the processing step 2403, the received message is stored in the second receiving buffer (processing step 2404). By using the FCS data included in the message, it is then checked whether an error such as bit disguise is present in the received message or not (processing step 2405). If no error is present, it is checked whether reception is rereception of a message resulting from retransmission of a previously received message or not (processing step 2406). If reception is not rereception, the received message is sent to its own NCP connection processing unit (processing step 2407), and processing is finished. Unless the result of the rereception check at the processing step 2405 or the rereception check at the processing step 2406 is OK, the message received this time and stored in the second receiving buffer (2105 of Fig. 21A) is erased (processing step 411), and processing is finished. Processing contents of rereception check at the processing step 2406 and sending of the received message to its own connection processing unit at the processing step 2407 will now be described by referring to Figs. 24B and 24C, respectively. Fig. 24B shows contents of the received message serial number table 2112 shown in Fig. 21A. This table comprises areas 11211 and 11222 for storing contents of the SA section (2303 of Fig. 23A) of the received message and contents of a predetermined number of C sections (2304 of Fig. 23A) so as to be associated with values of the SA section. If values of the SA section and C section within the received message are already stored in the present table, the message is a rereceived message. Otherwise, it is a newly received message. In case of a newly received message, contents of its SA section and C section are added to the present table. Fig. 24C is a flow chart showing processing contents of sending of the received message to its own connection processing unit shown in Fig. 24A. First of all, the received message stored in the second receiving buffer (2105 of Fig. 21A) is sent out to its own NCP connection processing unit via the interface 2103 shown in Fig. 21A (processing step 4071). If sending has been normally completed (processing step 4072), the message sent out this time and stored in the second receiving buffer is erased (processing step 4073). Further, it is detected whether a message is stored in the second receiving buffer or not (processing step 4074). If a message is stored, the processing returns to the step 4071. If breakdown of its own connection processing unit is detected (processing step 4075), breakdown detection message is set into the transmitting buffer (2107 of Fig. 21A) and processing proceeds to the step 4073. As a result of processing heretofore described, the receiving buffer of the transmission control unit is prevented from becoming full when the processing unit breaks down, and messages on the network are prevented from being erased. Processing of message transmission to the network will now be described by referring to Figs. 25A and 25B. In the token passing scheme, the message transmission is performed when the free token has been acquired. That is to say, the message transmission is performed at the transmission processing step 2422 in the receiving flow chart shown in Fig. 24A. Fig. 25A is a flow chart showing the contents of the processing step 2422 of Fig. 24A. First of all, the message stored in the transmitting buffer (2107 of Fig. 21A) is sent out to the transmission path 2001 via the interface 2101 of Fig. 21A (processing step 2501). The timer (2109 of Fig. 21A) is then set (processing step 2502). Owing to the processing heretofore described, the message sent to the network makes a round around the network and returns to the origin of generation NCP. Its own self-generated message thus returned is processed at self-generated message processing step 2410 included in the flow chart of receiving processing shown in Fig. 24A. Fig. 25B is a flow chart of self-generated message processing. First of all, the received message is stored into the first receiving buffer (2104 of Fig. 21A) (processing step 2531). By using the FCS data included in the received message, it is then checked whether an error such as bit disguise is present in the received message or not (processing step 2532). If no error is present, the message sending has been normally completed, and hence the message sent out this time and stored in the transmitting buffer (2107 of Fig. 21A) is erased (processing step 2533), and the timer which has been set at the time of message sending as shown in Fig. 25A is reset (processing step 2534). Further, the retransmitting counter (2111 of Fig. 21A) is reset (processing step 2535). After a free token message is generated and sent out to the network (processing step 2536), the switch 3013 in the interface (2101 of Fig. 21A) is changed over to the receiving side (processing step 2537). Lastly, the busy flag (2113 of Fig. 21A) is reset (processing step 2545). If an error is detected at the FCS judgment processing step 2532, it is meant that message sending has failed and retransmitting processing of processing steps 2538 to 2542 is performed. First of all, the retransmitting counter (2111 of Fig. 21A) is increased by one (processing step 2538). It is then judged whether the value of the retransmitting counter is larger than a predetermined upper limit of retransmission attempts (processing step 2539). Unless the upper limit is exceeded, the message to be transmitted this time stored in the transmitting buffer is sent out to the network again (processing step 2540), and the timer is set again (processing step 2542). If the value of the retransmitting counter exceeds the upper limit, the message cannot be transmitted to the network, and abnormality processing 2541 is performed. Abnormality processing is processing comprising logging messages which cannot be transmitted, sending out a free token message, and abandoning the right of transmission, for example. In double ring configuration having alternate circuit configuration, abnormality processing comprises forming an alternate circuit, for example. In case time out of a timer set when a message is sent to the network is detected as well, it is meant that message sending has failed, and the same processing as retransmitting processing described by referring to processing steps 2538 to 2542 of Fig. 25B is performed. In content code communication on a ring-shaped network using the token passing scheme, even if an NCP which could not receive a message because of fullness of its own receiving buffer, for example, is present, that message is automatically retransmitted in the present invention scheme as heretofore described and hence message missing can be prevented. In the present embdiment, only the case of content code communication has been described. Even in broadcast, however, the present invention scheme can be applied. As a ninth embodiment, processing in case of broadcast will hereafter be described. As shown in Fig. 26A, a global address (GA 2309) which is an address all NCPs should receive is first set into the CC section 2308 of the busy token message shown in Fig. 23B. Subsequently, at the message content judging processing step 2401 in the processing flow shown in Fig. 24A, it is judged whether the message content is a global address or a free token (processing step 2601 of Fig. 26B). In case of global address, processing of the processing step 2402 and succeeding steps of Fig. 24A is performed. In case of free token, processing of the processing step 2416 and succeeding steps of Fig. 24A is performed. As a matter of course, a message format having an area for token identification and an area for global address setting respectively separately provided may be used. In the above described embodiment, an NCP which has acquired free token does not release the right of transmission until the message generated by itself prevails among all NCPs (i.e., retransmission of the message generated by itself is performed continuously). Even if retransmission of the message generated by itself is required, however, it is also possible to abandon the right of transmission once by sending out the free token and send out the message to be retransmitted when the next free token is acquired. Processing in this case will now be described as a tenth embodiment. This processing can be achieved by using processing as shown in Fig. 27 instead of retransmitting processing shown in processing steps 2538 to 2542 of Fig. 25B. That is to say, this processing can be achieved by replacing the processing steps 2540 and 2542 of Fig. 25B with processing step 2701 of sending a free token message as shown in Fig. 27. In the above described embodiment, the interface 2101 shown in Fig. 21A is so configured that the message received from the network is outputted to the network as it is. However, it is also possible to adopt a "store and forward scheme" in which the message received from the network is taken into its own NCP once and then sent to the network. Processing in this case will hereafter be described as an eleventh embodiment. In this case, the interface 2101 is configured as shown in Fig. 28. The switch 3013 and the line 2140 are removed. Its processing can be achieved by applying following amendments to the processing flow of Fig. 24A. (1) Changeover operation of the switch 3013 is omitted. (2) After the processing step 2404, processing of sending the message received this time and stored in the second receiving buffer is added. Lastly, the object of all of the above described embodiments is broadcast or content code communication. However, the present invention scheme can be applied to the case of one to one communication message as well. Processing in this case will hereafter be described as a twelfth embodiment. First of all, the receiving NCP address DA (2310 of Fig. 29A) is set into the CC section 2308 of the busy token message shown in Fig. 23B. Succeedingly at the message content judgment processing step 2401 in the processing flow of Fig. 24A, it is judged whether the message is a free token message or a busy token message. Further, in case of busy token message, it is judged whether the destination of the message is its own NCP or not (processing step 2401 of Fig. 29B). In case of a message in which destination is its own NCP, the SA judgment processing step 2402 is omitted, and the processing step 2403 of Fig. 24A and succeeding steps are performed. In case of a free token message, the processing step 2416 of Fig. 24A and succeeding steps are performed. When the present scheme is applied to one to one communication, message retransmission can be performed without using an answer message as in the prior art scheme. In accordance with the present invention, each processor informs other processors of its own data receiving capability as described above, resulting in communication free from data missing. Further, processing corresponding to the number of data stored in the receiving buffer is performed, overflow of the receiving buffer can be prevented Since other processors are informed about the receiving state as occasion demands, processors restrain data transmission each other so as to cope with the load state, resulting in communication free from data missing. If loads of all processors on the transmission path are equivalent, each processor is capable of knowing loads of other processors by monitoring its own load. Even if processors do not inform each other of mutual states, therefore, data missing can be prevented by suppressing its own data transmission. In a network of bus type, it can be instantly judged whether a message issued by the processor of transmitting side has been received by other processors, and hence broadcast communication can be surely performed. Even if content code communication or broadcast is performed on a ring-shaped network using the token passing scheme, the NCP which has generated the message can detect existence of an NCP which could not receive that message and can retransmit that message. Therefore, reliable content code communication and broadcast free from message missing become possible. Further, the present invention method can be applied to the case of one-to-one communication. In this case, an efficient retransmission control scheme which does not need an answer message can be provided.

Claims: A method of controlling data communication between a plurality of processors (10, 20, 30; 1100, 1101, 1102) via a transmission medium (01; 1010) in a distributed processor system, wherein each processor monitors its data receiving means (13, 14, 53; 1121) to judge the receiving capability thereof and, if the result of this judgement indicates insufficient receiving capability, generates a request for delay of data transmission, characterised in that the delay request is transmitted to all other processors (10, 20, 30; 1100, 1101, 1102) of the distributed processor system, and that each of those other processors, which contains or generates data to be transmitted, delays the data transmission for a predetermined period of time which starts with the receipt of said transmission delay request. The method of claim 1, wherein each processor (10, 20, 30; 1100, 1101, 1102) judges its receiving capability by monitoring the amount of data stored in its receiving buffer (14; l121). The method of claim 1 or 2, wherein said delay period is changed in accordance with the frequency of transmission delay requests. The method of any preceding claim, wherein the processor (10, 20, 30; 1100, 1101, 1102), which had transmitted the transmission delay request, transmits a delay cancel message when the result of said judgement indicates sufficient receiving capability, and the transmission delay period determined in all other processors is terminated upon receipt of said delay cancel message. The method of claim 4, wherein said transmission delay request is made by repetitively sending a busy signal on said transmission medium (01; 1010), and said delay cancel message is performed by stopping said busy signal. The method of any preceding claim, wherein, in case the host processing unit (12; 1100) of a processor (10, 20, 30; 1100, 1101, 1102) falls into an abnormal condition, the processor does not transmit said transmission delay request even in the state of insufficient receiving capability but erases old data stored in the receiving buffer and temporarily stores data transmitted via said transmission medium (01, 1010) in the receiving buffer (14; 1121).

Inventors: KAWANO KATSUMI, MATSUURA MASAYOSHI, MORI KINJI, ORIMO MASAYUKI, SUZUKI YASUO, TAKEUCHI MASUYUKI, TERANISHI YUKO, KAWANO, KATSUMI, MATSUURA, MASAYOSHI, MORI, KINJI, ORIMO, MASAYUKI, SUZUKI, YASUO, TAKEUCHI, MASUYUKI, TERANISHI, YUKO
Applicants: HITACHI LTD, HITACHI, LTD.
Application year: 1989
Main classification: G06F15
IPC codes: G06F15, G06F9