WO2020138386A1 - 以前のトレースデータを使用する協調シミュレーションリピータ - Google Patents

以前のトレースデータを使用する協調シミュレーションリピータ Download PDF

Info

Publication number
WO2020138386A1
WO2020138386A1 PCT/JP2019/051344 JP2019051344W WO2020138386A1 WO 2020138386 A1 WO2020138386 A1 WO 2020138386A1 JP 2019051344 W JP2019051344 W JP 2019051344W WO 2020138386 A1 WO2020138386 A1 WO 2020138386A1
Authority
WO
WIPO (PCT)
Prior art keywords
simulation
communication activity
repeater
execution
engines
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2019/051344
Other languages
English (en)
French (fr)
Inventor
一樹 本間
ヘミング チェン
ユアン シャオ
スージット ファタク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Publication of WO2020138386A1 publication Critical patent/WO2020138386A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00—Computer-aided design [CAD]
    • G06F30/20—Design optimisation, verification or simulation
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1011—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices

Definitions

  • the present disclosure relates to an automobile system, and more particularly to execution of a simulation platform including a license server.
  • ADAS Advanced Driver Assistance Systems
  • One of the related art solutions to this need is a multi-domain simulation that connects different types of simulators representing each part of the simulation object (eg electronic control unit (ECU), electronic circuit, mechanical plant, etc.). It is "co-simulation”.
  • ECU electronice control unit
  • Such related art systems are capable of running embedded software and verifying its behavior using the virtual environment on a personal computer (PC) rather than using the actual hardware.
  • PC personal computer
  • the software designer may want to re-execute the simulation that was executed in advance during the software debug process in order to reproduce the symptoms of the software that occurred during the previous calculation.
  • Such reruns allow engineers to identify symptoms and analyze what part of the software is wrong at the time of the failure.
  • the current co-simulation environment may be called by all simulators during co-simulation, thus placing a heavy workload on the execution server (eg, PC or VM) in terms of execution speed, or when the simulator is third-party.
  • the execution server eg, PC or VM
  • all simulators require specific licenses for execution, which is inefficient in terms of license management.
  • the present disclosure relates to a solution regarding execution speed and license inefficiency with an earlier co-simulation platform, especially in the case of re-execution of an earlier co-simulation. ..
  • the present disclosure relates to a new method for re-execution of a co-simulation platform that is more efficient in both execution speed and license management to address issues in related art.
  • I/F trace a storage system that records each value of the interface (I/F) to each simulator at each time during the initial co-simulation, and the saved I
  • the re-execution is performed by replacing the simulator of the co-simulation platform with the above-mentioned dummy module, excluding the target simulator that the software engineer wants to analyze and/or debug.
  • the target simulator that the software engineer wants to analyze and/or debug.
  • the dummy module which replaces the previous co-simulation platform, does not require a license during the re-run period, thus reducing the number of simulator licenses used and making the co-simulation re-run process more effective than related art systems. Realize.
  • aspects of the present disclosure store interface (I/F) communication activity records of the plurality of simulation engines during execution of a co-simulation involving a plurality of simulation engines for use in subsequent re-execution of the co-simulation.
  • a method that may include replacing one or more of the plurality of simulation engines with a simulation engine repeater, wherein the simulation engine repeater replaces the plurality of simulation engines during a subsequent re-execution of the co-simulation.
  • a method configured to reproduce an I/F communication activity from the stored I/F communication activity record corresponding to one or more of the stored I/F communication activity records.
  • aspects of the present disclosure store interface (I/F) communication activity records of the plurality of simulation engines during execution of a co-simulation involving a plurality of simulation engines for use in subsequent re-execution of the co-simulation.
  • a computer program that may include instructions for replacing one or more of a plurality of simulation engines with a simulation engine repeater, the simulation engine repeater comprising: a plurality of simulation engines of the plurality of simulation engines during a subsequent re-execution of the co-simulation.
  • a computer program configured to reproduce I/F communication activity from the stored I/F communication activity record corresponding to the one or more replaced ones.
  • the computer program is stored on a non-transitory computer readable medium storing the instructions and is executable by one or more processors.
  • aspects of the present disclosure include means for storing interface (I/F) communication activity records of a plurality of simulation engines during execution of a co-simulation involving a plurality of simulation engines and for subsequent re-execution of the co-simulation.
  • a system configured to recreate an I/F communication activity from the stored I/F communication activity record corresponding to the one or more of the replaced.
  • aspects of the present disclosure include a memory configured to store an interface (I/F) communication activity record of the plurality of simulation engines during execution of a co-simulation involving a plurality of simulation engines, and a subsequent memory of the co-simulation.
  • a system configured to replace one or more of the plurality of simulation engines with a simulation engine repeater for re-execution, the simulation engine repeater comprising a subsequent re-execution of the co-simulation.
  • a system configured to reproduce I/F communication activity from the stored I/F communication activity records corresponding to the replaced one or more of the plurality of simulation engines during execution.
  • aspects of the present disclosure store I/F communication activity records of a plurality of software applications that communicate with another software application via an interface (I/F) during cooperative execution of the plurality of software applications, and perform subsequent collaboration.
  • a method that may include replacing one or more of the plurality of software applications with a software application repeater for re-execution, wherein the software application repeater comprises the plurality of software applications during the subsequent cooperative re-execution.
  • a method configured to reproduce I/F communication activity from the stored I/F communication activity records corresponding to the replaced one or more of an application may be included.
  • aspects of the present disclosure store I/F communication activity records of multiple software applications that communicate with another software application via an interface (I/F) during cooperative execution of multiple software applications for subsequent cooperative replay.
  • a computer program that may include instructions for replacing, for execution, one or more of said plurality of software applications with a software application repeater, said software application repeater said plurality of said software application repeaters during said subsequent cooperative re-execution.
  • a computer software program configured to reproduce I/F communication activity from the stored I/F communication activity record corresponding to the one or more replaced software applications.
  • the computer program is stored on a non-transitory computer readable medium storing the instructions and is executable by one or more processors.
  • aspects of the present disclosure include a means for storing an I/F communication activity record of a plurality of software applications that communicates with another software application via an interface (I/F) during cooperative execution of the plurality of software applications, and Means for replacing one or more of said plurality of software applications with a software application repeater for cooperative re-execution, said software application repeater comprising said plurality of software application repeaters during said subsequent cooperative re-execution.
  • a system configured to reproduce I/F communication activity from the stored I/F communication activity record corresponding to the one or more replaced software applications may be included.
  • aspects of the disclosure are configured to store I/F communication activity records of multiple software applications that communicate with another software application via an interface (I/F) during co-execution of the multiple software applications.
  • a system that can include a memory and a processor configured to replace one or more of the plurality of software applications with a software application repeater for subsequent coordinated re-execution, the software application repeater comprising: A system configured to reproduce I/F communication activity from the stored I/F communication activity record corresponding to the replaced one or more of the plurality of software applications during a subsequent coordinated re-execution. obtain.
  • aspects of the disclosure store interface (I/F) communication activity records of the plurality of simulation engines during execution of co-simulation involving the plurality of simulation engines, the communication activity records associated with a plurality of time stamps, One or more of the plurality of simulation engines for subsequent re-execution of the co-simulation, which represents replacing one or more of the plurality of simulation engines with a simulation engine repeater in a subset of the plurality of time stamps.
  • a method which may include replacing a simulation engine repeater, wherein the simulation engine repeater of the plurality of simulation engines during the subsequent re-execution of the co-simulation at a time represented by the subset of the plurality of time stamps.
  • the plurality of time stamps during the subsequent re-execution of the co-simulation configured to reproduce I/F communication activity from the stored I/F communication activity records corresponding to the replaced one or more.
  • aspects of the present disclosure include instructions for storing interface (I/F) communication activity records of the plurality of simulation engines during execution of co-simulation involving a plurality of simulation engines, the communication activity records including a plurality of time stamps.
  • the simulation engine repeater comprising: the simulation engine repeater of the plurality of simulation engines during the subsequent re-execution of the co-simulation at a time represented by the subset of the plurality of time stamps.
  • the plurality of time stamps configured to reproduce I/F communication activity from the stored I/F communication activity records corresponding to the replaced one or more, and during the subsequent re-execution of the co-simulation.
  • a computer program that may include instructions to execute the one or more of the plurality of simulation engines at another time other than the subset of.
  • the computer program is stored on a non-transitory computer readable medium storing the instructions and is executable by one or more processors.
  • aspects of the present disclosure include means for storing interface (I/F) communication activity records of the plurality of simulation engines during co-simulation involving a plurality of simulation engines, the communication activity records including a plurality of time stamps.
  • I/F interface
  • Means for replacing one or more with a simulation engine repeater comprising: a plurality of simulation engine repeaters during the subsequent re-execution of the co-simulation at a time represented by the subset of the plurality of time stamps; The plurality of time stamps configured to reproduce I/F communication activity from the stored I/F communication activity records corresponding to the replaced one or more, and during the subsequent re-execution of the co-simulation.
  • a system may include means for executing the one or more of the plurality of simulation engines at another time other than the subset of.
  • aspects of the disclosure include a memory configured to store interface (I/F) communication activity records of the plurality of simulation engines during co-simulation involving the plurality of simulation engines, the communication activity records being For subsequent re-execution of the co-simulation that is associated with a plurality of time stamps and further represents replacing one or more of the plurality of simulation engines with a simulation engine repeater in a subset of the plurality of time stamps; Replacing one or more of the plurality of simulation engines with a simulation engine repeater, the simulation engine repeater during the subsequent re-execution of the co-simulation at a time represented by the subset of the plurality of time stamps.
  • I/F interface
  • a system may be included that may include a processor configured to execute the one or more of the plurality of simulation engines at another time than the subset of stamps.
  • FIG. 1 illustrates a related art co-simulation platform.
  • FIG. 2 illustrates a simulator license management table according to one embodiment.
  • FIG. 3 illustrates an example of a timing chart of the co-simulation.
  • FIG. 4 is an example of a co-simulation platform according to one embodiment.
  • FIG. 5 is an example of a timing chart of each I/F activity of each simulator according to an embodiment.
  • FIG. 6 is an example of a co-simulation platform for re-execution according to one embodiment.
  • FIG. 7 illustrates another example of a co-simulation platform according to one embodiment.
  • FIG. 8 illustrates another example of a co-simulation platform according to one embodiment.
  • FIG. 1 illustrates a related art co-simulation platform.
  • FIG. 2 illustrates a simulator license management table according to one embodiment.
  • FIG. 3 illustrates an example of a timing chart of the co-simulation.
  • FIG. 4 is an example of a co-simulation
  • FIG. 9 illustrates another example of a timing chart of each I/F activity of each simulator that must be reproduced during a previous co-simulation rerun.
  • FIG. 10 illustrates an example of a repeater according to one embodiment.
  • FIG. 11 illustrates a flow diagram of a repeater according to one embodiment.
  • FIG. 12 illustrates an example dedicated hardware system for facilitating I/F tracing and/or repeaters according to one embodiment.
  • FIG. 13 illustrates an example computing environment with an exemplary computing device suitable for use in the illustrative embodiments.
  • I/F trace which records each value of the I/F communication activity of each simulator at each time stamp during the entire execution of the simulation. Also, by using the I/F trace record managed by the I/F trace, the previous I/F communication activity can be reproduced, and the simulator can be replaced with the actual simulator during the re-execution of the simulation.
  • an undesired but computationally expensive simulator can be replaced with a repeater that does not consume such a calculation resource, so that the processing capacity of the basic system can be saved.
  • simulators other than the debug target simulator can be replaced with dummy modules that have a smaller work load than the actual simulator of the execution server, which can improve the co-simulation re-execution speed. Modules do not require a license for the duration of the rerun, so fewer simulator licenses need to be used.
  • Such implementations are particularly hardware-intensive with hardware-intensive simulations that require computationally expensive modeling environments, especially when resource-intensive algorithms or special-purpose hardware is being simulated through the co-simulation bus.
  • HILS loop simulation
  • SILS software-in-the-loop simulation
  • the embodiments described herein include ECUs with desired implementations, HILS platforms for simulation of vehicle maneuverability, usability testing, etc., or control algorithms or mechatronics with locally hosted compilers according to desired implementations. It is applicable to SILS platform for simulating nick system.
  • FIG. 1 is an example of a related technology co-simulation platform for both initial execution and subsequent re-execution, including license server 100, simulator license storage 101, license allocation procedure 102, simulator 1 111, simulator 2 121, The simulator 3131, the simulator 1 I/F (output 112, input 113), the simulator 2 I/F (output 122, input 123), the simulator 3 I/F (output 132, input 133) and the co-simulation bus 105 are included.
  • the license server 100 manages the number of remaining simulator licenses, and holds the latest license number of each simulator in the simulator license storage 101 as shown in FIG. 2, for example.
  • the license server allocates an appropriate license to each simulator 111/121/131 via the license allocation procedure 102 before each simulator starts the co-simulation.
  • Simulator 1 111, simulator 2 121, and simulator 3 131 represent each part of the co-simulation model.
  • the simulators 111/121/131 may be the same type of simulator or different from each other depending on the desired implementation.
  • Each simulator 111/121/131 itself, such as input 112 and output 113 for simulator 1 111, input 122 and output 123 for simulator 2 121, input 132 and output 133 for simulator 3 131. I/F input and output.
  • the input and output of each simulator may be a single signal or a set of signals, depending on the implementation.
  • each simulator 111/121/131 takes its own input value from the input 112/122/132 and performs an arithmetic operation using the input to update its own state. Then, the output 113/123/133 is generated after the completion of the calculation and the state update.
  • the co-simulation bus 105 interconnects each simulator I/F 112/113/122/123/132/133 as specified by the co-simulation model and outputs the simulator output. Send and receive each value from to the input of another simulator.
  • the co-simulation procedure in the platform shown in FIG. 1 is as follows.
  • each simulator 111/121/131 When the first actual co-simulation is invoked on the platform, each simulator 111/121/131 first allocates its respective license to the license server 100 in order to proceed with its simulation via the license allocation procedure 102. Execute the fetch request. Once the simulator retrieves each license, the simulator 111/121/131 is ready for co-simulation.
  • FIG. 3 illustrates an example of a timing chart of the co-simulation.
  • the co-simulation time (sim time) is set to "0".
  • the output I/F value of each simulator is set to s1o0 for the output 112, s2o0 for the output 122, and s3o0 for the output 132 by the simulator 111/121/131, respectively.
  • the co-simulation bus reads each of the above output I/F values and passes them along with the interconnections specified in the model to the specific input I/F of each simulator.
  • the input I/F values for the simulator 111/121/131 are set to s1i0 for the input 113, s2i0 for the input 123, and s3i0 for the input 133, respectively.
  • the Schwarzening Mean is set to "1", indicating that the co-simulation has advanced to the next time step.
  • the simulator 111/121/131 outputs the output I/F value of each simulator to the output 112 as a result of the state update and the output value calculation using the input of each simulator in the sim time "1".
  • s1o1, s2o1 is set for the output 122
  • s3o1 is set for the output 132.
  • the co-simulation bus reads each output I/F value and passes the value to the corresponding input I/F of each simulator together with the specified interconnection in the model.
  • the input I/F values of the simulator 111/121/131 are set to s1i1 for the input 113, s2i1 for the input 123, and s3il for the input 133, respectively.
  • the Schwarzenauer is set to "2", indicating that the co-simulation has advanced to the next time step.
  • the simulator 111/121/131 outputs the output I/F value of each simulator to the output 112 by the simulator 111/121/131 as a result of state update and output value calculation using the input of each simulator in the sim time "2".
  • s1o2, s2o2 is set for the output 122
  • s3o2 is set for the output 132.
  • the simulator 111/121/131 and the co-simulation bus 105 stop their respective calculations.
  • the simulators 111/121/131 then release the simulation licenses they hold and return them to the license server 100 via the allocation procedure 102.
  • the license server 100 can allocate the simulation license to other requests as needed by updating the remaining number of licenses described in FIG.
  • the subsequent re-run is first for the purpose of reproducing the same state on the simulator 111 in the Multime "n" for the purpose of debug processing.
  • the subsequent re-execution of the co-simulation is the same as the initial co-simulation, the co-simulation procedure must be exactly the same as described above.
  • FIG. 4 is an example of a co-simulation platform using a novel methodology to capture I/F trace data on first run according to one embodiment.
  • the co-simulation platform includes a license server 100, a simulator license storage 101, a license allocation procedure 102, a simulator 1 111, a simulator 2 121, a simulator 3 131, and a simulator 1 I/F (output 112, input 113).
  • Simulator 2 I/F (output 122, input 123), simulator 3 I/F (output 132, input 133), co-simulation bus 105, storage for I/F input/output trace on simulator 1 115, simulator 2 Includes storage for I/F input and output traces on 125, storage for I/F input and output traces on Simulator 3135.
  • Each storage for simulator I/F input and output traces monitors activity and stores input and output I/F values at each sim time step.
  • the I/F trace 1 115 monitors the output I/F of the simulator 1 112 and the input I/F of the simulator 1 113, and stores the values 112 and 113 at each sim time step.
  • the other I/F trace 2 and the I/F trace 3 have the same functions as those using the simulator 2 123 and the simulator 3 131, respectively.
  • the rest of the elements in FIG. 4 are similar to those described in FIG.
  • FIG. 5 is an example of a timing chart of each I/F activity for each simulator according to one embodiment.
  • the leftmost table shows the timing chart in I/F trace 1115
  • the middle table shows the timing chart in I/F trace 2125
  • the rightmost table shows the I/F trace.
  • 3 shows the timing chart in 135.
  • the initial co-simulation procedure on the platform shown in FIG. 4 is as follows with respect to the timing chart of the co-simulation procedure of FIG. If the first actual co-simulation is invoked on the above platform, the simulator 111/121/131 will ask the license server 100 for each license to process each simulation via the license allocation procedure 102. Make a request to retrieve. When the simulator retrieves each license, the simulator 111/121/131 is ready for co-simulation.
  • the co-simulation time (simtime) is set to "0" in the timing chart.
  • the output I/F value of each simulator is set to s1o0 for 112, s2o0 for 122, and s3o0 for 132 by the simulator 111/121/131, respectively.
  • the co-simulation bus reads each of the above output I/F values and passes them along with the interconnections specified in the model to the corresponding input I/F of each simulator.
  • the input I/F values for the simulators 111/121/131 are set to s1i0 for 113, s2i0 for 123, and s3i0 for 133, respectively.
  • the I/F trace 1115 monitors the output 112 and the input 113 of the simulator 1111 and stores those values.
  • the leftmost table is a timing chart of the I/F trace 1115, and the I/F trace 1115 has a value s1o0 as the value of the output 112 at the time of the Multime “0”, And storing the value s1i0 as the value of the input 113.
  • the I/F trace 2 125 monitors the output 122 and the input 123 of the simulator 2 121, and the value s2o0 is the value of the output 122 and the value of the input 123 is the value of the output 122 at the time of the sim time "0". Store s2i0.
  • the I/F trace 3135 monitors the output 132 and the input 133 of the simulator 3131, and outputs the value s3o0 and the value of the input 133 as the value of the output 132 at the time of Arbitrme "0", respectively.
  • the value s3i0 is stored.
  • the Multimedia Subsystem is set to "1", indicating that the co-simulation has advanced to the next time step.
  • the simulator 111/121/131 outputs the output I/F value of each simulator to 112.
  • S1o1, 122 is set to s2o1, and 132 is set to s3o1.
  • the co-simulation bus reads each of the above output I/F values and passes them to the corresponding input I/F of each simulator together with the specified interconnection in the model.
  • the input I/F values of the simulator 111/121/131 are set to s1i1 for 113, s2i1 for 123, and s3i1 for 133, respectively.
  • the I/F trace 1115 monitors the output 112 and the input 113 of the simulator 1111 and stores those values. Similar to the above description in the sim time “0”, the I/F trace 1 115 stores the value s1o1 as the value of the output 112 and the value s1i1 as the value of the input 113 in the sim time “1”, respectively.
  • the I/F trace 2 125 monitors the output 122 and the input 123 of the simulator 2 121, and respectively stores the value s2o1 as the value of the output 122 and the value s2i1 as the value of the input 123 at the time of the Arbitrme “1”.
  • the I/F trace 3135 monitors the output 132 and the input 133 of the simulator 3131, and stores the value s3o1 as the value of the output 132 and the value s3i1 as the value of the input 133 at the Arbitrme “1”, respectively.
  • the Schwarzening Means is set to "2", indicating that the co-simulation has advanced to the next time step.
  • simulator 111/121/131 respectively sets the output I/F value of each simulator to 112.
  • s2o2 is set for s1o2 and 122
  • s3o2 is set for 132.
  • the I/F trace 1 115, the I/F trace 2 125, and the I/F trace 3 135 are the input and output I/Fs of the associated simulator at the time of the sim time “2”. Store the value.
  • the co-simulation continues in the same way as the method described above until the Schwarzme reaches a specific end timing, in this case Anlagenme "n", for example.
  • the simulator 111/121/131 and the co-simulation bus 105 stop their respective calculations.
  • the simulators 111/121/131 then release their respective simulation licenses and return them to the license server 100 via the allocation procedure 102.
  • the license server 100 can allocate the simulation license to other requests as needed by updating the remaining number of licenses described in FIG.
  • FIG. 6 is an example of a co-simulation platform using a new methodology for re-execution according to one embodiment.
  • the co-simulation platform of FIG. 6 includes a license server 100, a simulator license storage 101, a license allocation procedure 102, a simulator 1111, a repeater 221, a repeater 3231, and a simulator 1 I/F (output 112, input 113).
  • Simulator repeater 2 I/F output 222, input 223
  • simulator repeater 3 I/F output 232, input 233
  • co-simulation bus 105 storage for input and output trace of I/F on simulator 2 125, Includes storage for I/F input and output traces on Simulator 3135.
  • Repeater 2 221 and repeater 3 213 are dummy modules that replace simulator 2 121 and simulator 3 131, respectively.
  • Each repeater is configured to read its own storage for I/F input and output traces for each Arbitrme and reproduce its output I/F activity along with the previous co-simulation run.
  • the repeater 221 reproduces the output I/F activity of the simulator 2121
  • the repeater 3231 reproduces the output I/F activity of the simulator 3131. Since repeaters do not involve heavy computations or state update procedures, adding each repeater results in a lighter workload on the execution server as compared to the replaced simulator.
  • each repeater may be a single signal or a collection of signals, depending on the implementation.
  • Each store of simulator I/F input and output traces is the result of a previous co-simulation run already described above in FIG. 4 and is used as a timing chart to reproduce the input and output I/F activity of the associated simulator.
  • the I/F trace 2 125 is used as a timing chart to reproduce the input and output I/F activity of the repeater 221
  • the I/F trace 3 135 is used as the input and output I/F activity of the repeater 3 231. Is used as a timing chart to reproduce.
  • the co-simulation bus 105 interconnects each simulator or repeater I/F 112/113/222/223/232/233 as specified by the co-simulation model, Send and receive each value from the output to the input of the simulator.
  • the co-simulation re-execution procedure on the platform shown in Fig. 6 is as follows.
  • the simulator 1111 executes a request to the license server 100 to retrieve its own license in order to proceed with the simulation via the license allocation procedure 102.
  • the simulator 1111 retrieves its own license, Simulator 1 111 is ready for co-simulation.
  • the repeater 2 221 and the repeater 3 231 open the I/F trace 2 and the I/F trace 3 135 including the timing chart of the first co-simulation stored during the previous execution. After opening them, Repeater 2 221 and Repeater 3 231 are ready for co-simulation.
  • FIG. 5 is an example of a timing chart of each I/F activity for each simulator that must be reproduced during the previous co-simulation rerun.
  • the co-simulation time (sim time) is set to "0" in the timing chart.
  • the output I/F values for the simulator 1111, the repeater 2221 and the repeater 3231 are s1o0 for 112 and s2o0 for 222, and the output I/F values for the repeater 2221 and repeater 3231, respectively.
  • S3o0 is set for 232.
  • the co-simulation bus reads the above output I/F values and passes them to the specified input I/F for each simulator together with the specified interconnection in the model.
  • the input I/F values for the simulator 1111, repeater 2221 and repeater 3231 are set to s1i0 for 113, s2i0 for 223, and s3i0 for 233, respectively.
  • the Schwarz Mean Square is set to "1", indicating that the co-simulation has advanced to the next time step.
  • s1o1 is set to 112 as a result of state update and output value calculation in each simulator in the Schwarzme "1".
  • the output I/F value of the repeater is determined by the repeater 2221 and the repeater 3231.
  • S2o1 is set to 222 and s3o1 is set to 232, respectively.
  • the co-simulation bus then reads each output I/F value above and passes it along with the specified interconnect in the model to the specific input I/F of each simulator.
  • the input I/F values for the simulator 1111, the repeater 2221 and the repeater 3231 are set to s1i1, 113 for s2, s2i1 for 223, and s3i1 for 233, respectively.
  • the Schwarz Mean Square is set to "2", indicating that the co-simulation has advanced to the next time step.
  • s1o2 is set for 112 as the output I/F value for the simulator 1111 as a result of state update and output value calculation in each simulator in the Schwarzme "2".
  • the output I/F value for the repeater is determined by the repeater 2221 and the repeater 3231.
  • 222 is set to s2o2
  • 232 is set to s3o2.
  • the co-simulation continues in the same way as described above until the Anlagenme reaches a specific end timing, in this case Anlagenme "n".
  • the simulator 1111, the repeater 2221, the repeater 3231 and the co-simulation bus 105 stop their respective calculations.
  • the simulator 1111 releases the simulation license and returns it to the license server 100 via the allocation procedure 102.
  • the license server 100 can allocate the simulation license to other requests as needed by updating the remaining license number as described in FIG.
  • FIG. 7 illustrates another example of a co-simulation platform according to one embodiment.
  • one or more of the simulation engines may also include the ability to store and manage I/F communication activity records of I/F communication activities performed by the corresponding simulation engine during the simulation. Good.
  • the simulation engine repeater may obtain the I/F communication activity record from the data stored by the corresponding simulation engine, or the corresponding simulation engine may provide the repeater with the repeater according to the desired implementation. It can be implemented to provide an I/F communication activity record.
  • FIG. 8 illustrates another example of a co-simulation platform, according to one embodiment.
  • the I/F trace 145 is implemented by interconnecting with the co-simulation bus 105 and tapping into the physical interconnection of the co-simulation bus 105 to record and store I/F communication activity records.
  • a dedicated hardware system including a dedicated memory for managing the I/F communication activity record, such as a field programmable gate array (FPGA).
  • FPGA field programmable gate array
  • One or more programmable hardware chips may be specialized and programmed to provide a corresponding I/F communication activity record to the repeater. Also, depending on the desired implementation, one or more programmable chips may be specialized and programmed to facilitate repeater functionality.
  • Such an implementation is a kiosk where the simulation engine is physically connected to the bus (eg, from an external Internet of Things (IoT) device that is connected to the co-simulation device via an Ethernet such as connected to the bus).
  • IoT Internet of Things
  • External devices such as printing devices, input devices, and other devices, and devices depending on the desired implementation
  • external special-purpose devices plugged into the co-simulation bus 105.
  • FIG. 9 illustrates another example of a timing chart of each I/F activity of each simulator that must be reproduced during the rerun of the previous co-simulation.
  • This example timing chart showing I/F communication activity can be implemented for any of the I/F trace implementations described herein, depending on the desired implementation.
  • FIG. 10 illustrates an example of a repeater according to an embodiment.
  • the repeater includes a trace file reader 250 configured to retrieve I/F activity data from a co-simulation trace (eg, prior to co-simulation execution).
  • Register 251 is used to time stamp the output to output interface 222.
  • Register 252 is used to time stamp the input received via input interface 223.
  • FIG. 11 illustrates a repeater flow diagram according to one embodiment.
  • the repeater opens a trace file containing an I/F communication activity record.
  • Such files can be sourced from a simulation engine or software application, a software application that retrieves from memory and runs in the background, a repeater that retrieves trace files from memory, or memory in the repeater's dedicated hardware system depending on the implementation desired. obtain.
  • the repeater sets the output I/F using the output I/F value from the I/F communication activity record at the specific point in the loop.
  • a check is performed to determine if the repeater has reached the end point of requirement n for implementing I/F communication. For example, if the repeater has to replace the simulation engine or software application as a whole, then n is a time stamp associated with the end of the simulation or co-execution of the software application. If implemented as a replacement for only part of the simulation, n is set to the end point according to the timestamp associated with the desired end of the simulation or co-execution (eg, as defined by the user interface). If so (Yes), the flow proceeds to 570, where the repeater closes the trace file and the flow ends. If not (No), the flow proceeds to 560 to the next time stamp of simulation or co-execution of the software application.
  • the repeater allows the simulation engine or software application to perform the entire duration of the simulation or co-execution, or a desired subset of time stamps corresponding to the desired I/F communication activity of the simulation or co-execution. Can be configured to replace.
  • FIG. 12 illustrates an example dedicated hardware system that facilitates I/F tracing and/or repeaters according to one embodiment.
  • co-simulation bus 105 is connected to processor 1310 and dedicated hardware system 1200.
  • Dedicated hardware system 1200 is physically connected to co-simulation bus 105 and includes one or more programmable chips 1201 and memory 1202 configured to facilitate I/F trace functionality as described herein.
  • the memory 1202 can be configured to manage the timing charts described above to maintain a record of I/F communication activity between the simulators 111/121/131.
  • one or more programmable chips 1201 are programmed to perform the function of I/F tracing to tap the co-simulation bus 105 to provide I/F communication activity to memory 1202. It is possible. Also, the one or more programmable hardware chips 1201 may include a repeater such as that illustrated in FIG. 10 to implement I/F communication activity for one or more simulators that have been replaced during the appropriate time stamps. It can also be programmed to perform a function. One or more programmable hardware chips 1201 may be a dedicated processor such as a field programmable gate array (FPGA) that reduces the load on processor 1310 and co-simulation bus 105.
  • FPGA field programmable gate array
  • FIG. 13 illustrates an example computing environment having example computing devices suitable for use in embodiments such as execution servers or personal computers configured to perform or facilitate the functions described herein.
  • Computing device 1305 in computing environment 1300 may include one or more processors, cores, or processors 1310, memory 1315 (eg, RAM, ROM, and/or the like), internal storage 1320 (eg, magnetic, optical, etc.). Solid state storage and/or organic), and/or input/output interfaces 1325, some of which may be connected on a communication mechanism or bus 1330 to communicate information, embedded in computing device 1305. You may
  • the computer device 1305 may be communicatively connected to the input/user interface 1335 and the output device/interface 1340.
  • One or both of input/user interface 1335 and output device/interface 1340 may be a wired or wireless interface and may be removable.
  • the input/user interface 1335 is a physical or virtual device, component, sensor, or interface that can be used to provide input (eg, buttons, touch screen interface, keyboard, pointing/cursor control, microphone, camera). , Breilles, motion sensors, optical readers, and/or the like).
  • Output devices/interfaces 1340 may include displays, televisions, monitors, printing devices, speakers, braille, and the like.
  • input/user interface 1335 and output device/interface 1340 may be embedded in computing device 1305 or may be physically connected. In other embodiments, other computing devices may function as or provide input/user interface 1335 and output device/interface 1340 for computing device 1305. In embodiments that include a touch screen display, a television display, or other form of display, the display is configured to provide a user interface.
  • Examples of computing devices 1305 are highly mobile devices (such as smartphones, devices in vehicles and other machines, devices carried by humans and animals), mobile devices (eg, tablets, notebooks, laptops, personal computers, Portable televisions, radios, etc., and devices not designed for mobility (eg, desktop computers, other computers, information kiosks, televisions with one or more embedded processors, and/or connected thereto) , Radio, etc.), but is not limited thereto.
  • Computer device 1305 is communicatively coupled to external storage 1345 and network 1350 for communicating with any number of networked components, devices and systems, including one or more computer devices of similar or different configurations. (Eg, via input/output interface 1325).
  • the computing device 1305 or any connected computing device can function as, serve, or be referred to as, a server, client, thin server, general purpose machine, specialized machine, or other label. Is possible.
  • the input/output interface 1325 is a communication or input/output protocol or standard (eg, Ethernet, 802.11x, Universal Systems) for communicating information between at least all connected components, devices, and networks in the computing environment 1300. Bus, WiMax, modem, cellular network protocols, etc.) and/or wireless interfaces.
  • Network 1350 may be any network or combination of networks (eg, Internet, local area network, wide area network, telephone network, cellular network, satellite network, etc.).
  • the computing device 1305 can use and/or communicate with computer usable or computer readable media, including both transitory and non-transitory media.
  • Transitory media includes transmission media (eg, metal cables, optical fibers), signals, carrier waves, and the like.
  • Non-transitory media include magnetic media (eg disks and tapes), optical media (eg CD ROMs, digital video disks, Blu-ray disks), solid media (eg RAM, ROM, flash memory, solid state storage) and other non-volatile media.
  • Hard disk storage or memory includes compact discs, digital versatile disks, etc.
  • Computing device 1305 may be used to implement techniques, methods, applications, processes, or computer-executable instructions in some example computing environments.
  • Computer-executable instructions may be retrieved from temporary media, stored on non-transitory media, and retrieved therefrom.
  • the executable instructions may consist of one or more of programming, scripting and machine language (eg C, C++, C#, Java, Visual Basic, Python, Perl, Javascript, etc.).
  • the memory 1315 stores or manages the algorithm executed by the processor 1310 as described in the flow of FIG. 11, for example, together with the data to be processed such as the data illustrated in FIGS. 2, 3, 5, and 9. May be configured.
  • the embodiments as described herein may be performed alone or in combination with each other, depending on the desired implementation, but are not limited to particular embodiments.
  • the processor 1310 can execute under an arbitrary operating system (OS) (not shown) in a native environment or a virtual environment.
  • One or more applications may be deployed that include inter-communication mechanism 1395.
  • Processor 1310 may take the form of a physical processor or central processing unit (CPU) configured to execute instructions loaded from memory 1315.
  • API portion 1365 may communicate with one or more other portions (eg, logic portion 1360, input portion 1370, output portion 1375) upon receiving information or an execution instruction.
  • the logic unit 1360 is configured to control the information flow between units to pass the services provided by the API unit 1365, the input unit 1370, the output unit 1375. May be done.
  • the flow of one or more processes or implementations may be controlled by the logic unit 1360 alone or in cooperation with the API unit 1365.
  • the input unit 1370 may be configured to obtain an input for the operation described in the above embodiment, and the output unit 1375 is configured to supply an output based on the operation described in the embodiment. May be.
  • the processor 1310 stores interface (I/F) communication activity records of multiple simulation engines during execution of co-simulation involving multiple simulation engines for subsequent re-execution of the co-simulation.
  • One or more of the plurality of simulation engines can be configured to replace a simulation engine repeater, the simulation engine repeater being capable of performing multiple simulations during a subsequent re-execution of the co-simulation as illustrated in Figures 4-6.
  • the I/F communication activity is configured to be reproduced from a stored I/F communication activity record corresponding to the replaced one or more of the engines.
  • the processor 1310 may be configured to perform co-simulation by obtaining a simulation license for each of the plurality of simulation engines, in which case subsequent re-execution of the co-simulation may be performed as in FIGS.
  • At least a subset of multiple simulation engines are instances of the same simulation engine.
  • the simulation engine may run on an instance of VDK, Saber, Matlab, or other simulation engine, depending on the desired implementation.
  • it may be desirable to run multiple instances of the same simulation engine eg, run multiple instances of Matlab.
  • the simulation may include the same simulation engine instance, in which case the repeater may be available for some or all of the same simulation engine instance depending on the desired implementation. ..
  • the processor 1310 executes the software application in the background during co-simulation, where storing the I/F communication activity record of one or more of the plurality of simulation engines is dependent on the software application. Executed.
  • the stand-alone software application may store stored I/F communication activity corresponding to one or more replaced of the simulation engines for reproduction, as depicted in FIG.
  • the I/F communication activity record from the record is supplied to the simulation engine repeater.
  • the simulation engine may have the capability to perform storage of I/F communication activity as illustrated in FIG.
  • the simulation engine can be instructed to perform its functions, whereby storing I/F communication activity of one or more of the plurality of simulation engines is a function of the plurality of simulation engines. Executed by the corresponding one or more of the engines.
  • processor 1310 can also be implemented in a dedicated hardware system, as illustrated in FIG.
  • programmable chip array 1201 may be a dedicated dedicated chip configured and programmed to perform storage of I/F communication activity records corresponding to the replaced one or more of the plurality of simulation engines.
  • Hardware in which case the dedicated hardware system, for reproduction purposes, the I/F from the stored I/F communication activity record corresponding to the replaced one or more of the plurality of simulation engines. Supply a communication activity record to the simulation engine repeater.
  • the repeater can only be run for a subset of simulations, after which the simulation engine will work for the rest of the simulation.
  • a subset of the multiple time stamps of the simulation from the timing chart above can be designated for repeater utilization through the use of interfaces. If multiple subsets of time stamps are specified, one or more of the multiple simulation engines are replaced with simulation engine repeaters, which simulation engine repeaters are co-simulated at the times indicated by the multiple subsets of multiple time stamps.
  • Is configured to reproduce I/F communication activity from stored I/F communication activity records corresponding to the replaced one or more of the plurality of simulation engines during a subsequent re-execution of
  • repeaters are geared in a subset of time for simulation.
  • the co-simulation re-execution speed is fast because it calls only a subset of the simulators in the co-simulation platform and the rest of the platform is replaced by repeaters that require less computational resources from the execution server. It is considered to be.
  • the co-simulation methodology described above can be used for both software and hardware development scenes. And is not limited to areas such as firmware development and control logic design.
  • the embodiment has been described in the present specification with respect to the simulation engine, it can be extended to a general software application that can realize an I/F communication activity and can be cooperatively executed.
  • software applications are database applications configured to retrieve data from proprietary databases, debug processing trace software, Ethernet or Internet to retrieve and supply data via external connections depending on the desired implementation.
  • the software application may be replaced by a software application repeater configured to reproduce such I/F communication activity according to the embodiments described herein, and the corresponding license is such software application. Can be retrieved from the licensing server that manages the license of.
  • the software application can be executed simultaneously with the simulation engine (eg, a software application that retrieves and supplies data from a proprietary database to the simulation engine), or its co-execution may involve only the software application. If not, follow the desired implementation.
  • the description using “processing”, “operation”, “calculation”, “decision”, “display”, etc. in the entire specification refers to the registers and the memory in the computer system. Manipulate and convert data represented as physical quantities in the computer system into other data also represented as physical quantities in memory or registers of computer systems or other information storage devices, transmitters or displays. It is understood that it may include the operation and processing of a computer system or other information processing device.
  • Embodiments also relate to devices that perform the operations herein.
  • This apparatus may be specially constructed for the required purposes, or may include one or more general purpose computers selectively activated or reconfigured by one or more computer programs.
  • Such a computer program may be stored in a computer-readable medium such as a computer-readable storage medium or a computer-readable signal medium.
  • Computer readable storage media include optical disks, magnetic disks, read-only memory, random access memory, solid state devices and drives, or any other type of tangible media suitable for storing electronic information, such as tangible or non-transitory media. It may include, but is not limited to.
  • Computer-readable signal media may include media such as carrier waves.
  • the algorithms and displays presented herein are not inherently related to any particular computer or other device.
  • a computer program may include a pure software implementation containing instructions that carry out the operations of the desired implementation.
  • the operations described above can be performed by hardware, software, or any combination of software and hardware.
  • Various aspects of the above embodiments can be implemented using circuits and logic devices (hardware), while other aspects can be implemented using instructions stored on a machine-readable medium (software).
  • the instructions when executed by the processor, cause the processor to perform the method of performing the implementation of the present application.
  • some embodiments of the present application may be performed solely by hardware, while other embodiments may be performed solely by software.
  • the various functions described above can be performed alone or distributed among multiple components in any number of ways.
  • the methods may be performed by a processor, such as a general purpose computer, based on instructions stored on a computer readable medium. If desired, the instructions can be stored on the medium in a compressed and/or encrypted form.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本明細書において記載の実施例は、協調実行中におけるI/F通信アクティビティの格納とそのようなI/F通信アクティビティを再現するリピータとを含むシステムおよび方法に関する。したがって、シミュレーションまたはアプリケーションの後続の再実行において、使用されたシミュレーションまたはアプリケーションのうちの1つ以上がリピータと置き換えられ、シミュレーションまたはアプリケーションの全実行を必要とせず、それによってライセンス使用を節約するとともに、実行のためのハードウェアリソースが少なくてよい。

Description

以前のトレースデータを使用する協調シミュレーションリピータ
 本開示は自動車システムに関し、より詳細にはライセンスサーバを含んだシミュレーションプラットフォームの実行に関する。
 先進運転支援システム(ADAS)などの複雑な自動車システムにおいて、システムの埋込み型ソフトウェアの検証手順の最適化が強く望まれている。
 この要望に対する関連技術の解決策の1つは、シミュレーション対象(例えば電子制御ユニット(ECU)、電子回路、機械プラントなど)の各部分を表わす様々なタイプのシミュレータを接続するマルチドメインのシミュレーションである「協調シミュレーション」である。そのような関連技術のシステムは埋込み型ソフトウェアを動作させて、実際のハードウェアを使用せずに、むしろパーソナルコンピュータ(PC)上の仮想環境を使用して、その振る舞いを検証することができる仮想プラットフォームを提供することによって、ソフトウェア設計者はハードウェアプラットフォーム開発の前でもソフトウェアの正しさをチェックおよび検証することができる。
 一方、ソフトウェア設計者は、以前の演算時に発生したソフトウェアの症状を再現するために、ソフトウェアデバッグ処理時に事前に実行されたシミュレーションを再実行したいと考える場合がある。そのような再実行によって、エンジニアは症状を確認し、障害時にソフトウェアのどの部分が誤っているのかを分析できる。
 そのような場合、現在の協調シミュレーション環境で以前実行したシミュレーションを再実行するためには、設計者が該協調シミュレーションプラットフォーム内の対象シミュレータのうちの1つのみをデバッグしたい場合(電気回路または機械プラントではなく、ソフトウェア制御を実行するするECUのみをシミュレートしたい場合など)でも、設計者は該協調シミュレーションプラットフォームのすべてのシミュレータを呼び出す必要がある。
 そのような状況において、現在の協調シミュレーション環境は、例えば、協調シミュレーション時にすべてのシミュレータを呼び出さなければならないため実行サーバ(例えばPCまたはVM)に重い作業負荷を加える実行速度の面、またはシミュレータがサードパーティ製品の場合にすべてのシミュレータが実行のためにそれぞれ特定のライセンスを必要とするためにライセンス管理の面などで、それぞれ非効率的である。
 上述した関連技術の問題に対処するため、本開示は、特に以前の協調シミュレーションの再実行の場合における、以前の協調シミュレーションプラットフォームを用いた場合の実行速度およびライセンス使用の非効率性に関する解決策に関する。
 本開示は、関連技術における問題に対処するために実行速度およびライセンス管理の両方においてより効率的な協調シミュレーションプラットフォームの再実行のための新規の方法に関する。新規の方法論においては、「I/Fトレース」と呼ばれる、最初の協調シミュレーション中の各時刻における各シミュレータに対するインタフェース(I/F)の各値を記録する格納システムが存在し、さらに保存されたI/Fトレースを使用することによって以前のI/F通信アクティビティを再現でき再実行期間に実際のシミュレータを置き換えることができる、協調シミュレーションプラットフォームにおける各シミュレータのダミーモジュールが存在する。
 さらに、再実行期間において、ソフトウェアエンジニアが分析および/またはデバッグしたい対象シミュレータを除いて、協調シミュレーションプラットフォームのシミュレータを上述したダミーモジュールに置き換えることによって再実行が行われる。本開示で上述したように、本明細書で説明する実施形態において、デバッグ処理のために1つの対象シミュレータのみが再度呼び出され、以前の協調シミュレーションの再実行中には残りのシミュレータはリピータに置き換えられる。
 そのような実施例は、デバッグの対象シミュレータ以外のシミュレータはダミーモジュールに置き換えられるため実行サーバの実際のシミュレータよりも作業負荷が少なくなるために協調シミュレーション実行速度が改善可能となることから、関連技術の実施例に対する改良点である。そのような実施例は、結果的に、実行サーバのハードウェア構成を変更する必要なくサーバ上でのシミュレーションの実行速度を上げる。
 さらに、以前の協調シミュレーションプラットフォームと置き換えられたダミーモジュールは再実行期間にライセンスを必要としないためシミュレータライセンス使用の数を減らすことができ、関連技術のシステムよりも効果的な協調シミュレーション再実行プロセスを実現する。
 本開示の態様は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納し、前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換えることを含み得る方法であって、前記シミュレーションエンジンリピータは前記協調シミュレーションの後続の再実行中に前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成される方法を含む。
 本開示の態様は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納し、前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換える命令を含み得るコンピュータプログラムであって、前記シミュレーションエンジンリピータは前記協調シミュレーションの後続の再実行中に前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成されるコンピュータプログラムを含む。このコンピュータプログラムは、前記命令を格納する非一時コンピュータ可読媒体に格納され1つ以上のプロセッサによって実行可能である。
 本開示の態様は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納する手段と、前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換える手段とを含み得るシステムであって、前記シミュレーションエンジンリピータは前記協調シミュレーションの後続の再実行中に前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成されるシステムを含む。
 本開示の態様は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納するように構成されたメモリと、前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換えるように構成されたプロセッサとを含み得るシステムであって、前記シミュレーションエンジンリピータは前記協調シミュレーションの後続の再実行中に前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成されるシステムを含む。
 本開示の態様は、前記複数のソフトウェアアプリケーションの協調実行中にインタフェース(I/F)を介して別のソフトウェアアプリケーションと通信する複数のソフトウェアアプリケーションのI/F通信アクティビティレコードを格納し、後続の協調再実行のために、前記複数のソフトウェアアプリケーションのうちの1つ以上をソフトウェアアプリケーションリピータと置き換えることを含み得る方法であって、前記ソフトウェアアプリケーションリピータは、前記後続の協調再実行中に前記複数のソフトウェアアプリケーションの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成される方法を含み得る。
 本開示の態様は、複数のソフトウェアアプリケーションの協調実行中にインタフェース(I/F)を介して別のソフトウェアアプリケーションと通信する複数のソフトウェアアプリケーションのI/F通信アクティビティレコードを格納し、後続の協調再実行のために、前記複数のソフトウェアアプリケーションのうちの1つ以上をソフトウェアアプリケーションリピータと置き換えることを含む命令を含み得るコンピュータプログラムであって、前記ソフトウェアアプリケーションリピータは前記後続の協調再実行中に前記複数のソフトウェアアプリケーションの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成されるコンピュータプログラムを含み得る。このコンピュータプログラムは、前記命令を格納する非一時コンピュータ可読媒体に格納され1つ以上のプロセッサによって実行可能である。
 本開示の態様は、複数のソフトウェアアプリケーションの協調実行中にインタフェース(I/F)を介して別のソフトウェアアプリケーションと通信する複数のソフトウェアアプリケーションのI/F通信アクティビティレコードを格納する手段と、後続の協調再実行のために、前記複数のソフトウェアアプリケーションのうちの1つ以上をソフトウェアアプリケーションリピータと置き換える手段とを含み得るシステムであって、前記ソフトウェアアプリケーションリピータは前記後続の協調再実行中に前記複数のソフトウェアアプリケーションの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成されるシステムを含み得る。
 本開示の態様は、複数のソフトウェアアプリケーションの協調実行中にインタフェース(I/F)を介して別のソフトウェアアプリケーションと通信する複数のソフトウェアアプリケーションのI/F通信アクティビティレコードを格納するように構成されたメモリと、後続の協調再実行のために、前記複数のソフトウェアアプリケーションのうちの1つ以上をソフトウェアアプリケーションリピータと置き換えるように構成されたプロセッサとを含み得るシステムであって、前記ソフトウェアアプリケーションリピータは前記後続の協調再実行中に前記複数のソフトウェアアプリケーションの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成されるシステムを含み得る。
 本開示の態様は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納し、前記通信アクティビティレコードは複数のタイムスタンプと関連付けられ、前記複数のタイムスタンプのサブセットにおいて前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換えることを表わす前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンの1つ以上をシミュレーションエンジンリピータと置き換えることを含み得る方法であって、前記シミュレーションエンジンリピータは、前記複数のタイムスタンプの前記サブセットによって表わされる時間における前記協調シミュレーションの前記後続の再実行中に前記複数のシミュレーションエンジンの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成され、前記協調シミュレーションの前記後続の再実行中の前記複数のタイムスタンプの前記サブセット以外の別の時間において前記複数のシミュレーションエンジンの前記1つ以上を実行する方法を含み得る。
 本開示の態様は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納する命令を含み、前記通信アクティビティレコードは複数のタイムスタンプと関連付けられ、さらに前記複数のタイムスタンプのサブセットにおいて前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換えることを表わす前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンの1つ以上をシミュレーションエンジンリピータと置き換える命令を含み、前記シミュレーションエンジンリピータは、前記複数のタイムスタンプの前記サブセットによって表わされる時間における前記協調シミュレーションの前記後続の再実行中に前記複数のシミュレーションエンジンの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成され、そして前記協調シミュレーションの前記後続の再実行中の前記複数のタイムスタンプの前記サブセット以外の別の時間において前記複数のシミュレーションエンジンの前記1つ以上を実行する命令を含み得るコンピュータプログラムを含み得る。このコンピュータプログラムは、前記命令を格納する非一時コンピュータ可読媒体に格納され1つ以上のプロセッサによって実行可能である。
 本開示の態様は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納する手段を含み、前記通信アクティビティレコードは複数のタイムスタンプと関連付けられ、さらに前記複数のタイムスタンプのサブセットにおいて前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換えることを表わす前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンの1つ以上をシミュレーションエンジンリピータと置き換える手段を含み、前記シミュレーションエンジンリピータは、前記複数のタイムスタンプの前記サブセットによって表わされる時間における前記協調シミュレーションの前記後続の再実行中に前記複数のシミュレーションエンジンの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成され、そして前記協調シミュレーションの前記後続の再実行中の前記複数のタイムスタンプの前記サブセット以外の別の時間において前記複数のシミュレーションエンジンの前記1つ以上を実行する手段を含み得るシステムを含み得る。
 本開示の態様は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納するように構成されたメモリを含み、前記通信アクティビティレコードは複数のタイムスタンプと関連付けられ、さらに前記複数のタイムスタンプのサブセットにおいて前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換えることを表わす前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンの1つ以上をシミュレーションエンジンリピータと置き換え、前記シミュレーションエンジンリピータは、前記複数のタイムスタンプの前記サブセットによって表わされる時間における前記協調シミュレーションの前記後続の再実行中に前記複数のシミュレーションエンジンの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成され、前記協調シミュレーションの前記後続の再実行中の前記複数のタイムスタンプの前記サブセット以外の別の時間において前記複数のシミュレーションエンジンの前記1つ以上を実行するように構成されたプロセッサを含み得るシステムを含み得る。
図1は、関連技術の協調シミュレーションプラットフォームを図示する。 図2は、一実施例によるシミュレータライセンス管理表を図示する。 図3は、協調シミュレーションのタイミングチャートの一例を図示する。 図4は、一実施例による協調シミュレーションプラットフォームの一例である。 図5は、一実施例による各シミュレータの各I/Fアクティビティのタイミングチャートの一例である。 図6は、一実施例による再実行のための協調シミュレーションプラットフォームの一例である。 図7は、一実施例による協調シミュレーションプラットフォームの別の例を図示する。 図8は、一実施例による協調シミュレーションプラットフォームの別の例を図示する。 図9は、以前の協調シミュレーションの再実行中に再現されなければならない各シミュレータの各I/Fアクティビティのタイミングチャートの別の実施例を図示する。 図10は、一実施例によるリピータの一例を図示する。 図11は、一実施例によるリピータのフロー図を図示する。 図12は、一実施例によるI/Fトレースおよび/またはリピータを容易化するための専用のハードウェアシステム例を図示する。 図13は、実施例における使用に適した例示のコンピュータ装置を用いたコンピューティング環境例を図示する。
 以下の詳細な説明は、本願の図面および実施例のさらなる詳細を提供するものである。明確性のため、図面間において重複した要素の参照番号および説明は省略される。本明細書全体において使用される用語は例として提供されるものであり、限定を意図するものではない。例えば、「自動」という用語は、本願の実装を実行する通常の技術を有する当業者の所望の実装に応じて、実装の特定の態様に対するユーザまたはアドミニストレータによる制御を含む全自動または半自動の実装を含んでもよい。選択はユーザインタフェースまたはその他の入力手段を介してユーザによって制御可能であり、または所望のアルゴリズムによって実現可能である。本明細書で説明するような実施例は、単体または組み合わせて使用可能であり、そのような実施例の機能性は所望の実装に応じた任意の手段によって実現可能である。
 本明細書で説明する実施例において、I/Fトレースと呼ばれる、シミュレーションの全実行中の各タイムスタンプにおける各シミュレータのI/F通信アクティビティの各値を記録する格納装置が存在する。また、I/Fトレースによって管理されるI/Fトレースレコードを使用することによって以前のI/F通信アクティビティを再現することができ該シミュレーションの再実行中に実際のシミュレータと置き換えることができる、協調シミュレーションプラットフォームの各シミュレータのダミーモジュールが存在する。さらに、再実行中において、協調シミュレーションプラットフォームにおいて所望のシミュレータは上述したダミーモジュールと置き換えられることが可能であり、ユーザが分析および/またはデバッグしたい対象シミュレータの全実行はそのままとすることができる。そのようなダミーモジュールをここではリピータと呼ぶ。
 本明細書で説明する実施例において、所望ではないが演算上高価なシミュレータを、そのような計算リソースを消費しないリピータと置き換えることができるため、基本となるシステムの処理能力を節約可能である。さらに、デバッグの対象シミュレータ以外のシミュレータは実行サーバの実際のシミュレータよりも作業負荷が小さいダミーモジュールと置き換えられるため協調シミュレーション再実行速度が改善可能であり、さらに以前の協調シミュレーションプラットフォームと置き換えられたダミーモジュールは再実行期間中のライセンスを必要としないため、使用が必要なシミュレータライセンスは少なくてもよい。このような実装は、特にリソースが高価なアルゴリズムまたは特定目的のハードウェアが協調シミュレーションバスを介してシミュレーションされている場合、演算上高価なモデリング環境を必要とするハードウェア集中のシミュレーションを伴うハードウェアインザループシミュレーション(HILS)またはソフトウェアインザループシミュレーション(SILS)に対して特に効果的である。本明細書で説明される実施例は、所望の実装によるECU、車両運動性、使用可能性試験などのシミュレーションのためのHILSプラットフォーム、または所望の実装によるローカルでホストされるコンパイラによる制御アルゴリズムもしくはメカトロニックシステムをシミュレーションするためのSILSプラットフォームに対して適用可能である。
 図1は、最初の実行および後続の再実行の両方のための関連技術の協調シミュレーションプラットフォームの一例であり、ライセンスサーバ100、シミュレータライセンスストレージ101、ライセンス割り当てプロシージャ102、シミュレータ1 111、シミュレータ2 121、シミュレータ3 131、シミュレータ1I/F(出力112、入力113)、シミュレータ2I/F(出力122、入力123)、シミュレータ3I/F(出力132、入力133)および協調シミュレーションバス105を含む。
 ライセンスサーバ100は、残っているシミュレータライセンスの数を管理しており、例えば図2に示すように、各シミュレータの最新のライセンス数をシミュレータライセンスストレージ101に保持する。ライセンスサーバは、各シミュレータが協調シミュレーションを開始する前にライセンス割り当てプロシージャ102を介して各シミュレータ111/121/131に対して適切なライセンスを割り当てる。
 シミュレータ1 111、シミュレータ2 121およびシミュレータ3 131は協調シミュレーションモデルの各部を表わす。シミュレータ111/121/131は、所望の実装に応じて同種のシミュレータでもよく、互いに異なっていてもよい。各シミュレータ111/121/131は、シミュレータ1 111のための入力112および出力113、シミュレータ2 121のための入力122および出力123、シミュレータ3 131のための入力132および出力133のように、それ自体のI/F入力および出力を有する。各シミュレータの入力および出力は、実装に応じて単一の信号でも複数の信号の組でもよい。各タイムステップの協調シミュレーションの全実行において、各シミュレータ111/121/131は、それぞれ入力112/122/132からそれ自体の入力値を取り出し、その入力を用いて演算してそれ自体の状態を更新し、その演算および状態更新の終了後にそれぞれ出力113/123/133を生成する。
 各タイムステップの協調シミュレーションの全実行の間、協調シミュレーションバス105は、協調シミュレーションモデルによって指定されるように各シミュレータI/F112/113/122/123/132/133を相互接続し、シミュレータの出力からの各値を他のシミュレータの入力へと送受信を行う。図1に示すプラットフォームにおける協調シミュレーション手順は以下の通りである。
 最初の実際の協調シミュレーションがプラットフォーム上で呼び出されると、各シミュレータ111/121/131は、まず、ライセンス割り当てプロシージャ102を介してそれぞれのシミュレーションを進めるために、ライセンスサーバ100に対してそれぞれのライセンスを取り出す要求を実行する。シミュレータがそれぞれのライセンスを取り出すと、シミュレータ111/121/131は協調シミュレーションに対する準備が整う。
 図3は、その協調シミュレーションのタイミングチャートの一例を図示する。各シミュレータ111/121/131が協調シミュレーションに対する準備が整うと、タイミングチャートで協調シミュレーション時間(sim
time)が「0」に設定される。この時、各シミュレータの出力I/F値は、それぞれ、シミュレータ111/121/131によって、出力112に対してs1o0、出力122に対してs2o0、および出力132に対してs3o0が設定される。
 次に、協調シミュレーションバスは、上記の各出力I/F値を読み込み、モデルにおいて指定された相互接続とともにそれらを各シミュレータの特定の入力I/Fに対して渡す。それによって、シミュレータ111/121/131に対する各入力I/F値は、それぞれ、入力113に対してs1i0、入力123に対してs2i0、および入力133に対してs3i0が設定される。
 上述した初期手順後、sim timeは「1」に設定され、協調シミュレーションが次のタイムステップに進んだことを表わす。このとき、sim time「1」におけるそれぞれのシミュレータの入力を用いた状態更新および出力値演算の結果として、シミュレータ111/121/131によって、それぞれ、各シミュレータの出力I/F値は、出力112に対してs1o1、出力122に対してs2o1、および出力132に対してs3o1が設定される。
 その後、上述したように、協調シミュレーションバスは出力I/F値のそれぞれを読み込み、モデルにおける指定相互接続とともにその値を各シミュレータの対応入力I/Fに対して渡す。この結果、シミュレータ111/121/131の各入力I/F値は、それぞれ、入力113に対してs1i1、入力123に対してs2i1、入力133に対してs3ilが設定される。
 上述した手順後、sim timeは「2」に設定され、協調シミュレーションが次のタイムステップに進んだことを表わす。このとき、sim time「2」におけるそれぞれのシミュレータの入力を用いた状態更新および出力値演算の結果として、シミュレータ111/121/131によって、それぞれ、各シミュレータの出力I/F値は、出力112に対してs1o2、出力122に対してs2o2、出力132に対してs3o2が設定される。sim timeが特定の終了タイミング、この場合は例えばsim time「n」に達するまで、協調シミュレーションは上述した方法と同様に継続する。
 sim timeが終了タイミング「n」に達すると、シミュレータ111/121/131および協調シミュレーションバス105はそれぞれの演算を停止する。その後、シミュレータ111/121/131はそれぞれが保持するシミュレーションライセンスをリリースし、割り当てプロシージャ102を介してライセンスサーバ100にそれらを返す。ライセンスサーバ100は図2に記載する残りのライセンス数を更新することによって、必要に応じて他の要求に対してそのシミュレーションライセンスを割り当てることができる。
 ユーザがそのプラットフォーム上で後続の協調シミュレーションを呼び出したい場合であって、デバッグ処理の目的のためにsim time「n」においてシミュレータ111上で同一の状態を再現するという目的で後続の再実行が最初の実行と全く同一の協調シミュレーションとなるようにする場合、協調シミュレーションの後続の再実行が最初の協調シミュレーションと同一であっても、上述したように協調シミュレーション手順は全く同一でなければならない。これは、例えばsim time「n」においてシミュレータ111上で同一の状態を再現するためには、協調シミュレーションは最初の協調シミュレーション手順で説明したのと同様にして呼び出されなければならず、最初の実行と後続の再実行との間で手順の違いがある場合、sim time「n」におけるシミュレータ111上の状態が異なる手順を有することに起因して互いに異なるためである。
 これによって、関連技術の実装では、前の協調シミュレーションの「再実行」であっても、協調シミュレーションプラットフォーム上の全シミュレータを再度呼び出されなければならず、その結果としていくつかの不利益が生じる。例えば、協調シミュレーションの実行処理能力の観点からすると、再実行の分析対象が協調シミュレーションプラットフォーム全体のシミュレータのうちの1つのみである場合でも、協調シミュレーションプラットフォームの全要素は前の実行と同様に処理して呼び出されなければならないため、協調シミュレーション再実行速度は前の実行と全く同じ速度となるはずである。
 さらに、ライセンス管理の観点からすると、協調シミュレーションプラットフォームの全シミュレータが呼び出されなければならないため、再実行に必要なライセンス数は前の実行と全く同一となるはずである。したがって、再実行のための分析対象が協調シミュレーションプラットフォーム全体のうちの1つのシミュレータのみであっても、全シミュレータはそれ自体の実行ライセンスを取り出さなければならない。
 本明細書に記載の実施例は、関連技術の実装における上記のような問題に対処することに関する。図4は、一実施例による最初の実行におけるI/Fトレースデータを取り込む新規の方法論を使用した協調シミュレーションプラットフォームの一例である。図4に図示するように、協調シミュレーションプラットフォームは、ライセンスサーバ100、シミュレータライセンスストレージ101、ライセンス割り当てプロシージャ102、シミュレータ1 111、シミュレータ2 121、シミュレータ3 131、シミュレータ1I/F(出力112、入力113)、シミュレータ2I/F(出力122、入力123)、シミュレータ3I/F(出力132、入力133)、協調シミュレーションバス105、シミュレータ1 115上のI/Fの入力および出力トレースのためのストレージ、シミュレータ2 125上のI/Fの入力および出力トレースのためのストレージ、シミュレータ3 135上のI/Fの入力および出力トレースのためのストレージを含む。シミュレータI/Fの入力および出力トレースのための各ストレージは、アクティビティを監視し、simタイムステップ毎に入力および出力I/F値を格納する。例えば、I/Fトレース1 115はシミュレータ1 112の出力I/Fおよびシミュレータ1 113の入力I/Fを監視し、simタイムステップ毎に112および113の各値を格納する。その他のI/Fトレース2およびI/Fトレース3に対しては、シミュレータ2 123およびシミュレータ3 131を用いた場合とそれぞれ機能が同じである。図4の要素の残りは、図1で記載したものと同様である。
 図5は、一実施例による、各シミュレータに対する各I/Fアクティビティのタイミングチャートの一例である。上記において、例えば、それぞれ、最も左の表はI/Fトレース1 115におけるタイミングチャートを表わし、中間の表はI/Fトレース2 125におけるタイミングチャートを表わし、最も右の表は、I/Fトレース3 135におけるタイミングチャートを表わす。
 一実施例において、図4に示すプラットフォーム上の最初の協調シミュレーション手順は、図5の協調シミュレーション手順のタイミングチャートに関して以下の通りとなる。最初の実際の協調シミュレーションが上記プラットフォーム上で呼び出された場合、シミュレータ111/121/131は、ライセンスサーバ100に対して、ライセンス割り当てプロシージャ102を介してそれぞれのシミュレーションを処理するようにそれぞれのライセンスを取り出す要求を行う。シミュレータがそれぞれのライセンスを取り出すと、シミュレータ111/121/131は協調シミュレーションの準備が整う。
 シミュレータ111/121/131が協調シミュレーションに対する準備が整うと、タイミングチャートで協調シミュレーション時間(sim time)が「0」に設定される。この時、各シミュレータの出力I/F値は、それぞれ、シミュレータ111/121/131によって、112に対してs1o0、122に対してs2o0、および132に対してs3o0が設定される。
 次に、協調シミュレーションバスは上記の出力I/F値のそれぞれを読み込み、モデルにおいて指定された相互接続とともにそれらを各シミュレータの対応入力I/Fに対して渡す。それによって、シミュレータ111/121/131に対する入力I/F値のそれぞれは、それぞれ、113に対してs1i0、123に対してs2i0、および133に対してs3i0が設定される。
 一方、I/Fトレース1 115はシミュレータ1 111の出力112および入力113を監視し、それらの値を格納する。図5に示すように、最も左の表はI/Fトレース1 115のタイミングチャートであり、I/Fトレース1 115が、それぞれ、sim time「0」の時点における出力112の値として値s1o0、および入力113の値として値s1i0を格納していることを図示する。中間のチャートにおいて、I/Fトレース2 125はシミュレータ2 121の出力122および入力123を監視し、それぞれ、sim time「0」の時点における出力122の値として値s2o0、および入力123の値として値s2i0を格納する。最も右のチャートにおいて、I/Fトレース3 135はシミュレータ3 131の出力132および入力133を監視し、それぞれ、sim time「0」の時点における出力132の値として値s3o0、および入力133の値として値s3i0を格納する。
 上述した初期手順後、sim timeは「1」に設定され、協調シミュレーションが次のタイムステップに進んだことを表わす。このとき、sim time「1」におけるそれぞれのシミュレータの入力を用いた状態更新および出力値演算の結果として、シミュレータ111/121/131によって、それぞれ、各シミュレータの出力I/F値は、112に対してs1o1、122に対してs2o1、および132に対してs3o1が設定される。
 その後、上述したように、協調シミュレーションバスは上記の出力I/F値のそれぞれを読み込み、モデルにおける指定相互接続とともにそれらを各シミュレータの対応入力I/Fに対して渡す。それによって、シミュレータ111/121/131の各入力I/F値は、それぞれ、113に対してs1i1、123に対してs2i1、および133に対してs3i1が設定される。
 一方、I/Fトレース1 115は、シミュレータ1 111の出力112および入力113を監視し、それらの値を格納する。sim time「0」における上記説明と同様に、I/Fトレース1 115は、それぞれ、sim time「1」における出力112の値として値s1o1、および入力113の値として値s1i1を格納する。I/Fトレース2 125はシミュレータ2 121の出力122および入力123を監視し、それぞれ、sim time「1」の時点における出力122の値として値s2o1、および入力123の値として値s2i1を格納する。I/Fトレース3 135はシミュレータ3 131の出力132および入力133を監視し、それぞれ、sim time「1」における出力132の値として値s3o1、および入力133の値として値s3i1を格納する。
 上述した手順後、sim timeは「2」に設定され、協調シミュレーションが次のタイムステップに進んだことを表わす。このとき、sim time「2」の時点における各シミュレータの入力を用いた状態更新および出力値演算の結果として、シミュレータ111/121/131によって、それぞれ、各シミュレータの出力I/F値は、112に対してs1o2、122に対してs2o2、および132に対してs3o2が設定される。
 一方、上述したものと同様に、I/Fトレース1 115、I/Fトレース2 125およびI/Fトレース3 135は、sim time「2」の時点における関連シミュレータのそれぞれの入力および出力I/F値を格納する。sim timeが特定の終了タイミング、この場合は例えばsim time「n」に達するまで、協調シミュレーションは上述した方法と同様に継続する。
 sim timeが終了タイミング「n」に達すると、シミュレータ111/121/131および協調シミュレーションバス105はそれぞれの演算を停止する。その後、シミュレータ111/121/131はそれぞれのシミュレーションライセンスをリリースし、割り当てプロシージャ102を介してライセンスサーバ100にそれらを返す。ライセンスサーバ100は図2に記載する残りのライセンス数を更新することによって、必要に応じて他の要求に対してそのシミュレーションライセンスを割り当てることができる。
 図6は、一実施例による、再実行のための新規方法論を使用した協調シミュレーションプラットフォームの一例である。具体的には、図6の協調シミュレーションプラットフォームは、ライセンスサーバ100、シミュレータライセンスストレージ101、ライセンス割り当てプロシージャ102、シミュレータ1 111、リピータ2 221、リピータ3 231、シミュレータ1I/F(出力112、入力113)、シミュレータリピータ2I/F(出力222、入力223)、シミュレータリピータ3I/F(出力232、入力233)、協調シミュレーションバス105、シミュレータ2 125上のI/Fの入力および出力トレースのためのストレージ、シミュレータ3 135上のI/Fの入力および出力トレースのためのストレージを含む。
 リピータ2 221およびリピータ3 213は、それぞれ、シミュレータ2 121およびシミュレータ3 131を置き換えるダミーモジュールである。各リピータは、sim time毎にI/Fの入力および出力トレースのためのそれ自体のストレージを読み込み、以前の協調シミュレーション実行とともにその出力I/Fアクティビティを再現するように構成される。それぞれ、リピータ2 221はシミュレータ2 121の出力I/Fアクティビティを再現し、リピータ3 231はシミュレータ3 131の出力I/Fアクティビティを再現する。リピータは重い演算または状態更新手順を伴わないため、各リピータを加えると、結果的に、置き換えられたシミュレータと比較して実行サーバに対する作業負荷が軽くなる。
 これらのシミュレータの置き換えとともに、シミュレータ2 121の出力122および入力123I/Fは、それぞれ、リピータ2 221の出力222および入力223と置き換えられ、シミュレータ3 131の出力132および入力133I/Fは、それぞれ、リピータ3 231の出力232および入力233と置き換えられる。各リピータの入力および出力は、実装に応じて単一信号または複数の信号の集合でもよい。
 シミュレータI/Fの入力および出力トレースの各格納は、図4において既に上述した以前の協調シミュレーション実行の結果であり、関連シミュレータの入力および出力I/Fアクティビティを再現するためのタイミングチャートとして使用される。例えば、I/Fトレース2 125はリピータ2 221の入力および出力I/Fアクティビティを再現するためのタイミングチャートとして使用され、I/Fトレース3 135は、リピータ3 231の入力および出力I/Fアクティビティを再現するためのタイミングチャートとして使用される。
 各タイムステップにおける協調シミュレーションの全実行の間、協調シミュレーションバス105は協調シミュレーションモデルによって指定されるように各シミュレータまたはリピータI/F112/113/222/223/232/233を相互接続し、シミュレータの出力からシミュレータの入力へ各値を送受信する。
 図6の要素の残りは、図1で説明したものと同様である。
 図6に示すプラットフォーム上の協調シミュレーション再実行手順は以下の通りである。協調シミュレーション再実行がプラットフォーム上で呼び出されると、まず、シミュレータ1 111は、ライセンス割り当てプロシージャ102を介してそのシミュレーションを進めるために、ライセンスサーバ100に対してそれ自体のライセンスを取り出す要求を実行する。シミュレータ1 111がそれ自体のライセンスを取り出すと、シミュレータ1 111は協調シミュレーションに対する準備が整う。
 一方、リピータ2 221およびリピータ3 231は、以前の実行中に格納された最初の協調シミュレーションのタイミングチャートを含むI/Fトレース2およびI/Fトレース3 135を開く。それらを開いた後、リピータ2 221およびリピータ3 231は協調シミュレーションに対して準備が整う。図5は、以前の協調シミュレーションの再実行の間に再現されなければならない各シミュレータに対する各I/Fアクティビティのタイミングチャートの一例である。
 シミュレータ1 111、リピータ2 221およびリピータ3 231が協調シミュレーションに対する準備が整うと、タイミングチャートで協調シミュレーション時間(sim time)が「0」に設定される。このとき、シミュレータ1 111、リピータ2 221およびリピータ3 231に対する出力I/F値は、シミュレータ1 111、リピータ2 221およびリピータ3 231によって、それぞれ、112に対してs1o0、222に対してs2o0、および232に対してs3o0が設定される。
 次に、協調シミュレーションバスは上記の各出力I/F値を読み込み、モデルにおける指定相互接続とともに、シミュレータ毎の特定の入力I/Fに対して渡す。その結果、シミュレータ1 111、リピータ2 221およびリピータ3 231に対する各入力I/F値は、それぞれ、113に対してs1i0、223に対してs2i0、および233に対してs3i0が設定される。
 上述した初期手順後、sim timeは「1」に設定され、協調シミュレーションが次のタイムステップに進んだことを表わす。このとき、sim time「1」における各シミュレータでの状態更新および出力値演算の結果として、シミュレータ1 111に対する出力I/F値は、112に対してs1o1が設定される。sim time「1」のストレージからそれ自体の出力トレース値を読み込んでそれらの出力I/Fに対してそれらを再現した結果として、リピータの出力I/F値は、リピータ2 221およびリピータ3 231によってそれぞれ222に対してs2o1および232に対してs3o1が設定される。その後、協調シミュレーションバスは上記の各出力I/F値を読み込み、モデルにおける指定相互接続とともに各シミュレータの特定の入力I/Fに対して渡す。その結果、シミュレータ1 111、リピータ2 221およびリピータ3 231に対する入力I/F値のそれぞれは、それぞれ、113に対してs1i1、223に対してs2i1、および233に対してs3i1が設定される。
 上述した手順後、sim timeは「2」に設定され、協調シミュレーションが次のタイムステップに進んだことを表わす。このとき、sim time「2」におけるそれぞれのシミュレータにおける状態更新および出力値演算の結果として、シミュレータ1 111に対する出力I/F値は、112に対してs1o2が設定される。sim time「2」におけるストレージからそれ自体の出力トレース値を読み込んでそれらの出力I/Fに対してそれらを再現した結果として、リピータに対する出力I/F値は、リピータ2 221およびリピータ3 231によって、それぞれ、222に対してs2o2、232に対してs3o2が設定される。
 sim timeが特定の終了タイミング、この場合は例えばsim time「n」に達するまで、協調シミュレーションは上述した方法と同様に継続する。sim timeが終了タイミング「n」に達すると、シミュレータ1 111、リピータ2 221およびリピータ3 231および協調シミュレーションバス105はそれぞれの演算を停止する。その後、シミュレータ1 111はそのシミュレーションライセンスをリリースし、割り当てプロシージャ102を介してライセンスサーバ100に返す。ライセンスサーバ100は図2で説明したように残りのライセンス数を更新することによって、必要に応じて他の要求に対してそのシミュレーションライセンスを割り当てることができる。
 図7は、一実施例による協調シミュレーションプラットフォームの別の例を図示する。図7の例において、シミュレーションエンジンのうちの1つ以上は、さらに、シミュレーション中に対応するシミュレーションエンジンによって行われたI/F通信アクティビティのI/F通信アクティビティレコードを格納および管理する機能を含んでもよい。そのような実施例において、シミュレーションエンジンリピータは対応するシミュレーションエンジンによって格納されたデータからI/F通信アクティビティレコードを取得することができ、または対応するシミュレーションエンジンは、所望の実装により、リピータに対してI/F通信アクティビティレコードを供給するように実行されることができる。
 図8は、一実施例による、協調シミュレーションプラットフォームの別の例を図示する。この実施例において、I/Fトレース145は、協調シミュレーションバス105と相互接続されることによって実現され、I/F通信アクティビティレコードを記録および格納するために協調シミュレーションバス105の物理的相互接続にタップする。このような実施例は、I/F通信アクティビティレコードを管理するための専用のメモリを含む専用のハードウェアシステムによって容易に実現されることが可能であり、フィールドプログラマブルゲートアレイ(FPGA)などの1つ以上のプログラマブルハードウェアチップは、リピータに対して対応するI/F通信アクティビティレコードを供給するように特化されプログラミングされてもよい。また、所望の実装に応じて、1つ以上のプログラマブルチップは、リピータの機能を容易化するように特化およびプログラミングされてもよい。そのような実装は、シミュレーションエンジンが(例えば、バスに接続されたようなイーサネットを介して協調シミュレーション装置に接続された外部のモノのインターネット(IoT)装置から、バスに物理的に接続されたキオスク、印刷装置、入力装置、およびその他の装置などの特定の外部装置から、および所望の実装に応じた装置などから)協調シミュレーションバス105にプラグインされた外部の特定目的の装置と一体化している場合に望ましい場合がある。
 図9は、以前の協調シミュレーションの再実行の間に再現されなければならない各シミュレータの各I/Fアクティビティのタイミングチャートの別の実施例を図示する。I/F通信アクティビティを示すこのタイミングチャート例は、所望の実装による、本明細書に記載の任意のI/Fトレース実装のために実装されることができる。
 図10は、一実施例によるリピータの一例を図示する。図10の実施例において、リピータは、(例えば協調シミュレーション実行前の)協調シミュレーショントレースからI/Fアクティビティデータを取り出すように構成されるトレースファイル読込装置250を含む。レジスタ251は出力インタフェース222に対する出力をタイムスタンプするために使用される。レジスタ252は、入力インタフェース223を介して受信される入力をタイムスタンプするために使用される。
 図11は、一実施例によるリピータのフロー図を図示する。510において、リピータはI/F通信アクティビティレコードを含むトレースファイルを開く。そのようなファイルは、シミュレーションエンジンまたはソフトウェアアプリケーション、メモリから取り出しバックグラウンドで実行されるソフトウェアアプリケーション、メモリからトレースファイルを取り出すリピータ、または所望の実装によりリピータの専用のハードウェアシステム内のメモリから供給され得る。
 520において、リピータの開始点が初期化される。例えば、リピータがシミュレーションエンジンまたはソフトウェアアプリケーションを全体として置き換えなければならない場合、開始点は時間=0に初期化される。シミュレーションの一部のみの置き換えとして実装される場合、開始点は置き換えのために設けられた特定の時点に初期化される(例えばインタフェースを介してユーザによって行われる)。その後、530において、リピータは、ループ内の特定時点におけるI/F通信アクティビティレコードから対応するレコードを取り出すループを初期化する。
 540において、リピータはループ内の特定時点におけるI/F通信アクティビティレコードからの出力I/F値を用いて出力I/Fを設定する。550において、リピータがI/F通信を実現するための要件nの終了点に達したかを決定するためにチェックが実行される。例えば、リピータがシミュレーションエンジンまたはソフトウェアアプリケーションを全体として置き換えなければならない場合、nは、ソフトウェアアプリケーションのシミュレーションまたは協調実行の終了と関連付けられたタイムスタンプである。シミュレーションの一部のみの置き換えとして実装される場合、nはシミュレーションまたは協調実行の所望の終了と関連付けられるタイムスタンプに応じた終了点に設定される(例えばユーザインタフェースによって定義される通り)。もしそうであれば(Yes)、フローは570に進み、そこでリピータはトレースファイルを閉じてフローが終了する。そうでない場合(No)、フローは560に進んでソフトウェアアプリケーションのシミュレーションまたは協調実行の次のタイムスタンプに進む。
 図11の実施例によって、リピータは、シミュレーションまたは協調実行の全期間において、またはシミュレーションまたは協調実行の所望のI/F通信アクティビティに対応する複数のタイムスタンプの所望のサブセットにおいて、シミュレーションエンジンまたはソフトウェアアプリケーションを置き換えるように構成されることができる。
 図12は、一実施例によるI/Fトレースおよび/またはリピータを容易化する専用のハードウェアシステム例を図示する。一実施例において、協調シミュレーションバス105はプロセッサ1310および専用ハードウェアシステム1200に接続される。専用ハードウェアシステム1200は協調シミュレーションバス105に物理的に接続され、本明細書で説明するようにI/Fトレース機能を容易化するように構成された1つ以上のプログラマブルチップ1201およびメモリ1202を含む。例えば、メモリ1202は、シミュレータ111/121/131間のI/F通信アクティビティのレコードを維持するように、上述したタイミングチャートを管理するように構成可能である。所望の実装に応じて、1つ以上のプログラマブルチップ1201は、協調シミュレーションバス105をタップしてI/F通信アクティビティをメモリ1202に供給するようにI/Fトレースの機能を実行するようプログラミングされることが可能である。また、1つ以上のプログラマブルハードウェアチップ1201は、適切なタイムスタンプ中に置き換えられた1つ以上のシミュレータに対してI/F通信アクティビティを実現するように、図10に図示したようなリピータの機能を実行するようにプログラミングされることも可能である。1つ以上のプログラマブルハードウェアチップ1201は、プロセッサ1310および協調シミュレーションバス105に対する負荷を低減するフィールドプログラマブルゲートアレイ(FPGA)などの専用のプロセッサでもよい。
 図13は、本明細書に記載の機能を実行または容易化するように構成された、実行サーバまたはパーソナルコンピュータなどの実施例での使用に適したコンピュータ装置例を有するコンピューティング環境例を図示する。コンピューティング環境1300におけるコンピュータ装置1305は、1つ以上の処理部、コア、またはプロセッサ1310、メモリ1315(例えば、RAM、ROM、および/または同様のもの)、内部ストレージ1320(例えば、磁気、光学、固体ストレージ、および/または有機)、および/または入出力インタフェース1325を含んでもよく、そのうちのいくつかは情報を通信するために通信機構またはバス1330上で接続されもてよく、コンピュータ装置1305に埋め込まれてもよい。
 コンピュータ装置1305は、入力/ユーザインタフェース1335および出力装置/インタフェース1340と通信可能に接続されてもよい。入力/ユーザインタフェース1335および出力装置/インタフェース1340の一方または両方は有線または無線インタフェースでもよく、脱着可能でもよい。入力/ユーザインタフェース1335は、入力を供給するために使用可能な、物理的または仮想の装置、構成要素、センサ、またはインタフェース(例えば、ボタン、タッチスクリーンインタフェース、キーボード、ポインティング/カーソル制御、マイク、カメラ、ブレイユ、動きセンサ、光学読取装置、および/または同様のもの)を含んでもよい。出力装置/インタフェース1340は、ディスプレイ、テレビ、モニタ、印刷装置、スピーカ、ブレイユなどを含んでもよい。いくつかの実施例において、入力/ユーザインタフェース1335および出力装置/インタフェース1340は、コンピュータ装置1305に埋め込まれてもよく、または物理的に接続され得る。他の実施例において、他のコンピュータ装置はコンピュータ装置1305用の入力/ユーザインタフェース1335および出力装置/インタフェース1340として機能してもよく、その機能を提供してもよい。タッチスクリーンディスプレイ、テレビディスプレイまたは他の形態のディスプレイを含む実施例において、ディスプレイはユーザインタフェースを提供するように構成される。
 コンピュータ装置1305の例は、高可動性装置(スマートフォン、車両および他の機械内の装置、人間および動物によって運ばれる装置など)、可動性装置(例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオなど)、および可動性のために設計されていない装置(例えば、デスクトップコンピュータ、他のコンピュータ、情報キオスク、1つ以上のプロセッサが埋め込まれた、および/またはそこに接続されたテレビ、ラジオなど)を含んでもよいが、それに限定されない。
 コンピュータ装置1305は、同様または異なる構成の1つ以上のコンピュータ装置を含む、いずれかの数のネットワーク化された構成要素、装置およびシステムと通信するための外部ストレージ1345およびネットワーク1350に通信可能に接続され得る(例えば、入出力インタフェース1325を介する)。コンピュータ装置1305またはいずれかの接続されたコンピュータ装置は、サーバ、クライアント、シンサーバ、汎用マシン、特化型マシン、または他のラベルとして機能でき、それらのサービスを提供でき、またはそのように呼ばれることが可能である。
 入出力インタフェース1325は、コンピューティング環境1300における少なくともすべての接続された構成要素、装置、およびネットワーク間での情報を通信するための通信または入出力プロトコルまたは標準(例えばイーサネット、802.11x、ユニバーサルシステムバス、WiMax、モデム、セルラーネットワークプロトコルなど)を使用した有線および/または無線インタフェースを含み得るが、それに限定されない。ネットワーク1350は任意のネットワークまたはネットワークの組み合わせでもよい(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワークなど)。
 コンピュータ装置1305は、一時媒体および非一時媒体を含むコンピュータ使用可能またはコンピュータ可読媒体を使用することができ、および/またはそれを使用して通信することができる。一時媒体は、伝送媒体(例えば金属ケーブル、光ファイバ)、信号、搬送波などを含む。非一時媒体は、磁気媒体(例えばディスクおよびテープ)、光媒体(例えばCD ROM、デジタルビデオディスク、Blu-rayディスク)、固体媒体(例えばRAM、ROM、フラッシュメモリ、固体ストレージ)、およびその他の不揮発性記憶装置またはメモリを含む。
 コンピュータ装置1305は、いくつかのコンピューティング環境例において、技術、方法、アプリケーション、処理、またはコンピュータ実行可能な命令を実現するために使用できる。コンピュータ実行可能な命令は、一時媒体から取り出して、非一時媒体上に格納して、それから取り出すことができる。実行可能な命令は、プログラミング、スクリプティングおよび機械語(例えばC、C++、C#、Java、Visual Basic、Python、Perl、JavaScriptなど)のうちの1つ以上からなってもよい。
 メモリ1315は、図2、3、5、9に図示したようなデータなどの処理対象のデータとともに、例えば図11のフローに記載するようなプロセッサ1310によって実行されるアルゴリズムを格納または管理するように構成されてよい。本明細書に記載するような実施例は、所望の実装に応じて単体で実行されてもよく、互いに組み合わされて実行されてもよいが、特定の実施例に限定されない。
 プロセッサ1310は、ネイティブ環境または仮想環境において、任意のオペレーティングシステム(OS)(不図示)の下で実行することができる。論理部1360、アプリケーションプログラミングインタフェース(API)部1365、入力部1370、出力部1375、異なる部が互いに通信したり、OSと通信したり、他のアプリケーション(不図示)と通信したりするための部間通信機構1395を含む1つ以上のアプリケーションが配備され得る。記載された部および要素は、設計、機能、構成、または実装において変更可能であり、説明の内容に限定されない。プロセッサ1310は、メモリ1315からロードされた命令を実行するように構成された物理的プロセッサまたは中央演算装置(CPU)の形態をとり得る。
 いくつかの実施例では、API部1365は、情報または実行命令を受信すると、1つ以上の他の部(例えば、論理部1360、入力部1370、出力部1375)と通信を行ってもよい。いくつかの例では、上述したいくつかの実施例において、論理部1360は部間での情報フローを制御してAPI部1365、入力部1370、出力部1375によって提供されるサービスを渡すように構成されてもよい。例えば、1つ以上のプロセスまたは実装のフローは、論理部1360単体で制御されもよく、またはAPI部1365と協働して制御されてもよい。入力部1370は、上記の実施例で説明した演算のための入力を取得するように構成されてもよく、出力部1375は、実施例において説明した演算に基づいて出力を供給するように構成されてもよい。
 実施例において、プロセッサ1310は、複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納し、その協調シミュレーションの後続の再実行のために、複数のシミュレーションエンジンのうちの1つ以上を、シミュレーションエンジンリピータと置き換えるように構成可能であり、シミュレーションエンジンリピータは、図4~6に図示したような協調シミュレーションの後続の再実行中に複数のシミュレーションエンジンのうちの置き換えられた1つ以上に対応する格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成される。
 実施例において、プロセッサ1310は複数のシミュレーションエンジンのそれぞれに対するシミュレーションライセンスを取得することによって協調シミュレーションを実行するように構成されてもよく、その場合、協調シミュレーションの後続の再実行は、図4~6で記載したような複数のシミュレーションエンジンの置き換えられた1つ以上以外の複数のシミュレーションエンジンのそれぞれのためにシミュレーションライセンスを取得することを含む。リピータはライセンスを必要としないため、リピータのためのシミュレーションライセンスは取得される必要はなく、所望の実装に応じて他の目的のために使用できる。
 実施例において、複数のシミュレーションエンジンの少なくともサブセットは、同一のシミュレーションエンジンのインスタンスである。例えば、シミュレーションエンジンは、所望の実装に応じて、VDK、Saber、Matlab、またはその他のシミュレーションエンジンのインスタンス上で実行され得る。しかしながら、いくつかの実装において、同一のシミュレーションエンジンの複数のインスタンスを実行したい場合がある(例えばMatlabの複数のインスタンスを実行)。そのような実装では、シミュレーションは同一のシミュレーションエンジンのインスタンスを含む場合があるが、その場合、リピータは所望の実装に応じて同一のシミュレーションエンジンのインスタンスのいくつかまたはすべてに対して使用可能である。
 所望の実装に応じて、プロセッサ1310は協調シミュレーション中にバックグラウンドでソフトウェアアプリケーションを実行し、その場合、複数のシミュレーションエンジンのうちの1つ以上のI/F通信アクティビティレコードの格納はそのソフトウェアアプリケーションによって実行される。そのような一実施例において、スタンドアロンのソフトウェアアプリケーションは、図6に図示するような再現のために、複数のシミュレーションエンジンのうちの置き換えられた1つ以上に対応する格納されたI/F通信アクティビティレコードからのI/F通信アクティビティレコードをシミュレーションエンジンリピータに対して供給する。
 所望の実装に応じて、シミュレーションエンジンは、図7に図示するようにI/F通信アクティビティの格納を実行する機能を有してもよい。そのような実装において、シミュレーションエンジンはその機能を実行するように指示されることが可能であり、それによって複数のシミュレーションエンジンのうちの1つ以上のI/F通信アクティビティの格納は、複数のシミュレーションエンジンのうちの対応する1つ以上によって実行される。
 所望の実装に応じて、プロセッサ1310の機能は、図12において図示するように、専用のハードウェアシステムにおいても実装可能である。そのような実施例において、プログラマブルチップアレイ1201は、複数のシミュレーションエンジンのうちの置き換えられた1つ以上に対応するI/F通信アクティビティレコードの格納を実行するように構成されてプログラミングされた専用のハードウェアを含み、その場合、その専用のハードウェアシステムは、再現のため、複数のシミュレーションエンジンのうちの置き換えられた1つ以上に対応する格納されたI/F通信アクティビティレコードからのI/F通信アクティビティレコードをシミュレーションエンジンリピータに対して供給する。
 さらに、所望の実装に応じて、リピータはシミュレーションのサブセットのみに対して実行可能であり、その後、シミュレーションエンジンはシミュレーションの残りの期間において連動する。例えば、所望の実装により、上記タイミングチャートからのシミュレーションの複数のタイムスタンプのサブセットは、インタフェースの使用によってリピータの利用のために指定可能である。複数のタイムスタンプのサブセットが指定されると、複数のシミュレーションエンジンのうちの1つ以上はシミュレーションエンジンリピータと置き換えられ、このシミュレーションエンジンリピータは、複数のタイムスタンプのサブセットによって示された時間における協調シミュレーションの後続の再実行時に複数のシミュレーションエンジンの置き換えられた1つ以上に対応する格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成される。そのような実施例において、所望の実装に応じて、リピータは、シミュレーションのための時間のサブセットにおいて連動される。
 本開示において記載するように、本明細書に記載の実施例により、デバッグ処理のための1つの対象シミュレータのみ再び呼び出す必要があり、以前の協調シミュレーションの再実行時には残りのシミュレータはリピータと置き換えられる。
 協調シミュレーション実行処理能力の観点からすると、協調シミュレーションプラットフォームにおけるシミュレータのサブセットのみを呼び出して、プラットフォームの残りは実行サーバからの少ない演算リソースを必要とするリピータと置き換えられるため、協調シミュレーション再実行速度は速くなると考えられる。
 さらに、ライセンス管理の観点からすると、協調シミュレーションプラットフォームにおけるシミュレータのサブセットのみが実行ライセンスを必要とし、プラットフォームの残りはそのような実行ライセンスを必要としないリピータと置き換えられるため、再実行のために必要とされるライセンスの数は減少する。それによって、そのようなシミュレータのための実行ライセンスは、他のシミュレーションのために利用することができる。
 上述したシミュレータはインタラクティブなI/F通信を伴う協調実行機能を有する任意の種類のアプリケーションソフトウェアと置き換えられることが可能であるため、上記の協調シミュレーション方法論はソフトウェアおよびハードウェア開発シーンの両方に使用可能であり、ファームウェア開発および制御論理設計などの領域に限定されない。
 本明細書でシミュレーションエンジンに関して実施例を説明したが、I/F通信アクティビティを実現し協調実行されることが可能な一般的なソフトウェアアプリケーションに拡張可能である。そのようなソフトウェアアプリケーションの例は、独自開発のデータベースからデータを取り出すように構成されたデータベースアプリケーション、デバッグ処理トレースソフトウェア、所望の実装に応じて外部接続を介してデータを取り出して供給するイーサネットまたはインターネットに接続したアプリケーションを含み得るが、それに限定されない。したがって、そのソフトウェアアプリケーションは、本明細書で説明する実施例によりそのようなI/F通信アクティビティを再現するように構成されたソフトウェアアプリケーションリピータに置き換えてもよく、対応するライセンスはそのようなソフトウェアアプリケーションのライセンスを管理するライセンシングサーバから取り出されることが可能である。また、ソフトウェアアプリケーションは、シミュレーションエンジンと同時に実行可能であり(例えば、独自開発のデータベースからシミュレーションエンジンへデータを取り出して供給するソフトウェアアプリケーション)、またはその協調実行はソフトウェアアプリケーションのみが関わってもよく、そうでない場合は所望の実装に従う。
 上記の詳細な説明の一部はコンピュータ内の動作のアルゴリズムおよび記号表現に関して提示されている。これらのアルゴリズム記載および記号表現は、データ処理業界の当業者が他の当業者に対して新規技術の要旨を伝えるための手段である。アルゴリズムは、所望の終了状態または結果へと導く一連の定義された工程である。実施例において、それらの実行される工程は、有形の結果を達成するために有形の量の物理的操作を必要とする。
 特記しない限り、上記説明から明らかなように、本明細書全体において「処理」、「演算」、「計算」、「決定」、「表示」などを使用した説明は、コンピュータシステムのレジスタおよびメモリ内の物理的(電気的)量として表わされるデータを、コンピュータシステムのメモリまたはレジスタまたはその他の情報格納装置、伝送装置または表示装置内の物理的量として同様に表わされる他のデータに操作および変換するコンピュータシステムまたはその他の情報処理装置の動作および処理を含み得ることが理解される。
 実施例は、本明細書における動作を実行する装置にも関する。この装置は、要求される目的に応じて特別に構築されてもよく、または1つ以上のコンピュータプログラムによって選択的に活性化または再構成される1つ以上の汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、コンピュータ可読格納媒体またはコンピュータ可読信号媒体などのコンピュータ可読媒体に格納されてもよい。コンピュータ可読格納媒体は、光学ディスク、磁気ディスク、読取専用メモリ、ランダムアクセスメモリ、固体装置およびドライブ、または電子情報格納するのに適した有形または非一時媒体の任意の他の種類の有形の媒体を含んでもよいが、それに限定されない。コンピュータ可読信号媒体は、搬送波などの媒体を含んでもよい。本明細書で提示されるアルゴリズムおよび表示は、特定のコンピュータまたはその他の装置に本質的に関係しない。コンピュータプログラムは、所望の実装の動作を実行する命令を含む純粋なソフトウェア実装を含み得る。
 本明細書の例に応じて様々な汎用システムをプログラムおよびモジュールとともに使用してもよく、または所望の方法の工程を実行するように特化型装置を構築することが便利な場合もある。さらに、実施例は、特定のプログラミング言語を参照して説明されない。様々なプログラミング言語を使用して本明細書に記載の実施例の教示を実装可能であることは理解されるであろう。プログラミング言語の命令は、例えば中央演算装置(CPU)、プロセッサ、または制御装置などの1つ以上の処理装置によって実行可能である。
 当業界で既知なように、上述の動作は、ハードウェア、ソフトウェア、またはソフトウェアおよびハードウェアの任意の組み合わせによって実行可能である。上記実施例の様々な態様は回路および論理装置(ハードウェア)を使用して実装可能である一方、他の態様は、機械可読媒体(ソフトウェア)上に格納された命令を使用して実装可能であり、命令は、プロセッサによって実行されると、プロセッサに本願の実装を実行する方法を実行させる。さらに、本願のいくつかの実施例はハードウェアのみによって実行されてもよい一方、他の実施例はソフトウェアのみによって実行されてもよい。さらに、上述した様々な機能は単体で実行可能であり、または任意の数の方法で複数の構成要素に分散実行可能である。ソフトウェアによって実行される場合、コンピュータ可読媒体上に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって上記方法が実行されてもよい。所望の場合、命令は圧縮および/または暗号化形式で上記媒体上に格納可能である。
 さらに、本願の他の実装は、本願の教示の明細書および実行を考慮することにより当業者にとって明らかであろう。上述の実施例の様々な態様および/または構成要素は単体または任意の組み合わせで使用可能である。本明細書および実施例は例として考慮されることを意図しており、本願の真の範囲および趣旨は以下の特許請求の範囲によって示される。
 100 ライセンスサーバ
 101 シミュレータライセンスストレージ
 102 ライセンス割り当てプロシージャ
 105 協調シミュレーションバス
 111 シミュレータ1
 112 シミュレータ1I/F(出力)
 113 シミュレータ1I/F(入力)
 115 I/Fトレース1
 121 シミュレータ2
 122 シミュレータ2I/F(出力)
 123 シミュレータ2I/F(入力)
 125 I/Fトレース2
 131 シミュレータ3
 132 シミュレータ3I/F(出力)
 133 シミュレータ3I/F(入力)
 135 I/Fトレース3
 221 リピータ2
 222 シミュレータリピータ2I/F(出力)
 223 シミュレータリピータ2I/F(入力)
 232 シミュレータリピータ3I/F(出力)
 233 シミュレータリピータ3I/F(入力)

Claims (18)

  1.  複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納し、
     前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換えることを含む方法であって、前記シミュレーションエンジンリピータは前記協調シミュレーションの後続の再実行中に前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成される方法。
  2.  前記協調シミュレーションの前記実行は、前記複数のシミュレーションエンジンのそれぞれに対してシミュレーションライセンスを取得することを含み、
     前記協調シミュレーションの前記後続の再実行は、前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上以外の前記複数のシミュレーションエンジンのそれぞれに対するシミュレーションライセンスを取得することを含む請求項1に記載の方法。
  3.  前記複数のシミュレーションエンジンの少なくともサブセットは、同一のシミュレーションエンジンのインスタンスである請求項1に記載の方法。
  4.  前記複数のシミュレーションエンジンのうちの前記1つ以上の前記I/F通信アクティビティレコードの前記格納は、前記協調シミュレーション中にバックグラウンドにおいて実行されるソフトウェアアプリケーションによって実行され、
     再現のために、前記ソフトウェアアプリケーションは、前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからの前記I/F通信アクティビティレコードを前記シミュレーションエンジンリピータに供給する請求項1に記載の方法。
  5.  前記複数のシミュレーションエンジンのうちの前記1つ以上の前記I/F通信アクティビティの前記格納は、前記複数のシミュレーションエンジンのうちの対応する1つ以上によって実行される請求項1に記載の方法。
  6.  前記複数のシミュレーションエンジンのうちの前記1つ以上は、専用のハードウェアシステムに接続されたI/Fバスによって相互接続され、前記専用のハードウェアシステムは前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上に対応する前記I/F通信アクティビティレコードの前記格納を実行するように構成され、
     再現のため、前記専用のハードウェアシステムは、前記複数のシミュレーションエンジンの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからの前記I/F通信アクティビティレコードを前記シミュレーションエンジンリピータに供給する請求項1に記載の方法。
  7.  複数のソフトウェアアプリケーションの協調実行中にインタフェース(I/F)を介して別のソフトウェアアプリケーションと通信する複数のソフトウェアアプリケーションのI/F通信アクティビティレコードを格納し、
     後続の協調再実行のために、前記複数のソフトウェアアプリケーションのうちの1つ以上をソフトウェアアプリケーションリピータと置き換えることを含む方法であって、前記ソフトウェアアプリケーションリピータは前記後続の協調再実行中に前記複数のソフトウェアアプリケーションの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成される方法。
  8.  前記協調実行は、前記複数のソフトウェアアプリケーションのそれぞれに対するソフトウェアライセンスを取得することを含み、
     前記後続の協調再実行は、前記複数のソフトウェアアプリケーションの前記置き換えられた1つ以上以外の前記複数のソフトウェアアプリケーションのそれぞれに対するソフトウェアライセンスを取得することを含む請求項7に記載の方法。
  9.  前記複数のソフトウェアアプリケーションの少なくともサブセットは同一のソフトウェアアプリケーションのインスタンスである請求項7に記載の方法。
  10.  前記複数のソフトウェアアプリケーションのうちの前記1つ以上の前記I/F通信アクティビティレコードの前記格納は、前記協調シミュレーション中にバックグラウンドにおいて実行される別のソフトウェアアプリケーションによって実行され、
     再現のために、前記別のソフトウェアアプリケーションは、前記複数のソフトウェアアプリケーションのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからの前記I/F通信アクティビティレコードを前記ソフトウェアアプリケーションリピータに供給する請求項7に記載の方法。
  11.  前記複数のソフトウェアアプリケーションのうちの前記1つ以上の前記I/F通信アクティビティの前記格納は、前記複数のソフトウェアアプリケーションの対応する1つ以上によって実行される請求項7に記載の方法。
  12.  前記複数のソフトウェアアプリケーションのうちの前記1つ以上は、専用のハードウェアシステムに接続されるI/Fバスによって相互接続され、前記専用のハードウェアシステムは、前記複数のソフトウェアアプリケーションの前記置き換えられた1つ以上に対応する前記I/F通信アクティビティレコードの前記格納を実行するように構成され、
     再現のために、前記専用のハードウェアシステムは、前記複数のソフトウェアアプリケーションのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからの前記I/F通信アクティビティレコードを前記ソフトウェアアプリケーションリピータに供給する請求項7に記載の方法。
  13.  複数のシミュレーションエンジンが関わる協調シミュレーションの実行中に前記複数のシミュレーションエンジンのインタフェース(I/F)通信アクティビティレコードを格納し、前記通信アクティビティレコードは複数のタイムスタンプと関連付けられ、
     前記複数のタイムスタンプのサブセットにおいて前記複数のシミュレーションエンジンのうちの1つ以上をシミュレーションエンジンリピータと置き換えることを表わす前記協調シミュレーションの後続の再実行のために、前記複数のシミュレーションエンジンの前記1つ以上を前記シミュレーションエンジンリピータと置き換え、前記シミュレーションエンジンリピータは、前記複数のタイムスタンプの前記サブセットによって表わされる時間における前記協調シミュレーションの前記後続の再実行中に前記複数のシミュレーションエンジンの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからI/F通信アクティビティを再現するように構成され、
     前記協調シミュレーションの前記後続の再実行中の前記複数のタイムスタンプの前記サブセット以外の別の時間において前記複数のシミュレーションエンジンのうちの1つ以上を実行する方法。
  14.  前記協調シミュレーションの前記実行は、前記複数のシミュレーションエンジンのそれぞれに対するシミュレーションライセンスを取得することを含み、
     前記協調シミュレーションの前記後続の再実行は、前記複数のタイムスタンプの前記サブセットによって表わされる時間における前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上以外の複数のシミュレーションエンジンのそれぞれに対する前記シミュレーションライセンスを取得することを含む請求項13に記載の方法。
  15.  前記複数のシミュレーションエンジンの少なくともサブセットは同一のシミュレーションエンジンのインスタンスである請求項13に記載の方法。
  16.  前記複数のシミュレーションエンジンのうちの前記1つ以上の前記I/F通信アクティビティレコードの前記格納は、前記協調シミュレーション中にバックグラウンドにおいて実行されるソフトウェアアプリケーションによって実行され、
     再現のために、前記複数のタイムスタンプの前記サブセットによって表わされる時間において、前記ソフトウェアアプリケーションは前記複数のシミュレーションエンジンの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからの前記I/F通信アクティビティレコードを前記シミュレーションエンジンリピータに供給する請求項13に記載の方法。
  17.  前記複数のシミュレーションエンジンのうちの前記1つ以上の前記I/F通信アクティビティの前記格納は、前記複数のシミュレーションエンジンのうちの対応する1つ以上によって実行される請求項13に記載の方法。
  18.  前記複数のシミュレーションエンジンのうちの前記1つ以上は専用のハードウェアシステムに接続されるI/Fバスによって相互接続され、前記専用のハードウェアシステムは前記複数のシミュレーションエンジンの前記置き換えられた1つ以上に対応する前記I/F通信アクティビティレコードの前記格納を実行するように構成され、
     再現のため、前記複数のタイムスタンプの前記サブセットによって表わされる時間において、前記専用のハードウェアシステムは、前記複数のシミュレーションエンジンのうちの前記置き換えられた1つ以上に対応する前記格納されたI/F通信アクティビティレコードからの前記I/F通信アクティビティレコードを前記シミュレーションエンジンリピータに供給する請求項13に記載の方法。
PCT/JP2019/051344 2018-12-27 2019-12-26 以前のトレースデータを使用する協調シミュレーションリピータ Ceased WO2020138386A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/234,205 US11275875B2 (en) 2018-12-27 2018-12-27 Co-simulation repeater with former trace data
US16/234,205 2018-12-27

Publications (1)

Publication Number Publication Date
WO2020138386A1 true WO2020138386A1 (ja) 2020-07-02

Family

ID=71122113

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/051344 Ceased WO2020138386A1 (ja) 2018-12-27 2019-12-26 以前のトレースデータを使用する協調シミュレーションリピータ

Country Status (2)

Country Link
US (1) US11275875B2 (ja)
WO (1) WO2020138386A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734475B2 (en) 2021-05-17 2023-08-22 Hitachi, Ltd. Performance measurement methodology for co-simulation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0973425A (ja) * 1995-09-04 1997-03-18 Mitsubishi Electric Corp クライアントシミュレータ
JP2000268005A (ja) * 1999-03-15 2000-09-29 Mitsubishi Electric Corp 並列分散シミュレーションシステム及び並列分散シミュレーション方法
JP2012164038A (ja) * 2011-02-04 2012-08-30 Elpida Memory Inc ライセンス管理装置、ライセンス管理方法およびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263302B1 (en) * 1999-10-29 2001-07-17 Vast Systems Technology Corporation Hardware and software co-simulation including simulating the cache of a target processor
US8543367B1 (en) * 2006-02-16 2013-09-24 Synopsys, Inc. Simulation with dynamic run-time accuracy adjustment
WO2017072828A1 (ja) 2015-10-26 2017-05-04 株式会社日立製作所 デバッグを支援する方法及び計算機システム
US20190278698A1 (en) * 2018-03-07 2019-09-12 RightHook, Inc. Autonomous Vehicle Simulation And Testing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0973425A (ja) * 1995-09-04 1997-03-18 Mitsubishi Electric Corp クライアントシミュレータ
JP2000268005A (ja) * 1999-03-15 2000-09-29 Mitsubishi Electric Corp 並列分散シミュレーションシステム及び並列分散シミュレーション方法
JP2012164038A (ja) * 2011-02-04 2012-08-30 Elpida Memory Inc ライセンス管理装置、ライセンス管理方法およびプログラム

Also Published As

Publication number Publication date
US20200210536A1 (en) 2020-07-02
US11275875B2 (en) 2022-03-15

Similar Documents

Publication Publication Date Title
CN113312879B (zh) 芯片电路功能验证系统、方法、设备及存储介质
CN110083543B (zh) 回归测试方法、装置、电子设备及存储介质
US10180850B1 (en) Emulating applications that use hardware acceleration
CN107733985B (zh) 一种云计算系统功能组件部署方法及装置
EP2738675B1 (en) System and method for efficient resource management of a signal flow programmed digital signal processor code
CN114328045B (zh) 一种bmc的i2c调试方法、系统、装置及计算机可读存储介质
US10387584B1 (en) Streaming on hardware-software platforms in model based designs
CN117112447B (zh) 一种数据传输方法、装置、电子设备及可读存储介质
CN112764981A (zh) 一种协同测试系统及方法
US7490032B1 (en) Framework for hardware co-simulation by on-demand invocations from a block model diagram design environment
CN113792522A (zh) 仿真验证方法、装置及计算设备
US10664637B2 (en) Testbench restoration based on capture and replay
CN103440133A (zh) 一种芯片测试软件的开发方法和系统
US11275875B2 (en) Co-simulation repeater with former trace data
CN112882921B (zh) 故障模拟方法和装置
CN111950219B (zh) 用于实现模拟器的方法、装置、设备以及介质
US20220366098A1 (en) Performance measurement methodology for co-simulation
CN111831539B (zh) 一种测试方法及相关产品
CN116627496B (zh) 基于uvm的寄存器模型构建、验证方法、系统与电子设备
US11151294B1 (en) Emulated register access in hybrid emulation
US12591725B2 (en) Automated synthesis of virtual system-on-chip environments
US11719749B1 (en) Method and system for saving and restoring of initialization actions on dut and corresponding test environment
RU2729210C1 (ru) Комплекс тестирования программного обеспечения электронных устройств
US10949592B1 (en) Co-simulation execution platform
CN117933155B (zh) 一种多进程联合仿真系统及方法、电子设备和存储介质

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: 19905993

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19905993

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP