Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 11.11.2010, 18:52  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Ну значит в ST дебилы сидят. Или напротив - там думают что пользователи - дебилы. Они ведь в документации приоритеты расписали и четко указали, что только высший приоритет для DMA может притормозить CPU. Но и при других приоритетах DMA как то работает. Несмотря на то, что ядро имеет более высокий приоритет. А вот по Вашей логике кроме высшего все остальные приоритеты неработоспособны в принципе. Типа DMA будет вечно ждать когда же ядро шину освободит
Ниоткуда не значит, что там или здесь дебилы, но документация сырая, плохо систематизирована, приходится о многом догадываться.

Вот что вычитал. Цпу и дма каждый такт претендуют на общие ресурсы:
1) периферийная шина,
2) шина озу
3) программная шина.

Если ресурс (шина) свободна в данный такт, ядро или дма получает его в соответствии с приоритетом дма.

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

После захвата ресурса ни цпу, ни другие дма не могут прервать трансфер. После завершения трансфера ресурс освобождается.
Реклама:
=GM= вне форума  
Непрочитано 11.11.2010, 19:00  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от =GM= Посмотреть сообщение
Наивысший приоритет дма принудительно ЗАБИРАЕТ нужный ему ресурс, невзирая на звания и регалии, в противном случае дма ожидает освобождения ресурса либо от ядра, либо от других дма с более высоким приоритетом.
Вот так куда лучше. При 3 тактах на транзакцию в худшем случае притормозим ядро на 2 такта. В лучшем совсем не затормозим. В среднем - тормозим на 1 такт. При 1000000 транзакций в секунду и 16МГц тактовой загрузка составляет чуть выше 6%. Накинем до 10, типа на всякий случай. Останется 90% времени свободного чтоб 2х2 умножать.
А что документация сырая, так это точно. Причем не только на STM8, это видимо фича у ST такая.
kison вне форума  
Непрочитано 11.11.2010, 20:55  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Не, лучше рассчитывать на 3 такта из-за конвейера, в нём размазаны 3 команды на разных этапах исполнения. Представим себе ситуацию, что необходимо пополнить конвейер именно в тот момент, когда случился запрос дма. Возможно, ядро закончит эти команды, но затем надо будет заполнить конвейер заново, а это три такта. Такая ситуация будет встречаться достаточно регулярно.

Впрочем, 3/16 или даже 5/16 (в случае использования 12 бит для цапа) занимают менее трети процессорного времени, что тоже неплохо.

Обычно требуется жёстко фиксированное время для выдачи отсчётов, поэтому дма должен иметь высший приоритет.

Скачал stvd. Кажется, его можно использовать, как симулятор, так ведь?

Последний раз редактировалось =GM=; 11.11.2010 в 20:59.
=GM= вне форума  
Непрочитано 12.11.2010, 05:55  
IgorAVR2
Прописка
 
Регистрация: 06.09.2007
Сообщений: 122
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
IgorAVR2 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Ну и еще по ценам - взял в розницу 8L151 по 46р. От 100 штук предлагают по 36.
Уважаемый kison, где вы берёте stm8l151 по 46 рублей?
__________________
www.creativelectro.spb.ru - Креативная электроника.
IgorAVR2 вне форума  
Непрочитано 12.11.2010, 09:28  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от =GM= Посмотреть сообщение
Не, лучше рассчитывать на 3 такта из-за конвейера, в нём размазаны 3 команды на разных этапах исполнения. Представим себе ситуацию, что необходимо пополнить конвейер именно в тот момент, когда случился запрос дма. Возможно, ядро закончит эти команды, но затем надо будет заполнить конвейер заново, а это три такта. Такая ситуация будет встречаться достаточно регулярно.
Нет, из трех тактов минимум один будет выполнен при свободной шине. Остаются два - на них возможен конфликт. А с конвейером никаких проблем, DMA никак не помешает выполнению команд и заполнению конвейера. Ведь к флеши доступа у DMA нет, соответственно и конфликт из за этой шины невозможен.

Сообщение от =GM= Посмотреть сообщение
Обычно требуется жёстко фиксированное время для выдачи отсчётов, поэтому дма должен иметь высший приоритет.
Нет, данные идут в буферный регистр ЦАП, а не прямо на выход. Переписываются в выходной регистр аппаратно по таймеру. Так что надо чтоб DMA справилось в течении 16 тактов, но неважно когда точно. Все это про встроенный ЦАП ес-но. С наружным придется или высший приоритет давать DMA, либо внешний буфер с защелкой тактируемый тем же таймером, что и DMA.
Сообщение от =GM= Посмотреть сообщение
Скачал stvd. Кажется, его можно использовать, как симулятор, так ведь?
Можно. Неясно только симулируется ли DMA.
Сообщение от IgorAVR2 Посмотреть сообщение
где вы берёте stm8l151 по 46 рублей?
Если Вы из Питера - скину в личку. Но по почте там не шлют. А предложений море -
http://www.efind.ru/icsearch/?search...tner=&x=26&y=1
Вот например - http://elitan.ru/price/index.php?see...rtname&mfg=all
И промэлектронику посмотрите.
kison вне форума  
Непрочитано 12.11.2010, 11:30  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

При любом раскладе, даже если на транзакцию ядро полностью тормозится (а мне всётаки кажется это более вероятным) выигрыш на нормальной, а не синтетической задаче, будет всё равно.Другое дело, что в микроконтроллерах, использование DMA всёже редко приходится делать. Уж на очень спицифичных задачах. Возьмём, к примеру, тот же вывод данных на ЦАП. Как вы говорите, доступа к флэши ПДП не имеет. Соответственно перекачка идёт из ОЗУ. Но там, эти данные должны откуда-то появится. Соответственно, я каким-то образом расчитываю текущие выборки и вывожу в память, чтобы потом передать, посредством DMA в порт. Но операция вывода в память занимает по времени ровно столько же сколько и вывод в порт. То есть я ускорить не могу в принципе. Соответственно DMA может только замедлить, но никак не ускорить вывод. Другое дело, что заполнение буфера может быть асинхронным, а вывод синхронным, и соответственно, я могу выиграть за счёт уменьшения работы по синхронизации. Но, скорее всего, я просто получу больше удобства и комфорта, а не выигрыш в скорости. Аналогично и ввод значений АЦП в память.

Фактически, при жёстких требованиях к синхронизации - альтернатива ПДП есть прерывания. При прерываниях мы теряем время на вход-выход. Чем выше скорость передачи данных, тем более эфективным является ПДП. На каком-то этапе накладные расходы на прерывания превышают разумные границы (прерывания идут одно за одним). С этого момента они теряют смысл и строится синхронный вывод (вариант задачи =GM=). До какой-то скорости (пока придётся делать ожидание) всё равно ПДП будет эффективным, но на предельной скорости, очевидно, что ПДП (при таком построении) бессмысленно.
SasaVitebsk вне форума  
Непрочитано 12.11.2010, 11:43  
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Да. ДМА специфичная вещь,но иногда можно спроектировать устр-во специально чтобы использовать ДМА и очень сильно ускориться
Gnider вне форума  
Непрочитано 12.11.2010, 14:33  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Ну вот, приплыли :-)

Сообщение от kison Посмотреть сообщение
Нет, из трех тактов минимум один будет выполнен при свободной шине. Остаются два - на них возможен конфликт. А с конвейером никаких проблем, DMA никак не помешает выполнению команд и заполнению конвейера. Ведь к флеши доступа у DMA нет, соответственно и конфликт из за этой шины невозможен
Ну, вы всё-ж-таки матчасть изучайте прежде, чем так говорить, на вас же смотрят, как на флагман. К флеши доступ у дма есть. Тот же третий канал дма может работать по памяти от 0 до 0xFFFF/0x17FFFF в обоих режимах. Отсюда все предыдущие рассуждения абзаца - ошибочны.

Последний раз редактировалось =GM=; 12.11.2010 в 14:37.
=GM= вне форума  
Непрочитано 12.11.2010, 16:21  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от =GM= Посмотреть сообщение
К флеши доступ у дма есть. Тот же третий канал дма может работать по памяти от 0 до 0xFFFF/0x17FFFF в обоих режимах. Отсюда все предыдущие рассуждения абзаца - ошибочны.
Я не понимаю. Как теоретическая возможность доступа к флеши для 3-го канала DMA приведет к конфликту с ядром при выводе таблицы из ОЗУ? Это прямо как судить всех мужиков за изнасилование, ведь возможность его совершить они имеют...
Прочитайте 371 сообщение. Там конкретно указано что таблица - в ОЗУ. И попробуйте обосновать конфликт DMA с ядром при доступе к флеши
kison вне форума  
Непрочитано 12.11.2010, 17:46  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Да не важно где таблица располагается. Если есть конвеер, то не надо рассматривать как исполняется каждая команда, на то он и конвеер. При малом количестве регистров, учитывая что каждый такт будет исполнятся новая команда, высока вероятность, что она займёт шину. Понятно, что при условных и безусловных операциях, а также операциях с регистрами DMA будет работать параллельно, а иначе - тормоз. Ну а соотношение - только опытным путём.
Кстати было бы интересно посмотреть. И было бы интересно посмотреть на операции типа FLASH -› DAC, ADC -› RAM. И эффективность этих операций.
SasaVitebsk вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KiCAD-объявления и впечатления al_dan KiCAD 32 03.10.2016 17:02
Народ, посмотрите quasm, Как ваши впечатления? suri Proteus, KiCAD и другие ECAD 5 14.10.2009 11:57


Часовой пояс GMT +4, время: 19:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot