Я про этот спрашивал: ".run hx7:pieis"
Хочу посмотреть оптимизации, возможно добавить в свои тесты.
Ага, таки ВМ2 быстрее немножко :)
Почему 2011 с EIS лучше -- тоже понятно, аппаратный умножитель.
М6 оказалась тоже рабочей. Инфа по скорострельности (неформальная, просто для понимания уровня):
Код:000001
@10000/057777 12706
010002/136667 10000
010004/075445 12746
.......
010126/040000 4715
010130/110400 5007
@10000G
HX 2.2 RT-11 Cold boot..
HX DSK/TTY multiplexer v3.3 2016
RT-11SB (S) V05.07
.R MSCPCK
.RUN HX7:SPEED3
Тест быстродействия (кэш, если он есть, выключен)
R1+R0 classic 556 915 оп./сек
R0(23456.)+R0(12345.) empty 174 292 оп./сек
R1(23456.)+R0(12345.) 132 441 оп./сек -> 551 561 оп./сек
R1+@R0 classic 314 020 оп./сек
R1(23456.)+@R0(M-12345.) empty 174 299 оп./сек
R1(23456.)+@R0(M-12345.) 111 624 оп./сек -> 310 426 оп./сек
R0*R0 classic 34 473 оп./сек
11.*12. empty 174 342 оп./сек
11.*12. 28 754 оп./сек -> 34 432 оп./сек
R2/R0 classic 125 627 оп./сек
R2-R3(34567.)/R1(321.) empty 132 876 оп./сек
R2-R3(34567.)/R1(321.) 17 813 оп./сек -> 20 570 оп./сек
34567./321. (FPU) empty 16 241 оп./сек
34567./321. (FPU) 2 796 оп./сек -> 3 377 оп./сек
34567.89022+32109.754321 empty 25 434 оп./сек
34567.89022+32109.754321 8 889 оп./сек -> 13 664 оп./сек
34567.89022*32109.754321 empty 25 434 оп./сек
34567.89022*32109.754321 3 096 оп./сек -> 3 525 оп./сек
34567.89022/32109.754321 empty 25 429 оп./сек
34567.89022/32109.754321 3 405 оп./сек -> 3 931 оп./сек
CIS MULPI 1 - команда не реализована
CIS MULP 1 empty - команда не реализована
CIS MULP 1 - команда не реализована
CIS MULPI 2 - команда не реализована
CIS MULP 2 empty - команда не реализована
CIS MULP 2 - команда не реализована
CIS ADDNI 1 - команда не реализована
CIS ADDN 1 empty - команда не реализована
CIS ADDN 1 - команда не реализована
CIS ADDNI 2 - команда не реализована
CIS ADDN 2 empty - команда не реализована
CIS ADDN 2 - команда не реализована
MOV 8 word 1 empty 116 032 оп./сек
MOV 8 word 1 13 829 оп./сек -> 15 700 оп./сек
MOV 8 word 2 empty 116 223 оп./сек
MOV 8 word 2 16 321 оп./сек -> 18 987 оп./сек
CIS MOVCI 8 word 1 - команда не реализована
CIS MOVC 8 word 2 empty - команда не реализована
CIS MOVC 8 word 2 - команда не реализована
#4+R0(2000) empty 348 089 оп./сек
#4+R0(2000) 174 346 оп./сек -> 349 297 оп./сек
CMP (R0)+,(R0)+ empty 348 688 оп./сек
CMP (R0)+,(R0)+ 133 948 оп./сек -> 217 500 оп./сек
#2+R0(2000) empty 348 657 оп./сек
#2+R0(2000) 174 336 оп./сек -> 348 687 оп./сек
INC R0 INC R0 empty 348 629 оп./сек
INC R0 INC R0 154 485 оп./сек -> 277 412 оп./сек
TST (R0)+ empty 348 626 оп./сек
TST (R0)+ 155 312 оп./сек -> 280 092 оп./сек
.
Ещё немного инфы по быстродействию - теперь памяти в разных вариантах. В качестве подопытного кролика выступает одна и та же процессорная плата KDJ11-B
Занимательно, что не PMI память оказалась чуть быстрее, чем PMI, хотя на ней на чипах памяти стоит пометка - -15, а на PMI - -10. Возможно, PMI-ную можно подстегнуть, подсказав про быстродействие чипов (все в панельках - я поменял после покупки) - есть ещё некоторое количество перемычек, назначение которые не знаю...Код:Не PMI память PMI память, не правильно подключена, PMI память, подключена правильно
.RUN HX7:SPEED3 .RUN HX7:SPEED3 .RUN HX7:SPEED3
Тест быстродействия (кэш, если он есть, выключен) Тест быстродействия (кэш, если он есть, выключен) Тест быстродействия (кэш, если он есть, выключен)
R1+R0 classic 920 149 R1+R0 classic 883 626 R1+R0 classic 1 162 012
R0(23456.)+R0(12345.) empty 229 522 R0(23456.)+R0(12345.) empty 220 905 R0(23456.)+R0(12345.) empty 291 051
R1(23456.)+R0(12345.) 183 619 -> 918 123 R1(23456.)+R0(12345.) 176 724 -> 883 620 R1(23456.)+R0(12345.) 232 840 -> 1 164 184
R1+@R0 classic 423 098 R1+@R0 classic 388 259 R1+@R0 classic 425 328
R1(23456.)+@R0(M-12345.) empty 229 519 R1(23456.)+@R0(M-12345.) empty 220 904 R1(23456.)+@R0(M-12345.) empty 291 063
R1(23456.)+@R0(M-12345.) 147 043 -> 409 199 R1(23456.)+@R0(M-12345.) 140 753 -> 387 929 R1(23456.)+@R0(M-12345.) 172 399 -> 422 865
R0*R0 classic 219 411 R0*R0 classic 216 607 R0*R0 classic 230 187
11.*12. empty 229 527 11.*12. empty 220 904 11.*12. empty 291 065
11.*12. 110 334 -> 212 467 11.*12. 108 614 -> 213 672 11.*12. 126 994 -> 225 289
R2/R0 classic 567 168 R2/R0 classic 565 061 R2/R0 classic 664 781
R2-R3(34567.)/R1(321.) empty 183 620 R2-R3(34567.)/R1(321.) empty 176 723 R2-R3(34567.)/R1(321.) empty 232 840
R2-R3(34567.)/R1(321.) 82 714 -> 150 515 R2-R3(34567.)/R1(321.) 81 106 -> 149 903 R2-R3(34567.)/R1(321.) 93 308 -> 155 705
34567./321. (FPU) empty 90 287 34567./321. (FPU) empty 86 880 34567./321. (FPU) empty 99 345
34567./321. (FPU) 74 060 -> 412 069 34567./321. (FPU) 72 798 -> 449 132 34567./321. (FPU) 82 274 -> 478 795
34567.89022+32109.754321 empty 61 537 34567.89022+32109.754321 empty 59 818 34567.89022+32109.754321 empty 70 428
34567.89022+32109.754321 56 564 -> 699 935 34567.89022+32109.754321 54 397 -> 600 243 34567.89022+32109.754321 63 540 -> 649 679
34567.89022*32109.754321 empty 61 540 34567.89022*32109.754321 empty 59 818 34567.89022*32109.754321 empty 70 989
34567.89022*32109.754321 56 556 -> 698 325 34567.89022*32109.754321 54 397 -> 600 243 34567.89022*32109.754321 63 579 -> 609 097
34567.89022/32109.754321 empty 61 531 34567.89022/32109.754321 empty 59 831 34567.89022/32109.754321 empty 70 980
34567.89022/32109.754321 56 560 -> 700 099 34567.89022/32109.754321 54 398 -> 599 058 34567.89022/32109.754321 63 614 -> 612 995
MOV 8 word 1 empty 153 550 MOV 8 word 1 empty 147 455 MOV 8 word 1 empty 194 289
MOV 8 word 1 17 422 -> 19 651 MOV 8 word 1 16 780 -> 18 934 MOV 8 word 1 20 425 -> 22 824
MOV 8 word 2 empty 153 013 MOV 8 word 2 empty 147 270 MOV 8 word 2 empty 194 045
MOV 8 word 2 21 646 -> 25 212 MOV 8 word 2 20 349 -> 23 611 MOV 8 word 2 24 020 -> 27 413
R1 := M(word) 291 083 R1 := M(word) 271 564 R1 := M(word) 319 578
R1 := M(even byte) 290 730 R1 := M(even byte) 272 249 R1 := M(even byte) 318 144
R1 := M(odd byte) 290 741 R1 := M(odd byte) 272 249 R1 := M(odd byte) 318 197
#4+R0(2000) empty 460 051 #4+R0(2000) empty 441 811 #4+R0(2000) empty 582 163
#4+R0(2000) 229 521 -> 458 037 #4+R0(2000) 220 905 -> 441 809 #4+R0(2000) 291 073 -> 582 129
CMP (R0)+,(R0)+ empty 459 064 CMP (R0)+,(R0)+ empty 441 812 CMP (R0)+,(R0)+ empty 582 160
CMP (R0)+,(R0)+ 168 517 -> 266 256 CMP (R0)+,(R0)+ 160 357 -> 251 719 CMP (R0)+,(R0)+ 192 612 -> 287 848
#2+R0(2000) empty 460 019 #2+R0(2000) empty 441 811 #2+R0(2000) empty 582 164
#2+R0(2000) 230 001 -> 459 985 #2+R0(2000) 220 905 -> 441 809 #2+R0(2000) 291 069 -> 582 112
INC R0 INC R0 empty 460 063 INC R0 INC R0 empty 441 812 INC R0 INC R0 empty 582 157
INC R0 INC R0 229 523 -> 458 033 INC R0 INC R0 220 905 -> 441 808 INC R0 INC R0 291 073 -> 582 135
TST (R0)+ empty 459 055 TST (R0)+ empty 441 811 TST (R0)+ empty 582 161
TST (R0)+ 220 591 -> 424 648 TST (R0)+ 206 660 -> 388 280 TST (R0)+ 247 104 -> 429 342
CLR R0 - SOB R0, . empty 920 080 CLR R0 - SOB R0, . empty 883 626 CLR R0 - SOB R0, . empty 1 164 319
CLR R0 - SOB R0, . 5 -> 5 CLR R0 - SOB R0, . 5 -> 5 CLR R0 - SOB R0, . 7 -> 7
Захотелось мне тут, как обычно, странного :)
Взял я KDJ11-A (если точнее - M8192YB) и поменял кварц с штатного 15.206 на 24. Ну и J11 воткнул тот, который заводится на этой частоте.
К некоторому удивлению (хоть и небольшому), плата запустилась.
Прогнал тесты SPEED3 (без кэш памяти) и SPEED4 (с кэш памятью). До и после смены кварца.
Когда увидел результаты SPEED3 после смена кварца - аж засомневался - а тот ли я кварц впаял. С воткнутой в бэкплейн платой кварца не видно (память загораживает), поэтому проверку отложил до прогона и SPEED4, но SPEED4 показал - однозначно 24. Чуть позже выложу результаты, пока ещё SPEED4 идёт.
- - - Добавлено - - -
Результаты (стенд один в один, менялся только кварц и процессор) (emp - empty - для расчёта накладных расходов), всё в оп/с
Код:15.206, no cache 24, no cache 15.206, cache 24, cache
R0(23456.)+R0(12345.) emp. 154 284 172 457 926 354 1 457 892
R1(23456.)+R0(12345.) 123 428> 617 156 137 556> 679 708 744 540> 3 793 479 1 172 443> 5 988 093
R1(23456.)+@R0(M-12345.) emp. 154 284 172 457 926 353 1 457 884
R1(23456.)+@R0(M-12345.) 98 286> 270 794 110 776> 309 724 534 663> 1 264 486 842 556> 1 996 250
11.*12. emp. 154 284 172 457 926 353 1 457 887
11.*12. 73 243> 139 438 92 650> 200 209 145 371> 172 430 229 379> 272 207
R2-R3(34567.)/R1(321.) emp. 123 428 137 556 744 541 1 172 444
R2-R3(34567.)/R1(321.) 54 234> 96 742 70 155> 143 176 97 005> 111 536 153 090> 176 081
34567./321. (FPU) emp. 25 837 35 865 36 433 57 506
34567./321. (FPU) 12 022> 22 483 17 709> 34 982 14 182> 23 221 22 413> 36 727
34567.89022+32109.754321 emp. 36 089 44 243 90 117 142 220
34567.89022+32109.754321 23 471> 67 129 30 817> 101 551 40 748> 74 380 64 315> 117 410
34567.89022*32109.754321 emp. 36 089 44 243 90 117 142 220
34567.89022*32109.754321 13 600> 21 824 19 225> 33 998 18 027> 22 534 28 478> 35 608
34567.89022/32109.754321 emp. 36 089 44 243 90 117 142 220
34567.89022/32109.754321 13 705> 22 096 19 757> 35 698 18 227> 22 848 28 764> 36 056
MOV 8 word 1 emp. 102 985 114 774 622 987 981 476
MOV 8 word 1 11 625> 13 104 13 560> 15 376 28 975> 30 388 39 649> 41 318
MOV 8 word 2 emp. 102 857 114 972 622 208 980 249
MOV 8 word 2 14 169> 16 432 16 489> 19 249 34 197> 36 185 45 694> 47 928
R1 := M(word) 189 641 215 838 927 510 1 459 711
R1 := M(even byte) 189 405 215 568 926 352 1 457 896
R1 := M(odd byte) 189 405 215 567 926 352 1 459 896
CLR R0 - SOB R0, . emp. 617 145 687 787 187 277 490 858
CLR R0 - SOB R0, . 3> 3 4> 4 11> 11 18> 18
Вспомнилось :)
Если я правильно помню, результаты для ВМ2 на 100 МГц
Новые мои результаты (точно на 100 МГц) :)
- - - Добавлено - - -Код:.RU PIEIS
number pi calculator v5 (EIS)
number of digits (up to 6548)? 1000
31415926535897932384626433832795028841971693993751058209749445923078164062862089
.....................
2171226806613001927876611195909216420198 1.24
.RUN PINEIS
number pi calculator v5 (no EIS)
number of digits (up to 6464)? 1000
31415926535897932384626433832795028841971693993751058209749445923078164062862089
.....................
2171226806613001927876611195909216420198 4.58
.
Ну, довёл я до 200 МГц, но только младшие процессора (нет ДП) - так что пока не готов проект перевести на постоянные 200 МГц :) Есть мысли по оптимизации и кое что уже и сделано и дало свой результат - 20 лимонов против 14 на самой быстрой команде (BR). Но на 100 МГц BR в пределе должна давать 50 лимонов - так что - есть куда стремиться :)
Дык, исходников нет, никак прокомментировать не могу. Надо смотреть что там написано.
Сама по себе частота не фокус, можно, например, с мультицикловыми констрейнами ВМ2 и на 500МГц переписать. Если б он от этого еще стал бы быстрее :)
И у тебя плата на 5-ом циклоне вроде же? Там развлекаться сильно проще - и ресурсов много, и быстрое, и ячейки 8-входовые.
Констрейнтами я так толком и не научился (по крайне мере пока) пользоваться, так что нет, без них
Частота одинаковая - причём здесь 5-ый циклон? ;)
- - - Добавлено - - -
Поскольку у меня этот проект в значительной степени экспериментальный и изменения происходят часто и может быть откат изменений и опять возврат к ним - даже через год - я не планирую пока их делать общедоступными :) Смысла не вижу :)
Что-то в упор не помню, гонял ли я свои SPEEDx на simh. А искать лень. Так что.. встречаем simh на Xeon E5680 3.33 ГГц
То есть... При частоте в почти 139 быстрее, чем мой J11 на 24 МГц его производительность выше только в 10.66 раз...Код:LSI 11 or PDP 11/03 Processor
56KB of memory
50 Hertz System Clock
No SYSGEN options enabled
.RUN SPEED0
Тест быстродействия (кэш, если он есть, выключен)
BR .+2 64 031 600 оп./сек
R0(23456.)+R0(12345.) empty 16 171 734 оп./сек
R1(23456.)+R0(12345.) 10 162 680 оп./сек -> 27 350 088 оп./сек
.