реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Мипсы-пипсы..., помогите разобраться
Student21
сообщение Mar 2 2011, 16:30
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 11-12-10
Пользователь №: 61 546



Недавно совсем занимаюсь изучением микроконтроллеров...

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

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

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

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

Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 2 2011, 16:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

В системе кэширования.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 2 2011, 16:48
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Токо у блэкфинов MMACS. Там мипсы не так интересны.
К примеру у 600 мегагерцового - 1200 MMACS. Ибо 2 алу.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Student21
сообщение Mar 2 2011, 18:00
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 11-12-10
Пользователь №: 61 546



Уважаемые форумчане.

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

Например программирую ARM9 взяв стартап и инициализацию перифирии из примеров.
Вобщем пишу на готовом проекте (частота процессора, стартам готовый, настроена SDRAM) свои программы (инициализирую счётчики, прерывания, получаю данные, обрабатываю) Вроде всё получается, но постоянное ощущение недопонимания...
например вот arrrr упомянул систему кэширования.... как это? что это?
что можно мне посоветовать в общем?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 2 2011, 18:03
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Student21 @ Mar 2 2011, 21:00) *
что можно мне посоветовать в общем?

Нужно почитать Technical Reference Manual на используемое ядро.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 2 2011, 18:12
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



А лучше википедию для начала. Чтоб просто для начала понять что это такое вообще.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Student21
сообщение Mar 3 2011, 06:54
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 11-12-10
Пользователь №: 61 546



Спасибо за наставления.

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

Здесь наверное объём внутренней SRAM большую роль играет...

Сообщение отредактировал Student21 - Mar 3 2011, 06:54
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 3 2011, 07:28
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Что такое "выжать"?
У людей Rs232 на 3 Гигагерцовом пентюке тормозит...

Играет роль другое. Правильность выбора процессора для вашей задачи.
Если задача локальная - всегда можно подобрать оптимум.
Если глобальная, т.е. нечто универсальное вроде смартфона или подобного - то тут - чем больше всего, тем лучше.
Внутреннюю SRAM делают чаще маленькой. Для глобальных задач ее все равно недостаточно.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Student21
сообщение Mar 3 2011, 07:34
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 11-12-10
Пользователь №: 61 546



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

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

растолкуйте немного обо всём этом...
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 3 2011, 07:47
Сообщение #10


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



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

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

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


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Student21
сообщение Mar 3 2011, 07:55
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 11-12-10
Пользователь №: 61 546



подразумевается что БПФ делается для реального времени (пока новые данные не пришли) блоками пусть по 2048 отсчётов.

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

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

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

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



Сообщение отредактировал Student21 - Mar 3 2011, 08:13
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 3 2011, 10:27
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Ну очень просто.
У вас есть строго заданный период дискретизации.
К примеру 16 кгц.
Значит 2048 отсчетов будут приходить каждые 128 mc.
За 128 мс вам надо выполнить N операций.
Та как нужен запас - выбираете 1% или 50% или 99%...
К примеру, 50%.
Значит вы должны обсчитывать все за 64 мс.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Mar 3 2011, 10:31
Сообщение #13


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Student21 @ Mar 3 2011, 10:55) *
подразумевается что БПФ делается для реального времени (пока новые данные не пришли) блоками пусть по 2048 отсчётов.

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

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

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

Уже опередили .....


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Student21
сообщение Mar 3 2011, 10:39
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 11-12-10
Пользователь №: 61 546



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

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

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

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

Сообщение отредактировал Student21 - Mar 3 2011, 10:46
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 3 2011, 11:30
Сообщение #15


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Ну применяйте логическое мышление.
Рассчитайте худший случай, лучший... Поделите пополам. Приклейте к потолку и посмотрите в течении часа. Если бумажка отлетит, повторить расчет заново.

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

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

Чему равен х?

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

Сообщение отредактировал DpInRock - Mar 3 2011, 11:36


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01439 секунд с 7
ELECTRONIX ©2004-2016