===== 06 TIM CPU MULT DIV TIME | BIOS 19951204 System ROM Version 3.0 11/18/96 A BadVaddr as the group starts: 8001554A cpu/mult div timing (timer 2, system clock) nop 00000000 00000000: 553 cycles for 100 nop, 20 nops 00000000 00000000: 2573 cycles for 100 mult 00000000 00000003: 1151 cycles for 100 multu 00000000 00000003: 1148 cycles for 100 mult rt 00000003 00000000: 1151 cycles for 100 mult 00000001 00000003: 1148 cycles for 100 multu 00000001 00000003: 1148 cycles for 100 mult rt 00000003 00000001: 1148 cycles for 100 mult 000007FF 00000003: 1151 cycles for 100 multu 000007FF 00000003: 1150 cycles for 100 mult rt 00000003 000007FF: 1151 cycles for 100 mult 00000800 00000003: 1448 cycles for 100 multu 00000800 00000003: 1451 cycles for 100 mult rt 00000003 00000800: 1151 cycles for 100 mult 000FFFFF 00000003: 1448 cycles for 100 multu 000FFFFF 00000003: 1448 cycles for 100 mult rt 00000003 000FFFFF: 1148 cycles for 100 mult 00100000 00000003: 1848 cycles for 100 multu 00100000 00000003: 1848 cycles for 100 mult rt 00000003 00100000: 1148 cycles for 100 mult 7FFFFFFF 00000003: 1848 cycles for 100 multu 7FFFFFFF 00000003: 1848 cycles for 100 mult rt 00000003 7FFFFFFF: 1148 cycles for 100 mult FFFFFFFF 00000003: 1148 cycles for 100 multu FFFFFFFF 00000003: 1851 cycles for 100 mult rt 00000003 FFFFFFFF: 1151 cycles for 100 mult 80000000 00000003: 1848 cycles for 100 multu 80000000 00000003: 1848 cycles for 100 mult rt 00000003 80000000: 1151 cycles for 100 div 12345678 00000003: 4148 cycles for 100 divu 12345678 00000003: 4148 cycles for 100 div by 0 12345678 00000000: 4148 cycles for 100 mult, 20 nops 7FFFFFFF 00000003: 2573 cycles for 100 div, 20 nops 12345678 00000003: 4157 cycles for 100 mult 00100000 00000003 then n nops then mflo: mult, 0 nops, mflo: 1848 cycles for 100 mult, 1 nops, mflo: 1847 cycles for 100 mult, 2 nops, mflo: 1846 cycles for 100 mult, 3 nops, mflo: 1843 cycles for 100 mult, 4 nops, mflo: 1847 cycles for 100 mult, 5 nops, mflo: 1849 cycles for 100 mult, 6 nops, mflo: 1847 cycles for 100 mult, 7 nops, mflo: 1846 cycles for 100 mult, 8 nops, mflo: 1853 cycles for 100 mult, 9 nops, mflo: 1853 cycles for 100 mult, 10 nops, mflo: 1853 cycles for 100 mult, 11 nops, mflo: 1863 cycles for 100 mult, 12 nops, mflo: 1761 cycles for 100 mult, 13 nops, mflo: 1863 cycles for 100 mult, 14 nops, mflo: 1967 cycles for 100 div, 5 nops, mflo: 4142 cycles for 100 div, 10 nops, mflo: 4144 cycles for 100 div, 30 nops, mflo: 4190 cycles for 100 div, 33 nops, mflo: 4180 cycles for 100 div, 34 nops, mflo: 4180 cycles for 100 div, 35 nops, mflo: 4091 cycles for 100 div, 36 nops, mflo: 4192 cycles for 100 div, 37 nops, mflo: 4287 cycles for 100 what waits for a busy multiply (rs 00100000): mult then mfhi: 1841 cycles for 100 mult, no read: 442 cycles for 100 div, no read: 442 cycles for 100 mult then mtlo: 542 cycles for 100 mult then mthi: 542 cycles for 100 mult then mult then mflo: 1948 cycles for 100 mult then mtlo then mflo: 642 cycles for 100 loads, 100 turns of the load and a nop: RAM KSEG0 80025ADC lw: 955 cycles for 100 RAM KSEG1 A0025ADC lw: 946 cycles for 100 scratchpad 1F800100 lw: 541 cycles for 100 BIOS BFC00100 lw: 2937 cycles for 100 BIOS BFC00100 lh: 1737 cycles for 100 BIOS BFC00100 lb: 1143 cycles for 100 EXP1 1F000084 lb: 1119 cycles for 100 EXP2 1F802000 lb: 1519 cycles for 100 EXP3 1FA00000 lh: 1025 cycles for 100 EXP3 1FA00000 lb: 1037 cycles for 100 I_STAT 1F801070 lw: 740 cycles for 100 DPCR 1F8010F0 lw: 740 cycles for 100 timer 0 1F801100 lw: 740 cycles for 100 JOY_STAT 1F801044 lh: 733 cycles for 100 CDROM status 1F801800 lb: 1219 cycles for 100 GPUSTAT 1F801814 lw: 740 cycles for 100 MDEC status 1F801824 lw: 740 cycles for 100 SPUSTAT 1F801DAE lh: 2225 cycles for 100 SPU word 1F801DAC lw: 4237 cycles for 100 cache control FFFE0130 lw: 541 cycles for 100 RAM lw, used at once: 956 cycles for 100 RAM lw, used after 1 nop: 1260 cycles for 100 RAM lw, used after 2 nops: 1363 cycles for 100 RAM lw, used after 3 nops: 1363 cycles for 100 RAM lw then lw: 1472 cycles for 100 BIOS lw, used at once: 2922 cycles for 100 BIOS lw, used after 3 nops: 3327 cycles for 100 stores, 100 turns of n stores: RAM, 1 sw: 453 cycles for 100 RAM, 2 sw: 571 cycles for 100 RAM, 3 sw: 686 cycles for 100 RAM, 4 sw: 901 cycles for 100 RAM, 5 sw: 1098 cycles for 100 RAM, 6 sw: 1310 cycles for 100 RAM, 7 sw: 1529 cycles for 100 RAM, 8 sw: 1740 cycles for 100 RAM, 4 sw then lw: 2105 cycles for 100 RAM, sw then lw: 1474 cycles for 100 scratchpad, 1 sw: 447 cycles for 100 scratchpad, 8 sw: 1154 cycles for 100 I_MASK, 1 sw: 422 cycles for 100 I_MASK, 4 sw: 854 cycles for 100 I_MASK, sw then lw: 847 cycles for 100 a store, n instructions, then a load of its word: RAM sw, 1 nop, lw: 1472 cycles for 100 RAM sw, 2 nops, lw: 1488 cycles for 100 RAM sw, 3 nops, lw: 1483 cycles for 100 RAM sw, 4 nops, lw: 1495 cycles for 100 RAM sw, 6 nops, lw: 1575 cycles for 100 RAM sw, lw of another word: 1467 cycles for 100 RAM 4 sw, lw of another word: 2109 cycles for 100 chain-looping's loop: 1648 cycles for 100 RAM lw, used after 4 nops: 1361 cycles for 100 IO and BIOS loads used after the delay slot: I_STAT lw, used at once: 734 cycles for 100 I_STAT lw, used after 1 nop: 1043 cycles for 100 I_STAT lw, used after 2 nops: 1151 cycles for 100 I_STAT lw then lw: 1147 cycles for 100 BIOS lw, used after 1 nop: 3222 cycles for 100 BIOS lw, used after 2 nops: 3344 cycles for 100 BIOS lw then lw: 5423 cycles for 100 stores to other devices, each writing back what is there: GP0 NOP, 1 sw: 422 cycles for 100 GP0 NOP, 4 sw: 820 cycles for 100 CDROM index, 1 sb: 625 cycles for 100 CDROM index, 4 sb: 2420 cycles for 100 SPU main volume, 1 sh: 803 cycles for 100 SPU main volume, 4 sh: 3220 cycles for 100 scratchpad, 4 sw: 755 cycles for 100 RAM, 1 sh: 450 cycles for 100 RAM, 4 sh: 860 cycles for 100 RAM, 4 sb: 896 cycles for 100 card 5, the store-then-load curve with baselines: RAM sw, 5 nops, lw: 1486 cycles for 100 RAM sw, 7 nops, lw: 1665 cycles for 100 RAM sw, 8 nops, lw: 1765 cycles for 100 RAM 5 nops, lw (no store): 1254 cycles for 100 RAM 7 nops, lw (no store): 1456 cycles for 100 RAM 9 nops, lw (no store): 1664 cycles for 100 chain-looping's loop, the sw a nop: 1476 cycles for 100 I_STAT lw, used after 3 nops: 1145 cycles for 100 I_STAT lw, used after 4 nops: 1151 cycles for 100 SPU word lw then lw: 8247 cycles for 100 mthi and mtlo after a busy multiply (rs 00100000): mult, mthi, mfhi: 643 cycles for 100 mult, mthi, mflo: 643 cycles for 100 mult, mtlo, mfhi: 647 cycles for 100 code from uncached RAM (KSEG1): nop loop: 3110 cycles for 100 nop, 20 nops loop: 15298 cycles for 100 RAM lw loop: 3520 cycles for 100 Done.