User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 331

Тема: Вычисление числа Пи на ассемблере

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    27.10.2011
    Адрес
    Самара
    Сообщений
    1,248
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    28 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://ru.wikipedia.org/wiki/Motorola_6809 - говорят лучшая 8 битка. значительно лучше чем 6502. в теме никто под неё не пробовал pi подсчитать.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    100 цифр - 3.46 сек
    1000 цифр - 319.62 сек - 5 мин 19.62 сек
    Ну и ну! Надо загрузить эту программку в Амстрад и подозреваю, что Амстрад станет чемпионом опять. Что-то вы с делением сделали фантастическое, даже прежняя процедура DIV32 была лучшим такого рода алгоритмом во всей сети! Даже удивительно, просматривал все (?) архивы z80 - там лучшего нет.

    Цитата Сообщение от sergio78 Посмотреть сообщение
    никто под неё не пробовал pi подсчитать.
    Хотелось бы, но железо с 6809 какое-то больно экзотическое и редкое: Драконы, цветные Тэнди...

    Улучшил оформление программ для PDP-11 (БК, ДВК, ...), добавил поддержку аппаратных деления и умножения. На диске программы с буквой М с умножением - 11М может обгонит и Спектрум и Вектор. Уважаемый perestoronin, надеюсь что вы сможете найти способ их и/или подобные протестировать. Программа с буквой T для 11M считает время по таймеру, а не видеопрерыванию - может это будет полезно для авторов эмуляторов. В исходниках программа и для RT-11 (ДВК, БК0011М, ...) с опциональной поддержкой как умножения, так и деления - кто бы протестировал? Интересны ДВК-3, а эмулятора нет.
    pi-pdp11.zip (исправлен файл для RT-11)
    Последний раз редактировалось litwr; 05.12.2015 в 11:39.

  4. #3

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,392
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Надо загрузить эту программку в Амстрад и подозреваю, что Амстрад станет чемпионом опять.
    Эту в амстрад не получится, здесь используется команда rdel. Но несомненно амстрад обгонит вектор, против z80 с большей частотой не попрешь.

    Цитата Сообщение от litwr Посмотреть сообщение
    прежняя процедура DIV32 была лучшим такого рода алгоритмом во всей сети
    Думаю просто никто особо не занимался оптимизацией 32 битных операций с целыми для 8080 и z80 ввиду неактуальности. Любая из двух вышеприведенных процедур для вектора будет быстрее исходного амстрадовского варианта. Но и под z80 можно оптимизировать. Возможно спектрумисты уже оптимизировали, просто надо найти их вариант.

  5. #4

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    добавил поддержку аппаратных деления и умножения.
    Это для ВМ1Г? vslav сейчас делает потактовый клон БК на FPGA с разными процами, надо будет с ним поговорить. Но, мне кааца, он говорил по итогам реверса кристаллов, что аппаратное умножение/деление в ВМ1Г весьма формальное и заметного выигрыша скорее всего не даёт. Там же можно проверить вычисление на ВМ1 на 100 Мгц ;-)
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  6. #5

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    100 знаков- 0,7сек.
    1000 знаков- 64,7сек.
    4680 знаков- 1409,8сек.
    Очень вам благодарен, лет 20 что-то такое хотел узнать. А ещё бы сравнить выгоду от аппаратных деления и умножения. Чтобы использовать только программные надо поставить HMUL=HDIV=0. На PDP-11 эти операции только знаковые и перевод, особенно деления, в беззнаковый формат непрост. Поэтому выгода от аппаратных операций наверное не слишком большая.

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    ВМ1Г весьма формальное
    Что ждать уважаемого vslav'a - может в этой теме быстрее накопаем?

    Цитата Сообщение от ivagor Посмотреть сообщение
    На компах с аппаратным текстовым экраном все хорошо, а при выводе на графический может быть и больше.
    Почтим уверен, что у всех - менее процента - там печать один раз после большого цикла. А вот в долях процента может быть разница раз в 10, которая ни на что в итоге не влияет.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Корвет опередит вектор в pi32, но 6128 все же быстрее корвета.
    Противоречие
    Последний раз редактировалось litwr; 05.12.2015 в 14:03.

  7. #6

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,392
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Противоречие
    При выполнении pi32 6128 быстрее корвета, корвет быстрее вектора. В чем противоречие?

    - - - Добавлено - - -

    Цитата Сообщение от litwr Посмотреть сообщение
    Почтим уверен, что у всех - менее процента - там печать один раз после большого цикла
    У самых медленных векторовских версий cp/m 100 символов будет печатать 0.3 секунды! Это значительно больше 1% для 100 цифр. Для тысячи цифр, конечно, это пустяк

  8. #7

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    HMUL=HDIV=0
    100 знаков -1,8сек.
    1000 знаков -183,4сек.
    4680 знаков -4265,2сек.
    Последний раз редактировалось MiX; 05.12.2015 в 16:11.

  9. #8

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Реальный 1801ВМ1Г, на модуле + плата DE0, частота 5МГц, быстрая память без ожидания, терминал асинхронный, время измеряется 50Гц таймером
    А система какая?
    Цитата Сообщение от Vslav Посмотреть сообщение
    Запустил модуль на 1801ВМ2, на 10МГц (внутренняя эффективная ядра 5МГц)
    Странно, что выигрыш от деления так мал - менее двух раз - получается на ВМ2 медленное деление - оптимизированным программным можно обогнать. На ВМ2 отделять деление от умножения смысла нет. Лучше дать данные с EIS и без (как с microPDP-11/83). А возможно, что J11 медленнее из-за задержек памяти?

    Цитата Сообщение от perestoronin Посмотреть сообщение
    После беглого знакомства с содержимым книги "Алгоритмические трюки для программистов"
    Давно известно, что простого способа перевести знаковое деление в беззнаковое нет. Поэтому у Интел их два. И, конечно, энергичный оптимизатор всегда может пару процентов отжать.

    Цитата Сообщение от perestoronin Посмотреть сообщение
    Нас интересуют скорость вычисления числа Пи
    Должен быть результат. Если его нет, то это не программа, а восточная медитация пусть и с высочайшим непостижимым смыслом. Кого не устраивает скорость вывода пусть оптимизируют, отключают экран на время счета и т.п. Но π нужно показать - иначе будет история про то, не знаю что.
    Кроме того, точность эмуляторов редких компьютеров под большим вопросом. 10-40% тут разброса более чем вероятны. Также настораживает непроверяемость данных по 8085 - массовых компьютеров с таким процессором не было и соответственно результаты эмуляции тут очень условны. Кажется, что ответственные за результаты программисты в таких случаях должны хотя бы раз найти возможность сверить полученные данные с реальным железом.

    Цитата Сообщение от perestoronin Посмотреть сообщение
    Его требуется сменить
    А кто против? Только получается как про двух или даже трёх непойманных зайцев: поиск лучшего алгоритма, исследование быстродействия компьютерных архитектур, поиск лучшего оптимизатора. Но и с лучшим алгоритмом в два раза более быстрое деление даст в два раза лучший результат.

    Цитата Сообщение от sinchuk Посмотреть сообщение
    у меня есть несколько разных процов z80, в том числе ВМ1 , могу протестить на реале но надо файл для дисковода. Тар я не знаю как загрузить ((((
    Для z80 можно взять за основу код для Амстрада. Подставьте туда правильный вызов своей систем для печати знака и уберите (это самое простое) таймерные коды. Если сообщите адрес процедуры печать и ее параметр, а также адрес загрузки, то могу собрать бинарник, который можете поместить куда угодно. Для ВМ1 (БК) есть загрузочный диск, могу сделать bin-файл для загрузки с кассеты, но только для 0010 - для 0011 что-то не так системными вызовами. Даже подозреваю, что ПЗУ 11М по базовым вызовам неработоспособно.

  10. #9

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    А система какая?
    Никакой, bare metall. Процессор на модуле, подключенный к отладочной FPGA-плате DE0.

    Цитата Сообщение от litwr Посмотреть сообщение
    Лучше дать данные с EIS и без (как с microPDP-11/83).
    Реальный 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 сек

    Цитата Сообщение от litwr Посмотреть сообщение
    А возможно, что J11 медленнее из-за задержек памяти?
    Может быть из-за памяти, можеть быть там частота не 18МГц, может быть и не "честных" 18МГц, а с растягиванием циклов как у F11. Смотреть на конкретную машину надо.

  11. #10

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Интересны ДВК-3
    100 знаков- 0,7сек.
    1000 знаков- 64,7сек.
    4680 знаков- 1409,8сек.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  2. Мнемокоманды и числа.
    от ALKO в разделе Программирование
    Ответов: 0
    Последнее: 15.02.2014, 03:49
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Определение числа сторон
    от mungo в разделе Внешние накопители
    Ответов: 1
    Последнее: 16.03.2012, 18:06

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •