Злая задача, но актуальная. Мне приходилось с подобным сталкиваться. Общие рекомендации найти практически невозможно все зависит от конкретной задачи и цели ее достижения. Как правило универсальные средства здесь не пригодны. Задачи с постановкой такого условия как правило очень специфичны и требуют индивидуального подхода. В основном эта проблема решается на разных уровнях hard и soft, которая зависит от правильной постановки задачи проекта (необходимые и достаточные условия) и его реализация в процессе которой выявляются неисчерпанные ресурсы. Исходя из этого должно быть подобрано оптимальное 'равновесие' программно-аппаратных средств по решению задачи. Во первых hard уже сам по себе должен быть экономичным (низкое токопотребление) и возможная функциональность, которая бы аналогово-цифровым способом облегчала программные вычисления (снижая этим временные характеристики вычислительной системы - требования к системному clock). Дальше идут механизмы soft, которыми Вы дополнительно должны снижать токопотребление системы. Это перевод контроллера в низкопотребляющие режимы тока если требуются такие временные события, как ожидание прерываний (в отсутствие фоновой задачи). Минимизация алгоритмов по скорости выполнения. Далее если есть возможность понижать системный clock фоновой задачи не требующей быстрого вычисления. Либо же выполнение суб-рутинных вычислений на повышенных скоростях и возврат в нормальный режим тактирования (PLL и прочее), тем самым уменьшая (усредняя) время на не минимизирующийся алгоритм. Может я что-то упустил, но перечисленного и так достаточно, чтобы снизить токопотребление хотя бы на 10%, а это уже не так мало!
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|