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

 
 
> Допустимо ли объявлять 16 регистровых переменных, И не использовать volatile. Проц XMEGA
sigmaN
сообщение Nov 11 2014, 21:22
Сообщение #1


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Есть у меня друг один, мы с нем вечно холливары устраиваем..
На тему оптимизации и вообще даже IOS vs Android можем обсудить biggrin.gif

В общем в этот раз лень мне с ним спорить сильно и я решил сразу коллективный разум подключить, чтоб было убедительнее..
Ну и для поиска истины, конечно же.

Его идея состоит в том, что на XMEGA регистров аж 32шт и около 16ти из них
вполне допустимо забиндить сразу напеременные чтобы(цитирую)"не было задержек при обращении к памяти".
Переменные эти у него глобальные, часто такие, которые используются одновременно и в прерыванииях и за их пределами.
Т.е. это такая своеобразная альтернатива volatile получается..

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

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

Как вы считаете, стоит ему научитсья к месту применить volatile?
В своих проектах часто ли вы объявляете регистровые переменные?
Я, например, ни разу не прибегал к такому. Нет, пробовал конечно, но так чтобы вот действительно была в этом необходимость - не было случаев пока.
Кажется регистровые переменные это чуть ли не отголосок прошлого, когда Си компиляторы почти не умели оптимизировать и приходилось как-то выкручиваться....


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sigmaN
сообщение Nov 12 2014, 20:09
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
Например, как поменять содержимое двух регистров не используя другие регистры/память?

ну можно XCHG ax,cx wink.gif
предлагается универсальный метод или конкретно на avr?

на ум приходит какой-нибудь 16ти битный ROR на 8 бит, но я не уверен что авр умеет крутить регистровую пару...
так что это интересный вопрос однако)


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Палыч
сообщение Nov 13 2014, 10:38
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(sigmaN @ Nov 13 2014, 00:09) *
это интересный вопрос однако

Разве? Ответ давно известен...
Go to the top of the page
 
+Quote Post



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

 


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


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