MULTI-PROCESSOR COMPUTER SYSTEM

Abstract: A multi-processor computer system is described that consists of at least two processors equipped with storage means. Each of the processors is assigned at least one private storage area (10) in the storage means. Furthermore, at least one common storage area (16) is provided in the sotrage means, to which a portion (13) of the private storage area (10) is assigned. Through this storage means arrangement, it is possible, using appropriate commands, to transfer messages between different processors via common storage areas. The management of the private and common storage areas is accomplished using tables, whereby the use of help tables simplifies locating information required for carrying out specific commands.

Description: D E S C R I P T I O N MULTI-PROCESSOR COMPUTER SYSTEM The invention relates to a computer system with at least two processors equipped with storage means, whereby each of the processors is assigned at least one private storage area in the storage means. The invention further relates to a method employed in such a computer system for assigning a portion of a private storage area to a common storage area. Multi-processor computer systems of the stated type have been disclosed. Likewise, various possible approaches have been disclosed for managing storage means by multi-proces- sor computer systems. The type of such management is usu¬ ally dependent on the specific application. If the storage means, for example, are to be used to transfer messages be¬ tween the individual processors of the multi-processor com¬ puter system, management of the storage means in this case differs from the case in which a common storage area as¬ signed to multiple processors is locked and unlocked to en¬ sure defined access sequences. The management of the stor¬ age means by multi-processor computer systems is therefore application-related and thus inflexible. The object of the invention is to create a multi-processor computer system, and a corresponding method, which allows management of the storage means adaptable in a simple man¬ ner to different applications and requirements. This objective is substantially fulfilled by the invention in that, for a computer system as originally described, at least one common storage area is provided in the storage means, to which a portion of at least one of the private storage areas is assigned. In a method as originally de¬ scribed, the objective is substantially fulfilled in that, depending on the common storage area, a pointer is read from a table of the common storage areas which references a table of the assigned portions of the private storage areas and that, depending on the pointer, the portion of the pri¬ vate storage area assigned to the common storage area is read from the table of the assigned portions of the private storage areas. The common storage area can be laid out depending on the specific application. Also, the number of assigned private storage areas, as well as the layout of these private stor¬ age areas, is flexible. The invention thus enables flexible management of the storage means of a multi-processor com¬ puter system. In particular, this is accomplished using the table of the common storage areas and the table of the assigned portions of the private storage areas. The table of the common stor¬ age areas contains, for each common storage area, a pointer to the table of the assigned portions of the private stor- age areas. Using this pointer, the latter table furnishes that portion of the private storage area that is assigned to the common storage area. Using both tables, any assign¬ ment of private and common storage areas can be managed in simple fashion. In an advantageous embodiment of the invention, a proces¬ sor-dependent help table and an address-dependent help ta¬ ble are provided. Using these two help tables, faster ac¬ cess to assigned portions of the private storage areas is possible. In a further embodiment of the invention, commands are pro¬ vided for defining and associating the common storage areas and the portions of the private storage areas. Commands are also provided for exchanging any form of information be¬ tween the common and private storage areas. Further advantages and forms of the invention can be under¬ stood from the following description of one embodiment rep¬ resented by the drawings, in which: Figs. 1 to 3 show possible assignments of common storage areas of a multi-processor computer system to portions of private storage areas of individ¬ ual processors, and Fig. 4 is a schematic representation of the tables for associating the common storage areas and the portions of the private storage areas . A multi-processor computer system comprises at least two and normally several processors. Each processor is usually provided with some type of storage media, for example, semiconductor memory or disk storage. These storage media can on the one hand be assigned to the specific processor; however, it is also possible for all storage media as a whole to form the storage means of the entire multi-proces¬ sor computer system. In Figs. 1 to 3, possible assignments of these storage means of a multi-processor computer system to the individ- ual processors are shown. Here, the distinction is always made between private storage areas and common storage ar¬ eas. A private storage area is one to which only one spe¬ cific processor has access. This does not mean, however, that this private storage area of one processor is identi- cal to the storage media assigned to the processor; this may be true, but it is not necessarily so. A common storage area is one to which several or even all processors of the multi-processor computer system have access rights. Such a common storage area can reside in the storage media of a specific, selected processor; it is, however, also possible that such a common storage area is assigned to one or even several processors of the multi-processor computer system. In Fig. 1, a plurality of private storage areas 10, 11, 12 are shown. Also depicted are an equal number of common storage areas 16, 17, 18. The private storage area 10 and the common storage area 16 are associated with each other, the private storage area 11 and the common storage area 17 are associated with each other, etc. In each of the private storage areas 10, 11, 12, portions 13, 14, 15 are present which are assigned to the common storage areas 16, 17, 18, respectively. This assignment signifies that, for example, the contents of portion 13 of the private storage area 10 is identical to that of the as¬ sociated common storage area 16, disregarding time delays associated with storing. The processor which has the access rights to the private storage area 10 and thus to portion 13 of the private storage area 10, can read and/or modify data in this portion 13. The processor can then copy por¬ tion 13 to the common storage area 16. At a later time, the common storage area 16 can be moved back to portion 13 of the private storage area 10 for further processing. Since in Fig. 1 only a single portion of the private stor¬ age areas is assigned to each common storage area, in the case of Fig. 1 no functions such as the transfer of mes¬ sages between the individual processors can be carried out using these common storage areas 16, 17, 18. In contrast, Fig. 2 shows a number of private storage areas 20, 21, 22, 23, whereby a respective portion 24, 25, 26, 27 of these private storage areas 20, 21, 22, 23 is indicated separately. Unlike Fig. 1, Fig. 2 provides several common storage areas 28, 29, 30, which are assigned not to a re¬ spective single private storage area but rather to possibly several private storage areas. In this manner, the common storage area 28 is assigned to portion 24 of the private storage area 20 as well as to portion 25 of the private storage area 21. Likewise, the common storage area 29 is assigned to portion 26 of the private storage area 22 as well as other portions of pri¬ vate storage areas. Only the common storage area 30 is as¬ signed to one private storage area, namely portion 27 of the private storage area 23. The processor associated with the private storage area 20 can access, and possibly modify, portion 24 of the private storage area 20. Then, portio 24 of the private storage area 20 can be copied to the common storage area 28. From there, the processor associated with private storage area 21 can in turn copy the common storage area 28 to its as¬ signed portion 25 of the private storage area 21. The proc¬ essor can now process and modify the data in portion 25 of the private storage area 21. Portion 25 may then be copied to the common storage area 28 and later rewritten to por- tion 24. In this way the processor associated with private storage area 20 and the processor associated with private storage area 21 can exchange data via the common storage area 28. This data can comprise messages to be transferred between the processors. Likewise, the common storage area 28 can be used to lockout these processors from one another. This possibility will be discussed later in detail. Furthermore, in Fig. 2 the private storage areas 20, 21 contain additionally the portions 31, 32, which are as¬ signed to a further common storage area 33. This embodiment will also be explained later in more detail. In Fig. 3, a number of private storage areas 40, 41, 42 are shown with respective portions 43, 44, 45, to which a sin¬ gle common storage area 46 is assigned. In this embodiment, the processor associated with private storage area 40 can write data to portion 43. This data is transferred to the common storage area 46, such that now the data can be read by the processors associated with private storage areas 41, 42 into the respective portions 44, 45 of these private storage areas 41, 42. From there, the data can in turn be processed and modified by the respective processors and then written back to the common storage area 46. In Fig. 3, the common storage area 46 can be used to trans¬ fer messages between the processors associated with private storage areas 40, 41, 42. The common storage area 46 can also be used for locking, that is, ensuring an orderly ac¬ cess sequence to the data. Regardless of whether the storage means of the multi-pro¬ cessor computer system are apportioned as shown in Figs. 1, 2, or 3 , management of the storage means is always accom¬ plished using the same commands, described below. If a common storage area does not yet exist, such a common storage areas can be defined via the command "DEFINE GSB (GSBID) " . The letters GSB indicate that the definition ap¬ plies to a common storage area. The letters GSBID represent an abbreviation for the name of the newly created common storage area, that is, an identification of the new common storage area. Following this command, the newly established common stor- age area can be further defined with the command "ALLOCATE GSB (GSBID, GSBAA, PSBID, PSBAA, SBL) " and in particular assigned to a portion of a private storage area. As already mentioned, GSBID is the identification of the common stor¬ age area. GSBAA is an abbreviation for the starting address of this common storage area. Likewise, PSBID is the identi¬ fication of the assigned portion of the private storage area, while PSBAA is an abbreviation for the starting ad- dress of this assigned portion of the private storage area. Finally, SBL is an abbreviation for the length of the com¬ mon storage area and the assigned portion of the private storage area. Using both of these commands, it is possible to define a common storage area and assign it to a specific portion of a private storage area. Furthermore, both commands can be used to define the starting addresses and lengths of the common storage area and the assigned portion of the private storage area. Referring for example to Fig. 1, the two commands can be used to define storage areas 16, 17, 18 and the respective associated portions 13, 14, 15 of the private storage areas 10, 11, 12. By corresponding repetition of the "ALLOCATE..." command, it is also possible to assign multiple portions of private storage areas to a single common storage area. In the con¬ secutive ALLOCATE commands, only the PSBID for the respec¬ tive portion of the corresponding private storage areas changes. In addition, the PSBAA starting addresses of the respective portions of the private storage areas can differ from one another. The length SBL of the storage areas, how¬ ever, is identical for all assigned portions. Using such a repeated "ALLOCATE..." command, it is therefore possible to assign a common storage area as shown in Fig. 2 to two or more portions of private storage areas or to assign a co - mon storage area as shown in Fig. 3 to all portions of the private storage areas. The counterpart of the "ALLOCATE..." command is the command "DEALLOCATE GSB (GSBID, GSBAA, SBL)". This command can be used to cancel the assignment of a common storage area to portions of private storage areas and to delete the common storage area as such. After executing the "DEALLOCATE ..." command, therefore, the common storage area with the iden¬ tification GSBID no longer exists. This former common stor¬ age area can no longer be accessed after the "DEALLOCATE ..." command. If at least one common storage area has been established, and associated with at least one private storage area, the commands "COPY FROM PSB TO GSB (GSBID, PSBAA, SBL) " and "COPY FROM GSB TO PSB (GSBID, PSBAA, SBL) " can be used to copy data between the common storage area and the assigned portion of the private storage area. Due to the GSBID, the common storage area which is to participate in the data ex¬ change is known. Using the starting address PSBAA of the assigned portion of the private storage area, the portion of the private storage area which is to participate in the data exchange is known. The specification of the length of the storage area SBL defines the amount of data to be ex¬ changed. All in all, the COPY command specifications can be used to carry out the data exchange. Referring to Figs. 1 to 3, the COPY commands can, for exam¬ ple, copy the common storage area 29 of Fig. 2 to portion 26 of the common storage area 22, or portion 44 of the pri¬ vate storage area 41 of Fig. 3 to the common storage area 46. Similarly to the two copy commands, it is possible to in¬ troduce so-called page-in and page-out commands. Like the copy commands, such commands can copy data from the common storage area to the associated portion of the private stor¬ age area and vice-versa. The amount of data can however be limited to a specific value, for example to the value em¬ ployed in general storage means management in so-called "paging" . In this case, the specification SBL of the length of the common storage area and the associated portion of the private storage area can be omitted in the page-in or page-out commands. If a common storage area is established and assigned to at least two portions of private storage areas, it is possible using the common storage area to exchange messages between the associated processors. For this purpose, the commands "SEND GSB (...)" and "RECEIVE GSB (...)" are provided. The data to be sent is written from the assigned portion of the private storage area for the sending processor into the common storage area. The receiving processor can then transfer this data using the RECEIVE command to its as¬ signed portion of its private storage area. By assigning the common storage area to only two portions of private storage areas and thereby to only two associated processors, it is uniquely established between which two processors the data transfer is to occur. If, for example, the sending processor wants to transfer data to another processor with which it up to now does not share a common storage area, it is first necessary, prior to the SEND com- mand, to define a common storage area for these two proces¬ sors. Only then can the data be transferred via the new common storage area. In this way too, so-called broadcasts can be carried out. For this purpose, a common storage area must be established to which all processors have access, as shown in the exam¬ ple of Fig. 3. If one of the processors now wants to trans¬ fer data to all other processors, it writes the data to the common storage area using the SEND command. From there, all other processors can retrieve the data using the RECEIVE command. In the broadcast situation just mentioned, in order that the receiving processors are notified at all that another processor has sent data, all processors must periodically monitor the mentioned common storage area for data changes. This checking can be done by each processor completely in- dependently of all other processors, so that the described broadcast transfer does not require synchronization of all processors. If two common storage areas are, for example, assigned to two private storage areas, as in the case of Fig. 2 with the two common storage areas 28, 33 and the assigned por¬ tions 24, 25, 31, 32 of the two private storage areas 20, 21, one common storage area can be used to lock and unlock the second common storage area. For this purpose, the com¬ mands "LOCK GSB (...)" and "UNLOCK GSB (...)" are provided. If, for example, in Fig. 2 the processor associated with the private storage area 20 wants to ensure that the pro- cessor associated with the private storage area 21 cannot read some type of data in the common storage area 28, the processor associated with private storage area 20 uses the LOCK command to define a so-called LOCK variable in the common storage area 33. The processor associated with pri- vate storage area 21 checks this LOCK variable in the com¬ mon storage area 33 and determines that access to the com¬ mon storage area 28 is at least temporarily denied. After the processor associated with private storage area 20 has, for example, modified some data in portion 24 of the pri- vate storage area 20 and then copied this portion 24 to the common storage area 28, the processor associated with pri¬ vate storage area 20 may again want to permit access to the common storage area 28 by the processor associated with the private storage area 21. For this purpose, the processor associated with the private storage area 20 resets the LOCK variable in the common storage area 33 using the UNLOCK command. The processor associated with the private storage area 21 can determine this with an appropriate check. Since the common storage area 28 is now no longer locked for the processor associated with private storage area 21, the lat¬ ter can copy the common storage area 28 into portion 25 of its private storage area 21 and process it. The setting and resetting of the LOCK variables via the LOCK and UNLOCK commands is accomplished using the common storage area 33 and the two assigned portions 31, 32 of the private storage areas 20, 21. In a simple application of the LOCK or UNLOCK command, the LOCK variable is first set into portion 31 by the processor associated with private storage area 20, and this portion 31 is subsequently copied to the common storage area 33. The checking of the common storage area 33 occurs in similar fashion. Here, it is suf¬ ficient that the common storage area 33 is copied for exam¬ ple to the private storage area 21 and then checked by the processor associated with private storage area 21. In the previously described commands, it is necessary to locate the assigned portions of the private storage areas based on the GSBID. However, the information contained in the commands for this purpose, such as the PSBID of the portion of the private storage area or the starting address PSBAA of this portion of the private storage area, does not represent absolute addresses but rather only indirect ref¬ erences to such absolute addresses. It is therefore neces¬ sary to further process the information contained in the commands to determine therefrom the absolute starting ad- dress of the associated portion of the private storage area. This is now discussed in more detail with reference to Fig. 4. In Fig. 4, a table 50 is shown in which the common storage areas reside. In addition, a table 60 is shown in which the assigned portions of the private storage areas reside. Fi¬ nally, Fig. 4 also shows a processor-dependent help table 70 as well as an address-dependent help table 80. In table 50 of the common storage areas, for each common storage area there is a pointer 51 to the table 60 of as¬ signed portions of the private storage areas, a pointer 52 to the processor-dependent help table 70, and a pointer 53 to the address-dependent help table 80. The individual com¬ mon storage areas in table 50 are stored in the order of their GSBIDs. This is indicated in Fig. 4 by an arrow 54, whereby the GSBID order is denoted by the letter i. If, for example, the third common storage area applies, that is i = 3, the pointer 51 in table 50 for this third common storage area points to a data field 61 in table 60 of the assigned portions of the private storage areas. This is indicated in Fig. 4 by an arrow 55. Not all information for the portions of private storage areas assigned to the third common storage area is present in the data field 61, however. Instead, only that information is contained in storage field 61, for example, which is associated with a first assigned portion of a private storage area. The in¬ formation associated with a second and a third assigned portion of a private storage area is stored in data fields 62 and 63. Access to these data fields 62, 63 is enabled, for example, by the pointer in data field 61 to data field 62, the pointer in data field 62 to data field 63 , etc. To locate a certain assigned portion of a private storage area, a chain 64, 65 of several data fields may have to be searched. To permit more rapid access to a certain portion of a pri¬ vate storage area, and to avoid searching the mentioned chain 64, 65 of data fields, the processor-dependent and address-dependent help tables 70, 80 are provided. For each common storage area, there is a process-dependent table and an address-dependent table. The number of processor-depen¬ dent help tables 70 and address-dependent tables 80 there¬ fore corresponds to the number of common storage areas stored in table 50. In Fig. 4, the processor-dependent help table 70 and the address-dependent help table 80 are shown for the third common storage area, that is for i = 3. These specific help tables 70, 80 can be accessed via the pointers 52, 53 in table 50 of the common storage areas. This is indicated in Fig. 4 by the arrows 56, 57. The processor-dependent help table 70 contains pointers 71 to table 60 of the assigned portions of private storage ar¬ eas. These pointers are stored in table 70 in processor or¬ der. The order of the processors therefore has the same significance as the order of the PSBIDs of the assigned portions of the private storage areas. This is indicated in Fig. 4 by an arrow 72 and the letter j. If, for example, multiple portions of private storage areas are assigned to a common storage area, and if, for example, the fourth portion of a private storage area is applicable to the relevant command, pointer 71 in the processor-de¬ pendent table 70 points directly to the data field 62, which contains the information for the fourth assigned por- tion of a private storage area. It is therefore no longer necessary to first read data field 61 and then reach data field 62 stepwise via the chain 64; rather, pointer 71 per¬ mits direct access to data field 62. This direct access is indicated in Fig. 4 by an arrow 73. Even if data field 62 can be accessed directly via proces¬ sor-dependent table 70 to locate a certain portion of a private storage area, that is, without searching chain 64, it is possible that the correct portion of the private storage area has still not been found. As previously dis¬ cussed, this is possible when multiple private storage ar¬ eas are assigned to a common storage area. In this case, as previously discussed, the desired data field 63 must be lo¬ cated from data field 62 via the chain 65. To avoid this searching of chain 65, the address-dependent help table 80 is provided. The help table 80 contains pointers 81 which point to cer¬ tain data fields in table 60 of the assigned portions of the private storage areas. These pointers 81 are contained in the address-dependent help table 80 in the order of the starting addresses GSBAA of the common storage areas . This is indicated in Fig. 4 by an arrow 82 and the letter k. Using the pointer 81, it is therefore possible, as also shown in Fig. 4 with an arrow 83, to access the desired data field 63 directly. A search of the chains 64, 65 is thus not required. To what extent the processor-dependent table 70 and the ad- dress-dependent table 80 can be used depends on the indi¬ vidual commands. For example, the copy commands discussed contain no information with respect to the PSBID of the as¬ signed portions of the private storage areas. For this rea¬ son, no entry can be present in the processor-dependent ta- ble 70. Also, in the table 50 of the common storage areas there is no entry for the pointer 52. In contrast, the de¬ scribed ALLOCATE command contains all data needed for re¬ spective entries in both help tables. In this case, there¬ fore, the two help tables 70, 80 can be used directly to locate the associated portions of the private storage area. All commands, however, contain the GSBID. Thus, with all commands, it is possible via the chains 64, 65 to locate the relevant data fields in the table 60 of the assigned portions of private storage areas. Table 50 of the common storage areas, table 60 of the as¬ signed portions of the private storage areas, and all pro¬ cessor-dependent help tables 70 and address-dependent help tables 80 are stored in each of the private storage areas of the processor of the multi-processor computer system. If one of the commands mentioned is presented to one of these processors for processing, the processor uses the aforemen- tioned tables and help tables to locate the information needed to process the command. In particular, the processor uses table 60 of the assigned portions of the private stor¬ age areas to determine the absolute addresses of these com- on storage areas and of the assigned portions of the pri¬ vate storage areas. Subsequently, the processor executes the command, copying, for example, a specified portion of a private storage area to a specified common storage area. If a command results in modification of data in the men¬ tioned tables and help tables, as is the case with the AL¬ LOCATE command, for example, the processor carries out this modification not only in its own private storage area but also in all other tables and help tables of the remaining private storage areas. These modifications of the tables and help tables must take place in the form of so-called transactions, so that at any time all tables and help ta¬ bles in all private storage areas agree. The entire foregoing description relates to a multi-proces¬ sor computer system. It is, however, also possible for the invention described to be used in a single-processor com¬ puter system. In this case, the storage means associated with the single processor can be distributed as indicated in Figs. 1 to 3. Here, the different private storage areas represent "multiple processors", whereby these "multiple processors" are identical.

Claims: C L A I M S 1. Computer system with at least two processors equipped with storage means, whereby each of the processors is assigned at least one private storage area (10) in the storage means, characterized in that at least one common storage area (16) is provided in the storage means and assigned to a portion (13) of at least one of the private storage areas (10) . 2. Computer system in accordance with Claim 1, characterized in that multiple common storage areas are provided, each of which is assigned to multiple portions of private storage areas. 3. Computer system in accordance with Claim 1 or 2, characterized in that a table (50) of the common storage areas and a table (60) of the assigned portions of the private storage areas are stored in the storage means. 4. Computer system in accordance with Claim 3, characterized in that for each of the common storage areas, there is a pointer (51) to the table (60) of the assigned por¬ tions of the private storage areas stored in the table (50) of the common storage areas, 5. Computer system in accordance with Claim 3 or 4, characterized in that for each of the common storage areas, a processor-de¬ pendent help table (70) and an address-dependent help table (80) are stored in the storage means. 6. Computer system in accordance with Claim 5, characterized in that in the table (50) of the common storage areas, for each of the common storage areas, a pointer (52) to the associated processor-dependent help table (70) and a pointer (53) to the associated address-dependent help table (80) are stored. 7. Computer system in accordance with Claim 5 or 6, characterized in that in the processor-dependent help table (70) , for each of the processors, a pointer (71) to the table (60) of the assigned portions of the private storage areas is stored. 8. Computer system in accordance any one of the Claims 5 to 7, characterized in that in the address-dependent help table (80) , for each of the starting addresses of the assigned portions of the private storage areas, a pointer (81) to the table (60) of the assigned portions of the private storage areas is stored. 9. Method for assigning a portion (13) of a private storage area (10) to a common storage area (16) in a computer sys¬ tem consisting of at least two processors equipped with storage means, with the following steps: depending on the common storage area, a pointer (51) to a table (60) of the assigned portions of the pri¬ vate storage areas is read from a table (50) of the common storage areas, depending on the pointer (51) , the private storage area (10) portion (13) assigned to the common storage area (16) is read from the table (60) of the assigned portions of the private storage areas. 10. Method in accordance with Claim 9, with the following steps: depending on the common storage area, a pointer (52) to a processor-dependent help table (70) is read from the table (50) of the common storage areas , depending on the affected processor, a pointer (71) to the table (60) of the assigned portions of the private storage areas is read from the processor-dependent help table (70) , depending on the pointer (71), the portion (13) of the private storage area (10) assigned to the common stor¬ age area (16) is read from the table (60) of the as¬ signed portions of the private storage areas. 11. Method in accordance with Claim 9 or 10, with the following steps: depending on the common storage area, a pointer (53) to an address-dependent help table (80) is read from the table (50) of the common storage areas, depending on the applicable starting address, a pointer (81) to the table (60) of the assigned por¬ tions of the private storage areas is read from the address-dependent help table (80) , depending on the pointer (81) , the private storage area (10) portion (13) assigned to the common storage area (16) is read from the table (60) of the assigned portions of the private storage areas.

Inventors: AMMANN ECKHARD MICHAEL, DIEL HANS HELMUT, AMMANN, ECKHARD, MICHAEL, DIEL, HANS, HELMUT
Applicants: AMMANN ECKHARD MICHAEL, DIEL HANS HELMUT, IBM, AMMANN, ECKHARD, MICHAEL, DIEL, HANS, HELMUT, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1993
Main classification: G06F12
IPC codes: G06F9, G06F12, G06F15