Multiprocessor communication system having a paritioned main memory where individual processors write to exclusive portions of the main memory and read from the entire main memory
BACKGROUND OF THE INVENTION 
     The present invention relates to a communication system, and, more particularly, to a system for communication between stored program controls. 
     Stored program controls have been decentralized to increase their efficiency. Small, locally distributed units take care of specific tasks for the control of industrial processes. If the solving of problems or the status of individual stored program controls is of importance for other stored program controls, these stored program controls must be able to communicate with one another by exchanging data. The requirements for a communication system will differ from case to case. For example, in office communication, maximum speed of data transmission is not of particular importance, while the control of industrial processes usually requires data processing in real time. 
     The coupling of stored program controls with one another can take place by parallel or serial coupling or over bus systems. During the time in which the coupled stored program controls exchange data with one another, these stored program controls, including their respective bus system, are blocked for other tasks. In data transmission, measures must be taken which increase the time required for the exchange of data. Such measures are, for example, the recognition of data losses, whereupon data must be retransmitted, and the recognition of a failure in the stored program controls. Invalid data must have a defined state, an interrupt treatment of important data must be provided, and test functions must exist which furnish to the user the state of all data elements. Furthermore, no so-called &#34;deadlock&#34; situations should be possible, in which data exchange does not occur due to undefined data states. 
     There is a need for a communication method which, taking into consideration all the aforementioned requirements, makes possible a very rapid data exchange of coupled data processing installations. 
     SUMMARY OF THE INVENTION 
     This and other needs are satisfied by the present invention for a communication system for stored program controls interconnected via a line system. The communication system has a number of features. 
     In a system with a plurality of stored program controls, less than all of the stored program controls can be selected for the communication system. A total storage area can be preset for these stored program controls participating in the communication system. A partial storage area within the total storage area can be assigned to each stored program control participating in the communication system. Certain storage locations within the total storage area can be preset for each stored program control participating in the communication system, such that they can be written to only by their respective stored program control. Each stored program control participating in the communication system can access all data in the total storage area. 
     To reduce the time required for the intercommunication between the stored program controls, the present invention provides that during the operation of the stored program controls, a data transmission to a respective partial storage area of a stored program control is effected only when a data change has occurred. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of the interconnection of stored program controls over a bus system constructed according to the present invention; 
     FIG. 2 is a schematic representation of a total storage area; 
     FIG. 3 is a schematic representation of a division of the total storage area into partial storage areas; 
     FIG. 4 is a block diagram of stored program controls connects over a bus system with a total memory constructed according to the present invention; and 
     FIGS. 5 and 6 are a schematic representation of communication words for data transmission. 
    
    
     DETAILED DESCRIPTION 
     Referring to FIG. 1 four stored program controls SPS1 . . . SPS4 are shown. Each stored program control SPS1 . . . SPS4 has two memories, symbolized in FIG. 1 by a black box in the upper left corner of a block. One memory represents the receiving peripherals E1 . . . E4 and one memory represents the transmitting peripherals S1 . . . S4 of the respective stored program controls SPS1 . . . SPS4. The transmitting and receiving peripherals S1 . . . S4, E1 . . . E4 each are coupled to a respective internal bus IB1 . . . IB4. Other elements, for example a processor, input/output components, an operating system memory, etc. can be coupled to each internal bus IB1 . . . IB4. However, for greater clarity these elements are not shown. 
     The stored program controls SPS1 . . . SPS4 may be entirely different equipment or devices. For instance, one stored program control may be part of a large computer installation, and another stored program control could be a single-frame control unit having minimal structure. The stored program controls SPS1 . . . SPS4 could, for example be control devices for automating technical processes, such as sensors, actuators, transducers, field multiplexers and field regulators. 
     The stored program controls SPS1 . . . SPS4 are coupled over buses B1 . . . B4 to a common bus system BS. Additional data processing installations, which can participate selectively in the communication system are also coupled to this bus system BS. [*For clarity, these additional data processing installations are not shown in FIG. 1.] That is, data processing installations which do not participate in the communication system of the stored program controls SPS1 . . . SPS4 but which use the same bus system may also be coupled to the bus system BS.[*] 
     The storage locations provided for the transmitting peripherals S1 . . . S4 and for the receiving peripherals E1 . . . E4 may be storage locations of specific memory components of the stored program controls SPS1 . . . SPS4, or they may represent storage locations of a total storage area of one particular stored program control SPS1 . . . SPS4. For the communication system it is important only that certain storage locations are assigned to the transmitting and to the receiving peripherals S1 . . . S4, E1 . . . E4. These storage locations are set up in the hardware in a known manner. 
     The transmitting and receiving peripherals S1 . . . S4, E1 . . . E4 of the stored program controls SPS1 . . . SPS4 represent a number of storage locations which together form a total storage area. This total storage area will be explained in more detail with respect to FIG. 2. 
     Referring to FIG. 2 the total storage area GB is shown. The total storage area GB comprises the storage locations of the transmitting and receiving peripherals S1 . . . S4, E1 . . . E4 of the stored program controls SPS1 . . . SPS4. Thus the total storage area GB results from the storage areas of the receiving peripherals El, E2, E3, and E4 and the transmitting peripherals S1, S2, S3, and S4. In the illustrated embodiment of FIG. 2, the total storage area GB has storage locations of 0 . . . 32 k bits. This total storage area GB is available to the user of the communication system and can be allocated by the user to the various stored program controls SPS1 . . . SPS4 participating in the communication system according to the particular case. 
     According to this embodiment of the invention, the user must, when taking the communication system into use, allocate the storage locations for the transmitting and receiving peripherals S1 . . . S3, E1 . . . E4 from the total area GB available. In an alternative embodiment of the present invention a fixed number of storage locations are assigned to a particular stored program control SPS1 . . . SPS4. This will be explained more specifically with respect to FIG. 3. 
     Referring to FIG. 3 the division of the total storage area GB into partial storage areas TB1 . . . TB255 is shown. In this embodiment, the total storage area GB has a total of 32257 (0 . . . 32256) storage locations. Each of the partial storage areas TB1 . . . TB255 has 126 storage locations (0 . . . 125), and each has a fixed assignment to a stored program control. In the present embodiment, for example, the partial storage areas TB1 . . . TB4 could have a fixed assignment to the stored program controls SPS1 . . . SPS4, while the remaining partial storage areas TB0, and TB5 . . . TB255 are not allocated. However, this is not an unnecessary expenditure of storage locations. It is not necessary that the total storage area GB be available in the form of storage locations actually existing as to hardware, but exists merely as an imaginary storage area to be planned as needed. 
     The partial storage areas TB1 . . . TB4 having a fixed assignment to the stored program controls SPS1 . . . SPS4 include 126 (0-125) storage locations, respectively. These 126 storage locations of a stored program control can now be divided again and allocated either in a fixed or selective manner into storage locations for the transmitting peripherals S1 . . . S4 and into storage locations for the receiving peripherals E1 . . . E4. 
     The division of the total storage area GB into the partial storage areas TB has been described. To facilitate the comprehension of the communication process, the concept of combining the respective transmitting and receiving peripherals S1 . . . S4, E1 . . . E4 of a stored program control SPS1 . . . SPS4 in a total storage area GB&#39; will be described with reference to FIG. 4. 
     Referring to FIG. 4 the stored program controls SPS1 . . . SPS4 which are coupled to the bus system BS via the buses B1 . . . B4 are shown. The total storage area GB&#39;, which is divided into a transmitting peripherals S and a receiving peripherals E is coupled symbolically to the bus system BS. The transmitting and receiving peripherals S, E of the total storage area GB&#39; is composed of the transmitting and receiving peripherals S1 . . . S4, E1 . . . E4. In the present embodiment, the total storage area GB&#39; has a total of 19 storage locations. The storage locations 0 . . . 5 being correlated with the transmitting peripherals S and the storage locations 6 . . . 18 with the receiving peripherals E. Each storage location 0 . . . 18 of the total storage area GB&#39; may be written to only by one stored program control SPS1 . . . SPS4, while each storage location 0 . . . 18 can be read by each stored program control SPS1 . . . SPS4. When the communication system is taken into operation, the total storage area GB&#39; is at first completely written. During the process, however, only a so-called intelligent change transmission is effected. This means that in principle only changed data is transmitted between the individual data processors. 
     In an specific embodiment, the third stored program control SPS3 controls an industrial process, cyclically polling four valve positions. Of these four valve positions the first, third and fourth are important for the first stored program control SPS1. Now, if the first, second and third valve positions have changed, then only the data of the first and third valve positions are written into the transmitting peripherals S3, which is part of the transmitting peripherals S, of the third stored program control SPS3. Then, by a change word (which will be discussed later), the first and third valve positions are transmitted from the sending peripheral S3 to the receiving peripherals El, which is part of the receiving peripherals E, of the first stored program control SPS1. 
     Complete data words of stored program controls SPS1 . . . SPS4, on the other hand, are transmitted only in the start-up phase or in the internal error treatment. Thereby a high transmission rate is achieved. 
     For the transmission of data over the bus system BS it is advantageous in the present invention to define four different types of data words. They are a blank word, a change word, a full word, and a request word. 
     If in the transmitting peripherals S, the content of one or more storage locations has changed, a change word is normally transmitted in running operation. Since the entire content of the transmitter peripherals S is not transmitted each time, the time expenditures is thereby minimized. 
     A request word is requested by a stored program control SPS1 . . . SPS4 when the latter has detected a word loss or when one of the stored program controls SPS1 . . . SPS4 is in the start-up phase. 
     Full words serve to bring newly starting stored program controls SPS1 . . . SPS4 to the current status of the transmitting peripherals S1 . . . S4 as quickly as possible. In case a stored program control SPS1 . . . SPS4 recognizes the loss of a word, it can prompt the respective sender by a request word to send a full word. 
     An essential feature of a full word is that it represents the image of a transmitting peripherals S1 . . . S4 of a subscriber. The status of this image corresponds to the time of the sending of the last change word or of the initialization state of the sender. This means that a subscriber who was able to receive all change words of the sender does not get any new information through the arrival of the full word. It follows from this that as far as the receiver is concerned, full words are relevant only if either the latter is in the start-up phase or if a word loss has been recognized. 
     A blank word is used for recognizing possible word losses of the change word and full word types in the system. These losses are possible because both types are transmitted by an &#34;unconfirmed&#34; service, this having the advantage that the word can be sent to all bus subscribers simultaneously. 
     Blank words are always sent after a change word or a full word. In addition, blank words are sent cyclically whenever the &#34;idle time&#34; has come to an end after the last blank change or full word. The idle time is a compromise between an additional bus burden by blank words and the reaction time for recognizing a double word loss. 
     Referring to FIGS. 5 and 6 the described word types are shown. The first two symbols of a word are realized in the form of two bytes, the first byte representing an identification K and the second byte a cycle number Z. The identification K communicates to a stored program control SPS1 . . . SPS4 the kind of word being sent, that is, which of the four word types is involved. The cycle number Z communicates to the stored program control SPS1 . . . SPS4 the number of the respective word type. Because a stored program control SPS1 . . . SPS4 knows the number of the respective preceding word type, it can establish whether a data loss has taken place between the new word and the last word type, i.e. whether a word was lost in the interim. These two bytes are sufficient for a blank word and a request word. 
     Referring to FIG. 6 the &#34;change word&#34; and &#34;full word&#34; types are shown. Besides the above described identification K and cycle number Z, the change word includes an error byte F, which reports to the receiver an error from the sender. 
     Within the change and full words, the storage locations are classified according to which partial storage area they belong. A partial storage area TB may indeed not be present, but a partial storage area TB must not be addressed twice within a word. In addition, the partial storage area length TBL, as well as the storage location number BN (byte number) and the value domain W are transmitted. The storage location number BN indicates what number byte within a partial storage area TB is involved. The value domain field W contains the current value of the byte addressed by the partial storage area TB field and the storage location number BN.