TIMER: Run simulator pre-calibration for a minimum of 100ms
Faster host systems today can get very fast instruction execution rates for a short duration calibration test. These may be skewed by round off error, so we now run the calibration for a minimum of 100ms.
This commit is contained in:
parent
03a79b1205
commit
8233fdc3c1
2 changed files with 5 additions and 2 deletions
|
@ -3459,8 +3459,10 @@ sim_switches = saved_switches;
|
|||
sim_cancel (&SIM_INTERNAL_UNIT);
|
||||
sim_activate (&precalib_unit, sim_precalibrate_ips);
|
||||
start = sim_os_msec();
|
||||
sim_instr();
|
||||
end = sim_os_msec();
|
||||
do {
|
||||
sim_instr();
|
||||
end = sim_os_msec();
|
||||
} while ((end - start) < SIM_PRE_CALIBRATE_MIN_MS);
|
||||
sim_precalibrate_ips = (int32)(1000.0 * (sim_precalibrate_ips / (double)(end - start)));
|
||||
|
||||
for (tmr=0; tmr<=SIM_NTIMERS; tmr++) {
|
||||
|
|
|
@ -78,6 +78,7 @@ int clock_gettime(int clock_id, struct timespec *tp);
|
|||
|
||||
#define SIM_INITIAL_IPS 5000000 /* uncalibrated assumption */
|
||||
/* about instructions per second */
|
||||
#define SIM_PRE_CALIBRATE_MIN_MS 100 /* minimum time to run precalibration activities */
|
||||
|
||||
#define SIM_IDLE_CAL 10 /* ms to calibrate */
|
||||
#define SIM_IDLE_STMIN 2 /* min sec for stability */
|
||||
|
|
Loading…
Add table
Reference in a new issue