Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Мипсы-пипсы...
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Student21
Недавно совсем занимаюсь изучением микроконтроллеров...

Недавно задумался о производительности системы...ъ

Вот например у атмела в ARM9 заявлено 200MIPS, но SD-RAM, где выполняется программа работает лишь на 100MHz, ограничивая производительность....

и так на всех системах... тот же блекфин взять...-тоже самое.... (600MIPS а память 133MHz)

может я чего-то не понимаю... в чём подвох?

aaarrr
Цитата(Student21 @ Mar 2 2011, 19:30) *
может я чего-то не понимаю... в чём подвох?

В системе кэширования.
DpInRock
Токо у блэкфинов MMACS. Там мипсы не так интересны.
К примеру у 600 мегагерцового - 1200 MMACS. Ибо 2 алу.
Student21
Уважаемые форумчане.

Я хочу научится программировать микроконтроллеры на хорошем уровне. Но когда связалсе с чем-то более серьёзным чем AVR(Blackfin, ARM9). То сразу появляется масса вопросов.
Это стартапы, кэши... и пр.

Например программирую ARM9 взяв стартап и инициализацию перифирии из примеров.
Вобщем пишу на готовом проекте (частота процессора, стартам готовый, настроена SDRAM) свои программы (инициализирую счётчики, прерывания, получаю данные, обрабатываю) Вроде всё получается, но постоянное ощущение недопонимания...
например вот arrrr упомянул систему кэширования.... как это? что это?
что можно мне посоветовать в общем?
aaarrr
Цитата(Student21 @ Mar 2 2011, 21:00) *
что можно мне посоветовать в общем?

Нужно почитать Technical Reference Manual на используемое ядро.
DpInRock
А лучше википедию для начала. Чтоб просто для начала понять что это такое вообще.
Student21
Спасибо за наставления.

Но, забегая вперёд хочется узнать, сколько можно всётаки выжать из того или иного процессора (SAM9260, BF532...) в итоге.

Здесь наверное объём внутренней SRAM большую роль играет...
DpInRock
Что такое "выжать"?
У людей Rs232 на 3 Гигагерцовом пентюке тормозит...

Играет роль другое. Правильность выбора процессора для вашей задачи.
Если задача локальная - всегда можно подобрать оптимум.
Если глобальная, т.е. нечто универсальное вроде смартфона или подобного - то тут - чем больше всего, тем лучше.
Внутреннюю SRAM делают чаще маленькой. Для глобальных задач ее все равно недостаточно.
Student21
Ну я имею ввиду производительность в мат. операциях (возьмём БПФ на 2048 точек к примеру)
Понятно что BF с его двумя АЛУ лучше чем ARM.
Но если ничего кроме ARM нету. Работаем с тем что есть. Как точно с учётом реалий (конечная скорость вычислений с учётом частоты работы SDRAM, а не только MIPS процессора) посчитать те же MMAC на ARM.

тут упоминалась система кэширования. Как я понял её оптимизация поможет ускорить процесс...

растолкуйте немного обо всём этом...
DpInRock
Вот прочитали бы википедию про кэш, вопросы стали бы осмысленнее.

БПФ нужен для ЧЕГО-ТО. А не сам по себе, абстрактно.

К примеру 2048 точек для каждого нового отсчета - это одно.
А на экран вывести спектр - достаточно раз в 100 мс считать, чтобы получить картинку...
В первом случае вам потребуется DSP от Ti, а во втором - что угодно...
Student21
подразумевается что БПФ делается для реального времени (пока новые данные не пришли) блоками пусть по 2048 отсчётов.

ARM должен справится. Люди вон на AVR в реальном времени считают (правда короче выборка).

Но, как я понимаю тут надо учесть ещё и то, что по мимо математических у ARM ещё и другие задачи будут (ввод вывод данных).

Вот и возникает потребность в расчёте производительности (успеем/неуспеем)...

Методику бы какую-нибудь выроботать... как это обычно считается?

DpInRock
Ну очень просто.
У вас есть строго заданный период дискретизации.
К примеру 16 кгц.
Значит 2048 отсчетов будут приходить каждые 128 mc.
За 128 мс вам надо выполнить N операций.
Та как нужен запас - выбираете 1% или 50% или 99%...
К примеру, 50%.
Значит вы должны обсчитывать все за 64 мс.
mdmitry
Цитата(Student21 @ Mar 3 2011, 10:55) *
подразумевается что БПФ делается для реального времени (пока новые данные не пришли) блоками пусть по 2048 отсчётов.

ARM должен справится. Люди вон на AVR в реальном времени считают (правда короче выборка).

Сравните: 16 бит и 8 кГц или 16 бит и 50 МГц и выборка 2048. В первом случае проблем нет, а во втором .....

Определитесь со скорость входного потока данных, а далее оценивайте необходимые временные интервалы для обработки.

Уже опередили .....
Student21
Это всё понятно.
Скорость потока тоже известна.

Вобщем алгоритм требует 10MMACs. Думаю это уже показатель.

Но мне как-то заявили что например 1MAC(считать по указателям два опреанда посчитать и сложить их в аккумулятор) на AT91SAM9260 занимает 10 тактов (это если на чистом Си писать, на асме -5), а у нормального DSP 1 такт-минимум.
А у BF как я понял вообще 2 MAC за такт.

как может выглядеть МЕТОДИКА расчёта производительности с учётом количества MMACs для алгоритма, с учётом скорости шины (если выполняться из SDRAM, а никакое нормальное приложение не поместится во внутреннюю более быструю память), а так же у учётом дополнительных - "сервисных" задач: ввод/вывод данных, различные прерывания служебные....
ну ещё можно учесть количество операций за 1 такт.
DpInRock
Ну применяйте логическое мышление.
Рассчитайте худший случай, лучший... Поделите пополам. Приклейте к потолку и посмотрите в течении часа. Если бумажка отлетит, повторить расчет заново.

Как вам тут уже говорили, нарисуйте потоки данных.
Там, от кодека идет поток 64к\sec. Проходит сквозь обработку и выходит на экран или там в ethernet или еще куда.
Решите задачку для второго класса

1 секунда - 1200 000 000 операций
0.064 секунды - x операций

Чему равен х?

Второе действие
(X\1200 000 000)*100 == что это такое будет?
Student21
ясно.

А возможно ли реализовать такое:

пока один блок обрабатывается, другой записывается в sram(кэш) и оттуда берётся уже для обработки.
теоретически?
Хотя бы фильтр, где по 1 отсчёту считаем - так реализовать можно.
Для ДПФ мои блоки нив какую SRAM не влезут (10000 выборок - 20кБ)...
Ну хотябы для скорости коэффиценты фильтров можно в кэше хранить...
DpInRock
Да прочитайте вы наконец википедию про кэш...
Кэш вы настраиваете. А проц сам догадывается как его использовать. 1000 человек в интеле каждый день про это думают думу.
Вы только ему не мешаете. И алгоритмы строите так, чтоб не мешать сильно.

Есть механизмы прямого доступа к памяти.
Если вам не хватает памяти - решение простое - поставьте ея. Скоко надо. Благо ее завались всякой разной.
А 20 килобайт вы отыщете в практически любом маленьком арме.
Даже раза в три больше.
Student21
А у меня SAM9260.
B в нём её 4 кБ.
И туда получится только коэффиценты фильтров запихать

Я вот считаю так:
10MMACs требует алгоритм.
Полагаю что для 1MAC ARM9 требует 10циклов (да, интересно сколько ему надо на самом деле, если код работает из SDRAM?)
Прога работает из SDRAM, тогда частота 100Mhz.
Получается впритык 1сек. Не годится так как нужно время ещё для ввода/вывода... умножаем раз эдак на два......
получается 2 сек думать будет...
....

Ну ход мыслей правильный? в общем?

только вот кол-во тактов на MAC(извлечение двух операндов умножение-сложение, помещение результата в аккумулятор) надо поточнее узнать...
DpInRock
Упасть.
1. Оно снято с производства давно. Это раз.
2. У этого процессора есть кэш. И вот внутри кэша программа работает на полной скорости.
Вам только надо обеспечить, чтобы в нужный момент ваши рысканья по коду программы не были дальше размера кэша.

3. Читать отсчеты из медленной памяти - вполне нормально. Они вам не так часто нужны.
Но если и тут туго - 32 разрядная память в два раза быстрее работает, однако. За раз - два отсчета.

4. У этого проца и кэш данных тоже есть.

5. Выбростье эту плату и одной проблемой станет меньше.

--

Кроме того, сам алгоритм можно разместить в сраме, он небольшой.
А кэш будет помогать остальной части кода, к примеру.
(Т.е. не всю срам можно выделять под кэш).
Student21
Вот это новость!
Но в у чебных целях хоть сгодится... тот же G45 от Atmel имеет то же ядро...


Не пугайте меня, тот же G20 не далеко ушёл... да внутра срама поболе...
DpInRock
Вообще-то все армы 9 имеют одно и тоже ядро. (Примерно).
Не в ядре дело.

G20 - имеет 400 мгц частоту, для начала. И DDR контроллер.
Student21
ну тем не менее... "викинуть плату" - это радикально...)

Цитата(DpInRock @ Mar 3 2011, 16:47) *
Вообще-то все армы 9 имеют одно и тоже ядро. (Примерно).


...значит не зря вожусь...

И, кстати откуда информация что SAM9260 снят с производства? Ничего не нашёл по этому поводу в сети.
DpInRock
Тратить время на изучение мертвого проца - лучше выкинуть.
Но если есть готовая плата на столе - изучайте.
Опыт этот вполне пригодится.
Тем более от вас никто не требует реального приложения.

Ну, поищите на сайте производителя, например. Как-то логичнее, чем в "сети".
Попробуйте скачать даташит на него. Именно на 9260. И вообще, увидеть его там.
Student21
увидел...
http://www.atmel.com/dyn/products/product_...mp;part_id=3870

Да и потом тот же 9XE тличается флешем только... а так один в один.
DpInRock
Токо переведите пжалста название раздела, в которым вы его отыскали.
vallav
Цитата(Student21 @ Mar 3 2011, 15:19) *
А у меня SAM9260.
B в нём её 4 кБ.
И туда получится только коэффиценты фильтров запихать

Я вот считаю так:
10MMACs требует алгоритм.
Полагаю что для 1MAC ARM9 требует 10циклов (да, интересно сколько ему надо на самом деле, если код работает из SDRAM?)
Прога работает из SDRAM, тогда частота 100Mhz.
Получается впритык 1сек. Не годится так как нужно время ещё для ввода/вывода... умножаем раз эдак на два......
получается 2 сек думать будет...
....

Ну ход мыслей правильный? в общем?

только вот кол-во тактов на MAC(извлечение двух операндов умножение-сложение, помещение результата в аккумулятор) надо поточнее узнать...


Возьмите чип, специально приспособленный для расчета фильтров, в котором чтение обоих операндов из памяти, умножение и прибавление
с масштабированием за один такт. То есть тактов на одну точку нужно столько, сколько в фильтре коэффицентов.
Это многие ДСП умеют.
Например TMS320F28069 от Ti www.ti.com
Если не хватит тактовой ( 80 МГц ) там есть чипы пошустрее.
Student21
Цитата(vallav @ Mar 3 2011, 17:23) *
Например TMS320F28069 от Ti www.ti.com
Если не хватит тактовой ( 80 МГц ) там есть чипы пошустрее.


Если бы было всё так просто. Когда появятся в продаже платы с минимум 16mb SDRAM на борту - обязательно возьму TMS320F28069.
А покупать кит за 12 штук... не хотса...
вот на bfmodul.narod.ru ещё можно взять девайс... давно на него смотрю.

Цитата(DpInRock @ Mar 3 2011, 17:07) *
Токо переведите пжалста название раздела, в которым вы его отыскали.


Да согласен. Наверное не выпускают. НО! Вместо него выпускают SAM9XE - абсолютно тоже самое, что и мой девайс, только флешка на борту.
прекращение выпуска SAM9260 логично. Просто выпустили тоже самое pin-to-pin но с флэшем.

Вот когда SAM9XE закроют, тогда и выкину плату)
DpInRock
Хорошо. Не выкидывайте.
Просто купите другую.
MINI 8100 - 4300 руб. Развлечения на всю жизнь. ARM+DSP в одном флаконе.
Или если - то купить по почте - 139 баксов.
--
А вот чисто наблюдения.
Если чего хочешь сделать, то дешевле всего делать на собственном компьютере (который при желании можно сделать за те же 4300 руб).
Но при этом вычислительная мощность, наличие софта - несопоставимы.
Student21
Дешевле то может и дешевле. Я алгоритм уже весь отладил на компе(приложение на билдере). Но хочется железки руками потрогать.

Да и потом, приятно написать строчку в резюмешке в будущем:

- опыт работы с ARM9...

это так, досужие рассуждения.
aaarrr
Цитата(DpInRock @ Mar 3 2011, 16:47) *
G20 - имеет 400 мгц частоту, для начала. И DDR контроллер.

Не пугайте, нет там DDR.
Student21
Цитата(DpInRock @ Mar 3 2011, 19:05) *
Хорошо. Не выкидывайте.
Просто купите другую.
MINI 8100 - 4300 руб. Развлечения на всю жизнь. ARM+DSP в одном флаконе.
Или если - то купить по почте - 139 баксов.
--
А вот чисто наблюдения.
Если чего хочешь сделать, то дешевле всего делать на собственном компьютере (который при желании можно сделать за те же 4300 руб).
Но при этом вычислительная мощность, наличие софта - несопоставимы.


АГА!
я тут глянул краешком глаза про MINI8100:

"...оветую перед тем как начать мучать сам модуль изучить документацию на процессор, она очень объемная. Technical Reference Manual весит гдето 48 мег и 3427страниц, Лев Толстой отдыхает , еще пришлось штудировать документацию к ARM Cortex-A8 и просто к ARM v7 т.к. из TechRef по поводу работы ARM отсылают туда"
Для моих алгоритмов это бомбой по воробьям...
DpInRock
Ну, с Давинчи скрестил. Последнюю неделю заказчик на ходу меняет процессоры от Давинчи 6443 до G20 и G45. Остановился на DSP 6455 от Ti.
На сегодня. Посему все даташиты на все процессоры пока не рассосались из памяти.
vallav
Цитата(Student21 @ Mar 3 2011, 18:42) *
Если бы было всё так просто. Когда появятся в продаже платы с минимум 16mb SDRAM на борту - обязательно возьму TMS320F28069.
А покупать кит за 12 штук... не хотса...
вот на bfmodul.narod.ru ещё можно взять девайс... давно на него смотрю.


Так купите кит за 40$.
Да, там нет 16mb SRAM, но есть другие вкусности, например - 4 ALU, PWM с дискретом 0.15 нс, измерение интервала (HRCAP) с дискретом
0.3 нс.




Student21
Цитата(vallav @ Mar 4 2011, 09:38) *
Так купите кит за 40$.
Да, там нет 16mb SRAM, но есть другие вкусности, например - 4 ALU, PWM с дискретом 0.15 нс, измерение интервала (HRCAP) с дискретом
0.3 нс.


это какой!
vallav
Цитата(DpInRock @ Mar 3 2011, 19:05) *
Хорошо. Не выкидывайте.
Просто купите другую.
MINI 8100 - 4300 руб. Развлечения на всю жизнь. ARM+DSP в одном флаконе.
Или если - то купить по почте - 139 баксов.
--


Плату нашел за 174$ но это встраиваемый модуль
А fully evaluate ( SBC 8100 ) за 465$ без LCD и за 579$ с 5" LCD
Как то не вдохновляет...

Student21
vallav, так что за плата за 40$?
vallav
Цитата(Student21 @ Mar 4 2011, 09:55) *
это какой!


Digi-key
296-28115-ND 40.50000 40.50
DEV STICK USB PICCOLO F28069
DpInRock
Нафига вам материнская плата. Покупаете маленький модуль. С обратной стороны разъем.
Всё.
Но есть и совсем готовые к употреблению недорого.
Но лучше иметь ядро. А уж обвеску самому сделать. Ничего лишнего.

Зато дешево получаете огого.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.