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

BF533 отрисовка на дисплей

у этого контроллера даже есть тупо 16ти битный RGB интерфейс, который на ppi вешается без какой-либо дополнительной логики вообще, просто напрямую.

В своё время я поостерёгся использовать PPI + RGB-интерфейс дисплея. Показалось, что постоянная отрисовка на дисплей(формирование развертки видео-сигнала) отрицательно скажется на всей работе системы в целом. Не помню чем оттолкнула эта идея, то-ли от того что надо будет выжидать освобождения памяти или ещё чего-то...

Давно это было.

 

Вопрос про PPI был в другом: можно ли его настроить на управление контроллером S6E63D6 или тупо видео-сигнал?

Хочется чтобы регенерацией экрана занимался именно S6E63D6 , а не ДМА Блекфина через PPI.

И шину разгрузить хотелось бы :)

 

Речь идет об этом девайсике:

 

post-99126-1505118606_thumb.jpg

 

Решил "тряхнуть стариной" и портировать ещё несколько эмуляторов на него

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


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

В своё время я поостерёгся использовать PPI + RGB-интерфейс дисплея. Показалось, что постоянная отрисовка на дисплей(формирование развертки видео-сигнала) отрицательно скажется на всей работе системы в целом.

а повесить его на шину памяти, на который сидит sdram, из которого ещё и код выполняется, имхо, куда менее удачная идея с точки зрения работы всё системы в целом.

 

Вопрос про PPI был в другом: можно ли его настроить на управление контроллером S6E63D6 или тупо видео-сигнал?

Хочется чтобы регенерацией экрана занимался именно S6E63D6 , а не ДМА Блекфина через PPI.

И шину разгрузить хотелось бы :)

 

писать в регистры дисплея, в том числе и для того чтобы включить этот самый RGB (который, насколько я понял, можно использовать только для записи в видеопамять контроллера), можно и через spi.

 

ну и sdram в несколько раз (в 7) быстрее чем асинхронная шина дисплея, поэтому если даже завести отдельный буфер на весь экран во внешней памяти, куда будет складываться результат обработки цвета из палитры, а потом из этого же буфера DMA будет перекладывать всю картинку на экран, то даже эти дополнительные копирования туда-сюда будут быстрее чем сейчас. ну а если обрабатывать картинку построчно и сразу же выдавать через ppi, так тем более.

 

ну и ещё как вариант есть sport, c 133мбитами пропускной способности каждый, которых хватит на сотню fps 320*240*16бит, а параллельная 16ти разрядная шина делается из него двумя сдвиговыми регистрами.

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


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

На самом деле при включенном кешировании арбитраж шины не слишком сильно душит производительность всей системы в целом.

 

Иначе, почему память видеокарт в ПК отображена на общее адресное пространство процессора?

В неё тоже можно писать и читать из нее процессором и ПК не тормозит из-за арбитража шины.

 

Понимаю, что видео-карта сама может ворочать в своей памяти и будет быстрее, но доступ со стороны CPU сохранен.

 

Ну и финальный вопрос: вы можете примерно предположить, во сколько раз должна подняться производительность системы, если дисплей перевешать на PPI?

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


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

Ну и финальный вопрос: вы можете примерно предположить, во сколько раз должна подняться производительность системы, если дисплей перевешать на PPI?

ну чисто теоретически, сейчас дисплей занимает шину на 3мс из 16 при 60фпс. вот эти 20% и сэкономите,

но из них ещё поди примерно четверть-треть времени процессор всё равно занят преобразованием цвета по палитре.

 

если избавитесь от плавающей запятой при работе со звуком, разница, думаю, заметнее будет.

переход на fast-fp(который раза в 3-4 быстрее обычного) дал прирост 10%fps, то есть грубо говоря 2мс процессорного времени, то есть получается что почти половина времени вашего эмулятора тратится на звук с плавучкой - 6мс, которые можно больше чем порядок сократить с целочисленной арифметикой.

 

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


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

Ещё обнаружил интересную ситуацию: Visual DSP 5.1.2 даёт рабочий код, а если собрать в VDSP 5.0, то эмулятор зависает в момент когда должен появиться звук.

Если не использовать -fp-fast, то обе среды дают рабочий код.

 

Подозреваю, что в 5.0 -fp-fast выполнен через ОПУ и не гарантирует корректной работы с эмуляцией плавучки :)))

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


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

если избавитесь от плавающей запятой при работе со звуком, разница, думаю, заметнее будет.

переход на fast-fp(который раза в 3-4 быстрее обычного) дал прирост 10%fps, то есть грубо говоря 2мс процессорного времени, то есть получается что почти половина времени вашего эмулятора тратится на звук с плавучкой - 6мс, которые можно больше чем порядок сократить с целочисленной арифметикой.

После слов ТС о том, что "эмулятор звука использует плавучку" при том что она в данном МК - софтварная, у меня возникло ощущение, что автор вообще не понимает где и на что у него тратится время процессора и в какую сторону надо рыть. Скорей всего основную часть процессорного времени занимает звук, а не видео, а значит и оптимизировать нужно в первую очередь звук.

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


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

Скорей всего основную часть процессорного времени занимает звук, а не видео, а значит и оптимизировать нужно в первую очередь звук.

Любой участок можно замерить теми же CYCLES, просто вплотную к оптимизации звука ещё не подошел.

Кстати, отсутствие мат-сопроцессора в Блекфин меня в свое время очень разочаровало.

 

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

 

Вот есть STM32 , у них есть мат-сопроцессор, но не более 300 МГц, то не радует.

 

Есть ли камни контроллеров с тактовой от 1 ГГц с FPU и открытой архитектурой?

Pi не предлагать, так как закрыта.

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


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

Есть ли камни контроллеров с тактовой от 1 ГГц с FPU и открытой архитектурой?

Ну если опустить 1ГГц, то я работал с OMAP L-137 (есть также L-138). DSP-ядро которого имеет набор команд для работы как с float так и double. Умеет вроде 1 double-MAC-операцию за 2 такта или 2 float MAC за 1 такт (точно не помню). На частоте до 450МГц.

DSP-ядро этих OMAP можете считать отдельным сопроцессором если так угодно (в составе OMAP есть также основное ARM-ядро и ещё два PRU-ядра).

Есть также это DSP-ядро в stand-alone: TMS320C674x.

Документация на него открытая и достаточно подробная для освоения.

И в STM нет какого-то сопроцессора, есть набор команд плавающей арифметики, выполняемых тем же самым ядром.

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


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

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

это всё замечательно делается и в целых числах.

зачем плавающая запятая для графических данных у которых динамический диапазон 8 бит?

она и для звука не очень-то и нужна. уж тем более в эмуляторе 8ми битной приставки.

 

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


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

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

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

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

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

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

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

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

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

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