!!

Willkommen Besucher...

...um das das LabVIEWForum.de als Benutzer in vollem Umfang nutzen zu können, ist eine kostenlose Registrierung nötig...
Registrierte Benutzer können Beiträge schreiben, Dateien uploaden, Beiträge lesen :) uvm.


Antwort schreiben 
100% CPU-Auslastung, trotz Wartezeit?
09.09.2010, 16:46
Beitrag #1

Matze Offline
LVF-Team
LVF-Team

Beiträge: 962
Registriert seit: Apr 2010

LV-Version: 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
100% CPU-Auslastung, trotz Wartezeit?
Hi zusammen,

ich übertrage über ein DMA-FIFO Werte vom FPGA an die RT-Anwendung.
Im FPGA schreibe ich die Werte mit 1 kHz in den FIFO, im RT-System lese ich sie ungebremst in einer Schleife aus und zwar immer 50 Werte auf einmal (über FIFO.Read).

Die CPU-Auslastung steigt hier auf 100%
Stelle ich eine zusätzliche Wartezeit von z.B. 40 ms ein, sinkt die CPU-Auslastung deutlich, aber ohne, dass der FIFO voll läuft. Auch wenn die Wartezeit "Warten (ms)" nach FIFO.Read aufgerufen wird (per Datenfluss eindeutig festgelegt).

Ich habe angenommen "FIFO.Read" wartet so lange, bis 50 Werte im FIFO sind und macht dann mit dem Ablauf weiter. Aufgrund dieser Wartezeit habe ich eine geringe CPU-Auslastung erwartet.
Aber FIFO.Read scheint nicht wirklich zu warten.

Wieso steigt die CPU-Auslastung auf 100%, wenn die Einleseschleife, in der FIFO.Read aufgerufen wird, ungebremst läuft?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
. .
09.09.2010, 17:08
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.867
Registriert seit: Nov 2005

LV-Version: 2009
LV-Erfahrung seit: 2003
LV-Sprachversion: kA

PLZ: 66424
Land: Deutschland
100% CPU-Auslastung, trotz Wartezeit?
' schrieb:Ich habe angenommen "FIFO.Read" wartet so lange, bis 50 Werte im FIFO sind und macht dann mit dem Ablauf weiter.

Falsche Annahme?!

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2010, 19:17
Beitrag #3

Matze Offline
LVF-Team
LVF-Team

Beiträge: 962
Registriert seit: Apr 2010

LV-Version: 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
100% CPU-Auslastung, trotz Wartezeit?
' schrieb:Falsche Annahme?!
Äh ach ne, das weiß ich selbst.Wink

Das beantwortet meine Frage aber nicht.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2010, 19:37 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2010 19:38 von eg.)
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.867
Registriert seit: Nov 2005

LV-Version: 2009
LV-Erfahrung seit: 2003
LV-Sprachversion: kA

PLZ: 66424
Land: Deutschland
100% CPU-Auslastung, trotz Wartezeit?
Wieso nicht?

Du musst also eine Verzögerung einbauen, die Daten bei der Verzögerung werden in der FIFO zwischengespeichert, aber max. 50 Werte.

Ansonsten, ohne Verzögerung läuft die Schleife ständig und verbraucht CPU.

So verstehe ich das (habe damit noch nie gearbeitet, aber kann es mir so vorstellen).

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2010, 19:44
Beitrag #5

Matze Offline
LVF-Team
LVF-Team

Beiträge: 962
Registriert seit: Apr 2010

LV-Version: 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
100% CPU-Auslastung, trotz Wartezeit?
Ich teste morgen mal, ob LabVIEW bei < 50 Werten einfach drüber rast und keine Werte zurück gegeben werden.
Aber das fände ich doch etwas ungewöhnlich.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2010, 19:47
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.867
Registriert seit: Nov 2005

LV-Version: 2009
LV-Erfahrung seit: 2003
LV-Sprachversion: kA

PLZ: 66424
Land: Deutschland
100% CPU-Auslastung, trotz Wartezeit?
Ja, mach das. Es scheint mir dem buffered DAQ-MX Read ähnlich zu funktionieren.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
.. .
09.09.2010, 20:21 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2010 12:45 von rbliomera.)
Beitrag #7

rbliomera Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Sep 2010

LV-Version: LV X.Y.Z
LV-Erfahrung seit: -
LV-Sprachversion: flagge_xx

PLZ: NNNNN
Land: Spain
100% CPU-Auslastung, trotz Wartezeit?
Edit: Deleted. /EOM
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2010, 20:23 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2010 20:26 von Matze.)
Beitrag #8

Matze Offline
LVF-Team
LVF-Team

Beiträge: 962
Registriert seit: Apr 2010

LV-Version: 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
100% CPU-Auslastung, trotz Wartezeit?
' schrieb:Ja, mach das. Es scheint mir dem buffered DAQ-MX Read ähnlich zu funktionieren.
Dort ist mir das nie aufgefallen und DAQmx-Read wartet auch wirklich, bis x Werte im RAM sind und gibt diese dann zurück.
Wenn ich z.B. mit 50 Hz Werte einlese und immer 100er-Blöcke aus dem RAM hole, dann dauert ein Schleifendurchlauf ca. 2 Sekunden. Und ich meine, die CPU-Auslastung ist dort gering.
Ich bin mir nicht sicher, ob man bei DAQmx-Read überhaupt eine zusätzliche Verzögerung braucht. Bisher habe ich immer eine eingefügt, aber mehr aus Gewohnheit, ohne es genauer zu testen.

Wenn ich dazu komme, werde ich auch das mal näher untersuchen.

Nachtrag: Danke rbliomera. Das Verhalten finde ich nicht gerade optimal, sondern eher richtig schlecht. Dann muss ich wohl pro Schleifendurchlauf erst den FIFO-Status auslesen und wenn < 50 Werte im FIFO sind, die Verzögerung per Case ausführen lassen ...

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2010, 20:58
Beitrag #9

dimitri84 Offline
Astronaut
*****


Beiträge: 1.316
Registriert seit: Aug 2009

LV-Version: 2010 Developer Suite
LV-Erfahrung seit: 2009
LV-Sprachversion: DE

PLZ: 53111
Land: Deutschland
100% CPU-Auslastung, trotz Wartezeit?
' schrieb:Ich bin mir nicht sicher, ob man bei DAQmx-Read überhaupt eine zusätzliche Verzögerung braucht. Bisher habe ich immer eine eingefügt, aber mehr aus Gewohnheit, ohne es genauer zu testen.
Braucht man nicht, verlass dich da ganz auf den Treiber. Hast du das dann mit dem Metronom gemacht?

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2010, 21:49 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2010 12:45 von rbliomera.)
Beitrag #10

rbliomera Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Sep 2010

LV-Version: LV X.Y.Z
LV-Erfahrung seit: -
LV-Sprachversion: flagge_xx

PLZ: NNNNN
Land: Spain
100% CPU-Auslastung, trotz Wartezeit?
Edit: Deleted. /EOM
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: