Поиск
Показаны результаты для тегов 'c674x'.
-
Добрый день. Использую C674x в связке с внешней SDRAM: организация памяти 32M x 16 (64 МБ), 4 банка памяти, одна страница памяти 1024 байт (10 бит). Кеш L1D, L1P и L2 включены, регионы кеширования MAR для адресов 0xC0000000 ... 0xC3FFFFFF (все 64 МБ) включены в регистрах. Программа выполняется из этой SDRAM, много данных (на несколько МБ), кода - несколько сотен килобайт (от 500 кБ). Активно используется выделения памяти из кучи (через memalign(128,x) ) - указатели выровнены на длину строки кеша L2 (максимальная длина) - 128 байт. Вопрос собственно вот в чём: есть ли смысл привязываться к банкам SDRAM для ускорения доступа к данным? Например - стек - в одном банке, куча - в другом, Zero-Init, UnInit - в третьем, код (.text) - в четвёртом? Или это ничего не даст? Прилагаю файл для линковщика - с расписанными секциями и регионами памяти, который сейчас используется. Программа стартует с самого начала SDRAM 0xC0000000: #define SDRAM_BASE 0xC0000000 #define SDRAM_SIZE 0x04000000 // 64 MB #define RO_SIZE 0x00098000 // <512 kB -c -stack 0x01700000 -heap 0x02800000 MEMORY { RO o = SDRAM_BASE l = RO_SIZE RW o = SDRAM_BASE+RO_SIZE l = SDRAM_SIZE-RO_SIZE } SECTIONS { .text:_c_int00* > SDRAM_BASE .text > RO .const > RO .switch > RO .cinit > RO .rodata > RO .init_array > RO //C++ .sysmem > RW .far > RW .stack > RW .bss > RW .neardata > RW .fardata > RW }
-
Алгоритм расчёта цвета прозрачности
repstosw опубликовал тема в Алгоритмы ЦОС (DSP)
Дано: C674x DSP. Цветовое пространство - 16 бит на пиксел (RGB 5:6:5). Надо: реализовать быстрый алгоритм отрисовки с цветом прозрачности. Цвет прозрачности один - либо прозрачно, либо нет. Пока так (неоптимально): for(y=0;y<100;y++) for(x=0;x<100;x++) if(src_color!=colorkey)dst_color=src_color; Советник производительности (perfomance adviser) пишет, что очень мешает условие внутри цикла и рекомендует заменить его на более быстрый алгоритм. Копаю intrinsic для C674x, что-то не могу сообразить из них что-то эффективное. Конкретно, вот это условие: if(src_color!=colorkey)dst_color=src_color; Надо заменить на быстрое выражение, логика которого: ( SRC_COLOR == COLOR_KEY ? ) DST_COLOR : DST_COLOR=SRC_COLOR ; Причём, значение цветового ключа можно выбрать любым, какое будет удобно. Будет только одно значение цветового ключа. Подозреваю, лучшие значения 0 или FFFF. И всё-же как ускориться ?