WO2005013129A1 - Information processing device, instruction processing control device, instruction processing control method, instruction processing control program, and computer readable recording medium containing the instruction processing control program - Google Patents
Information processing device, instruction processing control device, instruction processing control method, instruction processing control program, and computer readable recording medium containing the instruction processing control program Download PDFInfo
- Publication number
- WO2005013129A1 WO2005013129A1 PCT/JP2003/009635 JP0309635W WO2005013129A1 WO 2005013129 A1 WO2005013129 A1 WO 2005013129A1 JP 0309635 W JP0309635 W JP 0309635W WO 2005013129 A1 WO2005013129 A1 WO 2005013129A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- priority
- instruction
- request
- unit
- information processing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 267
- 230000010365 information processing Effects 0.000 title claims abstract description 111
- 238000012545 processing Methods 0.000 title claims description 132
- 230000008569 process Effects 0.000 claims abstract description 238
- 238000004364 calculation method Methods 0.000 claims abstract description 138
- 230000015654 memory Effects 0.000 claims description 96
- 230000004044 response Effects 0.000 claims description 53
- 230000008859 change Effects 0.000 claims description 42
- 238000012544 monitoring process Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 20
- 238000005070 sampling Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Definitions
- the present invention relates to an information processing device, an instruction processing control device, an instruction processing control method, an instruction processing control program, and a computer-readable recording medium storing the instruction processing control program.
- the present invention relates to a technique for realizing an improvement in throughput by controlling an instruction output to a decoder in an information processing apparatus that executes two or more processes in parallel.
- FIG. 12 is a block diagram showing a functional configuration of an information processing device adopting a general multi-thread method.
- the information processing device shown in FIG. 12 includes an instruction address generator 1, a primary instruction cache memory 2, It is composed of an instruction buffer 3, a selector 4, a decoder 5, an arithmetic unit 6, a register 7, a primary data cache memory 8, a secondary cache memory 9, and a buffer 10. It is configured to execute a plurality of instructions based on the obtained plurality of processes in parallel.
- the processing refers to a program or an instruction flow generated from a certain program (one or more instructions corresponding to the processing flow of instruction fetch and decode).
- This information processing device is communicably connected to an external memory (main storage unit) 11 via a network or the like.
- the instruction address generation unit 1 generates an address on the instruction area of the external memory 11 in which an instruction word group of an instruction resulting from the generated processing is stored, and the address generation is independent for each processing. To be done.
- Primary instruction cache memory 2 is a copy of part of the instruction area on external memory 1 1. And outputs an instruction corresponding to the instruction address generated by the instruction address generation unit 1 from the copy to the instruction buffer 3 at the subsequent stage.
- the primary data cache memory 8 A part of the data area on the external memory 11 is stored, and data required for the operation in the operation unit 6 is output in response to a request from the operation unit 6.
- the secondary cache memory 9 stores a copy of the instruction area and a part of the data area on the external memory 11, and an instruction corresponding to the instruction address generated by the address generation unit 1 is a primary instruction. If the data does not exist in the cache memory 2 or the data required for the operation in the operation unit 6 does not exist in the primary data cache memory 8, the secondary cache memory 9 is searched.
- the instruction buffer 3 temporarily stores instruction words fetched from the primary instruction cache memory 2, the secondary cache memory 9, or the external memory 11 by the instruction address generation unit 1, and in accordance with an instruction from the selector 4, An instruction is issued to the decoder 5.
- the instruction buffer 3 is configured to temporarily store eight instructions (instruction word groups). To maximize the benefits of the multi-thread system, the instruction buffer 3 is used for multiple processing. Fetching of these instructions is performed independently of each other.
- the selector 4 functions to control the operation of issuing instructions from the instruction buffer 3 to the decoder 5, and selects at least one of the instructions stored in the instruction buffer 3 and outputs the selected instruction to the decoder 5. It is. In the device shown in FIG. 12, since four decoders 5 are provided, the selector 4 is configured to issue a maximum of four instructions to the decoder 5 at the same time. In addition, the selector 4 is used to maximize the advantages of the multi-thread method. Normally, when a plurality of instructions are stored in the instruction buffer 3, regardless of which processing is based on the plurality of instructions, In other words, as many instructions as possible, that is, the maximum number of instructions that can be issued simultaneously (four instructions in the device shown in Fig. 12) are selected and issued without specifying the processing.
- the decoder 5 is provided with four of D1, D2, D3 and D4. These decoders Dl, D2, D3 and D4 are issued simultaneously from the instruction buffer 3.
- the decoder 5 receives each instruction and decodes it in parallel.
- Each decoder 5 has a format that allows the operation unit (instruction processing unit) 6 to actually recognize the contents of the instruction from the received instruction.
- the operation resources of the opcode and the operand are secured.
- the arithmetic unit 6 is configured to include a plurality of arithmetic units in order to process a plurality of instructions in parallel.
- the arithmetic unit 6 sequentially executes arithmetic processing based on the instructions decoded by the decoder 5, and outputs a result of the arithmetic processing to a subsequent stage.
- the buffer 10 functions as an interface to the external memory 11.
- the instruction words related to the instruction for the generated processing are not stored in either the primary instruction cache memory 2 or the secondary cache memory 9 and cannot be fetched from these cache memories.
- an instruction cache miss When a miss occurs in the cache memory 2 or the secondary cache memory 9 (hereinafter, referred to as an instruction cache miss), or when the arithmetic unit 6 executes an instruction, the data used for the instruction is 1
- the external memory 11 is referred to via the buffer 10.
- the instruction group and data is fetched in the primary instruction cache memory 2, the primary data key Yasshu memory 8, 2 Tsugiki Yasshumemori 9 via the buffer 1 0.
- An information processing device that employs the multi-thread method processes a plurality of processes in parallel, but the unit of the execution environment that executes one process is called a workload.
- the workload is the usage status of each function of the information processing device (eg, instruction buffer, cache memory, selector, decoder, arithmetic unit, register, knocker, etc.) used when a certain process is executed.
- each function used by multiple processes is shared between workloads.
- a plurality of instructions based on a plurality of processes are decoded in parallel and executed in parallel.
- Resources that is, multiple computing units
- cache misses when no distinction is made between instruction cache misses and data cache misses
- results in the free time of computational resources data from external memory 11
- the instruction execution in the operation unit 6 is stopped due to the long latency, and no processing is performed using the operation resources of the operation unit 6), or the instruction is re-fetched when the branch prediction fails.
- the idle time of the computational resources generated by this is reduced.
- the total time for performing a plurality of processes is reduced, and the throughput can be improved.
- the user of the information processing apparatus may preferentially execute a specific process while executing a plurality of processes in parallel. Even if desired, the workload characteristics of each process cannot be manipulated, so specific processes cannot be prioritized and the user's will cannot be reflected.
- the present invention has been made in view of such a situation.
- the present invention provides an information processing apparatus that can effectively use arithmetic resources according to an actual instruction execution situation.
- the purpose is to achieve a significant improvement in throughput by more reliably reducing the idle time of computational resources.
- Patent Document 1
- an information processing device of the present invention is an information processing device that executes two or more processes in parallel, and executes an instruction address for executing the two or more processes.
- An instruction address generation unit that is generated each time, and temporarily stores a copy of a part of the instruction area on the main memory, and from the copy, the instruction address generation unit
- An instruction cache memory for outputting an instruction corresponding to the generated instruction address; an instruction buffer for holding a plurality of instructions output from the instruction cache memory; and at least one of the instructions held in the instruction buffer
- a selector for selecting and outputting an instruction, a decoder for decoding an instruction from the selector, an operation unit for executing an operation in accordance with a result of decoding by the decoder, and a temporary copy of a part of the data area on the main memory.
- Data cache memory for storing data necessary for the operation in the operation unit in response to a request from the operation unit, and reducing the free time of operation resources in the operation unit
- a priority calculation unit that calculates / changes the priority of each process so as to perform the processing, and refers to the priority of each process calculated / changed by the priority calculation unit.
- a control unit for controlling the operation of the selector so as to preferentially select an instruction for the most recent process and output the selected instruction to the decoder.
- the information processing apparatus further includes a request management unit that manages information related to a request transmitted from the information processing apparatus to the outside in accordance with the execution of the two or more processes for each of the processes. It is preferable that the priority of each process is calculated / changed based on the information on the request managed by the management unit.
- the priority calculation unit is controlled by the request management unit and waits for a response from the outside. It is preferable to calculate / change the priority of the process that is the source of the request according to the number of requests in the request.
- the priority calculation unit changes the priority of the process that is the source of the request to be lower than the current level.
- the priority calculation unit upon receiving a response to the request transmitted along with the execution of any one of the two or more processes, performs a history of the request managed by the request management unit. It is preferable to calculate / change the priority of the process that is the source of the request according to the request.
- the request is managed by the request management unit, If the request is the oldest of all the requests waiting for the response, it is preferable that the priority calculation unit changes the priority of the process that is the source of the request to be higher than the current level. .
- the priority calculation unit determines the type of the request managed by the request management unit. It is preferable to calculate / change the priority of the process that is the source of the request according to the request.
- the priority calculation unit sets the priority of the process that is the source of the request to be lower than the current level. It is preferable to change it to be higher.
- the priority calculation unit determines, based on the type of the request managed by the request management unit, the process of the transmission source of the request. It is preferable to calculate / change the priority.
- the priority calculation unit lowers the priority of the process that is the source of the request from the current level. It is preferable to change as follows.
- the arithmetic unit further includes a sampling unit for sampling the usage status of the computation resources for each of the processes, wherein the priority calculation unit determines each of the processing resources according to the usage status of the computation resources sampled by the sampling unit. It is preferable to calculate / change the processing priority.
- the priority calculation unit may It is preferable to change the priority so as to be lower than the current state.
- a request management unit that manages information related to a request transmitted from the information processing apparatus to the outside in accordance with the execution of the two or more processes for each of the processes;
- a collecting unit that collects information on each of the requests managed by the request managing unit; and a use status of the computation resources collected by the collecting unit. And depending on It is preferable to calculate / change the priority of each process.
- the priority calculation unit is waiting for a response from the outside, which is managed by the request management unit.
- the priority of the process that is the source of the request is calculated and changed according to the number of requests and the usage status of the processing resource collected by the collection unit for the process that is the source of the request. Is preferred.
- the priority calculation unit changes the priority of the process that is the transmission source of the request so as to be lower than the current level. Further, when the number of the requests exceeds a predetermined value, it is preferable that the priority calculation unit changes the priority of the process that is the source of the request to be lower than the current level.
- the reference value (the initial value of the priority) may be set according to the characteristics of the workload as one or more execution environments used when executing the two or more processes in the information processing device, or according to a user's request.
- the execution status of a workload as one or more execution environments used when executing the two or more processes in the information processing device, and a reference value (an initial value of the priority) according to the execution status.
- an instruction processing control device includes an instruction address generation unit, an instruction cache memory, an instruction buffer, a selector, a decoder, a calculation unit, and a data cache memory.
- An information processing apparatus for executing processing in parallel comprising: an instruction processing control apparatus for controlling an execution state of each instruction for the two or more processings, wherein the idle time of operation resources in the operation unit is reduced. Calculate the priority of each process.Refer to the priority calculation unit that changes Z and the priority of each process calculated and changed by the priority calculation unit, and give priority to the instruction for the process with the higher priority. And a control unit for controlling the operation of the selector so as to select and output the data to the decoder.
- an instruction processing control method in an information processing apparatus that executes two or more processes described above in parallel, executes an execution state of each instruction for the two or more processes.
- An instruction processing control method for controlling wherein a priority of each processing is calculated so as to reduce an idle time of a processing resource in the processing unit; a priority calculating step of changing Z; and a calculation / change in the priority calculating step And controlling the operation of the selector so as to preferentially select an instruction for the high-priority processing and output the instruction to the decoder with reference to the priority of each processing performed.
- an instruction processing control program in an information processing apparatus that executes two or more processes in parallel, controls an execution state of each instruction for the two or more processes.
- An instruction processing control program for causing a computer to execute a function to perform, the priority calculating unit calculating / changing the priority of each processing so as to reduce the idle time of the processing resources in the processing unit; and
- the operation of the selector is controlled so as to refer to the priority of each processing calculated / changed by the degree calculation unit and to preferentially select an instruction for the processing with the higher priority and output the instruction to the decoder.
- the computer is caused to function as a control unit.
- an information processing apparatus that executes the above-described two or more processes in parallel.
- An instruction processing control program for causing a computer to execute the function of controlling the execution state of each instruction for the A computer-readable recording medium, wherein the instruction processing control program calculates and changes the priority of each processing so as to reduce the idle time of the processing resources in the processing section;
- the operation of the selector is controlled by referring to the priority of each process whose Z has been changed by the priority calculation unit and preferentially selecting an instruction for the process with the higher priority and outputting it to the decoder. It is characterized in that the computer functions as a control unit.
- FIG. 1 is a block diagram illustrating a functional configuration of the information processing apparatus according to the first embodiment of the present invention.
- FIG. 2 is a diagram showing a request management table in the information processing apparatus according to the first embodiment of the present invention.
- FIG. 3 is a diagram showing a priority storage table in the information processing apparatus according to the first embodiment of the present invention.
- FIG. 4 is a flowchart for explaining a procedure of calculating a priority variable at a first timing in the priority calculation unit of the information processing apparatus according to the first embodiment of the present invention.
- FIG. 5 is a flowchart for explaining a procedure of calculating a priority variable at a second timing in the priority calculation unit of the information processing apparatus according to the first embodiment of the present invention.
- FIG. 6 is a flowchart for explaining a procedure of calculating a priority variable at a third timing in the priority calculation unit of the information processing apparatus according to the first embodiment of the present invention.
- FIG. 7 is a flowchart illustrating a procedure of calculating a priority variable at a fourth timing in the priority calculation unit of the information processing apparatus according to the first embodiment of the present invention.
- FIG. 8 is a flowchart for explaining the procedure of the instruction control method of the information processing apparatus according to the first embodiment of the present invention.
- FIG. 9 is a block diagram showing a functional configuration of the information processing apparatus according to the second embodiment of the present invention.
- FIG. 10 is a block diagram showing a functional configuration of an information processing apparatus according to the third embodiment of the present invention.
- FIG. 11 is a diagram showing a table in the information processing device according to the third embodiment of the present invention.
- FIG. 12 is a block diagram showing a functional configuration of an information processing apparatus employing a general multi-thread method.
- FIG. 1 is a block diagram showing a functional configuration of the information processing apparatus according to the first embodiment.
- the information processing apparatus according to the first embodiment of the present invention has the same configuration as that shown in FIG.
- An instruction address generator 1 a primary instruction cache memory 2, an instruction buffer 3, a selector 4, a decoder 5, an arithmetic unit 6, an arithmetic unit 6, registers 7, 1 similar to an information processing device employing a general multi-thread system.
- a secondary data cache memory 8 and a secondary cache memory 9 are provided, and a request management unit 12, a priority calculation unit 13, a control unit 14, and a sampling unit 15 are further provided.
- the request management unit 12 functions as an interface to the external memory 11.
- the request management unit 12 refers to the external memory 11 via the request management unit 12, Data is fetched.
- the request management unit 12 manages the request transmitted by the instruction or data in which the cache miss has occurred in order to refer to the external memory 11, and temporarily stores the information related to the transmitted request. It has a management table 12a.
- the request management unit 12 uses the request management tape â 12 a Is associated with the request ID of the request sent to the outside (ie, the external memory 11), the process ID of the process that is the source of the request, and a response waiting flag of the request (the response of the request). (A flag indicating the presence / absence of the request) and the time when the entry of the request is created in the request management table 12a.
- the priority calculation unit 13 is configured by the information processing apparatus based on the information managed by the request management unit 12 and the usage status of the calculation resources in the calculation unit 6 (the collection result by the collection unit 15 described above).
- the priority of each process (thread, strand) to be executed is calculated and changed.
- a priority variable (hereinafter referred to as a priority initial value) set in advance for each process (here, each process â , â )
- Calculating unit 13a that calculates a new priority variable from the above-mentioned priority initial value according to the situation related to the data cache miss, and the priority for each process calculated by this calculating unit 13a. It has a priority storage table 13b for storing degree variables.
- the situation related to the data cache miss refers to the timing (hereinafter also referred to as the first timing) at which the read (reference) request is sent to the outside via the request management unit 12.
- the timing at which the request management unit 12 receives a response to the request (hereinafter, also referred to as a second timing) and the timing at which the response to the request is entered into the primary data cache memory 8 (hereinafter, referred to as a third timing). Timing), and the timing at which a data cache miss occurs (hereinafter, also referred to as the fourth timing).
- the calculating unit 13a of the priority calculating unit 13 converts the priority variable of the process that is the transmission source of the request at the above-described first to fourth timings with reference to FIGS. It is configured to calculate according to the following procedure.
- the priority variables [P (A), P (B)] are stored for each process ID (here, processes A and B).
- the priority variables calculated at the above-mentioned first to fourth timings are changed (rewritten) each time, and the latest calculated priority variables are always stored as the priority of each process.
- control unit 14 refers to the priority variables of the respective processes stored in the priority storage table 13b of the priority calculation unit 13, and based on the priority variables, executes the process with the higher priority.
- the operation of the selector 4 is controlled so that an instruction for processing is preferentially selected and output to the decoder 5.
- sampling unit 15 is for sampling the usage status of the computing resources in the arithmetic unit 6 for each process, and based on the usage status of the computing resources sampled in the sampling unit 15, a priority calculation unit described later. Calculation of a priority variable at the first timing in 13 is performed.
- the usage status of the processing resources is, for example, the entry usage rate of the instruction window, the usage rate of the renaming register, the entry usage rate of the fetch port, and the entry usage rate of the reservation station.
- the function as the instruction processing control device of the present invention is realized by at least the priority calculation unit 13 and the control unit 14 among the functions of the information processing device.
- step S10 it is determined whether or not a request to read the external memory 11 has been sent from the request management unit 13 in accordance with the occurrence of a cache miss of data used when executing the instruction from the process A (step S10). Whether or not this request has been sent (first timing) is determined by the calculation unit 13a of the priority calculation unit 13 based on the response waiting flag in the request management table 12a of the request management unit 12. to decide.
- Step S11 If the request has not been sent (N route of step S10), the priority variable P (A) of the process A that is the source of the request is not changed and is stored in the priority storage table 13b.
- Step S11 If 1 request 1 is transmitted (YE S route of step S10; first timing), the request is sent to processing A that has transmitted the request.
- the number of requests waiting for a response from the outside (external memory 11) that is, the request for process A for which an entry has already been made on the request management tape â / le 12a before the request) W ( 'When the request is sent and received, it is determined whether the value managed by increasing / decreasing the counter) is equal to or more than the predetermined number X1 and smaller than the predetermined number X2 (step S12).
- XI and X2 are natural numbers that are appropriately set, and the number of requests W is calculated based on the request management table 12a of the request management unit 12, and is calculated by the calculation unit 13a of the priority calculation unit 13.
- Step S 13 if the number of requests W is not within the range of the predetermined number X1 or more and less than X2 (N route of step S12), it is determined whether the request number W is the predetermined number X2 or more.
- step S14 if the number of requests W is equal to or more than the predetermined number X 2 (YE S route of step S 13), the correction number i 2 (> 0) preset in the current priority variable P (A) is In addition, the priority variable P (A) of the process A is changed (step S14).
- step S12 If the number of requests W is in the range of a predetermined number X1 or more and less than X2 (YE S route in step S12), other instructions related to process A, which is the source of the request, are executed. It is determined whether or not the instruction currently uses the computing resources of the computing unit 6 for a predetermined value Y (usage rate) or more (step S15).
- the calculation unit 13 a of the priority calculation unit 13 determines using the use status of the calculation resources of the calculation unit 6 for the process A collected by the collection unit 15 (the various usage rates described above). . If the utilization rate of the operation resources of the operation unit 6 of the process A is smaller than Y (NO route in step S15), the priority variable P (A) of the process A is not changed, and the priority is stored.
- the priority stored in the table 13b remains (step S11). Conversely, if the usage rate of the processing resources of the processing unit 6 of the processing A is equal to or more than â (YES route in step S15), the trapping set in advance to the current priority variable P (A) is performed.
- the priority variable P (A) of the process A is changed by adding a positive number i 1 (> 0) (step S 16).
- the priority variable P (A) calculated in this way is changed in the priority storage table 13b of the priority calculation unit 13 each time.
- the use status of the instruction window entry, the renaming register, the fetch port entry, and the reservation station entry are used as the operation resources of the operation unit 6 as described above.
- the priority calculation unit 13 uses one of the above four usage rates as the usage status of the computing resources used in the processing at the first timing, and the reference value corresponding to the computing resource is used.
- the condition for judging the usage status of the computational resource may be set by employing all of the above four computing resources, or the condition may be satisfied if at least one of the four computing resources clears such a determination condition. You may comprise.
- the request management Regarding the process that is the source of the request managed in the request management table 12a of Part 1 2, according to the number W of requests for which entries have been made in the request management table 12a, the request The priority variable P (A) of the process which is the transmission source is calculated, and the priority variable of the process already stored in the priority storage table 13 b is changed. Note that this change The priority is lower than the priority.
- step S14 By performing such a change (step S14), execution of processing other than the processing in which many data cache misses occur is prioritized, and the free time for the processing resources of the processing unit 6 is reduced. Can be suppressed.
- the priority calculation unit 13 calculates the priority variable of the process that is the transmission source of the request in accordance with the usage status (usage rate) of the calculation resource of the calculation unit 6 collected by the collection unit 15. Then, the priority variable of the process that has already been stored in the priority storage table 13 b is changed. This change is also made so that the priority is lower than the current status.
- step S16 By making such a change (step S16), the execution of other processings other than the processing with a high usage rate is given priority, and the arithmetic unit by a plurality of processings (here, processings A and B) is executed.
- the use balance of the computing resources of No. 6 can be maintained, and a plurality of processes can be executed efficiently.
- step S20 the calculation procedure of the priority variable at the second timing in the priority calculation unit 13 will be described with reference to the flowchart (steps S20 to S22) shown in FIG.
- the received response is due to a data cache miss that occurred in process A, and is the oldest of all requests due to a data cache miss that occurred in process A while waiting for an external response. Is determined (step S20).
- the request management unit 12 receives the response from the external memory 11 (second timing)
- the entry of the request management table 12 a of the request management unit 12 becomes This is the timing of invalidation, which can be grasped by sending a signal to the priority calculation unit 13 at this time.
- the history of the request (whether it is the oldest or not) is calculated by the calculation unit 13a of the priority calculation unit 13 based on the time when the entry was created in the request management table 12a. to decide.
- the response received from the outside is the data cache miss that occurred in process A. If the request is the oldest of all the requests waiting for the response to the data cache miss caused by the process A (YES route in step S20), the current priority variable P ( The preset correction number i 3 (> 0) is subtracted from A), and the priority variable P (A) of the process A is changed (step S 21). Conversely, the response received from the outside is not due to the data cache miss that occurred in process A, or is included in all requests that are waiting for a data cache miss response due to process A. If it is not the oldest (NO route of step S20), the priority variable P (A) of the process A is not changed, and the current priority stored in the priority storage template 13b is not changed. (Step S22).
- the calculation unit 13 a of the priority calculation unit 13 performs request management.
- the priority variable of the process that is the source of the request is calculated in accordance with the history of the request managed by the unit 12, and the priority variable of the process already stored on the priority storage tape is calculated. change. This change is made so that the priority is higher than the current status.
- step S 21 the process which is the oldest instruction among the instructions stopped by the data cache miss and the source of the instruction is executed with priority. The execution of such processing is performed smoothly.
- the priority is increased only when the response received from the outside is the oldest of all the requests waiting for a response due to the data cache miss of the process. If the response received is not the oldest but the response received is somehow old, the priority may be increased.
- Step S30 If it is determined that this response has been entered in the primary data cache memory 8 (YES route of step S30; third timing), The correction number i 4 (> 0) preset for the current priority variable P (A) is reduced, and the priority variable P (A) of the process A is changed (step S31).
- the priority variable P (A) of the process A is not changed, and the priority is not changed.
- the priority stored in the degree storage table 13b remains (step S32).
- the response is a response to the request managed by the request management unit 12.
- the priority variable of the process that is the transmission source of the request is calculated, and the priority is already stored. Change the priority variable of the process stored in the table. This change is made so that the priority is higher than the current status.
- step S31 By performing such a change (step S31), the priority is set high when the instruction stopped by the data cache miss is executed, and the instruction is stopped by the data cache miss.
- the instruction belonging to the process from which the instruction is sent is preferentially sent to the decoder, and the execution is performed smoothly.
- step S40 it is determined whether or not a data cache miss has occurred along with the execution of the process A (step S40). If a data cache miss has occurred (YES route in step S40; Timing), a preset capture number i 5 (> 0) is added to the current priority variable P (A), and the priority variable P (A) of the process A is changed (step S41). Conversely, if a data cache miss has not occurred (N route of step S40), the priority variable P (A) of the process A is not changed and is stored in the priority storage table 13b. The current priority set remains (step S42).
- the priority calculation unit 13 calculates the priority variable of the process that is the source of the data cache miss, and calculates the priority variable that has already been stored in the priority storage tape. Change the processing priority variable. This change Is done so that the priority is lower than the current status.
- step S41 execution of processing other than the processing in which the data cache miss occurred is given priority, and free time is generated in the operation resources of the arithmetic unit 6. Can be suppressed.
- the priority variables are independently calculated / changed at the above-described first to fourth timings, and the calculation results are Each time, it is stored in the priority storage table 13b of the priority calculation unit 13.
- the calculation Z of the priority variable is changed for the process B as in the process A.
- the priority calculation step S50 for calculating the priority of each process in the priority calculation unit 13 and the control unit 14 include a priority calculation step.
- Degree calculation step Controls the operation of selector 4 so as to refer to the priority of each processing calculated / changed in S50 and preferentially select the instruction for the processing with higher priority and output it to decoder 5.
- the instruction processing control is performed by the control step S51.
- the priority calculation step S50 the priority of each process is calculated / changed in the priority calculation unit 13 in the procedure described above with reference to FIGS.
- the priority calculation step S50 is considered so as not to become a volt-neck for the clock cycle of the arithmetic unit.
- the control unit 14 controls the power selector 4, and among the instructions held in the instruction buffer 3, the high-priority processing is performed by the priority storage table 1 of the priority calculation unit 13. 3 Based on the priority variables of processes A and B stored in b, compare the priority variables of each process, select the instruction for the process with the higher priority first, and send it to the decoder 5 at most. Outputs four instructions.
- instruction buffer 3 If there is no high-priority processing instruction in instruction buffer 3, An instruction belonging to a process with a higher priority is selected. If the number of instructions sent from the instruction buffer 3 to the decoder 5 is smaller than the number of decoders (here, four), instructions for each processing are selected one after another in descending order of priority and sent to the decoder 5. Can be In this case, multiple processing instructions are decoded in one cycle.
- control unit 14 is configured to operate once in a predetermined period in which the selector 4 outputs an instruction to the decoder 5 to switch processing. This is because if the control unit 14 is activated every time the selector 4 outputs an instruction to the decoder 5 and the processing is switched based on the priority, the cost of switching the processing is increased, and the throughput is rather increased. This will hinder the improvement of the quality.
- the control unit 14 sets the priority variables of the processes A and B stored in the priority storage table 13 b of the priority calculation unit 13 every cycle in which the selector 4 outputs the instruction to the decoder 5. If the difference between the priority variables of the processing A and the processing B is equal to or larger than a preset threshold value, the instruction of the processing with the higher priority is preferentially selected and output to the decoder 5. May be configured. As a result, the cost increase associated with the above-described process switching is suppressed, and the process can be switched efficiently, so that the throughput can be reliably improved. .
- the priority of each process is calculated according to the Z.
- the instruction held in the instruction buffer 3 is output to the decoder 5 based on the priority and is executed in the arithmetic unit 6, so that the actual instruction execution status is changed.
- the computing resources of the computing unit 6 are used efficiently in a plurality of processes, and it is ensured that free time is generated in the computing resources. Indeed, the throughput is greatly improved.
- the priority calculation unit 13 is configured to calculate the priority variables at the first to fourth timings. For the calculation at the third timing, either It may be configured as follows.
- FIG. 9 is a block diagram illustrating a functional configuration of the information processing apparatus according to the second embodiment. Note that, in FIG. 9, the same reference numerals as those described above indicate the same or almost the same portions, and thus detailed description thereof will be omitted.
- the information processing apparatus according to the second embodiment of the present invention has the same configuration as the information processing apparatus of the above-described first embodiment, and further includes operation means 16, monitor means 18, It is provided with display means 20.
- the operation means 16 is for manually operating the characteristic of the workload as the execution environment of a certain process or the value (also referred to as a reference value) for determining the priority of a certain process.
- the monitoring means 18 is for monitoring the execution status of the work module for each process executed by the information processing apparatus.
- the usage status of each function of the information processing device such as the usage status of the information processing device is monitored.
- the display means 20 displays the execution status of the workload of each process monitored by the monitor means 18 on a monitor or the like connected to the information processing apparatus.
- the value (reference value) for determining the priority of a specific process is, specifically, the calculation unit 13a of the priority calculation unit 13 calculates the priority of the process first applied.
- the operation hand Step 16 includes hardware such as a keyboard and a mouse, and software for reflecting information (numerical values and the like) input by operating the hardware to values used in the calculator 13a. It is a man machine interface.
- the priority of the process A can be increased.
- the priority initial value of the process A is made smaller than the priority initial values of the other processes B. As a result, the priority variable of the process A can be relatively reduced, and the priority of the process A can be increased.
- the priority calculation unit 13 increases the values of the correction values i3 and i4 used for calculating the priority variable of the process A.
- the priority of the process A can be made higher than that of the other process B.
- the reference value is changed by the operation means 16 in the above (1) to (5), the user can freely operate the change width.
- the operating unit 16 uses the criteria used to calculate / change the priority in the priority calculating unit 13. Since the value can be manipulated so that the priority of a specific process is made higher, the specific process can be executed with priority and the user's intention can be reflected.
- the reference value for the process B is set to the relative value of the priority of the process B by performing the operation reverse to the above operations (1) to (5). May be set so that process A is executed with priority.
- the execution status of the workload for each process is monitored by the monitor unit 18 and the monitoring result is displayed on a monitor or the like by the display unit 20. Workload execution status can be visually checked. Therefore, after recognizing the execution status of the workload for each process, the user can operate the reference value used for calculating / changing the priority in the priority calculation unit 13 by the operation means 16 using the operation means 16. Depending on the workload status of each process, specific processes can be executed preferentially.
- FIG. 10 is a block diagram illustrating a functional configuration of the information processing apparatus according to the third embodiment.
- FIG. 10 since the same reference numerals as those described above indicate the same or almost the same parts, detailed description thereof will be omitted.
- the information processing apparatus has the same configuration as the information processing apparatus of the above-described first embodiment, and further includes the execution of a workload as an execution environment.
- a change that dynamically changes the reference value of such processing to a value according to the execution status of the workload monitored by the monitoring means 18 by referring to the table 17 in response to the result of the moeta by the means 18 means It is composed with 19. '
- the table 17 is configured to be able to hold a specific workload and a reference value corresponding to the workload according to the user's intention and the like. As an example, as shown in Fig. 11, the workload execution status of case 1 to case 3 and the reference value according to the execution status of each workload are held.
- Case 1 in Table 17 shows the hit rates in the primary instruction cache memory 2 and the primary data cache memory 8 (that is, the rate at which the instruction group based on the instruction is stored in the primary instruction cache memory 2). And the rate at which data used for instructions are stored in the primary data cache memory 8) is 97% or more, and the first priority in the calculation unit 13a of the priority calculation unit 13
- the value 1 of the reference value X 2 (see steps S 12 and S 13 in FIG. 4) used for calculating / changing the priority variable at the timing of is held in association with each other.
- Case 2 in Table 17 shows the workload execution status where the number of data fetch requests when executing instructions for such processing is 300000 or less, and the calculation unit of the priority calculation unit 13 13 The priority value at the first timing in 3a The value 1 of the reference value X2 (see steps S12 and S13 in Fig. 4) used for calculating / changing the variable is held in association with Have been.
- a cache miss based on such processing occurs at least once in 500 instructions, and the execution time of the processing in the arithmetic unit 6 is executed in parallel with this processing.
- the execution status of the workload which is 70% or less of the execution time of the other processing, is caused by the calculation Z of the priority variable at the first timing in the calculation unit 13a of the priority calculation unit 13.
- the value of the correction value i 1 used (see step S 16 in FIG. 4) is decremented by 1, and the correction value i 3 used to change the priority variable Z at the second timing (step S 16 in FIG. 5) 2 1 â²) or the correction value i 4 (see step S 31 in FIG. 6) used to calculate / change the priority variable at the third timing. Is held.
- the monitoring means 18 monitors the execution status of the first load for each process. Specifically, the monitoring means 18 determines whether the usage status of the processing resources of each process, the usage status of the cache memory, and the like. The usage status of each function of the information processing device is monitored.
- the control unit 14 and the power priority calculation unit 13 calculate each Z-changed process.
- the selector 4 is controlled so that a process having a higher priority is preferentially selected on the basis of the priority and output from the instruction buffer 3 to the decoder 5.
- the monitoring status of the processing workload execution status is constantly monitored, and the changing means 19 receives the monitoring result of the monitoring means 18, refers to the tape hole 17, and holds the monitoring result in the table 17.
- the reference values in the priority calculation unit 13 are set so that the reference values corresponding to the workload execution status stored in Table 17 are obtained. To change.
- the monitoring result of the workload of the processing A by the monitoring means 18 is shown in Case 1 of Table 17. If it corresponds to the workload execution status, the change unit 19 sets the reference value X2 of the process A of the priority calculation unit 13 to 1. As a result, if a cache miss has hardly occurred, or if a cache miss has occurred in process A, the priority of process A can be set to be lower (step S 14 in FIG. 4). ), And it is possible to maintain a good execution balance with process B.
- the changing means 19 performs the processing of the priority calculation unit 13
- the reference value X 2 of A is set to 1.
- the priority of process A can be set to be low (see step S14 in FIG. 4).
- the execution balance (computation resource sharing balance) can be maintained well.
- the monitoring result of the workload of process A by the monitoring means 18 corresponds to the workload execution status shown in Case 3 of Table 17, cache misses occur frequently and other processes (here, Use of computing resources compared to process B)
- the priority can be set to be higher for the process A having a small ratio (see step S16 in FIG. 4 and step S21 in FIG. 5 or step S31 in FIG. 6). This makes it possible to change the priority of the processing A, which does not use the computational resources of the processing unit 6 as much as compared with the other processing B, and is not executed smoothly, to a higher priority. Can be kept good.
- the changing unit 19 is configured to change the workload execution status based on the workload execution status held in the table 17 and the reference value corresponding to the workload execution status. Since the reference value of the priority calculation unit 13 is dynamically changed, the priority of such processing is dynamically changed according to the workload execution status. As a result, a plurality of processes can be executed according to the workload execution status, and the intention of the user can be reflected according to the workload execution status.
- the workload execution status, the contents of the reference values corresponding thereto, and specific numerical values stored in the table 17 according to the present embodiment are shown as examples, and are not limited thereto. .
- the workload execution status and the corresponding reference value stored in Table 17 are changed depending on the user's intention, the execution status of the process in the information processing device, and the like.
- the present invention is not limited to this.
- the present invention is applied similarly to the above-described embodiments even when three or more processes are executed in parallel, and the same operation and effect as the above-described embodiments can be obtained.
- the type of request handled by the request management unit 12 covers a type other than a data cache miss. In such a case, it is conceivable to prepare individual reference values depending on the type of request. Furthermore, the maximum value and the minimum value of the priority variable for such processing are set according to the type of the request, and when these values are exceeded, May be configured to stop the process of increasing / decreasing priority variables (calculation / change process of priority variables).
- the functions of the request management unit 12, the priority calculation unit 13 (calculation unit 13a), the control unit 14, the collection unit 15, the operation unit 16, the monitor unit 18, and the change unit 19 described above are implemented by a computer (CPU , An information processing device, and various terminals) by executing a predetermined application program (command processing control program).
- the program is provided in a form recorded on a computer-readable recording medium such as a flexible disk, a CD-ROM, a CD-R, a CD-RW, and a DVD.
- the computer reads the instruction processing control program from the recording medium, transfers it to the internal storage device or the external storage device, stores it, and uses it.
- the program may be recorded on a storage device (recording medium) such as a magnetic disk, an optical disk, or a magneto-optical disk, and provided to the computer from the storage device via a communication line. ,.
- the computer is a concept including hardware and an OS (operating system), and means hardware that operates under the control of the OS.
- OS operating system
- the hardware itself corresponds to a computer.
- the hardware has at least a microprocessor such as a CPU and a means for reading a computer program recorded on a recording medium.
- the application program as the instruction processing control program includes a request management unit 12, a priority calculation unit 13, a control unit 14, a sampling unit 15, an operation unit 16, a monitoring unit 18, It includes a program code for realizing the function as the changing means 19.
- some of the functions may be realized by OS instead of application programs.
- the recording medium includes an IC card, a ROM cartridge, a magnetic tape, and a magnetic disk.
- IC card computer internal storage (memory such as RAM and ROM), external storage
- RAM random access memory
- ROM read-only memory
- external storage Various computer-readable media, such as storage devices and printed materials on which codes such as bar codes are printed, can also be used.
- the priority of each process is set so that the computing resources can be effectively used according to the actual instruction execution status. Since the calculation / change is performed and the processing is executed based on this priority, it is possible to more surely reduce the idle time of the computational resources and achieve a significant improvement in the throughput.
- the present invention is suitable for use in an information processing device such as a computer employing a multi-thread system, and its usefulness is considered to be extremely high.
Abstract
In an information processing device executing two or more processes in parallel, a calculation resource is used effectively according to an actual instruction execution condition and an empty time of calculation resource is surely reduced so as to realize a significant increase of throughput. The information processing device includes a priority calculation section (13) for calculating/modifying the priority of each process so as to reduce the calculation resource empty time in a calculation section (6), and a control section (14) for referencing the priority of each process calculated/modified by the priority calculation section (13) and controlling operation of a selector (4) so as to select an instruction of a higher priority by priority and output it to a decoder (5).
Description
æ
å ±åŠçè£
眮䞊ã³ã«åœä»€åŠçå¶åŸ¡è£
çœ®ïŒ åœä»€åŠçå¶åŸ¡æ¹æ³ïŒ åœä»€åŠçå¶åŸ¡ããã° ã©ã åã³åœä»€åŠçå¶åŸ¡ããã°ã©ã ãèšé²ããã³ã³ãã¥ãŒã¿èªåå¯èœãªèšé²åªäœ æè¡åé TECHNICAL FIELD The present invention relates to an information processing device, an instruction processing control device, an instruction processing control method, an instruction processing control program, and a computer-readable recording medium storing the instruction processing control program.
æ¬çºæã¯ã 2以äžã®åŠçã䞊åçã«å®è¡ããæ
å ±åŠçè£
眮ã«ãããŠã ãã³ãŒã ãžåºåãããåœä»€ãå¶åŸ¡ããŠã¹ã«ãŒãããã®åäžãå®çŸããããã®æè¡ã«é¢ããã èæ¯æè¡ æ  The present invention relates to a technique for realizing an improvement in throughput by controlling an instruction output to a decoder in an information processing apparatus that executes two or more processes in parallel. Background art
åŸæ¥ããäžã€ã®ããã»ããµ ïŒæŒç®éšïŒ å
ã§è€æ°ã®åŠç ïŒã¹ã¬ã ãïŒ ã¹ ãã©ã³ ãïŒ ã䞊åçã«å®è¡ãããã«ãã¹ã¬ããæ¹åŒæžãæ¡çšããæ
å ±åŠçè£
眮ãããã ã ã®ãã«ãã¹ã¬ããæ¹åŒã«ã€ããŠã¯ã äŸãã°ã äžèšç¹èš±æç® 1ã«è©³çŽ°ã«è¿°ã¹ãã㊠ããã  Conventionally, there is an information processing apparatus that employs a multi-thread system that executes a plurality of processes (threads, strands) in parallel within one processor (arithmetic unit). This multi-thread method is described in detail in, for example, Patent Document 1 below.
å³ 1 2ã¯äžè¬çãªãã«ãã¹ã¬ããæ¹åŒãæ¡çšããæ
å ±åŠçè£
眮ã®æ©èœæ§æã瀺 ããããã¯å³ã§ã ãã®å³ 1 2ã«ç€ºãæ
å ±åŠçè£
眮ã¯ã åœä»€ã¡ãã¬ã¹çæéš 1ïŒ 1 次åœä»€ãã€ãã·ã¥ã¡ã¢ãª 2 , åœä»€ãããã¡ 3 , ã»ã¬ã¯ã¿ 4ïŒ ãã³ãŒã 5 , æŒç®éš 6 , ã¬ãžã¹ã¿ 7 , 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ïŒ 2次ãã£ãã·ã¥ã¡ã¢ãª 9åã³ ãããã¡ 1 0ãããªããŠæ§æããã æŒç®éš 6ã«ãããŠã ã³ãã³ãå
¥åçã§çºçã ããè€æ°ã®åŠçã«åºã¥ãè€æ°ã®åœä»€ã䞊åçã«å®è¡ããããã«æ§æãããŠããã ããã§ã åŠçãšã¯ã ããã°ã©ã ã ãããã¯ã ããããã°ã©ã ããçºçããåœä»€ æµ ïŒåœä»€ãã§ãããšãã³ãŒããšã®åŠçã®æµãã«å¯Ÿå¿ãã 1以äžã®åœä»€ïŒ ã®ããšã ããã  FIG. 12 is a block diagram showing a functional configuration of an information processing device adopting a general multi-thread method. The information processing device shown in FIG. 12 includes an instruction address generator 1, a primary instruction cache memory 2, It is composed of an instruction buffer 3, a selector 4, a decoder 5, an arithmetic unit 6, a register 7, a primary data cache memory 8, a secondary cache memory 9, and a buffer 10. It is configured to execute a plurality of instructions based on the obtained plurality of processes in parallel. Here, the processing refers to a program or an instruction flow generated from a certain program (one or more instructions corresponding to the processing flow of instruction fetch and decode).
ãã®æ
å ±åŠçè£
眮ã¯ã ãããã¯ãŒã¯çãä»ããŠå€éšã¡ã¢ãª ïŒäž»èšæ¶éšïŒ 1 1ãš éä¿¡å¯èœã«æ¥ç¶ãããŠããã  This information processing device is communicably connected to an external memory (main storage unit) 11 via a network or the like.
åœä»€ã¡ãã¬ã¹çæéš 1ã¯ã çºçãããåŠçããçããåœä»€ã«ã€ããŠã®åœä»€èªçŸ€ ãèšæ¶ãããŠããå€éšã¡ã¢ãª 1 1ã®åœä»€é åäžã®ã¢ãã¬ã¹ãçæãããã®ã§ããã ã¡ãã¬ã¹çæã¯ååŠçæ¯ã«ç¬ç«ããŠè¡ãªãããããã«ãªã€ãŠããã  The instruction address generation unit 1 generates an address on the instruction area of the external memory 11 in which an instruction word group of an instruction resulting from the generated processing is stored, and the address generation is independent for each processing. To be done.
1次åœä»€ãã£ãã·ã¥ã¡ã¢ãª 2ã¯ã å€éšã¡ã¢ãª 1 1äžã®åœä»€é åã®äžéšã®ã³ããŒ
ãæ ŒçŽãã ãã®ã³ããŒã®äžããåœä»€ã¡ãã¬ã¹çæéš 1ã«ãã£ãŠçæãããåœä»€ã¡ ãã¬ã¹ã«å¿ããåœä»€ãåŸæ®µã®åœä»€ãããã¡ 3ãžåºåãããã®ã§ããã ããã«å¯Ÿã ãŠã 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ã¯ã å€éšã¡ã¢ãª 1 1äžã®ããŒã¿é åã®äžéšã® ã³ããŒãæ ŒçŽãã æŒç®éš 6ã§ã®æŒç®ã«å¿
èŠãªããŒã¿ãæŒç®éš 6ããã®èŠæ±ã«å¿ã ãŠåºåãããã®ã§ããã ãŸãã 2次ãã£ãã·ã¥ã¡ã¢ãª 9ã¯ã å€éšã¡ã¢ãª 1 1äžã® åœä»€é ååã³ããŒã¿é åã®äžéšã®ã³ããŒãæ ŒçŽãããã®ã§ã ã¡ãã¬ã¹çæéš 1ã« ãã£ãŠçæãããåœä»€ã¡ãã¬ã¹ã«å¿ããåœä»€ã 1次åœä»€ãã£ãã·ã¥ã¡ã¢ãª 2ã«å åšããªãå Žåãã æŒç®éš 6ã§ã®æŒç®ã«å¿
èŠãªããŒã¿ã 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ 㪠8ã«ååšããªãå Žåã ãã® 2次ãã£ãã·ã¥ã¡ã¢ãª 9ãæ€çŽ¢ãããããã«ãªã£ãŠ ããã Primary instruction cache memory 2 is a copy of part of the instruction area on external memory 1 1. And outputs an instruction corresponding to the instruction address generated by the instruction address generation unit 1 from the copy to the instruction buffer 3 at the subsequent stage. On the other hand, the primary data cache memory 8 A part of the data area on the external memory 11 is stored, and data required for the operation in the operation unit 6 is output in response to a request from the operation unit 6. The secondary cache memory 9 stores a copy of the instruction area and a part of the data area on the external memory 11, and an instruction corresponding to the instruction address generated by the address generation unit 1 is a primary instruction. If the data does not exist in the cache memory 2 or the data required for the operation in the operation unit 6 does not exist in the primary data cache memory 8, the secondary cache memory 9 is searched.
åœä»€ãããã¡ 3ã¯ã åœä»€ã¡ãã¬ã¹çæéš 1ã«ãã 1次åœä»€ãã£ãã·ã¥ã¡ã¢ãª 2 2次ãã£ãã·ã¥ã¡ã¢ãª 9ãããã¯å€éšã¡ã¢ãª 1 1ãããã§ãããããåœä»€èªçŸ€ã äžæçã«èãã ã»ã¬ã¯ã¿ 4ããã®æ瀺ã«å¿ããŠåŸæ®µã®ãã³ãŒã 5ãžåœä»€ãçºè¡ã ããã®ã§ããã ããã§ã¯ã åœä»€ãããã¡ 3㯠8ã€ã®åœä»€ ïŒåœä»€èªçŸ€ïŒ ãäžæçã« èããããããã«æ§æãããŠããã ãã«ãã¹ã¬ã ãæ¹åŒã®ã¡ãªãããæ倧éã«çº æ®ãããããã è€æ°ã®åŠçã«ãããè€æ°ã®åœä»€ã®ãã§ãããããããç¬ç«ããŠè¡ ãªãããããã«ãªã£ãŠããã  The instruction buffer 3 temporarily stores instruction words fetched from the primary instruction cache memory 2, the secondary cache memory 9, or the external memory 11 by the instruction address generation unit 1, and in accordance with an instruction from the selector 4, An instruction is issued to the decoder 5. Here, the instruction buffer 3 is configured to temporarily store eight instructions (instruction word groups). To maximize the benefits of the multi-thread system, the instruction buffer 3 is used for multiple processing. Fetching of these instructions is performed independently of each other.
ã»ã¬ã¯ã¿ 4ã¯ã åœä»€ãããã¡ 3ãããã³ãŒã 5ãžã®åœä»€çºè¡åäœãå¶åŸ¡ããæ© èœãæããã®ã§ã åœä»€ãããã¡ 3ã«èç©ãããŠããåœä»€ã®ãã¡ã®å°ãªããšãäžã€ ãéžæããŠãã³ãŒã 5ãžåºåãããã®ã§ããã å³ 1 2ã«ç€ºãè£
眮ã§ã¯ã ãã³ãŒã 5ã 4ã€ããªããããŠããã®ã§ã ã»ã¬ã¯ã¿ 4ã¯ã æ倧ã§åæã« 4ã€ã®åœä»€ããã³ ãŒã 5ãžçºè¡ããããã«æ§æãããŠããã ãŸãã ã»ã¬ã¯ã¿ 4ã¯ã ãã«ãã¹ã¬ã ã æ¹åŒã®ã¡ãªãããæ倧éã«çºæ®ãããããã éåžžã åœä»€ãããã¡ 3ã«åœä»€ãè€æ° èç©ãããŠãããšãã«ã¯ã è€æ°ã®åœä»€ãã©ã®åŠçã«åºã¥ããã®ãã«é¢ãããã 〠ãŸãã åŠçãç¹å®ããããšãªãã ãªãã¹ãå€ãã®åœä»€ã ã€ãŸãã åæçºè¡å¯èœãª æ倧æ°ã®åœä»€ ïŒå³ 1 2ã«ç€ºãè£
眮ã§ã¯ 4ã€ã®åœä»€ïŒ ãéžæããŠçºè¡ããããã«ãª ã€ãŠããã  The selector 4 functions to control the operation of issuing instructions from the instruction buffer 3 to the decoder 5, and selects at least one of the instructions stored in the instruction buffer 3 and outputs the selected instruction to the decoder 5. It is. In the device shown in FIG. 12, since four decoders 5 are provided, the selector 4 is configured to issue a maximum of four instructions to the decoder 5 at the same time. In addition, the selector 4 is used to maximize the advantages of the multi-thread method. Normally, when a plurality of instructions are stored in the instruction buffer 3, regardless of which processing is based on the plurality of instructions, In other words, as many instructions as possible, that is, the maximum number of instructions that can be issued simultaneously (four instructions in the device shown in Fig. 12) are selected and issued without specifying the processing.
ãã³ãŒã 5ãšããŠã¯ã D lïŒ D 2 , D 3 , D 4ã® 4ã€ãããªããããŠããã ã ããã®ãã³ãŒã D lïŒ D 2 , D 3 , D 4ã¯ã åœä»€ãããã¡ 3ããåæã«çºè¡ãã
ãåœä»€ãããããåä¿¡ããŠäžŠåçã«ãã³ãŒããããã®ã§ã åãã³ãŒã 5ã¯ã åä¿¡ ããåœä»€ããã å®éã«æŒç®éš ïŒåœä»€åŠçéšïŒ 6ãåœä»€ã®å
容ãèªèããããšã®å¯ èœãªåœ¢åŒã§ããã©ãã³ãŒããšãã®åœä»€ã®å¯Ÿè±¡ã§ãããªãã©ã³ããšã®æœåºãè¡ãªã ãšãšãã«ã ãããã©ãã³ãŒããšãªãã©ã³ããšã®æŒç®è³æºã確ä¿ãããã®ã§ããã æŒç®éš 6ã¯ã è€æ°ã®åœä»€ã䞊åçã«åŠçããããã è€æ°ã®æŒç®åšãããªããŠæ§ æããã ãã³ãŒã 5ã§ãã³ãŒããããåœä»€ã«åºã¥ãæŒç®åŠçãé 次å®è¡ãã ãã® æŒç®åŠçã®çµæãåŸæ®µã®ã¬ãžã¹ã¿ 7ã«éããã®ã§ããã The decoder 5 is provided with four of D1, D2, D3 and D4. These decoders Dl, D2, D3 and D4 are issued simultaneously from the instruction buffer 3. The decoder 5 receives each instruction and decodes it in parallel. Each decoder 5 has a format that allows the operation unit (instruction processing unit) 6 to actually recognize the contents of the instruction from the received instruction. In addition to extracting the opcode and the operand that is the target of the instruction, the operation resources of the opcode and the operand are secured. The arithmetic unit 6 is configured to include a plurality of arithmetic units in order to process a plurality of instructions in parallel. The arithmetic unit 6 sequentially executes arithmetic processing based on the instructions decoded by the decoder 5, and outputs a result of the arithmetic processing to a subsequent stage. To register 7.
ãããã¡ 1 0ã¯ã å€éšã¡ã¢ãª 1 1ã«å¯Ÿããã€ã³ã¿ãŒãã§ãŒã¹ãšããŠæ©èœããã ã®ã§ããã çºçãããåŠçã«ã€ããŠã®åœä»€ã«ãããåœä»€èªçŸ€ãã 1次åœä»€ãã€ã ã·ã¥ã¡ã¢ãª 2ïŒ 2次ãã£ãã·ã¥ã¡ã¢ãª 9ã®ãããã«ãæ ŒçŽãããŠãããã ããã ãã£ãã·ã¥ã¡ã¢ãªããã¯ãã§ããã§ããªãçŸè±¡ã ã€ãŸãã 1次åœä»€ãã£ãã·ã¥ã¡ ã¢ãª 2ïŒ 2次ãã€ãã·ã¥ã¡ã¢ãª 9ã§ã®ãã¹ããã (以äžã åœä»€ãã£ãã·ã¥ãã¹ãš ããïŒ ãçºçããå Žåãã æŒç®éš 6ã«ãããŠåœä»€ãå®è¡ããéã«ã åœè©²åœä»€ã«äœ¿ çšãããããŒã¿ã 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8 , 2次ãã£ãã·ã¥ã¡ã¢ãª 9ã®ã ããã«ãæ ŒçŽãããŠãããã ããããã£ãã·ã¥ã¡ã¢ãªããã¯ãã§ããã§ããªãçŸ è±¡ã ã€ãŸãã 1次ããŒã¿ãã€ãã·ã¥ã¡ã¢ãª 8ïŒ 2次ãã£ãã·ã¥ã¡ã¢ãª 9ã§ã®ãã¹ ããã (以äžã ããŒã¿ãã£ãã·ã¥ãã¹ãšãã) ãçºçããå Žåã«ã¯ã ãããã¡ 1 0ãä»ããŠå€éšã¡ã¢ãª 1 1ãåç
§ããã ãããã¡ 1 0ãçµç±ããŠåœè©²åœä»€èªçŸ€ã ããŒã¿ã 1次åœä»€ãã£ãã·ã¥ã¡ã¢ãª 2ïŒ 1次ããŒã¿ãã€ãã·ã¥ã¡ã¢ãª 8 , 2次ã ã£ãã·ã¥ã¡ã¢ãª 9ã«ãã§ãããããã  The buffer 10 functions as an interface to the external memory 11. The instruction words related to the instruction for the generated processing are not stored in either the primary instruction cache memory 2 or the secondary cache memory 9 and cannot be fetched from these cache memories. When a miss occurs in the cache memory 2 or the secondary cache memory 9 (hereinafter, referred to as an instruction cache miss), or when the arithmetic unit 6 executes an instruction, the data used for the instruction is 1 An event that is not stored in either the secondary data cache memory 8 or the secondary cache memory 9 and cannot be fetched from these cache memories, that is, a miss hit in the primary data cache memory 8 or the secondary cache memory 9 (Hereinafter referred to as a data cache miss), the external memory 11 is referred to via the buffer 10. , The instruction group and data is fetched in the primary instruction cache memory 2, the primary data key Yasshu memory 8, 2 Tsugiki Yasshumemori 9 via the buffer 1 0.
ãªãã ãã«ãã¹ã¬ã ãæ¹åŒãæ¡çšããæ
å ±åŠçè£
眮ã¯è€æ°ã®åŠçã䞊åçã«åŠ çãããã äžã€ã®åŠçãå®è¡ããå®è¡ç°å¢ã®åäœãã¯ãŒã¯ããŒããšããã ã€ãŸãã ã¯ãŒã¯ããŒããšã¯ã ããåŠçãå®è¡ãããããšã«ãã䜿çšãããæ
å ±åŠçè£
眮㮠åæ©èœ ïŒäŸãã°ã åœä»€ãããã¡ïŒ ãã£ãã·ã¥ã¡ã¢ãªïŒ ã»ã¬ã¯ã¿ïŒ ãã³ãŒãïŒ æŒç® éšïŒ ã¬ãžã¹ã¿ïŒ ããããã¡çïŒ ã®äœ¿çšç¶æ³ã«ãããå®è¡ç°å¢ã§ããã è€æ°ã®åŠçã« ãã䜿çšãããåæ©èœã¯ã¯ãŒã¯ããŒãéã§å
±æãããããšã«ãªãã  An information processing device that employs the multi-thread method processes a plurality of processes in parallel, but the unit of the execution environment that executes one process is called a workload. In other words, the workload is the usage status of each function of the information processing device (eg, instruction buffer, cache memory, selector, decoder, arithmetic unit, register, knocker, etc.) used when a certain process is executed. In this environment, each function used by multiple processes is shared between workloads.
ãã®ããã«ã äžè¬çãªãã«ãã¹ã¬ããæ¹åŒãæ¡çšããæ
å ±åŠçè£
眮ã§ã¯ã è€æ° ã®åŠçã«åºã¥ãè€æ°ã®åœä»€ã䞊åçã«ãã³ãŒãããã 䞊åçã«å®è¡ãããããã« ãªã£ãŠããã æŒç®éš 6ã®æŒç®è³æº ïŒå³ã¡ã è€æ°ã®æŒç®åšïŒ ãè€æ°ã®åŠçã§å
±æå©
çšããããšã«ããã åœä»€ãã£ãã·ã¥ãã¹ãããŒã¿ãã£ãã·ã¥ãã¹ ïŒä»¥äžã åœä»€ã ã£ãã·ã¥ãã¹ãšããŒã¿ãã€ãã·ã¥ãã¹ãšãåºå¥ããªãå Žåã¯åã«ãã€ãã·ã¥ãã¹ ãšããïŒ ã«äŒŽã£ãŠçºçããæŒç®è³æºã®ç©ºãæé ïŒå€éšã¡ã¢ãª 1 1ããããŒã¿ãã ãšããããã¬ã€ãã³ã·ãé·ãããšã§æŒç®éš 6ã§ã®åœä»€å®è¡ãåæ¢ããŠæŒç®éš 6ã® æŒç®è³æºã§äœãåŠçãè¡ãªããªãæéïŒ ãã åå²äºæž¬ã倱æãããšãã«åœä»€ãã ãšããããªããããšã§çºçããæŒç®è³æºã®ç©ºãæéãæžããããã«ãªã€ãŠããã ããã«ããã è€æ°ã®åŠçãè¡ãªã ããŒã¿ã«ã®æéãççž®ããã ã¹ã«ãŒããããå äžãããããšãã§ããã As described above, in an information processing apparatus employing a general multi-thread method, a plurality of instructions based on a plurality of processes are decoded in parallel and executed in parallel. Resources (that is, multiple computing units) can be shared by multiple processes. The use of instruction cache misses and data cache misses (hereinafter, simply referred to as cache misses when no distinction is made between instruction cache misses and data cache misses) results in the free time of computational resources (data from external memory 11 The instruction execution in the operation unit 6 is stopped due to the long latency, and no processing is performed using the operation resources of the operation unit 6), or the instruction is re-fetched when the branch prediction fails. As a result, the idle time of the computational resources generated by this is reduced. As a result, the total time for performing a plurality of processes is reduced, and the throughput can be improved.
ãå ããªããã åã«è€æ°ã®åœä»€ã䞊åçã«å®è¡ããã ãã§ã¯ã æŒç®éš 6ã®æŒç® è³æºãæå¹ã«å
±æå©çšããããšãã§ããªãããã å®éã®åœä»€å®è¡ç¶æ³ã«å¿ããŠæŒ ç®è³æºãæå¹ã«å
±æå©çšã§ããããã«ããŠã ãã確å®ã«æŒç®è³æºã®ç©ºãæéãå æžããããšãæãŸããŠããã  However, simply executing a plurality of instructions in parallel cannot effectively share and use the operation resources of the operation unit 6, so that the operation resources are effectively shared according to the actual instruction execution status. It is hoped that it will be available to reduce the free time of computing resources more reliably.
ãŸãã äžèšã®ãããªäžè¬çãªãã«ãã¹ã¬ããæ¹åŒãæ¡çšããæ
å ±åŠçè£
眮ã§ã¯ã åœè©²æ
å ±åŠçè£
眮ã䜿çšãããŠãŒã¶ãã è€æ°ã®åŠçã®äžŠåå®è¡äžã«ã ç¹å®ã®åŠç ãåªå
çã«å®è¡ããããšãæãå Žåã§ãã ååŠçã®ã¯ãŒã¯ããŒãç¹æ§ãæäœã§ã ãªãããã ç¹å®ã®åŠçãåªå
ãããããšã¯ã§ããã ãŠãŒã¶ã®ææãåæ ãããã ãšãã§ããªãã  Also, in the information processing apparatus employing the general multi-thread method as described above, the user of the information processing apparatus may preferentially execute a specific process while executing a plurality of processes in parallel. Even if desired, the workload characteristics of each process cannot be manipulated, so specific processes cannot be prioritized and the user's will cannot be reflected.
æ¬çºæã¯ã ãã®ãããªç¶æ³ã«éã¿åµæ¡ããããã®ã§ã 2以äžã®åŠçã䞊åçã« å®è¡ããæ
å ±åŠçè£
眮ã«ãããŠã å®éã®åœä»€å®è¡ç¶æ³ã«å¿ããŠæŒç®è³æºãæå¹ã« å©çšã§ããããã«ããŠã ãã確å®ã«æŒç®è³æºã®ç©ºãæéãåæžããŠã¹ã«ãŒããã ã®å€§å¹
ãªåäžãå®çŸããããšãç®çãšããã  The present invention has been made in view of such a situation. In an information processing apparatus that executes two or more processes in parallel, the present invention provides an information processing apparatus that can effectively use arithmetic resources according to an actual instruction execution situation. The purpose is to achieve a significant improvement in throughput by more reliably reducing the idle time of computational resources.
ç¹èš±æç® 1  Patent Document 1
ç±³åœç¹èš±ç¬¬ 6 0 7 3 1 5 9å·æçŽ°æž çºæã®é瀺  U.S. Pat.No. 6,073,159 Description of the Invention
äžèšç®çãéæããããã«ã æ¬çºæã®æ
å ±åŠçè£
眮ã¯ã 2以äžã®åŠçã䞊åç ã«å®è¡ããæ
å ±åŠçè£
眮ã§ãã£ãŠã åèš 2以äžã®åŠçãå®è¡ããããã®åœä»€ã¡ã ã¬ã¹ãåèšåŠçæ¯ã«çæããåœä»€ã¡ãã¬ã¹çæéšãšã äž»èšæ¶äžã®åœä»€é åã®äžéš ã®ã³ããŒãäžæçã«æ ŒçŽãã 該ã³ããŒã®äžããã 該åœä»€ã¢ãã¬ã¹çæéšã«ãã£ãŠ
çæãããåèšåœä»€ã¡ãã¬ã¹ã«å¿ããåœä»€ãåºåããåœä»€ãã£ãã·ã¥ã¡ã¢ãªãšã 該åœä»€ãã€ãã·ã¥ã¡ã¢ãªããåºåãããè€æ°ã®åœä»€ãä¿æããåœä»€ãããã¡ãšã 該åœä»€ãããã¡ã«ä¿æãããåœä»€ã®ãã¡ã®å°ãªããšãäžã€ãéžæããŠåºåããã» ã¬ã¯ã¿ãšã 該ã»ã¬ã¯ã¿ããã®åœä»€ããã³ãŒããããã³ãŒããšã 該ãã³ãŒãã«ãã ãã³ãŒãçµæã«å¿ããæŒç®ãå®è¡ããæŒç®éšãšã äž»èšæ¶äžã®ããŒã¿é åã®äžéšã® ã³ããŒãäžæçã«æ ŒçŽãã 該ã³ããŒã®äžããã 該æŒç®éšã§ã®æŒç®ã«å¿
èŠãªããŒã¿ ã該æŒç®éšããã®èŠæ±ã«å¿ããŠåºåããããŒã¿ãã£ãã·ã¥ã¡ã¢ãªãšã 該æŒç®éšã« ãããæŒç®è³æºã®ç©ºãæéãåæžããããã«ååŠçã®åªå
床ãç®åº/å€æŽããåª å
床ç®åºéšãšã 該åªå
床ç®åºéšã«ãã€ãŠç®åº/å€æŽãããååŠçã®åªå
床ãåç
§ ãã åèšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ãã³ãŒããžåºå ããããã«è©²ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ããå¶åŸ¡éšãšãããªããããšãç¹åŸŽãšããŠã'ã ãã In order to achieve the above object, an information processing device of the present invention is an information processing device that executes two or more processes in parallel, and executes an instruction address for executing the two or more processes. An instruction address generation unit that is generated each time, and temporarily stores a copy of a part of the instruction area on the main memory, and from the copy, the instruction address generation unit An instruction cache memory for outputting an instruction corresponding to the generated instruction address; an instruction buffer for holding a plurality of instructions output from the instruction cache memory; and at least one of the instructions held in the instruction buffer A selector for selecting and outputting an instruction, a decoder for decoding an instruction from the selector, an operation unit for executing an operation in accordance with a result of decoding by the decoder, and a temporary copy of a part of the data area on the main memory. Data cache memory for storing data necessary for the operation in the operation unit in response to a request from the operation unit, and reducing the free time of operation resources in the operation unit A priority calculation unit that calculates / changes the priority of each process so as to perform the processing, and refers to the priority of each process calculated / changed by the priority calculation unit. And a control unit for controlling the operation of the selector so as to preferentially select an instruction for the most recent process and output the selected instruction to the decoder.
ãŸãã åèš 2以äžã®åŠçã®å®è¡ã«äŒŽãåœè©²æ
å ±åŠçè£
眮ããå€éšã«å¯ŸããŠéåº ããããªã¯ãšã¹ãã«é¢ããæ
å ±ãåèšåŠçæ¯ã«ç®¡çãããªã¯ãšã¹ã管çéšããã ã«ããªãã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ç®¡çãããŠããåèšãªã¯ã§ ã¹ãã«é¢ããæ
å ±ã«åºã¥ããŠã ååŠçã®åèšåªå
床ãç®åº/å€æŽããããšã奜㟠ããã  The information processing apparatus further includes a request management unit that manages information related to a request transmitted from the information processing apparatus to the outside in accordance with the execution of the two or more processes for each of the processes. It is preferable that the priority of each process is calculated / changed based on the information on the request managed by the management unit.
ããã«ã äž»èšæ¶ããŒã¿ã®èªåºããªã¯ãšã¹ããåèšãªã¯ãšã¹ããšããŠåœè©²æ
å ±åŠ çè£
眮ããå€éšã«å¯ŸããŠéåºãããéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管ç éšã§ç®¡çãããŠããã å€éšããã®å¿çåŸ
ã¡äžã®ãªã¯ãšã¹ãã®æ°ã«å¿ããŠã åœè©²ãª ã¯ãšã¹åã®éåºå
ã§ããåŠçã®åèšåªå
床ãç®åº/å€æŽããããšã奜ãŸããã  Further, when the main memory data read request is sent from the information processing device to the outside as the request, the priority calculation unit is controlled by the request management unit and waits for a response from the outside. It is preferable to calculate / change the priority of the process that is the source of the request according to the number of requests in the request.
ãŸãã åèšãªã¯ãšã¹ãã®æ°ãæå®å€ãè¶
ããŠããå Žåã 該åªå
床ç®åºéšãã åœ è©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽ ããããšã奜ãŸããã  Further, when the number of the requests exceeds a predetermined value, it is preferable that the priority calculation unit changes the priority of the process that is the source of the request to be lower than the current level.
ãªãã åèš 2以äžã®åŠçã®ããããäžã€ã®å®è¡ã«äŒŽã£ãŠéåºãããåèšãªã¯ã§ ã¹ãã«å¯Ÿããå¿çãåãåã£ãéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ 管çãããŠããåœè©²ãªã¯ãšã¹ãã®å±¥æŽã«å¿ããŠã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ãã åŠçã®åèšåªå
床ãç®åº/å€æŽããããšã奜ãŸããã  Note that upon receiving a response to the request transmitted along with the execution of any one of the two or more processes, the priority calculation unit performs a history of the request managed by the request management unit. It is preferable to calculate / change the priority of the process that is the source of the request according to the request.
ããã«ã åœè©²ãªã¯ãšã¹ããã 該ãªã¯ãšã¹ã管çéšã§ç®¡çãããŠããã å€éšãã
ã®å¿çåŸ
ã¡äžã®å
šãŠã®ãªã¯ãšã¹ãã®äžã§æãå€ããã®ã§ããå Žåã 該åªå
床ç®åº éšãã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãçŸç¶ãããé«ãããã ãã«å€æŽããããšã奜ãŸããã Further, the request is managed by the request management unit, If the request is the oldest of all the requests waiting for the response, it is preferable that the priority calculation unit changes the priority of the process that is the source of the request to be higher than the current level. .
ãªãã åèš 2以äžã®åŠçã®ããããäžã€ã®å®è¡ã«äŒŽã£ãŠéåºãããåèšãªã¯ã§ ã¹ãã«å¯Ÿããå¿çãåãåã£ãéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ 管çãããŠããåœè©²ãªã¯ãšã¹ãã®çš®å¥ã«å¿ããŠã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ãã åŠçã®åèšåªå
床ãç®åº/å€æŽããããšã奜ãŸããã  Note that upon receiving a response to the request transmitted along with execution of any one of the two or more processes, the priority calculation unit determines the type of the request managed by the request management unit. It is preferable to calculate / change the priority of the process that is the source of the request according to the request.
ããã«ã åœè©²ãªã¯ãšã¹ããã 該ããŒã¿ãã£ãã·ã¥ã¡ã¢ãªã§ã®ãã¹ãããã«äŒŽã€ ãŠéåºããããã®ã§ããå Žåã 該åªå
床ç®åºéšãã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ã ãåŠçã®åèšåªå
床ãçŸç¶ãããé«ãããããã«å€æŽããããšã奜ãŸããã  Further, when the request is transmitted in response to a mishit in the data cache memory, the priority calculation unit sets the priority of the process that is the source of the request to be lower than the current level. It is preferable to change it to be higher.
ãªãã åœè©²æ
å ±åŠçè£
眮ããå€éšã«å¯Ÿãããªã¯ãšã¹ããçºçããéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ç®¡çãããŠããåœè©²ãªã¯ãšã¹ãã®çš®å¥ã«å¿ã ãŠã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãç®åº/å€æŽããããšã奜 ãŸããã  Note that when a request to the outside is generated from the information processing device, the priority calculation unit determines, based on the type of the request managed by the request management unit, the process of the transmission source of the request. It is preferable to calculate / change the priority.
ãŸãã åœè©²ãªã¯ãšã¹ããã 該ããŒã¿ãã£ãã·ã¥ã¡ã¢ãªã§ã®ãã¹ãããã«äŒŽã£ãŠ éåºããããã®ã§ããå Žåã 該åªå
床ç®åºéšãã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ãã åŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽããããšã奜ãŸããã  Further, when the request is sent in response to a mishit in the data cache memory, the priority calculation unit lowers the priority of the process that is the source of the request from the current level. It is preferable to change as follows.
ãªãã 該æŒç®éšã«ãããæŒç®è³æºã®äœ¿çšç¶æ³ãåèšåŠçæ¯ã«æ¡åããæ¡åéšã ããã«ããªãã 該åªå
床ç®åºéšãã 該æ¡åéšã«ãã£ãŠæ¡åããã該æŒç®è³æºã®äœ¿ çšç¶æ³ã«å¿ããŠã ååŠçã®åªå
床ãç®åº/å€æŽããããšã奜ãŸããã  It is to be noted that the arithmetic unit further includes a sampling unit for sampling the usage status of the computation resources for each of the processes, wherein the priority calculation unit determines each of the processing resources according to the usage status of the computation resources sampled by the sampling unit. It is preferable to calculate / change the processing priority.
ããã«ã åèš 2以äžã®åŠçã®ããããäžã€ã«ã€ããŠè©²æ¡åéšã«ãã£ãŠæ¡åãã ã該æŒç®è³æºã®äœ¿çšç¶æ³ãšããŠã®äœ¿çšçãæå®å€ãè¶
ããŠããå Žåã 該åªå
åºŠç® åºéšãã åœè©²åŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽããããšã奜㟠ããã  Further, when the usage rate as the usage status of the computation resource collected by the collection unit for any one of the two or more processes exceeds a predetermined value, the priority calculation unit may It is preferable to change the priority so as to be lower than the current state.
ãªãã åèš 2以äžã®åŠçã®å®è¡ã«äŒŽãåœè©²æ
å ±åŠçè£
眮ããå€éšã«å¯ŸããŠéåº ããããªã¯ãšã¹ãã«é¢ããæ
å ±ãåèšåŠçæ¯ã«ç®¡çãããªã¯ãšã¹ã管çéšãšã 該 æŒç®éšã«ãããæŒç®è³æºã®äœ¿çšç¶æ³ãåèšåŠçæ¯ã«æ¡åããæ¡åéšãšãããã«ã ãªãã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ç®¡çãããŠããåèšãªã¯ãšã¹ã ã«é¢ããæ
å ±ãšã 該æ¡åéšã«ãã€ãŠæ¡åããã該æŒç®è³æºã®äœ¿çšç¶æ³ãšã«å¿ããŠã
ååŠçã®åªå
床ãç®åº/å€æŽããããšã奜ãŸããã A request management unit that manages information related to a request transmitted from the information processing apparatus to the outside in accordance with the execution of the two or more processes for each of the processes; A collecting unit that collects information on each of the requests managed by the request managing unit; and a use status of the computation resources collected by the collecting unit. And depending on It is preferable to calculate / change the priority of each process.
ãŸãã äž»èšæ¶ããŒã¿ã®èªåºããªã¯ãšã¹ããåèšãªã¯ãšã¹ããšããŠåœè©²æ
å ±åŠç è£
眮ããå€éšã«å¯ŸããŠéåºãããéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéš ã§ç®¡çãããŠããã å€éšããã®å¿çåŸ
ã¡äžã®ãªã¯ãšã¹ãã®æ°ãšã åœè©²ãªã¯ãšã¹ã ã®éåºå
ã§ããåŠçã«ã€ããŠè©²æ¡åéšã«ãã£ãŠæ¡åããã該æŒç®è³æºã®äœ¿çšç¶æ³ ãšã«å¿ããŠã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãç®åº zå€æŽãã ããšã奜ãŸããã  Also, when the read request of the main memory data is sent from the information processing device to the outside as the request, the priority calculation unit is waiting for a response from the outside, which is managed by the request management unit. The priority of the process that is the source of the request is calculated and changed according to the number of requests and the usage status of the processing resource collected by the collection unit for the process that is the source of the request. Is preferred.
ãŸãã åèšãªã¯ãšã¹ ãã®æ°ãæå®ç¯å²å
ã«ããã äžã€ã åœè©²ãªã¯ãšã¹ãã®éåº å
ã§ããåŠçã«ã€ããŠè©²æ¡åéšã«ãã£ãŠæ¡åããã該æŒç®è³æºã®äœ¿çšç¶æ³ãšã㊠ã®äœ¿çšçãæå®å€ãè¶
ããŠããå Žåã 該åªå
床ç®åºéšãã åœè©²ãªã¯ãšã¹ãã®éåº å
ã§ããåŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽããããšã奜ãŸãã¬ãã ãŸãã åèšãªã¯ãšã¹ãã®æ°ãæå®å€ãè¶
ããŠããå Žåã 該åªå
床ç®åºéšãã åœ è©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽ ããããšã奜ãŸããã  In addition, when the number of the requests is within a predetermined range, and the usage rate as the usage status of the operation resources collected by the collection unit for the process from which the request is transmitted exceeds a predetermined value. It is preferable that the priority calculation unit changes the priority of the process that is the transmission source of the request so as to be lower than the current level. Further, when the number of the requests exceeds a predetermined value, it is preferable that the priority calculation unit changes the priority of the process that is the source of the request to be lower than the current level.
ãªãã åœè©²æ
å ±åŠçè£
眮ã«ãããŠåèš 2以äžã®åŠçãå®è¡ããéã«äœ¿çšããã 1以äžã®å®è¡ç°å¢ãšããŠã®ã¯ãŒã¯ããŒãã®ç¹æ§ã ãããã¯ã ãŠãŒã¶ã®èŠæã«å¿ã ãŠã åºæºå€ ïŒåèšåªå
床ã®åæå€ïŒ åèšãªã¯ãšã¹ãã®æ°ãšæ¯èŒãããåèšæå®å€, åèšãªã¯ãšã¹ãã®æ°ãšæ¯èŒãããåèšæå®ç¯å²ïŒ åèšäœ¿çšçãšæ¯èŒãããåèšæ å®å€ïŒ 該åªå
床ç®åºéšã«ããåèšåªå
床ã®å€æŽå¹
ã®ãã¡ã®å°ãªããšãäžã€ïŒ ãæ åã§æäœããããã®æäœæ段ãããã«ããªããããšã奜ãŸããã  The reference value (the initial value of the priority) may be set according to the characteristics of the workload as one or more execution environments used when executing the two or more processes in the information processing device, or according to a user's request. The predetermined value to be compared with the number of requests, the predetermined range to be compared to the number of requests, the predetermined value to be compared to the usage rate, and a change range of the priority by the priority calculation unit. It is preferable to further provide an operation means for manually operating at least one of the above.
ãŸãã åœè©²æ
å ±åŠçè£
眮ã«ãããŠåèš 2以äžã®åŠçãå®è¡ããéã«äœ¿çšããã 1以äžã®å®è¡ç°å¢ãšããŠã®ã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãšã ãã®å®è¡ç¶æ³ã«å¿ããåº æºå€ ïŒåèšåªå
床ã®åæå€ïŒ åèšãªã¯ãšã¹ãã®æ°ãšæ¯èŒãããåèšæå®å€ïŒ åèš ãªã¯ãšã¹ãã®æ°ãšæ¯èŒãããåèšæå®ç¯å²ïŒ åèšäœ¿çšçãšæ¯èŒãããåèšæå®å€ïŒ 該åªå
床ç®åºéšã«ããåèšåªå
床ã®å€æŽå¹
ã®ãã¡ã®å°ãªããšãäžã€ïŒ ãšã®çµã¿å ãããä¿æããããŒãã«ãšã åèšã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãã¢ãã¿ããã¢ãã¿æ 段ãšã 該ã¢ãã¿æ段ã«ããã¢ãã¿çµæãåããŠè©²ããŒãã«ãåç
§ãã åèšåºæºå€ ãã 該ã¢ãšã¿æ段ã«ãã£ãŠã¢ãã¿ãããåèšã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ã«å¿ããã ã®ã«åçã«å€æŽããå€æŽæ段ãšãããã«ããªããããšã奜ãŸããã
ãŸãã äžèšç®çãéæããããã«ã æ¬çºæã®åœä»€åŠçå¶åŸ¡è£
眮ã¯ã äžè¿°ããåœ ä»€ã¡ãã¬ã¹çæéš, åœä»€ãã€ãã·ã¥ã¡ã¢ãªïŒ åœä»€ãããã¡ïŒ ã»ã¬ã¯ã¿ïŒ ãã³ãŒã, æŒç®éšïŒ ããŒã¿ãã£ãã·ã¥ã¡ã¢ãªãããªãã 2以äžã®åŠçã䞊åçã«å®è¡ããæ
å ±åŠçè£
眮ã«ãããŠã åèš 2以äžã®åŠçã«ã€ããŠã®ååœä»€ã®å®è¡ç¶æ
ãå¶åŸ¡ãã åœä»€åŠçå¶åŸ¡è£
眮ã§ãã£ãŠã 該æŒç®éšã«ãããæŒç®è³æºã®ç©ºãæéãåæžããã ãã«ååŠçã®åªå
床ãç®åº Zå€æŽããåªå
床ç®åºéšãšã 該åªå
床ç®åºéšã«ãã£ãŠ ç®åºãå€æŽãããååŠçã®åªå
床ãåç
§ãã åèšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœ 什ãåªå
çã«éžæããŠè©²ãã³ãŒããžåºåããããã«è©²ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ãã å¶åŸ¡éšãšãããªããããšãç¹åŸŽãšããŠããã In addition, the execution status of a workload as one or more execution environments used when executing the two or more processes in the information processing device, and a reference value (an initial value of the priority) according to the execution status. , The predetermined value to be compared with the number of requests, the predetermined range to be compared to the number of requests, the predetermined value to be compared to the usage rate, and a change range of the priority by the priority calculation unit. A table holding a combination of the following: a monitoring means for monitoring the execution status of the workload; and a table obtained by monitoring the monitoring result by the monitoring means, referring to the table, and setting the reference value to: It is preferable to further include a change unit that dynamically changes according to the execution status of the workload monitored by the monitor unit. In order to achieve the above object, an instruction processing control device according to the present invention includes an instruction address generation unit, an instruction cache memory, an instruction buffer, a selector, a decoder, a calculation unit, and a data cache memory. An information processing apparatus for executing processing in parallel, comprising: an instruction processing control apparatus for controlling an execution state of each instruction for the two or more processings, wherein the idle time of operation resources in the operation unit is reduced. Calculate the priority of each process.Refer to the priority calculation unit that changes Z and the priority of each process calculated and changed by the priority calculation unit, and give priority to the instruction for the process with the higher priority. And a control unit for controlling the operation of the selector so as to select and output the data to the decoder.
ãŸãã äžèšç®çãéæããããã«ã æ¬çºæã®åœä»€åŠçå¶åŸ¡æ¹æ³ã¯ã äžè¿°ãã 2 以äžã®åŠçã䞊åçã«å®è¡ããæ
å ±åŠçè£
眮ã«ãããŠã åèš 2以äžã®åŠçã«ã€ã ãŠã®ååœä»€ã®å®è¡ç¶æ
ãå¶åŸ¡ããåœä»€åŠçå¶åŸ¡æ¹æ³ã§ãã£ãŠã 該æŒç®éšã«ããã æŒç®è³æºã®ç©ºãæéãåæžããããã«ååŠçã®åªå
床ãç®åº Zå€æŽããåªå
åºŠç® åºã¹ããããšã 該åªå
床ç®åºã¹ãããã«ãããŠç®åº/å€æŽãããååŠçã®åªå
床 ãåç
§ãã åèšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ãã³ãŒã ãžåºåããããã«è©²ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ããå¶åŸ¡ã¹ããããšãå«ãããšãç¹åŸŽ ãšããŠããã  In order to achieve the above object, an instruction processing control method according to the present invention, in an information processing apparatus that executes two or more processes described above in parallel, executes an execution state of each instruction for the two or more processes. An instruction processing control method for controlling, wherein a priority of each processing is calculated so as to reduce an idle time of a processing resource in the processing unit; a priority calculating step of changing Z; and a calculation / change in the priority calculating step And controlling the operation of the selector so as to preferentially select an instruction for the high-priority processing and output the instruction to the decoder with reference to the priority of each processing performed. I have.
ãŸãã äžèšç®çãéæããããã«ã æ¬çºæã®åœä»€åŠçå¶åŸ¡ããã°ã©ã ã¯ã äžè¿° ãã 2以äžã®åŠçã䞊åçã«å®è¡ããæ
å ±åŠçè£
眮ã«ãããŠã åèš 2以äžã®åŠç ã«ã€ããŠã®ååœä»€ã®å®è¡ç¶æ
ãå¶åŸ¡ããæ©èœãã³ã³ãã¥ãŒã¿ã«å®è¡ãããããã® åœä»€åŠçå¶åŸ¡ããã°ã©ã ã§ãã£ãŠã 該æŒç®éšã«ãããæŒç®è³æºã®ç©ºãæéãåæž ããããã«ååŠçã®åªå
床ãç®åº/å€æŽããåªå
床ç®åºéšã ããã³ã 該åªå
åºŠç® åºéšã«ãã£ãŠç®åº/å€æŽãããååŠçã®åªå
床ãåç
§ãã åèšåªå
床ã®é«ãåŠç ã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ãã³ãŒããžåºåããããã«è©²ã»ã¬ã¯ã¿ã®å äœãå¶åŸ¡ããå¶åŸ¡éšãšããŠã 該ã³ã³ãã¥ãŒã¿ãæ©èœãããããšãç¹åŸŽãšããŠããã ãŸãã äžèšç®çãéæããããã«ã æ¬çºæã®åœä»€åŠçå¶åŸ¡ããã°ã©ã ãèšé²ã ãã³ã³ãã¥ãŒã¿èªåå¯èœãªèšé²åªäœã¯ã äžè¿°ãã 2以äžã®åŠçã䞊åçã«å®è¡ã ãæ
å ±åŠçè£
眮ã«ãããŠã åèš 2以äžã®åŠçã«ã€ããŠã®ååœä»€ã®å®è¡ç¶æ
ãå¶åŸ¡ ããæ©èœãã³ã³ãã¥ãŒã¿ã«å®è¡ãããããã®åœä»€åŠçå¶åŸ¡ããã°ã©ã ãèšé²ãã
ã³ã³ãã¥ãŒã¿èªåå¯èœãªèšé²åªäœã§ãã£ãŠã 該åœä»€åŠçå¶åŸ¡ããã°ã©ã ãã è©²æŒ ç®éšã«ãããæŒç®è³æºã®ç©ºãæéãåæžããããã«ååŠçã®åªå
床ãç®åº zå€æŽ ããåªå
床ç®åºéšã ããã³ã 該åªå
床ç®åºéšã«ãã£ãŠç®åº Zå€æŽãããååŠçã® åªå
床ãåç
§ãã åèšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ã ã³ãŒããžåºåããããã«è©²ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ããå¶åŸ¡éšãšããŠã 該ã³ã³ã㥠ãŒã¿ãæ©èœãããããšãç¹åŸŽãšããŠããã å³é¢ã®ç°¡åãªèª¬æ In order to achieve the above object, an instruction processing control program according to the present invention, in an information processing apparatus that executes two or more processes in parallel, controls an execution state of each instruction for the two or more processes. An instruction processing control program for causing a computer to execute a function to perform, the priority calculating unit calculating / changing the priority of each processing so as to reduce the idle time of the processing resources in the processing unit; and The operation of the selector is controlled so as to refer to the priority of each processing calculated / changed by the degree calculation unit and to preferentially select an instruction for the processing with the higher priority and output the instruction to the decoder. The computer is caused to function as a control unit. According to another aspect of the present invention, there is provided an information processing apparatus that executes the above-described two or more processes in parallel. An instruction processing control program for causing a computer to execute the function of controlling the execution state of each instruction for the A computer-readable recording medium, wherein the instruction processing control program calculates and changes the priority of each processing so as to reduce the idle time of the processing resources in the processing section; The operation of the selector is controlled by referring to the priority of each process whose Z has been changed by the priority calculation unit and preferentially selecting an instruction for the process with the higher priority and outputting it to the decoder. It is characterized in that the computer functions as a control unit. Brief Description of Drawings
å³ 1ã¯æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®æ©èœæ§æã瀺ãããã㯠å³ã§ããã  FIG. 1 is a block diagram illustrating a functional configuration of the information processing apparatus according to the first embodiment of the present invention.
å³ 2ã¯æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã«ããããªã¯ãšã¹ã管çã ãŒããã¬ã瀺ãå³ã§ããã  FIG. 2 is a diagram showing a request management table in the information processing apparatus according to the first embodiment of the present invention.
å³ 3ã¯æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã«ãããåªå
床èšæ¶ããŒã ã«ã瀺ãå³ã§ããã  FIG. 3 is a diagram showing a priority storage table in the information processing apparatus according to the first embodiment of the present invention.
å³ 4ã¯æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®åªå
床ç®åºéšã«ããã第 1ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºæé ã説æããããã®ãããŒãã€äžãã§ã ãã  FIG. 4 is a flowchart for explaining a procedure of calculating a priority variable at a first timing in the priority calculation unit of the information processing apparatus according to the first embodiment of the present invention.
å³ 5ã¯æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®åªå
床ç®åºéšã«ããã第 2ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºæé ã説æããããã®ãããŒãã£ãŒãã§ã ãã  FIG. 5 is a flowchart for explaining a procedure of calculating a priority variable at a second timing in the priority calculation unit of the information processing apparatus according to the first embodiment of the present invention.
å³ 6ã¯æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®åªå
床ç®åºéšã«ããã第 3ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºæé ã説æããããã®ãããŒãã£ãŒãã§ã ãã  FIG. 6 is a flowchart for explaining a procedure of calculating a priority variable at a third timing in the priority calculation unit of the information processing apparatus according to the first embodiment of the present invention.
å³ 7ã¯æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®åªå
床ç®åºéšã«ããã第 4ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºæé ã説æããããã®ãããŒãã£ãŒãã§ã ãã  FIG. 7 is a flowchart illustrating a procedure of calculating a priority variable at a fourth timing in the priority calculation unit of the information processing apparatus according to the first embodiment of the present invention.
å³ 8ã¯æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®åœä»€å¶åŸ¡æ¹æ³ã®æé ã説 æããããã®ãããŒãã€äžãã§ããã  FIG. 8 is a flowchart for explaining the procedure of the instruction control method of the information processing apparatus according to the first embodiment of the present invention.
å³ 9ã¯æ¬çºæã®ç¬¬ 2å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®æ©èœæ§æã瀺ããããã¯
å³ã§ããã FIG. 9 is a block diagram showing a functional configuration of the information processing apparatus according to the second embodiment of the present invention. FIG.
å³ 1 0ã¯æ¬çºæã®ç¬¬ 3å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®æ©èœæ§æã瀺ãããã ã¯å³ã§ããã  FIG. 10 is a block diagram showing a functional configuration of an information processing apparatus according to the third embodiment of the present invention.
å³ 1 1ã¯æ¬çºæã®ç¬¬ 3å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã«ãããããŒãã«ã瀺ã å³ã§ããã  FIG. 11 is a diagram showing a table in the information processing device according to the third embodiment of the present invention.
å³ 1 2ã¯äžè¬çãªãã«ãã¹ã¬ããæ¹åŒãæ¡çšããæ
å ±åŠçè£
眮ã®æ©èœæ§æã瀺 ããããã¯å³ã§ããã çºæãå®æœããããã®æè¯ã®åœ¢æ
 FIG. 12 is a block diagram showing a functional configuration of an information processing apparatus employing a general multi-thread method. BEST MODE FOR CARRYING OUT THE INVENTION
以äžã å³é¢ãåç
§ããŠæ¬çºæã®å®æœã®åœ¢æ
ã説æããã  Hereinafter, embodiments of the present invention will be described with reference to the drawings.
ã1ã 第 1å®æœåœ¢æ
 [1] First embodiment
ãŸãã æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã«ã€ããŠèª¬æããã å³ 1㯠第 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®æ©èœæ§æã瀺ããããã¯å³ã§ããã ãã®å³ 1ã«ç€ºãããã«ã æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã¯ã å³ 1 2ã§ç€ºã ããããªäžè¬çãªãã«ãã¹ã¬ããæ¹åŒãæ¡çšããæ
å ±åŠçè£
眮ãšåæ§ã®åœä»€ã¡ã ã¬ã¹çæéš 1ïŒ 1次åœä»€ãã£ãã·ã¥ã¡ã¢ãª 2 , åœä»€ãããã¡ 3 , ã»ã¬ã¯ã¿ 4 , ã ã³ãŒã 5 , æŒç®éš 6 , ã¬ãžã¹ã¿ 7 , 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ïŒ 2次ãã€ã ã·ã¥ã¡ã¢ãª 9ãããªãããšãšãã«ã ãªã¯ãšã¹ã管çéš 1 2ïŒ åªå
床ç®åºéš 1 3 , å¶åŸ¡éš 1 4 , æ¡åéš 1 5ãããã«ããªããŠæ§æãããŠããã  First, an information processing device according to the first embodiment of the present invention will be described. FIG. 1 is a block diagram showing a functional configuration of the information processing apparatus according to the first embodiment. As shown in FIG. 1, the information processing apparatus according to the first embodiment of the present invention has the same configuration as that shown in FIG. An instruction address generator 1, a primary instruction cache memory 2, an instruction buffer 3, a selector 4, a decoder 5, an arithmetic unit 6, an arithmetic unit 6, registers 7, 1 similar to an information processing device employing a general multi-thread system. A secondary data cache memory 8 and a secondary cache memory 9 are provided, and a request management unit 12, a priority calculation unit 13, a control unit 14, and a sampling unit 15 are further provided.
ãªãã å³ 1äžã æ¢è¿°ã®ç¬Šå·ãšåäžã®ç¬Šå·ã¯ã åäžã®éšåãããã¯ã»ãŒåäžã®éš åã瀺ããŠããã®ã§ã ãã®è©³çŽ°ãªèª¬æã¯çç¥ããã  Note that, in FIG. 1, the same reference numerals as those described above indicate the same or almost the same portions, and thus detailed description thereof will be omitted.
ãªã¯ãšã¹ã管çéš 1 2ã¯ã å€éšã¡ã¢ãª 1 1ã«å¯Ÿããã€ã³ã¿ãŒãã§ãŒã¹ãšããŠæ© èœãããã®ã§ããã ãã£ãã·ã¥ãã¹ãçºçããå Žåã ãªã¯ãšã¹ã管çéš 1 2ãä» ããŠå€éšã¡ã¢ãª 1 1ãåç
§ãã åœè©²åœä»€èªçŸ€ãããŒã¿ããã§ãããããã ãã®éã ãªã¯ãšã¹ã管çéš 1 2ã¯ã ãã£ãã·ã¥ãã¹ãçºçããåœä»€ãããã¯ããŒã¿ãå€éš ã¡ã¢ãª 1 1ãåç
§ããããã«éåºãããªã¯ãšã¹ãã管çããããã éåºããã㪠ã¯ãšã¹ãã«é¢ããæ
å ±ãäžæçã«èšæ¶ãããªã¯ãšã¹ã管çããŒãã« 1 2 aãã㪠ããŠããã · å³ 2ã«ç€ºãããã«ã ãªã¯ãšã¹ã管çéš 1 2ã®ãªã¯ãšã¹ã管çããŒã^^ 1 2 aã§
ã¯ã å€éš ïŒå³ã¡ã å€éšã¡ã¢ãª 1 1 ) ãžéåºããããªã¯ãšã¹ ãã®ãªã¯ãšã¹ã I D㫠察å¿ãããŠã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åŠç I Dãšã åœè©²ãªã¯ãšã¹ã ã®å¿çåŸ
ã¡ãã©ã° ïŒåœè©²ãªã¯ãšã¹ãã«å¯Ÿããå¿çã®æç¡ã瀺ããã©ã°ïŒ ãšã ãªã¯ ãšã¹ã管çããŒãã« 1 2 aã«åœè©²ãªã¯ãšã¹ãã®ã§ã³ããªãäœæãããæéãšãä¿ æãããããã«æ§æãããŠããã The request management unit 12 functions as an interface to the external memory 11. When a cache miss occurs, the request management unit 12 refers to the external memory 11 via the request management unit 12, Data is fetched. At this time, the request management unit 12 manages the request transmitted by the instruction or data in which the cache miss has occurred in order to refer to the external memory 11, and temporarily stores the information related to the transmitted request. It has a management table 12a. · As shown in Fig. 2, the request management unit 12 uses the request management tape ^^ 12 a Is associated with the request ID of the request sent to the outside (ie, the external memory 11), the process ID of the process that is the source of the request, and a response waiting flag of the request (the response of the request). (A flag indicating the presence / absence of the request) and the time when the entry of the request is created in the request management table 12a.
ããã§ã æ¬å®æœåœ¢æ
ã®æ
å ±åŠçè£
眮ã«ãããŠã åŠç I Dããããã ãAJïŒ ãBã ãšãã 2ã€ã®åŠçã䞊åçã«å®è¡ãããŠãããšãããšã å³ 2ã«ç€ºããªã¯ã§ ã¹ ã管çéš 1 2ã®ãªã¯ãšã¹ã管çããŒãã« 1 2 aã«ã¯ã ãªã¯ãšã¹ã I D (ã1 J ã ã3 J ) æ¯ã«åŠç I Dãšã㊠ãAj ããã㯠ãBã ãèšå®ããã å¿çåŸ
ã¡ãã© ã°ã«ã¯ã åœè©²ãªã¯ãšã¹ ããå¿çåŸ
ã¡ ïŒãªã¯ãšã¹ ãéåºæžã¿ïŒ ã§ããã° ã1ãã å¿ çåŸ
ã¡ã§ãªããã° ïŒãªã¯ãšã¹ ãæªéåºïŒ ã0ã ãèšå®ãããã ããã«ã ãªã¯ãšã¹ ã I Dæ¯ã«å¿çåŸ
ã¡ãã©ã°ãæç«ããŠããã®çµéæéãç®åºããããã«ã ãªã¿ãš ã¹ ã管çããŒãã« 1 2 aã«ãšã³ããªãäœæãããæé ïŒãT 1ã ã ã΀ 3ãïŒ ãèš å®ãããã  Here, in the information processing apparatus according to the present embodiment, assuming that two processes whose process IDs are âAJâ and âBâ are respectively executed in parallel, the request management unit 12 shown in FIG. In the request management table 12a, "Aj" or "B" is set as the processing ID for each request ID ("1J to" 3J) ", and the response waiting flag indicates that the request is waiting for a response. If no response has been sent, â1â is set. If no response is waiting (request has not been sent), â0â is set. Furthermore, in order to calculate the elapsed time since the response wait flag was established for each request ID, the time when the entry was created in the request management table 12a ("T1" to "΀3") Is set.
ãŸãã åªå
床ç®åºéš 1 3ã¯ã ãªã¯ãšã¹ã管çéš 1 2ã«ãã£ãŠç®¡çãããæ
å ±ã æŒç®éš 6ã«ãããæŒç®è³æºã®äœ¿çšç¶æ³ ïŒäžè¿°ããæ¡åéš 1 5ã«ããæ¡åçµæïŒ ã« åºã¥ããŠã æ¬æ
å ±åŠçè£
眮ã§å®è¡ãããååŠç ïŒã¹ã¬ã ãïŒ ã¹ãã©ã³ãïŒ ã®åªå
床ãç®åº Îå€æŽãããã®ã§ã åŠçæ¯ ïŒããã§ã¯åŠç ÎïŒ Îæ¯ïŒ ã«äºãèšå®ããã åªå
床å€æ° ïŒä»¥äžã åªå
床åæå€ãšããïŒ ãä¿æãããšãšãã«ã ããŒã¿ãã€ãã· ã¥ãã¹ã«é¢é£ããç¶æ³ã«å¿ããŠäžèšåªå
床åæå€ããæ°ããªåªå
床å€æ°ãç®åºã ãç®åºéš 1 3 aãšã ãã®ç®åºéš 1 3 aã§ç®åºãããåŠçæ¯ã®åªå
床å€æ°ãèšæ¶ã ãåªå
床èšæ¶ããŒãã« 1 3 bãšãããªããŠããã  Further, the priority calculation unit 13 is configured by the information processing apparatus based on the information managed by the request management unit 12 and the usage status of the calculation resources in the calculation unit 6 (the collection result by the collection unit 15 described above). The priority of each process (thread, strand) to be executed is calculated and changed. A priority variable (hereinafter referred to as a priority initial value) set in advance for each process (here, each process Î, Î) Calculating unit 13a that calculates a new priority variable from the above-mentioned priority initial value according to the situation related to the data cache miss, and the priority for each process calculated by this calculating unit 13a. It has a priority storage table 13b for storing degree variables.
ãªãã æ¬å®æœåœ¢æ
ã«ãããŠã ããŒã¿ãã£ãã·ã¥ãã¹ã«é¢é£ããç¶æ³ãšã¯ã ãªã¯ ãšã¹ã管çéš 1 2ãä»ããŠå€éšãžèªã¿åºã ïŒåç
§ïŒ ãªã¯ãšã¹ããéåºãããã¿ã€ ãã³ã° ïŒä»¥äžã 第 1ã®ã¿ã€ãã³ã°ãšãããïŒ ãšã åœè©²ãªã¯ãšã¹ ãã«å¯Ÿããå¿çã ãªã¯ãšã¹ã管çéš 1 2ãåãåã£ãã¿ã€ãã³ã° ïŒä»¥äžã 第 2ã®ã¿ã€ãã³ã°ãšãã ãïŒ ãšã åœè©²ãªã¯ãšã¹ãã«å¯Ÿããå¿çã 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ã«ã§ã³ã ãªãããã¿ã€ãã³ã° (以äžã 第 3ã®ã¿ã€ãã³ã°ãšããã) ãšã ããŒã¿ãã£ãã·ã¥ ãã¹ãçºçããã¿ã€ãã³ã° ïŒä»¥äžã 第 4ã®ã¿ã€ãã³ã°ãšãããïŒ ãšã®ããšãèšã¬ãã
åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 aã¯ã äžèšã®ç¬¬ 1ã第 4ã®ã¿ã€ãã³ã°ã§ã åœè©²ãª ã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åªå
床å€æ°ãã å³ 4ãå³ 7ãåç
§ããªããåŸè¿°ã ãæé ã«åŸã£ãŠç®åºããããã«æ§æãããŠããã In this embodiment, the situation related to the data cache miss refers to the timing (hereinafter also referred to as the first timing) at which the read (reference) request is sent to the outside via the request management unit 12. The timing at which the request management unit 12 receives a response to the request (hereinafter, also referred to as a second timing) and the timing at which the response to the request is entered into the primary data cache memory 8 (hereinafter, referred to as a third timing). Timing), and the timing at which a data cache miss occurs (hereinafter, also referred to as the fourth timing). The calculating unit 13a of the priority calculating unit 13 converts the priority variable of the process that is the transmission source of the request at the above-described first to fourth timings with reference to FIGS. It is configured to calculate according to the following procedure.
ãããŠã å³ 3ã«ç€ºãããã«ã åªå
床èšæ¶ããŒãã« 1 3 bã§ã¯ã åŠç I D (ãã ã§ã¯ã åŠç A, B ) æ¯ã«åªå
床å€æ° [ P (A) , P (B ) ] ãä¿æããããã«æ§æ ãããŠããã äžèšã®ç¬¬ 1ã第 4ã®ã¿ã€ãã³ã°ã§ç®åºãããåªå
床å€æ°ããã®éœåºŠ å€æŽ ïŒæžãæãïŒ ããã ååŠçã®åªå
床ãšããŠåžžã«ææ°ã®ç®åºãããåªå
床å€æ° ãèšæ¶ãããã  Then, as shown in FIG. 3, in the priority storage table 13b, the priority variables [P (A), P (B)] are stored for each process ID (here, processes A and B). The priority variables calculated at the above-mentioned first to fourth timings are changed (rewritten) each time, and the latest calculated priority variables are always stored as the priority of each process.
ãŸãã å¶åŸ¡éš 1 4ã¯ã åªå
床ç®åºéš 1 3ã®åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ã ããååŠçã®åªå
床å€æ°ãåç
§ãã ãã®åªå
床å€æ°ã«åºã¥ããŠã åªå
床ã®é«ãåŠ çã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠãã³ãŒã 5ãžåºåããããã«ã»ã¬ã¯ã¿ 4ã® åäœãå¶åŸ¡ãããã®ã§ããã  Further, the control unit 14 refers to the priority variables of the respective processes stored in the priority storage table 13b of the priority calculation unit 13, and based on the priority variables, executes the process with the higher priority. The operation of the selector 4 is controlled so that an instruction for processing is preferentially selected and output to the decoder 5.
ããã«ã æ¡åéš 1 5ã¯ã æŒç®éš 6ã«ãããæŒç®è³æºã®äœ¿çšç¶æ³ãåŠçæ¯ã«æ¡å ãããã®ã§ããã æ¡åéš 1 5ã§æ¡åãããæŒç®è³æºã®äœ¿çšç¶æ³ã«åºã¥ããŠã åŸè¿° ããåªå
床ç®åºéš 1 3ã«ããã第 1ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºçãè¡ãª ãããã  Further, the sampling unit 15 is for sampling the usage status of the computing resources in the arithmetic unit 6 for each process, and based on the usage status of the computing resources sampled in the sampling unit 15, a priority calculation unit described later. Calculation of a priority variable at the first timing in 13 is performed.
ããã§ã æŒç®è³æºã®äœ¿çšç¶æ³ãšã¯ã äŸãã°ã åœä»€ãŠã£ã³ããŠã®ãšã³ããªäœ¿çšç, ãªããŒãã³ã°ã¬ãžã¹ã¿ã®äœ¿çšçïŒ ãã§ããããŒãã®ãšã³ããªäœ¿çšçïŒ ãªã¶ã¹ãŒã· ã§ã³ã¹ãäžã·ã§ã³ã®ã§ã³ããªäœ¿çšçãæ¡åãããã  Here, the usage status of the processing resources is, for example, the entry usage rate of the instruction window, the usage rate of the renaming register, the entry usage rate of the fetch port, and the entry usage rate of the reservation station.
ãªãã æ¬æ
å ±åŠçè£
眮ã®åæ©èœã®ãã¡ã®å°ãªããšãåªå
床ç®åºéš 1 3åã³å¶åŸ¡ éš 1 4ã«ããã æ¬çºæã®åœä»€åŠçå¶åŸ¡è£
眮ãšããŠã®æ©èœãå®çŸãããã  The function as the instruction processing control device of the present invention is realized by at least the priority calculation unit 13 and the control unit 14 among the functions of the information processing device.
次ã«ã å³ 4ãå³ 7ãåç
§ããªããåªå
床ç®åºéš 1 3ã«ããã第 1ã第 4ã®ã¿ã€ ãã³ã°ã§ã®åªå
床å€æ°ç®åºæé ã«ã€ããŠèª¬æããã ãªãã ããã§ã¯åŠç Aã«ã€ã ãŠåªå
床å€æ°ã®ç®åº Zå€æŽãè¡ãªãããå Žåã説æããã ãŸãã ååŠçã«ã¯äºã åªå
床åæå€ãèšå®ãããŠããã åŸè¿°ããåªå
床å€æ°ã®ç®åºãå€æŽãåããŠè¡ãª ãããå Žåã¯ã ãã®åªå
床åæå€ãçŸç¶ã®åªå
床å€æ°ãšããŠçšããããããã«ãª ã€ãŠããã ãªãã åªå
床å€æ°ã¯ã ãã®æ°å€ãå°ããçšã åªå
床ãé«ãããšãšããã å³ 4ã«ç€ºããããŒãã£ãŒã ïŒã¹ããã S 1 0ã S 1 6 ) ã«åŸã£ãŠã åªå
床ç®åº éš 1 3ã«ããã第 1ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºæå·é ã«ã€ããŠèª¬æããã
ãŸãã åŠç Aããã®åœä»€ã®å®è¡æã«äœ¿çšãããããŒã¿ã®ãã€ãã·ã¥ãã¹ã®çºçã« å¿ããŠã ãªã¯ãšã¹ã管çéš 13ããå€éšã¡ã¢ãª 1 1ã®èªã¿åºããªã¯ãšã¹ããéåº ããããã©ãããå€æããã ïŒã¹ããã S 10)ã ãªãã ãã®ãªã¯ãšã¹ããéåº ããããã©ãã ïŒç¬¬ 1ã®ã¿ã€ãã³ã°ïŒ ã¯ã ãªã¯ãšã¹ã管çéš 1 2ã®ãªã¯ãšã¹ã管 çããŒãã« 12 aã«ãããå¿çåŸ
ã¡ãã©ã°ã«åºã¥ããŠã åªå
床ç®åºéš 1 3ã®ç®åº éš 1 3 aãå€æããã Next, the procedure of calculating the priority variables in the first to fourth timings in the priority calculating unit 13 will be described with reference to FIGS. Here, a case where the calculation Z of the priority variable is changed in the process A will be described. In addition, a priority initial value is set in advance for each process, and when the calculation of the priority variable described later is changed for the first time, the priority initial value is set so as to be used as the current priority variable. It is. The priority variable has a higher priority as its numerical value is smaller. The calculation of the priority variable at the first timing in the priority calculation unit 13 at the first timing will be described with reference to the flowchart (steps S10 to S16) shown in FIG. First, it is determined whether or not a request to read the external memory 11 has been sent from the request management unit 13 in accordance with the occurrence of a cache miss of data used when executing the instruction from the process A (step S10). Whether or not this request has been sent (first timing) is determined by the calculation unit 13a of the priority calculation unit 13 based on the response waiting flag in the request management table 12a of the request management unit 12. to decide.
ããã§ãªã¯ãšã¹ããéåºãããŠããªããã° ïŒã¹ããã S 10ã® Nãã«ãŒãïŒã åœè©²ãªã¯ãšã¹ãã®éä¿¡å
ãšãªãåŠç Aã®åªå
床å€æ° P (A) ã¯å€æŽãããã åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããåªå
床ã®ãŸãŸãšãªã ïŒã¹ããã S 1 1) 1 ãªã¯ãšã¹ 1ããéåºããããªãã° (ã¹ããã S 10ã® YE Sã«ãŒã ïŒç¬¬ 1ã®ã¿ã€ã ã³ã°ïŒã ãã®ãªã¯ãšã¹ãã®éåºå
ã§ããåŠç Aã«ãããå€éš ïŒå€éšã¡ã¢ãª 1 1) ããã®å¿çåŸ
ã¡äžã®ãªã¯ãšã¹ã ïŒã€ãŸãã åœè©²ãªã¯ãšã¹ ãã®åã«æ¢ã«ãªã¯ãšã¹ã 管çããŒã ^ /㬠1 2 aã«ãšã³ããªãäœãããåŠç Aã«ã€ããŠã®ãªã¯ãšã¹ãïŒ ã®æ° W ('ãªã¯ãšã¹ãéåº Â·åãåãæã«ã ã«ãŠã³ã¿ã®å¢æžãå®æœããããšã§ç®¡çããã å€ïŒ ãæå®æ° X 1以äžã§ããã äžã€ã æå®æ° X 2ãããå°ãããã©ãããå€æã ãã ïŒã¹ããã S 1 2)ã ãªãã X IïŒ X 2ã¯é©å®èšå®ãããèªç¶æ°ã§ããã 㪠ã¯ãšã¹ãæ° Wã¯ã ãªã¯ãšã¹ã管çéš 12ã®ãªã¯ãšã¹ã管çããŒãã« 12 aã«åºã¥ ã¬ããŠã åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 aãå€æããã  If the request has not been sent (N route of step S10), the priority variable P (A) of the process A that is the source of the request is not changed and is stored in the priority storage table 13b. (Step S11) If 1 request 1 is transmitted (YE S route of step S10; first timing), the request is sent to processing A that has transmitted the request. The number of requests waiting for a response from the outside (external memory 11) (that is, the request for process A for which an entry has already been made on the request management tape ^ / le 12a before the request) W ( 'When the request is sent and received, it is determined whether the value managed by increasing / decreasing the counter) is equal to or more than the predetermined number X1 and smaller than the predetermined number X2 (step S12). . Note that XI and X2 are natural numbers that are appropriately set, and the number of requests W is calculated based on the request management table 12a of the request management unit 12, and is calculated by the calculation unit 13a of the priority calculation unit 13. Judge.
ããã§ã ãªã¯ãšã¹ãæ° Wãæå®æ° X 1ä»¥äž X 2æªæºã®ç¯å²å
ã§ãªããã° ïŒã¹ã ãã S 1 2ã® Nãã«ãŒãïŒã ãªã¯ãšã¹ ãæ° Wãæå®æ° X 2以äžã§ãããã©ããã å€æãã (ã¹ããã S 1 3)ã ããã§ã ãªã¯ãšã¹ ãæ° Wãæå®æ° X2ãããå°ã ããã° ïŒã¹ããã S 1 3ã® NOã«ãŒã ïŒ W=X 2)ã åŠç Aã®åªå
床å€æ° P (A) ã¯å€æŽãããã åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããåªå
床ã®ãŸãŸãšãª ã (ã¹ããã S 1 1)ã ãããã ãªã¯ãšã¹ãæ° Wãæå®æ° X 2以äžã§ããã° ïŒã¹ ããã S 1 3ã® YE Sã«ãŒãïŒã çŸç¶ã®åªå
床å€æ° P (A) ã«äºãèšå®ãããè£ æ£æ° i 2 (>0) ãå ããããŠåŠç Aã®åªå
床å€æ° P (A) ãå€æŽããã ïŒã¹ã ãã S 14)ã  Here, if the number of requests W is not within the range of the predetermined number X1 or more and less than X2 (N route of step S12), it is determined whether the request number W is the predetermined number X2 or more. (Step S 13). Here, if the number of requests W is smaller than the predetermined number X 2 (NO route of Step S 13; W = X 2), the priority variable P (A) of the process A becomes The priority is not changed and remains as the priority stored in the priority storage table 13b (step S11). However, if the number of requests W is equal to or more than the predetermined number X 2 (YE S route of step S 13), the correction number i 2 (> 0) preset in the current priority variable P (A) is In addition, the priority variable P (A) of the process A is changed (step S14).
ãŸãã ãªã¯ãšã¹ ãæ° Wãæå®æ° X 1ä»¥äž X 2æªæºã®ç¯å²å
ã§ããã° ïŒã¹ããã S 12ã® YE Sã«ãŒãïŒã åœè©²ãªã¯ãšã¹ ãã®éä¿¡å
ã§ããåŠç Aã«ãããä»ã®åœ
什ãã çŸåšã æŒç®éš 6ã®æŒç®è³æºãæå®å€ Y (䜿çšçïŒ ä»¥äžä¿ŸçšããŠãããã©ã ããå€æããã ïŒã¹ããã S 1 5 )ã ããã§ã åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 a ã¯ã æ¡åéš 1 5ã§æ¡åãããåŠç Aã«ã€ããŠã®æŒç®éš 6ã®æŒç®è³æºã®äœ¿çšç¶æ³ (åè¿°ããå皮䜿çšçïŒ ãçšããŠå€æããã ãããŠã åŠç Aã®æŒç®éš 6ã®æŒç®è³ æºã®äœ¿çšçã Yãããå°ãªããã° ïŒã¹ããã S 1 5ã® N Oã«ãŒãïŒã åŠç Aã®åª å
床å€æ° P (A) ã¯å€æŽãããã åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããåªå
床 ã®ãŸãŸãšãªã ïŒã¹ããã S 1 1 )ã ãããšã¯éã«ã åŠç Aã®æŒç®éš 6ã®æŒç®è³æº ã®äœ¿çšçã γ以äžã§ããã° ïŒã¹ããã S 1 5ã® Y E Sã«ãŒãïŒã çŸç¶ã®åªå
åºŠå€ æ° P (A) ã«äºãèšå®ãããææ£æ° i 1 (> 0 ) ãå ããããŠåŠç Aã®åªå
åºŠå€ æ° P (A) ãå€æŽããã ïŒã¹ããã S 1 6 )ã If the number of requests W is in the range of a predetermined number X1 or more and less than X2 (YE S route in step S12), other instructions related to process A, which is the source of the request, are executed. It is determined whether or not the instruction currently uses the computing resources of the computing unit 6 for a predetermined value Y (usage rate) or more (step S15). Here, the calculation unit 13 a of the priority calculation unit 13 determines using the use status of the calculation resources of the calculation unit 6 for the process A collected by the collection unit 15 (the various usage rates described above). . If the utilization rate of the operation resources of the operation unit 6 of the process A is smaller than Y (NO route in step S15), the priority variable P (A) of the process A is not changed, and the priority is stored. The priority stored in the table 13b remains (step S11). Conversely, if the usage rate of the processing resources of the processing unit 6 of the processing A is equal to or more than γ (YES route in step S15), the trapping set in advance to the current priority variable P (A) is performed. The priority variable P (A) of the process A is changed by adding a positive number i 1 (> 0) (step S 16).
ãªãã ãã®ããã«ç®åºãããåªå
床å€æ° P (A) ã¯ã ãã®éœåºŠã åªå
床ç®åºéš 1 3ã®åªå
床èšæ¶ããŒãã« 1 3 bã«ãããŠå€æŽãããã  The priority variable P (A) calculated in this way is changed in the priority storage table 13b of the priority calculation unit 13 each time.
ãŸãã æŒç®éš 6ã®æŒç®è³æºã®äœ¿çšç¶æ³ãšããŠã äžè¿°ã®ããšãåœä»€ãŠã£ã³ããŠã® ãšã³ããªäœ¿çšçïŒ ãªããŒãã³ã°ã¬ãžã¹ã¿ã®äœ¿çšçïŒ ãã§ããããŒãã®ãšã³ããªäœ¿ çšçïŒ ãªã¶ã¹ãŒã·ãšã³ã¹ããŒã·ã§ã³ã®ãšã³ããªäœ¿çšçãçšããå Žåã åªå
床ç®åº éš 1 3ã«ããã第 1ã®ã¿ã€ãã³ã°ã§ã®åŠçã«ãããŠäœ¿çšãããæŒç®è³æºã®äœ¿çšç¶ æ³ãšããŠã äžèš 4ã€ã®äœ¿çšçã®ãã¡ããããäžã€ãæ¡çšãã ãã®æŒç®è³æºã«å¯Ÿå¿ ããåºæºå€ Yãèšå®ããããšã«ããã æŒç®è³æºã®äœ¿çšç¶æ³ã®å€å®æ¡ä»¶ãèšå®ã㊠å€å®åŠç ïŒã¹ããã S 1 5 ) ãè¡ãªãããã«ããŠãããã ããã«ã äžèš 4ã€ã®æŒ ç®è³æºã®å
šãŠãæ¡çšããŠå€å®æ¡ä»¶ãèšå®ããŠããããã ããã 4ã€ã®æŒç®è³æºã® ãã¡å°ãªããšã 1ã€ã®æŒç®è³æºããããå€å®æ¡ä»¶ãã¯ãªã¡ããã°æ¡ä»¶æç«ãšãªã ããã«æ§æããŠãããã  In addition, as described above, the use status of the instruction window entry, the renaming register, the fetch port entry, and the reservation station entry are used as the operation resources of the operation unit 6 as described above. The priority calculation unit 13 uses one of the above four usage rates as the usage status of the computing resources used in the processing at the first timing, and the reference value corresponding to the computing resource is used. By setting Y, it is also possible to set the condition for judging the usage status of the computational resource and perform the judgment process (step S15). Further, the determination condition may be set by employing all of the above four computing resources, or the condition may be satisfied if at least one of the four computing resources clears such a determination condition. You may comprise.
ãã®ããã«ã åªå
床ç®åºéš 1 3ã§ã¯ã ããŒã¿ãã£ãã·ã¥ãã¹ãçºçãã ãªã¯ã§ ã¹ã管çéš 1 2ãä»ããŠã ãããããŒã¿ã®å€éšã¡ã¢ãª 1 1ãžã®èªã¿åºããªã¯ãšã¹ ããéåºãããéã«ã ãªã¯ãšã¹ã管çéš 1 2ã®ãªã¯ãšã¹ ã管çããŒãã« 1 2 a㧠管çãããŠããåœè©²ãªã¯ãšã¹ãã®éä¿¡å
ã§ããåŠçã«ã€ããŠãªã¯ãšã¹ã管çã㌠ãã« 1 2 aã«ãšã³ããªãäœããããªã¯ãšã¹ãã®æ° Wã«å¿ããŠã åœè©²ãªã¯ã§ã¹ ãã® éä¿¡å
ã§ããåŠçã®åªå
床å€æ° P (A) ãç®åºããŠã æ¢ã«åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããŠããåœè©²åŠçã®åªå
床å€æ°ãå€æŽããã ãªãã ãã®å€æŽã¯ã çŸ
ç¶ãããåªå
床ãäœããªãããã«è¡ãªãããã As described above, in the priority calculation unit 13, when a data cache miss occurs and a request to read such data to the external memory 11 is sent out via the request management unit 12, the request management Regarding the process that is the source of the request managed in the request management table 12a of Part 1 2, according to the number W of requests for which entries have been made in the request management table 12a, the request The priority variable P (A) of the process which is the transmission source is calculated, and the priority variable of the process already stored in the priority storage table 13 b is changed. Note that this change The priority is lower than the priority.
ãã®ãããªå€æŽ ïŒã¹ããã S 1 4 ) ãè¡ãªãããšã«ããã ããŒã¿ãã£ãã·ã¥ã ã¹ãå€ãçºçããŠããåŠç以å€ã®ä»ã®åŠçã®å®è¡ãåªå
ãããããšã«ãªãã æŒç® éš 6ã®æŒç®è³æºã«ç©ºãæéãçããããããšãæå¶ããããšãã§ããã  By performing such a change (step S14), execution of processing other than the processing in which many data cache misses occur is prioritized, and the free time for the processing resources of the processing unit 6 is reduced. Can be suppressed.
ãŸãã åªå
床ç®åºéš 1 3ã§ã¯ã æ¡åéš 1 5ã«ãã£ãŠæ¡åãããæŒç®éš 6ã®æŒç® è³æºã®äœ¿çšç¶æ³ ïŒäœ¿çšçïŒ ã«å¿ããŠã åœè©²ãªã¯ãšã¹ãã®éä¿¡å
ã§ããåŠçã®åªå
床å€æ°ãç®åºããŠã æ¢ã«åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããŠããåœè©²åŠçã® åªå
床å€æ°ãå€æŽããã ãªãã ãã®å€æŽãã çŸç¶ãããåªå
床ãäœããªãããã« è¡ãªãããã  In addition, the priority calculation unit 13 calculates the priority variable of the process that is the transmission source of the request in accordance with the usage status (usage rate) of the calculation resource of the calculation unit 6 collected by the collection unit 15. Then, the priority variable of the process that has already been stored in the priority storage table 13 b is changed. This change is also made so that the priority is lower than the current status.
ãã®ãããªå€æŽ (ã¹ããã S 1 6 ) ãè¡ãªãããšã«ããã 䜿çšçã®é«ãåŠç以 å€ã®ä»ã®åŠçã®å®è¡ãåªå
ãããããšã«ãªãã è€æ°ã®åŠç ïŒããã§ã¯åŠç AïŒ B ) ã«ããæŒç®éš 6ã®æŒç®è³æºã®äœ¿çšãã©ã³ã¹ãä¿ã€ããšãã§ãã å¹çè¯ãè€æ° ã®åŠçãå®è¡ãããããšãã§ããã  By making such a change (step S16), the execution of other processings other than the processing with a high usage rate is given priority, and the arithmetic unit by a plurality of processings (here, processings A and B) is executed. The use balance of the computing resources of No. 6 can be maintained, and a plurality of processes can be executed efficiently.
次ã«ã å³ 5ã«ç€ºããããŒãã£ãŒã ïŒã¹ããã S 2 0ãS 2 2 ) ã«åŸã£ãŠã åªå
床ç®åºéš 1 3ã«ããã第 2ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºæé ã«ã€ããŠèª¬æ ããã ããã§ã¯ã ãªã¯ãšã¹ã管çéš 1 2ãä»ããŠå€éš ïŒå€éšã¡ã¢ãª 1 1 ) ãžéåº ããåŠç Aã«ã€ããŠã®ãªã¯ãšã¹ããå€éšãããªã¯ãšã¹ã管çéš 1 2ãžæ»ã£ãŠãã éã« ïŒç¬¬ 2ã®ã¿ã€ãã³ã°ïŒã ãã®å€éšããåãåã£ãå¿çãã åŠç Aã§çºçãã ããŒã¿ãã£ãã·ã¥ãã¹ã«èµ·å ãããã®ã§ããã ãã€ã å€éšããã®å¿çåŸ
ã¡äžã®åŠ ç Aã§çºçããããŒã¿ãã£ãã·ã¥ãã¹ã«èµ·å ããå
šãŠã®ãªã¯ãšã¹ãã®äžã§æãå€ ããã®ã§ãããã©ãããå€æããã ïŒã¹ããã S 2 0 )ã  Next, the calculation procedure of the priority variable at the second timing in the priority calculation unit 13 will be described with reference to the flowchart (steps S20 to S22) shown in FIG. Here, when the request for process A sent to the outside (external memory 11) via the request management unit 12 returns to the request management unit 12 from outside (second timing), The received response is due to a data cache miss that occurred in process A, and is the oldest of all requests due to a data cache miss that occurred in process A while waiting for an external response. Is determined (step S20).
ããã§ã ãªã¯ãšã¹ã管çéš 1 2ãå€éšã¡ã¢ãª 1 1ããã®å¿çãåãåã£ãã¿ã€ ãã³ã° ïŒç¬¬ 2ã®ã¿ã€ãã³ã°ïŒ ã¯ã å¿çã®åãåãã«äŒŽãã ãªã¯ãšã¹ã管çéš 1 2 ã®ãªã¯ãšã¹ã管çããŒãã« 1 2 aã®ãšã³ããªãç¡å¹åãããã¿ã€ãã³ã°ã§ããã ãã®ãšãã«åªå
床ç®åºéš 1 3ã«ä¿¡å·ãéãããããšã§ææ¡ããããšãã§ããã 㟠ãã åœè©²ãªã¯ãšã¹ãã®å±¥æŽ ïŒæãå€ããã®ã§ãããåŠãïŒ ã«ã€ããŠã¯ã ãªã¯ãšã¹ ã管çããŒãã« 1 2 aã«ãããã§ã³ããªãäœæãããæéã«åºã¥ããŠåªå
床ç®åº éš 1 3ã®ç®åºéš 1 3 aãå€æããã  Here, when the request management unit 12 receives the response from the external memory 11 (second timing), the entry of the request management table 12 a of the request management unit 12 becomes This is the timing of invalidation, which can be grasped by sending a signal to the priority calculation unit 13 at this time. The history of the request (whether it is the oldest or not) is calculated by the calculation unit 13a of the priority calculation unit 13 based on the time when the entry was created in the request management table 12a. to decide.
ãããŠã å€éšããåãåã£ãå¿çãã åŠç Aã§çºçããããŒã¿ãã£ãã·ã¥ãã¹
ã«èµ·å ãã ãã€ã ãããåŠç Aã«èµ·å ããããŒã¿ãã£ãã·ã¥ãã¹ã®å¿çåŸ
ã¡äžã® å
šãŠã®ãªã¯ãšã¹ãã®äžã§æãå€ããã®ã§ããã° ïŒã¹ããã S 2 0ã® Y E Sã«ãŒ ãïŒã çŸç¶ã®åªå
床å€æ° P (A) ããäºãèšå®ãããè£æ£æ° i 3 ( > 0 ) ãæžã ãããŠã åŠç Aã®åªå
床å€æ° P (A) ãå€æŽããã ïŒã¹ããã S 2 1 )ã ãããš ã¯éã«ã å€éšããåãåã£ãå¿çãã åŠç Aã§çºçããããŒã¿ãã£ãã·ã¥ãã¹ã« èµ·å ãããã®ã§ã¯ãªãã ãããã¯ã ãããåŠç Aã«èµ·å ããããŒã¿ãã£ãã·ã¥ã ã¹ã®å¿çåŸ
ã¡äžã®å
šãŠã®ãªã¯ãšã¹ãã®äžã§æãå€ããã®ã§ãªããã° ïŒã¹ããã S 2 0ã® N Oã«ãŒãïŒã åŠç Aã®åªå
床å€æ° P (A) ã¯å€æŽãããã åªå
床èšæ¶ã äžãã« 1 3 bã«èšæ¶ãããçŸç¶ã®åªå
床ã®ãŸãŸãšãªã ïŒã¹ããã S 2 2 )ã The response received from the outside is the data cache miss that occurred in process A. If the request is the oldest of all the requests waiting for the response to the data cache miss caused by the process A (YES route in step S20), the current priority variable P ( The preset correction number i 3 (> 0) is subtracted from A), and the priority variable P (A) of the process A is changed (step S 21). Conversely, the response received from the outside is not due to the data cache miss that occurred in process A, or is included in all requests that are waiting for a data cache miss response due to process A. If it is not the oldest (NO route of step S20), the priority variable P (A) of the process A is not changed, and the current priority stored in the priority storage template 13b is not changed. (Step S22).
ãã®ããã«ã ããåŠçã®å®è¡ã«äŒŽã£ãŠéåºãããããŒã¿ãã£ãã·ã¥ãã¹ã«èµ·å ãããªã¯ãšã¹ãã«å¯Ÿããå¿çããªã¯ãšã¹ã管çéš 1 2ã«ãããŠåãåã£ãéã«ã åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 aããªã¯ãšã¹ã管çéš 1 2ã§ç®¡çãããŠããåœè©² ãªã¯ãšã¹ãã®å±¥æŽã«å¿ããŠã åœè©²ãªã¯ãšã¹ãã®éä¿¡å
ã§ããåŠçã®åªå
床å€æ°ã ç®åºããŠã æ¢ã«åªå
床èšæ¶ããŒãã«èšæ¶ãããŠããåœè©²åŠçã®åªå
床å€æ°ãå€æŽ ããã ãªãã ãã®å€æŽã¯ã çŸç¶ãããåªå
床ãé«ããªãããã«è¡ãªãããã ãã®ãããªå€æŽ (ã¹ããã S 2 1 ) ãè¡ãªãããšã«ããã ããŒã¿ãã£ãã·ã¥ã ã¹ã«ããåæ¢ãããŠããåœä»€ã®äžã§æãå€ã¬ãåœä»€ã®éåºå
ã§ããåŠçãåªå
çã« å®è¡ãããããšã«ãªãã ãããåŠçã®å®è¡ãã¹ã ãŒãºã«è¡ãªãããã  As described above, when the request management unit 12 receives a response to a request resulting from a data cache miss sent in connection with the execution of a certain process, the calculation unit 13 a of the priority calculation unit 13 performs request management. The priority variable of the process that is the source of the request is calculated in accordance with the history of the request managed by the unit 12, and the priority variable of the process already stored on the priority storage tape is calculated. change. This change is made so that the priority is higher than the current status. By performing such a change (step S 21), the process which is the oldest instruction among the instructions stopped by the data cache miss and the source of the instruction is executed with priority. The execution of such processing is performed smoothly.
ãªãã æ¬å®æœåœ¢æ
ã§ã¯ã å€éšããåãåã£ãå¿çããããåŠçã®ããŒã¿ãã€ã ã·ã¥ãã¹ã«èµ·å ããå
šãŠã®å¿çåŸ
ã¡äžã®ãªã¯ãšã¹ãã®äžã§æãå€ããã®ã§ããå Ž åã«ã®ã¿ã åªå
床ãé«ããããã«ãããã æãå€ããã®ã§ãªãã åãåã£ãå¿ç ãããçšåºŠå€ããã®ã§ããã°åªå
床ãé«ããããã«æ§æããŠãããã  In the present embodiment, the priority is increased only when the response received from the outside is the oldest of all the requests waiting for a response due to the data cache miss of the process. If the response received is not the oldest but the response received is somehow old, the priority may be increased.
次ã«ã å³ 6ã«ç€ºããããŒãã£ãŒã ïŒã¹ããã S 3 0ãS 3 2 ) ã«åŸã£ãŠã åªå
床ç®åºéš 1 3ã«ããã第 3ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºæé ã«ã€ããŠèª¬æ ããã ããã§ã¯ã å€éšããåãåã£ãå¿çãåŠç Aã«äŒŽã£ãŠçºçããããŒã¿ã〠ãã·ã¥ãã¹ã«åºã¥ããŠéåºããããªã¯ãšã¹ãã«å¯Ÿãããã®ã§ãã£ãå Žåã«ã ãã® å¿çã 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ã«ãšã³ããªããããã©ãããå€æãã ïŒã¹ ããã S 3 0 )ã ããã§ã ãã®å¿çã 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ã«ãšã³ã㪠ããããšå€æãããã° ïŒã¹ããã S 3 0ã® Y E Sã«ãŒã ïŒç¬¬ 3ã®ã¿ã€ãã³ã°ïŒã
çŸç¶ã®åªå
床å€æ° P (A) ã«äºãèšå®ãããè£æ£æ° i 4 (> 0 ) ãæžããããŠåŠ ç Aã®åªå
床å€æ° P (A) ãå€æŽããã ïŒã¹ããã S 3 1 )ã ãããšã¯éã«ã ã ã®å¿çã 1次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ã«ãšã³ããªããããšå€æãããªããã° (ã¹ããã S 3 0ã® N Oã«ãŒãïŒã åŠç Aã®åªå
床å€æ° P (A) ã¯å€æŽãããã åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããåªå
床ã®ãŸãŸãšãªã ïŒã¹ããã S 3 2 )ã ãã®ããã«ã ããåŠçã®å®è¡ã«äŒŽã£ãŠéåºããããªã¯ãšã¹ãã«å¯Ÿããå¿çã 1 次ããŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ã«ãšã³ããªãããéã«ã åœè©²å¿çãã ãªã¯ãšã¹ã管 çéš 1 2ã§ç®¡çãããŠããåœè©²ãªã¯ãšã¹ãã«å¯Ÿããå¿çã§ãã£ãå Žåã å³ã¡ã åœ è©²ãªã¯ãšã¹ãã®çš®å¥ãã å€éšã¡ã¢ãª 1 1ãžã®ããŒã¿ã®èªã¿åºãã§ãã£ãå Žåã åœ è©²ãªã¯ãšã¹ãã®éä¿¡å
ã§ããåŠçã®åªå
床å€æ°ãç®åºããŠã æ¢ã«åªå
床èšæ¶ã㌠ãã«èšæ¶ãããŠããåœè©²åŠçã®åªå
床å€æ°ãå€æŽããã ãªãã ãã®å€æŽã¯ã çŸç¶ ãããåªå
床ãé«ããªãããã«è¡ãªãããã Next, the procedure of calculating the priority variable at the third timing in the priority calculation unit 13 will be described with reference to the flowchart (steps S30 to S32) shown in FIG. Here, if the response received from the outside is for the request sent based on the data cache miss that occurred in process A, it is determined whether this response was entered in the primary data cache memory 8. (Step S30) If it is determined that this response has been entered in the primary data cache memory 8 (YES route of step S30; third timing), The correction number i 4 (> 0) preset for the current priority variable P (A) is reduced, and the priority variable P (A) of the process A is changed (step S31). Conversely, if it is not determined that this response has been entered in the primary data cache memory 8 (NO route in step S30), the priority variable P (A) of the process A is not changed, and the priority is not changed. The priority stored in the degree storage table 13b remains (step S32). As described above, when a response to a request sent in accordance with execution of a certain process is entered in the primary data cache memory 8, the response is a response to the request managed by the request management unit 12. In other words, if the type of the request is reading of data to the external memory 11, the priority variable of the process that is the transmission source of the request is calculated, and the priority is already stored. Change the priority variable of the process stored in the table. This change is made so that the priority is higher than the current status.
ãã®ãããªå€æŽ ïŒã¹ããã S 3 1 ) ãè¡ãªãããšã«ããã ããŒã¿ãã£ãã·ã¥ã ã¹ã«ããåæ¢ãããŠããåœä»€ãå®è¡ãããããã«ãªã段éã§åªå
床ãé«ãèšå®ã ãã ããŒã¿ãã£ãã·ã¥ãã¹ã«ããåæ¢ãããŠããåœä»€ã®éåºå
ã§ããåŠçã«å±ã ãåœä»€ãåªå
çã«ãã³ãŒãã«éããã å®è¡ãã¹ã äžãºã«è¡ãªãããã  By performing such a change (step S31), the priority is set high when the instruction stopped by the data cache miss is executed, and the instruction is stopped by the data cache miss. The instruction belonging to the process from which the instruction is sent is preferentially sent to the decoder, and the execution is performed smoothly.
次ã«ã å³ 7ã«ç€ºããããŒãã£ãŒã ïŒã¹ããã S 4 0ãS 4 2 ) ã«åŸã£ãŠã åªå
床ç®åºéš 1 3ã«ããã第 4ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åºæé ã«ã€ããŠèª¬æ ããã ããã§ã¯ã åŠç Aã®å®è¡ã«äŒŽã£ãŠããŒã¿ãã£ãã·ã¥ãã¹ãçºçãããã©ã ããå€æãã (ã¹ããã S 4 0 )ã ããŒã¿ãã£ãã·ã¥ãã¹ãçºçãããªãã° (ã¹ ããã S 4 0ã® Y E Sã«ãŒã ïŒç¬¬ 4ã®ã¿ã€ãã³ã°ïŒã çŸç¶ã®åªå
床å€æ° P (A) ã«äºãèšå®ãããææ£æ° i 5 (> 0 ) ãå ããããŠåŠç Aã®åªå
床å€æ° P (A) ãå€æŽããã (ã¹ããã S 4 1 )ã ãããšã¯éã«ã ããŒã¿ãã£ãã·ã¥ãã¹ãçºç ããŠããªããã° ïŒã¹ããã S 4 0ã® Nãã«ãŒãïŒã åŠç Aã®åªå
床å€æ° P (A) ã¯å€æŽãããã åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããçŸç¶ã®åªå
床ã®ãŸãŸãšãª ã ïŒã¹ããã S 4 2 )ã  Next, the procedure of calculating the priority variable at the fourth timing in the priority calculation unit 13 will be described with reference to the flowchart (steps S40 to S42) shown in FIG. Here, it is determined whether or not a data cache miss has occurred along with the execution of the process A (step S40). If a data cache miss has occurred (YES route in step S40; Timing), a preset capture number i 5 (> 0) is added to the current priority variable P (A), and the priority variable P (A) of the process A is changed (step S41). . Conversely, if a data cache miss has not occurred (N route of step S40), the priority variable P (A) of the process A is not changed and is stored in the priority storage table 13b. The current priority set remains (step S42).
ãã®ããã«ã ããŒã¿ãã£ãã·ã¥ãã¹ãçºçããéã«ã åªå
床ç®åºéš 1 3ãåœè©² ããŒã¿ãã£ãã·ã¥ãã¹ã®çºçå
ã§ããåŠçã®åªå
床å€æ°ãç®åºããŠã æ¢ã«åªå
床 èšæ¶ããŒãã«èšæ¶ãããŠããåœè©²åŠçã®åªå
床å€æ°ãå€æŽããã ãªãã ãã®å€æŽ
ã¯ã çŸç¶ãããåªå
床ãäœããªãããã«è¡ãªãããã In this way, when a data cache miss occurs, the priority calculation unit 13 calculates the priority variable of the process that is the source of the data cache miss, and calculates the priority variable that has already been stored in the priority storage tape. Change the processing priority variable. This change Is done so that the priority is lower than the current status.
ãã®ãããªå€æŽ ïŒã¹ããã S 4 1 ) ãè¡ãªãããšã«ããã ããŒã¿ãã£ãã·ã¥ã ã¹ã®çºçããåŠç以å€ã®ä»ã®åŠçã®å®è¡ãåªå
ãããããšã«ãªãã æŒç®éš 6ã®æŒ ç®è³æºã«ç©ºãæéãçããããããšãæå¶ããããšãã§ããã  By making such a change (step S41), execution of processing other than the processing in which the data cache miss occurred is given priority, and free time is generated in the operation resources of the arithmetic unit 6. Can be suppressed.
以äžã®ããã«ã åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 aã«ãããŠã äžè¿°ãã第 1ã第 4ã®ã¿ã€ãã³ã°ã§ã ããããç¬ç«ããŠåªå
床å€æ°ã®ç®åº/å€æŽãè¡ãªããã ãã® ç®åºçµæãã ãã®éœåºŠã åªå
床ç®åºéš 1 3ã®åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ã ããã ãªãã åªå
床ç®åºéš 1 3ã«ãããŠåŠç Bã«ã€ããŠãåŠç Aãšåæ§ã«åªå
床 å€æ°ã®ç®åº Zå€æŽãè¡ãªãããã  As described above, in the calculation unit 13 a of the priority calculation unit 13, the priority variables are independently calculated / changed at the above-described first to fourth timings, and the calculation results are Each time, it is stored in the priority storage table 13b of the priority calculation unit 13. In the priority calculation unit 13, the calculation Z of the priority variable is changed for the process B as in the process A.
次ã«ã å³ 8ã«ç€ºããããŒãã£ãŒã ïŒã¹ããã S 5 0 , S 5 1 ) ã«åŸã£ãŠã æ¬å® æœåœ¢æ
ã®æ
å ±åŠçè£
眮ã«ãããã åœä»€åŠçå¶åŸ¡æ¹æ³ã®æé ã«ã€ããŠèª¬æããã ã ã®å³ 8ã«ç€ºãããã«ã æ¬å®æœåœ¢æ
ã®æ
å ±åŠçè£
眮ã§ã¯ã åªå
床ç®åºéš 1 3ã«ãã ãŠååŠçã®åªå
床ãç®åºããåªå
床ç®åºã¹ããã S 5 0ãšã å¶åŸ¡éš 1 4ãã åªå
床ç®åºã¹ããã S 5 0ã§ç®åº/å€æŽãããååŠçã®åªå
床ãåç
§ãã åªå
床ã®é« ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠãã³ãŒã 5ãžåºåããããã«ã»ã¬ã¯ã¿ 4ã®åäœãå¶åŸ¡ããå¶åŸ¡ã¹ããã S 5 1ãšã«ãã£ãŠåœä»€åŠçå¶åŸ¡ãè¡ãªãããã åªå
床ç®åºã¹ããã S 5 0ã§ã¯ã åªå
床ç®åºéš 1 3ã«ãããŠã å³ 4ãå³ 7ãå ç
§ããªããäžè¿°ããæé ã§ã ååŠçã®åªå
床ãç®åº/å€æŽãããã ããã§ã åªå
床ç®åºã¹ããã S 5 0ã®åŠçã¹ãããæ°ãå€ãå Žåã«ã¯ã äŸåé¢ä¿ããããªãåŠ çã䞊åã«å®è¡ããããšãèãããã ããã«ã äžã€ã®åŠçãè€é㧠1ã¯ããã¯ãµ ã£ã¯ã«ã«åãŸããªãå Žåã«ã¯ãã€ãã©ã€ã³åããããšãèããããã ãã®ããã« ããŠã åªå
床ç®åºã¹ããã S 5 0ãã æŒç®åšã®ã¯ããã¯ãµã€ã¯ã«ã«é¢ããŠãã«ã ããã¯ã«ãªããªãããã«èæ
®ããã ãŸãã å¶åŸ¡ã¹ããã S 5 1ã§ã¯ã å¶åŸ¡éš 1 4 å ã»ã¬ã¯ã¿ 4ãå¶åŸ¡ãã åœä»€ãããã¡ 3ã«ä¿æãããŠããåœä»€ã®ãã¡ã åªå
床 ã®é«ãåŠçãåªå
床ç®åºéš 1 3ã®åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããåŠç A, Bã®åªå
床å€æ°ã«åºã¥ããŠã ååŠçã®åªå
床å€æ°ãæ¯èŒãåªå
床ã®é«ãæ¹ã®åŠç ã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠã ãã³ãŒã 5ãžæ倧㧠4ã€ã®åœä»€ãåºåãã ãã  Next, the procedure of the instruction processing control method in the information processing apparatus of the present embodiment will be described with reference to the flowchart (steps S50, S51) shown in FIG. As shown in FIG. 8, in the information processing apparatus according to the present embodiment, the priority calculation step S50 for calculating the priority of each process in the priority calculation unit 13 and the control unit 14 include a priority calculation step. Degree calculation step Controls the operation of selector 4 so as to refer to the priority of each processing calculated / changed in S50 and preferentially select the instruction for the processing with higher priority and output it to decoder 5. The instruction processing control is performed by the control step S51. In the priority calculation step S50, the priority of each process is calculated / changed in the priority calculation unit 13 in the procedure described above with reference to FIGS. Here, when the number of processing steps of the priority calculation step S50 is large, it is conceivable to execute processing having no dependency in parallel, and furthermore, one processing is complicated and one clock cycle is required. If it does not fit, a pipeline may be considered. In this way, the priority calculation step S50 is considered so as not to become a volt-neck for the clock cycle of the arithmetic unit. Further, in the control step S 51, the control unit 14 controls the power selector 4, and among the instructions held in the instruction buffer 3, the high-priority processing is performed by the priority storage table 1 of the priority calculation unit 13. 3 Based on the priority variables of processes A and B stored in b, compare the priority variables of each process, select the instruction for the process with the higher priority first, and send it to the decoder 5 at most. Outputs four instructions.
ãªãã åœä»€ãããã¡ 3ã«åªå
床ã®é«ãåŠçã®åœä»€ãååšããªãå Žåã«ã¯ã 次ã«
åªå
床ã®é«ãåŠçã«å±ããåœä»€ãéžæãããã ãŸãã åœä»€ãããã¡ 3ãããã³ãŒ ã 5ãžéãããåœä»€ã®æ°ããã³ãŒãæ° ïŒããã§ã¯ 4ã€ïŒ ãããå°ãªãå Žåã«ã¯ã åªå
床ã®é«ãé ã«æ¬¡ã
ãšååŠçã®åœä»€ãéžæãããŠãã³ãŒã 5ãžéãããã ãã® å Žåã 1ã€ã®ãµã€ã¯ã«ã«è€æ°ã®åŠçã®åœä»€ããã³ãŒããããããšã«ãªãã If there is no high-priority processing instruction in instruction buffer 3, An instruction belonging to a process with a higher priority is selected. If the number of instructions sent from the instruction buffer 3 to the decoder 5 is smaller than the number of decoders (here, four), instructions for each processing are selected one after another in descending order of priority and sent to the decoder 5. Can be In this case, multiple processing instructions are decoded in one cycle.
ãã®ãšãã å¶åŸ¡éš 1 4ã¯ã ã»ã¬ã¯ã¿ 4ããã³ãŒã 5ãžåœä»€ãåºåããæå®åšæ ã« 1åäœåããŠã åŠçãåãæ¿ããããã«æ§æãããŠããã ããã¯ã ã»ã¬ã¯ã¿ 4 ããã³ãŒã 5ãžåœä»€ãåºåããåšææ¯ã«å¶åŸ¡éš 1 4ãäœåãããŠã åªå
床ã«åºã¥ ããŠåŠçãåãæ¿ãããšã åŠçã®åãæ¿ãã«ãããã³ã¹ããé«ããªã€ãŠããŸãã ããã£ãŠã¹ã«ãŒãããã®åäžã«æ¯éãããããŠããŸãããã§ããã  At this time, the control unit 14 is configured to operate once in a predetermined period in which the selector 4 outputs an instruction to the decoder 5 to switch processing. This is because if the control unit 14 is activated every time the selector 4 outputs an instruction to the decoder 5 and the processing is switched based on the priority, the cost of switching the processing is increased, and the throughput is rather increased. This will hinder the improvement of the quality.
ãŸãã ãã®ãšãã å¶åŸ¡éš 1 4ãã»ã¬ã¯ã¿ 4ããã³ãŒã 5ãžåœä»€ãåºåããåšæ æ¯ã«ã åªå
床ç®åºéš 1 3ã®åªå
床èšæ¶ããŒãã« 1 3 bã«èšæ¶ãããåŠç AïŒ Bã® åªå
床å€æ°ãæ¯èŒãã åŠç AãšåŠç Bãšã®åªå
床å€æ°ã®å·®ãäºãèšå®ãããéŸå€ 以äžã®å Žåã«ã¯ã åªå
床ã®é«ãæ¹ã®åŠçã®åœä»€ãåªå
çã«éžæããŠãã³ãŒã 5ãž åºåãããããã«æ§æããŠãããã ããã«ããã äžèšã®åŠçã®åãæ¿ãã«ããã ã³ã¹ãåäžãæå¶ããããšãšãã«ã å¹ççã«åŠçãåãæ¿ããããšãã§ãããã. ã¹ã«ãŒãããã確å®ã«åäžãããããšãã§ããã .  At this time, the control unit 14 sets the priority variables of the processes A and B stored in the priority storage table 13 b of the priority calculation unit 13 every cycle in which the selector 4 outputs the instruction to the decoder 5. If the difference between the priority variables of the processing A and the processing B is equal to or larger than a preset threshold value, the instruction of the processing with the higher priority is preferentially selected and output to the decoder 5. May be configured. As a result, the cost increase associated with the above-described process switching is suppressed, and the process can be switched efficiently, so that the throughput can be reliably improved. .
ãã®ããã«ã æ¬çºæã®ç¬¬ 1å®æœåœ¢æ
ãšããŠã®æ
å ±åŠçè£
眮ã«ããã°ã ãã€ãã· ã¥ãã¹ã«ããå€éšã¡ã¢ãª 1 1ã®èªã¿åºããªã¯ãšã¹ãã®ç·æ°ã æŒç®éš 6ã®æŒç®è³æº ã®äœ¿çšç¶æ³ ïŒç¬¬ 1ã®ã¿ã€ãã³ã°ïŒã ããŒã¿ãã£ãã·ã¥ãã¹ã«ããèªã¿åºããªã¯ã§ ã¹ãéåºããã®çµéæé ïŒç¬¬ 2ã®ã¿ã€ãã³ã°ïŒã ããŒã¿ãã£ãã·ã¥ãã¹ã«ããèª ã¿åºããªã¯ãšã¹ãã®å¿çã®æç¡ ïŒç¬¬ 3ã®ã¿ã€ãã³ã°ïŒã ããŒã¿ãã£ãã·ã¥ãã¹ã® çºçã®æç¡ ïŒç¬¬ 4ã®ã¿ã€ãã³ã°ïŒ ã«å¿ããŠã ååŠçã®åªå
床ãç®åº Zå€æŽããã ãã®åªå
床ã«åºã¥ããŠåœä»€ãããã¡ 3ã«ä¿æãããåœä»€ããã³ãŒã 5ãžåºåãã ãŠæŒç®éš 6ã«ãããŠå®è¡ãããããã å®éã®åœä»€å®è¡ç¶æ³ã«å¿ããŠæŒç®éš 6ã®æŒ ç®è³æºãè€æ°ã®åŠçã§å¹ççã«äœ¿çšãããããšã«ãªãã æŒç®è³æºã«ç©ºãæéãçº çããããšã確å®ã«æå¶ãããŠã ã¹ã«ãŒãããã倧å¹
ã«åäžãããã Â As described above, according to the information processing apparatus as the first embodiment of the present invention, the total number of read requests of the external memory 11 due to a cache miss, the usage status (first timing) of the operation resources of the operation unit 6, the data Elapsed time from sending read request due to cache miss (second timing), response to read request due to data cache miss (third timing), occurrence of data cache miss (fourth timing) The priority of each process is calculated according to the Z. The instruction held in the instruction buffer 3 is output to the decoder 5 based on the priority and is executed in the arithmetic unit 6, so that the actual instruction execution status is changed. In this case, the computing resources of the computing unit 6 are used efficiently in a plurality of processes, and it is ensured that free time is generated in the computing resources. Indeed, the throughput is greatly improved.
ãªãã æ¬å®æœåœ¢æ
ã§ã¯ã åªå
床ç®åºéš 1 3ã«ãããŠç¬¬ 1ã第 4ã®ã¿ã€ãã³ã°ã§ åªå
床å€æ°ãç®åºããããã«æ§æãããã ãããåŠçã®åªå
床ãé«ããåŠçã§ã ã第 2ã®ã¿ã€ãã³ã°åã³ç¬¬ 3ã®ã¿ã€ãã³ã°ã§ã®ç®åºã¯ã ããããäžæ¹ãè¡ãªãã
ãã«æ§æããŠãããã In the present embodiment, the priority calculation unit 13 is configured to calculate the priority variables at the first to fourth timings. For the calculation at the third timing, either It may be configured as follows.
ã2ã 第 2å®æœåœ¢æ
 [2] Second embodiment
次ã«ã æ¬çºæã®ç¬¬ 2å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã«ã€ããŠèª¬æããã å³ 9㯠第 2å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®æ©èœæ§æã瀺ããããã¯å³ã§ããã ãªãã å³ 9äžã æ¢è¿°ã®ç¬Šå·ãšåäžã®ç¬Šå·ã¯ã åäžã®éšåãããã¯ã»ãŒåäžã®éšåã瀺ã ãŠããã®ã§ã ãã®è©³çŽ°ãªèª¬æã¯çç¥ããã  Next, an information processing device according to a second embodiment of the present invention will be described. FIG. 9 is a block diagram illustrating a functional configuration of the information processing apparatus according to the second embodiment. Note that, in FIG. 9, the same reference numerals as those described above indicate the same or almost the same portions, and thus detailed description thereof will be omitted.
å³ 9ã«ç€ºãããã«ã æ¬çºæã®ç¬¬ 2å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã¯ã äžèšã®ç¬¬ 1å®æœåœ¢æ
ã®æ
å ±åŠçè£
眮ãšåæ§ã®æ§æã«å ããŠã ããã«æäœæ段 1 6ïŒ ã¢ãã¿ æ段 1 8ïŒ è¡šç€ºæ段 2 0ãããªããŠæ§æãããŠããã  As shown in FIG. 9, the information processing apparatus according to the second embodiment of the present invention has the same configuration as the information processing apparatus of the above-described first embodiment, and further includes operation means 16, monitor means 18, It is provided with display means 20.
æäœæ段 1 6ã¯ã ããåŠçã®å®è¡ç°å¢ãšããŠã®ã¯ãŒã¯ããŒãã®ç¹æ§ã ãããã¯. ããç¹å®ã®åŠçã®åªå
床ã決å®ããããã®å€ ïŒåºæºå€ãšãããïŒ ãã æåã§æäœ ãããã®ã§ããã  The operation means 16 is for manually operating the characteristic of the workload as the execution environment of a certain process or the value (also referred to as a reference value) for determining the priority of a certain process.
ãŸãã ã¢ãã¿æ段 1 8ã¯ã æ¬æ
å ±åŠçè£
眮ã§å®è¡ãããŠããåŠçæ¯ã®ã¯ãŒã¯å£ äžãã®å®è¡ç¶æ³ãã¢ãã¿ãããã®ã§ããã å
·äœçã«ã¯ã ååŠçã®æŒç®è³æºã®äœ¿çš ç¶æ³ïŒ ãã£ãã·ã¥ã¡ã¢ãªã®äœ¿çšç¶æ³çãããæ
å ±åŠçè£
眮ã®åæ©èœã®äœ¿çšç¶æ³ã ã¢ãã¿ããŠããã ãŸãã 衚瀺æ段 2 0ã¯ã ã¢ãã¿æ段 1 8ã§ã¢ãã¿ãããååŠç ã®ã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãæ¬æ
å ±åŠçè£
眮ã«æ¥ç¶ãããã¢ãã¿çã«è¡šç€ºããã ã®ã§ããã  The monitoring means 18 is for monitoring the execution status of the work module for each process executed by the information processing apparatus. The usage status of each function of the information processing device such as the usage status of the information processing device is monitored. The display means 20 displays the execution status of the workload of each process monitored by the monitor means 18 on a monitor or the like connected to the information processing apparatus.
ããã§ã ããç¹å®ã®åŠçã®åªå
床ã決å®ããããã®å€ ïŒåºæºå€ïŒ ãšã¯ã å
·äœç ã«ã¯ã åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 aã§æåã«ãããåŠçã®åªå
床ãç®åºãã éã«äœ¿çšãããåªå
床åæå€ã 䞊ã³ã«ã 第 1ã第 4ã®ã¿ã€ãã³ã°ã§åªå
床ãç®åº ããããã«äœ¿çšãããæå®å€ X 1ïŒ X 2 , Yã åã³ã è£æ£æ° i lãi 5ã®ããšã ããã  Here, the value (reference value) for determining the priority of a specific process is, specifically, the calculation unit 13a of the priority calculation unit 13 calculates the priority of the process first applied. Priority values used in the calculation, and predetermined values X1, X2, Y, and correction numbers il to i5 used to calculate the priority at the first to fourth timings. That means.
æ¬å®æœåœ¢æ
ã®æ
å ±åŠçè£
眮ã«ãããŠã åŠç AãšåŠç Bãšã䞊åçã«å®è¡ãã㊠ããå Žåã«ã ãããæ
å ±åŠçè£
眮ã䜿çšããŠãããŠãŒã¶ãåŠç Aã«ã€ããŠåªå
ç ã«å®è¡ãããå Žåã«ã¯ã æäœæ段 1 6ãæäœããŠã åªå
床ç®åºéš 1 3ã«ãããŠä¿ æãã䜿çšãããŠããåºæºå€ãåŠç Aã®åªå
床å€æ°ãäœããªãããã«å€æŽããã ãšã«ããã åŠç Aã®åªå
床ãçžå¯Ÿçã«é«ããŠã åŠç Aã«ã€ããŠã®åœä»€ãåªå
çã« ãã³ãŒã 5ãžåºåãããŠå®è¡ãããããã«æäœããããšãã§ããã ãªãã æäœæ
段 1 6ã¯ã ããŒããŒãïŒ ããŠã¹çã®ããŒããŠã§ã¢ãšã ãã®ããŒããŠã§ã¢ãæäœã ãããšã«ãã£ãŠå
¥åãããæ
å ± ïŒæ°å€çïŒ ãç®åºéš 1 3 aã§äœ¿çšãããå€ã«åæ ããããœãããŠãšã¢ãšãå«ããã³ãã·ã³ã£ã³ã¿ãŒãã§ãŒã¹ã§ããã In the information processing apparatus of the present embodiment, when the processing A and the processing B are executed in parallel, and the user using the information processing apparatus wants to execute the processing A with priority, the operation By operating the means 16 to change the reference value held and used in the priority calculating section 13 so that the priority variable of the processing A becomes lower, the priority of the processing A is made relative. The instruction for the process A can be preferentially output to the decoder 5 and executed. The operation hand Step 16 includes hardware such as a keyboard and a mouse, and software for reflecting information (numerical values and the like) input by operating the hardware to values used in the calculator 13a. It is a man machine interface.
å
·äœçã«ã¯ã 以äžã® ïŒ1 ) ã ïŒ5 ) ã®æäœãè¡ãªãããšã«ããã åŠç Aã®åªå
床ãé«ããããã«ããããšãã§ããã  Specifically, by performing the following operations (1) to (5), the priority of the process A can be increased.
( 1 ) åŠç Aã®åªå
床åæå€ãä»ã®åŠç Bã®åªå
床åæå€ãããå°ããããã ããã«ããã åŠç Aã®åªå
床å€æ°ãçžå¯Ÿçã«å°ããããŠã åŠç Aã®åªå
床ãé« ããããšãã§ããã  (1) The priority initial value of the process A is made smaller than the priority initial values of the other processes B. As a result, the priority variable of the process A can be relatively reduced, and the priority of the process A can be increased.
( 2 ) 第 1ã®ã¿ã€ãã³ã°ã§äœ¿çšããã X IïŒ X 2 (å³ 4äžã¹ããã S 1 2 , ã¹ ããã S 1 3åç
§ïŒ ã®å€ã倧ããããã  (2) Increase the values of XI and X2 (see steps S12 and S13 in Fig. 4) used at the first timing.
ããã«ããã ãã£ãã·ã¥ãã¹ã®çºçãå€ããªã€ãŠãã åªå
床å€æ°ã倧ãããªã ããã«å€æŽãããŠåªå
床ãäœããããããšããªãããã«ããããšãã§ããã  As a result, even if the number of occurrences of cache misses increases, it is possible to prevent the priority variable from being changed to be large and the priority from being lowered.
( 3 ) 第 1ã®ã¿ã€ãã³ã°ã§äœ¿çšããã Y (å³ 4äžã¹ããã S 1 5åç
§ïŒ ã®å€ã 倧ããããã  (3) Increase the value of Y (see step S15 in Fig. 4) used at the first timing.
ããã«ããã åŠç Aã«ãããåœä»€ãå€ãã®æŒç®è³æºãå©çšããŠããå Žåã§ãã åªå
床å€æ°ã倧ãããªãããã«å€æŽãããŠåªå
床ãäœããããããšããªãããã« ããããšãã§ããã  As a result, even when the instruction related to the process A uses a large amount of computational resources, it is possible to prevent the priority variable from being changed to be large and the priority from being lowered.
( 4 ) åªå
床ç®åºéš 1 3ã«ãããŠã åŠç Aã®åªå
床å€æ°ç®åºã«äœ¿çšãããææ£ å€ i lïŒ i 2ïŒ i 5ã®å€ãå°ããããã  (4) In the priority calculation unit 13, the values of the correction values i l, i 2, and i 5 used for calculating the priority variable of the process A are reduced.
ããã«ããã 第 1åã³ç¬¬ 4ã®ã¿ã€ãã³ã°ã§åªå
床ãäœããå€æŽãããéã«ã ä» ã®åŠç Bã«å¯ŸããŠåŠç Aã®åªå
床ãäžãããªãããã«ããããšãã§ããã  Thus, when the priority is lowered at the first and fourth timings, it is possible to prevent the priority of the process A from being lowered with respect to the other process B.
( 5 ) åªå
床ç®åºéš 1 3ã«ãããŠã åŠç Aã®åªå
床å€æ°ç®åºã«äœ¿çšãããè£æ£ å€ i 3ïŒ i 4ã®å€ã倧ããããã  (5) The priority calculation unit 13 increases the values of the correction values i3 and i4 used for calculating the priority variable of the process A.
ããã«ããã 第 2åã³ç¬¬ 3ã®ã¿ã€ãã³ã°ã§åªå
床ãé«ããå€æŽãããéã«ã ä» ã®åŠç Bã«å¯ŸããŠåŠç Aã®åªå
床ãããé«ããªãããã«ããããšãã§ããã ãªãã äžèš ïŒ1 ) ã ïŒ5 ) ã®æäœæ段 1 6ã«ããåºæºå€ã®å€æŽã«ãããŠã ãã® å€æŽå¹
ã«ã€ããŠããŠãŒã¶ãèªç±ã«æäœããããšãã§ããã  Thereby, when the priority is changed at the second and third timings, the priority of the process A can be made higher than that of the other process B. In addition, when the reference value is changed by the operation means 16 in the above (1) to (5), the user can freely operate the change width.
å³ 1 2ã«ç€ºãããããªäžè¬çãªãã«ãã¹ã¬ããæ¹åŒãæ¡çšããæ
å ±åŠçè£
眮㧠ã¯ã åããæ
å ±åŠçè£
眮ã䜿çšãããŠãŒã¶ãè€æ°ã®åŠçã䞊åçã«å®è¡ãããŠã
ãäžã§ã ç¹å®ã®åŠçãåªå
çã«å®è¡ãããå ŽåãçºçããŠãã.ååŠçã®ã¯ãŒã¯å£ äžãç¹æ§ã¯æäœã§ãããã®ã§ã¯ãªãããã ç¹å®ã®åŠçãåªå
ãããããšã¯ã§ããã ãŠãŒã¶ã®ææãåæ ãããããšãã§ããªãã ãå ããªããã æ¬çºæã®ç¬¬ 2å®æœåœ¢ æ
ã«ãããæ
å ±åŠçè£
眮ã«ããã°ã æäœæ段 1 6ã«ããã åªå
床ç®åºéš 1 3ã«ã ããŠåªå
床ãç®åº/å€æŽããã®ã«äœ¿çšãããåºæºå€ãã ç¹å®ã®åŠçã®åªå
床ãé« ãããããã«æäœããããšãã§ããã®ã§ã ãã®ç¹å®ã®åŠçãåªå
çã«å®è¡ããã ããšãã§ãã ãŠãŒã¶ã®ææãåæ ãããããšãã§ããã In an information processing device employing a general multi-thread method as shown in FIG. 12, a user who uses a powerful information processing device executes a plurality of processes in parallel. Even if there is a case in which a particular process is to be executed with priority, the specific process cannot be prioritized because the work mode characteristics of each process cannot be operated. I can't reflect my will. However, according to the information processing apparatus according to the second embodiment of the present invention, the operating unit 16 uses the criteria used to calculate / change the priority in the priority calculating unit 13. Since the value can be manipulated so that the priority of a specific process is made higher, the specific process can be executed with priority and the user's intention can be reflected.
ãªãã ãŠãŒã¶ãåŠç Aãåªå
çã«å®è¡ãããå Žåã«ã åŠç Bã«ãããåºæºå€ã äžèš ïŒ1 ) ã ïŒ5 ) ã®æäœãšã¯éã®æäœãè¡ãªãããšã«ããã åŠç Bã®åªå
床ã çžå¯Ÿçã«äœãããŠã åŠç Aãåªå
çã«å®è¡ãããããã«æäœããŠãããã  When the user prefers to execute the process A, the reference value for the process B is set to the relative value of the priority of the process B by performing the operation reverse to the above operations (1) to (5). May be set so that process A is executed with priority.
ãŸãã æ¬æ
å ±åŠçè£
眮ã§ã¯ã ã¢ãã¿æ段 1 8ã«ãã£ãŠã åŠçæ¯ã®ã¯ãŒã¯ããŒã ã®å®è¡ç¶æ³ãã¢ãã¿ããã ãã®ã¢ãã¿çµæã衚瀺æ段 2 0ã«ããã ã¢ãã¿çã«è¡š 瀺ãããããã ãŠãŒã¶ã¯ã åŠçæ¯ã®ã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãèŠèªããããšã㧠ããã ãããã£ãŠã ãŠãŒã¶ã¯ã åŠçæ¯ã®ã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãèªèããäžã§ã æäœæ段 1 6ã«ããåªå
床ç®åºéš 1 3ã«ãããŠåªå
床ãç®åº/å€æŽããã®ã«äœ¿çš ãããåºæºå€ãæäœããããšãã§ãã åŠçæ¯ã®ã¯ãŒã¯ããŒãã®å®æ³ç¶æ³ã«å¿ããŠã ç¹å®ã®åŠçãåªå
çã«å®è¡ãããããšãã§ããã  Further, in the present information processing apparatus, the execution status of the workload for each process is monitored by the monitor unit 18 and the monitoring result is displayed on a monitor or the like by the display unit 20. Workload execution status can be visually checked. Therefore, after recognizing the execution status of the workload for each process, the user can operate the reference value used for calculating / changing the priority in the priority calculation unit 13 by the operation means 16 using the operation means 16. Depending on the workload status of each process, specific processes can be executed preferentially.
ã3ã 第 3å®æœåœ¢æ
 [3] Third embodiment
次ã«ã æ¬çºæã®ç¬¬ 3å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã«ã€ããŠèª¬æããã å³ 1 0 ã¯ç¬¬ 3å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã®æ©èœæ§æã瀺ããããã¯å³ã§ããã ãªãã å³ 1 0äžã æ¢è¿°ã®ç¬Šå·ãšåäžã®ç¬Šå·ã¯ã åäžã®éšåãããã¯ã»ãŒåäžã®éšåã瀺 ããŠããã®ã§ã ãã®è©³çŽ°ãªèª¬æã¯çç¥ããã  Next, an information processing device according to a third embodiment of the present invention will be described. FIG. 10 is a block diagram illustrating a functional configuration of the information processing apparatus according to the third embodiment. In FIG. 10, since the same reference numerals as those described above indicate the same or almost the same parts, detailed description thereof will be omitted.
å³ 1 0ã«ç€ºãããã«ã æ¬çºæã®ç¬¬ 3å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã¯ã äžèšã® 第 1å®æœåœ¢æ
ã®æ
å ±åŠçè£
眮ãšåæ§ã®æ§æã«å ããŠã ããã«ã å®è¡ç°å¢ãšããŠã® ã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãšãã®å®è¡ç¶æ³ã«å¿ããåºæºå€ãšã®çµã¿åãããä¿æã ãããŒãã« 1 7ãšã ãããæ
å ±åŠçè£
眮ã§å®è¡ãããŠããåŠçæ¯ã®ã¯ãŒã¯ããŒã ã®å®è¡ç¶æ³ãã¢ãã¿ããã¢ãã¿æ段 1 8ãšã ãã®ã¢ãã¿æ段 1 8ã«ããã¢ãšã¿çµ æãåããŠããŒãã« 1 7ãåç
§ãã ãããåŠçã®åºæºå€ãã¢ãã¿æ段 1 8ã«ã〠ãŠã¢ãã¿ãããã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ã«å¿ãããã®ã«åçã«å€æŽããå€æŽæ段
1 9ãšãããªããŠæ§æãããŠããã ' As shown in FIG. 10, the information processing apparatus according to the third embodiment of the present invention has the same configuration as the information processing apparatus of the above-described first embodiment, and further includes the execution of a workload as an execution environment. A table 17 for storing a combination of a situation and a reference value according to the execution situation, a monitor means 18 for monitoring the execution situation of a workload for each process executed by the information processing apparatus, A change that dynamically changes the reference value of such processing to a value according to the execution status of the workload monitored by the monitoring means 18 by referring to the table 17 in response to the result of the moeta by the means 18 means It is composed with 19. '
ããŒãã« 1 7ã¯ã ãŠãŒã¶ã®æåçã«ãã£ãŠã ç¹å®ã®ã¯ãŒã¯ããŒããšã ãã®ã®ãŒ ã¯ããŒãã«å¯Ÿå¿ããåºæºå€ãšãä¿æãããããšãã§ããããã«æ§æãããŠããã æ¬å®æœåœ¢æ
ã®ããŒãã« 1 7ã«ã¯ã ãã®äŸãšããŠã å³ 1 1ã«ç€ºãããã«ã ã±ãŒã¹ 1 ãã±ãŒã¹ 3ã®ã¯ãŒã¯ããŒãå®è¡ç¶æ³ãšã åã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ã«å¿ããåºæº å€ãšãä¿æãããŠããã  The table 17 is configured to be able to hold a specific workload and a reference value corresponding to the workload according to the user's intention and the like. As an example, as shown in Fig. 11, the workload execution status of case 1 to case 3 and the reference value according to the execution status of each workload are held.
ããŒãã« 1 7ã«ãããã±ãŒã¹ 1ã«ã¯ã 1次åœä»€ãã£ãã·ã¥ã¡ã¢ãª 2åã³ 1次ã ãŒã¿ãã£ãã·ã¥ã¡ã¢ãª 8ã§ã®ãããç ïŒå³ã¡ã åœä»€ã«åºã¥ãåœä»€èªçŸ€ã 1次åœä»€ ãã£ãã·ã¥ã¡ã¢ãª 2ã«æ ŒçŽãããŠããçåã³åœä»€ã«äœ¿çšããããŒã¿ã 1次ããŒã¿ ãã£ãã·ã¥ã¡ã¢ãª 8ã«æ ŒçŽãããŠããçïŒ ã 9 7 %以äžã§ãããšããã¯ãŒã¯ã㌠ãã®å®è¡ç¶æ³ãšã åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 aã«ããã第 1ã®ã¿ã€ãã³ã°ã§ ã®åªå
床å€æ°ã®ç®åº/å€æŽã«äœ¿çšãããåºæºå€ X 2 (å³ 4ã®ã¹ããã S 1 2ïŒ S 1 3åç
§ïŒ ã®å€ 1ãšã察å¿ã¥ããããŠä¿æãããŠããã  Case 1 in Table 17 shows the hit rates in the primary instruction cache memory 2 and the primary data cache memory 8 (that is, the rate at which the instruction group based on the instruction is stored in the primary instruction cache memory 2). And the rate at which data used for instructions are stored in the primary data cache memory 8) is 97% or more, and the first priority in the calculation unit 13a of the priority calculation unit 13 The value 1 of the reference value X 2 (see steps S 12 and S 13 in FIG. 4) used for calculating / changing the priority variable at the timing of is held in association with each other.
ãŸãã ããŒãã« 1 7ã«ãããã±ãŒã¹ 2ã«ã¯ã ãããåŠçã«ã€ããŠã®åœä»€ãå®è¡ ããéã®ããŒã¿ãã§ããèŠæ±ã 3 0 0äžå以äžã§ãããšããã¯ãŒã¯ããŒãã®å®è¡ ç¶æ³ãšã åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 aã«ããã第 1ã®ã¿ã€ãã³ã°ã§ã®åªå
床 å€æ°ã®ç®åº/å€æŽã«äœ¿çšãããåºæºå€ X 2 (å³ 4ã®ã¹ããã S 1 2ïŒ S 1 3å ç
§ïŒ ã®å€ 1ãšã察å¿ã¥ããããŠä¿æãããŠããã  Case 2 in Table 17 shows the workload execution status where the number of data fetch requests when executing instructions for such processing is 300000 or less, and the calculation unit of the priority calculation unit 13 13 The priority value at the first timing in 3a The value 1 of the reference value X2 (see steps S12 and S13 in Fig. 4) used for calculating / changing the variable is held in association with Have been.
ããã«ã ããŒãã« 1 7ã«ãããã±ãŒã¹ 3ã«ã¯ã ãããåŠçã«åºã¥ããã£ãã·ã¥ ãã¹ã 5 0 0åœä»€ã« 1å以äžçºçãã äžã€ã ãããåŠçã®æŒç®éš 6ã«ãããå®è¡ æéããã®åŠçãšäžŠåçã«å®è¡ãããŠããä»ã®åŠçã®å®è¡æéã® 7 0 %以äžã§ã ããšããã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãã åªå
床ç®åºéš 1 3ã®ç®åºéš 1 3 aã«ããã 第 1ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åº Zå€æŽã«äœ¿çšãããè£æ£å€ i 1 (å³ 4ã® ã¹ããã S 1 6åç
§ïŒ ã®å€ã 1æžãã 第 2ã®ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åº Z å€æŽã«äœ¿çšãããè£æ£å€ i 3 (å³ 5ã®ã¹ããã S 2 1 'åç
§ïŒ ã®å€ãããã¯ç¬¬ 3ã® ã¿ã€ãã³ã°ã§ã®åªå
床å€æ°ã®ç®åº/å€æŽã«äœ¿çšãããè£æ£å€ i 4 (å³ 6ã®ã¹ãã ã S 3 1åç
§ïŒ ã®å€ã« 1å ããããšã«å¯Ÿå¿ã¥ããããŠä¿æãããŠããã  Further, in Case 3 in Table 17, a cache miss based on such processing occurs at least once in 500 instructions, and the execution time of the processing in the arithmetic unit 6 is executed in parallel with this processing. The execution status of the workload, which is 70% or less of the execution time of the other processing, is caused by the calculation Z of the priority variable at the first timing in the calculation unit 13a of the priority calculation unit 13. The value of the correction value i 1 used (see step S 16 in FIG. 4) is decremented by 1, and the correction value i 3 used to change the priority variable Z at the second timing (step S 16 in FIG. 5) 2 1 â²) or the correction value i 4 (see step S 31 in FIG. 6) used to calculate / change the priority variable at the third timing. Is held.
ã¢ãã¿æ段 1 8ã¯ã åŠçæ¯ã®ã®äžã¯ããŒãã®å®è¡ç¶æ³ãã¢ãã¿ãããã®ã§ããã å
·äœçã«ã¯ã ååŠçã®æŒç®è³æºã®äœ¿çšç¶æ³ïŒ ãã£ãã·ã¥ã¡ã¢ãªã®äœ¿çšç¶æ³çãã
ãæ
å ±åŠçè£
眮ã®åæ©èœã®äœ¿çšç¶æ³ãã¢ãšã¿ããŠããã The monitoring means 18 monitors the execution status of the first load for each process. Specifically, the monitoring means 18 determines whether the usage status of the processing resources of each process, the usage status of the cache memory, and the like. The usage status of each function of the information processing device is monitored.
ãã®ãããªæ§æã«ããã æ¬èæã®ç¬¬ 3å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã§ã¯ã äž èšã®ç¬¬ 1å®æœåœ¢æ
ãšåæ§ã å¶åŸ¡éš 1 4å åªå
床ç®åºéš 1 3ãç®åº Zå€æŽããå åŠçã®åªå
床ã«åºã¥ããŠåªå
床ã®é«ãåŠçãåªå
çã«éžæããŠåœä»€ãããã¡ 3ã ããã³ãŒã 5ãžåºåãããããã«ã»ã¬ã¯ã¿ 4ãå¶åŸ¡ãããã ãã®éã å€æŽæ段 1 9ãã¢ãã¿æ段 1 8ã«ããååŠçã®ã¯ãŒã¯ããŒãå®è¡ç¶æ³ã®ã¢ãã¿ç¶æ³ãåžžã«ç£ èŠããŠããã å€æŽæ段 1 9ã¯ã ã¢ãã¿æ段 1 8ã®ã¢ãã¿çµæãåããŠã ããŒãã㬠1 7ãåç
§ãã ã¢ãã¿çµæãããŒãã« 1 7ã«ä¿æãããã±ãŒã¹ 1ã3ã®ã¯ãŒã¯å£ ãŒãã®å®è¡ç¶æ³ã«è©²åœãããšãã«ã¯ã ããŒãã« 1 7ã«ä¿æãããã ãããã¯ãŒã¯ ããŒãå®è¡ç¶æ³ã«å¯Ÿå¿ããåºæºå€ãšãªãããã«ã åªå
床ç®åºéš 1 3ã«ãããåºæº å€ãå€æŽããã  With such a configuration, in the information processing apparatus according to the third embodiment of the present invention, as in the above-described first embodiment, the control unit 14 and the power priority calculation unit 13 calculate each Z-changed process. The selector 4 is controlled so that a process having a higher priority is preferentially selected on the basis of the priority and output from the instruction buffer 3 to the decoder 5. The monitoring status of the processing workload execution status is constantly monitored, and the changing means 19 receives the monitoring result of the monitoring means 18, refers to the tape hole 17, and holds the monitoring result in the table 17. In cases 1 to 3, the reference values in the priority calculation unit 13 are set so that the reference values corresponding to the workload execution status stored in Table 17 are obtained. To change.
ããã§ã æ¬å®æœåœ¢æ
ã®æ
å ±åŠçè£
眮ã«ãããŠåŠç AãšåŠç Bãšã䞊åçã«å®è¡ ãããŠããå Žåã«ã ã¢ãã¿æ段 1 8ã«ããåŠç Aã®ã¯ãŒã¯ããŒãã®ã¢ãã¿çµæã ããŒãã« 1 7ã®ã±ãŒã¹ 1ã«ç€ºãã¯ãŒã¯ããŒãå®è¡ç¶æ³ã«è©²åœãããã®ã§ããã°ã å€æŽæ段 1 9ã¯ã åªå
床ç®åºéš 1 3ã®åŠç Aã®åºæºå€ X 2ã 1ãšããã ããã«ã ãã ãã€ãã·ã¥ãã¹ãã»ãšãã©çºçããŠããªã¬ãåŠç Aã«ãããŠãã€ãã·ã¥ãã¹ã çºçããå Žåã«ã¯ã åŠç Aã®åªå
床ãäœãããããã«èšå®ããããšãã§ã ïŒå³ 4 ã®ã¹ããã S 1 4åç
§ïŒã åŠç Bãšã®å®è¡ãã©ã³ã¹ãè¯å¥œã«ä¿ã€ããšãã§ããã ãã«ãªãã  Here, when the processing A and the processing B are executed in parallel in the information processing apparatus of the present embodiment, the monitoring result of the workload of the processing A by the monitoring means 18 is shown in Case 1 of Table 17. If it corresponds to the workload execution status, the change unit 19 sets the reference value X2 of the process A of the priority calculation unit 13 to 1. As a result, if a cache miss has hardly occurred, or if a cache miss has occurred in process A, the priority of process A can be set to be lower (step S 14 in FIG. 4). ), And it is possible to maintain a good execution balance with process B.
ãŸãã ã¢ãã¿æ段 1 8ã«ããåŠç Aã®ã¯ãŒã¯ããŒãã®ã¢ãã¿çµæãããŒãã« 1 7ã®ã±ãŒã¹ 2ã«ç€ºãã¯ãŒã¯ããŒãå®è¡ç¶æ³ã«è©²åœãããã®ã§ããã°ã å€æŽæ段 1 9ã¯ã åªå
床ç®åºéš 1 3ã®åŠç Aã®åºæºå€ X 2ã 1ãšããã ããã«ããã ããŒã¿ ãã§ããèŠæ±ã®å°ãªãåŠç Aã«ãããŠãã€ãã·ã¥ãã¹ãçºçããå Žåã«ã¯ã åŠç Aã®åªå
床ãäœãããããã«èšå®ããããšãã§ã ïŒå³ 4ã®ã¹ããã S 1 4åç
§ïŒã åŠç Bãšã®å®è¡ãã©ã³ã¹ ïŒæŒç®è³æºã®å
±æãã©ã³ã¹ïŒ ãè¯å¥œã«ä¿ã€ããšãã§ãã ããã«ãªãã  Further, if the monitoring result of the workload of the process A by the monitoring means 18 corresponds to the workload execution status shown in Case 2 of Table 17, the changing means 19 performs the processing of the priority calculation unit 13 The reference value X 2 of A is set to 1. As a result, if a cache miss occurs in process A with a small data fetch request, the priority of process A can be set to be low (see step S14 in FIG. 4). The execution balance (computation resource sharing balance) can be maintained well.
ããã«ã ã¢ãã¿æ段 1 8ã«ããåŠç Aã®ã¯ãŒã¯ããŒãã®ã¢ãã¿çµæãããŒãã« 1 7ã®ã±ãŒã¹ 3ã«ç€ºãã¯ãŒã¯ããŒãå®è¡ç¶æ³ã«è©²åœãããã®ã§ããã°ã ãã€ãã· ã¥ãã¹ãé »çºãã äžã€ã ä»ã®åŠç ïŒããã§ã¯åŠç B ) ãšæ¯èŒããŠæŒç®è³æºã®äœ¿çš
å²åãå°ãªãåŠç Aã«ã€ããŠã®åªå
床ãé«ãããããã«èšå®ããããšãã§ãã (å³ 4ã®ã¹ããã S 1 6åã³å³ 5ã®ã¹ããã S 2 1ãããã¯å³ 6ã®ã¹ããã S 3 1åç
§ïŒã ããã«ããã ä»ã®åŠç Bãšæ¯èŒããŠæŒç®éš 6ã®æŒç®è³æºãããŸãäœ¿çš ããŠãããã ã¹ã ãŒãºã«å®è¡ãããŠããªãåŠç Aã®åªå
床ãé«ãå€æŽãããããš ãã§ãã åŠç Bãšã®å®è¡ãã©ã³ã¹ãè¯å¥œã«ä¿ã€ããšãã§ããã Furthermore, if the monitoring result of the workload of process A by the monitoring means 18 corresponds to the workload execution status shown in Case 3 of Table 17, cache misses occur frequently and other processes (here, Use of computing resources compared to process B) The priority can be set to be higher for the process A having a small ratio (see step S16 in FIG. 4 and step S21 in FIG. 5 or step S31 in FIG. 6). This makes it possible to change the priority of the processing A, which does not use the computational resources of the processing unit 6 as much as compared with the other processing B, and is not executed smoothly, to a higher priority. Can be kept good.
ãã®ããã«ã æ¬çºæã®ç¬¬ 3å®æœåœ¢æ
ã«ãããæ
å ±åŠçè£
眮ã§ã¯ã ããŒãã« 1 7 ã«ä¿æãããã¯ãŒã¯ããŒãå®è¡ç¶æ³ãšãã®ã¯ãŒã¯ããŒãå®è¡ç¶æ³ã«å¯Ÿå¿ããåºæº å€ãšã«åºã¥ããŠã å€æŽæ段 1 9ãåçã«åªå
床ç®åºéš 1 3ã®åºæºå€ãå€æŽããã ãã ãããåŠçã®åªå
床ãã¯ãŒã¯ããŒãå®è¡ç¶æ³ã«å¿ããŠåçã«å€æŽãããããš ã«ãªãã ãã®çµæã ã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ã«å¿ããè€æ°ã®åŠçã®å®è¡ãå¯èœã« ãªããšãšãã«ã ãŠãŒã¶çã®æåãã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ã«å¿ããŠåæ ãããã ãšãã§ããã  As described above, in the information processing apparatus according to the third embodiment of the present invention, the changing unit 19 is configured to change the workload execution status based on the workload execution status held in the table 17 and the reference value corresponding to the workload execution status. Since the reference value of the priority calculation unit 13 is dynamically changed, the priority of such processing is dynamically changed according to the workload execution status. As a result, a plurality of processes can be executed according to the workload execution status, and the intention of the user can be reflected according to the workload execution status.
ãªãã æ¬å®æœåœ¢æ
ã«ãããããŒãã« 1 7ã«ä¿æãããã¯ãŒã¯ããŒãå®è¡ç¶æ³å ã³ããã«å¯Ÿå¿ããåºæºå€ã®å
容ãå
·äœçãªæ°å€ã¯ã äŸãšããŠç€ºãããã®ã§ããã ããã«éå®ããããã®ã§ã¯ãªãã ããŒãã« 1 7ã«ä¿æãããã¯ãŒã¯ããŒãå®è¡ç¶ æ³ãšããã«å¯Ÿå¿ããåºæºå€ãšã¯ã ãŠãŒã¶ã®æåãæ
å ±åŠçè£
眮ã«ãããåŠçã®å® è¡ç¶æ³çã«ãã£ãŠå€æŽããããã®ã§ããã  Note that the workload execution status, the contents of the reference values corresponding thereto, and specific numerical values stored in the table 17 according to the present embodiment are shown as examples, and are not limited thereto. . The workload execution status and the corresponding reference value stored in Table 17 are changed depending on the user's intention, the execution status of the process in the information processing device, and the like.
ã4ã ãã®ä»  [4] Other
ãªãã æ¬çºæã¯äžè¿°ããå®æœåœ¢æ
ã«éå®ããããã®ã§ã¯ãªãã æ¬çºæã®è¶£æšã éžè±ããªãç¯å²ã§çš®ã
å€åœ¢ããŠå®æœããããšãã§ããã  It should be noted that the present invention is not limited to the above-described embodiment, and can be implemented with various modifications without departing from the spirit of the present invention.
äŸãã°ã äžè¿°ããå®æœåœ¢æ
ã§ã¯ã 䞊åçã«å®è¡ãããåŠç ïŒã¹ã¬ã ãïŒ ã¹ãã© ã³ãïŒ ã®æ°ãã A, Bã® 2ã€ã§ããå Žåã«ã€ããŠèª¬æããŠãããã æ¬çºæã¯ãã ã«éå®ããããã®ã§ã¯ãªãã 3以äžã®åŠçã䞊åçã«å®è¡ããå Žåã«ãäžè¿°ãã åå®æœåœ¢æ
ãšåæ§ã«é©çšããã äžè¿°ããåå®æœåœ¢æ
ãšåæ§ã®äœçšå¹æãåŸãããš ãã§ããã  For example, in the above-described embodiment, the case where the number of processes (threads, strands) executed in parallel is two, A and B, but the present invention is not limited to this. However, the present invention is applied similarly to the above-described embodiments even when three or more processes are executed in parallel, and the same operation and effect as the above-described embodiments can be obtained.
ãŸãã ãªã¯ãšã¹ã管çéš 1 2ã§æ±ããªã¯ãšã¹ãã®çš®å¥ãããŒã¿ãã£ãã·ã¥ã㹠以å€ã®ãã®ã«åã¶å Žåãèããããã ãã®å Žåã¯ã ãªã¯ãšã¹ãã®çš®å¥ã«ããã å å¥ã«åºæºå€ãçšæããããšãèããããã ããã«ã ãªã¯ãšã¹ãã®çš®å¥ã«å¯Ÿå¿ããŠã ãããåŠçã®åªå
床å€æ°ã®æå€§å€ Â·æå°å€ãèšå®ãã ãããã®å€ãè¶
ããå Žåã«
ã¯ã åªå
床å€æ°ã®å¢å ·æžå°åŠç ïŒåªå
床å€æ°ã®ç®åº/å€æŽåŠçïŒ ãåæ¢ããã ãã«æ§æããããšãèããããã It is also conceivable that the type of request handled by the request management unit 12 covers a type other than a data cache miss. In such a case, it is conceivable to prepare individual reference values depending on the type of request. Furthermore, the maximum value and the minimum value of the priority variable for such processing are set according to the type of the request, and when these values are exceeded, May be configured to stop the process of increasing / decreasing priority variables (calculation / change process of priority variables).
ãŸãã äžè¿°ãããªã¯ãšã¹ã管çéš 12ïŒ åªå
床ç®åºéš 13 (ç®åºéš 1 3 a)ïŒ å¶åŸ¡éš 14ïŒ æ¡åéš 15ïŒ æäœæ段 16ïŒ ã¢ãã¿æ段 18, å€æŽæ段 1 9ãšã㊠ã®æ©èœã¯ã ã³ã³ãã¥ãŒã¿ ïŒCPU, æ
å ±åŠçè£
çœ®ïŒ å皮端æ«ãå«ãïŒ ãæå®ã®ã¡ ããªã±ãŒã·ãšã³ããã°ã©ã ïŒåœä»€åŠçå¶åŸ¡ããã°ã©ã ïŒ ãå®è¡ããããšã«ãã£ãŠ å®çŸãããã  The functions of the request management unit 12, the priority calculation unit 13 (calculation unit 13a), the control unit 14, the collection unit 15, the operation unit 16, the monitor unit 18, and the change unit 19 described above are implemented by a computer (CPU , An information processing device, and various terminals) by executing a predetermined application program (command processing control program).
ãã®ããã°ã©ã ã¯ã äŸãã°ãã¬ãã·ãã«ãã£ã¹ã¯ïŒ CDâ ROM, CD-R, CD-RW, DVDçã®ã³ã³ãã¥ãŒã¿èªåå¯èœãªèšé²åªäœã«èšé²ããã圢æ
ã§æ äŸãããã ãã®å Žåã ã³ã³ãã¥ãŒã¿ã¯ãã®èšé²åªäœããåœä»€åŠçå¶åŸ¡ããã°ã©ã ãèªã¿åã£ãŠå
éšèšæ¶è£
眮ãŸãã¯å€éšèšæ¶è£
眮ã«è»¢éãæ ŒçŽããŠçšããã ãŸãã ãã®ããã°ã©ã ãã äŸãã°ç£æ°ãã£ã¹ã¯, å
ãã£ã¹ã¯, å
ç£æ°ãã£ã¹ã¯çã®èšæ¶ è£
眮 ïŒèšé²åªäœïŒ ã«èšé²ããŠããã ãã®èšæ¶è£
眮ããéä¿¡åç·ãä»ããŠã³ã³ã㥠ãŒã¿ã«æäŸããããã«ããŠããã¬ãã  The program is provided in a form recorded on a computer-readable recording medium such as a flexible disk, a CD-ROM, a CD-R, a CD-RW, and a DVD. In this case, the computer reads the instruction processing control program from the recording medium, transfers it to the internal storage device or the external storage device, stores it, and uses it. Alternatively, the program may be recorded on a storage device (recording medium) such as a magnetic disk, an optical disk, or a magneto-optical disk, and provided to the computer from the storage device via a communication line. ,.
ããã§ã ã³ã³ãã¥ãŒã¿ãšã¯ã ããŒããŠã§ã¢ãš OS (ãªãã¬ãŒãã£ã³ã°ã·ã¹ã ã ïŒ ãšãå«ãæŠå¿µã§ããã OSã®å¶åŸ¡ã®äžã§åäœããããŒããŠã§ã¢ãæå³ããŠã ãã ãŸãã OSãäžèŠã§ã¢ããªã±ãŒã·ã§ã³ããã°ã©ã åç¬ã§ããŒããŠã§ã¢ãåäœ ããããããªå Žåã«ã¯ã ãã®ããŒããŠã§ã¢èªäœãã³ã³ãã¥ãŒã¿ã«çžåœããã ã㌠ããŠãšã¢ã¯ã å°ãªããšãã CPUçã®ãã€ã¯ãããã»ããµãšã èšé²åªäœã«èšé²ã ããã³ã³ãã¥ãŒã¿ããã°ã©ã ãèªã¿åãããã®æ段ãšãããªããŠããã äžèšåœä»€ åŠçå¶åŸ¡ããã°ã©ã ãšããŠã®ã¢ããªã±äžã·ã§ã³ããã°ã©ã ã¯ã äžè¿°ã®ãããªã³ã³ ãã¥ãŒã¿ã«ã ãªã¯ãšã¹ã管çéš 12ïŒ åªå
床ç®åºéš 1 3ïŒ å¶åŸ¡éš 14, æ¡åéš 1 5, æäœæ段 16ïŒ ã¢ãã¿æ段 18, å€æŽæ段 19ãšããŠã®æ©èœãå®çŸãããã ãã°ã©ã ã³ãŒããå«ãã§ããã ãŸãã ãã®æ©èœã®äžéšã¯ã ã¢ããªã±ãŒã·ã§ã³ãã ã°ã©ã ã§ã¯ãªã O Sã«ãã£ãŠå®çŸãããŠãããã  Here, the computer is a concept including hardware and an OS (operating system), and means hardware that operates under the control of the OS. In the case where the OS is unnecessary and the hardware is operated by the application program alone, the hardware itself corresponds to a computer. The hardware has at least a microprocessor such as a CPU and a means for reading a computer program recorded on a recording medium. The application program as the instruction processing control program includes a request management unit 12, a priority calculation unit 13, a control unit 14, a sampling unit 15, an operation unit 16, a monitoring unit 18, It includes a program code for realizing the function as the changing means 19. In addition, some of the functions may be realized by OS instead of application programs.
ããã«ã æ¬å®æœåœ¢æ
ã«ãããèšé²åªäœãšããŠã¯ã äžè¿°ãããã¬ãã·ãã«ãã€ã¹ ã¯ïŒ CD_ROMïŒ CD-R, CD-RW, DVD, ç£æ°ãã£ã¹ã¯ïŒ å
ãã£ã¹ã¯ïŒ å
ç£æ°ãã£ã¹ã¯ã®ã»ãã I Cã«ãŒãïŒ ROMã«ãŒããªããžïŒ ç£æ°ããŒãïŒ ã ã³ã ã«ãŒãïŒ ã³ã³ãã¥ãŒã¿ã®å
éšèšæ¶è£
眮 ïŒRAMã ROMãªã©ã®ã¡ã¢ãªïŒïŒ å€éšèš
æ¶è£
眮çãã ããŒã³ãŒããªã©ã®ç¬Šå·ãå°å·ãããå°å·ç©çã®ã ã³ã³ãã¥ãŒã¿èªå å¯èœãªçš®ã
ã®åªäœãå©çšããããšãã§ããã ç£æ¥äžã®å©çšå¯èœæ§ Furthermore, in addition to the above-mentioned flexible disk, CD_ROM, CD-R, CD-RW, DVD, magnetic disk, optical disk, and magneto-optical disk, the recording medium according to the present embodiment includes an IC card, a ROM cartridge, a magnetic tape, and a magnetic disk. Card, computer internal storage (memory such as RAM and ROM), external storage Various computer-readable media, such as storage devices and printed materials on which codes such as bar codes are printed, can also be used. Industrial applicability
以äžã®ããã«ã æ¬çºæã«ããã°ã 2以äžã®åŠçã䞊åçã«å®è¡ããæ
å ±åŠçè£
眮ã«ãããŠã å®éã®åœä»€å®è¡ç¶æ³ã«å¿ããŠæŒç®è³æºãæå¹ã«å©çšã§ããããã«å åŠçã®åªå
床ãç®åº/å€æŽããŠã ãã®åªå
床ã«åºã¥ããŠåŠçãå®è¡ããããã ã ã確å®ã«æŒç®è³æºã®ç©ºãæéãåæžããŠã¹ã«ãŒãããã®å€§å¹
ãªåäžãå®çŸããã ãšãã§ããã  As described above, according to the present invention, in an information processing apparatus that executes two or more processes in parallel, the priority of each process is set so that the computing resources can be effectively used according to the actual instruction execution status. Since the calculation / change is performed and the processing is executed based on this priority, it is possible to more surely reduce the idle time of the computational resources and achieve a significant improvement in the throughput.
åŸã£ãŠã æ¬çºæã¯ã ãã«ãã¹ã¬ããæ¹åŒãæ¡çšããã³ã³ãã¥ãŒã¿çã®æ
å ±åŠç è£
眮ã«çšããŠå¥œé©ã§ããã ãã®æçšæ§ã¯æ¥µããŠé«ããã®ãšèããããã
 Therefore, the present invention is suitable for use in an information processing device such as a computer employing a multi-thread system, and its usefulness is considered to be extremely high.
Claims
1 . 2以äžã®åŠçã䞊åçã«å®è¡ããæ
å ±åŠçè£
眮ã§ãã£ãŠã 1.2 An information processing apparatus that executes two or more processes in parallel,
åèš 2以äžã®åŠçãå®è¡ããããã®åœä»€ã¡ãã¬ã¹ãåèšåŠçæ¯ã«çæããåœä»€ ã¢ãã¬ã¹çæéšãšã  An instruction address generator for generating an instruction address for executing the two or more processes for each of the processes;
äž»èšæ¶äžã®åœä»€é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽãã 該ã³ããŒã®äžããã 該 åœä»€ã¡ãã¬ã¹çæéšã«ãã£ãŠçæãããåèšåœä»€ã¡ãã¬ã¹ã«å¿ããåœä»€ãåºåã ãåœä»€ãã£ãã·ã¥ã¡ã¢ãªãšã  An instruction cache memory for temporarily storing a partial copy of the instruction area on the main memory and outputting an instruction corresponding to the instruction address generated by the instruction address generation unit from the copy;
該åœä»€ãã€ãã·ã¥ã¡ã¢ãªããåºåãããè€æ°ã®åœä»€ãä¿æããåœä»€ãããã¡ãšã 該åœä»€ãããã¡ã«ä¿æãããåœä»€ã®ãã¡ã®å°ãªããšãäžã€ãéžæããŠåºåãã ã»ã¬ã¯ã¿ãšã  An instruction buffer for holding a plurality of instructions output from the instruction cache memory; a selector for selecting and outputting at least one of the instructions held in the instruction buffer;
該ã»ã¬ã¯ã¿ããã®åœä»€ããã³ãŒããããã³ãŒããšã  A decoder for decoding an instruction from the selector;
該ãã³ãŒãã«ãããã³ãŒãçµæã«å¿ããæŒç®ãå®è¡ããæŒç®éšãšã  An operation unit for executing an operation according to a decoding result by the decoder;
äž»èšæ¶äžã®ããŒã¿é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽãã 該ã³ããŒã®äžããã 該æŒç®éšã§ã®æŒç®ã«å¿
èŠãªããŒã¿ã該æŒç®éšããã®èŠæ±ã«å¿ããŠåºåããããŒã¿ ãã£ãã·ã¥ã¡ã¢ãªãšã  A data cache memory for temporarily storing a partial copy of the data area on the main memory and outputting data necessary for the operation in the operation unit from the copy in response to a request from the operation unit; ,
該æŒç®éšã«ãããæŒç®è³æºã®ç©ºãæéãåæžããããã«ååŠçã®åªå
床ãç®åº /å€æŽããåªå
床ç®åºéšãšã  A priority calculation unit that calculates / changes the priority of each process so as to reduce the idle time of the calculation resources in the calculation unit;
該åªå
床ç®åºéšã«ãã£ãŠç®åº Zå€æŽãããååŠçã®åªå
床ãåç
§ãã åèšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ãã³ãŒããžåºåããããã«è©² ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ããå¶åŸ¡éšãšãããªããããšãç¹åŸŽãšããã æ
å ±åŠçè£
眮ã  The operation of the selector is controlled so as to preferentially select an instruction for the high-priority processing and output the instruction to the decoder by referring to the priority of each processing whose Z has been changed by the priority calculation unit. An information processing device comprising a control unit.
2 . åèš 2以äžã®åŠçã®å®è¡ã«äŒŽãåœè©²æ
å ±åŠçè£
眮ããå€éšã«å¯ŸããŠéåºã ãããªã¯ãšã¹ãã«é¢ããæ
å ±ãåèšåŠçæ¯ã«ç®¡çãããªã¯ãšã¹ã管çéšãããã« ããªãã 2. It further includes a request management unit that manages information on a request sent from the information processing apparatus to the outside with the execution of the two or more processes for each of the processes.
該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ ã管çéšã§ç®¡çãããŠããåèšãªã¯ãšã¹ãã«é¢ ããæ
å ±ã«åºã¥ããŠã ååŠçã®åèšåªå
床ãç®åº/å€æŽããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 1é
èšèŒã®æ
å ±åŠçè£
眮ã
2. The method according to claim 1, wherein the priority calculating unit calculates / changes the priority of each process based on information on the request managed by the request management unit. An information processing apparatus according to claim 1.
3 . äž»èšæ¶ããŒã¿ã®èªåºããªã¯ãšã¹ããåèšãªã¯ãšã¹ããšããŠåœè©²æ
å ±åŠçè£
眮ããå€éšã«å¯ŸããŠéåºãããéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ 管çãããŠããã å€éšããã®å¿çåŸ
ã¡äžã®ãªã¯ãšã¹ãã®æ°ã«å¿ããŠã åœè©²ãªã¯ã§ ã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãç®åº/å€æŽããããšãç¹åŸŽãšããã è«æ± ã®ç¯å²ç¬¬ 2é
èšèŒã®æ
å ±åŠçè£
眮ã 3. When the read request of the main memory data is sent from the information processing device to the outside as the request, the priority calculation unit waits for an external response managed by the request management unit. 3. The information processing apparatus according to claim 2, wherein the priority of a process that is the source of the request is calculated / changed according to the number of requests in the request.
4 . åèšãªã¯ãšã¹ãã®æ°ãæå®å€ãè¶
ããŠããå Žåã 該åªå
床ç®åºéšãã åœè©² ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽã ãããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 3é
èšèŒã®æ
å ±åŠçè£
眮ã 4. When the number of the requests exceeds a predetermined value, the priority calculation unit changes the priority of the process that is the source of the request to be lower than the current level. The information processing device according to claim 3.
5 . åèš 2以äžã®åŠçã®ããããäžã€ã®å®è¡,ã«äŒŽã£ãŠéåºãããåèšãªã¯ãšã¹ ãã«å¯Ÿããå¿çãåãåã£ãéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ç®¡ çãããŠããåœè©²ãªã¯ãšã¹ãã®å±¥æŽã«å¿ããŠã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠ çã®åèšåªå
床ãç®åº Zå€æŽããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 2é
èšèŒã®æ
å ±åŠçè£
眮ã 5. When receiving a response to the request transmitted in accordance with the execution of any one of the two or more processes, the priority calculation unit performs the request management managed by the request management unit. 3. The information processing apparatus according to claim 2, wherein the priority of a process that is the transmission source of the request is calculated or changed according to the history of the request.
6 . åœè©²ãªã¯ãšã¹ããã 該ãªã¯ãšã¹ã管çéšã§ç®¡çãããŠããã å€éšããã®å¿ çåŸ
ã¡äžã®å
šãŠã®ãªã¯ãšã¹ãã®äžã§æãå€ããã®ã§ããå Žåã 該åªå
床ç®åºéšãã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãçŸç¶ãããé«ãããããã«å€ æŽããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 5é
èšèŒã®æ
å ±åŠçè£
眮ã 6. If the request is the oldest of all requests waiting for a response from the outside managed by the request management unit, the priority calculation unit determines whether the request has been sent. 6. The information processing apparatus according to claim 5, wherein the priority of a certain process is changed so as to be higher than a current level.
7 . åèš 2以äžã®åŠçã®ããããäžã€ã®å®è¡ã«äŒŽã£ãŠéåºãããåèšãªã¯ãšã¹ ãã«å¯Ÿããå¿çãåãåã£ãéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ç®¡ çãããŠããåœè©²ãªã¯ãšã¹ãã®çš®å¥ã«å¿ããŠã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠ çã®åèšåªå
床ãç®åº/å€æŽããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 2é
èšèŒã®æ
å ±åŠçè£
眮ã 7. When receiving a response to the request transmitted along with the execution of any one of the two or more processes, the priority calculation unit determines whether the request managed by the request management unit is 3. The information processing device according to claim 2, wherein the priority of the process that is the source of the request is calculated / changed according to the type.
8 . åœè©²ãªã¯ãšã¹ãå 該ããŒã¿ãã£ãã·ã¥ã¡ã¢ãªã§ã®ãã¹ãã ãã«äŒŽã£ãŠé åºããããã®ã§ããå Žåã 該åªå
床ç®åºéšãã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠ
çã®åèšåªå
床ãçŸç¶ãããé«ãããããã«å€æŽããããšãç¹åŸŽãšããã è«æ±ã® ç¯å²ç¬¬ 7é
èšèŒã®æ
å ±åŠçè£
眮ã 8. If the request power is transmitted due to a miss in the data cache memory, the priority calculation unit determines whether the request source is the source of the request. 8. The information processing apparatus according to claim 7, wherein the priority of the information processing is changed to be higher than the current level.
9 . åœè©²æ
å ±åŠçè£
眮ããå€éšã«å¯Ÿãããªã¯ãšã¹ããçºçããéã«ã 該åªå
床 ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ç®¡çãããŠããåœè©²ãªã¯ãšã¹ãã®çš®å¥ã«å¿ã㊠åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãç®åº/å€æŽããããšãç¹åŸŽãš ããã è«æ±ã®ç¯å²ç¬¬ 2é
èšèŒã®æ
å ±åŠçè£
眮ã 9. When a request to the outside is generated from the information processing device, the priority calculation unit determines the priority of the process that is the transmission source of the request according to the type of the request managed by the request management unit. 3. The information processing apparatus according to claim 2, wherein the degree is calculated / changed.
1 0 . åœè©²ãªã¯ãšã¹ ããã 該ããŒã¿ãã€ãã·ã¥ã¡ã¢ãªã§ã®ãã¹ãã ãã«äŒŽã€ãŠ éåºããããã®ã§ããå Žåã 該åªå
床ç®åºéšãã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ãã åŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽããããšãç¹åŸŽãšããã è«æ± ã®ç¯å²ç¬¬ 9é
èšèŒã®æ
å ±åŠçè£
眮ã 10. If the request was sent in response to a miss in the data cache memory, the priority calculation unit sets the priority of the process that is the source of the request to be lower than the current level. 10. The information processing apparatus according to claim 9, wherein the information processing apparatus is changed so as to be lower.
1 1 . 該æŒç®éšã«ãããæŒç®è³æºã®äœ¿çšç¶æ³ãåèšåŠçæ¯ã«æ¡åããæ¡åéšã ããã«ããªãã 11. A sampling unit for sampling the usage status of the computing resources in the computing unit for each of the processes is further provided.
該åªå
床ç®åºéšãã 該æ¡åéšã«ãã£ãŠæ¡åããã該æŒç®è³æºã®äœ¿çšç¶æ³ã«å¿ã ãŠã ååŠçã®åªå
床ãç®åº Zå€æŽããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 1é
èšèŒ ã®æ
å ±åŠçè£
眮ã  2. The information processing apparatus according to claim 1, wherein the priority calculation unit calculates and changes the priority of each process according to a use state of the computational resources collected by the collection unit. apparatus.
1 2 . åèš 2以äžã®åŠçã®ããããäžã€ã«ã€ããŠè©²æ¡åéšã«ãã£ãŠæ¡åããã 該æŒç®è³æºã®äœ¿çšç¶æ³ãšããŠã®äœ¿çšçãæå®å€ãè¶
ããŠããå Žåã 該åªå
床ç®åº éšãã åœè©²åŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽããããšãç¹åŸŽãš ããã è«æ±ã®ç¯å²ç¬¬ 1 1é
èšèŒã®æ
å ±åŠçè£
眮ã 12. If the usage rate as the usage status of the computation resource collected by the collection unit for any one of the two or more processes exceeds a predetermined value, the priority calculation unit may The information processing apparatus according to claim 11, wherein the priority is changed so as to be lower than a current level.
1 3 . åèš 2以äžã®åŠçã®å®è¡ã«äŒŽãåœè©²æ
å ±åŠçè£
眮ããå€éšã«å¯ŸããŠéåº ããããªã¯ãšã¹ãã«é¢ããæ
å ±ãåèšåŠçæ¯ã«ç®¡çãããªã¯ãšã¹ã管çéšãšã 該æŒç®éšã«ãããæŒç®è³æºã®äœ¿çšç¶æ³ãåèšåŠçæ¯ã«æ¡åããæ¡åéšãšããã ã«ããªãã 13. A request management unit that manages information on a request sent from the information processing apparatus to the outside in accordance with the execution of the two or more processes for each of the processes. A sampling section for each treatment is further provided.
該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéšã§ç®¡çãããŠããåèšãªã¯ãšã¹ãã«é¢
ããæ
å ±ãšã 該æ¡åéšã«ãã£ãŠæ¡åããã該æŒç®è³æºã®äœ¿çšç¶æ³ãšã«å¿ããŠã å åŠçã®åªå
床ãç®åº/å€æŽããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 1é
èšèŒã®æ
å ± åŠçè£
眮ã The priority calculation unit relates to the request managed by the request management unit. 2. The information processing device according to claim 1, wherein the priority of each process is calculated / changed according to the information to be performed and the use status of the computational resources collected by the collection unit.
1 4 . äž»èšæ¶ããŒã¿ã®èªåºããªã¯ãšã¹ããåèšãªã¯ã§ã¹ããšããŠåœè©²æ
å ±åŠç è£
眮ããå€éšã«å¯ŸããŠéåºãããéã«ã 該åªå
床ç®åºéšãã 該ãªã¯ãšã¹ã管çéš ã§ç®¡çãããŠããã å€éšããã®å¿çåŸ
ã¡äžã®ãªã¯ãšã¹ãã®æ°ãšã åœè©²ãªã¯ãšã¹ ã ã®éåºå
ã§ããåŠçã«ã€ããŠè©²æ¡åéšã«ãã€ãŠæ¡åããã該æŒç®è³æºã®äœ¿çšç¶æ³ ãšã«å¿ããŠã åœè©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãç®åº/å€æŽãã ããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 1 3é
èšèŒã®æ
å ±åŠçè£
眮ã 14. When the main memory data read request is sent from the information processing device to the outside as the request, the priority calculation unit waits for an external response managed by the request management unit. The priority of the process that is the source of the request is determined in accordance with the number of requests in the request and the usage status of the processing resource collected by the collection unit for the process that is the source of the request. The information processing apparatus according to claim 13, wherein the information processing apparatus calculates / changes the information.
1 5 . åèšãªã¯ãšã¹ãã®æ°ãæå®ç¯å²å
§ã«ããã äžã€ã åœè©²ãªã¯ãšã¹ãã®éåº å
ã§ããåŠçã«ã€ããŠè©²æ¡åéšã«ãã£ãŠæ¡åããã該æŒç®è³æºã®äœ¿çšç¶æ³ãšã㊠ã®äœ¿çšçãæå®å€ãè¶
ããŠããå Žåã 該åªå
床ç®åºéšãã åœè©²ãªã¯ãšã¹ãã®éåº å
ã§ããåŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽããããšãç¹åŸŽãšã ãã è«æ±ã®ç¯å²ç¬¬ 1 4é
èšèŒã®æ
å ±åŠçè£
眮ã 15. When the number of the requests is within the predetermined range å
§, and the usage rate as the usage status of the computational resources collected by the collection unit for the process from which the request is transmitted exceeds a predetermined value. 15. The information processing apparatus according to claim 14, wherein the priority calculation unit changes the priority of a process that is a source of the request so as to be lower than a current level.
1 6 . åèšãªã¯ãšã¹ãã®æ°ãæå®å€ãè¶
ããŠããå Žåã 該åªå
床ç®åºéšãã åœ è©²ãªã¯ãšã¹ãã®éåºå
ã§ããåŠçã®åèšåªå
床ãçŸç¶ãããäœãããããã«å€æŽ ããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 1 4é
èšèŒã®æ
å ±åŠçè£
眮ã 16. If the number of the requests exceeds a predetermined value, the priority calculation unit changes the priority of the process that is the source of the request to be lower than the current level. The information processing device according to claim 14, wherein
1 7 . åœè©²æ
å ±åŠçè£
眮ã«ãããŠåèš 2以äžã®åŠçãå®è¡ããéã«äœ¿çšããã 1以äžã®å®è¡ç°å¢ãšããŠã®ã¯ãŒã¯ããŒãã®ç¹æ§ã ãããã¯ã ãŠãŒã¶ã®èŠæã«å¿ã ãŠã åºæºå€ ïŒåèšåªå
床ã®åæå€ïŒ åèšãªã¯ãšã¹ ãã®æ°ãšæ¯èŒãããåèšæå®å€, åèšãªã¯ãšã¹ãã®æ°ãšæ¯èŒãããåèšæå®ç¯å²ïŒ åèšäœ¿çšçãšæ¯èŒãããåèšæ å®å€ïŒ 該åªå
床ç®åºéšã«ããåèšåªå
床ã®å€æŽå¹
ã®ãã¡ã®å°ãªããšãäžã€ïŒ ãæ åã§æäœããããã®æäœæ段ãããã«ããªããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 1é
ã第 1 6é
ã®ããããäžé
ã«èšèŒã®æ
å ±åŠçè£
眮ã
17. A reference value (initial value of the priority) according to a characteristic of a workload as one or more execution environments used when executing the two or more processes in the information processing device or a user's request. A value, the predetermined value to be compared with the number of requests, the predetermined range to be compared to the number of requests, the predetermined value to be compared to the usage rate, and a change width of the priority by the priority calculation unit. The information processing apparatus according to any one of claims 1 to 16, further comprising an operation means for manually operating at least one of the above.
1 8 . åœè©²æ
å ±åŠçè£
眮ã«ãããŠåèš 2以äžã®åŠçãå®è¡ããéã«äœ¿çšããã 1以äžã®å®è¡ç°å¢ãšããŠã®ã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãšã ãã®å®è¡ç¶æ³ã«å¿ããåº æºå€ ïŒåèšåªå
床ã®åæå€ïŒ åèšãªã¯ãšã¹ãã®æ°ãšæ¯èŒãããåèšæå®å€ïŒ åèš ãªã¯ãšã¹ãã®æ°ãšæ¯èŒãããåèšæå®ç¯å²ïŒ åèšäœ¿çšçãšæ¯èŒãããåèšæå®å€: 該åªå
床ç®åºéšã«ããåèšåªå
床ã®å€æŽå¹
ã®ãã¡ã®å°ãªããšãäžã€ïŒ ãšã®çµã¿å ãããä¿æããããŒãã«ãšã 18. The execution status of the workload as one or more execution environments used when executing the two or more processes in the information processing device, and a reference value according to the execution status (the initial value of the priority) A value, the predetermined value to be compared with the number of requests, the predetermined range to be compared to the number of requests, the predetermined value to be compared to the usage rate: a change width of the priority by the priority calculation unit. A table holding a combination with at least one of
åèšã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ãã¢ãã¿ããã¢ãã¿æ段ãšã  Monitoring means for monitoring the execution status of the workload;
該ã¢ãã¿æ段ã«ããã¢ãã¿çµæãåããŠè©²ããŒãã«ãåç
§ãã åèšåºæºå€ãã 該ã¢ãã¿æ段ã«ãã£ãŠã¢ãã¿ãããåèšã¯ãŒã¯ããŒãã®å®è¡ç¶æ³ã«å¿ãããã®ã« åçã«å€æŽããå€æŽæ段ãšãããã«ããªããããšãç¹åŸŽãšããã è«æ±ã®ç¯å²ç¬¬ 1 é
ã第 1 6é
ã®ããããäžé
ã«èšèŒã®æ
å ±åŠçè£
眮ã  And a change unit for dynamically changing the reference value to a value corresponding to an execution status of the workload monitored by the monitor unit by referring to the table in response to the monitoring result by the monitor unit. The information processing apparatus according to any one of claims 1 to 16, characterized in that:
1 9 . 2以äžã®åŠçãå®è¡ããããã®åœä»€ã¢ãã¬ã¹ãåèšåŠçæ¯ã«çæããåœ ä»€ã¡ãã¬ã¹çæéšãšã äž»èšæ¶äžã®åœä»€é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽã該㳠ããŒã®äžãã該åœä»€ã¡ãã¬ã¹çæéšã«ãã£ãŠçæãããåèšåœä»€ã¡ãã¬ã¹ã«å¿ã ãåœä»€ãåºåããåœä»€ãã€ãã·ã¥ã¡ã¢ãªãšã 該åœä»€ãã€ãã·ã¥ã¡ã¢ãªããåºåã ããè€æ°ã®åœä»€ãä¿æããåœä»€ãããã¡ãšã 該åœä»€ãããã¡ã«ä¿æãããåœä»€ã® ãã¡ã®å°ãªããšãäžã€ãéžæããŠåºåããã»ã¬ã¯ã¿ãšã 該ã»ã¬ã¯ã¿ããã®åœä»€ã ãã³ãŒããããã³ãŒããšã 該ãã³ãŒãã«ãããã³ãŒãçµæã«å¿ããæŒç®ãå®è¡ã ãæŒç®éšãšã äž»èšæ¶äžã®ããŒã¿é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽãã 該ã³ã㌠ã®äžããã 該æŒç®éšã§ã®æŒç®ã«å¿
èŠãªããŒã¿ã該æŒç®éšããã®èŠæ±ã«å¿ããŠåºå ããããŒã¿ãã£ãã·ã¥ã¡ã¢ãªãšãããªãã åèš 2以äžã®åŠçã䞊åçã«å®è¡ãã æ
å ±åŠçè£
眮ã«ãããŠã åèš 2以äžã®åŠçã«ã€ããŠã®ååœä»€ã®å®è¡ç¶æ
ãå¶åŸ¡ã ãåœä»€åŠçå¶åŸ¡è£
眮ã§ãã€ãŠã 19.2 An instruction address generating unit for generating an instruction address for executing at least one processing for each processing, and temporarily storing a copy of a part of the instruction area on the main memory and storing the copy in the copy. An instruction cache memory that outputs an instruction corresponding to the instruction address generated by the instruction address generation unit from an instruction buffer; an instruction buffer that holds a plurality of instructions output from the instruction cache memory; A selector for selecting and outputting at least one of the instructions, a decoder for decoding an instruction from the selector, an operation unit for performing an operation in accordance with a result of decoding by the decoder, and data on the main memory. A data key for temporarily storing a partial copy of the area and outputting data necessary for the operation in the operation unit in response to a request from the operation unit from the copy Includes a Sshumemori, in an information processing apparatus for executing parallel to the two or more processing shall apply in the instruction processing controller that controls the execution status of each instruction for the two or more processing,
該æŒç®éšã«ãããæŒç®è³æºã®ç©ºãæéãåæžããããã«ååŠçã®åªå
床ãç®åºÂ Calculate the priority of each process so as to reduce the free time of computation resources in the computation unit
Zå€æŽããåªå
床ç®åºéšãšã A priority calculating unit for changing Z,
該åªå
床ç®åºéšã«ãã€ãŠç®åº/å€æŽãããååŠçã®åªå
床ãåç
§ãã åèšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ãã³ãŒããžåºåããããã«è©² ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ããå¶åŸ¡éšãšãããªããããšãç¹åŸŽãšããã åœä»€åŠçå¶åŸ¡
Referring to the priority of each process calculated / changed by the priority calculation unit, the operation of the selector is performed so as to preferentially select an instruction for the process with the higher priority and output it to the decoder. Command processing control characterized by having a control unit for controlling
2 0 . 2以äžã®åŠçãå®è¡ããããã®åœä»€ã¡ãã¬ã¹ãåèšåŠçæ¯ã«çæããåœ ä»€ã¡ãã¬ã¹çæéšãšã äž»èšæ¶äžã®åœä»€é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽã該㳠ããŒã®äžãã該åœä»€ã¡ãã¬ã¹çæéšã«ãã£ãŠçæãããåèšåœä»€ã¡ãã¬ã¹ã«å¿ã ãåœä»€ãåºåããåœä»€ãã£ãã·ã¥ã¡ã¢ãªãšã 該åœä»€ãã£ãã·ã¥ã¡ã¢ãªããåºåã ããè€æ°ã®åœä»€ãä¿æããåœä»€ãããã¡ãšã 該åœä»€ãããã¡ã«ä¿æãããåœä»€ã® ãã¡ã®å°ãªããšãäžã€ãéžæããŠåºåããã»ã¬ã¯ã¿ãšã 該ã»ã¬ã¯ã¿ããã®åœä»€ã ãã³ãŒããããã³ãŒããšã 該ãã³ãŒãã«ãããã³ãŒãçµæã«å¿ããæŒç®ãå®è¡ã ãæŒç®éšãšã äž»èšæ¶äžã®ããŒã¿é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽãã 該ã³ã㌠ã®äžããã 該æŒç®éšã§ã®æŒç®ã«å¿
èŠãªããŒã¿ã該æŒç®éšããã®èŠæ±ã«å¿ããŠåºå ããããŒã¿ãã£ãã·ã¥ã¡ã¢ãªãšãããªãã åèš 2以äžã®åŠçã䞊åçã«å®è¡ãã æ
å ±åŠçè£
眮ã«ãããŠã åèš 2以äžã®åŠçã«ã€ããŠã®ååœä»€ã®å®è¡ç¶æ
ãå¶åŸ¡ã ãåœä»€åŠçå¶åŸ¡æ¹æ³ã§ãã£ãŠã An instruction address generation unit for generating an instruction address for executing 0.2 or more processes for each of the processes; a copy of a part of the instruction area on the main memory is temporarily stored and stored in the copy; An instruction cache memory for outputting an instruction corresponding to the instruction address generated by the instruction address generation unit, an instruction buffer for storing a plurality of instructions output from the instruction cache memory, and an instruction buffer for storing the instructions. A selector for selecting and outputting at least one of the instructions, a decoder for decoding an instruction from the selector, an operation unit for performing an operation in accordance with a result of decoding by the decoder, and data on the main memory. A data key for temporarily storing a partial copy of the area and outputting data necessary for the operation in the operation unit in response to a request from the operation unit from the copy Includes a Sshumemori, the information processing apparatus to perform parallel two or more processing, an instruction processing control method that controls the execution status of each instruction for the two or more processing,
該æŒç®éšã«ãããæŒç®è³æºã®ç©ºãæéãåæžããããã«ååŠçã®åªå
床ãç®åº Zå€æŽããåªå
床ç®åºã¹ããããšã  A priority calculating step of calculating the priority of each process so as to reduce the idle time of the processing resources in the processing unit;
該åªå
床ç®åºã¹ãããã«ãããŠç®åº/å€æŽãããååŠçã®åªå
床ãåç
§ãã å èšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ãã³ãŒããžåºåããã ãã«è©²ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ããå¶åŸ¡ã¹ããããšãå«ãããšãç¹åŸŽãšããã åœä»€ åŠçå¶åŸ¡æ¹æ³ã  The operation of the selector is controlled by referring to the priority of each process calculated / changed in the priority calculation step and preferentially selecting an instruction for the process with the higher priority and outputting the instruction to the decoder. And a controlling step.
2 1 . 2以äžã®åŠçãå®è¡ããããã®åœä»€ã¡ãã¬ã¹ãåèšåŠçæ¯ã«çæããåœ ä»€ã¡ãã¬ã¹çæéšãšã äž»èšæ¶äžã®åœä»€é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽã該㳠ããŒã®äžãã該åœä»€ã¡ãã¬ã¹çæéšã«ãã£ãŠçæãããåèšåœä»€ã¡ãã¬ã¹ã«å¿ã ãåœä»€ãåºåããåœä»€ãã£ãã·ã¥ã¡ã¢ãªãšã 該åœä»€ãã£ãã·ã¥ã¡ã¢ãªããåºåã ããè€æ°ã®åœä»€ãä¿æããåœä»€ãããã¡ãšã 該åœä»€ãããã¡ã«ä¿æãããåœä»€ã® ãã¡ã®å°ãªããšãäžã€ãéžæããŠåºåããã»ã¬ã¯ã¿ãšã 該ã»ã¬ã¯ã¿ããã®åœä»€ã ãã³ãŒããããã³ãŒããšã 該ãã³ãŒãã«ãããã³ãŒãçµæã«å¿ããæŒç®ãå®è¡ã ãæŒç®éšãšã äž»èšæ¶äžã®ããŒã¿é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽãã 該ã³ããŒ
ã®äžããã 該æŒç®éšã§ã®æŒç®ã«å¿
èŠãªããŒã¿ã該æŒç®éšããã®èŠæ±ã«å¿ããŠåºå ããããŒã¿ãã£ãã·ã¥ã¡ã¢ãªãšãããªãã åèš 2以äžã®åŠçã䞊åçã«å®è¡ãã æ
å ±åŠçè£
眮ã«ãããŠã åèš 2以äžã®åŠçã«ã€ããŠã®ååœä»€ã®å®è¡ç¶æ
ãå¶åŸ¡ã ãæ©èœãã³ã³ãã¥ãŒã¿ã«å®è¡ãããããã®åœä»€åŠçå¶åŸ¡ããã°ã©ã ã§ãã£ãŠã 該æŒç®éšã«ãããæŒç®è³æºã®ç©ºãæéãåæžããããã«ååŠçã®åªå
床ãç®åº /å€æŽããåªå
床ç®åºéšã ããã³ã 2.1.2 An instruction address generation unit for generating an instruction address for executing more than one process for each of the processes, and temporarily storing a copy of a part of the instruction area on the main memory and storing the copy in the copy. An instruction cache memory for outputting an instruction corresponding to the instruction address generated by the instruction address generation unit, an instruction buffer for storing a plurality of instructions output from the instruction cache memory, and an instruction buffer for storing the instructions. A selector for selecting and outputting at least one of the instructions, a decoder for decoding an instruction from the selector, an operation unit for performing an operation in accordance with a result of decoding by the decoder, and data on the main memory. Temporarily store a copy of the area, A data cache memory that outputs data necessary for the operation in the operation unit in response to a request from the operation unit, and executes the two or more processes in parallel. An instruction processing control program for causing a computer to execute a function of controlling the execution state of each instruction for two or more processings, wherein the priority of each processing is set so as to reduce the idle time of operation resources in the operation unit. A priority calculation unit that calculates / changes
該åªå
床ç®åºéšã«ãã£ãŠç®åºãå€æŽãããååŠçã®åªå
床ãåç
§ãã åèšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ãã³ãŒããžåºåããããã«è©² ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ããå¶åŸ¡éšãšããŠã 該ã³ã³ãã¥ãŒã¿ãæ©èœãããããšãç¹ åŸŽãšããã åœä»€åŠçå¶åŸ¡ããã°ã©ã ã  The operation of the selector is controlled so as to refer to the priority of each process calculated and changed by the priority calculation unit and to preferentially select an instruction for the process with the higher priority and output it to the decoder. An instruction processing control program characterized by causing the computer to function as a control unit.
2 2 . 2以äžã®åŠçãå®è¡ããããã®åœä»€ã¡ãã¬ã¹ãåèšåŠçæ¯ã«çæããåœ ä»€ã¡ãã¬ã¹çæéšãšã äž»èšæ¶äžã®åœä»€é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽã該㳠ããŒã®äžãã該åœä»€ã¡ãã¬ã¹çæéšã«ãã£ãŠçæãããåèšåœä»€ã¡ãã¬ã¹ã«å¿ã ãåœä»€ãåºåããåœä»€ãã£ãã·ã¥ã¡ã¢ãªãšã 該åœä»€ãã£ãã·ã¥ã¡ã¢ãªããåºåã ããè€æ°ã®åœä»€ãä¿æããåœä»€ãããã¡ãšã 該åœä»€ãããã¡ã«ä¿æãããåœä»€ã® ãã¡ã®å°ãªããšãäžã€ãéžæããŠåºåããã»ã¬ã¯ã¿ãšã 該ã»ã¬ã¯ã¿ããã®åœä»€ã ãã³ãŒããããã³ãŒããšã 該ãã³ãŒãã«ãããã³ãŒãçµæã«å¿ããæŒç®ãå®è¡ã ãæŒç®éšãšã äž»èšæ¶äžã®ããŒã¿é åã®äžéšã®ã³ããŒãäžæçã«æ ŒçŽãã 該ã³ã㌠ã®äžããã 該æŒç®éšã§ã®æŒç®ã«å¿
èŠãªããŒã¿ã該æŒç®éšããã®èŠæ±ã«å¿ããŠåºå ããããŒã¿ãã£ãã·ã¥ã¡ã¢ãªãšãããªãã åèš 2以äžã®åŠçã䞊åçã«å®è¡ãã æ
å ±åŠçè£
眮ã«ãããŠã åèš 2以äžã®åŠçã«ã€ããŠã®ååœä»€ã®å®è¡ç¶æ
ãå¶åŸ¡ã ãæ©èœãã³ã³ãã¥ãŒã¿ã«å®è¡ãããããã®åœä»€åŠçå¶åŸ¡ããã°ã©ã ãèšé²ããã³ ã³ãã¥ãŒã¿èªåå¯èœãªèšé²åªäœã§ãã£ãŠã 2.2.2 An instruction address generation unit that generates an instruction address for executing two or more processes for each of the processes, and temporarily stores a copy of a part of the instruction area on the main memory and stores the copy in the copy. An instruction cache memory for outputting an instruction corresponding to the instruction address generated by the instruction address generation unit, an instruction buffer for storing a plurality of instructions output from the instruction cache memory, and an instruction buffer for storing the instructions. A selector for selecting and outputting at least one of the instructions, a decoder for decoding an instruction from the selector, an operation unit for executing an operation in accordance with a result of decoding by the decoder, and data on the main memory. A data key for temporarily storing a partial copy of the area and outputting data necessary for the operation in the operation unit in response to a request from the operation unit from the copy And an instruction processing control program for causing a computer to execute a function of controlling an execution state of each instruction for the two or more processes, the information processing device having a flash memory and executing the two or more processes in parallel. A computer-readable recording medium on which the computer is recorded;
該åœä»€åŠçå¶åŸ¡ããã°ã©ã ãã  The instruction processing control program comprises:
該æŒç®éšã«ãããæŒç®è³æºã®ç©ºãæéãåæžããããã«ååŠçã®åªå
床ãç®åº /å€æŽããåªå
床ç®åºéšã ããã³ã  A priority calculation unit that calculates / changes the priority of each process so as to reduce the idle time of the calculation resources in the calculation unit; and
該åªå
床ç®åºéšã«ãã£ãŠç®åº/å€æŽãããååŠçã®åªå
床ãåç
§ãã åèšåªå
床ã®é«ãåŠçã«ã€ããŠã®åœä»€ãåªå
çã«éžæããŠè©²ãã³ãŒããžåºåããããã«è©²
ã»ã¬ã¯ã¿ã®åäœãå¶åŸ¡ããå¶åŸ¡éšãšããŠã 該ã³ã³ãã¥ãŒã¿ãæ©èœãããããšãç¹ åŸŽãšããã åœä»€åŠçå¶åŸ¡ããã°ã©ã ãèšé²ããã³ã³ãã¥ãŒã¿èªåå¯èœãªèšé²åªäœ (
Referring to the priority of each process calculated / changed by the priority calculation unit, the instruction for the process with the higher priority is preferentially selected and output to the decoder. A computer-readable recording medium (in which an instruction processing control program is recorded) characterized by causing the computer to function as a control unit that controls the operation of the selector.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/009635 WO2005013129A1 (en) | 2003-07-30 | 2003-07-30 | Information processing device, instruction processing control device, instruction processing control method, instruction processing control program, and computer readable recording medium containing the instruction processing control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/009635 WO2005013129A1 (en) | 2003-07-30 | 2003-07-30 | Information processing device, instruction processing control device, instruction processing control method, instruction processing control program, and computer readable recording medium containing the instruction processing control program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2005013129A1 true WO2005013129A1 (en) | 2005-02-10 |
Family
ID=34113451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2003/009635 WO2005013129A1 (en) | 2003-07-30 | 2003-07-30 | Information processing device, instruction processing control device, instruction processing control method, instruction processing control program, and computer readable recording medium containing the instruction processing control program |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2005013129A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905783A (en) * | 2012-12-25 | 2014-07-02 | æå·æµ·åº·åšè§æ°åææ¯è¡ä»œæéå ¬åž | Method and device for performing decoding and displaying on video stream |
-
2003
- 2003-07-30 WO PCT/JP2003/009635 patent/WO2005013129A1/en not_active Application Discontinuation
Non-Patent Citations (2)
Title |
---|
Agarwal A. et al., APRIL: A Processor Architecture for Multiprocessing In: Proceedings of the 17th Annual Symposium on Computer Architecture, 1990, pages 104 - 114 * |
HIRATA S. et al., "Taju Seigyo Flow Kiko o Sonaeta Shigen Kyoyugata Processor Architecture", Information Processing Society of Japan Kenkyu Hokoku, Vol. 92, No. 48 (92-ARC-94), JP, Information Processing Society of Japan, 1992, pages 9 - 16 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905783A (en) * | 2012-12-25 | 2014-07-02 | æå·æµ·åº·åšè§æ°åææ¯è¡ä»œæéå ¬åž | Method and device for performing decoding and displaying on video stream |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8468324B2 (en) | Dual thread processor | |
US7051329B1 (en) | Method and apparatus for managing resources in a multithreaded processor | |
JP5329563B2 (en) | Shared interrupt controller for multithreaded processors | |
US8516024B2 (en) | Establishing thread priority in a processor or the like | |
US8386753B2 (en) | Completion arbitration for more than two threads based on resource limitations | |
JP5413853B2 (en) | Thread de-emphasis method and device for multi-threaded processor | |
US5727227A (en) | Interrupt coprocessor configured to process interrupts in a computer system | |
JPH07281896A (en) | Information processor | |
CN101501636A (en) | Method and apparatus for executing processor instructions based on a dynamically alterable delay | |
US8539212B1 (en) | Determinative branch prediction indexing | |
JP2004518183A (en) | Instruction fetch and dispatch in multithreaded systems | |
JP5104861B2 (en) | Arithmetic processing unit | |
EP2159691B1 (en) | Simultaneous multithreaded instruction completion controller | |
EP1811375A1 (en) | Processor | |
JP2007517322A (en) | Decoupling the number of logical threads from the number of simultaneous physical threads in a processor | |
JP5155655B2 (en) | Microprocessor output port and control of instructions provided from it | |
JP2020091751A (en) | Operation processing device and method for controlling the same | |
WO2005013129A1 (en) | Information processing device, instruction processing control device, instruction processing control method, instruction processing control program, and computer readable recording medium containing the instruction processing control program | |
JP2004295195A (en) | Method and device for issuing instruction, central processing unit, instruction issuing program, and computer readable storage medium for storing the program | |
JP4631442B2 (en) | Processor | |
US11907126B2 (en) | Processor with multiple op cache pipelines | |
US20220100519A1 (en) | Processor with multiple fetch and decode pipelines | |
KR100953986B1 (en) | Method and apparatus for utilizing latency of cache miss using priority based excution | |
US20040128488A1 (en) | Strand switching algorithm to avoid strand starvation | |
CN114579264A (en) | Processing apparatus, processing system, and processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP US |
|
NENP | Non-entry into the national phase |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |