User Tag List

Страница 10 из 19 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 189

Тема: Сравнение скорости копирования ОЗУ разными камнями и ЭВМ

  1. #91

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Не обязательно (метод Медноногова).
    Если подготовка один раз, а копирование постоянно, то нет проблем. Такой вариант и я сам использовал и видел в программах.
    Не знаю этого метода, просто он не гуглится. Но ничего кроме синхронизации с прерываниями предложить тут маловероятно. Буду вам признателен, если укажите альтернативу.
    И такая синхронизация как и эти предложенные вами методы копирования годятся только для крутых демокодеров, ни для прикладных программ, ни даже игр это не подходит. В разделе ПДП как-то почти моветон.

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

  3. #92

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

    По умолчанию

    извините за оффтоп

    Цитата Сообщение от litwr Посмотреть сообщение
    Не знаю этого метода, просто он не гуглится.
    Например тут (17 Nov 96). Квалифицированные спектрумовские программисты знают про это со второй половины 90х. Ладно спектрумисты, в векторовском разделе в последние годы обсуждали несколько раз подробно с примерами кода.
    Цитата Сообщение от litwr Посмотреть сообщение
    годятся только для крутых демокодеров, ни для прикладных программ, ни даже игр это не подходит.
    Не говорю про спектрум, но даже в нескольких свежих игрушках для вектора используется. И это не единственный вариант. Если хочется использовать не одну регистровую пару, а несколько, то можно использовать "контрольные суммы" (проверку на четность) и по ним восстанавливать в прерывании испорченные байты (наверно можно назвать "метод jerri", он раскопал в игрушке из 80х). Но это уже более специализированный вариант для спрайтов в игрушках, а метод Медноногова сравнительно универсальный, им можно любые данные копировать.
    И отдельно надо упомянуть, что есть много популярных и распространенных (в свое время) компьютеров с 8080 без прерываний, там совсем нет проблем со стековыми операциями, можно ничего не выдумывать.

    Вы же явно не интересуетесь глубоко и не занимаетесь всерьез программированием для z80 и 8080, может не стоит писать про них.
    [свернуть]

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

    litwr(21.05.2023)

  4. #93

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    может не стоит писать про них.

  5. #94

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    если взять Amstrad CPC/PCW, то там на LDIR/LDDR нужно 24 такта. При эффективной частоте 3.2 МГц получаем 133.33 Kбайт/сек
    а в цпц разве тормоза от видюхи не включены уже в подгонку к 4 тактам
    Прихожу без разрешения, сею смерть и разрушение...

  6. #95

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

    По умолчанию

    У Amstrad CPC скорость LDIR/LDDR 166666.(6) байт/секунду, LDI/LDD 200000 байт/секунду.

  7. #96

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    У Amstrad CPC скорость LDIR/LDDR 166666.(6) байт/секунду, LDI/LDD 200000 байт/секунду.
    что-то не сходится, как минимум одна из цифр неверна
    Прихожу без разрешения, сею смерть и разрушение...

  8. #97

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    цифр
    или всё таки чисел?

  9. #98

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

    По умолчанию

    Что-то забыли про х86. Там тоже можно всякие трюки использовать, но для нормального копирования используют REP MOVSW на 20 тактов на слово, при частоте 4.77 МГц у первых IBM PC и их многочисленных клонов, получаем 4.77*10^6/20*2 = 477 КБ/с. Это пошустрее ДВК. Трюки, предполагаю, могут процентов 30 добавить.
    Для 68000 самое быстрое копирование - это MOVEM, но это скорее трюк. Нормальное копирование почти такое же как и на PDP-11:
    Код:
    MOVE.L (A1)+,(A2)+
    DBRA
    Это 7.5 тактов на байт. На Амиге с 7 МГц получаем 7*10^6/30*4 ≈ 933.3КБ/с, на реальном железе будет немного поменьше. С MOVEM можно получить чуть больше 4 тактов на байт и не иметь проблем с прерываниями, у 68к для прерываний стек, на зависть пидипишникам, отдельный. Для копирования можно задействовать все 16 регистров.
    Цитата Сообщение от ivagor Посмотреть сообщение

    извините за оффтоп


    Например тут (17 Nov 96). Квалифицированные спектрумовские программисты знают про это со второй половины 90х. Ладно спектрумисты, в векторовском разделе в последние годы обсуждали несколько раз подробно с примерами кода.

    Не говорю про спектрум, но даже в нескольких свежих игрушках для вектора используется. И это не единственный вариант. Если хочется использовать не одну регистровую пару, а несколько, то можно использовать "контрольные суммы" (проверку на четность) и по ним восстанавливать в прерывании испорченные байты (наверно можно назвать "метод jerri", он раскопал в игрушке из 80х). Но это уже более специализированный вариант для спрайтов в игрушках, а метод Медноногова сравнительно универсальный, им можно любые данные копировать.
    И отдельно надо упомянуть, что есть много популярных и распространенных (в свое время) компьютеров с 8080 без прерываний, там совсем нет проблем со стековыми операциями, можно ничего не выдумывать.

    Вы же явно не интересуетесь глубоко и не занимаетесь всерьез программированием для z80 и 8080, может не стоит писать про них.
    [свернуть]
    Почему же оффтоп? Вы как раз о том как побыстрее всё скопировать. Это ТС и задекларировал в начале.
    Специальный обработчик прерываний для обеспечения чуть более быстрого копирования - круто! И всё это скорее просто из желания выжать из примитивной техники всё возможное, чем для реального эффекта. На Z80 при всех этих трюках ускоряем по сравнению с LDI лишь на 15% и это размазывется ещё по общей логике управления спрайтами. В итоге сомнительно, что и 5% прибавки к скорости получится в итоге. Хотя героям слава! Интересные коды.
    У нас вроде дискуссия и по Спектруму или Вектору ничего вроде кроме суперочевидных вещей в своих статьях не писал. В чем претензия?
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    а в цпц разве тормоза от видюхи не включены уже в подгонку к 4 тактам
    Всё просто, из пяти циклов один на видео, а остальные процессору. Предполагаю, что это в Вектор скопировали. Если это не так, то надеюсь, что ivagor поправит.
    Цитата Сообщение от ivagor Посмотреть сообщение
    У Amstrad CPC скорость LDIR/LDDR 166666.(6) байт/секунду, LDI/LDD 200000 байт/секунду.
    Путает что-то ivagor, чувствуется, что мало знаком он с Амстрадом. А мне вот амстрадить приходилось ещё в 1988. Хотя по LDI/LDD у него правильно.
    Последний раз редактировалось litwr; 21.05.2023 в 10:23.

  10. #99

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

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    из пяти циклов один на видео, а остальные процессору
    У Amstrad CPC циклы по 4 такта. За это время два доступа видеоконтроллера к озу (в страничном режиме) и возможен один доступ процессора.

  11. #100

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    У Amstrad CPC циклы по 4 такта. За это время два доступа видеоконтроллера к озу (в страничном режиме) и возможен один доступ процессора.
    Проверил на эмуляторе, Вы - правы. Теряю форму. 166.67 КБ для LDIR подтверждаю.

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

    Быть абсолютно точным сложно. На Амстраде LDIR использует 24 такта во всех циклах кроме последнего, в котором используются только 20 тактов. Поэтому при копировании 1024 байт скорость будет ≈ 166531 байт/сек.
    Последний раз редактировалось litwr; 21.05.2023 в 22:38.

Страница 10 из 19 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Сравнение: AY8930/AY8910/YM2149F
    от newart в разделе Звук
    Ответов: 56
    Последнее: 02.07.2022, 10:27
  2. Как сопрягать микросхемы с разными VCC?
    от dhau в разделе Несортированное железо
    Ответов: 22
    Последнее: 08.06.2012, 16:59
  3. Скорости загрузки в ОЗУ
    от ASDT в разделе ZX Концепции
    Ответов: 56
    Последнее: 07.01.2011, 14:22

Ваши права

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