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

 
 
15 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> XMEGA: будущее, которого мы так долго ждали, наступило., XMEGA - лучший 8 битный микроконтроллер.
Evgeny_CD
сообщение May 18 2008, 18:49
Сообщение #16


Гуру
******

Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892



Цитата(zltigo @ May 18 2008, 22:29) *
Ну так уж и только сложить smile.gif не передергивайте и сводите систему команд ARM "к сложить" - и сложить, и сдвинуть и условие проверить и все это - за одну команду в 4 байта. В формате 32-бит команды указываеся до 3х регистра/константы, проверяются 4 флага и дополнительный сдвиг до 32 бит. А что у нас у AVR - сколько там Flash кушать придется? А адресоваться подальше 256 байт?
Вот она, сила маркетинга!!! Возникает вопрос - а как часто мне необходимо все это "и сложить, и сдвинуть и условие проверить". Например, если только каждую пятую операцию - нафига же я тогда потратил 4*(2 лишних байта)=8 байт FLASH?

Это будет эффективно при жестком асмовом кодинге - но для ARM обычно так не принято smile.gif

Ладно, спор ни о чем - идеальная CPU архитектура пока не создана.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение May 18 2008, 18:49
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Evgeny_CD @ May 18 2008, 21:05) *
Как я уже писал, именно 16 битная система команд является оптимальной для большинства современных задач - AVR, CF, Cortex, SH, ... Она дает возможность эффективно манипулировать разумным количество регистров, и достаточно экономична.

Собственно, тогда к чему тогда весь разговор? smile.gif
Лично для меня использование 8-битных AVR обусловлено только наличием "доступных" средств программирования и отладки. В случае 'X' этого преимущества не существует (в настоящее время).
К ламерью не отношусь smile.gif , выше 16 бит ничего делать не хочу и не буду, но постоянно переключаясь между MSP430 и AVR в проектах хоть сколь-нибудь реального времени, вижу, насколько удобнее использовать 16-битные контроллеры.
XMEGA - всего лишь для узкой ниши.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Evgeny_CD
сообщение May 18 2008, 18:59
Сообщение #18


Гуру
******

Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892



Цитата(zltigo @ May 18 2008, 22:14) *
И FIFO тоже эффективен вполне. А FIFO + отдельный банк вообще прилично.
Отдельный банк - это отдельный геморой. Его надо по особому обслуживать и т.д. А если весь необходимый буфер не влазит в отдельный банк - процом данные таскать?

В общем, я пока не встречал случаев, чтобы DMA проиграло по CPU load процессорной обработке.


Цитата(Dog Pawlowa @ May 18 2008, 22:49) *
Лично для меня использование 8-битных AVR обусловлено только наличием "доступных" средств программирования и отладки. В случае 'X' этого преимущества не существует (в настоящее время).
Может, я чего не понял, но что мешает использовать AVR Studio + WinAVR для ATxmega? Ядро то то же самое, хидеры атмел вроде родил.

mkII денег стоит - ну не таких уж и страшных, что-то типа 8000р. Не думаю, что это критичная величина - покупается раз и на долгие годы.
Цитата(Dog Pawlowa @ May 18 2008, 22:49) *
выше 16 бит ничего делать не хочу и не буду, но постоянно переключаясь между MSP430 и AVR в проектах хоть сколь-нибудь реального времени, вижу, насколько удобнее использовать 16-битные контроллеры.
Спорный вопрос. If писать на С - мало волнует, как там код исполняется, лишь бы успевало. ASM кодинг - он только для малых проектов или небольших кусков сложных проектов эффективен. По размерам C код за счет грамотного написания, полного использования всех квалификаторов и #pragma для данного конкретного компилера можно всегда хорошо ужать.
Go to the top of the page
 
+Quote Post
svs39
сообщение May 18 2008, 19:12
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 8-03-08
Пользователь №: 35 744



[quote name='zltigo' date='May 18 2008, 17:48' post='413027']
Только вот.. кто-нибудь сможет назвать лучший в мире 4-бит процессор??? Набежало, похоже, понимешь ламерье и с воплями "8 лучше 4" затоптало smile.gif
smile.gif

8-битный- объективная реальность в современном байт-ориентированном мире (лично я использую от 1 до 6МК и переходить на 16-32 не собираюсь- естественно аудио-видео потоки не обрабатываю)
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение May 18 2008, 19:27
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Evgeny_CD @ May 18 2008, 21:59) *
mkII денег стоит - ну не таких уж и страшных, что-то типа 8000р. Не думаю, что это критичная величина - покупается раз и на долгие годы.

Подсчитали недавно - на фирме больше десятка клонов JTAG ICE. Ведущему программисту, руководителю проекта, наладка, сервис, студенты и т.д. Для всех купить mkII? Не то, что невозможно, но цена вопроса другая и нужно все взвесить.

Цитата(Evgeny_CD @ May 18 2008, 21:59) *
Спорный вопрос. If писать на С - мало волнует, как там код исполняется, лишь бы успевало. ASM кодинг - он только для малых проектов или небольших кусков сложных проектов эффективен. По размерам C код за счет грамотного написания, полного использования всех квалификаторов и #pragma для данного конкретного компилера можно всегда хорошо ужать.

Это все понятно, но прикидка быстродействия требуется поточнее, да и покажите мне того программиста, который будет сразу писать грамотно (с точки зрения быстродействия), если это сначала не требуется. Все будет делаться потом, внося озлобленность в жизнь smile.gif
Да и чего стоит обращение к многобайтовым переменным. Мелочь, но неприятно.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 18 2008, 19:31
Сообщение #21


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(zltigo @ May 18 2008, 17:48) *
Не устаю замечать, что DMA на контроллерах без кэша или каких-либо специализированных архитектурных наворотов штука малоэффективная. А то, что сделано у помянутого всуе ARM7 LPC, это как раз и есть эффективное использование DMA, поскольку он работает НА ОТДЕЛЬНОЙ ШИНЕ с ОТДЕЛЬНЫМ банком. Что позволяет не тормозить контролер "контроллером DMA"


Я одного понять не могу. Почему-то Вы упорно забываете о том, что шина у AVR не занята постоянным потоком чтения комманд, ведь адресные простанства совсем отдельные, Гарвард все-таки (это я сравниваю с ARM7, ARM9 - там все пучком, там кеш есть). Поэтому на AVR DMA имеет полное право на жизнь, ведь запись-чтение из памяти данных происходит очень редко, пустого места по времени - море. Даже такой код
Код
LOOP:
LD R16,X+
ST Z+,R16
DEC R17
BRNE LOOP

имеет на XMega 4 пустых цикла доступа на шину данных. Даже таким способом

Код
LD R16,X+
ST Z+,R16
LD R16,X+
ST Z+,R16
LD R16,X+
ST Z+,R16
LD R16,X+
ST Z+,R16
LD R16,X+
ST Z+,R16
LD R16,X+
ST Z+,R16
....


нельзя заблокировать шину данных, тут на каждую пару комманд есть один пустой цикл, куда DMA отлично влезет.

Так что DMA тут рулит.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Evgeny_CD
сообщение May 18 2008, 19:34
Сообщение #22


Гуру
******

Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892



Цитата(Dog Pawlowa @ May 18 2008, 23:27) *
Это все понятно, но прикидка быстродействия требуется поточнее, да и покажите мне того программиста, который будет сразу писать грамотно (с точки зрения быстродействия), если это сначала не требуется. Все будет делаться потом, внося озлобленность в жизнь smile.gif
Да и чего стоит обращение к многобайтовым переменным. Мелочь, но неприятно.
О! Вот с этого все и начинается! Ради чего я так и возбудился smile.gif

Как учит теория TDD - лучший способ завалить проект - начать его сразу и по всем параметрам оптимизировать. Результат гарантирован smile.gif.

В той идеологии, что я описал, и чему посвящена куча PDF в начале топика, вначале пишутся только дрова (они едва ли сожрут все место во FLASH), и затем они "телепортируются" на писюк.

Затем на писюке в синтетическом порту пишется целевой код, и проверяется на правильность решения целевой задачи.

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

В конце концов, может, все так ужмется, что и XMEGA будет не нужна smile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 18 2008, 19:52
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ May 18 2008, 21:31) *
Гарвард все-таки...

Естественно это увеличивает пользу от DMA. Если поднять мои давнишние выступления по DMA, то они относились прежде всего к SAM7 - сейчас это я так - "старое помянул" smile.gif встретив старого знакомого.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 18 2008, 19:56
Сообщение #24


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



А вообще, лично меня другой момент интересует...

Вот смотрим на таблицу комманд. Видим:

LD Rd,X+ - 2 такта
ST X+,Rd - 1 такт

Все понятно, во втором случае можно выполнить запись в процессе обработки следующей комманды. Так же понятно, почему STD X+disp,Rd - 2 такта, это происходит из-за того, что такт заняло вычисление адреса.

Но теперь очень интересный вопрос. Возле всех комманд LD стоит примечание 2. Оно гласит - "один дополнительный цикл должен быть добавлен при доступе во внутреннюю SRAM".... Причем, возле комманд ST этого примечания нет... Вот тут я чето совсем не понял...
И как это согласуется с утверждением в разделе 7.1 - "Single cycle access from CPU"? Почему в одну сторону (запись) действительно single, а в другую - double???

Ну про SBIS/SBIC я давно удивлялся, почему стало 2 такта минимум...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
defunct
сообщение May 18 2008, 19:59
Сообщение #25


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(zltigo @ May 18 2008, 17:48) *
Не устаю замечать, что DMA на контроллерах без кэша или каких-либо специализированных архитектурных наворотов штука малоэффективная.


Цитата
то они относились прежде всего к SAM7 - сейчас это я так - "старое помянул"

Полностью опробовав DMA SAM7 (для всей его периферии). Категорически несогласен с этим высказыванием.
Эффективность DMA каналов SAM7 очень значительная.

при передаче 100 байт по SPI, без DMA канала проц 100 раз войдет в прерывание для подгрузки очередного байта, т.о. 100 раз займет шину на перегонку байта, +100 раз произойдет немерянный оверхед на исполнение кода обслуживающего прерывание.
При передаче через DMA канал - DMA отминет только 100 циклов шины пямяти.
Так что эффективнее?

Что DMA работает именно так как я описал (захватывает шину когда периферий модуль "готов" принять, и отпускает когда периф. модуль не готов принимать), сомнений у меня нет, могу привести ссылки из Д/Ш.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 18 2008, 19:59
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Evgeny_CD @ May 18 2008, 20:49) *
Возникает вопрос - а как часто мне необходимо все это "и сложить, и сдвинуть и условие проверить".

Часто. Компилятор это пользует часто. Настолько часто, что на сколь-нибудь ральных задачах, написанных с умом и даже в общем-то не заточенных под 32 бита - обычные коммуникационные задачи.
Проигрыша в размере кода в общем-то нет - когда больше, когда меньше. Никакого "маркетинга" - чистая реальная СОБСТВЕННАЯ практика. Если мне не верите - то уже говорил - посмотрите на форуме.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 18 2008, 20:05
Сообщение #27


Гуру
******

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



Цитата(defunct @ May 18 2008, 23:59) *
Так что эффективнее?

Можно я отвечу? Эффективнее DMA+FIFO на отдельной шине кешированного процессора smile.gif

Это, конечно, так, но уважаемый zltigo очень уж любит сгущать краски.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 18 2008, 20:20
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SasaVitebsk @ May 18 2008, 19:57) *
Чем XMEGA то не устраивает? Всё в цену упирается и если она пойдёт с сопоставимой ценой, то будет очень приятно.

Вот после "если" и продолжим разговор. Пока старые ATMEGA стоят неразумных денег и меня терзают смутные сомнения, что XMEGA вдруг резко опустят по цене. Поднимть - не поднимут, скорее всего так и оставят. Посему лично для меня сколь-нибудь привлекательными будут что-то типа Тинек.
Цитата
Мелкие армы при той же структуре флэш/озу оказываются не так уж и привлекательны
так как озу, как минимум требуется больше. AVR эффективнее использует.

Неправда Ваша опять sad.gif ОЗУ оно и в Африке ОЗУ. Если обильно использовать битовые переменные щедрой рукой отдавая по ячейке под каждую, то тогда да. Только вот RAM жрут больше байтовые буфера всякие. А прочие данные надо просто в структуры, поля и паковать. Тут всякие "ненужные" ARM команды вполне эффективно работают и RAM попусту не тратится. Единственно, что заметно больше кушает RAM это более широкий стек. Но в общем никакого сташного расхода RAM нет.
Цитата
Совершенно не понятно почему вы не хотите финансировать Atmel. smile.gif То есть NXP и STM и ARM вы финансировать согласны, а вот Atmel - нет. smile.gif Не вижу разницы.

Разница в том, что за меньшие деньги я получаю, например, больше памяти и мегагерцев. Кроме экономии денег, я получаю большие возможности для сопровождения и модернизации софта и менее в этом стеснен. Платить налог на костность я не желаю.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
defunct
сообщение May 18 2008, 20:21
Сообщение #29


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ May 18 2008, 23:05) *
Можно я отвечу? Эффективнее DMA+FIFO на отдельной шине кешированного процессора smile.gif

Да это все понятно.

Но я например не представляю как можно сделать DSP обработку звука (оцифровка 44.1kHz, обработка и выдача результата через DAC) на типа более эффективном с т.з. zltigo LPC (с MAM) не имея DMA каналов. Для SAM7 же такая задачка по плечу и только благодаря наличию DMA каналов. Плюс еще остается время на ethernet, консольки и прочую фигню.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 18 2008, 20:22
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ May 18 2008, 22:05) *
Это, конечно, так, но уважаемый zltigo очень уж любит сгущать краски.

Есть такое - несколько неадекватная реакция на достаточно частые повторения мантры "DMA-DMA-DMA-..." без особых на то причин sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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