WO2013105237A1 - 試験プログラム、試験方法、及び処理装置 - Google Patents

試験プログラム、試験方法、及び処理装置 Download PDF

Info

Publication number
WO2013105237A1
WO2013105237A1 PCT/JP2012/050403 JP2012050403W WO2013105237A1 WO 2013105237 A1 WO2013105237 A1 WO 2013105237A1 JP 2012050403 W JP2012050403 W JP 2012050403W WO 2013105237 A1 WO2013105237 A1 WO 2013105237A1
Authority
WO
WIPO (PCT)
Prior art keywords
test
processor
processing
unit
data
Prior art date
Application number
PCT/JP2012/050403
Other languages
English (en)
French (fr)
Inventor
岡村則彦
市川文男
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2012/050403 priority Critical patent/WO2013105237A1/ja
Publication of WO2013105237A1 publication Critical patent/WO2013105237A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master

Definitions

  • the present invention relates to a technique for performing a test for confirming the operation of a plurality of processing devices.
  • test program In a processing device that can execute a program such as a CPU (Central Processing Unit), a dedicated program (hereinafter referred to as a “test program”) is executed to perform a test for verifying the microarchitecture, that is, the internal structure design. Is called.
  • a test program having a subprogram for performing the test and another subprogram for starting the subprogram is used as the test program.
  • a subprogram for performing a test is referred to as a “test unit”, and a subprogram for starting the test unit is referred to as a “control unit”.
  • the above test program verifies the microarchitecture of each processing device, for example, stand-alone.
  • One of the plurality of processing devices that execute the test program causes the processing unit to start the test program by executing the control unit, and realizes start of the test unit by the control unit executed by the start .
  • One of the plurality of processing devices outputs a test result obtained in another processing device by executing the test unit.
  • one of the plurality of processing devices functions as a test management device that advances a test of the entire processing device and outputs a test result (for example, error information regarding an error that has occurred).
  • a processing device functioning as a test management device will be referred to as a “management processing device” for convenience.
  • Tests by the test unit are usually performed on all available resources of the processing device for microarchitecture verification. For this reason, the control unit executed in each processing apparatus activates the test unit, passes control to the activated test unit, and then enters a sleep state.
  • the resource data used on the processing device by the control unit before passing control to the testing unit is saved in a memory usable by the processing device by the activated testing unit.
  • the data saved on the memory is, for example, data stored in various registers. The saved data is returned to the processing device when the control is transferred from the test unit to the control unit, so that the state before the control is transferred from the control unit to the test unit is restored.
  • a defect in the microarchitecture may hang up the test unit.
  • a processing device in which a hang-up occurs during execution of the test unit cannot execute the control unit again. This is because if the management processing device hangs up during execution of the test unit, even if there is a processing device that has passed control from the test unit to the control unit among other processing devices, This means that the test result cannot be output. For this reason, it is necessary to cause each processing apparatus to execute a test program from the beginning.
  • One aspect of the present invention provides a technique for enabling a processing device functioning as a management processing device to respond to a hang-up that occurs during execution of a test and to output a test result of a processing device that has not hung up.
  • the purpose is to do.
  • the processing apparatus is caused to determine whether or not to operate as a first processing apparatus that outputs a result of a test executed by each of the plurality of processing apparatuses, and operates as a first processing apparatus among the processing apparatuses that have completed the test.
  • the processing apparatus determined to be operated is operated as the first processing apparatus.
  • the test result of the processing device that has not hung up can be output.
  • FIG. 1 is a diagram illustrating a configuration example of a multiprocessor system including a plurality of processors capable of executing a test program according to the present embodiment.
  • the multiprocessor system 1 includes a total of N + 1 processors 11 (11-0 to 11-N), a memory (for example, a memory module) 12, an I / 0 (Input / Output) device 13, and a display device. 14, an input device 15, an interface (I / F) 16, and a bus 17 that connects the units 11 to 14 and 16 to each other.
  • the I / O device 13 is a storage device such as a hard disk device or a semiconductor storage device, and the test program 20 according to the present embodiment is stored in the I / O device 13.
  • the memory 12 is a storage device accessible to all the processors 11, and an area 12 a for each processor 11 to execute the test program 20 is secured.
  • the area 12a is hereinafter referred to as a “data management area”.
  • the test program 20 is a program for verifying the operation of each processor 11, for example, its microarchitecture (internal structure design), and is an execution target for all the processors 11.
  • the test program 20 includes a test unit 22 that is a subprogram for performing a test for verifying the microarchitecture, and a control unit 21 that is another subprogram that starts the test unit 22.
  • the processing apparatus according to the present embodiment is realized by the processor 11 executing the test program 20.
  • the control unit 21 of the test program 20 controls one of the N + 1 processors 11 to control the operation of the other processors 11 and outputs a test result. make it happen.
  • the control unit 21 that realizes the management function activates the test unit 22 and activates the test program 20 in the other processor 11.
  • the other processor 11 that activated the test program 20 executes the control unit 21 and activates the test unit 22.
  • the control unit 21 that realizes the management function causes each processor 11 to perform a test in parallel.
  • the processor 11 in which the management function is realized is referred to as “management processor 11” for convenience.
  • the processor 11 serving as the management processor 11 reads the test program 20 stored in the I / O device 13 into the memory 12 in accordance with the tester's instruction from the input device 15 via the bus 17 and the interface 16, for example, and the test program 20 Start up. As a result of the execution of the control unit 21 being started by the activation of the test program 20, the processor 11 operates as the management processor 11.
  • Whether or not the processor 11 that executes the test program 20 operates as the management processor 11 can be controlled by data that is taken into the test program 20 at the time of execution, for example.
  • the control can also be realized by causing the processor 11 that has activated the control unit 21 to check the presence or absence of the processor 11 that has activated the other control unit 21.
  • the former is assumed for convenience.
  • the test unit 22 performs a test on all the resources that can be used by the activated processor 11 in order to verify the microarchitecture. For this reason, the test unit 22 activated by each processor 11 stores data to be saved in the data of resources used by the control unit 21 in the activated processor 11 on the memory 12 before performing the test. The data is saved in the data management area 12a.
  • FIG. 4 is a diagram illustrating a configuration example of a processor.
  • a configuration example of the processor 11 to be executed by the test program 20 and data to be saved in the processor 11 of the configuration example will be specifically described.
  • the processor 11 shown in FIG. 4 corresponds to MTP (Multi Threaded Processing), and includes one SX unit (Secondary Cache and External Access Unit) 41 and four processor cores 42.
  • Each processor core 42 includes an S unit (Storage unit) 45, an I unit (Instruction unit) 46, and an E unit (Execution unit) 47.
  • the SX unit 41 includes a level 2 unified cache (indicated as “U2 Cache” in FIG. 4) 41b, and the unified cache 41b is used to exchange data with the S unit 45 of each processor core 42. Perform input / output.
  • the SX unit 41 includes an interface logic 41a for transmitting and receiving data via the bus 15.
  • the interface logic 41 a includes a move-in buffer 41 a 1 that stores data received from the bus 15 and a move-out buffer 41 a 2 that stores data to be transmitted to the bus 15.
  • Data received from the bus 15 is data from the memory 12, and data to be transmitted to the bus 14 is data stored in the memory 12.
  • the S unit 45 of each processor core 42 handles the supply and receipt of all data for load and store instructions.
  • the S unit 45 includes an interface for the SX unit 41 (indicated as “SX Interface” in FIG. 4) 45a, a level 1 cache for instructions (indicated as “L1I Cache” in FIG. 4) 45b, and a level for data. 1 cache (indicated as “L1D Cache” in FIG. 4) 45c, instruction TLB (Translation Look-aside Buffer. Indicated in FIG. 4 as “I-TLB”) 45d, and data TLB (in FIG. 4, “D 45e ”).
  • the interface 45a is a buffer (noted as “SX Order Queue” in FIG. 4) 45a1 used for storing data (including instructions) input from the SX unit 41, and a buffer used for storing data from the E unit 47 ( In FIG. 4, it is represented as “Store Queue”) 45a2.
  • Instructions and data from the SX unit 45 are stored in the buffer 45a of the interface 45a, and further stored in the cache 45b or 45c.
  • the address of the instruction or data stored in the cache 45b or 45c is a logical address (virtual address).
  • the TLB 45d converts the logical address of the instruction into a corresponding physical address (real address) and stores the corresponding relationship.
  • the logical address is treated as a tag, and the instruction is stored in the entry specified by that tag in the cache 45b.
  • the TLB 45d includes a table in which a plurality of entries that can store, for example, tags (logical addresses (for example, virtual page numbers), physical addresses (for example, physical page numbers)), and status flags are secured.
  • tags logical addresses (for example, virtual page numbers), physical addresses (for example, physical page numbers)
  • status flags are secured.
  • 32 entries are a full associative system capable of storing different logical addresses for each entry
  • 2048 entries are a 2-way set associative system capable of storing the same logical address in two entries. The same applies to the TLB 45e.
  • Instructions are pipelined. In the pipeline processing, instructions are speculatively input.
  • the buffer 45a2 is for separating the latency of the store instruction from the pipeline processing, and stores that the pipeline processing is continued while the store instruction is waiting for data.
  • the I unit 46 includes an instruction fetch pipeline 46a, a branch history 46b, an instruction buffer 46c, a commit stack entry 46d, a reservation station group 46e, and a register group 46f.
  • the instruction buffer 46c, the commit stack entry 46d, and the register group 46f are duplicated.
  • the instruction fetch pipeline 46a performs address generation of an instruction to be fetched, access to the cache 45b, writing of an instruction to the instruction buffer 46c, and the like.
  • the branch history 46b is a table for predicting the branch destination and branch direction of an instruction.
  • the instruction fetch pipeline 46a refers to the branch history 46b, fetches an instruction, and writes it to the instruction buffer 46c.
  • the instruction buffer 46c is a buffer for holding the instruction fetched in this way.
  • the commit stack entry 46d is a buffer for holding information on the instruction being executed.
  • Each reservation station constituting the reservation station group 46e is a buffer for holding the associated type of instruction until it can be executed.
  • the instruction that can be executed is read from the corresponding reservation station and output to the E unit 47.
  • the register group 46f is various registers visible in the program for instruction execution control.
  • PC, nPC, CCR, and FSR shown in FIG. 4 represent different register types.
  • PC is an abbreviation for “Program Counter”.
  • nPC is an abbreviation for “next Program Counter”, CCR for “Condition Code ⁇ Register ”, and FSR for“ Floating-Point State Register ”.
  • PC holds the address of the next instruction to be input.
  • nPC holds the address to be stored next in the PC.
  • the CCR holds, for example, a condition code having a plurality of flags.
  • the FSR holds an execution mode and state information of an ALU (Arithmetic and Logic Unit) that processes floating point data in the E unit 47.
  • ALU Arimetic and Logic Unit
  • the E unit 47 includes an ALU group 47a for processing instructions.
  • ALUs constituting the ALU group 47a two integer execution pipelines (indicated as “EXA” and “EXB” in FIG. 4) and two floating-point execution pipelines (“FLA” and “FLB” in FIG. 4) Notation)
  • the ALU in which the execution mode is stored in the FSR of the register group 46f included in the I unit 46 is a floating point execution pipeline.
  • the control logic 47b accesses the reservation station group 46 of the I unit 46, reads out the instruction that can be executed (input) from the corresponding reservation station, and supplies it to the corresponding ALU of the ALU group 47a.
  • Data necessary for executing the instruction of the ALU group 47a is acquired from the buffer 45a2, the cache 45c, or the register group 46f via the register group 47c.
  • Data obtained by executing the instruction of the ALU group 47a is stored in any of the registers of the buffer 45a2, the cache 45c, or the register group 46f via the register group 47c.
  • the E unit 47 includes a GUB (GPR Update Buffer) 47d, a CWR (Current Window Register) 47e, a GPR (General Purpose Register) 47f, a FUB (FPR Update Buffer) 47g, and an FPR (Floating Point Register). 47h. These are duplicated to support MTP. Although not clearly shown in FIG. 4, there are a plurality of these GUB 47d, GPR 47f, FUB 47g, and FPR 47h.
  • the GPR 47f is a general-purpose register used for holding integer data.
  • the CWR 47e is a register used for copying the GPR 47f.
  • GUB 47d is a renaming register file for GPR 47f.
  • the FPR 47h is a register used for holding floating point data.
  • FUB 47g is a renaming register file for FPR 47h.
  • the data held in the respective registers of the register group 46f provided in the I unit 46 and the data held in the GPR 47f and FPR 47h of the E unit 47 are to be saved.
  • the processor 11 in which the test unit 22 is activated saves the data held in those registers in the memory 12.
  • the data to be saved is not particularly limited because it depends on the configuration of the processor 11 and the like.
  • the test unit 22 restores the state before the control is transferred from the control unit 21 to the test unit 22 by returning the data saved in the memory 12 to the processor 11 when the control is transferred to the control unit 21. By restoring the state, the processor 11 shifts to a state where the control unit 21 can be executed.
  • the management processor 11 to which control is transferred from the test unit 22 to the control unit 21 collects and outputs the results of the tests by the other processors 11.
  • the output is performed using the display device 14 in the configuration shown in FIG.
  • Test results of other processors 11 can be collected by communication via the bus 17 or by obtaining test results via the memory 12.
  • test results of the other processors 11 are collected by communication via the bus 17.
  • the processor 11 By restoring the state before the control is transferred from the control unit 21 to the test unit 22, the processor 11 becomes ready to execute the control unit 21. Therefore, in the processor 11 in which the test unit 22 is hung up for some reason, the control unit 21 cannot be executed again.
  • the processor 11 is the management processor 11, the test result of the processor 11 in which no hang-up has occurred cannot be output. For this reason, in the present embodiment, when control is transferred from the test unit 22 to the control unit 21, the processor 11 that operates as the management processor 11 among the plurality of processors 11 is autonomously determined. As described above, since the management processor 11 is not fixed and one of the processors 11 in which no hang-up has occurred is operated as the management processor 11, the test result of the processor 11 in which no hang-up has occurred is reliably output. Can be made.
  • the management processor 11 newly determined from among the processors 11 that have passed control from the test unit 22 to the control unit 21 is the same as the management processor 11 that was operating before passing control from the control unit 21 to the test unit 22. There is a possibility not to. Accordingly, when it is necessary to distinguish between the two management processors 11, the newly determined management processor 11 is referred to as "second management processor 11". The management processor 11 that was operating before passing control from the control unit 21 to the test unit 22 is referred to as “first management processor 11”.
  • the second management processor 11 takes in the data saved in the memory 12 and controls the control unit 21 to the test unit 22. Restore the state before passing.
  • the second management processor 11 is not the data saved in the memory 12 itself but the first management processor which is another processor 11. 11 retrieves the data saved in the memory 12 and restores the state of the first management processor 11 before the control is transferred from the control unit 21 to the test unit 22.
  • identification information for individually identifying each processor 11 is assigned to each processor 11.
  • the processor 11 configured as shown in FIG. 4 holds the assigned identification information in a register, for example, one of GPR 47f. Such identification information should not be taken into another processor 11 even if it is data saved in the memory 12.
  • the data saved from each processor 11 to the memory 12 includes data that other processors 11 may capture (hereinafter referred to as “general-purpose data”) and data that should not be captured by other processors 11 (hereinafter referred to as “general data”). It is called “dedicated data”). Accordingly, in this embodiment, the data to be saved in each processor 11 is divided into general-purpose data and dedicated data and saved in the memory 12. Therefore, when the first management processor 11 and the second management processor 11 are not the same, the second management processor 11 sends its own dedicated data and general-purpose data of the first management processor 11 from the memory 12. The state in which the control and the control unit 21 can be executed is restored.
  • an area is secured on the memory 12 so that each processor 11 can recognize the first management processor 11, and the first management processor is made to write its identification information in the area. ing.
  • the identification information written in the area is hereinafter referred to as “flag A”.
  • the area in which the flag A is written is hereinafter referred to as “flag area”.
  • each processor 11 other than the first management processor 1 activates the test program 20 under the control of the first management processor 11 and activates the test unit 22 by the control unit 21. If the hang-up does not occur, the processor 11 that has passed control to the test unit 22 takes in the data saved in the memory 12 after executing the test.
  • the processor 11 that first accessed the memory 12 for the capture is set as the second management processor 11 so that each processor 11 can capture appropriate data.
  • the first management processor 11 writes the flag for determination to the flag area in addition to writing the flag A so that each processor 11 can determine whether or not the access is the first. It has become.
  • the flag is information indicating, for example, whether or not the test is completed in any of the processors 11.
  • the first management processor 11 writes information indicating that the test has not ended as the flag.
  • the flag is hereinafter referred to as “test end flag” or “flag B”.
  • the processor 11 that has completed the test accesses the memory 12 and refers to the flag B to check whether or not the flag B indicates the end of the test. Accordingly, the processor 11 confirming that the flag B does not indicate the end of the test updates the flag B with information indicating the end of the test, and updates the flag A with its own identification information.
  • the processor 11 operates as the second management processor 11.
  • FIG. 3 is a diagram for explaining an example of an area secured on a memory by each processor that executes a test program.
  • the data management area 12 a for each processor 11 (11-0 to 11 -N) to execute the test program 20 is secured on the memory 12.
  • the flag area 31 in which the flag A 311 and the flag B 312 are stored and the processors 11 (11-0 to 11-N) are stored as sub areas.
  • Register save areas 32 (32-0 to 32-N), which are areas used for save, are secured.
  • a dedicated register storage area 321 for storing dedicated data and a general register save area 322 for storing general data are secured.
  • the location where the data management area 12a is secured on the memory 12 and the location of the register save area 32 used by each processor 11 can be specified by each processor 11 by data taken when the test program 20 is started, for example.
  • each processor 11 and the register save area 32 used by the processor 11 to save data is associated, and dedicated data and general-purpose data are stored in the register save area 32. Separately stored. In this way, any processor 11 different from the first management processor 11 restores the state before the control is transferred from the control unit 21 to the test unit 22 by using the general-purpose data of the first management processor 11. I can do it.
  • the processor 11 that has completed the test accesses the memory 12 and refers to the flag B312 to check whether or not the flag B indicates the end of the test. Thereby, the processor 11 confirming that the flag B312 does not indicate the end of the test refers to the flag A311 and further determines whether or not the first management processor 11 is itself. Based on the determination, the processor 11 that has confirmed that it is not the first management processor 11 replaces the general-purpose data saved by itself with the general-purpose data of the first management processor 11 on the memory 12.
  • each processor 11 restores the state before the control is transferred from the control unit 21 to the test unit 22 using the data on the corresponding register save area 32. For this reason, the restoration itself can be performed in the same manner as in the past, avoiding complicated processing. This is why the processor 11 that functions as the second management processor 11 performs the above replacement.
  • the processors 11 that have not been replaced do not function as the second management processor 11, including those that function as the first management processor 11.
  • the test program 20 has the following functional configuration. This will be specifically described with reference to FIGS. 2A and 2B.
  • FIG. 2A is a diagram illustrating a functional configuration example of the control unit 21
  • FIG. 2B is a diagram illustrating a functional configuration example of the test unit 22.
  • the control unit 21 includes a flag A setting unit 211, a flag B setting unit 212, a test unit activation unit 213, an end monitoring unit 214, and a test result output unit 215 as functional configurations (for example, subprograms).
  • the test unit 22 includes, as a functional configuration (for example, a subprogram), a register saving unit 221, a test execution unit 222, a flag B determination unit 223, a general-purpose register switching unit 224, a flag A resetting unit 225, And a register restoration unit 226.
  • the flag A setting unit 211 is a function for storing the flag A 311 on the memory 12.
  • the flag B setting unit 212 is a function for storing the flag B 312 on the memory 12. Therefore, both the flag A setting unit 211 and the flag B setting unit 212 operate only on the first management processor 11.
  • the test unit activation unit 213 is a function for activating the test unit 22.
  • the operation content differs between the first management processor 11 and the other processors 11.
  • the end monitoring unit 214 is a function for monitoring the end of the test of the other processor 11.
  • the end monitoring unit 214 operates only in the processor 11 that functions as the second management processor 11 among the processors 11 to which control is transferred from the test unit 22 to the control unit 22.
  • the test result output unit 215 is a function for outputting the result of the test by the test unit 22.
  • the test result output unit 215 causes the second management processor 11 to output the test result based on the above assumption in the processors 11 other than the second management processor 11.
  • the test result output unit 215 outputs its own test results and the test results collected from the other processors 11.
  • the register saving unit 221 of the test unit 22 is a function for saving data to be saved.
  • the register saving unit 221 roughly divides the data to be saved into dedicated data and general-purpose data, and stores the data in the corresponding register saving area 32 on the memory 12.
  • the test execution unit 222 is a function for performing a test.
  • the flag B determination unit 223 is a function for determining the contents of the flag B 312 on the memory 12 when the test by the test execution unit 222 is completed.
  • the determination of the content of the flag B312 is a determination as to whether or not the flag B312 represents the end of the test as described above.
  • the general-purpose register replacement unit 224 is a function for updating the flag B312 to the content indicating the end of the test and replacing the general-purpose data as necessary.
  • the general-purpose register switching unit 224 operates when the flag B determination unit 223 determines that the flag B 312 does not indicate the end of the test.
  • the necessity for replacing the general-purpose data is determined with reference to the flag A311. Thereby, the replacement of the general-purpose data is performed when it is determined that the content (identification information) of the flag A 311 does not represent the processor (hereinafter referred to as “own processor”) 11 executing the flag B determination unit 223. .
  • the flag A resetting unit 225 is a function for writing the identification information of its own processor in the memory 12 as the flag A311.
  • the flag A resetting unit 225 operates in the same manner as the general-purpose register switching unit 224, when the flag B determination unit 223 determines that the flag B312 does not indicate the end of the test.
  • the register restoration unit 226 is a function for reading data on the corresponding register save area 32 and restoring the state before transferring control from the control unit 21 to the test unit 22 on the own processor 11. When the general-purpose register switching unit 224 operates, the register restoration unit 226 operates after the general-purpose register switching unit 224 operates.
  • a flag A setting unit 211 and a flag B setting unit 212 are added to the control unit 21, and a flag B determination unit 223, a general-purpose register switching unit 224, and a flag A resetting unit 225 are added to the test unit 22.
  • a processor 11 different from the first management processor 11 can function as the second management processor 11.
  • the functional configurations of the control unit 21 and the test unit 22 shown in FIGS. 2A and 2B are examples, and are not limited to such functional configurations.
  • FIG. 5 is a diagram for explaining the operation of each processor that executes the test program. Next, the operation of each processor 11 when the test program 20 is executed will be specifically described with reference to FIG.
  • the number of processors 11 is three. It is assumed that the processor 11-0 is the first management processor 11. As a code of the processor, a symbol string (for example, “11-0”) in which “11” is followed by a hyphen and a number other than the unidentifiable processor is used. “111” and “112” shown in FIG. 5 are one or more resources (hereinafter referred to as “dedicated registers”) in which dedicated data is stored, and a plurality of registers in which general-purpose data is stored. Group (hereinafter referred to as “general-purpose register group”).
  • the processor 11-0 set in advance as the first management processor 11 loads the test program 20 from the I / O device 13 to the memory 12 and starts the test program 20 according to an instruction via the input device 15 (S1). ). With this activation, the processor 11-0 executes the control unit 21.
  • the processor 11-0 that has started the execution of the control unit 21 writes its own identification information (for example, processor ID (identifier)) in the memory 12 as the flag A311 (S2).
  • the processor 11-0 writes information indicating that the test has not been completed into the memory 12 as a flag B312 (S3).
  • the processor 11-0 activates the test program 20 in the processors 11-1 and 11-2 (S4). With this activation, each of the processors 11-1 and 11-2 starts execution of the control unit 21.
  • the processor 11-0 activates the test unit 22 (S5).
  • the other processors 11-1 and 11-2 automatically activate the test unit 22 by the control unit 21 that is started by the activation of the test program 20 (S5 ').
  • Each of the processors 11-0 to 11-2 that activated the test unit 22 transfers the dedicated data stored in the dedicated register 111 in the corresponding register save areas 32-0 to 32-2 on the memory 12, respectively. Write to the dedicated register save area 321 (S6). Further, each of the processors 11-0 to 11-2 transfers the general-purpose data stored in the general-purpose register group 112 to the general-purpose register save area 322 in the corresponding register save area 32-0 to 32-2 on the memory 12. (S7).
  • “000011111”, “00110011”, and “01010101” represent the contents of dedicated data saved from the processors 11-0 to 11-2, respectively.
  • FIG. 5 In FIG. 5, “11110000”, “11001100”, and “101010” represent the contents of general-purpose data saved from the processors 11-0 to 11-2, respectively.
  • Each of the processors 11-0 to 11-2 executing the test unit 22 performs a test next, and refers to the flag B312 after the test ends.
  • the processor 11 confirming that the value of the flag B312 is 0 by the reference updates the value of the flag B312 from 0 to 1, and further refers to the flag A311 to replace the general-purpose data (here, the processor 11).
  • the processor 11-0) is specified (S8). Thereby, the processor 11 that has confirmed that the value of the flag A311 is not a value representing the own processor 11 replaces the specified general-purpose data of the processor 11 and the general-purpose data of the own processor 11 on the memory 12 (S9).
  • FIG 5 shows a state in which the processor 11-2 replaces the general-purpose data of the processor 11-2 with the general-purpose data of the processor 11-0 when the processor 11-2 first completes the test.
  • the processor 11 that has confirmed that the value of the flag A 311 represents the own processor 11 does not perform such replacement.
  • the processor 11 that has confirmed that the value of the flag B312 is 0 next writes a value representing the processor 11 as the flag A311 (S10).
  • the processor 11 reads the dedicated data saved in the dedicated register save area 321 in the corresponding register save area 32 and stores it in the dedicated register 111 (S11).
  • the processor 11 further reads the general-purpose data saved in the general-purpose register save area 322 in the corresponding register save area 32 and stores it in the general-purpose register group 112 (S12).
  • the processor 11 that has restored the state before the control is transferred from the control unit 21 to the test unit 22 passes control from the test unit 22 to the control unit 21 (S13).
  • the other processor 11 refers to the flag B312 after the test is completed, and confirms the existence of the processor 11 that has completed the test earlier (S8). As a result, the other processor 11 returns the saved dedicated data and general-purpose data to the dedicated register 111 and general-purpose register group 112, respectively (S11, S12), and passes control from the test unit 22 to the control unit 21 (S13). ).
  • FIG. 5 shows that the contents of the general-purpose data of the processors 11-0 and 11-2 change between before and after the saving due to the replacement of the general-purpose data.
  • FIG. 6 is a flowchart showing processing executed by each processor under the control of the test program.
  • the processing shown in FIG. 6 is realized when one of the processors 11 starts the test program 20.
  • the processing executed by each processor 11 under the control of the test program 20 will be specifically described.
  • the process shown in FIG. 6 is the instruction of the test program 20 that is sequentially supplied from one of the four processor cores 42 via the SX unit 41. It is realized by executing.
  • FIG. 6 shows a flowchart assuming that the processor 11-0 is the first management processor 11 and the second management processor 11.
  • S100, S120, and S300 are processes realized by the control unit 21, and S200 is a process realized by the test unit 22.
  • S100 and S120 are processes realized by the processor 11 before passing control to the test unit 22. More specifically, S100 is a process realized by the first management processor 11, and S120 is a process realized by the other processor 11. S300 is a process realized by the second management processor 11 whose control is transferred from the test unit 22 to the control unit 21. The processing realized by the processors 11 other than the second management processor 11 for which control is transferred from the test unit 22 to the control unit 21 is omitted.
  • the processor 11-0 loads the test program 20 on the I / O device 13 into the memory 12 and starts the test program 20 according to the tester's instruction from the input device 15 input via the interface 16 and the bus 17. To do. With the activation, the processor 11-0 executes S100 by the control unit 21. In S100, the following processing is performed.
  • the processor 11-0 sets its own processor ID as a history of operation as the first management processor 11, and writes the processor ID as a flag A311 on the memory 12 (S101).
  • the processor 11-0 writes a flag B312 indicating that the test has not ended in the memory 12 (in FIG. 6, "reset test end flag") (S102).
  • the processor 11-0 activates the test unit 22 and instructs the other processors 11 to activate the test program 20 (S103). Since the control is transferred from the control unit 21 to the test unit 22 by the activation of the test unit 22, the series of processing of S100 ends here.
  • S101 is realized by the flag A setting unit 211 shown in FIG. 2A.
  • S ⁇ b> 102 is realized by the flag B setting unit 212.
  • S103 is realized by the test unit activation unit 213.
  • S120 executed by the other processor 11, the following processing is performed.
  • the other processor 11 is in a standby state waiting for receiving an instruction to start the test program 20 from the processor 11-0 (S121).
  • the other processor 11 Upon receiving the activation instruction, the other processor 11 that has received the activation instruction activates the test unit 22 (S122). Due to the activation of the test unit 22, the series of processing in S120 ends here.
  • FIG. 6 shows S121 in order to clarify that the other processor 11 has a standby state in which it waits for reception of the start instruction of the test program 20.
  • control is transferred from the control unit 21 to the test unit 22 by the activation of the test program 20, so that S121 does not actually exist.
  • the control unit 21 that starts executing when the test program 20 is activated may cause the test unit 22 to be activated by an activation instruction from the processor 11-0 (first management processor 11). good. For this reason, FIG. 6 shows S121.
  • Each processor 11 to which control is passed to the test unit 22 executes S200.
  • S200 the following processing is performed.
  • the processor 11-0 is assumed as the processor 11 that executes S200.
  • the processor 11-0 saves the data in the dedicated register 111 to the dedicated register save area 321 in the corresponding register save area 32 on the memory 12 (S201).
  • the processor 11-0 saves the data of the general-purpose register group 112 to the general-purpose register save area 322 in the corresponding register save area 32 on the memory 12 (S202).
  • the processor 11-0 executes a test (S203).
  • S201 and S202 are implemented by the register saving unit 221 illustrated in FIG. 2B.
  • S203 is realized by the test execution unit 222.
  • the processor 11-0 that has completed the test refers to the flag B312 on the memory 12 and first determines whether or not the test has ended (S204). If the flag B312 indicates that the test has not been completed, that is, if the value of the flag B312 is 0, the determination in S204 is YES and the process proceeds to S205. If the flag B indicates the end of the test, the determination in S204 is NO and the process proceeds to S207. This S204 is realized by the flag B determination unit 223 of FIG. 2B.
  • the processor 11-0 executing S205 updates the value of the flag B312 from 0 to 1. Further, the processor 11-0 refers to the flag A311, determines whether or not the general-purpose data should be replaced, and determines that the replacement should be performed, the processor 11-0 and the processor 11-0 identified from the flag A311 The general-purpose data is exchanged on the memory 12. This S205 is realized by the general-purpose register switching unit 224 in FIG. 2B.
  • the processor 11-0 sets its own processor ID as a history of operating as the second management processor 11, and newly writes the processor ID as a flag A311 on the memory 12 (S206).
  • This S208 is realized by the flag A resetting unit 225 in FIG. 3B.
  • the processor 11-0 executing S207 reads the dedicated data saved by itself from the memory 12, and stores the read dedicated data in the dedicated register 111. Subsequently, the processor 11-0 reads the general-purpose data stored in the general-purpose register save area 322 in the corresponding register save area 32 on the memory 12 and stores the read general-purpose data in the general-purpose register group 112. Thus, after restoring the state before the control is transferred from the control unit 21 to the test unit 22, the control is transferred from the test unit 22 to the control unit 21, and the series of processes in S200 is completed. S207 and S208 are implemented by the register restoration unit 226 illustrated in FIG. 2B.
  • the processor 11 operating as the second management processor 11 among the processors 11 whose control is transferred to the control unit 21 executes S300.
  • S300 the following processing is performed. Again, the processor 11-0 is assumed as the processor 11 that executes S300.
  • the processors 11 other than the second management processor 11 notify the end of the test by, for example, transmitting the test result to the second management processor 11, and then terminate the execution of the control unit 21.
  • the processor 11-0 waits for notification of the end of the test from all the other processors 11 (S301).
  • the test end notification waits within a predetermined time range.
  • the process proceeds from S301 to S302.
  • This S301 is realized by the end monitoring unit 214 shown in FIG. 2A.
  • the processor 11-0 executing S302 outputs its own test results and the test results collected from the other processors 11 on the display device 14 shown in FIG. Thereafter, for example, in accordance with the tester's instruction via the input device 15, the series of processing in S300 is terminated.
  • S302 is realized by the test result output unit 215 illustrated in FIG. 2A.
  • an arrow indicating a transfer destination when the determination in S ⁇ b> 204 is NO is represented by a one-dot chain line.
  • the one-dot chain line arrow represents the processor 11 to which a process flow in the case where the second management processor 11 does not operate or a test end notification is performed.
  • the processor 11-0 does not operate as the second management processor 11
  • the processor 11-0 notifies the end of the test to any of the other processors 11 after the control is transferred to the control unit 21.
  • the transmission of the test result including the notification of the end of the test is realized by the test result output unit 215 shown in FIG. 2A.
  • the test result is output on the display device 14, but the output result may be a storage device or an external device that can be connected via a communication network.
  • the flag area 31 is secured on the same memory 12 as each register save area 32. However, in an environment where a plurality of memories can be used, the flag area 31 and each register save area 32 are divided into arbitrary memories. May be secured.
  • the test program 20 is designed to perform only one type of test.
  • the test program 20 is a multi-functional program that can perform multiple types of tests in any combination and order (for example, different test units 22). It is also possible to install a plurality of the above.
  • Such a multi-functional test program 20 is easy to apply because the management processor 11 may be determined autonomously for each test or for a plurality of tests for which the order and combination are determined. is there. For this reason, the type and number of tests are not particularly limited.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 本発明を適用した1システムでは、複数の処理装置の動作を確認するための試験を行う場合、複数の処理装置に、試験を並行して実行させる。複数の処理装置のなかで試験を終了した処理装置に、複数の処理装置がそれぞれ実行した試験の結果を出力する第1の処理装置として動作すべきか否かを判定させ、試験を終了した処理装置のなかで第1の処理装置として動作すべきと判定した処理装置に、第1の処理装置として動作させる。

Description

試験プログラム、試験方法、及び処理装置
 本発明は、複数の処理装置を対象に、その動作を確認するための試験を行うための技術に関する。
 CPU(Central Processing Unit)等のプログラムを実行可能な処理装置では、専用のプログラム(以降「試験プログラム」と呼ぶ)を実行させて、そのマイクロアーキテクチャ、つまり内部構造設計を検証するための試験が行われる。処理装置を複数、備えたシステムでは、試験プログラムとして、その試験を行うためのサブプログラム、及びそのサブプログラムを起動する別のサブプログラムを有する試験プログラムが用いられる。ここでは以降、試験を行うためのサブプログラムを「試験部」、その試験部を起動するサブプログラムを「制御部」とそれぞれ呼ぶことにする。
 上記試験プログラムは、例えばスタンドアロンで各処理装置のマイクロアーキテクチャの検証を行う。その試験プログラムを実行する複数の処理装置のうちの一つは、制御部の実行により、他の処理装置に試験プログラムを起動させ、その起動によって実行される制御部による試験部の起動を実現させる。複数の処理装置のうちの一つは、その試験部の実行によって他の処理装置で得られる試験結果の出力を行う。それにより、複数の処理装置のうちの一つは、処理装置全体の試験を進行させ、試験結果(例えば発生したエラーに関するエラー情報)を出力する試験管理装置として機能する。以降、試験管理装置として機能する処理装置は便宜的に「管理処理装置」と呼ぶことにする。
 試験部による試験は、普通、マイクロアーキテクチャの検証のために、処理装置の使用可能な資源を全て対象にして行われる。そのため、各処理装置で実行される制御部は、試験部を起動させ、起動させた試験部に制御を渡した後、スリープ状態となる。試験部に制御を渡す前に制御部によって処理装置上で使用されていた資源のデータは、起動された試験部によって、処理装置が使用可能なメモリ上に退避される。メモリ上に退避されるデータは、例えば各種レジスタに格納されていたデータである。退避されたデータは、試験部から制御部に制御を渡す際に、処理装置に戻されることにより、制御部から試験部に制御を渡す前の状態が復元される。
 マイクロアーキテクチャに存在する不具合は、試験部をハングアップさせる可能性がある。試験部の実行中にハングアップが発生した処理装置は、再度、制御部を実行することはできない。これは、管理処理装置が試験部の実行中にハングアップを起こした場合、他の処理装置のなかに試験部から制御部に制御を渡した処理装置が存在していても、その処理装置の試験結果は出力できないことを意味する。このため、各処理装置に試験プログラムを最初から実行させなければならない。
 各処理装置に試験プログラムを最初から実行させることは、それまでに試験者が行った作業が無駄になることを意味する。各処理装置のなかで管理処理装置として機能させる処理装置を変更しても、変更後の処理装置が試験(試験部)の実行中にハングアップを起こす可能性がある。各処理装置のなかで試験の実行中にハングアップしなかった処理装置の存在、及びその処理装置の試験結果は、ハングアップを発生させた原因の解析を行ううえで有用な情報となる可能性がある。これらのことを考慮するならば、処理装置が試験の実行中に発生したハングアップに対応させ、ハングアップしなかった処理装置の試験結果を確実に出力できるようにすることが考えられる。
特開平1-224861号公報
 本発明の1側面は、管理処理装置として機能する処理装置が試験の実行中に発生するハングアップに対応し、ハングアップしなかった処理装置の試験結果を出力できるようにするための技術を提供することを目的とする。
 本発明を適用した1システムでは、複数の処理装置の動作を確認するための試験を行う場合、複数の処理装置に、試験を並行して実行させ、複数の処理装置のなかで試験を終了した処理装置に、該複数の処理装置がそれぞれ実行した試験の結果を出力する第1の処理装置として動作すべきか否かを判定させ、試験を終了した処理装置のなかで第1の処理装置として動作すべきと判定した処理装置に、該第1の処理装置として動作させる。
 本発明を適用した1システムでは、管理処理装置として機能する処理装置が試験の実行中にハングアップした場合であっても、ハングアップしなかった処理装置の試験結果を出力することができる。
本実施形態による試験プログラムを実行可能なプロセッサを複数、備えたマルチプロセッサシステムの構成例を説明する図である。 本実施形態による試験プログラムに搭載された制御部の機能構成例を表す図である。 本実施形態による試験プログラムに搭載されたテスト部の機能構成例を表す図である。 試験プログラムを実行する各プロセッサによってメモリ上に確保される領域例を説明する図である。 プロセッサの構成例を説明する図である。 試験プログラムを実行する各プロセッサの動作を説明する図である。 試験プログラムの制御により各プロセッサが実行する処理を表すフローチャートである。
 以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
 図1は、本実施形態による試験プログラムを実行可能なプロセッサを複数、備えたマルチプロセッサシステムの構成例を説明する図である。図1に表すように、マルチプロセッサシステム1は、計N+1個のプロセッサ11(11-0~11-N)、メモリ(例えばメモリモジュール)12、I/0(Input/Output)装置13、表示装置14、入力装置15、インターフェース(I/F)16及び各部11~14、16を互いに接続するバス17を備えている。
 I/O装置13は、ハードディスク装置、或いは半導体記憶装置等の記憶装置であり、本実施形態による試験プログラム20は、このI/O装置13に格納されている。メモリ12は、全てのプロセッサ11がアクセス可能な記憶装置であり、各プロセッサ11が試験プログラム20の実行のための領域12aが確保される。その領域12aは、以降、「データ管理領域」と呼ぶことにする。
 試験プログラム20は、各プロセッサ11の動作、例えばそのマイクロアーキテクチャ(内部構造設計)を検証するためのプログラムであり、全てのプロセッサ11にとって実行の対象となる。その試験プログラム20は、マイクロアーキテクチャを検証する試験を行うためのサブプログラムであるテスト部22、及びそのテスト部22を起動する別のサブプログラムである制御部21を含む。本実施形態による処理装置は、プロセッサ11が試験プログラム20を実行することで実現される。
 試験プログラム20の制御部21は、図1に表す構成のマルチプロセッサシステムでは、N+1個のプロセッサ11のうちの1つに、他のプロセッサ11の動作を制御し、試験結果を出力する管理機能を実現させる。その管理機能を実現させる制御部21は、テスト部22を起動させ、他のプロセッサ11に試験プログラム20を起動させる。試験プログラム20を起動させた他のプロセッサ11は、制御部21を実行し、テスト部22を起動させる。この結果、管理機能を実現させる制御部21は、各プロセッサ11に並行に試験を実施させる。以降、管理機能が実現されるプロセッサ11は便宜的に「管理プロセッサ11」と表記する。
 管理プロセッサ11となるプロセッサ11は、例えばバス17及びインターフェース16を介した入力装置15からの試験者の指示に従い、I/0装置13に格納された試験プログラム20をメモリ12に読み出し、試験プログラム20を起動する。試験プログラム20の起動により、制御部21の実行が開始される結果、プロセッサ11は管理プロセッサ11として動作する。
 試験プログラム20を実行するプロセッサ11が管理プロセッサ11として動作するか否かは、例えば実行時に試験プログラム20に取り込ませるデータにより制御することができる。その制御は、制御部21を起動したプロセッサ11に、他の制御部21を起動したプロセッサ11の有無を確認させることでも実現できる。ここでは便宜的に前者を想定する。
 テスト部22は、マイクロアーキテクチャの検証のために、起動したプロセッサ11の使用可能な資源を全て対象にした試験を行う。このため、各プロセッサ11で起動されたテスト部22は、試験を実施する前に、起動したプロセッサ11で制御部21によって使用されていた資源のデータのなかで退避すべきデータをメモリ12上のデータ管理領域12a内に退避させる。
 図4は、プロセッサの構成例を説明する図である。ここで図4を参照し、試験プログラム20を実行させる対象となるプロセッサ11の構成例、及びその構成例のプロセッサ11で退避の対象となるデータについて具体的に説明する。
 図4に表すプロセッサ11は、MTP(Multi Threaded Processing)に対応したものであり、1つのSXユニット(Secondary Cache and External Access Unit)41と、4つのプロセッサ・コア42とを備えている。各プロセッサ・コア42は、Sユニット(Storage Unit)45、Iユニット(Instruction Control Unit)46、及びEユニット(Execution Unit)47を備えている。
 SXユニット41は、レベル2のユニファイドキャッシュ(図4中「U2 Cache」と表記)41bを備え、このユニファイドキャッシュ41bを用いて、各プロセッサ・コア42のSユニット45との間でデータの入出力を行う。SXユニット41は、バス15を介したデータの送受信を行うためにインターフェース・ロジック41aを備えている。このインターフェース・ロジック41aは、バス15から受信したデータを格納するムーブイン・バッファ41a1、及びバス15に送信するデータを格納するムーブアウト・バッファ41a2を備えている。バス15から受信されるデータは、メモリ12からのデータであり、バス14に送信するデータは、メモリ12に格納されるデータである。
 各プロセッサ・コア42のSユニット45は、ロード及びストア命令のために全てのデータの供給、及び受給を扱う。そのために、Sユニット45は、SXユニット41用のインターフェース(図4中「SX Interface」と表記)45a、命令用のレベル1キャッシュ(図4中「L1I Cache」と表記)45b、データ用のレベル1キャッシュ(図4中「L1D Cache」と表記)45c、命令用のTLB(Translation Look-aside Buffer。図4中「I-TLB」と表記)45d、及びデータ用のTLB(図4中「D-TLB」と表記)45eを備えている。インターフェース45aは、SXユニット41から入力したデータ(命令を含む)の格納に用いられるバッファ(図4中「SX Order Queue」と表記)45a1、及びEユニット47からのデータの格納に用いられるバッファ(図4中「Store Queue」と表記)45a2を備える。
 SXユニット45からの命令及びデータは、インターフェース45aのバッファ45aに格納され、更にキャッシュ45b或いは45cに格納される。このとき、キャッシュ45b或いは45cに格納される命令、或いはデータのアドレスは論理アドレス(仮想アドレス)である。
 TLB45dは、命令の論理アドレスを対応する物理アドレス(実アドレス)に変換し、その対応関係を格納する。論理アドレスは、タグとして扱われ、命令は、キャッシュ45bのそのタグにより特定されるエントリに格納される。そのためにTLB45dは、例えばタグ(論理アドレス(例えば仮想ページ番号)、物理アドレス(例えば物理ページ番号)、及び状態フラグを格納可能なエントリが複数、確保されたテーブルを備えている。そのテーブルのエントリのうち、32のエントリは、エントリ毎に異なる論理アドレスを格納可能なフルアソシアティブ(Full Associative)方式である。2048のエントリは、同一の論理アドレスを2つのエントリに格納可能な2ウェイセットアソシアティブ方式である。これは、TLB45eも同様である。
 命令は、パイプライン処理される。そのパイプライン処理では、命令は投機的に投入される。バッファ45a2は、ストア命令のレイテイシをパイプライン処理から分離するためのものであり、ストア命令がデータを待っている間、パイプライン処理を継続させることを格納にする。
 Iユニット46は、命令フェッチパイプライン46a、ブランチヒストリ46b、命令バッファ46c、コミットスタックエントリ46d、リザベーションステーション群46e、及びレジスタ群46fを備える。MTPをサポートするために、命令バッファ46c、コミットスタックエントリ46d及びレジスタ群46fはそれぞれ二重化されている。
 命令フェッチパイプライン46aは、フェッチすべき命令のアドレス生成、キャッシュ45bへのアクセス、命令の命令バッファ46cへの書き込み、等を行う。ブランチヒストリ46bは、命令の分岐先と分岐方向を予測するためのテーブルである。命令フェッチパイプライン46aは、ブランチヒストリ46bを参照して、命令をフェッチし、命令バッファ46cに書き込む。命令バッファ46cは、そのようにしてフェッチされた命令を保持するためのバッファである。
 コミットスタックエントリ46dは、実行中の命令の情報を保持するためのバッファである。リザベーションステーション群46eを構成する各リザベーションステーションは、対応付けられた種類の命令が実行可能になるまで保持するためのバッファである。実行可能になった命令は、対応するリザベーションステーションから読み出され、Eユニット47に出力される。
 レジスタ群46fは、命令実行制御のためのプログラム可視の各種レジスタである。図4中に表記のPC、nPC、CCR、及びFSRは、それぞれ、異なるレジスタの種類を表している。PCは「Program Counter」の略記である。同様に、nPCは「next Program Counter」、CCRは「Condition Code Register」、及びFSRは「Floating-Point State Register」の略記である。
 PCは、次に投入すべき命令のアドレスを保持する。nPCは、次にPCに格納すべきアドレスを保持する。CCRは、例えば複数のフラグを有するコンディションコードを保持する。FSRは、Eユニット47内の浮動小数点データを処理するALU(Arithmetic and Logic Unit)の実行モードと状態情報とを保持する。
 Eユニット47は、命令を処理するためのALU群47aを備える。ALU群47aを構成するALUとしては、2つの整数実行パイプライン(図4中「EXA」、「EXB」と表記)、2つの浮動小数点実行パイプライン(図4中「FLA」、「FLB」と表記)、2つの仮想アドレス加算器(図4中「EAGA」、「EAGB」と表記)がある。Iユニット46が有するレジスタ群46fのFSRに実行モードが格納されるALUは、浮動小数点実行パイプラインである。
 コントロール・ロジック47bは、Iユニット46のリザベーションステーション群46にアクセスし、実行(投入)可能になった命令を対応するリザベーションステーションから読み出し、ALU群47aの対応するALUに供給する。ALU群47aの命令の実行に必要なデータは、レジスタ群47cを介して、バッファ45a2、キャッシュ45c、或いはレジスタ群46fから取得される。ALU群47aの命令の実行によって得られたデータは、レジスタ群47cを介して、バッファ45a2、キャッシュ45c、或いはレジスタ群46fの何れかのレジスタに格納される。
 Eユニット47は、上記構成要素の他に、GUB(GPR Update Buffer)47d、CWR(Current Window Register)47e、GPR(General Purpose register)47f、FUB(FPR Update Buffer)47g及びFPR(Floating Point Register)47hを備える。これらは、MTPをサポートするために二重化されている。図4では明確にしていないが、これらGUB47d、GPR47f、FUB47g及びFPR47hは、それぞれ複数、存在する。
 上記GPR47fは、整数データの保持に用いられる汎用のレジスタである。CWR47eは、GPR47fのコピーに用いられるレジスタである。GUB47dは、GPR47f用のリネーミングレジスタファイルである。FPR47hは、浮動小数点データの保持に用いられるレジスタである。FUB47gは、FPR47h用のリネーミングレジスタファイルである。
 上記のような構成のプロセッサ11では、Iユニット46が備えたレジスタ群46fの各レジスタにそれぞれ保持されたデータ、及びEユニット47のGPR47f及びFPR47hにそれぞれ保持されたデータが退避対象となる。それにより、テスト部22が起動されたプロセッサ11は、それらのレジスタに保持されたデータをメモリ12に退避させる。なお、退避対象となるデータは、プロセッサ11の構成等に依存することから、特に限定されるものではない。
 テスト部22は、メモリ12に退避させたデータを、制御部21に制御を渡す際にプロセッサ11に戻すことにより、制御部21からテスト部22に制御が渡される前の状態を復元する。その状態を復元することにより、プロセッサ11は制御部21を実行可能な状態に移行する。
 テスト部22から制御部21に制御が渡された管理プロセッサ11は、他のプロセッサ11による試験の結果を収集して出力する。その出力は、図1に表す構成では表示装置14を用いて行われる。他のプロセッサ11の試験結果は、バス17を介した通信により、或いはメモリ12を介した試験結果の取得により収集することができる。ここでは、便宜的に、他のプロセッサ11の試験結果はバス17を介した通信により収集されると想定する。
 制御部21からテスト部22に制御が渡される前の状態を復元することにより、プロセッサ11は制御部21を実行可能な状態になる。そのため、テスト部22が何らかの原因によってハングアップしたプロセッサ11では、制御部21を再度、実行できなくなる。そのプロセッサ11が管理プロセッサ11であった場合、ハングアップが発生していないプロセッサ11の試験結果も出力できなくなる。このことから、本実施形態では、テスト部22から制御部21に制御が渡される場合、複数のプロセッサ11のなかで管理プロセッサ11として動作するプロセッサ11を自律的に決定させるようにしている。そのように管理プロセッサ11を固定とせず、ハングアップが発生していないプロセッサ11のなかの1つを管理プロセッサ11として動作させるため、ハングアップが発生していないプロセッサ11の試験結果を確実に出力させることができる。
 テスト部22から制御部21に制御を渡したプロセッサ11のなかから新たに決定される管理プロセッサ11は、制御部21からテスト部22に制御を渡す前に動作していた管理プロセッサ11とは一致しない可能性がある。このことから、それら2つの管理プロセッサ11を区別する必要がある場合、新たに決定される管理プロセッサ11は「第2の管理プロセッサ11」と表記する。制御部21からテスト部22に制御を渡す前に動作していた管理プロセッサ11は「第1の管理プロセッサ11」と表記する。
 第1の管理プロセッサ11と第2の管理プロセッサ11とが同じであった場合、第2の管理プロセッサ11は、自身がメモリ12に退避させたデータを取り込み、制御部21からテスト部22に制御を渡す前の状態を復元する。第1の管理プロセッサ11と第2の管理プロセッサ11とが同じでない場合、第2の管理プロセッサ11は、自身がメモリ12に退避させたデータではなく、別のプロセッサ11である第1の管理プロセッサ11がメモリ12に退避させたデータを取り込み、制御部21からテスト部22に制御を渡す前の第1の管理プロセッサ11の状態を復元する。
 図1に表すようなマルチプロセッサシステム1では、各プロセッサ11には各プロセッサ11を個別に識別するための識別情報が割り当てられる。図4に表すような構成のプロセッサ11は、割り当てられた識別情報をレジスタ、例えばGPR47fの一つに保持する。そのような識別情報は、例えメモリ12に退避させるデータであっても、他のプロセッサ11に取り込ませるべきではない。
 このようなことから、各プロセッサ11からメモリ12に退避させるデータは、他のプロセッサ11が取り込んでも良いデータ(以降「汎用データ」と呼ぶ)と、他のプロセッサ11に取り込ませるべきでないデータ(以降「専用データ」と呼ぶ)と、に大別することができる。それにより、本実施形態では、各プロセッサ11に、退避させるデータを汎用データと専用データとに分けてメモリ12に退避させるようにしている。このため、第1の管理プロセッサ11と第2の管理プロセッサ11とが同じでない場合、第2の管理プロセッサ11は、自身の専用データと、第1の管理プロセッサ11の汎用データとをメモリ12から取り込み、制御部21を実行可能な状態を復元にする。第1の管理プロセッサ11を各プロセッサ11が認識できるように、本実施形態では、メモリ12上に領域を確保し、第1の管理プロセッサに、自身の識別情報をその領域内に書き込ませるようにしている。その領域内に書き込まれる識別情報は以降「フラグA」と表記する。そのフラグAが書き込まれる領域は以降「フラグ領域」と表記する。
 上記のように、第1の管理プロセッサ1以外の各プロセッサ11は、その第1の管理プロセッサ11の制御により、試験プログラム20を起動し、制御部21によってテスト部22を起動させる。テスト部22に制御を渡したプロセッサ11は、ハングアップが発生しない場合、試験を実行した後、メモリ12に退避させたデータを取り込む。本実施形態では、各プロセッサ11が適切なデータを取り込めるように、その取り込みのためにメモリ12に最初にアクセスしたプロセッサ11を第2の管理プロセッサ11とさせている。そのアクセスが最初のものか否かを各プロセッサ11が判定できるように、第1の管理プロセッサ11は、フラグAの書き込みの他に、その判定用のフラグのフラグ領域への書き込みを行うようになっている。そのフラグは、例えば何れかのプロセッサ11で試験が終了したか否かを表す情報である。第1の管理プロセッサ11は、そのフラグとして、試験が終了していないことを表す情報を書き込む。そのフラグは以降「試験終了フラグ」或いは「フラグB」と表記する。
 試験が終了したプロセッサ11は、メモリ12にアクセスしてフラグBを参照し、そのフラグBが試験の終了を表しているか否かを確認する。それにより、フラグBが試験の終了を表していないことを確認したプロセッサ11は、試験の終了を表す情報にフラグBを更新し、自身の識別情報にフラグAを更新する。そのプロセッサ11が、第2の管理プロセッサ11として動作する。
 図3は、試験プログラムを実行する各プロセッサによってメモリ上に確保される領域例を説明する図である。
 上記のように、メモリ12上には、各プロセッサ11(11-0~11-N)が試験プログラム20の実行のためのデータ管理領域12aが確保される。そのデータ管理領域12a内には、図3に表すように、サブ領域として、フラグA311、及びフラグB312が格納されるフラグ領域31、及び各プロセッサ11(11-0~11-N)がデータの退避に用いる領域であるレジスタ退避領域32(32-0~32-N)が確保される。各レジスタ退避領域32内には、専用データ格納用の専用レジスタ格納領域321、及び汎用データ格納用の汎用レジスタ退避領域322が確保される。メモリ12上でデータ管理領域12aが確保される場所、各プロセッサ11が用いるレジスタ退避領域32の場所は、例えば試験プログラム20の起動時に取り込ませるデータにより各プロセッサ11に特定させることができる。
 本実施形態では、図3に表すように、各プロセッサ11と、プロセッサ11がデータの退避に用いるレジスタ退避領域32との関係を対応付け、レジスタ退避領域32内には専用データと汎用データとを分けて格納するようにしている。そのようにして、第1の管理プロセッサ11とは異なる何れのプロセッサ11も、第1の管理プロセッサ11の汎用データを用いて、制御部21からテスト部22に制御が渡される前の状態を復元できるようにしている。
 試験が終了したプロセッサ11は、メモリ12にアクセスしてフラグB312を参照し、そのフラグBが試験の終了を表しているか否かを確認する。それにより、フラグB312が試験の終了を表していないことを確認したプロセッサ11は、フラグA311を参照し、更に第1の管理プロセッサ11が自身であったか否か判定する。その判定により、自身が第1の管理プロセッサ11でないことを確認したプロセッサ11は、自身が退避させた汎用データと、第1の管理プロセッサ11の汎用データとをメモリ12上で入れ替える。
 上記のような入れ替えにより、各プロセッサ11は、対応するレジスタ退避領域32上のデータを用いて、制御部21からテスト部22に制御が渡される前の状態を復元する。そのため、復元自体は、処理が複雑になるのが回避され、従来と同様に行うことができる。第2の管理プロセッサ11として機能させるプロセッサ11に上記のような入れ替えを行わせるのは、このためである。その入れ替えを行わなかったプロセッサ11は、第1の管理プロセッサ11として機能したものを含め、第2の管理プロセッサ11として機能しない。
 第1の管理プロセッサ11と第2の管理プロセッサ11とを異なるプロセッサ11に機能させることを可能とするために、本実施形態では、試験プログラム20は以下のような機能構成となっている。図2A及び図2Bを参照して、具体的に説明する。図2Aは制御部21の機能構成例を表す図であり、図2Bはテスト部22の機能構成例を表す図である。
 図2Aに表すように、制御部21は、機能構成(例えばサブプログラム)として、フラグA設定部211、フラグB設定部212、テスト部起動部213、終了監視部214、及び試験結果出力部215を含む。図2Bに表すように、テスト部22は、機能構成(例えばサブプログラム)として、レジスタ退避部221、試験実行部222、フラグB判定部223、汎用レジスタ入れ替え部224、フラグA再設定部225、及びレジスタ復元部226を含む。
 フラグA設定部211は、メモリ12上にフラグA311を格納するための機能である。フラグB設定部212は、メモリ12上にフラグB312を格納するための機能である。そのため、フラグA設定部211及びフラグB設定部212は共に、第1の管理プロセッサ11でのみ動作する。
 テスト部起動部213は、テスト部22を起動するための機能である。動作内容は、第1の管理プロセッサ11とそれ以外のプロセッサ11とで異なる。終了監視部214は、他のプロセッサ11の試験の終了を監視するための機能である。その終了監視部214は、テスト部22から制御部22に制御が渡されたプロセッサ11のなかで第2の管理プロセッサ11として機能するプロセッサ11でのみ動作する。
 試験結果出力部215は、テスト部22による試験の結果を出力するための機能である。試験結果出力部215は、第2の管理プロセッサ11以外のプロセッサ11では、上記想定から、試験結果を第2の管理プロセッサ11に出力させる。第2の管理プロセッサ11では、試験結果出力部215は、自身の試験結果と、他のプロセッサ11から収集した試験結果とを出力させる。
 一方、テスト部22のレジスタ退避部221は、退避の対象となるデータを退避するための機能である。レジスタ退避部221は、退避の対象となるデータを専用データ、汎用データとに大別し、メモリ12上の対応するレジスタ退避領域32に格納させる。試験実行部222は、試験を実施するための機能である。フラグB判定部223は、試験実行部222による試験が終了した場合に、メモリ12上のフラグB312の内容を判定するための機能である。フラグB312の内容の判定とは、上記のように、フラグB312が試験の終了を表しているか否かの判定である。
 汎用レジスタ入れ替え部224は、試験の終了を表す内容へのフラグB312の更新、及び必要に応じた汎用データの入れ替えを行うための機能である。汎用レジスタ入れ替え部224は、フラグB判定部223により、フラグB312が試験の終了を表していないと判定された場合に動作する。汎用データの入れ替えを行う必要性は、フラグA311を参照して判定される。それにより、汎用データの入れ替えは、フラグA311の内容(識別情報)が、フラグB判定部223を実行しているプロセッサ(以降「自プロセッサ」)11を表していないと判定された場合に行われる。
 フラグA再設定部225は、フラグA311として、自プロセッサの識別情報をメモリ12に書き込むための機能である。このフラグA再設定部225は、上記汎用レジスタ入れ替え部224と同様に、フラグB判定部223により、フラグB312が試験の終了を表していないと判定された場合に動作する。レジスタ復元部226は、対応するレジスタ退避領域32上のデータを読み出し、制御部21からテスト部22に制御を渡す前の状態を自プロセッサ11上に復元するための機能である。汎用レジスタ入れ替え部224が動作する場合、レジスタ復元部226は、汎用レジスタ入れ替え部224が動作した後に動作する。
 本実施形態では、制御部21に、フラグA設定部211、及びフラグB設定部212を追加し、テスト部22に、フラグB判定部223、汎用レジスタ入れ替え部224、及びフラグA再設定部225を追加している。それにより、第1の管理プロセッサ11と異なるプロセッサ11が第2の管理プロセッサ11として機能するのを可能にさせている。図2A及び図2Bにそれぞれ表す制御部21及びテスト部22の機能構成は一例であり、そのような機能構成に限定されるものではない。
 図5は、試験プログラムを実行する各プロセッサの動作を説明する図である。次に図5を参照して、試験プログラム20を実行した場合の各プロセッサ11の動作について具体的に説明する。
 図5では、説明上、便宜的に、プロセッサ11の数は3つとしている。プロセッサ11-0が第1の管理プロセッサ11と想定している。プロセッサの符号としては、特定できないプロセッサ以外、「11」にハイフンと数字が続くシンボル列(例えば「11-0」)を用いる。図5中に表記の「111」及び「112」は、それぞれ、専用データが格納された1つ以上の資源であるレジスタ(以降「専用レジスタ」と呼ぶ)、汎用データが格納された複数のレジスタ群(以降「汎用レジスタ群」と呼ぶ)、を表している。
 予め第1の管理プロセッサ11として設定されたプロセッサ11-0は、入力装置15を介した指示により、I/0装置13からメモリ12に試験プログラム20をロードし、試験プログラム20を起動する(S1)。その起動により、プロセッサ11-0は、制御部21を実行する。
 制御部21の実行を開始したプロセッサ11-0は、自身の識別情報(例えばプロセッサID(identifier))をフラグA311としてメモリ12に書き込む(S2)。次に、プロセッサ11-0は、試験が終了していないことを表す情報をフラグB312としてメモリ12に書き込む(S3)。その後、プロセッサ11-0は、プロセッサ11-1及び11-2に試験プログラム20を起動させる(S4)。その起動により、各プロセッサ11-1及び11-2は、制御部21の実行を開始する。
 図5では、フラグA311及びフラグB312のそれぞれの内容として「0」を表記している。フラグA311の内容として表記した「0」は、プロセッサ11-0に識別情報として割り当てられたプロセッサIDの値である。フラグB312の内容として表記の「0」は、試験の未終了を表している。フラグB312で試験の終了を表す値は「1」を想定する。
 次にプロセッサ11-0は、テスト部22を起動する(S5)。他のプロセッサ11-1及び11-2は、試験プログラム20の起動によって実行が開始される制御部21によってテスト部22を自動的に起動する(S5’)。
 テスト部22を起動させた各プロセッサ11-0~11-2は、それぞれ、専用レジスタ111に格納されている専用データを、メモリ12上の対応するレジスタ退避領域32-0~32-2内の専用レジスタ退避領域321に書き込む(S6)。更に各プロセッサ11-0~11-2は、それぞれ、汎用レジスタ群112に格納されている汎用データを、メモリ12上の対応するレジスタ退避領域32-0~32-2内の汎用レジスタ退避領域322に書き込む(S7)。図5中に表記の「00001111」「00110011」及び「01010101」は、それぞれ、各プロセッサ11-0~11-2から退避される専用データの内容を表している。図5中に表記の「11110000」「11001100」及び「10101010」は、それぞれ、各プロセッサ11-0~11-2から退避される汎用データの内容を表している。
 テスト部22を実行している各プロセッサ11-0~11-2は、次に試験を行い、その試験の終了後、フラグB312を参照する。その参照により、フラグB312の値が0であることを確認したプロセッサ11は、フラグB312の値を0から1に更新すると共に、更にフラグA311を参照し、汎用データを入れ替えるべきプロセッサ11(ここではプロセッサ11-0)を特定する(以上S8)。それにより、フラグA311の値が自プロセッサ11を表す値でないことを確認したプロセッサ11は、特定したプロセッサ11の汎用データと自プロセッサ11の汎用データとをメモリ12上で入れ替える(S9)。図5は、プロセッサ11-2が最初に試験を終了したことにより、プロセッサ11-2が、自身の汎用データとプロセッサ11-0の汎用データとを入れ替える様子を表している。フラグA311の値が自プロセッサ11を表す値であることを確認したプロセッサ11は、そのような入れ替えは行わない。
 フラグB312の値が0であることを確認したプロセッサ11は、次に、フラグA311として、自プロセッサ11を表す値を書き込む(S10)。次に、そのプロセッサ11は、対応するレジスタ退避領域32内の専用レジスタ退避領域321に退避させた専用データを読み出し、専用レジスタ111に格納する(S11)。プロセッサ11は、更に、対応するレジスタ退避領域32内の汎用レジスタ退避領域322に退避させた汎用データを読み出し、汎用レジスタ群112に格納する(S12)。そのようにして、制御部21からテスト部22に制御を渡す前の状態を復元させたプロセッサ11は、テスト部22から制御部21に制御を渡す(S13)。
 他のプロセッサ11は、試験の終了後、フラグB312を参照し、より早く試験を終了したプロセッサ11の存在を確認する(S8)。それにより、他のプロセッサ11は、退避させた専用データ、及び汎用データをそれぞれ専用レジスタ111、及び汎用レジスタ群112に戻し(S11、S12)、テスト部22から制御部21に制御を渡す(S13)。
 図5に表すように、プロセッサ11-2が、自身の汎用データとプロセッサ11-0の汎用データとを入れ替えた場合、プロセッサ11-2は、プロセッサ11-0の汎用データを用いて復元を行う。他方のプロセッサ11-0は、プロセッサ11-2の汎用データを用いて復元を行う。その結果、プロセッサ11-2は、テスト部22から制御部21に制御を渡した後、第2の管理プロセッサ11として機能することとなる。図5には、汎用データの入れ替えにより、プロセッサ11-0及び11-2の各汎用データの内容が、退避前と復元後とで変化したことを表している。
 図6は、試験プログラムの制御により各プロセッサが実行する処理を表すフローチャートである。図6に表す処理は、各プロセッサ11のうちの1つが試験プログラム20を起動することによって実現される。最後に図6を参照して、試験プログラム20の制御によって各プロセッサ11が実行する処理について具体的に説明する。各プロセッサ11が図4に表すような構成であった場合、図6に表す処理は、4つのプロセッサ・コア42の何れかが、SXユニット41を介して順次、供給される試験プログラム20の命令を実行することで実現される。
 図6では、プロセッサ11-0が第1の管理プロセッサ11、及び第2の管理プロセッサ11と想定し、フローチャートを表している。S100、S120、及びS300は、制御部21によって実現される処理であり、S200はテスト部22によって実現される処理である。
 S100、S120、及びS300において、S100及びS120は、テスト部22に制御を渡す前のプロセッサ11によって実現される処理である。より具体的には、S100は第1の管理プロセッサ11によって実現される処理であり、S120は他のプロセッサ11によって実現される処理である。S300は、テスト部22から制御部21に制御が渡された第2の管理プロセッサ11によって実現される処理である。テスト部22から制御部21に制御が渡された、第2の管理プロセッサ11以外のプロセッサ11によって実現される処理は省略している。
 プロセッサ11-0は、インターフェース16、及びバス17を介して入力する入力装置15から試験者の指示に従って、I/O装置13上の試験プログラム20をメモリ12上にロードし、試験プログラム20を起動する。その起動によって、プロセッサ11-0は、制御部21によりS100を実行する。そのS100では、以下のような処理が行われる。
 先ず、プロセッサ11-0は、自身が第1の管理プロセッサ11として動作した履歴として、自身のプロセッサIDを設定し、そのプロセッサIDをフラグA311としてメモリ12上に書き込む(S101)。次にプロセッサ11-0は、試験の未終了を表すフラグB312をメモリ12上に書き込む(図6では「試験終了フラグをリセット」と表記)(S102)。その後、プロセッサ11-0は、テスト部22を起動すると共に、他のプロセッサ11に試験プログラム20の起動を指示する(S103)。テスト部22の起動により、制御は制御部21からテスト部22に渡ることから、S100の一連の処理はここで終了する。
 上記S101は、図2Aに表すフラグA設定部211によって実現される。S102は、フラグB設定部212によって実現される。S103は、テスト部起動部213によって実現される。
 他のプロセッサ11で実行されるS120では、以下のような処理が行われる。
 他のプロセッサ11は、プロセッサ11-0から試験プログラム20の起動指示を受信するのを待つ待機状態にある(S121)。その起動指示を受信した他のプロセッサ11は、起動指示を受信すると、テスト部22を起動する(S122)。そのテスト部22の起動により、S120の一連の処理はここで終了する。
 図6では、他のプロセッサ11には、試験プログラム20の起動指示の受信を待つ待機状態が存在することを明確にするために、S121を表している。他のプロセッサ11では、試験プログラム20の起動によって、制御部21→テスト部22と制御が渡ることから、実際にはS121は存在しない。しかし、他のプロセッサ11において、試験プログラム20の起動によって実行を開始する制御部21に、プロセッサ11-0(第1の管理プロセッサ11)からの起動指示によりテスト部22を起動させるようにしても良い。このこともあり、図6ではS121を表している。
 テスト部22に制御が渡った各プロセッサ11は、S200を実行する。そのS200では、以下のような処理が行われる。ここでは、S200を実行するプロセッサ11としてプロセッサ11-0を想定する。
 先ず、プロセッサ11-0は、専用レジスタ111のデータをメモリ12上の対応するレジスタ退避領域32内の専用レジスタ退避領域321に退避させる(S201)。次にプロセッサ11-0は、汎用レジスタ群112のデータをメモリ12上の対応するレジスタ退避領域32内の汎用レジスタ退避領域322に退避させる(S202)。そのような退避を行った後、プロセッサ11-0は、試験を実行する(S203)。S201及びS202は、図2Bに表すレジスタ退避部221によって実現される。S203は、試験実行部222によって実現される。
 試験が終了したプロセッサ11-0は、メモリ12上のフラグB312を参照し、最初に試験を終了したか否か判定する(S204)。フラグB312が試験の未終了を表していた場合、つまりフラグB312の値が0であった場合、S204の判定はYESとなってS205に移行する。フラグBが試験の終了を表していた場合、S204の判定はNOとなってS207に移行する。このS204は、図2BのフラグB判定部223によって実現される。
 S205を実行するプロセッサ11-0は、フラグB312の値を0から1に更新する。また、プロセッサ11-0は、フラグA311を参照して、汎用データの入れ替えを行うべきか否か判定し、その入れ替えを行うべきと判定した場合に、フラグA311から特定されるプロセッサ11と自身との間で汎用データの入れ替えをメモリ12上で行う。このS205は、図2Bの汎用レジスタ入れ替え部224によって実現される。
 次にプロセッサ11-0は、自身が第2の管理プロセッサ11として動作する履歴として、自身のプロセッサIDを設定し、そのプロセッサIDをフラグA311としてメモリ12上に新たに書き込む(S206)。このS208は、図3BのフラグA再設定部225によって実現される。
 S207を実行するプロセッサ11-0は、自身が退避させた専用データをメモリ12から読み出し、読み出した専用データを専用レジスタ111に格納する。続けてプロセッサ11-0は、メモリ12上の対応するレジスタ退避領域32内の汎用レジスタ退避領域322に格納されている汎用データを読み出し、読み出した汎用データを汎用レジスタ群112に格納する。そのようにして、制御部21からテスト部22に制御を渡す前の状態を復元した後、テスト部22から制御部21に制御が渡され、S200の一連の処理が終了する。S207及びS208は、図2Bに表すレジスタ復元部226によって実現される。
 制御部21に制御が渡った各プロセッサ11のなかで第2の管理プロセッサ11として動作するプロセッサ11は、S300を実行する。そのS300では、以下のような処理が行われる。ここでも、S300を実行するプロセッサ11としてプロセッサ11-0を想定する。
 第2の管理プロセッサ11以外のプロセッサ11は、第2の管理プロセッサ11に、例えば試験結果を送信することにより、試験の終了を通知した後、制御部21の実行を終了する。このことから、先ず、プロセッサ11-0は、他の全てのプロセッサ11から試験の終了が通知されるのを待つ(S301)。テスト部22の実行中にハングアップしたプロセッサ11が存在する可能性を想定し、試験の終了通知は、予め定められた時間の範囲内で待つ。それにより、他の全てのプロセッサから試験の終了が通知されるか、或いはその時間が経過した場合、S301からS302に移行する。このS301は、図2Aに表す終了監視部214によって実現される。
 S302を実行するプロセッサ11-0は、自身の試験結果と、他のプロセッサ11から収集した試験結果とを、図1に表す表示装置14上に出力する。その後、例えば入力装置15を介した試験者の指示により、S300の一連の処理を終了する。S302は、図2Aに表す試験結果出力部215によって実現される。
 図6では、S204の判定がNOとなった場合の移行先を表す矢印を一点鎖線で表している。この一点鎖線の矢印は、第2の管理プロセッサ11として動作しないケースでの処理の流れ、或いは試験の終了通知が行われるプロセッサ11を表している。プロセッサ11-0が第2の管理プロセッサ11として動作しない場合、プロセッサ11-0は、制御部21に制御が渡った後、他の何れかのプロセッサ11に試験の終了を通知する。その試験の終了の通知を含む試験結果の送信は、図2Aに表す試験結果出力部215によって実現される。
 なお、本実施形態では、試験結果は表示装置14上に出力するようになっているが、出力結果は記憶装置、或いは通信ネットワークを介して接続可能な外部装置であっても良い。フラグ領域31は、各レジスタ退避領域32と同じメモリ12上に確保するようにしているが、複数のメモリを使用可能な環境では、フラグ領域31、及び各レジスタ退避領域32は任意のメモリに分けて確保するようにしても良い。
 また、試験プログラム20は、1種類の試験のみを実施するようになっているが、試験プログラム20は、複種類の試験を任意の組み合わせ、順序で実施できる多機能のもの(例えば異なるテスト部22を複数、搭載したもの)であっても良い。そのような多機能の試験プログラム20では、1つの試験毎に、或いは順序と組み合わせが決定された複数の試験毎に、管理プロセッサ11を自律的に決定させれば良いことから、適用は容易である。このこともあり、試験の種類、その数等は特に限定されるものではない。

Claims (6)

  1.  複数の処理装置に、
     処理装置の動作を確認するための試験を行う試験機能と、
     前記試験機能を起動する制御機能と、を実現させ、
     前記制御機能は、前記複数の処理装置のうちの1つである第1の処理装置に、該複数の処理装置に前記試験機能を起動させる起動機能、該複数の処理装置が該試験機能による試験を実行した結果を出力する出力機能、及び該第1の処理装置の識別情報を第1の記憶装置上に格納する格納機能、を実現させ、
     前記試験機能は、前記複数の処理装置に、該試験機能が起動された処理装置である自処理装置から前記制御機能の動作に必要なデータを第2の記憶装置上に退避させる退避機能、前記試験が終了した場合に、該第1の処理装置として動作すべきか否か判定する判定機能、及び該第1の処理装置として動作すべきと該判定機能により判定した場合に、前記第1の記憶装置上の識別情報を参照し、該自処理装置に該第1の処理装置のデータを前記第2の記憶装置から取り込む復元機能、を実現させる、
     ことを特徴とする試験プログラム。
  2.  請求項1記載の試験プログラムであって、
     前記格納機能は、前記識別情報の他に、前記試験の未終了を表す状況情報を前記第1の記憶装置に格納させ、
     前記判定機能は、前記第1の記憶装置上の前記状況情報が前記試験の未終了を表している場合に、前記第1の処理装置として動作すべきと判定し、該試験の終了を表す状況情報に該第1の記憶装置上の該状況情報を更新する。
  3.  請求項1、または2記載の試験プログラムであって、
     前記復元機能は、前記第1の記憶装置上の識別情報が前記自処理装置を表していない場合に、該自処理装置のデータと前記第1の処理装置のデータとを前記第2の記憶装置上で入れ替え、該第1の処理装置のデータを該自処理装置に取り込む。
  4.  請求項3記載の試験プログラムであって、
     前記退避機能は、前記データを、他の処理装置に取り込ませるべきでない専用データと、該他の処理装置に取り込ませても良い汎用データとに分けて退避させ、
     前記復元機能は、前記汎用データのみを対象に、前記第2の記憶装置上での入れ替えを行う。
  5.  複数の処理装置の動作を確認するための試験に適用される試験方法であって、
     前記複数の処理装置に、前記試験を並行して実行させ、
     前記複数の処理装置のなかで前記試験を終了した処理装置に、該複数の処理装置がそれぞれ実行した試験の結果を出力する第1の処理装置として動作すべきか否かを判定させ、
     前記試験を終了した処理装置のなかで前記第1の処理装置として動作すべきと判定した処理装置に、該第1の処理装置として動作させる、
     ことを特徴とする試験方法。
  6.  接続された記憶装置にアクセス可能な処理装置において、
     前記記憶装置にアクセス可能な1つ以上の他の処理装置と共に、動作を確認するための試験を行う試験手段と、
     前記試験手段が前記試験を終了した場合に、所定の出力装置に該試験の結果を出力すべきか否かを判定する判定手段と、
     前記試験の結果を出力すべきと前記判定手段が判定した場合に、前記試験手段による試験の結果、及び前記他の処理装置が行った試験の結果を前記所定の出力装置に出力する出力手段と、
     を具備することを特徴とする処理装置。
PCT/JP2012/050403 2012-01-11 2012-01-11 試験プログラム、試験方法、及び処理装置 WO2013105237A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/050403 WO2013105237A1 (ja) 2012-01-11 2012-01-11 試験プログラム、試験方法、及び処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/050403 WO2013105237A1 (ja) 2012-01-11 2012-01-11 試験プログラム、試験方法、及び処理装置

Publications (1)

Publication Number Publication Date
WO2013105237A1 true WO2013105237A1 (ja) 2013-07-18

Family

ID=48781210

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/050403 WO2013105237A1 (ja) 2012-01-11 2012-01-11 試験プログラム、試験方法、及び処理装置

Country Status (1)

Country Link
WO (1) WO2013105237A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049397A (ja) * 1996-08-01 1998-02-20 Nec Corp 試験プログラム実行制御方法
JPH1153209A (ja) * 1997-08-04 1999-02-26 Nec Corp 命令組合せ連続試験方式
JP2002007361A (ja) * 2000-05-17 2002-01-11 Bull Sa マルチプロセッサオペレーティングシステムの使用を必要としないマルチプロセッサのアプリケーションインターフェース
JP2005122375A (ja) * 2003-10-15 2005-05-12 Fujitsu Ltd 動作試験装置および動作試験方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049397A (ja) * 1996-08-01 1998-02-20 Nec Corp 試験プログラム実行制御方法
JPH1153209A (ja) * 1997-08-04 1999-02-26 Nec Corp 命令組合せ連続試験方式
JP2002007361A (ja) * 2000-05-17 2002-01-11 Bull Sa マルチプロセッサオペレーティングシステムの使用を必要としないマルチプロセッサのアプリケーションインターフェース
JP2005122375A (ja) * 2003-10-15 2005-05-12 Fujitsu Ltd 動作試験装置および動作試験方法

Similar Documents

Publication Publication Date Title
US10534616B2 (en) Load-hit-load detection in an out-of-order processor
TWI397813B (zh) 用於虛擬化交易式記憶體的總體溢位之裝置、方法與系統
US10963248B2 (en) Handling effective address synonyms in a load-store unit that operates without address translation
US10977047B2 (en) Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses
CN106648843B (zh) 用于改善连续的事务性存储器区的吞吐量的系统、方法和装置
JP7118984B2 (ja) ロード命令のメモリ・アクセスを回避するためのコンピュータ実装方法、システム、およびコンピュータ・プログラム
US9116729B2 (en) Handling of binary translated self modifying code and cross modifying code
US10310988B2 (en) Address translation for sending real address to memory subsystem in effective address based load-store unit
JP2013515306A (ja) アウトオブオーダー型マイクロプロセッサにおけるオペランド・ストア・比較ハザードの予測及び回避
US10572257B2 (en) Handling effective address synonyms in a load-store unit that operates without address translation
JP3183837B2 (ja) ロード・キュー及びバイパス・エラーを検出する方法
JP6005392B2 (ja) ルーティングのための方法及び装置
US9740623B2 (en) Object liveness tracking for use in processing device cache
US20190108021A1 (en) Effective address based load store unit in out of order processors
US11748109B2 (en) System and method for implementing strong load ordering in a processor using a circular ordering ring
JP5318197B2 (ja) ホストデータ処理装置内におけるデバイスエミュレーションのサポート
US20220413870A1 (en) Technology For Optimizing Memory-To-Register Operations
JP2022549493A (ja) リタイアキューの圧縮
CN111133421A (zh) 在无地址转换的情况下操作的加载存储单元中处理有效地址同义词
WO2013105237A1 (ja) 試験プログラム、試験方法、及び処理装置
US9710389B2 (en) Method and apparatus for memory aliasing detection in an out-of-order instruction execution platform
JP2013210853A (ja) 情報処理装置、同期処理実行管理方法、及びプログラム
JPWO2013105237A1 (ja) 試験プログラム、試験方法、及び処理装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12865132

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013553138

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12865132

Country of ref document: EP

Kind code of ref document: A1