-
Die Erfindung betrifft ein Schedulingverfahren und eine Schedulingvorrichtung.
-
Stand der Technik
-
Ein Scheduler verwaltet die Reihenfolge von Datenpaketen, welche von bzw. zu einem Flash-Speicher übertragen werden. Clients des Schedulers können verschiedene Daten anfordern, welche übertragen werden sollen. Beispielsweise können in einem Infotainment-System eines Kraftfahrzeugs verschiedene Daten angefragt werden, etwa Audiostreams, Videostreams, Piktogramme oder dergleichen. Die entsprechenden Aufträge (Input/Output-Aufträge, I/O-Aufträge) werden von den Clients an den Scheduler übertragen, welcher die Datenübertragung steuert.
-
Ein beispielhaftes Verfahren zum Übertragen von Daten zum Flash-Speicher ist Budget Fair Queueing (BFQ). Weiter ist ein Verfahren zum Routen von Datenpaketen aus der
EP 0 634 854 B1 bekannt, wobei verschiedene Verzögerungsintervalle bereitgestellt werden. Die
US 2002/0110129 A1 betrifft ein Schedulingverfahren, welches erlaubt, die Bearbeitungszeit zu reduzieren, indem eine parallele Verarbeitung der Daten erfolgt.
-
Die Reihenfolge der Datenübertragung kann von der Priorität des Requesters, d.h. des anfragenden Clients abhängen. Beispielweise kann in einem FIFO-Verfahren (englisch: first in - first out) die Datenübertragung in der Reihenfolge der eingehenden Aufträge ausgeführt werden. Das bedeutet, dass zuerst eingehende Aufträge priorisiert werden. Dadurch werden jedoch nachfolgende Aufträge blockiert, sodass die Abarbeitung der Aufträge häufig nicht optimal erfolgt.
-
Zahlreiche weitere Scheduler-Algorithmen (englisch: Queueing Algorithms) wurden entwickelt, um eine bessere Abarbeitung der Aufträge zu bewerkstelligen. Bei Leaky-Bucket-Algorithmen wird die maximale Datenrate beschränkt. Bei Token-Bucket-Algorithmen werden die mittlere Datenrate und die maximale Burst-Größe geregelt.
-
Die Priorisierung erfolgt typischerweise lediglich anhand der Priorität des Requesters, ist jedoch unabhängig von den Eigenschaften der zu übertragenden Daten. Dadurch können Aufträge, welche die Übertragung von großen Datenmengen erfordern, jedoch von geringer Relevanz sind, wichtigere Aufträge blockieren.
-
Es ist daher eine Aufgabe der Erfindung, die Übertragung der durch Aufträge angeforderten Daten zu verbessern.
-
Zusammenfassung der Erfindung
-
Diese Aufgabe wird durch ein Schedulingverfahren mit den Merkmalen des Patentanspruchs 1 und eine Schedulingvorrichtung mit den Merkmalen des Patentanspruchs 9 gelöst.
-
Gemäß einem ersten Aspekt betrifft die Erfindung demnach ein Schedulingverfahren, wobei eine Vielzahl von Aufträgen empfangen wird. Die Aufträge werden durch einen Scheduler anhand von Dateneigenschaften der durch die Aufträge angeforderten Daten priorisiert. Die durch die Aufträge angeforderten Daten werden unter Berücksichtigung der Priorisierung der Aufträge übertragen.
-
Gemäß einem zweiten Aspekt betrifft die Erfindung eine Schedulingvorrichtung mit einer Vielzahl von Eingangskanälen zum Empfangen einer Vielzahl von Aufträgen. Ein Scheduler priorisiert die Aufträge anhand von Dateneigenschaften der durch die Aufträge angeforderten Daten. Eine Datenübertragungseinrichtung überträgt die durch die Aufträge angeforderten Daten unter Berücksichtigung der Priorisierung der Aufträge.
-
Das erfindungsgemäße Schedulingverfahren und die erfindungsgemäße Schedulingvorrichtung zeichnet sich durch eine bessere Priorisierung der Aufträge aus. Die Priorisierung der Aufträge erfolgt nicht ausschließlich anhand der Priorität der Requester, d.h. etwa anhand des Zeitpunkts des Eingangs des Auftrags, sondern berücksichtigt zusätzlich Dateneigenschaften der durch die Aufträge angeforderten Daten. Unter Dateneigenschaften können im Rahmen dieser Erfindung derartige Merkmale verstanden werden, welche unabhängig vom Requester sind. Die Priorität hängt somit davon ab, was übertragen wird und wird nicht ausschließlich dadurch bestimmt, wer den Auftrag erstellt hat. Das Schedulingverfahren und Schedulingvorrichtung erlauben es dadurch, die Abarbeitung der Aufträge, d.h. das Übertragen der durch die Aufträge angeforderten Daten, gezielter an die Art der zu übertragenden Daten anzupassen, insbesondere hinsichtlich der Latenz. Dadurch wird die Bandbreite des Flash-Speichers optimal ausgenutzt. Es entstehen keine Idle-Zeiten.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens wird jedem User, welcher einen Auftrag absendet, eine Gruppe von logischen Blöcken eines Flash Speichers zugeordnet. Allgemein kann für jede Gruppe von logischen Blöcken festgelegt werden, welcher Nutzer welchen Zugriff hat. Dabei kann verhindert werden, dass mehrere User auf bestimmte Blöcke zugreifen können, was die Sicherheit des Systems erhöht.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens priorisiert der Scheduler die Aufträge unter Berücksichtigung von zumindest einem der folgenden Kriterien:
- - einem Datentyp der durch die Aufträge angeforderten Daten,
- - einer Datengröße der durch die Aufträge angeforderten Daten,
- - einer Datengranularität der durch die Aufträge angeforderten Daten, und
- - Informationen bezüglich eines Users, welchem die Daten zugeordnet sind.
-
Hinsichtlich des Datentyps können beispielweise Audiodaten, Videodaten, Piktogrammen, Textdateien, Navigationsdaten oder Daten, welche für systemkritische Prozesse relevant sind, unterschiedliche Prioritäten zugeordnet werden. Beispielweise kann die höchste Priorität Daten zugeordnet werden, welche für systemkritische Prozesse relevant sind.
-
Hinsichtlich der Datengröße können beispielsweise Daten mit kleineren Datengrößen gegenüber Daten mit größeren Datengrößen priorisiert werden.
-
Unter Datengranularität kann verstanden werden, in welchen Unterteilungen die Daten verarbeitet werden sollen. So kann ein Auftrag als Ganzes, d.h. in einer einzigen Sequenz, abgearbeitet werden. Der Auftrag kann auch in einzelne Sequenzen zerlegt werden. Durch die Datengranularität kann weiter die Anzahl der Blöcke in einer Sequenz vorgeben werden. Weiter können Sequenzen variable Größen aufweisen. Die Blockgrößen können beispielweise von der Last auf einem Block-Device abhängen, wobei das Block-Device die angeforderten Daten bereitstellt.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens priorisiert der Scheduler die Aufträge weiter unter Berücksichtigung einer Empfangszeit der Aufträge. So können ältere Aufträge priorisiert werden.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens werden mehrere Kriterien herangezogen, um die Priorität der Aufträge zu bestimmen. Der Scheduler kann insbesondere dazu ausgebildet sein, die Kriterien zu gewichten. Die Gewichtungen können dabei fest vorgegeben sein.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens empfängt der Scheduler die Vielzahl von Aufträgen von einer Vielzahl von Clients, wobei jeder Client über einen separaten Kommunikationskanal mit dem Scheduler kommuniziert. Die Kommunikationskanäle können sich in ihrem jeweiligen Interface voneinander unterscheiden. So kann zum Beispiel ein Interface bereitgestellt werden, wie es von einem Filesystem benötigt wird. Ein weiteres mögliches Interface ist ein rein blockbasierter Zugriff. Interfaces können dahingehend erweitert werden, dass die Eigenschaften des Auftrages übergeben werden können.
-
Gemäß einer weiteren Ausführungsform des Scheduling-Verfahrens kann vorgesehen sein, dass der Scheduler auf eine bestehende Rechteverwaltung zugreift, etwa auf eine Rechteverwaltung eines Linux-Systems oder eines ähnlichen Systems.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens stellt der Scheduler gruppierte logische Blöcke eines Flash-Speichers Clients als logische Devices zur Verfügung, wobei den logischen Devices unterschiedliche Scheduling-Eigenschaften zugeordnet sind. Der Scheduler priorisiert die Aufträge unter Berücksichtigung der Scheduling-Eigenschaften des Clients von welchem die Aufträge empfangen wurden. Durch die Verwendung von logischen Devices kann verhindert werden, dass in Fällen, in welchen die Clients, welche die Aufträge gesendet haben, die die zusätzlichen Eigenschaften der Aufträge nicht kennen, alle Aufträge mit den gleichen Eigenschaften versehen werden, was eine Priorisierung verhindern würde. Indem jedem logischen Device eine oder mehrere Scheduling-Eigenschaften zugeordnet werden können, wobei sich die Scheduling-Eigenschaften unterscheiden, können die Aufträge dadurch priorisiert werden. Durch die Verwendung von logischen Devices können Standard-Interfaces (z.B. Dateisystemen) unterschiedliche Scheduling-Strategien zur Verfügung gestellt werden, indem z.B. das Dateisystem auf zwei unterschiedliche logische Devices zugreift.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens wird die Priorisierung der Aufträge unter Berücksichtigung einer Priorisierung des Clients übernommen.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens unterteilt der Scheduler die durch die Aufträge angeforderten Daten bei Überschreiten einer vorgegebenen Maximalgröße in eine Vielzahl von Sequenzen (Datenblöcke), wobei die durch die Aufträge angeforderten Daten sequenzweise übertragen werden. Insbesondere können die Aufträge in Unteraufträge unterteilt werden, wodurch die Latenz von Aufträgen mit höherer Priorität reduziert werden kann.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens wird jeder Auftrag in mindestens eine Sequenz unterteilt. Nach Abarbeiten einer Sequenz, d.h. nach dem Übertragen der durch die Aufträge angeforderten Daten, überprüft der Scheduler ob ein Auftrag mit höherer Priorität vorliegt. Ist dies der Fall, wird der aktuelle Auftrag unterbrochen und die Abarbeitung des Auftrags mit der höheren Priorität begonnen. Ist dies nicht der Fall, wird eine weitere Sequenz des bereits bestehenden Auftrags abgearbeitet, d.h. die entsprechenden Daten werden übertragen.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens werden bei Aufträgen mit gleicher Priorität die entsprechenden angeforderten Daten nach einem First-in-First-Out (FIFO)-Prinzip abgearbeitet.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens werden bei Aufträgen mit gleicher Priorität die entsprechenden angeforderten Daten nach einem Round-Robin-Verfahren ausgegeben.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens werden bei Aufträgen mit verschiedener Priorität die entsprechenden angeforderten Daten nach einem Interleaving-Verfahren ausgegeben.
-
Ob der Scheduler ein Round-Robin-Verfahren oder Interleaving-Verfahren zur Übertragung der Daten verwendet, kann von den Dateneigenschaften der durch die Aufträge angeforderten Daten abhängen.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens werden hinsichtlich der Zuweisung von Zugriffsrechten an bestimmte Clients Gruppen von Blöcken eines physischen Devices als logische Devices zur Verfügung gestellt. Die Zuteilung erfolgt durch den Scheduler, etwa anhand einer GUID-Partitionstabelle (GPT). Die Zugriffsrechte auf die einzelnen Gruppen können von dem Scheduler über separate Tabellen verwaltet werden.
-
Mittels Hypervisoren können mehreren Gastsysteme auf einem Hostsystem betrieben werden. Ein Hypervisor verwaltet die Ressourcenzuteilung für die Gastsysteme. Gemäß einer weiteren Ausführungsform des Scheduling-Verfahrens kann der Scheduler ein derartiges Gastsystem als einen weiteren Client behandeln. Ein Interface zum Gastsystem kann derart realisiert sein, wie das Gastsystem ein entsprechendes Block-Device-Interface erwarten würde. Damit das Gastsystem Aufträge mit unterschiedlichen Prioritäten und/oder unterschiedlichen Eigenschaften absetzen kann, können mehrere parallele Block-Device-Interfaces zwischen dem Scheduler und dem Gastsystem bereitgestellt werden.
-
Gemäß einer weiteren Ausführungsform des Schedulingverfahrens können bestimmten ausgewählten Clients besondere Zugangsrechte zugeordnet werden. Aufträge von derartigen Clients können höher priorisiert werden.
-
Gemäß einer weiteren Ausführungsform der Schedulingvorrichtung ist diese als Block-Device ausgebildet, welche vorzugsweise einen einzelnen Speicher aufweist. Die Schedulingvorrichtung kann von einer Vielzahl von virtualisierten und nicht-virtualisierten Usern (Host-Devices und Guest-Devices) verwendet werden.
-
Die oben beschriebenen Ausgestaltungen und Vorteile der Erfindung werden im Zusammenhang mit der Beschreibung der in den Zeichnungen dargestellten Ausführungsbeispiele näher erläutert.
-
Es zeigen:
- 1 ein schematisches Blockdiagramm einer Schedulingvorrichtung gemäß einer Ausführungsform der Erfindung; und
- 2 ein Flussdiagramm eines Schedulingverfahrens gemäß einer Ausführungsform der Erfindung.
-
Detaillierte Figurenbeschreibung
-
1 zeigt ein schematisches Blockdiagramm einer Schedulingvorrichtung 1. Die Schedulingvorrichtung 1 umfasst eine Vielzahl von Eingangskanälen 21 bis 2n, über welche die Schedulingvorrichtung 1 mit Usern 100, 200, 300 bis 400 kommuniziert. Gemäß weiteren Ausführungsformen kann die Schedulingvorrichtung 1 auch nur einen einzigen Eingangskanal aufweisen. Die Eingangskanälen 21 bis 2n sind zum drahtlosen oder kabelgebundenen Austausch von Daten ausgelegt.
-
Beispielsweise kann eine Anwendung 100 über ein Block-Access-Interface 101, ein Imagel0-Interface 102 und einen Filesystem-Server 103 mit ersten bis dritten Eingangskanälen 21 bis 23 der Schedulingvorrichtung 1 verbunden sein.
-
Einer zweiten Anwendung 200 sind logische Devices 201, 202, 203 zugeordnet, welche über vierte bis sechste Eingangskanäle 24 bis 26 mit der Schedulingvorrichtung 1 verbunden sind.
-
Weiter können von einem Hypervisor verwaltete Gastsysteme 300 bis 400 mit entsprechenden Eingangskanälen 27 bis 2n verbunden sein. Die Erfindung ist hierbei nicht auf eine bestimmte Anzahl von mit den Eingangskanälen 21 bis 2n verbundenen Usern 100 bis 400 beschränkt.
-
Während vorzugsweise jeder User über einen separaten Kommunikationskanal beziehungsweise Eingangskanal 21 bis 2n mit der Schedulingvorrichtung 1 verbunden ist, können sich auch mehrere User 100 bis 400 einen Kommunikationskanal 21 bis 2n teilen.
-
Die Schedulingvorrichtung 1 umfasst weiter einen Scheduler 3, welcher mit den Eingangskanälen 21 bis 2n verbunden ist. Der Scheduler 3 umfasst Software- und/oder Hardwarekomponenten, etwa CPUs, GPUs, Mikrokontroller, integrierte Schaltkreise, ASICs, FPGAs oder dergleichen. Weiter kann der Scheduler 3 den Zugriff auf einen Speicher verwalten, etwa eine Festplatte, eine Speicherkarte oder dergleichen. In dem Speicher können Programmanweisungen abgelegt sein. Der Speicher kann weiter Daten speichern, auf welche die User zugreifen können.
-
Die User 100 bis 400 senden Aufträge über die jeweiligen Eingangskanäle 21 bis 2n an die Schedulingvorrichtung 1. Der Scheduler 3 priorisiert die Aufträge. Der Scheduler 3 kann hierzu in einem Header der Aufträge gespeicherte Informationen auslesen. Insbesondere können hierzu Dateneigenschaften der durch die Aufträge angeforderten Daten ausgelesen werden. Die Dateneigenschaften umfassen beispielweise einen Datentyp, eine Datengröße, eine Datengranularität der durch die Aufträge angeforderten Daten und/oder Informationen bezüglich eines Users, welchem die Daten zugeordnet sind.
-
In Abhängigkeit von den Dateneigenschaften führt der Scheduler 3 die Priorisierung durch. In dem Speicher des Schedulers 3 kann etwa in Form einer Look-up-Tabelle die Zuordnung eines Prioritätswerts zu bestimmten Dateneigenschaften abgelegt sein. Die Dateneigenschaften können auch eine Vielzahl von Kriterien bestimmen. Für jedes Kriterium ermittelt der Scheduler 3 eine Prioritäts-Teilgröße. Insbesondere kann auch vorgesehen sein, dass der Scheduler 3 eine Prioritäts-Teilgröße anhand einer Empfangszeit des Auftrags berechnet. Älteren Aufträgen können höhere Prioritäts-Teilgrößen zugeordnet werden. Der Scheduler 3 kann die Prioritäts-Teilgrößen optional gewichten. Die (gewichteten) Prioritäts-Teilgrößen werden von dem Scheduler 3 addiert, um einen Prioritätswert zu berechnen.
-
Der Scheduler 3 ermittelt den Auftrag mit dem höchsten Prioritätswert und arbeitet diesen bevorzugt ab. Die Aufträge können anschließend in der Reihenfolge der Prioritätswerte abgearbeitet werden. Bei mehreren Aufträgen mit dem gleichen Prioritätswert, können die entsprechenden angeforderten Daten nach einem FIFO-Prinzip oder einem Round-Robin-Prinzip übertragen werden. Bei mehreren Aufträgen mit verschiedener Priorität können die angeforderten Daten nach einem Interleaving-Verfahren ausgegeben werden.
-
Bei größeren Daten, etwa falls die Dateigröße der angeforderten Daten eine vorgegebene Maximalgröße überschreitet, kann der Scheduler 3 die Daten in Sequenzen unterteilen. In diesem Fall werden die angeforderten Daten sequenzweise übertragen. Es kann vorgesehen sein, dass der Scheduler 3 nach dem Übertragen einer Sequenz zuerst überprüft, ob mittlerweile ein Auftrag mit einer höheren Priorität vorliegt. In diesem Fall wird der Auftrag mit der höheren Priorität bevorzugt abgearbeitet. Der Scheduler 3 aktualisiert bevorzugt die Priorisierung, sobald ein neuer Auftrag empfangen wird.
-
Bei Aufträgen, welche von logischen Devices 201 bis 203 empfangen werden, kann der Scheduler 3 die Aufträge unter Berücksichtigung von Scheduling-Eigenschaften priorisieren, welche den logischen Devices 201 bis 203 zugeordnet sind.
-
Die Übertragung der Daten kann durch eine Datenübertragungseinrichtung 4 erfolgen, welche vom dem Scheduler 3 gesteuert wird. Die Datenübertragungseinrichtung 4 kann ebenfalls oben beschriebene Software- und/oder Hardwarekomponenten sowie gegebenenfalls einen Speicher umfassen. Weiter kann es sich bei der Datenübertragungseinrichtung 4 um einen Treiber für einen Flash-Speicher handeln. Während die angeforderten Daten auf einem Speicher der Schedulingvorrichtung 1, etwa einem Speicher des Schedulers 3 oder der Datenübertragungseinrichtung 4 abgelegt sein können, kann auch vorgesehen sein, dass die Schedulingvorrichtung 1 über weitere Kommunikationskanäle 51 bis 5m auf externe Datenspeicher oder weitere Verarbeitungsvorrichtungen zugreifen kann. Die weiteren Verarbeitungvorrichtungen können durch die Aufträge spezifizierte Prozesse durchführen und entsprechende Ausgangsdaten bereitstellen. Die Datenübertragungseinrichtung 4 kann die angeforderten Daten unter Berücksichtigung der Priorisierung der Aufträge an die entsprechenden User 100 bis 400 übertragen.
-
2 zeigt ein Flussdiagramm eines Schedulingverfahrens gemäß einer Ausführungsform der Erfindung. Das Schedulingverfahren kann insbesondere durch eine oben beschriebene Schedulingvorrichtung 1 durchgeführt werden.
-
In einem ersten Verfahrensschritt S1 wird eine Vielzahl von Aufträgen von Usern 100 bis 400 empfangen. Die Aufträge können insbesondere das Übertragen von Daten an die jeweiligen User 100 bis 400 umfassen.
-
In einem weiteren Verfahrensschritt S2 werden die Aufträge durch einen Scheduler 3 anhand der Dateneigenschaften der angeforderten Daten priorisiert. Das Priorisieren kann das Berechnen von mehreren Prioritäts-Größen umfassen, welche gewichtet werden können. Anhand der Priorität-Größen kann durch geeignete Mittelung oder Addition ein Prioritätswert berechnet werden, welcher die Priorität des Auftrags festlegt.
-
Der Scheduler 3 kann weiter eine Datengröße der durch die Aufträge angeforderten Daten ermitteln. Falls diese eine Maximalgröße übersteigt, werden die Daten in Sequenzen unterteilt.
-
In einem Verfahrensschritt S3 ermittelt der Scheduler 3 den Auftrag mit der höchsten Priorität. Falls der Auftrag mehrere Sequenzen umfasst, wird zuerst die erste Sequenz an den entsprechenden User übertragen.
-
In einem weiteren Verfahrensschritt S4 überprüft der Scheduler 3, ob die Anzahl der bereits übertragenen Sequenzen ein vorgegebenen Mindestwert überschreitet. Der vorgegebenen Mindestwert kann auch gleich 0 gewählt werden. In diesem Fall wird somit zunächst nur eine einzige Sequenz übertragen. Der Mindestwert kann auch von Dateneigenschaften der zu übertragenden Daten des Auftrags abhängen.
-
Ist der Mindestwert noch nicht überschritten, wird eine weitere Sequenz übertragen, S3.
-
Falls der Mindestwert bereits überschritten wurde, werden, falls vorhanden, neue Aufträge empfangen, S5, und priorisiert, S6.
-
In einem Verfahrensschritt S7 wird ermittelt, ob einer der neu empfangenen Aufträge eine höhere Priorität hat als der derzeit abzuarbeitende Auftrag. Ist dies nicht der Fall, wird mit dem Übertragen der Sequenzen des bereits ausgewählten Auftrags fortgefahren, S3. Andernfalls wird der Auftrag mit der höchsten Priorität ausgewählt, S8, und die durch diesen Auftrag angeforderten Daten werden übertragen, S3.
-
Weiter kann auch vorgesehen sein, Aufträge mit gleicher Priorität nach einem Round-Robin-Verfahren auszugeben. Aufträgen mit verschiedener Priorität können in einem Interleaving-Verfahren ausgegeben werden.
-
Weiter kann vorgesehen sein, dass der Scheduler 3 einem Client logische Devices zuordnet. Jedem logischen Device werden bestimmte Scheduling-Eigenschaften zugeordnet, welche die Priorität der von dem logischen Device empfangenen Aufträge bestimmen. Der Scheduler 3 überträgt die angeforderten Daten in Abhängigkeit von den Scheduling-Eigenschaften, welche dem logischen Device zugeordnet sind.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- EP 0634854 B1 [0003]
- US 2002/0110129 A1 [0003]