https://ru.wikipedia.org/wiki/Motorola_6809 - говорят лучшая 8 битка. значительно лучше чем 6502. в теме никто под неё не пробовал pi подсчитать.
https://ru.wikipedia.org/wiki/Motorola_6809 - говорят лучшая 8 битка. значительно лучше чем 6502. в теме никто под неё не пробовал pi подсчитать.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну и ну! Надо загрузить эту программку в Амстрад и подозреваю, что Амстрад станет чемпионом опять.Что-то вы с делением сделали фантастическое, даже прежняя процедура DIV32 была лучшим такого рода алгоритмом во всей сети! Даже удивительно, просматривал все (?) архивы z80 - там лучшего нет.
Хотелось бы, но железо с 6809 какое-то больно экзотическое и редкое: Драконы, цветные Тэнди...
Улучшил оформление программ для PDP-11 (БК, ДВК, ...), добавил поддержку аппаратных деления и умножения. На диске программы с буквой М с умножением - 11М может обгонит и Спектрум и Вектор. Уважаемый perestoronin, надеюсь что вы сможете найти способ их и/или подобные протестировать. Программа с буквой T для 11M считает время по таймеру, а не видеопрерыванию - может это будет полезно для авторов эмуляторов. В исходниках программа и для RT-11 (ДВК, БК0011М, ...) с опциональной поддержкой как умножения, так и деления - кто бы протестировал? Интересны ДВК-3, а эмулятора нет.
pi-pdp11.zip (исправлен файл для RT-11)
Последний раз редактировалось litwr; 05.12.2015 в 11:39.
Эту в амстрад не получится, здесь используется команда rdel. Но несомненно амстрад обгонит вектор, против z80 с большей частотой не попрешь.
Думаю просто никто особо не занимался оптимизацией 32 битных операций с целыми для 8080 и z80 ввиду неактуальности. Любая из двух вышеприведенных процедур для вектора будет быстрее исходного амстрадовского варианта. Но и под z80 можно оптимизировать. Возможно спектрумисты уже оптимизировали, просто надо найти их вариант.
Это для ВМ1Г? vslav сейчас делает потактовый клон БК на FPGA с разными процами, надо будет с ним поговорить. Но, мне кааца, он говорил по итогам реверса кристаллов, что аппаратное умножение/деление в ВМ1Г весьма формальное и заметного выигрыша скорее всего не даёт. Там же можно проверить вычисление на ВМ1 на 100 Мгц ;-)
"Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.
Очень вам благодарен, лет 20 что-то такое хотел узнать. А ещё бы сравнить выгоду от аппаратных деления и умножения.Чтобы использовать только программные надо поставить HMUL=HDIV=0. На PDP-11 эти операции только знаковые и перевод, особенно деления, в беззнаковый формат непрост. Поэтому выгода от аппаратных операций наверное не слишком большая.
Что ждать уважаемого vslav'a - может в этой теме быстрее накопаем?
Почтим уверен, что у всех - менее процента - там печать один раз после большого цикла. А вот в долях процента может быть разница раз в 10, которая ни на что в итоге не влияет.
Противоречие
Последний раз редактировалось litwr; 05.12.2015 в 14:03.
При выполнении pi32 6128 быстрее корвета, корвет быстрее вектора. В чем противоречие?
- - - Добавлено - - -
У самых медленных векторовских версий cp/m 100 символов будет печатать 0.3 секунды! Это значительно больше 1% для 100 цифр. Для тысячи цифр, конечно, это пустяк
А система какая?
Странно, что выигрыш от деления так мал - менее двух раз - получается на ВМ2 медленное деление - оптимизированным программным можно обогнать. На ВМ2 отделять деление от умножения смысла нет. Лучше дать данные с EIS и без (как с microPDP-11/83). А возможно, что J11 медленнее из-за задержек памяти?
Давно известно, что простого способа перевести знаковое деление в беззнаковое нет. Поэтому у Интел их два. И, конечно, энергичный оптимизатор всегда может пару процентов отжать.
Должен быть результат. Если его нет, то это не программа, а восточная медитация пусть и с высочайшим непостижимым смыслом.Кого не устраивает скорость вывода пусть оптимизируют, отключают экран на время счета и т.п. Но π нужно показать - иначе будет история про то, не знаю что.
Кроме того, точность эмуляторов редких компьютеров под большим вопросом. 10-40% тут разброса более чем вероятны. Также настораживает непроверяемость данных по 8085 - массовых компьютеров с таким процессором не было и соответственно результаты эмуляции тут очень условны. Кажется, что ответственные за результаты программисты в таких случаях должны хотя бы раз найти возможность сверить полученные данные с реальным железом.
А кто против? Только получается как про двух или даже трёх непойманных зайцев: поиск лучшего алгоритма, исследование быстродействия компьютерных архитектур, поиск лучшего оптимизатора.Но и с лучшим алгоритмом в два раза более быстрое деление даст в два раза лучший результат.
Для z80 можно взять за основу код для Амстрада. Подставьте туда правильный вызов своей систем для печати знака и уберите (это самое простое) таймерные коды. Если сообщите адрес процедуры печать и ее параметр, а также адрес загрузки, то могу собрать бинарник, который можете поместить куда угодно. Для ВМ1 (БК) есть загрузочный диск, могу сделать bin-файл для загрузки с кассеты, но только для 0010 - для 0011 что-то не так системными вызовами. Даже подозреваю, что ПЗУ 11М по базовым вызовам неработоспособно.![]()
Никакой, bare metall. Процессор на модуле, подключенный к отладочной FPGA-плате DE0.
Реальный 1801ВМ2, 10МГц внешней частоты, измерение времени через 50Гц таймер, вывод на терминал асинхронный, по прерываниям (то есть вывод знаков почти не влияет на время)
EIS On (HMUL=1, HDIV=1):
1000 знаков 52,92 сек
100 знаков 0,58 сек
EIS Off (HMUL=0, HDIV=0):
1000 знаков 152,8 сек
100 знаков 1,50 сек
Может быть из-за памяти, можеть быть там частота не 18МГц, может быть и не "честных" 18МГц, а с растягиванием циклов как у F11. Смотреть на конкретную машину надо.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)