ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
7 мая
23038
SM (01.03.2005 20:21, просмотров: 709)
2 AlexandrY к скоростимерным делам Вот скомпилячил тест: ARM9 (EPXA1F484C3). Компилер CCS 2.30, данные и код в DDR-SDRAM, ядро на 133 мгц, DDR на той-же частоте (266 мгц). Оптимизация полная (file-level, auto-inlining, speed) Отладчик XDS-510, кол-во тактов получено профайлером на макете. 32-bit IEEE double: 29582793 тактов 64-bit IEEE double: 47016745 тактов Нюанс: в библиотеке нет функций "cosf, sinf" и так далее - посему вся тригонометрия и прочие функции вычислялись в обоих вариантах в 64-bit IEEE double. Так что в 32-битном варианте реально 32-битной была только арифметика - сложить, умножить, разделить и вычесть. TMS320C6711BGFN - измерения профайлером CCS'а через JTAG на макете. компилер CCS 2.30. Оптимизация полная (file-level, auto-inlining, software pipelining, speculative threshold=56) на скорость. проц живет на 150 мгц, SDRAM на 100 мгц. Код, данные, стек, все в куче в SDRAM. Кеш в режиме 32К кеша L2, и 32К L2 SRAM (пустует). 32-bit IEEE float: либа rts6700.lib : 1550744...1587836 тактов (0.159c/10МГц) либа fastrts67x.lib : 736721...771117 тактов (0.077c/10МГц) 64-bit IEEE double: либа rts6700.lib : 5798756...5800312 тактов (0.58с/10мгц) либа fastrts67x.lib : 3312556...3321650 тактов (0.33c/10мгц) Разброс тактов - так как начальное состояние кеша разное, и клоки для SDRAM и ядра с разных источников, несинхронность вызывает тормоза, зависящие от фазы луны. Сорри, но макет такой вот уж у меня. Поперезапускал с резетом и без резета раз по 10, и написал худшее и лучшее.