2 Stimmen

Softwareleistung (MCPS und Leistungsaufnahme) in einem eingebetteten System

Nehmen wir eine eingebettete Umgebung an, die entweder einen DSP-Kern (oder einen anderen Prozessorkern) hat.

Wenn ich einen Code für eine Anwendung/Funktionalität habe, der so optimiert ist, dass er vom Standpunkt der verbrauchten Zyklen (MCPS) einer der besten ist, wird er dann auch ein Code sein, der vom Standpunkt der von diesem Code in einem echten Hardwaresystem verbrauchten Leistung am besten ist?

Kann ein Code, der auf die geringste Anzahl von MCPS optimiert ist, garantiert auch den geringsten Stromverbrauch haben?

Ich weiß, dass hier viele Aspekte zu berücksichtigen sind, wie die Architektur des zugrunde liegenden Prozessors und das Hardwaresystem (Speicher, Bus usw.).

1voto

SmacL Punkte 22014

Es ist sehr schwierig, dies festzustellen, ohne ein empfindliches Amperemeter zwischen die Platine und die Stromversorgung zu schalten und die Stromaufnahme zu protokollieren. Mein Ansatz ist es, die Annahmen für verschiedene reale Szenarien zu testen, anstatt sich auf die Dokumentation zu verlassen.

1voto

Nils Pipenbrinck Punkte 80152

Nein, die niedrigste Zykluszahl garantiert nicht den niedrigsten Stromverbrauch.

Das ist ein guter Hinweis, aber Sie haben nicht berücksichtigt, dass die Speicherbusaktivität ebenfalls viel Strom verbraucht.

Ihr Code kann zum Beispiel eine höhere Zykluszahl, aber einen geringeren Stromverbrauch haben, wenn Sie häufig benötigte Daten in den internen Speicher (On-Chip-Ram) verschieben. Dadurch erhöht sich zwar nicht die Zykluszahl Ihrer Algorithmen, aber das Verschieben der Daten in den internen Speicher und aus ihm heraus erhöht die Zykluszahl.

Wenn Ihr System sowohl über einen Cache als auch über internen Speicher verfügt, sollten Sie auch den Cache bestmöglich nutzen.

0voto

AShelly Punkte 33678

Dies ist keine direkte Antwort, aber ich dachte, dass dieses Papier (von diese Antwort ) war interessant: Echtzeit-Aufgabenplanung für energiebewusste eingebettete Systeme .

So wie ich es verstehe, wird versucht, jede Aufgabe im stromsparenden Zustand des Prozessors auszuführen, es sei denn, die Frist kann ohne hohen Stromverbrauch nicht eingehalten werden. In einem solchen Schema sollte zeitlich effizienterer Code (weniger Zyklen) es dem Prozessor ermöglichen, mehr Zeit mit Drosselung zu verbringen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X