Тут надо читать про spigot-алгоритм вычисления числа pi:
![]()
Тут надо читать про spigot-алгоритм вычисления числа pi:
![]()
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
А, тогда не совсем позиционная система исчисления (что предполагает фиксированное основание), а все-таки обычный ряд. Просто тут его вычисление удачно совместили с переводом в десятичную систему. А в массиве находятся не цифры, а обновляемые члены ряда.
Update: кстати, добавление нового члена ряда прикольно сделано, с отложенным переносом. Если новая полученная цифра не девятка, то переноса в предыдущую цифру не предполагается (неочевидно, как по мне - требует доказательства, но ладно), значит предыдущую цифру можно вывести. А если девятка - то копим число девяток подряд, вдруг произойдет перенос и его распространение.
Последний раз редактировалось Vslav; 09.11.2015 в 12:54.
Очередная и, надеюсь, последняя версия spigota - pirk20.zip
100 знаков - 19897238 тактов - 11.19 сек (это с расчетом таблицы!)
535 знаков - 551337754 тактов - 5 мин 10 сек
Обращаю внимание, что запускать нужно G4200
Можно еще чуть-чуть ускорить, если размещать таблицу для умножения с 0000h, но я не стал заниматься крохоборством.
Последний раз редактировалось ivagor; 09.11.2015 в 13:00. Причина: добавил такты
PVV по моей просьбе портировал этот код от уважаемого Ivagor-a на суперсовремённый югославский компьютер.
Хоть код и для 8080, но на Z80 работает аналогично, да и интересно было сравнить совершенно разные архитектуры на одном коде :-)
Как раз таки видно, насколько сильно тормозится более лучший Z80 с программной реализацией видео-контроллера( вернее отъедается производительности процессора на эту самую реализацию). Итак, результаты для 535 знаков:
1. PVV -2. на моем не-реале тот же тест - 8:35 в обычном режиме, и 4:18 - в Турбо х2 ( но и частота процессора немного выше - 3,125 МГц)8.45 время выполнения теста на моем реале. кварц 6.144, тактовая Z80
6.144/2
3. В эмуляторе от b2m - 8:44 - вполне сопоставимо.
16+
Все познаеЦЦа в сравнении. Мой текущий компьютер считает миллион знаков Pi за 14.437 секунды. На одном ядре разумеется.
[свернуть]
Дополнение.
100 знаков - 20с стандартно, и 6с с отключенными прерываниями и соответственно экраном.
и да, 535 знаков с отключенным экраном считается за 3 минуты, все же сильно видеовывод тормозит проц.
Последний раз редактировалось zebest; 21.02.2018 в 11:05.
Profi v3.2 -=- Speccy2010,r2
на этот раз на совсем другой компьютер 1977 г.р. Tandy Radio Shack TRS-80 - Model 1, собранный на горячо любимом Z80 c тактовой частотой всего 1,77 МГц, (практически Радио-86РК
Итак, встречаем! PI80 с инструкциями only 8080 посчитал 535 знаков за , ВНИМАНИЕ! - за 5 мин 17 сек.
Но и это еще не все.
Тот же компутер, но с программой оптимизированной под Z80 те же 535 знаков посчитал за 2 мин 04 сек
И еще одна программа-рекордсмен посчитала те же и там же всего то за каких то 47 сек
ну и напоследок, авдруг.
Эти две программы, с эмулятором, (в нем я не пробовал, но думаю сопоставимо), а главное с исходниками и комментами не на нашем языке можно посмотреть тут в самом низу страницы.
http://ht.homeserver.hu/html/programprojekt.html
Profi v3.2 -=- Speccy2010,r2
В таких доказательствах z80 ARM в раза в 3 обгонит. У Z80 для арифметики хороша ADC 16-битная и сокращенные тайминги (на 25%) на многие однобайтовые команды - всё остальное для производительности значит мало.
А, кстати, деление уважаемого ivagor упомянуто в недавней публикации - https://geektimes.ru/post/298735
ну да, spigot и сравнивался. PVV нашел и совместил точки входа в процедуры клавы и печати символов на экран для TRS-80.
Остальное родное для кода Радио-86РК. Кстати команды Монитора в TRS-80 удивительным образом похожи на команды в РК86. Или наеборот. С чего бы? А нужно было все это для тестирования памяти и выравнивания скоростей этого монстра относительно эмулей. Две другие программы, сравнительные, нашлись значительнее позже.
Profi v3.2 -=- Speccy2010,r2
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)