Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: умножение/деление в алгоритмах ZX игр

  1. #1
    Guru Аватар для bigral
    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию умножение/деление в алгоритмах ZX игр

    В советское время было выпущенно ряд микросхем умножителей, например 1802вр2 (по идее может умножить 2 числа за 500нс, это менее 2х тактов z80 на 3.5mhz). Предположим эту микруху можно подключить к спектруму, но в каких алгоритмах она могла бы помочь? 3D?

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

  3. #2
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    3д конечно, а какие они числа перемножали? 16 битные или 32 битные?
    С уважением,
    Jerri / Red Triangle.

  4. #3
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,233
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    16 битные или 32 битные?
    8-ми, но серия масштабируемая, можно было и 32 сделать.
    Последний раз редактировалось CodeMaster; 11.10.2019 в 17:13.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  5. #4
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,802
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    3D?
    В 3D самую прорву занимает вывод, а вычисления - уже давно насобачились по табличкам, так что особой погоды не сделает.
    Разве что в демах всякие декрюнчеры будут шустрей...
    Вот если-бы эта микруха умела float умножения/деления + целочисленные знаковые */ да чтоб с выбором разрядности - тогда да, подспорье было-бы очень даже.
    А так - баловство, больше требуется микруха которая строила-бы в экранной памяти полигоны (ну типа указываешь адрес где хранятся данные и команда "рисуй"). Оно само там рисует в экран что-то а проц занимается дальше чем нужно...

    Aber, meine Herren, das ist keine Spectrum...
    (нем."Но, господа, это ведь не Спектрум..." (С) П. Эренфест (в оригинале фраза была про физику))
    Последний раз редактировалось Destr; 11.10.2019 в 18:19.

  6. #5
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    (по идее может умножить 2 числа за 500нс, это менее 2х тактов z80 на 3.5mhz)
    до
    только это
    24 такта как минимум на 2 OUT
    +2 такта на само умножение
    +11 тактов как минимум на чтение 8 битного результата
    итого 37 тактов

    если же у нас для операндов 2 регистра
    то на OUT 28 тактов
    2 такта умножение
    и при чтении 16 битного результата из 2-х регистров
    28 тактов на IN

    58 тактов...



    самое быстрое софтварное умножение
    через логарифмы 8b*8b=8b
    по моему дето 52-56 тактов
    если не все 47 (давно не использовал забыл)


    Цитата Сообщение от bigral Посмотреть сообщение
    1802вр2
    мало того хардварной умножение давно есть на спектруме
    и реализовано оно в zxmc2
    и считает там avr и по идеи явно быстрей чем 1802вр2

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

    Цитата Сообщение от Destr Посмотреть сообщение
    умела float умножения/деления
    зачем оно на спектруме?
    когда 16 бит integer хватает всем?
    Последний раз редактировалось NEO SPECTRUMAN; 16.10.2019 в 07:15.

  7. Этот пользователь поблагодарил NEO SPECTRUMAN за это полезное сообщение:


  8. #6
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,552
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    в каких алгоритмах она могла бы помочь?
    да любая выборка из двухмерного+ массива с "некруглыми" размерностями
    .
    Прихожу без разрешения, сею смерть и разрушение...

  9. #7
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    через логарифмы 8b*8b=8b
    по моему дето 52-56 тактов
    если не все 47 (давно не использовал забыл)
    Знаю вариант на 51 такт, возможно есть и более быстрые. Только логарифмическое приближенное, не для всех задач годится.
    А порты умножителя можно и на память отобразить, будет намного удобнее и быстрее. Тут надо, конечно, смотреть конкретные схемы спектрумов, но по крайней мере с записью проблем не должно быть, разве что с чтением. Можно гибридно - писать "в память", читать из портов.

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

    Очевидно, что отдельный умножитель будет наиболее эффективен при перемножении чисел сравнительно большой разрядности, хотя в играх это вряд ли сильно востребовано.

  10. #8
    Guru Аватар для bigral
    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    А порты умножителя можно и на память отобразить, будет намного удобнее и быстрее. Тут надо, конечно, смотреть конкретные схемы спектрумов, но по крайней мере с записью проблем не должно быть, разве что с чтением. Можно гибридно - писать "в память", читать из портов.
    Да порты это тормоз, да еще и проблемы со "стандартизацией", наверно имеет смысл врубить кудато в адреса SOS48 (типа 0x3900), там зашито 0xff потому при чтении будет работать схема "проводное И". Но видимо сам по себе умножитель слабо применим, надо еще к нему какой-то микропрограммный автомат прикручивать на РТ2 + РТ5 + SRAM тогда можно уже думаю намутить какието толковые "макросы" но заносить в экран данные или копировать с памяти в память наверно не выйдет (сильно схемы арбитров памяти видео и z80 разные бывают).

  11. #9
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

    так понимаю умножалка zxmc2 нигде не эмулируется

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

    Цитата Сообщение от ivagor Посмотреть сообщение
    Знаю вариант на 51 такт,
    там где 2 обращение к таблице логарифма
    и одно возведение числа (степени того логарифма) в сумму тех 2-х

    тобешь
    10^(logA+LogB)
    можот и 51

    но там не работает умножение на 0
    хотя я думая при снижении точности ответа в 2 раза
    можно это обойти не теряя скорости

  12. #10
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    да и нафик один умножитель
    тогда ужо приручивать стм и пусть он делает все подряд
    Если не привязываться к 1802ВР2, то конечно еще круче делать "интеллектуальный" математический сопроцессор. Например для 3d вращения такому внешнему устройству передавать координаты и углы поворота, а внутри оно уже перемножает матрицы как может и на что хочет - хранит таблицы синусов/косинусов или быстро считает их (если умеет) на ходу. А спеку остается нарисовать. А можно всю картинку внутри "отрендерить" и передать в спектрум уже в виде копии экрана/части экрана.

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

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

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

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

Похожие темы

  1. Быстрое умножение на 10000
    от litwr в разделе БК-0010/0011
    Ответов: 53
    Последнее: 11.12.2021, 03:54
  2. Деление/умножение
    от Serdjuk в разделе Программирование
    Ответов: 51
    Последнее: 25.04.2018, 15:54
  3. Процедуры на асме (умножение деления)
    от gres8 в разделе Программирование
    Ответов: 3
    Последнее: 25.01.2007, 10:26
  4. деление синхросигнала
    от Splinter в разделе Изображение
    Ответов: 3
    Последнее: 01.08.2005, 02:53

Ваши права

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