User Tag List

Показано с 1 по 10 из 10

Тема: memcpy|быстрая пересылка данных

Древовидный режим

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

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question memcpy|быстрая пересылка данных

    Допустим нам надо перебросить данные (несколько кб) из одной области памяти(их несколько) в другую(а вот назначение постоянно или,если уж совсем идеально, пара-тройка адресов) и сделать это побыстрее, а памяти потратить на процедуру поменьше(килов до 4х отсилы).
    Какие у нас пути?..
    1) Если хранить данные внутри блоков ld rr,NN : push rr, получим наибыстрейшую загрузку(так ли это?) в 10.5 тактов на байт и эпический жор памяти. Врядли применимо в реальных проектах.
    2) портянка из
    Код:
        ld sp,#src
        pop af
        pop bc
        pop de
        pop hl
        exx
        pop bc
        pop de
        pop hl
        ld sp,#dest
        push hl
        push de
        push bc
        exx
        push hl
        push de
        push bc
        push af
    даст 12.5 тактов на байт, но сожрёт много памяти, а источник выбрать не получится. =\
    3) портянка из pop hl:ld hl,(NN). Удовлетворяет и скоростью и выбором источника, но память жрёт тоже неприемлемо.
    4) красивая макра - хорошая замена LDIR'у, стек не трогает - почти 16t/b и немного памяти, но я хочу быстрее =(
    Код:
        macro ldirf
            xor a
            sub c
            and 128-1
            add a,a
            ld ($+4),a
            jp 1f
            align 256
    1
            dup 128
                ldi
            edup
            jp pe,1b
        endm
    На основе варианта №2 накодил самомодифицирующийся цикл с ~15t/b размером даже меньше варианта №4, можно ли ЕЩЁ быстрее? (Да, пока есть память, можно часть переслать по №3, часть ещё как-то, но вопрос не в этом =))

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

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

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

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

Похожие темы

  1. Мега быстрая загрузка с кассеты???
    от ALEXEY.GORDEEV в разделе Софт
    Ответов: 48
    Последнее: 12.05.2021, 01:48
  2. Быстрая буферизация/восстановление в области линии.
    от drbars в разделе Программирование
    Ответов: 12
    Последнее: 14.08.2013, 14:19
  3. Быстрая и медленная память 128к
    от Hacker VBI в разделе Программирование
    Ответов: 21
    Последнее: 27.04.2013, 16:43
  4. Быстрая тригонометрия...
    от ALKO в разделе Программирование
    Ответов: 8
    Последнее: 25.01.2011, 00:29
  5. Ответов: 4
    Последнее: 16.06.2010, 20:37

Ваши права

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