Over at the SUPERCOP cryptography benchmarking project we're seeing some indications that the C2 running alarm may be actually running at 1.53GHz even though it thinks it's running at 2.0GHz. Two separately designed programs that experimentally determine clock speed both said 1.53GHz. Does anybody have an idea why this might be? Is it even possible? How could I verify or refute our suspicion?
Thanks,
Ted
$this->bbcode_second_pass_code('', '
=== Wed Aug 3 07:41:20 PDT 2016 === Trying cortex.c with gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv...
cortex 1535975592 1536096523 8 8 8 8 10 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
=== Wed Aug 3 07:41:23 PDT 2016 === Success. Using cortex.c.
...
=== Wed Aug 3 07:40:02 PDT 2016 === grep . /dev/null /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:performance
=== Wed Aug 3 07:40:02 PDT 2016 === grep . /dev/null /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed:<unsupported>
/sys/devices/system/cpu/cpu1/cpufreq/scaling_setspeed:<unsupported>
/sys/devices/system/cpu/cpu2/cpufreq/scaling_setspeed:<unsupported>
/sys/devices/system/cpu/cpu3/cpufreq/scaling_setspeed:<unsupported>
=== Wed Aug 3 07:40:02 PDT 2016 === grep . /dev/null /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq:2016000
/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq:2016000
/sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq:2016000
/sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq:2016000
')
All of the following guessed frequencies are neat fractions of 1.53GHz, but not of 2.0Ghz.
$this->bbcode_second_pass_code('', '
[krovetz@par3 tmp]$ ./measure -f 1536
0: fmul1d: 3067 MHz (1.000000 / cycle ; 3068.8)[1.997927 ?]
0: fmla1d: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: fmla1dSA: 1533 MHz (1.000000 / cycle ; 1534.4)[0.998963 ?]
0: fmla1ddep: 200 MHz (1.000000 / cycle ; 191.8)[0.124899 ?]
0: fmul2d: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: fmla2d: 1533 MHz (1.000000 / cycle ; 1534.4)[0.998963 ?]
0: fmla2dIL: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: fmla2dSA: 1533 MHz (1.000000 / cycle ; 1534.4)[0.998963 ?]
0: fmul1s: 3067 MHz (1.000000 / cycle ; 3068.8)[1.997927 ?]
0: fmla1s: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: fmul2s: 3067 MHz (1.000000 / cycle ; 3068.8)[1.997927 ?]
0: fmla2s: 3067 MHz (1.000000 / cycle ; 3068.8)[1.997927 ?]
0: fmul4s: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: fmla4s: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: ld12s: 1533 MHz (1.000000 / cycle ; 1533.6)[0.998416 ?]
0: ld14s: 767 MHz (1.000000 / cycle ; 767.1)[0.499436 ?]
0: ld22s: 767 MHz (1.000000 / cycle ; 767.1)[0.499413 ?]
0: ld24s: 400 MHz (1.000000 / cycle ; 383.6)[0.249758 ?]
0: ld42s: 400 MHz (1.000000 / cycle ; 383.6)[0.249758 ?]
0: ld44s: 200 MHz (1.000000 / cycle ; 191.8)[0.124886 ?]
0: st12s: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: st22s: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: xor8b: 3067 MHz (1.000000 / cycle ; 3068.8)[1.997927 ?]
0: xor16b: 1533 MHz (1.000000 / cycle ; 1534.4)[0.998963 ?]
0: xor16bdep: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: xor16badd4sdep: 1033 MHz (1.000000 / cycle ; 1023.4)[0.666301 ?]
0: add2s: 3067 MHz (1.000000 / cycle ; 3068.8)[1.997927 ?]
0: add4s: 1533 MHz (1.000000 / cycle ; 1534.4)[0.998963 ?]
0: add4sdep: 767 MHz (1.000000 / cycle ; 767.4)[0.499596 ?]
0: sri4s: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
0: sri4sdep: 767 MHz (1.000000 / cycle ; 767.3)[0.499573 ?]
0: trn1trn24s: 1533 MHz (1.000000 / cycle ; 1534.4)[0.998963 ?]
0: uzp1uzp24s: 1533 MHz (1.000000 / cycle ; 1534.3)[0.998872 ?]
[krovetz@par3 tmp]$
')