Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143
Приветствую.
Есть задумка ускорить печать текста в экранной области (framebuffer), которая некэширована. Рисование прямоугольников сейчас выполняется с помощью ДМА, а вот текст приходится печатать просто записью в эту область цветовую составляющую пикселя (24бита+альфа). Вопрос, можно каким-либо образом ускорить этот процесс, кэшированием данной области или еще чем-то, но так, чтобы это не отражалось на выводе на дисплей? Например, использование ускорения кэша только для записи в данную область?
Сообщение отредактировал mantech - Aug 19 2018, 15:06
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143
Цитата(aaarrr @ Aug 19 2018, 18:37)
Включите для этой области кэш в режиме write-through.
Можно по-подробнее, что будет в этом случае, как это работает. Просто с режимами кэша серьезно не имел отношения, достаточно было просто включить его и указать на кэшируемые и некэшируемые регионы... ЗЫ Сейчас режим кэша Writeback.
Можно по-подробнее, что будет в этом случае, как это работает.
В режиме write-through записанные данные немедленно отправляются в память, а не оседают в кэше. Если экранную область не предполагается читать, то логичнее будет использовать просто режим буферизованной записи без кэширования.
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143
Цитата(aaarrr @ Aug 19 2018, 20:48)
В режиме write-through записанные данные немедленно отправляются в память, а не оседают в кэше. Если экранную область не предполагается читать, то логичнее будет использовать просто режим буферизованной записи без кэширования.
На сколь я понимаю ускорение записи в экранную область производится в основном не из за ее кэширования, а блочной записи в память всей линии кэша (burst mode). В кэш контроллерах случаем нет такого режима, чтоб он просто накапливал 32-64 байта и потом одной транзакцией скидывал в память, НО при чтении читал из памяти, а не кэша?
В кэш контроллерах случаем нет такого режима, чтоб он просто накапливал 32-64 байта и потом одной транзакцией скидывал в память, НО при чтении читал из памяти, а не кэша?
Я же только что о нем написал, а Вы процитировали: буферизация без кэширования. Есть такой режим.
Может, конечно что-то не так сделал, но флаг bufferable устанавливал - только прироста скорости нет никакого...
Когда-то давно экспериментировал, скорость последовательной записи в bufferable соответствовала таковой в режимах с кэшированием. Какие цифры получаются?
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143
Цитата(aaarrr @ Aug 19 2018, 21:41)
Когда-то давно экспериментировал, скорость последовательной записи в bufferable соответствовала таковой в режимах с кэшированием. Какие цифры получаются?
Пока только "на глазок" Отрисовывается мгновенно или разворачивается заметно на глаз... Надо как-то скорость замерить...