In a micro processor unit, when processing to be requested to another processor unit which connects via a network, occurs during task processing in a task processing unit in an application SPU, a communication controller in a PU specifies a network with which a processor unit, which is a request destination, connects. An interface selector in the application SPU selects one network included in the specified networks, with the view of communication capability or the like, and writes that information in a look-aside buffer. In case that processing for the same processing target is requested next time and after that, a system SPU or the PU transmits the processing request depending on required communication capability.
|
7. An information processing system comprising:
a plurality of processor units connected via a network, operative to process, in parallel, a plurality of respective tasks, which originate from a program; and
a management processing unit operative to manage the plurality of processing units
wherein the management processing unit comprises:
a request processing unit operative to perform processing requests issued by the processing units and transmit data from one processor unit to another processor unit, wherein the request processing unit may make a data transmission to the other processor unit of a task among the plurality of tasks when a processing unit among the plurality of processing units makes a request for processing to the management processing unit, and
a request receptor which detects said processing requests,
wherein each of the plurality of processing units comprises:
a task processing unit for processing an allocated task,
a request controller for issuing processing requests and acquiring the result of said requests,
a local memory which stores a program configured to issue the processing request or acquire the results,
wherein said task processing unit may execute tasks while the request controller issues processing requests and waits for the results of said processing requests, and
a selector, which selects a specific network among available networks for the establishment of communication to a destination depending on communication capability required by the management processing unit; and a local memory containing a buffer that holds a network interface for a specific network among the available networks utilized by the information processing apparatus, and
wherein, when a request for processing is made by the task processing unit specifying the specific network and the destination for establishment of communication, communication is established through the network interface to the specific network, bypassing the management processing unit.
1. An information processing apparatus comprising:
a shared memory;
a processor unit, including:
a plurality of processing units operative to process, in parallel, a plurality of respective tasks, which originate from a program stored in the shared memory; and
a management processing unit operative to manage the plurality of processing units,
wherein the management processing unit comprises:
a request processing unit operative to perform processing requests issued by the processing units, and
a request receptor which detects said processing requests,
wherein each of the processing units comprises:
a task processing unit for processing an allocated task,
a request controller for issuing processing requests and acquiring the result of said requests,
a local memory which stores a program configured to issue the processing request or acquire the results,
wherein said task processing unit may execute tasks while the request controller issues processing requests and waits for the results of said processing requests, and
a selector, which selects a specific network among available networks for the establishment of communication to a destination depending on communication capability required by the management processing unit; and a local memory containing a buffer that holds a network interface for a specific network among the available networks utilized by the information processing apparatus,
wherein said local memory comprises:
a program-storing area, which stores a program for allowing the management processing unit to execute each processing request via the request processing unit and for allowing the processing units to execute each task via the task processing unit, wherein said program comprises a library which is called by one or more of said processing units in order to issue processing requests or acquire the results of said requests,
a request-storing area, which stores a processing request issued by one or more of said processing units, and
a result-storing area, which stores the results of processing performed by the management processing unit, wherein a flag indicates whether the results have been read by the request controller thereby allowing new results to be stored therein,
wherein the management processing unit is operative to establish communication with the other information processing apparatus, upon the processing request by the task processing unit, by the request processing unit connecting to the other information processing apparatus via the specific network, and
wherein, when a processing request is made by the task processing unit specifying the specific network and the destination for establishment of communication, communication is established through the network interface to the specific network, bypassing the management processing unit.
2. The information processing apparatus according to
3. The information processing apparatus according to
4. The information processing apparatus according to
the request processing unit comprises a communication controller, which specifies the available networks that are connected with the other information processing apparatus corresponding to the destination for the request for processing,
wherein the destination is specified by the task processing unit as identification information; and
the selector in the task processing unit selects the specific network, based on the required communication capability, from the available networks specified by the communication controller, and
the selector selects the destination for the establishment of communication from the request processing unit, which is capable of establishing communication via the specific network selected.
5. The information processing apparatus according to
wherein the communication controller stores into the shared memory network information, which associates the specific network and the identification information of the destination with each other, and
wherein the selector in the task processing unit acquires the specific network by the communication controller by referring to the network information based on the identification information on the destination.
6. The information processing apparatus according to
wherein the task processing unit stores the request for the establishment of communication into the shared memory, while specifying the destination of the request for processing, and
wherein the request processing unit of the destination accepts the request for establishment of communication by reading the request for the establishment of communication from the shared memory.
8. The information processing system according to
9. The information processing system according to
the selector selects one network among one or more networks that connect with the processor unit in which the selector is contained to which the data is transmitted, depending on the required transmission speed; and
the selected network for transmission is specified when the task processing unit makes a request to the request processing unit for the transmission of the data.
10. The information processing system according to
wherein data that is returned in response to the data transmission, from the other processor unit, which is a transmission destination of the data transmission requested by the task processing unit, is stored into a memory,
wherein the data that is returned in response to the data transmission is the same as data of a result of processing that is performed by the management processing unit when requested by the task processing unit within the same processor unit, and
wherein the task processing unit acquires from the memory the data that is returned in response to the data transmission.
11. The information processing system according to
|
1. Field of the Invention
The present invention relates to technology for distributing processing to a plurality of computational resources to execute a computer program.
2. Description of the Related Art
The improvements in the functionality of software including computer games, web-searching software, or the like, is imposing a large processing load on hardware. To address such circumstances, it is important to improve efficiency of task processing using a plurality of processors as well as it is necessary to speed up operational processing itself.
In order to allow a plurality of processors to execute task processing in parallel, a main processor, which is responsible for managing a plurality of sub-processors, divides an application program into tasks, allocates the tasks to respective sub-processors, switches processing, controls an access from each sub-processor to a main memory or to an input/output device, etc. When, in such a manner, a plurality of sub-processors process tasks under centralized management by the main processor, sometimes, the overhead occurs. For example, when a plurality of sub processors issue access requests simultaneously, the main processor must execute a lot of processes at a time and executions might be stacked.
In this background, a general purpose of the present invention is to provide a technology where a plurality of processors can efficiently process tasks in parallel.
According to one embodiment of the present invention, an information processing apparatus is provided. The information processing apparatus comprises a plurality of task processing units operative to process tasks, which are originated from a program, in parallel, a management processing unit operative to manage task processing performed by the plurality of task processing units and to execute processing requested from the task processing unit, the processing including the establishment of communication with another apparatus which connects to a network, a communication processing unit operative to establish communication with another apparatus which connects to a network in correspondence to the request from the task processing unit, wherein, the task processing unit comprise a selector which selects a request destination for the establishment of communication from the management processing unit and the communication processing unit, depending on required communication capability.
The establishment of communication may merely represent generating a state where apparatuses are connected via a network or may include processing to send and receive signals or data while being connected.
According to another embodiment of the present invention, an information processing system is provided. The information processing system comprising a plurality of processor units connected via a network, wherein each processor unit comprises: a plurality of task processing units operative to process tasks, which are originated from a program, in parallel; a management processing unit operative to manage task processing performed by the plurality of task processing units and to execute processing requested from the task processing unit, the processing including the transmission of data to another processor unit; and a communication processing unit operative to transmit data to another processor unit in correspondence to the request from the task processing unit, wherein, the task processing unit comprises a selector which selects a request destination for the data transmission, from the management processing unit and the communication processing unit, depending on required transmission speed.
According to yet another embodiment of the present invention, an information processing method is provided. The information processing method comprising; issuing, to a management processing unit, a request for establishing communication with another apparatus, the request occurring when processing a task in a task processing unit, acquiring information on networks connecting to an apparatus which is the communication target of the request by the management processing unit, selecting one network to establish communication by the task processing unit, based on the information on networks, and establishing communication by a third processing unit, other than the management processing unit, the third processing unit being able to establish communication via the one selected network.
Optional combination of the aforementioned constituting elements, and implementations of the invention in the form of methods, apparatuses, systems and computer programs may also be practiced as additional modes of the present invention.
The invention will now be described by reference to the preferred embodiments, This does not intend to limit the scope of the present invention, but to exemplify the invention.
The MPU 22 is an asymmetric multi processor unit and comprises one managing unit (PU) 24 and processing units (SPU) 30a and 30b, the respective elements being connected via an inner bus 36 in the MPU 22. In addition to the processing of an OS (Operating system), the PU 24 acts as intermediary between the SPU 30a or the SPU 30b, and the GPU 40, the I/O 41, the HDD 44 or other information processing apparatuses being connected via a network, when sending and receiving data or processing request, etc, as will be described later. The SPU 30a and the SPU 30b are units which mainly execute application programs.
Although the function of the OS is mainly executed by the PU 24, a part of the function may be delegated to respective SPU 30a and SPU 30b. For example, the PU 24 may interprets script-code and break it down into a plurality of tasks, where the script code have been described beforehand while assuming that processing is performed in parallel. Then each SPU 30a and SPU 30b may process a task selected from those tasks autonomously, in its idle time. In this case, the function of the OS such as allocating tasks or scheduling, which should originally be performed by the PU 24, are delegated to each SPU 30a and SPU 30b. Then, the SPU 30a and the SPU 30b load a necessary program from, for example, the main memory 42 and start processing, accordingly.
Alternatively, a quantity which indicates amount of load to be processed by the SPU 30, such as the number of tasks to be processed by the SPU 30, amount of resources to be used, or the like, may be detected in real-time by using a known technique. And when the load exceeds the predetermined threshold value, a request may be made to the PU 24 to perform a part of the processing which should be processed by the SPU 30, originally. Therefore, the specifics of the processing to request is, for example, a request for image processing directed to the GPU 40, sending and receiving data to/from the I/O 41, securing and releasing a storage area in the main memory 42, reading and writing into/from the HDD 44, network communication via a network, or the like, but not limited to these. Hereinafter, these processing is referred to as external request processing.
The processing request issued by the SPU 30 is stored into the main memory 42 and is to be performed by the PU 24 which detects the processing request. Data or a returned value acquired by the PU 24 as the result of the processing is stored into the main memory 42. When detecting the results, the SPU 30, which issued the processing request, acquires the result and thus a series of external request processing is completed.
The PU 24 includes a request processing unit 26 which actually performs the requested processing, and a request receptor 27 which detects a processing request stored in the main memory 42. The SPU 30 includes a task processing unit 32, which processes an allocated task, a request controller 33, which issues processing request and acquires the result of external request processing, and a local memory 34 which stores a program on issuance of the processing request or acquisition of the result, or a program or data which is necessary to perform the task which is read from the main memory 42.
The main memory 42 includes a program-storing area 50, a request-storing area 52 and a result-storing area 54. The program-storing area 50 stores a program for allowing the PU 24 or the SPU 30 to execute each task in the request processing unit 26 or in the task processing unit 32, respectively. The request-storing area 52 stores a processing request issued by the SPU 30. The result-storing area 54 stores the result of processing performed by the PU 24. The program to be stored in the program-storing area 50 includes a library which is called by the SPU 30 in order to issue the processing request or to acquire the results. The request controller 33 in the SPU 30 and the request receptor 27 in the PU 24 can be activated by calling the respect library.
The blocks as shown in
When an external request processing occurs in a task being performed by the SPU 30, the PU 24 performs those processing according to the request from the SPU 30 and acquires the results. The result to be acquired may be any of; image data which is created as the result of the request for image processing directed to the GPU 40, data read from the HDD 44, data acquired as the result of network communication, and in addition to these, an address in the main memory 42 to store such data, a return value indicating whether the access completes normally or abnormally, or the like.
In an application program or the like performed by the SPU 30, is included a description for calling a library which corresponds to the function of the PU 24 described above, among libraries stored in the program-storing area 50 of the main memory 42. This enables the SPU 30 to activate the function of the PU 24.
The issuance of processing request from the SPU 30 to the PU 24, and the transmission of the processing result from the PU 24 to the SPU 30, are performed asynchronously via the main memory 42. After issuing the processing request, the SPU 30 continues performing another task. This prohibits the processing in the SPU 30 from stopping due to waiting for the acceptance by the PU 24 even if a lot of external request processing occurs at a time in one or a plurality of the SPUs 30. Further, by acquiring the result at a most appropriate time in terms of efficient scheduling in the SPU 30, the frequency of switching task contexts in the SPU 30 can be limited. And the total amount of time necessary for context switching can be reduced.
Meanwhile, comparing with the case where an interrupt signal on the processing request is received from the SPU 30, the PU 24 does not have to stop the task which has been being performed or does not have to recover the task, thus, the PU 24 can perform a plurality of processes efficiently. Further, by preparing a library which allows the SPU 30 to designate the function of the PU 24 directly, in advance, a program in a main body can be simplified. In a similar manner, in functions of the PU 24 which are prepared as libraries and which can be directly designated by the SPU 30, an accesses for devices besides MPU 22, i.e., the GPU 40, the I/O 41, the main memory 42, the HDD 44 or the like may be included. This enables to develop a generalized program which does not depend of the structure on devices.
An explanation on the operation implemented by the structure described above will be given in the following.
When an external request processing occurs in the task processing unit 32, the request controller 33 in the SPU 30 issues a request in accordance with the specifics of necessary processing and the request is stored into the request-storing area 52 of the main memory 42, accordingly (S12). The request includes a pointer indicating a region in the result-storing area 54 which stores the result of the processing to request, and the ID of a function which indicates the specifics of the processing to request. After storing the request, the SPU 30 may execute another task processing.
When detecting that the request is stored in the request-storing area 52, the request receptor 27 in the PU 24 executes acceptance processing, such as reading out the request, etc (S16). This allows the request processing unit 26 to start the requested processing.
When, for example, the request processing unit 26 completes the requested processing, the request receptor 27 stores the result, such as generated data, a return value or the like, into the region indicated by the pointer included in the request, in the result-storing area 54 in the main memory 42 (S18). Then the request receptor 27 notifies the request processing unit 26 of the completion of the processing for the request (S20). The request controller 33 in the SPU 30 checks whether or not the result of the processing, of which it made the request, is stored in the result-storing area 54 (S22). If stored, the request controller 33 acquires it by, for example, reading it to the local memory 34 (S24). Whether or not the result is stored, may be checked with the request receptor 27, instead of the step S22. When receiving the notification on the completion of the processing at step S20, the request processing unit 26 in the PU 24 performs the checks of step S10 for another request, as appropriate, at a preferable time, based on the scheduling of the other task processing or the like, and the subsequent processing is repeated.
According to the procedure described above, the SPU 30 can make the PU 24 perform external request processing occurring in its task processing and can acquire the results.
If a request has been stored in the request-storing area 52 before the checking of the request at step S10, the PU 24 may accept the request instead of going to standby state. Further, if the results has not been stored in the result-storing area 54 when checking the result in step S22, the SPU 30 may go into the standby state until the result is stored. Meanwhile, the task processing unit 32 in the SPU 30 can execute other task processing.
Although, a description on the processing procedure in the SPU 30 and the PU 24, in case where one SPU 30 issues one request, is given above, a similar processing is performed in case where a plurality of SPUs 30 issue requests. That is, if one SPU 30a has issued a request and the processing corresponding to the request is being executed in the PU 24, and if another SPU 30b issues another request right after that, the subsequent request is stored into the request-storing area 52 (S30). Then, until the processing is started in response to the latter request in the PU 24 and the result thereof is stored into the request-storing area 52, the request controller 33 in the SPU 30b which issued the latter request is in the standby state while monitoring the result. Meanwhile, another task may be processed in the SPU 30b.
Further, in case where another SPU 30 issues a request, a plurality of requests are stored in the request-storing area 52, the request controller 33 in each SPU 30 which issued the request is in the standby state until the result is stored in an individual region in the result-storing area 54. Meanwhile, another task may be processed in each SPU 30.
Under such circumstances, in order to use the main memory 42 efficiently, after the result, which is stored in a certain region in the result-storing area 54, is read by the SPU 30 which made the request, it is preferable that the result of another request can be stored in that storage region. For this purpose, a flag-storing area may be further provided in the main memory 42.
As shown in the
In this case, the request issued by the SPU 30 includes an address of the flag-storing area 56 and a bit position therein. For example, assume that when a flag is “0”, it is possible to store the result of a new request and when the flag is “1”, the result which has not been read is being stored. In such a case, for a request to issue, one of the bit positions of which the flag is “0”, is specified. And when the request controller 33 in the SPU 30 is to check whether or not the result is stored, it checks whether the flag of a position, which is specified in the request, becomes “1”.
The request receptor 27 in the PU 24 stores the result, which is processed by the request processing unit 26, into a region in the result-storing area 54 which corresponds to the specified bit position and set the flag of the bit position as “1”. The request controller 33 in the SPU 30 confirms that the flag has become “1”, then acquires the results from the corresponding region in the result-storing area 54 and changes the flag to “0” again, accordingly. This enables to promptly reuse regions in the result-storing area 54, the regions having been used before, when issuing another request. Thus the regions in the main memory 42 can be saved.
Firstly, the request controller 33 in the SPU 30 issues a request while including, in the request, necessary information such as an ID that are allocated to the “HTTP GET” method in advance, a URI, or the like (S50). The request is stored in the request-storing area 52 in the main memory 42. The managing thread of the request processing unit 26 in the PU 24 checks with the request receptor 27 whether or not the request exist, when, for example, the previous request is completed (S52). When detecting a request stored in the request-storing area 52, the request receptor 27 activates the “HTTP GET” method by passing information on the request to the HTTP module in the request processing unit 26 (S54).
The HTTP module creates a call-back thread based on the information on the request (S56). When the thread is created normally, the HTTP module notifies the request receptor 27 of that (S58). When a thread is not created normally, a return value indicating an error is returned. However, an explanation on the following error processing will be omitted here. The request receptor 27 stores the notified results in the region for reading and loading a method provided in the result-storing area 54 in the main memory 42 (S60), and notifies the request managing thread in the request processing unit 26 of the completion of the startup processing for the request (S62). Meanwhile, the call-back thread in the request processing unit 26 is performing the “HTTP GET”, based on the URI specified by the request (S64).
The request controller 33 in the SPU 30 checks whether the result for the startup of the “HTTP GET” is stored in the region for reading and loading a method in the result-storing area 54 (S66) and if stored, acquires the result (S68). Meanwhile, when desired data can be acquired by the “HTTP GET” method, having been performed in the step S64, the call-back thread in the request processing unit 26 stores the data in the region for call-back in the result-storing area 54 (S70) and leaves the method (S72).
The request controller 33 in the SPU 30 checks whether or not the data which is the result of the “HTTP GET” is stored in the region for call-back in the result-storing area 54 (S74) and if stored, acquires it (S76). The above procedure enables the SPU 30 to acquire data on the desired web page and, based on the data, to continue processing the task which has requested the processing.
According to the present embodiment described above, when a necessity for external request processing occurs in the SPU, which executes the task processing, the request thereof is stored temporarily in the main memory. The PU, which executes the external request processing, reads the processing request from the main memory, when it can process a new request, and executes the processing, accordingly. This allows the processing load on the PU to be distributed even if a number of requests come at a time. Thus a task other than the processing requested by the SPU (e.g., the execution of the OS or the like) gets stacked less frequently. In a similar manner, the results of the external request processing is stored in the main memory temporarily. Therefore, after issuing the processing request and before acquiring the result of the processing, the SPU can put the task which needs the result of the processing into the standby state and can continue processing other tasks. As a result, an occurrence of overhead is restricted both in the PU and the SPU.
Further, by setting information identifying the specifics of processing which can be executed by the PU, in advance, the processing is performed in the PU by merely specifying the identification information when a processing is requested. This enables to simplify a program which is executed in the SPU. Further, programs which interpret the identification information are equally provided as a library, regardless of processing types. By this, the processing related to the processing request is abstracted. Thus, by setting a library in accordance with the circumstances, e.g., the structure of devices or the like, it becomes possible to provide a versatile application program.
Further, using the flag, it is determined whether or not data is read out from the region for storing the processing result and, in the region from which the data has been read out, the result of the subsequent processing request is stored. This allows to implement the present embodiment without securing a vast area in the main memory.
In the first embodiment, the processing unit makes the processing request to the managing unit in the information processing apparatus which comprises the single micro processor unit including the managing unit and the processing unit. When requesting processing, the processing in the request destination can be started by calling a library and by specifying a function. Further, the issuance of the processing request and the transmission of the processing results are performed asynchronously between the request source and the request destination. According to the present embodiment, also in a state where a plurality of micro processor units are connected via a network, the processing request via a network is implemented by calling a library in a similar manner. Also in this case, the issuance of the processing request and the transmission of the processing results are performed asynchronously. By this, the task processing in each micro processor unit is performed more efficiently and thus, the parallel performance is improved.
By way of an example, the information processing system 100 shown in
According to the present embodiment, a SPU 30 or the like in one PE 102a issues a processing request to another PE 102b, 102c or 102d. In the multi-core environment like the information processing system 100, generally, independent OSs manage the schedule of task processing or the like, respectively. In such a circumstance, comparing with the information processing apparatus 10 which comprises a single MPU 22 as shown in the first embodiment, it is significantly more difficult to estimate the time needed for the results of the processing request to return after the processing request is issued.
In addition, since the PE 102a and the PEs 102b, 102c and 102d transmit the processing requests or results via a network, extra transmission time is required to complete the processing request. Further, since the plurality of PEs 102a, 102b, 102c and 102d share common networks, the time required to transmit data is likely to be increased, depending on the amount of data to be transmitted. In this case, if the transmission of the processing request or the results is synchronized between the request source and the request destination, longer standby time is required, compared with the first embodiment. Further, since a transmission pathway is long, the risk of trouble is high. If a trouble occurs, another task which is being processed in the request source or the request destination, might get stacked in order to perform processing which handles an error. Therefore, in the multi-core system as shown in
By applying the asynchronous issuance of the processing request and the asynchronous transmission of the results, as shown in the first embodiment, to the information processing system 100, more significant effect can be obtained, compared with the first embodiment. The processing to request may be processing which can be executed only by the PU 24 or the SPU 30 in one of other PEs 102b, 102c or 102d, which is the request destination. Alternatively, the processing may be a processing that should be primarily processed by the SPU 30a, which is the request source, but a request for processing is made to one of other PEs 102b, 102c and PE 102d because the processing load of the SPU 30a excesses the predetermined threshold value. In the latter case, if the processing load excesses the threshold value in the SPU 30 in one of the PEs 102b, 102c and 102d, which are the request destinations, the PU 24 included in such PEs 102b, 102c and 102d issues a processing request to another PE. Thus, the distributed processing is achieved autonomously across the whole processor units included in the information processing system.
In the information processing system 100 with the network structure as described above, in case where a processing request is made from one PE 102a to one of the other PEs 102b, 102c and 102d, it is necessary to select an appropriate network. To do so, in addition to the processing performed in the first embodiment, it is necessary to acquire the type of network connecting with the processing request destination, i.e., the PE 102b, 102c or 102d and to select the appropriate network based on the specifics of processing to request or the like.
For example, when a processing request is made from the PE 102a to the PE 102c or the PE 102d, it is necessary to discriminate a network via which the request can be transmitted since it can not be transmitted via the first network 82. When a processing request is made from the PE 102a to the PE 102b, although both elements connect to the same networks of three types, by selecting an appropriate network and communicating via the network, the processing efficiency can be improved as a whole. For example, the first network 82 is selected for the processing which requires high speed and the third network 86 is selected for the processing which requires high speed to a lesser degree.
However, in a structure commonly used traditionally, when a necessity occurs in the SPU 30 in one PE 102a to communicate with another PE 102b or the like, the PU 24 in the PE 102a, to which the SPU 30 belongs to, initially accepts the communication request and establishes the communication with the communicated destination via a network selected by solving the problem associated with networks as described above. Even if applying the asynchronous processing request described in the first embodiment to such structure, processing for taking care of the networks might heavily load the PU 24, which results in considerable burden on the PU 24 and insufficient outcome. According to the present embodiment, processing on the selection of a network and the transmission is distributed to units other than the PU 24, thus, the burden on the PU 24 is decreased. Synergy between this and the asynchronous processing request, improves the processing efficiency in the entire system.
In addition to the task processing unit 32 and the request controller 33, the application SPU 230a includes a interface selector 101 which executes processing associated with the selection of a network when issuing the processing request via the network. Furthermore, the local memory 34 in the application SPU 230a includes, in addition to the region for loading a program or storing necessary data (not shown) as with the first embodiment, an object-ID-look-aside buffer (hereinafter, simply referred to as a “look-aside buffer”) 104 which retains a network interface, selected before, for respective processing to request. The detailed description on the function of the interface selector 101 and the look-aside buffer 104 will be given later.
Although the application SPU 230b may have a similar structure as the application SPU 230a, the structure of the application SPU 230b is not shown in the
The system SPU 231 which is newly provided in the present embodiment includes the task processing unit 32 in a similar manner as with the application SPU 230a. Furthermore, the task processing unit 32 includes a first network communicator 112 as shown in
The numbers of application SPUs 230a, application SPUs 230b and system SPUs 231 are not limited to those shown in
In addition, the PU 24 according to the present embodiment includes the request receptor 27 and the request processing unit 26 as with the first embodiment, however, the request processing unit 26 includes a communication controller 116, a first network communicator 118, a second network communicator 120 and a third network communicator 122. Any of the first network communicator 118, the second network communicator 120 and the third network communicator 122 functions as a network interface when the application SPU 230 makes a request for processing to an external PE. The first network communicator 118 performs transmission via the first network 82, the second network communicator 120 performs transmission via the second network 84 and the third network communicator 122 performs transmission via the third network 86.
The communication controller 116 specifies the node in the PE of the destination for each processing request, specifies a network to which the request destination connects, etc, and controls the transmission processing by sorting out the processing requests to the first network communicator 118, the second network communicator 120 and the third network communicator 122. In the present embodiment, by enabling to skip the processing on networks as much as possible in the PU 24, the load of processing in the PU 24 is reduced. Other than these, the request processing unit 26 in the PU 24 includes the task processing unit 114 which executes the external request processing sent by the application SPU 230a to the PU 24, in the similar manner as described in the first embodiment.
The system SPU 231 according to the present embodiment performs processing which is simpler than the processing on networks which is described above and performed by the PU 24. That is, only the processing request of which destination node is specified beforehand and which is found to be suitable for being transmitted via a particular network, which is the first network 82 in the example of
The interface selector 101 in the application SPU 230a selects a network among networks connecting to the PE to which the processing request is made and which are specified by the communication controller 116 in the PU 24, based on required communication speed. Further, in case where a plurality of network interfaces exist which can perform communication with the network, the interface selector 101 selects a network interface based on whether or not real-time communication is required.
In the example of
Information on the selected network interface is stored in the look-aside buffer 104 in the local memory 34. This allows the PU 24 to skip processing such as specifying the node of the PE which is the request destination or specifying the network which is connected with the request destination and allows the interface selector 101 to skip processing such as the selection of a network and a network interface, etc, when a processing request for the same processing target is to be executed next time. Further, in case where the first network communicator 112 in the system SPU 231 is selected as a network interface, the PU 24 does not have to perform the transmission processing itself. This reduces the processing load burdened on the PU 24 and furthermore, enables to select real time communication or non-real-time communication, based on the specifics of the processing request.
When the application SPU 230a issues the processing request to an external PE, information, which identifies the processing target to request on software, is specified and a library is called. The “processing target” here may be any units made by dividing a target of processing on software in accordance with some sort of rule and may be, what is called, an “object”. The “processing target” corresponds to some sort of unit of hardware, for example, a memory which stores program code to execute the processing, a device to be processed, or the like. Then the application SPU 230a implements the processing on the “processing target” by making a processing request to the PE which includes the corresponding hardware. Hereinafter, the information which identifies the processing target is referred to as an “object ID”.
The PU 24 which accepts the request for the transmission of the processing request using the library, refers to the routing table stored in the routing-table-storing area 108 and specifies the node number of a PE, which is the request destination and which corresponds to the object ID, and a network which is connected to the destination. Further the PU 24 associates the specified node number of the request destination and the object ID with each other and stores into the object-ID-cache-storing area 106 as an object ID cache. For the object ID entered in the object ID cache, since the node number and the network being connected has been already specified, the specification processing of the information can be skipped henceforth.
The routing table 130 may be stored into, for example, an external storage or the like in advance and read out into the main memory 42. Alternatively, the routing table 130 may be restructured by reading the inner setting of respective PEs 102b, 102c and 102d when, for example, the information processing system 100 is started.
As described above, when the communication controller 116 in the PU 24 transfers the processing request from the application SPU 230a, the communication controller 116 refers to the routing table 130 and acquires information on a network being connected to the PE which is the request destination. The node number of the request destination required in this process is acquired using existing techniques based on the object ID specified by the application SPU 230a which is the request source. For example, inquiries are made to another PE which manages the correspondence between the object IDs and the node numbers, the correspondence is listed and a search is performed, transmission to another PE is performed actually and when the request arrives, via transfer through the PE, at the PE which corresponds to the targeted object ID, information on the node is received from the PE etc. Alternatively, these technologies may be combined depending on the distance to the request destination, or the like.
A multi-stage processing on networks, such as the specification of the node of the request destination using the object ID, the specification of the network which connects to the request destination, the selection of network and network interface and the transmission of the processing request as described above, is provided as the same library. This allows individual network to be abstracted in the side of an application program processed in the application SPU 230a and allows the library to perform an appropriate routing automatically. The application SPU 230a can perform the processing request by merely setting an object ID and calling a library without considering the position where the PE exists, the PE being the request destination, in the network when processing task of an application.
In case the object ID is not entered in the look-aside buffer 104 (N in S112), the request controller 33 checks whether or not the object ID is entered in the object ID cache 140 stored in the main memory 42 (S114). In case the object ID is not entered (N in S114), i.e., in case where the processing request for the same object ID has not made in the past or in case where the object ID had not been referred to for a long period and was overwritten, the request controller 33 issues the transmission request for the processing request to the PU 24, while specifying the object ID (S120). This processing is performed asynchronously as with the first embodiment. By this, the transmission request is stored in the request-storing area 52.
At this point, information, identifying that the transmission request is directed for the PU 24, may be included in the transmission request. Alternatively, the transmission request may be stored in the region provided for the exclusive use of the PU 24 in the request-storing area 52, so that the PU 24 can detect the request.
When the request receptor 27 in the PU 24 detects that the transmission request is stored in the request-storing area 52, firstly, the communication controller 116 in the request processing unit 26 in the PU 24 acquires the node number of the PE 102b to which the processing request is directed, based on the object ID, using commonly-used method (S122). Then the communication controller 116 records the object ID and the node number thus acquired, associated with each other, in the object ID cache stored in the object-ID-cache-storing area 106 in the main memory 42 (S124).
Next, the communication controller 116 in the PU 24 refers to the routing table 130 in the routing-table-storing area 108, acquires information on the network connecting to the PE 102b to which the processing request is directed and the local node ID thereof (S126) and transmits the processing request (S132). In case where the processing request is transmitted in order to acquire the node number of the PE 102b also in the step S120, only the update of the object ID cache may be performed in the step S122. Through this process, the object ID of the processing request are entered with the node number in the object ID cache 140.
Hereinafter, In performing the processing request for the same object ID, the object ID has been entered in the object ID cache 140 (Y in 114). In this case, the interface selector 101 in the application SPU 230a which makes the processing request refers to the object ID cache 140 and the routing table 130, acquires information on the network connecting to the PE 102b, which is the processing-request destination, and selects an appropriate network and a network interface for transmitting the processing request, based on the transmission speed or the like (S116). Then the interface selector 101 writes the correspondence between the object ID and the selected network interface into the look-aside buffer 104 (S118).
Subsequently, the request controller 33 issues the transmission request to the block which the selected network interface belongs to (S130) as with the case where the object ID has been entered in the look-aside buffer 104 from the beginning (Y in S112). In the example shown in
In detecting that the transmission request is stored in the request-storing area 52, the system SPU 231 or the PU 24 performs the transmission request (S132). In this process, the processing request transferred by the system SPU 231 arrives at the system SPU 231 in the PE 102b which is the request destination. The processing request transferred by the PU 24 arrives at the PU 24 in the PE 102b, which is the request destination. By this, the PU 24 in the PE 102b does not have to perform receiving processing for the processing request transmitted by the system SPU 231.
The processing request arriving at the PE 102b which is the request destination, is executed in the application SPU 230a or the like in the PE 102b and the result is returned via the same network if necessary (S134). In this process, the result of the processing request transmitted by the system SPU 231 is returned from the system SPU 231 in the PE 102b which is the request destination to the system SPU 231 in the PE 102a which is the request source. This enables to complete the processing request and the acquisition of the processing results for that processing request, without the involvement of the PU 24.
Since the detailed processing procedure for the issuance and the acceptance of the request, for example the procedure whereby the system SPU 231 or the application SPU 230a goes into standby state while monitoring the request or the result of the processing, is similar to that of the first embodiment, it is omitted in
Firstly, when an external request processing occurs during a task processing, the application SPU 230a of the request source performs the initialization processing such as determining a region to use in the result-storing area 54 in the main memory 42 by checking the flag, etc. as described in the first embodiment (S140). Next, the application SPU 230a issues a request according to the specifics of necessary processing and stores the request in the request-storing area 52, accordingly (S142).
The request includes a pointer indicating the region in the result-storing area 54 which stores the result of processing, an ID which indicates the specifics of the processing to request and an object ID. The specifics of the processing may be discriminated by differentiating functions themselves which are called. If the request is, for example data processing in the processing-request destination, or the like, and it is necessary to transmit the data to the request destination, the data may be stored in sequence into a data storing region (not shown) provided besides the request-storing area 52 in the main memory 42. In this case, the request includes the address of the region where the data to be transmitted is stored, the size of the data, or the like.
When detecting that the request is stored in the request-storing area 52, the system SPU 231 in the PE 102a starts processing for transmitting the request (S144) and transmits the request to the PE 102b which is the request destination (S146). In case the data to be transmitted to the processing-request destination is stored in the data storing region in the main memory 42, the data is also transmitted using RDMA, or the like.
If the result of the processing is transmitted from the PE 102b which is the request destination (S148), for example when the processing-request destination completes the requested processing, the system SPU 231 in the PE 102a which made the request stores the result in the result-storing area 54 in the main memory 42 (S150). At the same time, the flag in the flag-storing area 56 explained in the first embodiment is updated so that the application SPU 230a can recognize that the result is stored (S152). Upon learning that the flag in the flag-storing area 56 is updated, the application SPU 230a acquires the processing result from the region corresponding to the flag, in the result-storing area 54 (S154). The operation described above enables to make the processing request to another PE 102b connected via network and to acquire the result thereof.
Also in this case, the issuance and the transmission of the request, and the transmission and the acquisition of the result are performed asynchronously in the application SPU 230a which issued the request and the system SPU 231 which transfers the request, as with the first embodiment. Therefore, the application SPU 230a or the system SPU 231 can process another task while another unit is performing the processing on the request. This enables effective scheduling. Further, in case that an request is issued to the request destination to which the request has been issued once, the selection of network is completed in the application SPU 230a and the transmission processing is performed by the system SPU 231 according to the specifics of the processing to request. Thus the number of pieces of processes, which should be performed by the PU 24, is reduced significantly. As a result, the PU 24 can process an OS or the like more efficiently.
The processing of the present embodiment can be performed in parallel with the processing request closed in a single MPU 22, which is described in the first embodiment.
The order of the issuance of the request or the order of storing the results shown in
When a processing, which should be delegated to an external element via a network, occurs during task processing, the application SPU 230a, which is the processing-request source, performs initialization processing, such as, determining a region to be used in the result-storing area 54 in the main memory 42, etc. in a similar manner as with
Meanwhile, when processing, which should be delegated to another application SPU 230b in the PE 102a, occurs in the application SPU 230a which is the processing-request source, the application SPU 230a determines a region to use other than the region which is used in the previously-issued request via a network and performs initialization processing (S166). Then the application SPU 230a stores the request in the request-storing area 52 (S168). The location for storing the request is different from the location for the previously-issued request, as a matter of course. When detecting that the request is stored in the request-storing area 52, the application SPU 230b which is the processing-request destination, starts processing according to the schedule of the application SPU 230b, by, for example, loading a program for implementing functions specified in the request from the main memory 42 (S172).
The application SPU 230b, which is the request destination, stores the result in the region in the result-storing area 54 specified by the request, when, for example the requested processing completes (S174). And at the same time the application SPU 230b updates the corresponding flag in the flag-storing area 56 (S176). When detecting the update of the flag in the flag-storing area 56, the application SPU 230a, which is the request source, acquires the processing result from the corresponding region in the result-storing area 54 (S178).
Meanwhile, when the result of the processing is transmitted from the PE 102b, to which the request is transmitted via a network (S171), the system SPU 231 in the PE 102a, which is the request source, stores the result into the region specified by the request in the result-storing area 54 (S180). At the same time, the corresponding flag in the flag-storing area 56 is updated (S182). When detecting the update of the flag in the flag-storing area 56, the application SPU 230a, which is the request source, acquires the processing result from the corresponding region in the result-storing area 54 (S184).
When performing the processing request which is closed in the PE 102a, only the procedure itself shown in the first embodiment have to be performed. And it is not necessary to call a library which performs processing on object IDs or the selection of networks. This enables to cut-down the processing time without performing extra processing.
By the procedure described above, regardless of whether the processing request is performed via a network or the processing request is performed inside the MPU 22, the application SPU 230a issues a request if necessary, and after the issuance, the application SPU 230a can process another task. Then, the result can be acquired at a time point that enables efficient scheduling. Also in the system SPU 231, which transmits the request, or in the application SPU 230a in the PE 102b which is the request destination, the request can be acquired at a convenient time to improve efficiency. Further, the PU 24 in the PE 102a, which is a request source, does not even have to perform the transmission processing itself in some cases.
Since the system SPU 231, which transmits the request, and the application SPU 230b, to which the local processing request is made, update the flag-storing area 56 when storing the result, the same bit sequence in the flag-storing area 56 may be shared. This allows the application SPU 230a, which is the processing-request source, to recognize the storing of the result without distinguishing whether it is the result obtained via the network or the result obtained in the same PE 102a. In consequence, it is restricted that a higher priority is given to the acquisition of one result, than the other results or the other tasks, despite the intention. This enables to implement parallel processing in higher performance across the whole information processing system 100.
The procedural steps, that are performed after recognizing the flag in the flag-storing area 56 till acquiring the result, is set in the library. This allows to select a desired embodiment, for example, acquiring two results at the same, the results being stored in the result-storing area 54, or acquiring the results in stored order, etc.
According to the present embodiment, when the external request processing occurs, the issuance and the acceptance of the processing request are performed asynchronously by providing the request-storing area in the main memory. In addition the transmission and the acquisition of the processing result are performed asynchronously by providing the result-storing area in the main memory. This allows the processing request to be performed at the preferable timing for minimizing the context switches according to the schedule in the application SPU, which is the processing-request source, the application SPU in the PE, which is the request destination, the PU or the system SPU which transmits the request, or the like. Thus the overhead across the whole system can be reduced. Further, by calling a library which is prepared in advance, the processing-request source can specify the specifics of the processing to request in an abstracted form. Thus the application program, which is the request source, can be simplified and the generalized program, which does not depend on device structures, can be created. In the similar manner, the present embodiment can be implemented without depending on the management form of the task processing which respective PEs perform inside.
Also for the processing request via network, the most preferable network and network interface are selected by the library. This enables the most preferable processing via network with a small number of procedures even if the structure of the network interface is changed. In a commonly-used system, a PU manages the network communication concentrically. Therefore, when data is transmitted via a network, the initiation of the transmission is likely to delay due to, for example, waiting for the processing turn in the PU, etc. On the other hand, according to the present embodiment, for the request destination, to which once the processing request was issued, the processing on the selection of the network can be skipped at the next issuance of the processing request, by memorizing the most preferable network interface in the local memory in the application SPU, which is the request source. Thus the processing request can be transmitted in shorter time.
Further by providing a system SPU which is partly responsible for the transmission processing, the network interface, to which the transmission request is made, can be selected from the system SPU or the PU, according to the specifics of the processing requested by the application SPU, etc. For example in case where the processing is desired to be performed in a high speed, by allowing the system SPU to transmit the processing request without the involvement of the PU, the real time communication is made possible without the occurrence of waiting time for processing in the PU. As a result, non-real-time communication via the PU and the real-time communication without the PU can coexist. Thus the flexible communication structure, which utilizes the network characteristics, can be implemented. Furthermore, the transmission processing performed by the PU can be reduced, thus the processing load on the PU is further reduced.
By providing the system SPU as an intermediate element of the PU and the application SPU, the processing load on the PU can be reduced, as well as library code to be read out in the application SPU is restricted from increasing. Thus, a negative impact, which accompanies with the processing distribution, on the application SPU can be minimized.
In addition, parameters on a low level device layer, for example, the position of the PE, which is the request destination, in the information processing system, a network which performs communication, or the like, are managed at a user level, using the object ID which does not depend on the position. This enables to skip the processing for changing layers from an application layer to a device layer, the processing being required when performing network communication, as well as to describe the processing on the network in the application program, which is the request source, without depending on the position. Therefore, at the developing stage of the application program, the processing via network can be implemented only with the description on the object ID and the library without considering the structure of the system which performs the program. Therefore, the program, which is able to perform versatile distributed processing, can be created easily.
Furthermore, in the application SPU or the like, by issuing the processing request when the processing load excesses the threshold value, concentration of loads on a certain application SPU is averted. In a similar manner, by issuing the processing request in the PE, which is the processing-request destination, the distributed processing is achieved autonomously across the whole processor units included in the information processing system, which allows parallel processing with higher performance. In the application program, since the specification of the processing-request destination is managed only by the object ID, it is possible to change the actual request destination which corresponds to one object ID in the library which is called. This enables, for example, to select a processor unit with less load as the request destination automatically, without detailed setting in the application program.
For the processing request via a network and for the processing request to another SPU in a single PE, the same mechanism can be used, thus a single apparatus comprising a single MPU can be easily developed into an information processing system comprising a multi-core structure. Furthermore, by providing, for example, the flag-storing area as a common architecture, the result can be received at the similar priority rate regardless of whether or not it is performed via a network. This enables parallel processing with high performance, which does not depend on the position.
Given above is an explanation based on the exemplary embodiments. These embodiments are intended to be illustrative only and it will be obvious to those skilled in the art that various modifications to constituting elements and processes could be developed and that such modifications are also within the scope of the present invention.
For example, the object ID cache illustrated in the second embodiment may be set dynamically by the PU which executes the library. For example, in case where the processing load is increased in a certain PE, which is the request destination, it may be changed so as to set a plurality of nodes in correspondence with one object ID. In the SPU, which is the request source, requests are managed only with object IDs, and the object IDs do not depend on the positions. Therefore, even with such a change in the settings, the processing request is performed in a similar fashion. This enables to avert the concentration of processing load and to achieve more efficient processing.
On the other hand, the position information, such as a node number or the like, may be included in the object ID. In this case, by using a routing table or the like, processing for acquiring the number of a node, which is the request destination, can be skipped. This embodiment is effective in an environment, which does not involve the change of nodes, for example the reconstruction of PEs in the information processing system 100. A similar effect as described in the present embodiment can be achieved with a lower cost.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
7689694, | Jun 15 2004 | SONY NETWORK ENTERTAINMENT PLATFORM INC ; Sony Computer Entertainment Inc | Process management apparatus, computer systems, distributed processing method, and computer program for avoiding overhead in a process management device |
7907515, | Mar 30 2006 | Canon Kabushiki Kaisha | Network interface switching in multi-interface apparatus |
8195737, | Jun 15 2004 | SONY NETWORK ENTERTAINMENT PLATFORM INC ; Sony Computer Entertainment Inc | Process management apparatus, computer systems, distributed processing method, and computer program |
20040174853, | |||
20050091357, | |||
JP2001209625, | |||
JP2004272563, | |||
JP2005130474, | |||
JP530139, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 24 2008 | Sony Corporation | (assignment on the face of the patent) | / | |||
Apr 24 2008 | Sony Computer Entertainment Inc. | (assignment on the face of the patent) | / | |||
May 21 2008 | MURATA, SEIJI | Sony Computer Entertainment Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021014 | /0976 | |
Apr 01 2010 | Sony Computer Entertainment Inc | SONY NETWORK ENTERTAINMENT PLATFORM INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 027448 | /0895 | |
Apr 01 2010 | SONY NETWORK ENTERTAINMENT PLATFORM INC | Sony Computer Entertainment Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027449 | /0469 | |
Dec 09 2014 | Sony Computer Entertainment Inc | Sony Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034548 | /0408 | |
Apr 01 2016 | Sony Computer Entertainment Inc | SONY INTERACTIVE ENTERTAINMENT INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 043761 | /0577 | |
Aug 25 2017 | Sony Corporation | SONY INTERACTIVE ENTERTAINMENT INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 043761 | /0975 |
Date | Maintenance Fee Events |
Oct 04 2018 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 21 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 21 2018 | 4 years fee payment window open |
Oct 21 2018 | 6 months grace period start (w surcharge) |
Apr 21 2019 | patent expiry (for year 4) |
Apr 21 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 21 2022 | 8 years fee payment window open |
Oct 21 2022 | 6 months grace period start (w surcharge) |
Apr 21 2023 | patent expiry (for year 8) |
Apr 21 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 21 2026 | 12 years fee payment window open |
Oct 21 2026 | 6 months grace period start (w surcharge) |
Apr 21 2027 | patent expiry (for year 12) |
Apr 21 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |