DE102019216110A1 - Schedulingverfahren und Schedulingvorrichtung - Google Patents

Schedulingverfahren und Schedulingvorrichtung Download PDF

Info

Publication number
DE102019216110A1
DE102019216110A1 DE102019216110.3A DE102019216110A DE102019216110A1 DE 102019216110 A1 DE102019216110 A1 DE 102019216110A1 DE 102019216110 A DE102019216110 A DE 102019216110A DE 102019216110 A1 DE102019216110 A1 DE 102019216110A1
Authority
DE
Germany
Prior art keywords
data
jobs
scheduler
scheduling
requested
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019216110.3A
Other languages
English (en)
Inventor
Klaus Kukol
Klaus Schikorra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Continental Automotive Technologies GmbH
Original Assignee
Continental Automotive GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Continental Automotive GmbH filed Critical Continental Automotive GmbH
Priority to DE102019216110.3A priority Critical patent/DE102019216110A1/de
Publication of DE102019216110A1 publication Critical patent/DE102019216110A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Abstract

Die Erfindung betrifft ein Schedulingverfahren, mit den Schritten: Empfangen (S1, S5) einer Vielzahl von Aufträgen; Priorisieren (S2, S6) der Aufträge durch einen Scheduler (3) anhand von Dateneigenschaften der durch die Aufträge angeforderten Daten; und Übertragen (S3) der durch die Aufträge angeforderten Daten unter Berücksichtigung der Priorisierung der Aufträge.

Description

  • 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]

Claims (15)

  1. Schedulingverfahren, mit den Schritten: Empfangen (S1, S5) einer Vielzahl von Aufträgen; Priorisieren (S2, S6) der Aufträge durch einen Scheduler (3) anhand von Dateneigenschaften der durch die Aufträge angeforderten Daten; und Übertragen (S3) der durch die Aufträge angeforderten Daten unter Berücksichtigung der Priorisierung der Aufträge.
  2. Schedulingverfahren nach Anspruch 1, wobei der Scheduler (3) die Aufträge unter Berücksichtigung von zumindest einem der folgenden Kriterien priorisiert: - 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.
  3. Schedulingverfahren nach Anspruch 1 oder 2, wobei der Scheduler (3) die Aufträge weiter unter Berücksichtigung einer Empfangszeit der Aufträge priorisiert.
  4. Schedulingverfahren nach einem der vorangehenden Ansprüche, wobei der Scheduler (3) die Vielzahl von Aufträgen von einer Vielzahl von Clients empfängt, wobei jeder Client über einen separaten Kommunikationskanal mit dem Scheduler (3) kommuniziert.
  5. Schedulingverfahren nach einem der vorangehenden Ansprüche, wobei der Scheduler (3) gruppierte logische Blöcke eines Flash-Speichers als logische Devices zur Verfügung stellt, wobei die angeforderten Daten von dem Flash-Speicher bereitgestellt werden, wobei den logischen Devices (201-203) unterschiedliche Scheduling-Eigenschaften zugeordnet sind, und wobei der Scheduler (3) die Aufträge unter Berücksichtigung der Scheduling-Eigenschaften priorisiert, welche dem logischen Device (201-203) zugeordnet sind, von welchem die Aufträge empfangen wurden.
  6. Schedulingverfahren nach einem der vorangehenden Ansprüche, wobei der Scheduler (3) durch die Aufträge angeforderte Daten bei Überschreiten einer vorgegebenen Maximalgröße in eine Vielzahl von Sequenzen unterteilt, wobei die durch die Aufträge angeforderten Daten sequenzweise übertragen werden.
  7. Schedulingverfahren nach einem der vorangehenden Ansprüche, wobei bei Aufträgen mit gleicher Priorität die entsprechenden angeforderten Daten nach einem Round-Robin-Verfahren ausgegeben werden.
  8. Schedulingverfahren nach einem der vorangehenden Ansprüche, wobei bei Aufträgen mit verschiedener Priorität die entsprechenden angeforderten Daten nach einem Interleaving-Verfahren ausgegeben werden.
  9. Schedulingvorrichtung (1), mit: einer Vielzahl von Eingangskanälen (21-2n) zum Empfangen einer Vielzahl von Aufträgen; einem Scheduler (3) zum Priorisieren der Aufträge anhand von Dateneigenschaften der durch die Aufträge angeforderten Daten; und einer Datenübertragungseinrichtung (4), welche dazu ausgebildet ist, die Übertragung der durch die Aufträge angeforderten Daten unter Berücksichtigung der Priorisierung der Aufträge zu steuern.
  10. Schedulingvorrichtung (1) nach Anspruch 9, wobei der Scheduler (3) dazu ausgebildet ist, die Aufträge unter Berücksichtigung von zumindest einem der folgenden Kriterien zu priorisieren: - 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.
  11. Schedulingvorrichtung (1) nach Anspruch 9 oder 10, wobei der Scheduler (3) dazu ausgebildet ist, die Aufträge weiter unter Berücksichtigung einer Empfangszeit der Aufträge zu priorisieren.
  12. Schedulingvorrichtung (1) nach einem der Ansprüche 9 bis 11, wobei der Scheduler (3) dazu ausgebildet ist, die Vielzahl von Eingangsdaten von einer Vielzahl von Clients zu empfangen, wobei der Scheduler (3) weiter dazu ausgebildet ist, mit jedem Client über einen separaten Kommunikationskanal zu kommunizierten.
  13. Schedulingvorrichtung (1) nach einem der Ansprüche 9 bis 12, wobei der Scheduler (3) dazu ausgebildet ist, gruppierte logische Blöcke eines Flash-Speichers als logische Devices zur Verfügung stellt, wobei die angeforderten Daten von dem Flash-Speicher bereitgestellt werden, wobei den logischen Devices (201-203) unterschiedliche Scheduling-Eigenschaften zugeordnet sind, und wobei der Scheduler (3) dazu ausgebildet ist, die Aufträge unter Berücksichtigung der Scheduling-Eigenschaften zu priorisieren, welche dem logischen Device (201-203) zugeordnet sind, von welchem die Aufträge empfangen wurden.
  14. Schedulingvorrichtung (1) nach einem der Ansprüche 9 bis 13, wobei der Scheduler (3) dazu ausgebildet ist, durch die Aufträge angeforderte Daten bei Überschreiten einer vorgegebenen Maximalgröße in eine Vielzahl von Sequenzen zu unterteilen, wobei die durch die Aufträge angeforderten Daten sequenzweise übertragen werden.
  15. Schedulingvorrichtung (1) nach einem der Ansprüche 9 bis 14, wobei bei Aufträgen mit gleicher Priorität die entsprechenden angeforderten Daten nach einem Round-Robin-Verfahren ausgegeben werden.
DE102019216110.3A 2019-10-18 2019-10-18 Schedulingverfahren und Schedulingvorrichtung Pending DE102019216110A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019216110.3A DE102019216110A1 (de) 2019-10-18 2019-10-18 Schedulingverfahren und Schedulingvorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019216110.3A DE102019216110A1 (de) 2019-10-18 2019-10-18 Schedulingverfahren und Schedulingvorrichtung

Publications (1)

Publication Number Publication Date
DE102019216110A1 true DE102019216110A1 (de) 2021-04-22

Family

ID=75269146

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019216110.3A Pending DE102019216110A1 (de) 2019-10-18 2019-10-18 Schedulingverfahren und Schedulingvorrichtung

Country Status (1)

Country Link
DE (1) DE102019216110A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013208421A1 (de) * 2012-05-09 2013-11-14 Nvidia Corp. Sharing einer Grafikverarbeitungseinheit unter vielen Anwendungen
US20170070356A1 (en) * 2013-07-09 2017-03-09 Intel Corporation Traffic management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013208421A1 (de) * 2012-05-09 2013-11-14 Nvidia Corp. Sharing einer Grafikverarbeitungseinheit unter vielen Anwendungen
US20170070356A1 (en) * 2013-07-09 2017-03-09 Intel Corporation Traffic management

Similar Documents

Publication Publication Date Title
DE60223394T2 (de) Verfahren und vorrichtung zum einteilen von anforderungen für einen dynamischen direktzugriffsspeicherbaustein
DE10247164B4 (de) Verfahren und Vorrichtung für eine Netzwerkbandbreitenoptimierung
EP0929041A2 (de) Verfahren und Anordnung zum Betreiben eines Bussystems
DE102012220514A1 (de) Steuern der nutzung von datenverarbeitungsressourcen ineiner service-datenbank
DE102012206283B4 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
DE60315965T2 (de) Vorrichtung zur paketablaufsteuerung
DE112010004931T5 (de) Mehrphasige Wiederherstellung von Dateisystemen mit SelektiverBedarfsweiser Verfügbarkeit von Daten(
DE112018007409T5 (de) Verfahren und vorrichtung zum planen von dienstanforderungen in einem netzwerk-rechensystem mit hilfe von hardware-warteschlangenverwaltungen
EP3729738B1 (de) Verfahren zum senden von datenpaketen, steuergerät und system mit steuergerät
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE60303444T2 (de) Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten
DE102017203034A1 (de) Verfahren zum Freigeben von Ressourcenreservierung in Netzwerk
DE112013000475T5 (de) Reservierungssystem für ein Ethernet-Netzwerk
DE69838103T2 (de) Verfahren zur Pufferverwaltung
DE112019000592B4 (de) Arbitrierung von Anforderungen nach Alter und Verkehrsklassen
DE69908911T2 (de) Zuweisungsvorrichtung für eine datenvermittlungsanlage
DE102019216110A1 (de) Schedulingverfahren und Schedulingvorrichtung
DE60300827T2 (de) Kommunikationssystem und Verfahren mit einer Vorrichtung zur Warteschlangenbildung pro Dienst
EP1892631A2 (de) Verfahren und Vorrichtung zum Einspeisen von Daten in einen seriellen Datenbus
DE102005019631A1 (de) Verfahren zur Prozesssteuerung und entsprechenden Geräten
DE102016116684B4 (de) Architektur und Vorrichtung zur Steuerung sicherer Nachrichtenverarbeitung
DE102021107787A1 (de) Dynamische Dienstqualitätssteuerung für Kraftfahrzeug-Ethernet
DE102020214097A1 (de) Vorrichtung zur Übertragung von Daten über ein Bussystem und Betriebsverfahren hierfür
DE10197256B4 (de) Verfahren, Vorrichtung und System zum Zuteilen von Diensten in Computersystemen

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012801000

Ipc: H04L0012865000

R163 Identified publications notified
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012865000

Ipc: H04L0047627500

R081 Change of applicant/patentee

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE GMBH, 30165 HANNOVER, DE

R081 Change of applicant/patentee

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, 30165 HANNOVER, DE