Мда... картина маслом...
Сначала преобразование в формат плавающей, спецкомандой...
Затем вычисления...
Потом обратное преобразование в формат целого...
Зато вычитал, что обмен логики с регистрами в FP-11 шёл по 32-битной шине...
Сама логика 60-бит.
Мда... картина маслом...
Сначала преобразование в формат плавающей, спецкомандой...
Затем вычисления...
Потом обратное преобразование в формат целого...
Зато вычитал, что обмен логики с регистрами в FP-11 шёл по 32-битной шине...
Сама логика 60-бит.
Надо было 64 бита...
И нормальную целочисленную арифметику...
Но экономили![]()
Ну по крайней мере теперь знаем что да как и к чему...
Да и прочие смогут прочитать![]()
Ну, с FPA повеселее
- - - Добавлено - - -Код:.run hx7:speed3 Тест быстродействия ........ R2-R3(34567.)/R1(321.) empty 586 505 оп./сек R2-R3(34567.)/R1(321.) 107 273 оп./сек -> 131 285 оп./сек 34567./321. (FPU) empty 206 932 оп./сек 34567./321. (FPU) 105 182 оп./сек -> 213 911 оп./сек ........
Добавил на первую страницу
Решил я тут устроить... хм... занимательное
- - - Добавлено - - -Код:Testing in progress - Please wait Memory Size is 4088 K Bytes 9 Step memory test Step 1 2 3 4 5 6 7 8 9 Message 04 Entering Dialog mode Commands are Help, Boot, List, Setup, Map and Test. Type a command then press the RETURN key: MAP 23.996 MHz Memory Map Starting Ending Size in CSR CSR Bus Address address K Bytes address type type 00000000 - 17757776 4088 17772102 Parity PMI Press the RETURN key when ready to continue Commands are Help, Boot, List, Setup, Map and Test. Type a command then press the RETURN key: BOO DU0 Trying DU0 Starting system from DU0 RT-11SB V05.07 .R MSCPCK .RUN HX7:SPEED4 Тест быстродействия R1+R0 classic 681 990 оп./сек R1(23456.)+R0(12345.) empty 1 471 491 оп./сек R1(23456.)+R0(12345.) 1 181 261 оп./сек -> 5 989 094 оп./сек R1+@R0 classic 312 411 оп./сек R1(23456.)+@R0(M-12345.) empty 1 471 491 оп./сек R1(23456.)+@R0(M-12345.) 847 099 оп./сек -> 1 996 339 оп./сек R0*R0 classic 271 363 оп./сек empty 11.*12. 1 471 491 оп./сек 11.*12. 229 727 оп./сек -> 272 226 оп./сек R2/R0 classic 1 181 261 оп./сек R2-R3(34567.)/R1(321.) empty 1 181 260 оп./сек R2-R3(34567.)/R1(321.) 152 805 оп./сек -> 175 508 оп./сек 34567.89022+32109.754321 empty 142 357 оп./сек 34567.89022+32109.754321 64 341 оп./сек -> 117 404 оп./сек 34567.89022*32109.754321 empty 142 357 оп./сек 34567.89022*32109.754321 28 495 оп./сек -> 35 626 оп./сек 34567.89022/32109.754321 empty 142 357 оп./сек 34567.89022/32109.754321 28 764 оп./сек -> 36 047 оп./сек MOV 8 word 1 empty 970 226 оп./сек MOV 8 word 1 56 909 оп./сек -> 60 455 оп./сек MOV 8 word 2 empty 969 032 оп./сек MOV 8 word 2 70 007 оп./сек -> 75 458 оп./сек .
Из трёх -09-ых два завелись на 24 МГц, один нет
-07-ой на 24 МГц не завёлся
- - - Добавлено - - -
Нет, ошибся, один из двух вроде стартует, но
- RSX не грузится вообще
- RT грузится, но при попытке в ней работать сыпет ошибками.
Итог - один проц стартует нормально на 24 МГц (паспортная 18 МГц), два других нормально работают на 20 МГц (паспортная 18 МГц)
Проц с паспортной 20 МГц нормально стартует и работает на 20 МГц
К сожалению, из кварцев у меня только 20 и 24, промежуточных (пока) нету. Есть ещё 25 МГц (не пробовал) и 27 МГц (ни один не стартовал)
Может, ещё попробую 25 МГц
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Немного поработал над работой 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 монитором
Последний раз редактировалось Hunta; 23.10.2020 в 13:32.
Со сложными командами Intel хлебнул лиха с iAPX-432, это был 1981 год.
Хотя, если бы они этот проект делали позже, то справились возможно.
Это был этап набивания шишек и приобретения опыта, благодаря чему они справились с 386
Насчёт низкой скорости VAX, вопрос интересный, мне сдаётся, что если бы VAX правильно впихнуть в FPGA мог бы получиться ещё тот зверя
У VAX преимущество в том, что там одной командой делаются то, что на других архитектурах требует нескольких инструкций. И в силу этого код получается компактнее.
тактовая PDP-11 на FPGFA до 100 МГц довели, при этом сильно есть куда работать по оптимизации. И сама используемая FPGA далеко не последнее слово ...
Это ты просто так сказал или есть конкретные мысли?
То что получилось по результатам реверса дожимать по скорости некуда.
Возможно, если переделать с нуля и сделать конвейер, частота поднимется, но сильно несильно,
16-битный сумматор, как ни крути, значительно не ускорить.
Cyclone V несильно впечатлил. Cyclone 10 и MAX10 хуже Cyclone-III. Ну можно покомпилировать для топовых Stratix-ов, но там чуда тоже ждать не приходится.
Я так понимаю, это он имел ввиду мои бодания с PDP2011. Если я с моим уровнем знаний смог поднять тактовую частоту от автора с 50 МГц до 100 МГц - думаю, запас поднятия ещё есть. Плюс ещё можно пободаться с внутренними операциями - там точно есть мысли по улучшению
Ну тем не менее, на моей игрушке скорость Cyclone вроде заявлена до 500 МГц
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)