Немного поработал над работой SPEED3.
Теперь для кодовых блоков она забирает всю доступную память (а не полагается на какие то фиксированные значения). Плюсом - если в системе неожиданно меньше памяти, чем нужно кодовому блоку - система не портится.
Для систем с кэш памятью - теперь собирается два варианта программы (условные названия SPEED3 и SPEED4), первый из которых пытается выключить кэш, а второй - наоборот включить. По заголовку теперь понятней - какой вариант запущен. В будущем планирую их объединить, а вариант запуска - параметр в командной строке.
Поскольку возник вопрос о сравнении эффективности разных действий для достижения одной цели (типа - ADD #2, R0 или TST (R0)+ ) - были добавлены кодовые блоки. И вот тут на J11 с кэшем я получил результаты, которые поставили меня в тупик. Проще всего было бы списать на ошибку в программе, но - на других процессорах и на J11 без кэша - результаты получаются вполне логичные, так что... Пока думаю...
Код:SJ ZM .RUN HX7:SPEED3 .RUN HX7:SPEED3 Тест быстродействия (кэш, если он есть, выключен) (кэш, если он есть, выключен) R1+R0 classic оп./сек 1 162 062 1 161 645 R0(23456.)+R0(12345.) empty оп./сек 291 050 290 422 R1(23456.)+R0(12345.) оп./сек 232 838 -> 1 164 150 232 338 -> 1 161 698 R1+@R0 classic оп./сек 425 304 425 244 R1(23456.)+@R0(M-12345.) empty оп./сек 291 051 290 421 R1(23456.)+@R0(M-12345.) оп./сек 172 628 -> 424 271 172 576 -> 425 301 R0*R0 classic оп./сек 230 178 230 160 11.*12. empty оп./сек 291 055 290 424 11.*12. оп./сек 126 636 -> 224 171 126 611 -> 224 468 R2/R0 classic оп./сек 666 803 664 609 R2-R3(34567.)/R1(321.) empty оп./сек 232 839 232 333 R2-R3(34567.)/R1(321.) оп./сек 93 296 -> 155 672 93 284 -> 155 865 34567./321. (FPU) empty оп./сек 41 974 41 972 34567./321. (FPU) оп./сек 19 249 -> 35 553 19 248 -> 35 551 34567.89022+32109.754321 empty оп./сек 62 293 62 287 34567.89022+32109.754321 оп./сек 39 113 -> 105 110 39 111 -> 105 113 34567.89022*32109.754321 empty оп./сек 62 293 62 287 34567.89022*32109.754321 оп./сек 22 167 -> 34 412 22 166 -> 34 412 34567.89022/32109.754321 empty оп./сек 62 304 62 297 34567.89022/32109.754321 оп./сек 22 322 -> 34 784 22 322 -> 34 786 MOV 8 word 1 empty оп./сек 194 277 193 857 MOV 8 word 1 оп./сек 20 682 -> 23 146 20 425 -> 22 830 MOV 8 word 2 empty оп./сек 194 034 193 615 MOV 8 word 2 оп./сек 24 032 -> 27 429 24 031 -> 27 436 #4+R0(2000) empty оп./сек 582 833 581 579 #4+R0(2000) оп./сек 291 054 -> 581 384 290 425 -> 580 122 CMP (R0)+,(R0)+ empty оп./сек 582 119 580 862 CMP (R0)+,(R0)+ оп./сек 193 416 -> 289 658 192 695 -> 288 353 #2+R0(2000) empty оп./сек 582 119 580 866 #2+R0(2000) оп./сек 291 053 -> 582 093 290 424 -> 580 830 INC R0 INC R0 empty оп./сек 582 118 580 864 INC R0 INC R0 оп./сек 291 058 -> 582 114 290 427 -> 580 844 TST (R0)+ empty оп./сек 582 121 580 863 TST (R0)+ оп./сек 247 463 -> 430 449 246 680 -> 428 768- - - Добавлено - - -Код:SJ ZM .RUN HX7:SPEED4 .RUN HX7:SPEED4 Тест быстродействия (кэш, если он есть, включен) (кэш, если он есть, включен) R1+R0 classic оп./сек 643 031 643 032 R0(23456.)+R0(12345.) empty оп./сек 1 468 790 1 468 791 R1(23456.)+R0(12345.) оп./сек 1 179 516 -> 5 988 997 1 179 516 -> 5 988 981 R1+@R0 classic оп./сек 307 658 307 658 R1(23456.)+@R0(M-12345.) empty оп./сек 1 468 791 1 468 791 R1(23456.)+@R0(M-12345.) оп./сек 846 201 -> 1 996 325 846 202 -> 1 996 331 R0*R0 classic оп./сек 271 271 271 271 11.*12. empty оп./сек 1 468 790 1 468 791 11.*12. оп./сек 229 661 -> 272 226 229 661 -> 272 226 R2/R0 classic оп./сек 1 179 516 1 179 516 R2-R3(34567.)/R1(321.) empty оп./сек 1 179 516 1 179 516 R2-R3(34567.)/R1(321.) оп./сек 153 245 -> 176 127 153 245 -> 176 127 34567./321. (FPU) empty оп./сек 57 530 57 530 34567./321. (FPU) оп./сек 22 420 -> 36 736 22 420 -> 36 736 34567.89022+32109.754321 empty оп./сек 142 332 142 332 34567.89022+32109.754321 оп./сек 64 338 -> 117 411 64 338 -> 117 411 34567.89022*32109.754321 empty оп./сек 142 332 142 332 34567.89022*32109.754321 оп./сек 28 492 -> 35 623 28 492 -> 35 623 34567.89022/32109.754321 empty оп./сек 142 332 142 332 34567.89022/32109.754321 оп./сек 28 764 -> 36 049 28 764 -> 36 049 MOV 8 word 1 empty оп./сек 986 579 986 579 MOV 8 word 1 оп./сек 56 888 -> 60 368 56 888 -> 60 368 MOV 8 word 2 empty оп./сек 985 346 985 346 MOV 8 word 2 оп./сек 70 207 -> 75 593 70 207 -> 75 593 #4+R0(2000) empty оп./сек 1 247 939 1 247 940 #4+R0(2000) оп./сек 1 468 791 -> 0 1 468 791 -> 0 CMP (R0)+,(R0)+ empty оп./сек 1 244 391 1 244 391 CMP (R0)+,(R0)+ оп./сек 741 441 -> 1 834 461 741 441 -> 1 834 461 #2+R0(2000) empty оп./сек 1 244 391 1 244 391 #2+R0(2000) оп./сек 1 468 790 -> 0 1 468 791 -> 0 INC R0 INC R0 empty оп./сек 1 244 390 1 244 390 INC R0 INC R0 оп./сек 1 468 791 -> 0 1 468 791 -> 0 TST (R0)+ empty оп./сек 1 244 390 1 244 390 TST (R0)+ оп./сек 1 179 516 -> 22 625 056 1 179 516 -> 22 625 056
Добавил прогон под ZM монитором




Ответить с цитированием