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

 
 
> Cortex-M7 кол-во циклов на инструкцию
Шаманъ
сообщение Apr 28 2017, 08:04
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Приветствую всех!

А есть ли какой-нить инструмент, или хотя бы таблица по теме? Понимаю, что там конвейер со всеми делами, но как-то же нужно в этом всем ориентироваться?

Например у DSP56300 можно скормить ассемблеру опцию и он в листинге дает кол-во циклов отдельной колонкой (учитывая конвееризацию и показывая возникающие простои конвейера).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Шаманъ
сообщение May 3 2017, 16:12
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(jcxz @ May 3 2017, 16:44) *
Это работает так:

Да, у Вас получается вариант регулирования с обратной связью, у меня вариант прямого регулирования.

Цитата
Если частоты генераторов различаются в ту или иную сторону, то этот уровень загрузки будет постепенно смещаться в сторону участка A или C (тоже с биениями) и в конце-концов - залезет в A или C, где и устаканится на некотором значении (будет болтаться возле него), до тех пор, пока разница частот не изменится (например из-за влияния температур на генераторы) и тогда может поползти в обратную сторону.

Т.е. реализован обычный пропорциональный регулятор с ОС и зоной нечувствительности. А почему интегратор не добавили? Логично добавить интегратор, чтобы система стала астатической. Тогда после коррекции буфер возвратится на участок В (может правда интегрирование есть, но я не понял этого из описания).

С одной стороны, при высокой долговременной стабильности генераторов зона нечувствительности это плюс, но как только мы начинаем "плыть", она становится минусом, т.к. без нее корректировка начнется раньше и будет проходить "плавнее" = с меньшей модуляцией основного сигнала, а с таким алгоритмом чем быстрее уплывает частота, тем агрессивнее коррекция, что при высокой скорости уплывания опять становится плюсом sm.gif. Интересно посмотреть, как это выглядит при объективном контроле - Вы случайно не делали замеров типа спектров, как я выше выкладывал?
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 4 2017, 08:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Шаманъ @ May 3 2017, 18:12) *
А почему интегратор не добавили? Логично добавить интегратор, чтобы система стала астатической. Тогда после коррекции буфер возвратится на участок В (может правда интегрирование есть, но я не понял этого из описания).

А зачем интегратор? Участки A и C сами по себе являются интеграторами, точнее - их длина. Если нужна большая "интегрируемость", то увеличиваем размер этих участков (они становятся более пологими) и всё.
И нет - указатель буфера не должен возвращаться на участок B, если между генераторами есть постоянная разница частот (в несколько ppm например из-за их погрешности). Он должен находиться на участке A или C, на некотором удалении от его границы с B. Величина этого удаления как раз и определяется разностью частот. Если разность частот постоянна - он как раз и будет стабильно находиться в той точке, внося свой дополнительный вклад в произведение коэффициентов ресэмплинга. Ну т.е. в реале из-за джиттера он конечно не находится всё время в одной точке, а колеблется около неё. Нужен больший интервал интегрирования - просто увеличиваем размеры участков A и C, делаем их более пологими, можно вообще размер участка B свести к 0 даже.
Можно обойтись вообще без участка B, но у меня характер потока такой, что при старте онлайн-радиостанции выплёвывают сразу бОльший объём траффика чем соответствует битрейту. Т.е. - воспроизведение стартует как бы из прошлого на несколько секунд. Радиостанция таким образом как я понимаю обеспечивает пребуферизацию, чтобы не было провалов воспроизведения. Но размер этой пребуферизации у каждой радиостанции свой и заранее не известен. Поэтому, чтобы у меня сразу при старте воспроизведения, не уходил поток в зону ресэмплинга, я и ввёл участок B. Его размер я выбрал экспериментально - пробовал с разными радиостанциями и постарался чтобы все они при старте своей пребуферизацией не вылезали за пределы участка B.

Цитата(Шаманъ @ May 3 2017, 18:12) *
С одной стороны, при высокой долговременной стабильности генераторов зона нечувствительности это плюс, но как только мы начинаем "плыть", она становится минусом, т.к. без нее корректировка начнется раньше и будет проходить "плавнее"

Эта зона у меня выбрана такой большой именно из-за необходимости пропустить пребуферизацию онлайн-радиостанций.
И скоростью потока данных от радиостанции я не могу управлять (WiFi-модуль не предоставляет средств управления потоком, типа окна в TCP-сокете).

Цитата(Шаманъ @ May 3 2017, 18:12) *
Интересно посмотреть, как это выглядит при объективном контроле - Вы случайно не делали замеров типа спектров, как я выше выкладывал?

Нет. Да мне не особо интересно какой там спектр. На слух в сигнале не ощущается каких-то искажений - и ладно, так как только это и нужно. sm.gif
Вот когда в потоке идут большие провалы (бывает некоторые радиостанции изредка приостанавливают поток на неск. секунд, а может и не радиостанции, а что-нить по WiFi), то указатель буфера смещается на участок A и это слышно сразу искажением звуковых частот и замедлением. А потом, когда эта пробка прочищается - наоборот - происходит выброс большого объёма данных и может улететь на участок C (но не всегда как раз из-за размера участка cool.gif.
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение May 4 2017, 14:03
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(jcxz @ May 4 2017, 11:27) *
А зачем интегратор?

Если посмотреть на проблему "под другим углом", а именно установить конечную цель/критерий работы алгоритма определения соотношения частот поддержание оптимального заполнения буфера (50%), то без интегратора получится статическая САУ. Т.е. заполненность буфера будет определяться соотношением частот источника/приемника. При наличии интегратора САУ приобретет астатизм первого порядка, т.е. ошибка при наличии статичного расхождения частот будет равна 0.

Я вчера поэкспериментировал с этим алгоритмом - работает и как у Вас, и с интегратором. Есть некоторые нюансы, как у любой замкнутой САУ, но то такое.

Насчет джиттера - в конечном итоге, как ни крути, хоть с прямым управлением, хоть с ОС все определяет фильтр, которым усредняется коэффициент ресемплинга (что неудивительно - ведь фактически через этот коэффициент осуществляется ЧМ) sm.gif Но с прямым замером можно обойтись менее агрессивной фильтрацией, ускорить реакцию системы и уменьшить размер буфера/задержу при одинаковом джиттере, т.к. точность и разрешающая способность единичного замера намного выше. Кроме того данные синхронизации доступны при отключенном аудиоустройстве. Для моего применения все это весьма существенно.

Сейчас сделал с замером периодов USB SOF и SAI FS двумя таймерами, потом деление и ФНЧ первого порядка => коэффициент ресэмплинга. Заполняемость буфера "гуляет" от 77 до 81 сэмплов. Учитывая обработку блоками по 4 сэмпла можно сказать, что буфер стоит на месте (как и должно быть) sm.gif - можно его раза в четыре меньше сделать. Немного напрягают меня палки на спектре (в сравнении с матлабовской моделью), скорее всего это ошибки округления, ну или я где-то налажал в фильтре laughing.gif - надо будет поразбираться. А так, вот пример уже вместе с ДСП, с синхронизацией от его клока:
Прикрепленное изображение
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Шаманъ   Cortex-M7 кол-во циклов на инструкцию   Apr 28 2017, 08:04
- - Obam   В TechRefMan-е на M7 раздела "Instruction Tim...   Apr 28 2017, 08:45
- - =SSN=   Цитата(Шаманъ @ Apr 28 2017, 11:04) А ест...   Apr 28 2017, 08:59
- - Шаманъ   Цитата(Obam @ Apr 28 2017, 11:45) но есть...   Apr 28 2017, 10:36
|- - jcxz   Цитата(Шаманъ @ Apr 28 2017, 12:36) Похож...   Apr 28 2017, 10:41
|- - Obam   Цитата(Шаманъ @ Apr 28 2017, 14:36) Так д...   Apr 28 2017, 11:00
|- - jcxz   Цитата(Obam @ Apr 28 2017, 13:00) Ну сами...   Apr 28 2017, 11:46
- - Шаманъ   Цитата(jcxz @ Apr 28 2017, 13:41) ...если...   Apr 28 2017, 11:47
|- - Obam   Цитата(Шаманъ @ Apr 28 2017, 15:47) Я ж п...   Apr 28 2017, 12:13
|- - jcxz   Цитата(Шаманъ @ Apr 28 2017, 13:47) В том...   Apr 28 2017, 20:03
|- - Obam   Цитата(jcxz @ Apr 29 2017, 00:03) Везёт В...   Apr 29 2017, 10:05
|- - jcxz   Цитата(Obam @ Apr 29 2017, 12:05) И кто ж...   Apr 29 2017, 10:33
|- - adnega   Цитата(Obam @ Apr 29 2017, 13:05) И кто ж...   Apr 29 2017, 10:34
|- - jcxz   Цитата(adnega @ Apr 29 2017, 12:34) В нек...   Apr 29 2017, 10:39
|- - Obam   Цитата(adnega @ Apr 29 2017, 14:34) В нек...   Apr 29 2017, 14:39
|- - adnega   Цитата(Obam @ Apr 29 2017, 17:39) А в как...   Apr 29 2017, 16:47
|- - jcxz   Цитата(Obam @ Apr 29 2017, 16:39) А в как...   Apr 29 2017, 20:30
|- - Obam   Цитата(jcxz @ Apr 30 2017, 00:30) Что за ...   Apr 30 2017, 08:07
|- - adnega   Цитата(Obam @ Apr 30 2017, 11:07) а оказы...   Apr 30 2017, 09:20
- - scifi   Цитата(Шаманъ @ Apr 28 2017, 13:36) Похож...   Apr 28 2017, 13:14
|- - Шаманъ   Цитата(scifi @ Apr 28 2017, 16:14) Разреш...   Apr 28 2017, 13:41
- - romas2010   По хорошему надо бы ввести в архитектуру банки рег...   Apr 28 2017, 14:51
|- - jcxz   Цитата(romas2010 @ Apr 28 2017, 16:51) По...   Apr 28 2017, 15:51
- - Шаманъ   Народ, а есть ли какие-нить вменяемые benchmarks п...   Apr 28 2017, 17:06
- - ViKo   Обычно было 2 bitband зоны - для переменных в ОЗУ ...   Apr 30 2017, 08:39
|- - jcxz   Цитата(ViKo @ Apr 30 2017, 10:39) Обычно ...   Apr 30 2017, 11:53
- - Obam   Код кроме ядра некому исполнять (; и наличие возмо...   Apr 30 2017, 11:36
- - Шаманъ   Сваял ASRC, получилось примерно 4 такта на тап или...   May 1 2017, 03:48
|- - scifi   Цитата(Шаманъ @ May 1 2017, 06:48) DWT по...   May 1 2017, 07:12
||- - Шаманъ   Цитата(scifi @ May 1 2017, 10:12) Если по...   May 1 2017, 14:08
|- - ig_z   QUOTE (Шаманъ @ May 1 2017, 06:48) Сваял ...   May 1 2017, 15:08
- - Genadi Zawidowski   У меня перенос части кода в itcm дал устойчивый пр...   May 1 2017, 16:51
- - Шаманъ   Цитата(ig_z @ May 1 2017, 18:08) А зачем ...   May 1 2017, 19:02
- - ig_z   QUOTE (Genadi Zawidowski @ May 1 2017, 19...   May 1 2017, 20:00
|- - KnightIgor   Цитата(ig_z @ May 1 2017, 21:00) Это коне...   May 2 2017, 13:21
- - Genadi Zawidowski   ЦитатаПоэтому, если у вас есть пример, как воспрои...   May 1 2017, 20:26
|- - jcxz   Цитата(Genadi Zawidowski @ May 1 2017, 22...   May 2 2017, 12:29
|- - Шаманъ   Цитата(jcxz @ May 2 2017, 15:29) Как я по...   May 2 2017, 12:45
|- - jcxz   Цитата(Шаманъ @ May 2 2017, 14:45) DSP пр...   May 2 2017, 13:44
|- - Шаманъ   Цитата(jcxz @ May 2 2017, 16:44) Так ведь...   May 3 2017, 07:01
- - Шаманъ   Цитата(ig_z @ May 1 2017, 23:00) Я постоя...   May 2 2017, 12:07
- - Genadi Zawidowski   ЦитатаИ почему Вы сделали выкидывание/добавление с...   May 2 2017, 22:09
|- - jcxz   Цитата(Genadi Zawidowski @ May 3 2017, 00...   May 3 2017, 08:50
|- - Шаманъ   Цитата(jcxz @ May 3 2017, 11:50) Имхо - у...   May 3 2017, 11:56
|- - jcxz   Цитата(Шаманъ @ May 3 2017, 13:56) Теперь...   May 3 2017, 12:13
|- - Шаманъ   Цитата(jcxz @ May 3 2017, 15:13) А что-ж ...   May 3 2017, 12:38
|- - jcxz   Цитата(Шаманъ @ May 3 2017, 14:38) Приспо...   May 3 2017, 12:44
|- - Шаманъ   Цитата(jcxz @ May 3 2017, 15:44) отдавать...   May 3 2017, 13:03
|- - jcxz   Цитата(Шаманъ @ May 3 2017, 15:03) А как ...   May 3 2017, 13:44
- - Genadi Zawidowski   Можно ли наплевать на спектральные "прострелы...   May 3 2017, 07:42
|- - Шаманъ   Цитата(Genadi Zawidowski @ May 3 2017, 10...   May 3 2017, 08:19
|- - Шаманъ   Цитата(Genadi Zawidowski @ May 3 2017, 10...   May 3 2017, 09:08
- - Шаманъ   Ну вот, палки поборол тоже Как и предполагал прич...   May 5 2017, 09:47


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

 


RSS Текстовая версия Сейчас: 19th August 2025 - 19:01
Рейтинг@Mail.ru


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