Method of processing data in a decentralized processing system

Abstract: In a decentralized processing system comprising a multiplicity of processors (14A) linked together through a transmission medium (11), data (12) of variable length that can be re­ located on the transmission medium (11) are processed, wherein each processor (14A) stores in a blank area of its own memory the data received from the transmission medium (11) using in­ formation that indicates the size of data and location of the data stored in the processor (14A).

Description: METHOD OF PROCESSING DATA IN A DECENTRALIZED PROCESSING SYSTEM BACKGROUND OF THE INVENTION Field of the Invention: The present invention relates to a method and an apparatus for processing on-line data in a decentralized processing system consisting of a multiplicity of processors linked through a transmission medium. Description of the Prior Art: As for a system for processing on-line data in a decentralized processing system, JP-A- 57 146 361 proposes a system in which a transmission control processor connected to a processor sends the data that is required by the processor to the data on a transmission medium with the content code thereof as a key. The program in the processor stores the data that is sent in the data area. So far, however, the size and head address of the data area had been exclusively determined at the time of preparing the program. If the data having an increased size is directly stored by the program, therefore, other areas positioned just behind the above data are destroyed unless the following procedures are taken: (1) Correction of the data areas only is not sufficient when the data is directly referred to by a head address of the program. Therefore, the processor for developing the program must link again the data area and the program that makes reference to the data, and must load them at one time onto a processor that needs them under the off-line condition. (2) To effect the above linkage, the processor for developing the program manages the memory information specific to the processor that receives program, and further manages the program and the data. (3) The processor for developing the program designates a loading address so that the address at the time of linkage comes into agreement with the address at the time of loading. According to the above prior art, however, no attention is given to dynamically cope with the data of variable lengths on the transmission medium and problems arise as described below. (1) If the data having an increased size is directly stored by the program, other areas arranged just behind the data are destroyed and are not referred to. (2) The data are not stored under the on-line condition, and the program must be corrected. (3) The processor for developing the program must manage the memory information specific to the processor, must manage the program and information related to the data that are necessary for developing and correcting the program, and must further manage the loading addresses for designating the processors. Because of these reasons, the processors could not maintain autonomy to carry out the processing relying solely upon their own internal information without giving instruction to other processors or without being instructed by other processors, making it difficult to maintain flexibility in the maintenance and extension. IBM Technical Disclosure Bulletin, vol. 27, no. 3, August 1984, New York US, pages 1769 - 1770 Document is directed to " Flexible buffer pooling with an SNA receiving station ". The pacing mechanism of SNA ( system network architecture ) controls receiving of data frames and signals readiness for accepting the next group of data frames as soon as the required number of buffers is available. It reduces the number of data frames transmitted to match the existing buffer resource available at the receiver station and is therefor provided with the number of buffers which have to be used per program. If unused storage is available, a buffer pool is created out of the current group of N buffers plus available buffers of x buffers, whereby x is less than N. With regard to the present application a method of operating a decentralized processing system including a plurality of processors is known. The processors are linked together through a variable number of data frames. SUMMARY OF THE INVENTION The object of the present invention is to provide a method and an apparatus for processing data in which data of variable length that can be relocated on the transmission medium is stored in an on-line manner autonomously by searching and securing suitable blank areas, in order to preclude the above-mentioned problems inherent in the existing on-line data processing system. In order to achieve the above object, the present invention deals with a method of processing data in which the individual processors process the data of variable lengths that can be relocated on the data field in a decentralized processing system that consists of a multiplicity of processors linked through a transmission medium, the improvement wherein each of said individual processors has information that indicates the location of the data stored in its own memory, searches the area necessary for storing the data in the memory, and stores the data received from the transmission medium in blank areas of its own memory in an on-line manner in an indirectly referable form by using only the information that represents the location of said data stored in its own processor. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a flow chart illustrating the flow of process of a processor in a decentralized processing system according to an embodiment of the present invention; Fig. 2 is a block diagram illustrating the general structure of the decentralized processing system to which the present invention is related; Fig. 3 is a block diagram illustrating the structure of the processor of Fig. 2; Fig. 4 is a diagram illustrating the format of a memory information storing unit of Fig. 3; Fig. 5 is a diagram illustrating a format of a memory map; Fig. 6 is a diagram illustrating the structure of the processor according to another embodiment of the present invention; Fig. 7 is a diagram illustrating a format of the memory map; Fig. 8 is a flow chart illustrating the flow of process of the processor in the decentralized processing system according to another embodiment of the present invention; Fig. 9 is a diagram illustrating the structure of the processor employed in a data drive system utilizing the present invention; Fig. 10 is a flow chart illustrating the flow of process of the data drive system; and Fig. 11 is a diagram illustrating a format of the linkage information storing unit of Fig. 9. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The principle of the invention will now be described. According to the present invention, a decentralized system consists of a multiplicity of processors that are connected together via a transmission control processor, wherein the data that flows through a transmission medium consists of a content code that indicates the content, an identifying code for identifying the data body, the size of data body and the data body. As for the data required by the processors, the content code has already been registered in advance to the transmission control processor. Each processor has a buffer for temporarily storing the input data, a data storing unit for storing the data body, and a memory managing unit which manages a memory information storing unit that stores identifying code, size of the data area and head address for the data stored in the data storing unit, which manages the memory in the processor, and which searches and secures a suitable blank area. The data formed by each of the processors flow in the above-mentioned forms on the transmission medium. The transmission control processor sends to the processor the data that is required by the memory managing unit in the processor with the content code as a key. The processor drives the memory managing unit relying upon the data input to the buffer. The memory managing unit, first, calculates head/tail addresses of the data areas from the information stored in the memory information storing unit. The memory managing unit then prepares a memory map on the data storing unit based upon them and upper/lower limit addresses (internal data) stored in the data storing unit. Next, the memory managing unit searches a blank area greater than the size of the received data from the memory map that is prepared. When there is a suitable blank area, information related to the received data is stored in a blank area in the memory information storing unit. The memory managing unit then stores the data body in the data storing unit with the head address of blank area in the data storing unit as a loading address. That is, since the processor performs the memory management and searches and secures a suitable blank area, other areas are not destroyed even when the size of the input data is changed. In addition, since there is no need of correcting the program for storing the data, it is allowed to store the data in the on-line manner. Moreover, the individual processors need not recognize information specific to other processors, and are capable of carrying out the processing autonomously. Embodiments of the invention will now be described in detail in conjunction with the accompanying drawings. Fig. 2 is a block diagram which illustrates the general structure of a decentralized processing system for processing the data according to an embodiment of the present invention. The decentralized processing system is comprised of a multiplicity of processors 14A that are linked together by a common transmission medium (hereinafter referred to as data field) 11 via transmission control processors (NCP) 13. The common transmission medium referred to here stands for a medium that flows data of the processors, such as a wired transmission path, memory or wireless path. The process carried out by the processors will now be described with reference to Fig. 3. The data 12 flows in the data field 11 in the above-mentioned form. Here, the data body consists of data of variable lengths that can be rearranged, such as ordinary data, primitive program, object program, and load modules that can be rearranged. A method which uses a code called content code to indicate the content of data will now be described as a method (protocol) of transmitting and receiving data among the processors 14A via the data field 11. It is, of course, allowable to use any other protocol as a method of transmitting and receiving data. The data 12 on the data field 11 are received by the NCP's 13 connected to the processors 14A. As for the data required by the processors 14A as described above, the content codes have already been registered to the NCP's 13. The NCP's 13 determine the received data with the content codes as keys, and send them to the processors 14A as required. The program in the processor 14A is so constituted as to execute the process with the data as inputs when the data having predetermined content codes are all prepared. This has been closely described in the aforementioned JP-A- 57 146 361. The processor 14A drives the memory managing unit 15A in response to the data 12 input to the buffer 18A. Based upon information in the memory information storing unit 16A shown in Fig. 4, the memory managing unit 15A searches and secures a suitable blank area through the process that will be described later, and stores the input data 12 in the data storing unit 17A. The memory managing unit 15A consists of a memory map forming unit 15a, a blank area searching unit 15b, a memory information forming unit 15c, and a data write-in unit 15d. Fig. 1 is a flow chart according to which the process is executed by the memory managing unit 15A. The process of memory managing unit 15A will now be described with reference to the flow chart of Fig. 1. The memory managing unit 15A, first, drives the memory map forming unit 15a which forms a memory map 41A to search blank area in the data storing unit 17A. Fig. 5 shows a format of the memory map 41A. In the memory information storing unit 16A is stored information related to data that have been stored in the data storing unit 17A in the form of format shown in Fig. 4. At the time of preparing the memory map 41A, therefore, it is checked whether the memory information be used or not. That is, when the identifying code ID of the input data 12 is the same as that of the data designated by the memory information storing unit 16A, the data designated by the memory information storing unit 16A may be renewed by overwrite or the like in a step 58 in response to the input data 12. In such a case, therefore, the procedure proceeds to a step 53 without using the memory information (step 51). When the identifying codes are not in agreement, the memory map 41A is constituted based upon the memory information in compliance with the format of Fig. 5. Here, the tail address is obtained by adding size to the head address. Sets consisting of identifying codes, head addresses and tail addresses are densely stored starting from the second line of the memory map 41A (step 52). Processes of the steps 51 and 52 are effected for all of the data designated by the memory information storing unit 16A (step 53). The first line of the memory map 41A and the n-th line next of the line where the final data is stored correspond to the upper/lower limit addresses (low/high) of the data storing unit 17A. Therefore, a value of, for example, -1 is stored in the identifying code and the same value is stored in the head/tail addresses as shown in Fig. 5. Next, the first line through up to the n-th line of the memory map 41A are sorted in ascending order with the head address as a key. Sizes of blank areas are found for the first line through up to the (n-1)-th line in the memory map 41A. Here, the identifying code, head address, tail address and size of blank area of the i-th line are denoted by fc i , s i , e i and d i , respectively. The size d i of blank area just behind the data area of identifying code fc i is d i = s i+1 - e i . The size of blank area of the n-th line is presumed to be, for example, -1 (step 54). The memory managing unit 15A then drives the blank area searching unit 15b which searches blank area of a size greater than that of the input data 12 based upon the size of input data 12 and memory map 41A. If there is such a blank area, there is obtained a head address thereof, i.e., a tail address of the data area just in front of the blank area. The memory managing unit 15A then drives the memory information forming unit 15c. If there is no such blank area, the processing is finished (step 55). The memory information forming unit 15c, first, checks whether there is a blank area in the memory information storing unit 16A by which memory information related to the input data 12 can be registered. The stored data whose identifying code is in agreement with that of the input data 12 is deleted, and the area in the memory information storing unit 16A is added to the blank area (step 56). If there is such a blank area, the identifying code, size of the data area and head address are stored in the memory information storing unit 16A for the input data 12. The memory managing unit 15A drives the data writing-in unit 15d (step 57). The data writing-in unit 15d stores the data body of input data 12 in the blank area of the data storing unit 17A with the head address as a loading address. As a modified embodiment, furthermore, the content code may be brought into agreement with the identifying code, and the process based upon the identifying code may be carried out using the content code. According to the above-mentioned embodiment, the processor manages the memory, and further searches and secures suitable blank area. Therefore, even when the size of the input data is changed dynamically, other areas on the data storing unit are not destoryed. In addition, since there is no need of correcting the program for storing the input data, it is allowed to store the data in an on-line manner. Moreover, each processor needs not recognize information specific to other processors, and can execute the processing autonomously. Therefore, the processors are allowed to store the data in an on-line manner autonomously while searching and securing a suitable blank area, and whereby the system features improved on-line maintenance and extensibility. Fig. 6 illustrates another embodiment of the present invention in which the process is executed by the processors. In Fig. 6, reference numerals 11, 12 and 13 denote the same constituent elements as those of the above-mentioned embodiment, and reference numerals 14B to 18B denote constituent elements that correspond to the constituent elements 14A to 18A. That is, reference numeral 14B denotes a processor. Reference numerals 15B, 16B, 17B and 18B denote, respective a memory managing unit, a memory information storing unit, a data storing unit and a buffer that constitute the processor 14B. The program in the processor 14B is so constituted as to execute the processing with the data as inputs when the data having predetermined content codes are all prepared. This is the same as that of the aforementioned embodiment. The processor 14B drives the memory managing unit 15B in response to data 12 input to the buffer 18B. Based upon information in the memory information storing unit 16B shown in Fig. 4, the memory managing unit 15B secures a suitable blank area by the process described later, and stores the input data 12 in the data storing unit 17B. The memory managing unit 15B consists of a memory map forming unit 15a, a blank area searching unit 15b, a memory information forming unit 15c, a data writing-in unit 15d, and a relocation unit 15e. Fig. 8 is a flow chart which illustrates the process executed by the memory managing unit 15b. Process by the memory managing unit 15B according to this embodiment will now be described in conjunction with the flow chart of Fig. 8. The memory managing unit 15B, first, drives the memory map forming unit 15a which forms a memory map 41B for searching blank area in the data storing unit 17B as described in the aforementioned embodiment. Fig. 7 shows a format of the memory map. In the memory information storing unit 16B is stored information related to data that have been stored in the data storing unit 17B in the form of format shown in Fig. 4. At the time of preparing the memory map 41B, therefore, it is checked whether the memory information be used or not. That is, when the identifying code of the input data 12 is the same as that of the data designated by the memory information storing unit 16B, the data designated by the memory information storing unit 16B may be renewed by double-writing or the like in a step 70 in response to the input data 12. In such a case, the procedure proceeds to a step 63 without using the memory information (step 61). When the identifying codes are not in agreement, the memory map 41B is constituted based upon the memory information in compliance with the format of Fig. 7. Operations of the steps 64 and 65 are the same as operations of the steps 54 and 55 in the aforementioned embodiment. If there is no blank area, the memory managing unit 15B drives the relocation unit 15e to relocate the stored data in order to check whether the blank area that is required is obtained or not. The relocation unit 15e presumes the relocation of the stored data to obtain a blank area that is required. First, the memory map 41B is found in the case where the stored data are densely arranged in an increasing order on the data storing unit 17B for each of the areas with the head address as a key. In the memory map 41B, the head address of the i-th line, tail address, size of blank area and head address of before the relocation are denoted by s i , e i , d i and os i , and are renewed as follows: os i = si s i = e i-1 e i = e i - d i-1 (where d i-1 ≠ 0, i = 2, 3, -----, n-1) The initial value of the head address os i before the relocation at the time of forming the memory map is presumed to be, for example, -1. Thus, with the head address os i of before the relocation being renewed, the memory information forming unit 15 that will be described later and the data writing-in unit 15d check whether it is an initial value or not, and whereby it is recognized whether the data requires relocation or not, and the initial head address is recognized. Next, size of blank area is found and the memory map 41B is formed again in the same manner as the memory map forming unit 15a (step 66). Based upon the reformed map 41B, the blank area is searched in the same manner as the blank area searching unit 15b. If there is the blank area, the memory managing unit 15B drives the memory information forming unit 15c so that information related to input data 12 and stored data that requires relocation is registered to the memory information storing unit 16B. If there is no such blank area, the process is finished (step 67). Operation of the memory information forming unit 15c is the same as the operation mentioned in the foregoing embodiment (step 68). Here, if there is the blank area, the identifying code, size of data area and head address are stored in the memory information storing unit 16B for the input data 12. The above head address is that of a blank area obtained by the blank area searching unit 15b or the relocation unit 15e. Further, if there is the stored data that requires relocation, the content of the memory information storing unit 16B is searched with the identifying code as a key. The head address of the area is renewed by the head address in the reconstituted memory map 41B. Then, the memory managing unit 15B drives the data writing-in unit 15d (step 69). The data writing-in unit 15d writes the input data 12 onto the data storing unit 17B and relocates the stored data when it needs the relocation. That is, when there is the stored data that needs relocation, the data in the data storing unit 17B is relocated based upon information in the memory map 41B. Thereafter, the data body of input data 12 is stored based upon the head address of the blank area on the data storing unit 17B (step 70). The above-mentioned embodiment can be modified in a manner as described below. (1) The identifying code of memory map 41B may be used as a line number on the memory information storing unit 16B such that the stored data that needs relocation can be processed at high speeds by the memory information forming unit 15c. Here, however, the first line and the n-th line of memory map 41B are excluded. This makes it possible to simplify the procedure for searching the content of memory information storing unit 16B using identifying code as a key. (2) The content code may be brought into agreement with the identifying code to carry out the processing based upon the identifying code using the content code. According to the above-mentioned embodiment, the processor manages the memory, searches and secures a suitable blank area and, as required, relocates the stored data. Therefore, the blank area is prevented from being further divided into small areas and wasteful blank areas are eliminated, making it possible to store more data in addition to the effects obtained by the aforementioned embodiment. Therefore, the processor stores the data in an on-line manner autonomously while securing a suitable blank area such that the memory can be effectively utilized, contributing to improving on-line maintenance and extensibility of the system. Described below is the operation of the case where the data stored by the above-mentioned system is processed relying upon an indirect reference system. The feature of this data drive system resides in that the processor is provided with the aforementioned data writing-in means for the data of variable lengths that are independent of each other and are not interfered by each other and that can be relocated, that the processor has information that indicates a head address of the stored data, and that the processor executes the processing with reference to the stored data by the indirect reference system using the above information. This will be described below more concretely. Fig. 9 concretely illustrates the case where the data drive system is adapted to the decentralized processing system of Fig. 2, and wherein reference numerals 11, 12 and 13 denote the same constituent elements as those mentioned earlier, and reference numerals 14C to 18C denote constituent elements that correspond to those denoted by 14A to 18A. That is, reference numeral 14C denotes a processor, and reference numerals 15C, 16C, 17C and 18C denote a memory managing unit, a memory information storing unit, a data storing unit and a buffer that constitute the processor. The processor 14C is further provided with an on-line loader 21, a linkage information storing unit 22 and an execution managing unit 23. The on-line loader consists of the memory managing unit 15c and an on-line linker 21a. Further, the memory managing unit 15c may be comprised of either the memory managing unit 15A or the memory managing unit 15B described in the aforementioned embodiment, and is comprised of the latter in this case. The processor 14c searches a suitable blank area, stores the input data 12, refers to the stored data, and executes the process. Here, however, the stored data is executed when it consists of a load module that can be relocated and when the above-mentioned required data is input. Fig. 10 is a flow chart of the process that is executed by the processor 14c. The process executed by the processor 14c will now be described in conjunction with Figs. 9 and 10. The processor 14c drives the on-line loader 21 in response to data 12 input to the buffer 18c. The on-line loader 21 drives the memory managing unit 15c which forms the memory map (step 71) same as the one shown in Fig. 4 based upon information in the memory information storing unit 16c and the upper/lower limit addresses (internal data) in the data storing unit 17C, in order to search blank area on the data storing unit 17C. Then, based upon the memory map, a blank area of a size greater than the input data 12 is searched and secured. At this time, the stored data may be relocated as required to eliminate wasteful blank area and to search and secure the blank area (step 72). Next, if there are input data 12 and stored data that requires relocation, information related thereto is registered to the memory information storing unit 16c or is renewed. Then, the stored data that needs relocation is relocated, and the input data 12 is stored in the data storing unit 17c (step 73). Next, the on-line loader 21 drives the on-line linker 21a which manages the linkage information storing unit 22 such that the processor 14c refers to the stored data by the indirect reference system and executes it. Fig. 11 shows a format of the linkage information storing unit 22. The number of lines of the linkage information storing unit 22 is in agreement with that of the memory information storing unit 16c. The on-line linker 21a finds head addresses and content codes from the memory information storing unit 16C successively for all data that are stored in the data storing unit 17c, and renews the linkage information storing unit 22 (step 74). The execution managing unit 23 searches the linkage information storing unit 22 for the required input data that are stored based upon the indirect reference system with the content code as a key, reads out the head address, refers to the stored data and drives it (step 75). The stored data that is driven processes the input data in the buffer 18c, adds the content code to the result and produces it onto the data field 11. The above-mentioned structure can be modified as follows: (1) In order to save procedure related to the renewal of the linkage information storing unit 22, it may be included in the memory information storing unit 16c. This helps eliminate unnecessary tables and increase the processing speed of the on-line loader 21. (2) The content code may be brought into agreement with the identifying code, and the process based upon the identifying code may be carried out by using the content code. (3) The memory managing unit 15C may not have the relocation function (the one mentioned in the first embodiment). According to the above-mentioned data drive system, the processor is provided with the memory control function that can be relocated, linkage function and execution managing function, and searches a suitable blank area, stores the input data, refers to the stored data and executes it, contributing to improving on-line maintenance and extensibility of the system. According to the present invention as described above, each processor stores the data received from the transmission medium in the blank area of its own memory using information that indicates the location of data stored in its own memory. It is therefore possible to realize a data processing system in which a processor stores data of variable lengths that can be relocated on the transmission medium in an on-line manner autonomously while searching and securing a suitable blank area. Furthermore, each processor has a function for relocating the data stored in the memory, and store the data received from the transmission medium in the blank area of its own memory while relocating the data as required by the relocation function using information that indicates the relocation of data stored in the processor. In this case, therefore, the memory can be effectively utilized in addition to the above-mentioned effects.

Claims: A method of operating a decentralized processing system including a plurality of processors (14A) that are linked together through a data field (11) that carries input data (12) of varying length, and with each processor (14A) having a memory (17A), said method being characterised in that each of the input data (12) includes a data body and a size code indicating the size of the data body (12) and by the following steps within each processor: (a) receiving input data (12) carried on the data field (11); (b) detecting the size code of received input data (12) to determine the size of the data body of the received input data (12); (c) locating within the associated memory (17A) a blank area of a size sufficient for storing the data body of the received input data (12) based upon the determined size of said data body and the location of data bodies already stored in said memory (17A); and (d) storing the received data body in the located blank area of said memory (17A). The method of claim 1, wherein at least one said data body includes a program of variable length to be executed in a processor (14A). The method of claim 1 or 2, wherein each processor (14A) executes a step of relocating data bodies already stored in said memory (17A) to other areas within said memory (17A), for providing said blank area. The method of claim 1 or 2, wherein the locating step includes determining a head address and a tail address of said data bodies already stored in said memory (17A). The method of any of claims 1 to 4, wherein said memory (17A) includes a memory map with codes for identifying data bodies which are already stored and a size of at least one blank area. The method of claim 5, wherein said identifying codes include a content code for indicating the contents of the already stored data bodies. A method of operating according to claim 1 or 2, wherein: each of the input data (12) further includes a content code indicating the contents of its data body; said method further comprises at each processor detecting content codes of input data (12) carried on the data field (11); and step (a) comprises receiving input data (12) having content codes indicative of input data (12) intended for the processor.

Inventors: KAMIYAMA AKIHIKO, KAWANO KATSUMI, MORI KINJI, KAMIYAMA, AKIHIKO, KAWANO, KATSUMI, MORI, KINJI
Applicants: HITACHI CONTROL SYST, HITACHI LTD, HITACHI CONTROLS SYSTEMS INC., HITACHI, LTD.
Application year: 1988
Main classification: G06F15
IPC codes: G06F15