Перейти к содержанию
    

Allwinner A13 V.S. OMAP-L138. Кто производительнее?

1 hour ago, mantech said:

Какие это дает преимущества и по сравнению с чем? У меня А13 на 650МГц почти не грелся, как в вашем случае?

 

Офсайт ARM утверждает, что пересылка NEON будет идти быстрее, чем обычный Си-шный memcpy: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka13544.html

 Но там надо по-хорошему прелод использовать, причем несовсем понятно  как выбрать второй аргумент в PLD.

 

NEONCopyPLD
      PLD [r1, #0xC0]         ----------- здесь непонятно:  откуда 0xC0 ???
      VLDM r1!,{d0-d7}
      VSTM r0!,{d0-d7}
      SUBS r2,r2,#0x40
      BGE NEONCopyPLD

  

Процесор еле тёплый.

 

P.S.   В A13 только линейный ДМА.   2D там нет (но оно мне не особо нужно, так как все видеобуфера линейные)

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, __inline__ сказал:

Но там надо по-хорошему прелод использовать, причем несовсем понятно  как выбрать второй аргумент в PLD.

Че-то тоже не нашел, как это правильно и по-простому использовать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, __inline__ said:

В A13 только линейный ДМА.   2D там нет

Как нет - там целый Display Engine, у фронтенда (DEFE) свой выделенный DMA контроллер для 2D доступа к памяти

Quote

Support direct display and write back to memory

Chapter 26 Display Engine Front End (DEFE)

https://linux-sunxi.org/images/3/3d/A13_User_Manual_v1.5_20150510.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, mantech said:

Че-то тоже не нашел, как это правильно и по-простому использовать...

 

А так хочется :)   У меня почему-то NEON-пересылка не требует сброса с кеша(flush dcache, clean dcache) данных в память для видеобуфера.  Всё само делается.  Интересно, почему?   Та же пересылка типа *dst++=*src++ требует сброса кеша в память, иначе на дисплее не всё обновляется.

8 hours ago, sasamy said:

Как нет - там целый Display Engine, у фронтенда (DEFE) свой выделенный DMA контроллер для 2D доступа к памяти

 

Я это зову растеризатором.  Когда просто из какого-то участка памяти идёт чтение и выхлоп в видео-цап.

 

Речь шла о Memory-Memory DMA, который копирует по 2-м измерениям.

 

Ещё вот L2 кеш хочется задействовать,  включение его с наскоку немного притормозило выполнение программы:

 

SetupL1L2P:

@==================================================================
@ Global Enable for Cortex-A8 Instruction and Data Caching
@==================================================================
        MRC     p15, 0, r0, c1, c0, 0       @ read CP15 register 1 into r0
        ORR     r0, r0, #(0x1  <<12)        @ enable I Cache
	@ BIC   r0, r0, #(0x1  <<12)         @ Clear bit 0
        ORR     r0, r0, #(0x1  <<2)         @ enable D Cache
	@ BIC   r0, r0, #(0x1  << 2)         @ Clear bit 0
	ORR     r0, r0, #0x1                @ enable MMU
        MCR     p15, 0, r0, c1, c0, 0       @ write CP15 register 1

@==================================================================
@ Enable Cortex-A8 Level2 Unified Cache
@==================================================================
@        MRC p15, 0, r0, c1, c0, 1           @ Read Auxiliary Control Register
@        ORR r0, r0, #2                      @ L2EN bit, enable L2 cache
@	 BIC   r0, r0, #(0x1  << 1)         @ L2EN bit, disable L2 cache
@	@ ORR     r0, r0, #(0x1  << 4)        @Enables speculative accesses on AXI
@	ORR     r0, r0, #(0x1  << 4)        @Enables speculative accesses on AXI
@	ORR     r0, r0, #(0x1  << 5)        @Enables caching NEON data within the L1 data cache
@        MCR p15, 0, r0, c1, c0, 1           @ Write Auxiliary Control Register

@==================================================================
@ Cortex-A8 program flow prediction
@==================================================================
        MRC     p15, 0, r0, c1, c0, 0       @ read CP15 register 1 into r0
        ORR     r0, r0, #(0x1  <<11)        @ Enable all forms of branch prediction
	@ BIC   	r0, r0, #(0x1  << 11)	    @ Disable all forms of branch prediction
        MCR     p15, 0, r0, c1, c0, 0       @ write CP15 register 1

        BX    lr

 

Информация от китайцев по режимы работы и кеширование L1, L2:

https://community.arm.com/developer/ip-products/processors/f/cortex-a-forum/4959/arm-cortex-a8-enabling-d-cache-aborts/26809

 

И что такое спекулятивный доступ к AXI ???

Это плохо или хороо для игр?

 

И кеширование NEON - это что?

 

Quote

@	@ ORR     r0, r0, #(0x1  << 4)        @Enables speculative accesses on AXI
@	ORR     r0, r0, #(0x1  << 4)        @Enables speculative accesses on AXI
@	ORR     r0, r0, #(0x1  << 5)        @Enables caching NEON data within the L1 data cache

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, sasamy сказал:

у фронтенда (DEFE) свой выделенный DMA контроллер для 2D доступа к памяти

На сколько я понял, это нужно для внутреннего использования контроллера дисплея, как уже сказал __inline__ , режима память в память там нет.

2 часа назад, __inline__ сказал:

А так хочется :)

Да, согласен, если уж на 2Д режим ускорителя доков нет, то хотя бы так. Если честно - для меня "темный лес" все эти сопроцессоры... Все "ускорения" пока делаю только за счет оптимизации алгоритмов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 minutes ago, mantech said:

это нужно для внутреннего использования контроллера дисплея, как уже сказал __inline__ , режима память в память там нет

Ну если вам слов "Support direct display and write back to memory" недостаточно, прикладываю картинку из доков "которых нет" . Обратите внимание на стрелочки у контроллера DMA - они в обе стороны

 

Screenshot from 2020-06-02 11-54-53.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, sasamy said:

Обратите внимание на стрелочки у контроллера DMA - они в обе стороны

 

Скорее всего это обычный ДМА имелся ввиду.  Иначе объясните мне разницу между "ДМА" и "видео-ДМА"?   И оно YUV как я вижу.  Нужно RGB.  И как оно связуется с дисплеем?  Дисплеем рулит TCON, composer рисует слои.  Этот DEFE каким боком тут?   Или они целых три движка для видео запилили?

 

Вижу скейлер с матричными коэффициентами.  В том же TCON есть простой скейлер 2x 3x без фильтра.  Как задействовать  другой скейлер что на картинке выше?   Не могу составить представление пока о конвеере видео системы - от видеобуфера до сигналов на монитор:  как эти блоки между собой связаны?  И что такое коллбэк-память?

 

 

В видеочипе S1D13746, который я успешно применяю, есть фильтр, который можно настраивать матрицей 3x3. + бикубический.  Всё это делается записью в регистры коэффициентов и включением нужных бит.  Всё понятно и прозрачно в отличие от видео-системы A13 (которых целых три?)

 

qqq.thumb.jpg.79856573026136add3dd7012ecf28796.jpg

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, sasamy сказал:

Обратите внимание на стрелочки у контроллера DMA - они в обе стороны

Я видел это, просто capture mode не более того. Даже, если его и удастся прикостылить к передаче блока, он все равно пойдет "через экран", ибо в данном МК нет 2х голового видеоблока, когда вторую голову можно было б использовать, как ДМА...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, mantech said:

Даже, если его и удастся прикостылить к передаче блока, он все равно пойдет "через экран", ибо в данном МК нет 2х голового видеоблока,

 

26.5.2 DEFE_FRM_CTRL_REG

Включаете Write back enable, выключаете выход на бэкенд - вот вам и пересылка блока.

OUT_CTRL
DEFE output control
0: enable DEFE output to DEBE
1: disable DEFE output to DEBE
If DEFE write back function is enabled, DEFE output to DEBE isn’t
recommended.

Если ничего менять не надо - там есть CSC by-pass. На входе и на выходе поддерживается RGB. Захватом занимается блок CSI. Для чего вы тут про  S1D13746  расскзываете одному ктулху известно.

 

PS что-то я поспешил с выводами о 2д  у контроллера DMA DEFE - похоже фронтенд только с линейным буфером работает

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, sasamy сказал:

Включаете Write back enable, выключаете выход на бэкенд

И что в этот момент будет на экране? :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

И что в этот момент будет на экране?

На каком экране ? Бэкенд не только с фронтенда может брать данные

Quote

In normal mode, the dedicated layer will get the data from system DRAM direct or DEFE by setting dedicated Layer
video channel selection bit in DE-layer Attribute control register. In other work modes, the layer data source also
comes from internal frame buffer.

TCON вообще может не использовать Display Engine а напрямую из DRAM  читать данные

 

Quote

TCON0_SRC_SEL:
00: DE CH1(FIFO1 enable)
01: DE CH2(FIFO1 enable)
10: DMA 565 input(FIFO1 enable)
11: Test intput(FIFO1 disable)

И все же фронтенд может полнлценно с 2D блоками работать :)

 

На входе

DEFE_LINESTRD0_REG0 /1/2

 

Quote

LINE_STRIDE
In tile-based type
The stride length is the distance from the start of the end line in one
tile to the start of the first line in next tile(here next tile is in vertical
direction)
In non-tile-based type
The stride length is the distance from the start of one line to the start
of the next line.

На выходе

 

DEFE_WB_LINESTRD0_REG

 

Quote

LINE_STRD
Ch3 write back line-stride

 

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, sasamy сказал:

TCON вообще может не использовать Display Engine а напрямую из DRAM  читать данные

Может-то он наверно много чего и откуда, только вот скажите, альфа-слой на бэкграунд он в таком режиме сможет накладывать??

ЗЫ. Хотя __inline__  сказал, что он только один слой использует, ему может и подойдет такой режим, если TCON может читать растр прямо из памяти...

10 часов назад, sasamy сказал:

И все же фронтенд может полнлценно с 2D блоками работать :)

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

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, mantech said:

Может-то он наверно много чего и откуда, только вот скажите, альфа-слой на бэкграунд он в таком режиме сможет накладывать??

Конечно - это вообще не TCON делает а бэкенд DEBE, он в свою очередь может работать независимо от фронтенда DEFE который в свою очередь можно использовать как 2D DMA в DRAM. Вообще это 3 абсолютно независимых блока которые имеют DMA и добавок между ними есть fast path для обмена данными - локальные буферы sram

Quote

Дак он это просто обязан делать

странно что еще день назад вы хором бодро утверждали обратное :)

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 минут назад, sasamy сказал:

странно что еще день назад вы хором бодро утверждали обратное :)

Я не утверждал.

18 минут назад, sasamy сказал:

Конечно - это вообще не TCON делает а бэкенд DEBE, он в свою очередь может работать независимо от фронтенда DEFE который в свою очередь можно использовать как 2D DMA в DRAM.

Звучит интересно. Осталось понять, на сколько этот ДМА быстрее того, что есть в системе, т.е. "обычного", который мягко говоря не быстр...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, mantech said:

Осталось понять, на сколько этот ДМА быстрее того, что есть в системе, т.е. "обычного", который мягко говоря не быстр.

Однозначно у DE DMA быстрей чем "обычный", скорей всего и приоритет у него выше, Очевидно фронтенд DEFE задуман для вывода видео в оверлей и для кодмрования видео полученного с CSI - для этого у него  CSC с поддержкой тайловых форматов с которыми работает аппаратный видекодек VPU. Так что если не используете VPU или CSI для захвата можно смело DEFE использовать как очень быстрый 2D DMA.

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...