-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Datenverarbeitung von Datenelementen mit minimaler Latenzzeit.
-
Datenverarbeitungsvorrichtungen bestehen zunehmend aus mehreren parallel arbeitenden Datenverarbeitungseinheiten bzw. Prozessorkernen. Um die Leistungsfahigkeit derartiger Multicore-Prozessoren bzw. Multicore-Datenverarbeitungseinheiten ausschöpfen zu können, werden die darauf auszuführenden Berechnungen möglichst in unabhängige Teile zerlegt, so dass diese Teile parallel verarbeitet werden können. Fur viele Anwendungen, insbesondere im Bereich der digitalen Signalverarbeitung, erfolgt daher die Datenverarbeitung nach dem sogenannten Fließbandprinzip. Dabei wird eine Sequenz bzw. Folge von Berechnungen derart zerlegt, dass in Teilschritten verschiedene Elemente eines Datenstromes parallel verarbeitet werden konnen. Dies wird auch als „Pipelining” bezeichnet.
-
1 zeigt beispielhaft die Ausführung einer aus drei Stufen X, Y, und Z bestehenden Verarbeitungspipeline für Datenelemente nach dem Stand der Technik.
-
Pipelining wird zunehmend auch in der Softwareentwicklung eingesetzt. Während bei der Hardwareentwicklung die Zuordnung von Pipelinestufen zu den Ressourcen bzw. Funktionseinheiten fest ist, kann sich bei der Softwareentwicklung das Problem einer moglichst optimalen Abbildung der Berechnungsstufen auf die verschiedenen Prozessorkerne bzw. Datenverarbeitungseinheiten des Multicore-Prozessors stellen. Bei Systemen, die Echtzeitanforderungen unterliegen, muss zudem gewahrleistet werden, dass das Ergebnis einer Berechnung rechtzeitig vorliegt. Deshalb gilt es bei einer parallelen Ausführung einer Pipeline nicht nur, den Datendurchsatz zu erhöhen, sondern auch die Latenzzeit für die Datenverarbeitung eines einzelnen Datenelementes eines empfangenen Datenstromes zu minimieren bzw. zu beschränken. Ein weiteres Problem besteht darin, dass die Ausführungszeiten der Pipelinestufen typischerweise stark variieren. Dies kann zu unerwünschten Effekten bzw. Datenstaus führen, wodurch die Latenzzeiten erheblich ansteigen.
-
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zur Datenverarbeitung von Datenelementen eines seriellen Datenstromes mit geringer maximaler Latenzzeit zu schaffen.
-
Diese Aufgabe wird erfindungsgemaß durch eine Datenverarbeitungsvorrichtung mit den in Patentanspruch 1 angegebenen Merkmalen gelost.
-
Die Erfindung schafft eine Datenverarbeitungsvorrichtung zur Datenverarbeitung von Datenelementen eines seriellen Datenstromes,
wobei ein empfangenes Datenelement des seriellen Datenstromes durch mehre Datenverarbeitungseinheiten, die Zugriff auf eine Prioritatswarteschlange haben, mehrstufig nach dem Fließbandprinzip durch Tasks parallel verarbeitet werden,
wobei eine priorisierte Ausfuhrung der Tasks in Abhängigkeit von in der Prioritatswarteschlange angegebenen Ausführungsprioritaten der Tasks erfolgt, die jeweils von der Position des durch die Tasks zu verarbeitenden Datenelementes innerhalb des empfangenen Datenstromes abgeleitet wird.
-
Bei der erfindungsgemaßen Datenverarbeitungsvorrichtung erfolgt somit eine priorisierte Abarbeitung der Tasks in Abhängigkeit des Zeitpunktes, zu dem ein Datenelement des Datenstromes in die Pipeline eingespeist wird. Auf diese Weise wird vermieden, dass Datenelemente unnötig lange in der Pipeline bzw. Verarbeitungspipeline verbleiben und von nachfolgenden Datenelementen überholt werden. Mit dem erfindungsgemaßen Verfahren wird somit die maximale Latenzzeit eines Datenelements reduziert. Die maximale Latenzzeit von in Software implementierten Pipelines in parallelen Systemen wird auf diese Weise reduziert. Insbesondere die Zuordnung der auszufuhrenden Teilschritte einer Berechnung zu den Datenverarbeitungseinheiten bzw. Prozessorkernen kann dabei zur Laufzeit erfolgen. Die erfindungsgemaße Datenverarbeitungsvorrichtung eignet sich insbesondere für Anwendungen mit Echtzeitanforderungen, insbesondere zur Verarbeitung von Audio-, Video- oder Sensordaten.
-
Bei einer möglichen Ausfuhrungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung weist die Datenverarbeitungsvorrichtung mindestens eine Datenschnittstelle zum Empfang des seriellen Datenstromes auf.
-
Bei einer moglichen Ausfuhrungsform erhalten die empfangenen Datenelemente des Datenstromes bei ihren Empfang einen generierten Zeitstempel zur Kennzeichnung ihrer Position innerhalb des Datenstromes.
-
Bei einer weiteren möglichen Ausfuhrungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung erhalten die empfangenen Datenelemente des Datenstromes bei ihrem Empfang eine generierte Datenelement-Nummer zur Kennzeichnung ihrer Position innerhalb des Datenstromes.
-
Bei einer moglichen Ausfuhrungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung wird durch eine Berechnungseinheit mittels einer Priorisierungsfunktion die Ausfuhrungsprioritat einer Task in Abhängigkeit von der Position des durch die Task zu verarbeitenden Datenelementes innerhalb des Datenstromes berechnet.
-
Bei einer moglichen Ausführungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung weist diese eine globale Prioritatswarteschlange fur alle Datenverarbeitungseinheiten auf.
-
Bei einer alternativen Ausführungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung weist jede Datenverarbeitungseinheit eine eigene lokale Prioritatswarteschlange auf.
-
Bei einer moglichen Ausführungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung enthält die Prioritätswarteschlange die durch die Datenverarbeitungseinheit sequentiell auszuführenden Tasks und deren jeweilige Ausfuhrungsprioritäten.
-
Bei einer moglichen Ausfuhrungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung enthält die Prioritatswarteschlange ferner für die auszuführende Task einen Adresszeiger bzw. Pointer auf eine Datenspeicheradresse eines Datenspeichers, an der die durch die Task zu verarbeitenden Daten des Datenelementes gespeichert sind.
-
Bei einer moglichen Ausfuhrungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung besitzt diese einen Task-Scheduler, welcher die Tasks und deren berechnete Ausfuhrungsprioritäten in mindestens eine Prioritatswarteschlange einfügt.
-
Bei einer weiteren moglichen Ausfuhrungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung erfolgt die Zuweisung der Tasks zu verschiedenen Datenverarbeitungseinheiten durch den Task-Scheduler zur Laufzeit der Datenverarbeitung.
-
Bei einer weiteren möglichen Ausführungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung weist der serielle Datenstrom Datenelemente auf, die Audiodaten, Videodaten oder Sensordaten enthalten, welche in Echtzeit durch die Datenverarbeitungsvorrichtung verarbeitet werden.
-
Bei einer moglichen Ausfuhrungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung wird, falls eine lokale Prioritatswarteschlange einer Datenverarbeitungseinheit leer ist, eine Task mit der hochsten Ausfuhrungsprioritat aus einer anderen lokalen Prioritätswarteschlange in die leere Prioritätswarteschlange automatisch transferiert.
-
Bei einer moglichen Ausführungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung erzeugt eine Task nach ihrer Ausführung durch eine Datenverarbeitungseinheit mindestens eine Nachfolge-Task und übergibt diese an den Task-Scheduler.
-
Bei einer moglichen Ausfuhrungsform der erfindungsgemaßen Datenverarbeitungsvorrichtung wird die Ausfuhrungsprioritat von der Empfangsreihenfolge des empfangenen Datenelementes innerhalb des Datenstromes abgeleitet, wobei Tasks zur Verarbeitung früher empfangener Datenelemente eine höhere Ausfuhrungsprioritat erhalten.
-
Bei einer moglichen Ausfuhrungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung sind die Datenverarbeitungseinheiten Prozessoren, welche die Task entsprechend ihrer jeweiligen Ausführungspriorität ausfuhren.
-
Die Erfindung schafft ferner ein Verfahren mit dem in Patentanspruch 15 angegebenen Merkmalen.
-
Die Erfindung schafft ein Verfahren zum Verarbeiten von Datenelementen mit geringer maximaler Latenzzeit,
wobei die Datenelemente in einem seriellen Datenstrom empfangen werden und durch mehrere Datenverarbeitungseinheiten, die Zugriff auf eine Prioritätswarteschlange haben, mehrstufig nach dem Fließbandprinzip durch Tasks parallel verarbeitet werden,
wobei eine priorisierte Ausfuhrung der Tasks in Abhängigkeit von den in der Prioritatswarteschlange angegebenen Ausführungsprioritaten der Tasks erfolgt, die jeweils von der Position des durch die Task zu verarbeitenden Datenelementes innerhalb des empfangenen Datenstromes abgeleitet wird.
-
Im Weiteren werden mogliche Ausführungsbeispiele des erfindungsgemäßen Verfahrens und der erfindungsgemaßen Vorrichtung zur Datenverarbeitung von Datenelementen mit geringer maximaler Latenzzeit unter Bezugnahme auf die beigefugten Figuren naher beschrieben.
-
Es zeigen:
-
1 ein Diagramm zur Erlauterung einer mehrstufigen Pipelinedatenverarbeitung nach dem Stand der Technik;
-
2 ein Blockschaubild zur Darstellung eines Ausführungsbeispiels der erfindungsgemaßen Datenverarbeitungsvorrichtung;
-
3 ein Diagramm zur Erläuterung einer moglichen Datenstruktur einer bei der erfindungsgemäßen Vorrichtung und bei dem erfindungsgemaßen Verfahren eingesetzten Prioritätswarteschlange;
-
4 ein Ablaufdiagramm zur Darstellung eines Ausfuhrungsbeispiels des erfindungsgemäßen Verfahrens zur Verarbeitung von Datenelementen mit geringer maximaler Latenzzeit;
-
5 ein Diagramm zur Darstellung einer mehrstufigen Pipelinedatenverarbeitung durch verschiedene Tasks zur Erläuterung der Funktionsweise des erfindungsgemaßen Verfahrens;
-
6 ein Beispiel zur Ausfuhrung einer Datenverarbeitungspipeline bei einem System mit zwei Datenverarbeitungseinheiten, in dem die Ausführung in herkommlicher Weise erfolgt;
-
7 ein Diagramm zur Darstellung einer priorisierten Ausfuhrung einer Datenverarbeitungspipeline bei einem System mit zwei Datenverarbeitungseinheiten bei Anwendung des erfindungsgemäßen Verfahrens zur Verarbeitung von Datenelementen mit geringer maximaler Latenzzeit;
-
2 zeigt schematisch ein Ausfuhrungsbeispiel einer Datenverarbeitungsvorrichtung 1 gemaß der Erfindung zur Datenverarbeitung von Datenelementen eines seriellen Datenstromes DS. Bei dem dargestellten Ausfuhrungsbeispiel enthält die Datenverarbeitungsvorrichtung mehrere Datenverarbeitungseinheiten 2-1, 2-2, ... 2-N. Diese Datenverarbeitungseinheiten 2-i sind beispielsweise Prozessorkerne. Bei dem in 2 dargestellten Ausführungsbeispiel verfügt jede Datenverarbeitungseinheit bzw. jeder Prozessorkern 2-i uber eine eigene lokale Prioritätswarteschlange 3-i. In dem dargestellten Ausfuhrungsbeispiel enthalt die Datenverarbeitungsvorrichtung bzw. der Multicore-Prozessor 1 gemaß der Erfindung N Datenverarbeitungseinheiten 2-i bzw. Prozessoren. Die Datenverarbeitungsvorrichtung 1 enthält ferner in dem dargestellten Ausfuhrungsbeispiel einen Task-Scheduler 4, welcher eine Task in die zugehorige Prioritatswarteschlange einfügt. Die Datenverarbeitungsvorrichtung 1 verfügt uber mindestens eine Datenschnittstelle zum Empfang eines seriellen Datenstromes DS. Der serielle Datenstrom DS kann aus einer Vielzahl von aufeinanderfolgenden Datenelementen bestehen. Durch die Datenverarbeitungsvorrichtung 1 wird ein empfangenes Datenelement des seriellen Datenstromes DS durch die Datenverarbeitungseinheiten 2-i mehrstufig nach dem Fließbandprinzip durch Tasks T parallel verarbeitet. Die Datenverarbeitungseinheiten 2-i haben dabei jeweils Zugriff auf eine Prioritätswarteschlange PWS. Bei dem in 2 dargestellten Ausfuhrungsbeispiel verfugt jede Datenverarbeitungseinheit 2-i uber eine eigene lokale Prioritätswarteschlange 3-i. In einer alternativen Ausfuhrungsform kann in der Datenverarbeitungsvorrichtung 1 auch eine globale Prioritatswarteschlange PWS fur alle Datenverarbeitungseinheiten 2-i vorgesehen sein, auf die alle Datenverarbeitungseinheiten 2-i zugreifen konnen. Bei der erfindungsgemäßen Datenverarbeitungsvorrichtung 1 erfolgt eine priorisierte Ausführung der Tasks T in Abhängigkeit von in der Prioritätswarteschlange angegebenen Ausführungsprioritäten AP der Tasks T. Diese Ausführungsprioritaten AP werden dabei jeweils von der Position des durch die Task T zu verarbeitenden Datenelementes innerhalb des empfangenen Datenstromes DS abgeleitet.
-
Bei einer moglichen Ausführungsform verfugt die Datenverarbeitungsvorrichtung 1 über eine Einheit zur Kennzeichnung der Position eines empfangenen Datenelementes innerhalb des empfangenen Datenstromes DS. Bei einer moglichen Ausfuhrungsform werden die empfangenen Datenelemente des Datenstromes DS bei ihrem Empfang mit einem generierten Zeitstempel versehen, der den Zeitpunkt ihres Empfangs durch die Datenverarbeitungseinheit 1 angibt. Bei einer moglichen Ausführungsvariante enthalten die empfangenen Datenelemente bei ihrem Empfang eine generierte Datenelement-Nummer zur Kennzeichnung ihrer Position innerhalb des Datenstromes DS. Bei den Datenelementen kann es sich um beliebige Datenelemente, beispielsweise auch Datenpakete, handeln.
-
Bei einer möglichen Ausführungsvariante der erfindungsgemäßen Datenverarbeitungsvorrichtung 1 enthalt diese zusätzlich eine Berechnungseinheit, die mittels einer Priorisierungsfunktion PF die Ausführungspriorität AP einer Task T in Abhängigkeit von der Position des durch die Task T zu verarbeitenden Datenelementes innerhalb des Datenstromes DS berechnet. Die Priorisierungsfunktion PF ist bei einer möglichen Ausführungsform konfigurierbar.
-
Die Prioritatswarteschlange enthalt die durch die Datenverarbeitungseinheit 2-i sequentiell auszuführenden Tasks T und deren jeweilige Ausfuhrungsprioritaten AP.
-
3 zeigt beispielhaft eine Datenstruktur einer Prioritatswarteschlange, wie sie bei der erfindungsgemaßen Datenverarbeitungsvorrichtung 1 verwendet werden kann. Bei dem in 3 dargestellten Ausfuhrungsbeispiel enthält die Prioritätswarteschlange die durch die jeweilige Datenverarbeitungseinheit 2-i sequentiell auszuführenden Tasks Ti und deren jeweilige Ausführungsprioritäten APi. Bei dem in 3 dargestellten Ausführungsbeispiel enthalt die Prioritatswarteschlange ferner fur die auszufuhrende Task T einen Adresszeiger bzw. Pointer Pi auf eine Datenspeicheradresse eines Datenspeichers, an der die durch die Task T zu verarbeitenden Daten des jeweiligen Datenelementes gespeichert sind. Handelt sich bei dem Datenelement beispielsweise um ein zu verarbeitendes Videobild, gibt der Adresszeiger bzw. Pointer P diejenige Speicheradresse an, an welcher sich das durch die Task T zu verarbeitende Datenelement bzw. Videobild befindet.
-
Um eine besonders hohe Datenverarbeitungsgeschwindigkeit zu erzielen, können anstatt des Adresszeigers bzw. Pointers P auch direkt die Daten des jeweiligen Datenelementes in die Prioritätswarteschlange abgelegt werden. Bei dieser Ausführungsvariante befindet sich in der Prioritatswarteschlange anstatt eines Adresszeigers bzw. Pointers P die durch die jeweilige Task T zu verarbeitenden Nutzdaten des Datenelementes. Auf diese Weise kann die Zeit fur einen Zugriff auf den Datenspeicher bei der Datenverarbeitung eingespart werden.
-
Der in 2 dargestellte Task-Scheduler 4 fügt die Task T und deren berechnete Ausfuhrungspriorität AP in die Prioritätswarteschlange, wie sie beispielhaft in 3 dargestellt ist, ein. Die Zuweisung der Task T zu verschiedenen Datenverarbeitungseinheiten 2-i durch den Task-Scheduler 4 kann bei einer möglichen Ausführungsform zur Laufzeit der Datenverarbeitung erfolgen. Der durch die Datenverarbeitungsvorrichtung 1 empfangene serielle Datenstrom DS besteht aus Datenelementen, die jeweils z. B. Audiodaten, Videodaten oder Sensordaten enthalten. Diese Daten werden durch die Datenverarbeitungsvorrichtung 1 vorzugsweise in Echtzeit verarbeitet.
-
Bei einer möglichen Ausfuhrungsform wird, falls eine lokale Prioritätswarteschlange 3-i der Datenverarbeitungseinheit 2-i leer ist, eine Task T mit der hochsten Ausführungspriorität aus einer anderen lokalen Prioritätswarteschlange in die leere Prioritatswarteschlange automatisch transferiert. Die Zuweisung der Tasks T erfolgt in dem in 2 dargestellten Multicore-System bzw. der Multicore-Datenverarbeitungsvorrichtung 1 mit Hilfe des Task-Schedulers 4, der ausführbare Tasks T auf die Prioritatswarteschlangen verteilt. Die Reihenfolge der Abarbeitung der Tasks T hangt dabei nicht vom Zeitpunkt des Eintreffens der Tasks ab, sondern von deren Ausfuhrungsprioritat AP. Wenn eine Prioritatswarteschlange leer ist, wird das Datenelement mit der hochsten Ausfuhrungspriorität von einer anderen Prioritätswarteschlange gewissermaßen gestohlen. Dies wird auch als ”Work Stealing” bezeichnet.
-
Als Ausführungsprioritat AP kann bei einem möglichen Ausführungsbeispiel der negierte Wert der Datenelement-Nummer dienen. Die Task zur Bearbeitung des ersten Datenelementes hat somit die hochste Ausfuhrungspriorität ”–1” zur Verarbeitung des zweiten Datenelementes die zweithöchste Ausführungspriorität ”–2” usw. Auf diese Weise wird sichergestellt, dass Datenelemente, die früh in die Datenverarbeitungspipeline eingespeist werden, auch vorrangig behandelt werden und die Pipeline vorrangig verlassen. Auf diese Weise wird die maximale Latenzzeit minimiert. Die Ausführungspriorität AP wird bei dieser Ausfuhrungsform von der Empfangsreihenfolge der empfangenen Datenelemente innerhalb des Datenstromes DS abgeleitet. Dabei erhalten Tasks T zur Verarbeitung von fruher empfangenen Datenelementen eine hohere Ausfuhrungspriorität, beispielsweise die höchste Ausführungsprioritat „–1”.
-
4 zeigt ein Ablaufdiagramm zur Darstellung eines Ausfuhrungsbeispiels des erfindungsgemäßen Verfahrens zur Verarbeitung von Datenelementen mit geringer maximaler Latenzzeit. Der in 4 dargestellte Prozess ist ein Pipelining-Prozess, der jeweils auf allen Datenverarbeitungseinheiten bzw. Prozessorkernen 2-i abläuft.
-
In einem Schritt S1 uberprüft die jeweilige Datenverarbeitungseinheit 2-i, ob die zugehorige Prioritätswarteschlange leer ist. Ist dies der Fall, wird in Schritt S2 eine Task T von einer anderen Prioritätswarteschlange zur eigenen Prioritätswarteschlange transferiert, wobei vorzugsweise diejenige Task T mit der hochsten Ausfuhrungspriorität AP transferiert wird. Wird umgekehrt festgestellt, dass die eigene Prioritatswarteschlange nicht leer ist, entnimmt die Datenverarbeitungseinheit 2-i die Task T mit der höchsten Ausführungsprioritat AP aus der eigenen Prioritatswarteschlange in Schritt S3.
-
Anschließend wird die in Schritt S2 transferierte bzw. die in Schritt S3 entnommene bzw. geladene Task T durch die Datenverarbeitungseinheit 2-i in Schritt S4 ausgeführt.
-
In einem weiteren Schritt S5 wird mindestens eine Nachfolge-Task generiert bzw. erzeugt und an den Task-Scheduler 4 übergeben. Dabei wird auch ein Eintrag für eine Prioritätswarteschlange PWS fur die generierte Nachfolge-Task erzeugt.
-
In einem Schritt S6 gibt der Task-Scheduler 4 den erzeugten PWS-Eintrag der Nachfolge-Task in die Prioritätswarteschlange ab und der Vorgang kehrt zurück zu Schritt S1.
-
5 zeigt beispielhaft eine mehrstufige Abarbeitung von Tasks in drei Stufen X, Y, Z zur Verdeutlichung des erfindungsgemaßen Verfahrens.
-
Beispielsweise kann eine erste Task Ti-2 darin bestehen, dass ein Videobild I aus einem Bilddatenspeicher ausgelesen wird. In einer darauffolgenden Stufe Y wird durch eine Task Ti-1 dann das Videobild gefiltert. Anschließend erfolgt in einer weiteren Stufe Z durch die nächste Task Ti eine Anzeige des gefilterten Videobildes auf einem Bildschirm.
-
6 zeigt ein Beispiel einer herkömmlichen Ausführung von Tasks mit einer Verarbeitungspipeline bei einem System mit zwei Prozessorkernen bzw. Datenverarbeitungseinheiten. Zu jedem Zeitpunkt t ist der Inhalt der konventionellen Warteschlange WS1, WS1 angegeben. Die Datenverarbeitungspipeline besteht bei dem dargestellten Beispiel aus drei Stufen X, Y, Z, wie in 5 dargestellt. Bei dem dargestellten Beispiel benotigt die erste Stufe X zwei Zeiteinheiten fur die Ausfuhrung, die zweite Stufe Y drei Zeiteinheiten und die dritte Stufe Z lediglich eine Zeiteinheit. Die Datenelemente eines Datenstromes dürfen dabei außerhalb der Reihenfolge verarbeitet werden, müssen jedoch von der letzten Stufe Z wieder in die ursprungliche Reihenfolge gebracht werden, damit die Semantik des Programms erhalten bleibt. Dies bedeutet, dass beispielsweise Z3 nicht vor Z2 ausgefuhrt werden darf.
-
Wie man dem Beispiel gemaß 6 entnehmen kann, werden fur die Datenverarbeitung des ersten Datenelementes sechs Zeiteinheiten benotigt, die von der Ausführung von X1 zum Zeitpunkt t = 0 bis zur Ausführung von Z1 zum Zeitpunkt t = 5 reicht. Die Latenzzeit fur die Verarbeitung des zweiten Datenelementes beträgt bei dem dargestellten Beispiel 11 Zeiteinheiten, für das dritte Datenelement 10 Zeiteinheiten und fur das vierte Datenelement 9 Zeiteinheiten. Die maximale Latenzzeit betragt somit für den betrachteten Zeitraum bei dem dargestellten Beispiel 11 Zeiteinheiten, nämlich die Latenzzeit des zweiten Datenelementes. In der in 6 dargestellten Ausfuhrungsweise erfolgt die parallele Ausführung einer Pipeline jeweils mit Hilfe eines Task-Schedulers. Sobald eine Pipelinestufe ausführbereit ist, also neue Daten zur Verfügung stehen, wird eine Task erzeugt und dem Task-Scheduler ubergeben. Die Task-Erzeugung erfolgt dabei beispielsweise direkt durch die jeweils vorhergehende Pipelinestufe. Falls eine Verarbeitungsstufe langsamer als die vorhergehende Verarbeitungsstufe ist, kann es, wie in 1 zu sehen, allerdings gewissermaßen zu Verarbeitungsstaus kommen, da mehr Daten produziert als konsumiert werden.
-
7 zeigt dazu im Vergleich die priorisierte Ausführung einer Datenverarbeitungspipeline einer Datenverarbeitungsvorrichtung mit zwei Datenverarbeitungseinheiten bzw. Prozessorkernen, welches das erfindungsgemaße Verfahren zur Verarbeitung von Datenelementen mit geringer maximaler Latenzzeit einsetzt. Zu jedem Zeitpunkt t ist der Dateninhalt der Prioritätswarteschlangen PWS1 und PWS2 der beiden Datenverarbeitungseinheiten bzw. Prozessorkerne angegeben. Wie man aus 7 erkennen kann, ergibt sich fur die ersten drei Datenelemente jeweils eine Latenzzeit von 6 Zeiteinheiten und fur das vierte Datenelement 9 Zeiteinheiten. Die maximale Latenzzeit betragt somit fur den betrachteten Zeitraum bei Anwendung des erfindungsgemaßen Verfahrens lediglich 9 Zeiteinheiten namlich die Latenzzeit des vierten Datenelementes. Wie man durch Vergleich der 6, 7 erkennen kann, wird durch das erfindungsgemäße Verfahren die maximale Latenzzeit für den betrachteten Zeitraum von 11 Zeiteinheiten auf 9 Zeiteinheiten abgesenkt.
-
Durch das erfindungsgemaße Verfahren erfolgt eine priorisierte Abarbeitung der Tasks T in Abhangigkeit des Zeitpunktes, zu dem ein Datenelement des Datenstromes DS in die Pipeline eingespeist wird. Auf diese Weise wird vermieden, dass Datenelemente unnötig lange in der Pipeline verbleiben und von nachfolgenden Datenelementen gewissermaßen überholt werden konnen. Durch das erfindungsgemaße Verfahren wird somit die maximale Latenzzeit reduziert, was insbesondere in Echtzeitsystemen von Vorteil ist.
-
Das erfindungsgemaße Verfahren ist nicht auf lineare Datenverarbeitungspipelines beschränkt. In manchen Anwendungen kann es sinnvoll sein, nichtlineare Datenstrukturen einzusetzen, die eine Duplizierung oder Aufspaltung der Datenstrome erlauben. Das erfindungsgemaße Verfahren ist nicht auf lineare Pipelines beschrankt und lasst sich auf nichtlineare Strukturen übertragen.
-
Bei der Implementierung des Task-Schedulers 4 gibt es zwei mogliche Varianten.
-
Eine Variante besteht darin, für jeden Prozessorkern bzw. jede Datenverarbeitungseinheit eine eigene Prioritätswarteschlange vorzusehen, wie es auch in 2 dargestellt ist. Bei dieser Ausführungsvariante können die Datenverarbeitungseinheiten bzw. Prozessorkerne weitgehend unabhängig voneinander arbeiten, wobei nur beim Work Stealing bzw. Stehlen einer Task T fur eine leere Prioritätswarteschlange aus einer anderen Prioritatswarteschlange die beteiligten Datenverarbeitungseinheiten bzw. Prozessorkerne synchronisiert werden. Bei einer alternativen Ausführungsvariante wird eine globale Prioritätswarteschlange fur alle Datenverarbeitungseinheiten vorgesehen. Ein Vorteil dieser Ausfuhrungsvariante besteht darin, dass immer diejenigen Tasks T mit der höchsten Prioritat im Gesamtsystem zuerst bearbeitet werden. Allerdings erfordert dies einen gewissen Kommunikations- und Synchronisationsaufwand. Weiterhin ist es moglich, Kombinationen aus lokalen und globalen Prioritätswarteschlangen in der Datenverarbeitungsvorrichtung 1 vorzusehen.
-
Weitere Ausführungsvarianten betreffen die Berechnung der Ausfuhrungspriorität AP. Statt eine Datenelementnummer zu verwenden, kann man auch die Position der Pipelinestufe dafür heranziehen. Dies bedeutet, dass die Stufen am Ende der Pipeline eine höhere Ausfuhrprioritat erhalten als die Stufen am Anfang. Folglich werden Datenelemente, die schon mehrere Stufen durchlaufen haben, vorrangig behandelt. Auch hier sind Kombinationen verschiedener Ansätze moglich. Die Erfindung schafft somit ein Verfahren zur Reduzierung der maximalen Latenzzeit in parallelen Datenstromverarbeitungsvorrichtungen bzw. Computersystemen. Dabei wird die maximale Latenzzeit, d. h. die Zeit zwischen dem Eintritt eines Datenelementes in die Pipeline und dem Austritt des verarbeiteten Datenelementes aus der Pipeline, reduziert bzw. minimiert. Das erfindungsgemäße Verfahren eignet sich insbesondere zur Datenverarbeitung von Audio, Video oder Sensordaten in Echtzeit. Die Zuweisung der Tasks T erfolgt vorzugsweise dynamisch zur Laufzeit. Durch das erfindungsgemäße Verfahren wird der Datendurchsatz erhoht. Weiterhin kann die Fehlertoleranz gegenüber einem Ausfall einer Datenverarbeitungseinheit erhoht werden. Die Priorisierungsfunktion PF zur Berechnung der Ausfuhrungspriorität AP einer Task T ist vorzugsweise konfigurierbar. Dadurch wird die Flexibilitat der Datenverarbeitungsvorrichtung 1 fur verschiedene Anwendungsfalle erhöht.
-
Bei einer moglichen Ausführungsvariante erfolgt die Berechnung der Ausfuhrungsprioritat AP einer Task entsprechend einer Position des durch die Task T zu verarbeitenden Datenelementes innerhalb des empfangenen seriellen Datenstromes DS. Die Berechnung der Ausführungspriorität AP in Abhängigkeit von der Position kann bei einer Ausführungsvariante mit einer konfigurierbaren Berechnungsfunktion bzw. Priorisierungsfunktion PF erfolgen, die sich beispielsweise in einem Konfigurationsspeicher der Datenverarbeitungsvorrichtung 1 befindet. Die Berechnungsfunktion kann bei einer moglichen Ausführungsvariante über eine Konfigurationsschnittstelle konfiguriert bzw. angepasst werden.
-
Bei der Datenverarbeitungsvorrichtung 1 gemäß der Erfindung, wie sie beispielsweise in 2 dargestellt ist, kann es sich beispielsweise um einen Netzwerkknoten eines Netzwerkes handeln. Ein Netzwerkknoten verfugt dabei uber mindestens eine Datenschnittstelle zum Empfang eines seriellen Datenstromes DS. Die Daten konnen uber eine drahtgebundene oder drahtlose Schnittstelle der Datenverarbeitungsvorrichtung 1 zur Datenverarbeitung empfangen werden. Die nach dem Pipelineprinzip verarbeiteten Daten werden bei einer möglichen Ausfuhrungsvariante durch die Datenverarbeitungsvorrichtung 1, beispielsweise einem Netzwerkknoten, über eine weitere Datenschnittstelle wieder ausgegeben. In der in 2 dargestellten Datenverarbeitungsvorrichtung 1 kann es sich um einen Multicore-Prozessor handeln, der in einem beliebigen Computersystem, beispielsweise einem Embedded System, eingesetzt werden kann. Bei einer moglichen Ausfuhrungsvariante sind die in 2 dargestellten Prioritätswarteschlangen in die Datenverarbeitungseinheiten bzw. Prozessorkerne 2-i integriert.