Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Быстродействие ядра STR912
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
EKirshin
Кто-нибудь получал пиковую производительность 96 MIPS на указанном ядре?

Пытаемся выяснить, какая же действительно производительность ядра.

В цикле на asm дергаем вывод процессора. Получаем выходную частоту не более 5 МГц (т.е. 10Мгц частота ядра, если считать, что вывод занимает 1 такт - см. ниже).
PLL настроили на 96 МГц (N=192, M=25, P=2), делители частот шин и flash стоят = 1. PQFBC включили.

Где можно посмотреть количество тактов процессора на инструкции для этого процессора? Есть дока на ARM9TDMI, где указан 1 такт на команду STR (именно ей и пользуемся для вывода флага). Но соответствует ли ARM9TDMI и ARM966E?
SpiritDance
Хехе. По дерганью ногой значит частоту ядра получаете?Ж) А то что для вывода в переферию APB используется, Вас не смущает? Может хотябы ШИМ запустите с известными делителями тактовой?

Про интсрукции можно посмотреть в ARM referense manual, в доке на ядро 966 наверно тоже.

Ну а мипсы мерять ногодрыганьем - это Вы круто придумали. ГЫ.
EKirshin
Цитата(SpiritDance @ Feb 28 2007, 16:09) *
Хехе. По дерганью ногой значит частоту ядра получаете?Ж) А то что для вывода в переферию APB используется, Вас не смущает? Может хотябы ШИМ запустите с известными делителями тактовой?

Про интсрукции можно посмотреть в ARM referense manual, в доке на ядро 966 наверно тоже.

Ну а мипсы мерять ногодрыганьем - это Вы круто придумали. ГЫ.


Да, смущает. Решили посмотреть, какая будет задержка.
Частота у шины APB настроена равной частоте PLL (PCLK = fPLL=96 МГц). Это, получается, не означает, что данные передаются по этой шине за 1 такт?

На самом деле, выясняем не так. Запускаем какую-нибудь команду раз 50 (конечно, не в цикле, а линейно). Потом дергаем ногой. Но все равно, получается раза эдак в 2,5 меньше, чем по расчету. sad.gif
Например, запустить команду NOP (казалось бы, уж она-то должна за 1 такт выполняться - проще нет) 50 раз. Пересчитываем частоту - получается 39 МГц. А ведь хочется 96! Пробовали исполнять и из FLASH и из RAM - одно и то же. Включение PFQBC уменьшает задержку на jump'ах.
KRS
Цитата(EKirshin @ Feb 28 2007, 17:41) *
Цитата(SpiritDance @ Feb 28 2007, 16:09) *

Хехе. По дерганью ногой значит частоту ядра получаете?Ж) А то что для вывода в переферию APB используется, Вас не смущает? Может хотябы ШИМ запустите с известными делителями тактовой?

Про интсрукции можно посмотреть в ARM referense manual, в доке на ядро 966 наверно тоже.

Ну а мипсы мерять ногодрыганьем - это Вы круто придумали. ГЫ.


Да, смущает. Решили посмотреть, какая будет задержка.
Частота у шины APB настроена равной частоте PLL (PCLK = fPLL=96 МГц). Это, получается, не означает, что данные передаются по этой шине за 1 такт?

На самом деле, выясняем не так. Запускаем какую-нибудь команду раз 50 (конечно, не в цикле, а линейно). Потом дергаем ногой. Но все равно, получается раза эдак в 2,5 меньше, чем по расчету. sad.gif
Например, запустить команду NOP (казалось бы, уж она-то должна за 1 такт выполняться - проще нет) 50 раз. Пересчитываем частоту - получается 39 МГц. А ведь хочется 96! Пробовали исполнять и из FLASH и из RAM - одно и то же. Включение PFQBC уменьшает задержку на jump'ах.


50 раз маловато - погрешность измерения плюс дополнительные команды управления ногой...
надо или взять специальный тест
или в цикле что то считать, хотя бы 1/10 секунды
AlexandrY
Получал. biggrin.gif Но только после разгона до 130 Мгц
http://aly.projektas.lt/Projects/STR91_Start/STR91.htm#2

Интересно, ваши результаты совпадают с моими?

Цитата(EKirshin @ Feb 28 2007, 16:06) *
Кто-нибудь получал пиковую производительность 96 MIPS на указанном ядре?
SpiritDance
Цитата(EKirshin @ Feb 28 2007, 17:41) *
Частота у шины APB настроена равной частоте PLL (PCLK = fPLL=96 МГц). Это, получается, не означает, что данные передаются по этой шине за 1 такт?

Почему вы так решили? Арбитраж на шине apb не в счет? waitstates включены или нет? Например в at91sam7 любое обращение к этой шине занимает не меньше 3 тактов, на счет st не знаю, возможно больше. Мерять мипсы, задействуя шину обращения к преферии - плохая идея. В случае с армом наверно правильней будет задействовать стандартные бенчмарки. А с нопом у вас что-то не то.
EKirshin
Цитата(AlexandrY @ Feb 28 2007, 20:08) *
Получал. biggrin.gif Но только после разгона до 130 Мгц
http://aly.projektas.lt/Projects/STR91_Start/STR91.htm#2

Интересно, ваши результаты совпадают с моими?


Совпадают smile.gif
Только тест с одним переключением (только последовательное выполнение большого количества команд, линейно) в цикле не производился при выполнении из RAM. А для Flash результаты такие же.

Вы имеете ввиду, получили на 130МГц 96 MIPS или 130 MIPS?
Хочется получить количество MIPS равное частоте процессора (на выполнении простейших операций, конечно)
AlexandrY
Разогнал PLL до 130 МГц. И только тогда NOP-ы стали выполняться как при 96 MIPS-ах
Дело в том что доступ к TCM памяти в STR91x проходит где-то за 1.5 такта, а не за один.
И тех поддержка ST это вроде признала. Еще они отмазываются, де у них кэш вервлений еще не сделан нормально.
При выполнении из FLASH с таймингами еще сложнее.
Надо признать что новые LPC при меньшей частоте программу из FLASH выполняют быстрее чем STR91x.
Одно утешение, что voice кодеки и проч. DSP в STR91x на 30% выполняются быстрее чем на ARM7TDMI с той же частотой.

Цитата(EKirshin @ Mar 1 2007, 12:22) *
Вы имеете ввиду, получили на 130МГц 96 MIPS или 130 MIPS?
Хочется получить количество MIPS равное частоте процессора (на выполнении простейших операций, конечно)
SpiritDance
Цитата(AlexandrY @ Mar 1 2007, 13:40) *
Дело в том что доступ к TCM памяти в STR91x проходит где-то за 1.5 такта, а не за один.

Как это?1.5 такта? Да еще и где-то?w00t.gif
/* под столом */
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.