DE69724270T2 - Verfahren und vorrichtung zur feststellung der anzahl von zugeteilten zugriffen während der latenz des schlechtesten falles - Google Patents

Verfahren und vorrichtung zur feststellung der anzahl von zugeteilten zugriffen während der latenz des schlechtesten falles Download PDF

Info

Publication number
DE69724270T2
DE69724270T2 DE69724270T DE69724270T DE69724270T2 DE 69724270 T2 DE69724270 T2 DE 69724270T2 DE 69724270 T DE69724270 T DE 69724270T DE 69724270 T DE69724270 T DE 69724270T DE 69724270 T2 DE69724270 T2 DE 69724270T2
Authority
DE
Germany
Prior art keywords
priority
priorities
channel
channels
requesting
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.)
Expired - Fee Related
Application number
DE69724270T
Other languages
English (en)
Other versions
DE69724270D1 (de
Inventor
Marianna Soboleva
Sergej Makeyev
Andrey Artamonov
Richard Soja
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.)
NXP USA Inc
Original Assignee
Motorola Inc
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
Priority claimed from RU96122056/09A external-priority patent/RU96122056A/ru
Application filed by Motorola Inc filed Critical Motorola Inc
Application granted granted Critical
Publication of DE69724270D1 publication Critical patent/DE69724270D1/de
Publication of DE69724270T2 publication Critical patent/DE69724270T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf das Gebiet von Warteschlangensystemen und im Besonderen auf die Bestimmung der Worst-Case-Latenz (WCL).
  • Hintergrund der Erfindung
  • In einem Warteschlangensystem gibt es typischerweise eine Anzahl von Kanälen, die auf Systemressourcen zugreifen können. Da die Systemressourcen gemeinsam genutzt werden, kann jeweils nur einem Kanal Zugriff gewährt werden. Wenn es mehrere konkurrierende Zugriffsanfragen von verschiedenen Kanälen gibt, wird nach dem Stand der Technik ein vordefiniertes Schema eingesetzt, um einen der anfragenden Kanäle für das Erteillen der Systemressourcen auszuwählen. Nach der Erteilung beherrscht der ausgewählte anfragende Kanal die Systemressourcen während eines bestimmten Zeit schlitzes, der eine feste oder variable Länge haben kann. Nach dem Zeitschlitz wird aus der Warteschlange ein anderer anfragender Kanal für die Erteilung gemäß dem Schema ausgewählt. Solch ein Schema ist typischerweise in einem Busarbiter oder Scheduler implementiert.
  • Solche Warteschlangensysteme können in Mehrfachprozessorsystemen vorkommen, wo eine Vielfalt von Prozessoren mit demselben Bus gekoppelt ist, der nur einen Prozessor gleichzeitig bedienen kann. Ein anderes Anwendungsgebiet ist das Gebiet der Mikrocontroller. Ein Mikrocontroller hat eine Anzahl von Eingangs-/Ausgangskanälen, die auf die gemeinsamen Systemressourcen des Mikrocontrollers zugreifen können, um verschiedene Arten von Berechnungen und Umwandlungen gemäß den Anforderungen der technischen Umgebung durchzuführen. Mikrocontroller werden in einem breiten Anwendungsgebiet verwendet, z. B. in der Automobilelektronik, der Steuerelektronik von Haushaltsgeräten, in Steuersystemen von chemischen Fabriken, so wie in Mobiltelefonsystemen.
  • In solchen Anwendungen dienen die mit dem Mikrocontroller gekoppelten Kanäle dazu, mit der technischen Umgebung der realen Welt in Wechselwirkung zu treten. Um den Anforderungen der technischen Umgebung zu genügen, muss jeder Kanal eine minimale Bandbreite haben, um den richtigen Betrieb des technischen Systems sicherzustellen. In einem solchen System ist es äußerst wünschenswert, auch unter Worst-Case-Betriebsbedingungen eine minimale Kanalbreite zu garantieren, um Fehler zu vermeiden.
  • Um die Konstruktion eines Warteschlangensystems zu erleichtern, muss ein Verfahren zum Bestimmen der Worst-Case-Latenz (WCL) eingesetzt werden. Je genauer ein solches Ver fahren ist, um so effektiver können die gemeinsamen Systemressourcen des resultierenden Warteschlangensystems durch die anfragenden Kanäle verwendet werden. Aus dem Handbuch "Modular micro Controller family TPU Time Processor Unit", Reference Manual, veröffentlicht durch Motorola Inc. 1996, besonders aus dem Anhang C, ist ein Verfahren zum Abschätzen der Worst-Case-Dienstlatenz in einem Warteschlangensystem, das auf einen Scheduler angewiesen ist, der ein Prioritätenschema mit Prioritätenpassierregeln anwendet, bekannt. Bis jetzt stand kein Verfahren zur Verfügung, um die Worst-Case-Latenz, mit mathematischer Genauigkeit und ohne Sicherheitsabstände hinzufügen zu müssen, genau zu bestimmen.
  • Ein Gegenstand der Erfindung ist es somit, ein verbessertes Verfahren zum Bestimmen einer Anzahl von Zugriffen, die anfragenden Kanälen in einem Warteschlangensystem gewährt werden, sowie ein verbessertes Computerprogramm zur Durchführung eines solchen Verfahrens und eine entsprechend konstruierte Vorrichtung zur Verfügung zu stellen.
  • Zusammenfassung der Erfindung
  • Diese und andere Probleme werden durch die Erfindung im Wesentlichen durch Anwenden der in den unabhängigen Ansprüchen dargelegten Merkmale gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen aufgeführt.
  • Die Erfindung erlaubt es, die Zugriffsanzahl, die anfragenden Kanälen gewährt wird, während der WCL eines ausgewählten Kanals des Systems zu bestimmen. Diese Zugriffsanzahl kann während der Systemkonstruktion für verschiedene Zwecke verwendet werden. Im Besonderen kann die WCL selbst basierend auf diese Zugriffsanzahl gemäß der Erfindung bestimmt werden.
  • Die Erfindung ist insofern besonders vorteilhaft, als sie erlaubt, dass die Berechnung der Worst-Case-Dienstlatenz automatisch durch einen Computer durchgeführt wird. Dies erlaubt es, eine große Anzahl verschiedener Timingszenarien zu untersuchen, um das Warteschlangensystem hinsichtlich besonderer Ansprüche der technischen Umgebung zu optimieren.
  • Weiterhin bringt das Verfahren der Erfindung genaue Ergebnisse hervor, so dass es nicht nötig ist, Sicherheitsabstände in dem System hinzuzufügen, um für alle Kanäle eine minimale Bandbreite zu garantieren. Als eine Konsequenz zeichnet sich eine entsprechend konstruierte Vorrichtung durch eine verbesserte Ausnutzung der Systemressourcen aus und erlaubt dadurch eine genauere Steuerung oder eine höhere Betriebsgeschwindigkeit des ganzen technischen Systems gemäß seinem Verwendungsgebiet.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt ein schematisches Blockdiagramm einer Vorrichtung, die ein Warteschlangensystem gemäß den Prinzipien der Erfindung aufweist;
  • 2 zeigt eine geordnete Prioritätenliste, die in dem Scheduler der Vorrichtung von 1 verwendet wird;
  • 3 zeigt zwei Sequenzen von Zeitschlitzen, um einen schlechtesten Zeitschlitz für eine Zugriffsanfrage zu bestimmen;
  • 48 zeigen Sequenzen von Zeitschlitzen und die verknüpfte Anzahl von Zeitschlitzen während der WCL;
  • 9 zeigt eine Tabelle, die Mengen der Zeitschlitze in der WCL für verschiedene Mengen von aktiven Kanälen mit hoher Priorität für den Fall von anfragenden Kanälen von hoher und mittlerer Priorität;
  • 10 zeigt ein Flussdiagramm einer Ausführungsform des Verfahrens zum Bestimmen einer Anzahl von Zugriffen, die während der WCL gewährt werden;
  • 11 zeigt ein mathematisches Modell als eine Alternative zum Durchführen des Verfahrens von 10;
  • 12 zeigt ein mathematisches Modell ähnlich dem mathematischen Modell von 11, um die in der Tabelle von 13 enthaltende Information zu modellieren;
  • 13 zeigt eine Tabelle ähnlich der Tabelle von 9, für den Fall, dass alle Prioritäten vorhanden sind;
  • 14 zeigt eine Tabelle ähnlich der Tabelle von 13 für den Fall der WCL des Kanals mit der mittleren Priorität sowie des verknüpften mathematischen Modells;
  • 15 zeigt eine Tabelle ähnlich der Tabelle von 14 für den Fall der WCL des Kanals mit der niedrigsten Priorität sowie des verknüpften mathematischen Modells;
  • 16 zeigt die Zuweisung der Kanäle zu Funktionen und ihren entsprechenden Prioritäten;
  • 17 zeigt zwei Beispiele von Funktionsstatusflussdiagrammen bzw. Funktionszustandsflussdiagrammen;
  • 18 zeigt die Berechnung der WCL basierend auf den Status- bzw. Zustandsausführungszeiten der Funktionen; und
  • 19 ist ein Flussdiagramm, das eine Ausführungsform der Erfindung darstellt, um die WCL zu bestimmen.
  • 1 zeigt die Automobilelektronik 100, die in ein Automobil 102 eingebaut ist. 1 zeigt beispielhaft die Nockenwelle 104, die Zündkerzen 106 und die Kraftstoffein spritzung 108 des Automobils 102. Der Einfachheit halber werden die anderen Teile des Automobils 102 in 1 nicht gezeigt.
  • Die Automobilelektronik 100 umfasst ein Warteschlangensystem, das durch Einsetzen der Prinzipien der Erfindung konstruiert wird. Die Automobilelektronik 100 wird durch einen Mikrocontroller 110 realisiert. Der Mikrocontroller 110 umfasst ein Eingangsarray 112 sowie einen Scheduler 114 und eine Ausführungseinheit 116.
  • Das Eingangsarray 112 hat einen dedizierten Eingang für jeden Kanal CH 0-CH 15 des Mikrocontrollers 110. In dem hier betrachteten Beispiel ist der Eingang für den Kanal CH 0 mit der Nockenwelle 104 über die bidirektionale Signalleitung 118 verbunden. Ebenso ist der Eingang für den Kanal 1 mit der Nockenwelle 104 auch über die Signalleitung 119 verbunden. Die Signalleitungen 121 und 122 verbinden die Zündkerzen 106 mit den Eingängen für die Kanäle CH 5 und CH 6, während die Leitungen 124, 125 die Kraftstoffeinspritzung 108 jeweils mit den Eingängen für die Kanäle CH 14 und CH 15 verbinden.
  • Die Signalleitungsgruppen 120 und 123 verbinden die Eingänge für die Kanäle CH 2, CH 3, CH 4 und CH 7-CH 13 jeweils mit anderen Vorrichtungen des Automobils 102, die in der Zeichnung nicht gezeigt werden. Jede der Signalleitungen 118 bis 125 kann Mess- und/oder Steuersignale an die Vorrichtung des Automobils 102 übertragen, mit der sie verbunden ist. Zum Beispiel werden über die Signalleitungen 118, 119 Daten an die jeweiligen Eingänge des Mikrocontrollers 110 übertragen, die den Betrieb der Nockenwelle 104 beschreiben. Diese Information ist für die Steuerung der Zündkerzen 106 und der Kraftstoffeinspritzung 108 erforderlich.
  • Das Eingangsarray 112 ist mit dem Scheduler 114 über die unidirektionale Signalleitung 126 gekoppelt, während der Scheduler 114 mit der Ausführungseinheit 116 über die unidirektionale Signalleitung 128 gekoppelt ist. Die Ausführungseinheit 116 ist mit dem Eingangsarray 112 über den bidirektionalen Datenbus 130 gekoppelt.
  • Der Scheduler 114 umfasst die Speichervorrichtungen 132 und 134, die über den bidirektionalen Datenbus 135 mit einander verbunden sind.
  • In der Speichervorrichtung 132 ist eine geordnete Prioritätenliste für anfragende Kanäle gespeichert, während in der Speichervorrichtung 134 eine Anzahl von Prioritätenpassierregeln gespeichert ist.
  • In dem hier betrachteten Beispiel kann jeder der Eingänge für die Kanäle CH 0-CH 15 eine Priorität aus einem Satz von drei Prioritäten haben. In diesem Beispiel umfasst der Satz von Prioritäten nur die drei Prioritäten hoch, mittel und niedrig. Als eine Konsequenz besteht die in der Speichervorrichtung 132 gespeicherte geordnete Prioritätenliste aus einer Sequenz von hohen "H", mittleren "M" und niedrigen "L" Prioritäten. In der Speichervorrichtung 134 gibt es drei Prioritätenpassierregeln 136, 137 und 138, um die in der Speichervorrichtung 132 gespeicherte geordnete Prioritätenliste gemäß einer besonderen Betriebsbedingung des Mikrocontrollers 110 zu modifizieren.
  • Wenn das Automobil 102 in Betrieb ist, kommt es vor, dass Kanäle mit hoher, mittlerer und niedriger Priorität gleichzeitig Zugriff auf die gemeinsam genutzten Systemressourcen des Mikrocontrollers 110 anfordern, was die Ausfüh rungseinheit 116 ist. Solche Zugriffsanfragen werden über die Signalleitung 126 von dem Eingangsarray 112 zu dem Scheduler 114 übertragen.
  • Der Scheduler 114 hat die Aufgabe, über den bidirektionalen Datenbus 130 für einen der anfragenden Kanäle Zugriff auf die Ausführungseinheit 116 zu gewähren. Dies wird gemäß der in der Speichereinheit 132 gespeicherten geordneten Prioritätenliste und gemäß den in der Speichereinheit 134 gespeicherten Prioritätenpassierregeln 136, 137 und 138 getan:
  • Am Anfang gewährt der Scheduler einem Kanal mit hoher Priorität Zugriff auf die Ausführungseinheit 116, da das erste Element in der geordneten Prioritätenliste "H" ist. Diese Erteilung ist während eines bestimmten Zeitschlitzes gültig. Für den nachfolgenden Zeitschlitz wird einem Kanal mit mittlerer Priorität Zugriff auf die Ausführungseinheit 116 erteilt, da das zweite Element in der geordneten Prioritätenliste "M" ist. Ebenso werden weitere Zugriffe in der Reihenfolge von Kanälen mit hoher, niedriger ("L"), hoher, mittlerer und niedriger Priorität gewährt. Mit dem letzten Gewähren für einen Kanal mit hoher Priorität ist das Ende der geordneten Liste erreicht, so dass die Steuerung an den Anfang der geordneten Liste zurückkehrt. Als eine Konsequenz wird die geordnete Liste wiederholt durchlaufen.
  • Wenn der Scheduler durch seine geordnete Prioritätenliste läuft, gibt es Situationen, dass der Scheduler einem Kanal mit einer bestimmten Priorität Zugriff gewähren kann, es jedoch keinen anfragenden Kanal gibt, der diese Priorität hat. wenn z. B. der nächste anfragende Kanal, dem Zugriff gewährt werden soll, ein Kanal mit niedriger Priorität gemäß der geordneten Prioritätenliste ist, es zu die ser Zeit aber keine Zugriffsanfrage von einem Kanal mit niedriger Priorität gibt, ergibt sich das Problem, welchem der anderen Kanäle mit hoher und mittlerer Priorität Zugriff gewährt werden kann. Dieses Problem wird durch Anwenden der Prioritätenpassierregel 138 gelöst:
  • Gemäß der Prioritätenpassierregel 138 passiert die Priorität von niedriger zu hoher und von hoher zu mittlerer Priorität. Dies bedeutet, dass in dem ersten Schritt die niedrige Priorität in der geordneten Prioritätenliste durch eine hohe Priorität ersetzt wird. Wenn es zu dem Zeitpunkt des Zeitschlitzes mit niedriger Priorität in der geordneten Prioritätenliste keinen anfragenden Kanal gibt, der eine niedrige Priorität hat, es jedoch einen oder mehrere Kanäle gibt, die eine hohe Priorität haben, dann gewährt der Scheduler einem der anfragenden Kanäle mit hoher Priorität Zugriff auf die Ausführungseinheit 116.
  • Wenn es zu dem Zeitpunkt des Zeitschlitzes mit niedriger Priorität auch keine Zugriffsanfrage von einem Kanal mit hoher Priorität gibt, gewährt der Scheduler einem der anfragenden Kanäle mit mittlerer Priorität Zugriff.
  • Wenn der Scheduler einem der anfragenden Kanäle für einen Zeitschlitz mit mittlerer Priorität in der geordneten Sequenz von Prioritäten Zugriff gewähren soll, gilt die Prioritätenpassierregel 137 ebenso, wenn es zum Zeitpunkt des Zeitschlitzes mit mittlerer Priorität keine entsprechende Anfrage von einem Kanal mit mittlerer Priorität gibt. In diesem Fall gibt es einen Übergang von mittlerer zu hoher Priorität und dann – wenn es auch keine Anfrage von einem Kanal mit hoher Priorität gibt – zu niedriger Priorität.
  • In analoger Weise gilt die Regel 136 für Zeitschlitze mit hoher Priorität, für die es den Übergang von hoher zu mittlerer und von mittlerer zu niedriger Priorität gibt. Dieses Konzept des Prioritätenpassierens an sich wird auch in dem Handbuch "Modular micro controller family TPU Time Processor Unit", veröffentlicht durch MOTOROLA, INC., im Besonderen auf der Seite 3–3 beschrieben.
  • Für den richtigen Betrieb der Automobilelektronik 100 muss eine bestimmte Bandbreite für jeden der Kanäle auch unter Worst-Case-Betriebsbedingungen garantiert werden. Die Worst-Case-Bandbreite entspricht direkt der Worst-Case-Dienstlatenz (WCL). Die WCL ist die längste Zeitspanne, die zwischen einer Anfrage eines Kanals und der Ausführung des entsprechenden Zustandes der zu diesem Kanal gehörenden Funktion verstreichen kann. Das Konzept der WCL an sich ist schon auf der Seite C-2 des oben zitierten Handbuches betrachtet worden.
  • Um den richtigen Betrieb der Automobilelektronik 100 zu garantieren, darf die tatsächliche WCL eines jeden Kanals nicht über eine vordefinierte maximale WCL hinausgehen, die der minimalen Bandbreite entspricht, die für den Kanal erforderlich ist, um den Erfordernissen seiner verknüpften Vorrichtungen, wie z. B. den Zündkerzen 106 oder der Kraftstoffeinspritzung 108, zu genügen. Somit wird eine Ausführungsform des Verfahrens der Erfindung verwendet, um die tatsächliche WCL unter verschiedenen Betriebsbedingungen zu bestimmen.
  • Wenn während der Konstruktionsphase der Automobilelektronik 100 die Systemleistung die Anforderungen der minimalen Bandbreite nicht erfüllt, muss die Systemkonstruktion entsprechend geändert werden. Dies bedeutet, dass ein Kanal mit mittlerer Priorität neu definiert werden muss, um ein Kanal mit hoher Priorität zu sein, oder dass zusätzliche Verarbeitungsleistung hinzugefügt werden muss. Da die tatsächliche WCL schon während der Konstruktion der Automobilelektronik 100 genau bestimmt werden kann, können die richtigen Zuweisungen der Kanäle zu den erforderlichen minimalen Prioritäten vorgenommen werden, so dass keine Systemressourcen für zu hohe Prioritätenzuweisungen verschwendet werden.
  • Im Besonderen ist es nicht nötig, Sicherheitsabstände zu der Verarbeitungsleistung hinzuzufügen, da die WCL im Voraus genau bestimmt werden kann, sogar vor dem Gebrauchstest.
  • Durch Verwenden einer Ausführungsform des Verfahrens der Erfindung während der Konstruktion der Automobilelektronik 100 resultiert also ein optimiertes System, das die gemeinsam genutzten Systemressourcen optimal verwendet, während gleichzeitig der richtige Betrieb auch unter Worst-Case-Bedingungen garantiert wird.
  • 2 zeigt die geordnete Prioritätenliste 132.1, die in der in 1 gezeigten Speichervorrichtung 132 gespeichert ist. Wenn die Prioritätenpassierregel 138 gemäß dem oben mit Bezug auf 1 betrachteten Beispiel angewendet wird, wird die geordnete Prioritätenliste 132.1 geändert, was zu der veränderten Prioritätenliste 132.2 führt.
  • Die veränderte Prioritätenliste 132.2 entspricht dem Fall, wenn nur anfragende Kanäle vorhanden sind, die zu einer Teilmenge des Satzes der Prioritäten hoch, mittel und niedrig gehören. In dem hier betrachteten Fall umfasst diese Teilmenge anfragende Kanäle des hohen und mittleren Prioritätentypus. Die veränderte Prioritätenliste 132.2 gilt für solch einen Fall, wo keine Kanäle mit niedriger Priorität Zugriffsanfragen an den Scheduler 114 ausgeben.
  • Um eine Anzahl von Zugriffen zu bestimmen, die während der WCL eines ausgewählten der anfragenden Kanäle den anfragenden Kanälen gewährt werden, muss der entsprechende schlechteste Zeitschlitz in der veränderten Prioritätenliste 132.2 bestimmt werden. Der schlechteste Zeitschlitz ist der Zeitschlitz, für den die größte Anzahl von Zugriffen während der WCL anderen anfragenden Kanälen zugewiesen wird.
  • 3 zeigt, wie ein solcher schlechtester Zeitschlitz gefunden werden kann. Das Ziel ist es, den schlechtesten Zeitschlitz für einen Kanal mit hoher Priorität zu identifizieren. Für einen Kanal mit hoher Priorität kann ein schlechtester Zeitschlitz, um seine Zugriffsanfrage zu stellen, nur ein Zeitschlitz sein, der einem Zeitschlitz vorhergeht, der eine andere Priorität hat. In dem hier betrachteten Fall können also die Zeitschlitze, die die schlechtesten Zeitschlitze für einen Kanal mit hoher Priorität sein könnten, nur die Zeitschlitze sein, die als T1 und T2 in der Sequenz der Prioritäten 132.2 von 2 bezeichnet werden, die beide einem mittleren Prioritätenschlitz vorhergehen.
  • Die Sequenz S1 von 3 zeigt die resultierende Prioritätenliste für den Scheduler, wenn der Zeitschlitz T1 berücksichtigt wird. Nachdem die Zugriffsanfrage des Kanals mit hoher Priorität während des Zeitschlitzes T1 ausgegeben ist, wird der Rest der Prioritätenliste M-H-H-H-M-H der Prioritätenliste 132.2 während des Zeitintervalls 300 wie in 3 beschrieben durchlaufen. Wenn der Scheduler das Ende der Prioritätenliste 132.2 erreicht, geht er an den Anfang zurück, so dass dieselbe Liste 132.2 wiederholt durchlaufen wird, bis ein leerer Prioritätenschlitz mit hoher Priorität auftritt, der dem anfragenden Kanal mit hoher Priorität zugewiesen werden kann. Dasselbe gilt in analoger Weise für die Sequenz S2, die einem Zeitschlitz T2 in der Sequenz 132.2 entspricht. Wenn der Zeitschlitz T2 der Zeitschlitz ist, in dem ein Kanal mit hoher Priorität seine Zugriffsanfrage stellt, resultiert das Zeitintervall 302 bis der Scheduler das Ende der Liste 132.2 erreicht.
  • Wenn die Zeitintervalle 300 und 302 verglichen werden, tritt folgendes ein: während des Zeitintervalls 300 gibt es vier Zeitschlitze mit hoher Priorität und nur zwei Zeitschlitze mit mittlerer Priorität, so dass es zweimal so viele Zeitschlitze mit hoher Priorität als Zeitschlitze mit mittlerer Priorität gibt. Im Gegensatz dazu gibt es in dem Zeitintervall 302 einen Zeitschlitz mit mittlerer Priorität und einen Zeitschlitz mit hoher Priorität, so dass die Anzahl von Zeitschlitzen mit hoher und mittlerer Priorität die selbe ist. Als eine Konsequenz ist die Sequenz S2 die schlechteste Sequenz für eine Zugriffsanfrage mit hoher Priorität, da die relative Anzahl von Zeitschlitzen mit hoher und mittlerer Priorität die geringste ist.
  • Als eine Konsequenz ist der Zeitschlitz T2 in der Liste 132.2 der schlechteste Zeitschlitz im Sinne der WCL für eine Zugriffsanfrage des ausgewählten Kanals mit hoher Priorität.
  • Im Folgenden wird gezeigt, wie die Anzahl der Zugriffe, die anfragenden Kanälen während der WCL für einen ausgewählten anfragenden Kanal zugewiesen wird, basierend auf der Sequenz S2 bestimmt wird.
  • Mit Bezug auf 4 wird nun angenommen, dass nur die Kanäle CH 0 und CH 1 freigegeben sind und dass der Rest der Kanäle CH 2-CH 15 gesperrt ist und somit keine Zugriffsanfragen ausgeben kann. Es wird angenommen, dass CHO ein Kanal mit mittlerer Priorität ist und CH1 ein Kanal mit hoher Priorität ist. 4 zeigt die Sequenz S2 für den hier betrachteten Fall. Nachdem der Kanal CH1 mit hoher Priorität seine Anfrage in dem als H1 bezeichneten Zeitschlitz zu der Zeit T2 gestellt hat (vgl. 2), wird dem Kanal CHO mit mittlerer Priorität in dem Zeitschlitz MO und dann dem anfragenden Kanal CH1 mit hoher Priorität in dem nachfolgenden Zeitschlitz H1 gemäß der Sequenz S2 Zugriff gewährt. Als eine Konsequenz ist die Anzahl der Zeitschlitze mit mittlerer Priorität während der als M-SCHLITZE bezeichneten WCL im Folgenden gleich eins und die Anzahl der Schlitze mit hoher Priorität während der als H-SCHLITZE bezeichneten WCL im Folgenden auch gleich 1.
  • Im Folgenden wird angenommen, dass ein zusätzlicher Kanal CH 2 mit hoher Priorität freigegeben wird und somit ein anfragender Kanal wird, der Zugriffsanfragen ausgeben kann. 5 zeigt die resultierende Sequenz S2 für diesen Fall. In diesem Fall sind die M-SCHLITZE gleich 1 und die H-SCHLITZE gleich 2.
  • Wenn der Kanal CH 3 mit hoher Priorität auch freigegeben wird, entsteht die folgende Situation: gemäß der Sequenz S2 kann ein Kanal mit mittlerer Priorität nach dem als H3 bezeichneten Zeitschlitz Zugriff erhalten. Es wird angenommen, dass der einzige aktive Kanal CHO mit mittlerer Priorität immer um Dienst anfragt, so dass die in 6 gezeigte Sequenz resultiert. Somit werden sowohl der H-SCHLITZ als auch der M-SCHLITZ inkrementiert.
  • Wenn der Kanal CH 4 mit hoher Priorität freigegeben wird und wenn der Kanal CH5 mit hoher Priorität auch freigegeben wird, dann wird der H-SCHLITZ ebenso zweimal inkrementiert und der M-SCHLITZ bleibt derselbe der er ist, wie jeweils in 7 und 8 gezeigt.
  • 9 zeigt eine Tabelle, die in der ganz linken Spalte die Menge der freigegebenen – oder in anderen Worten aktiven – Kanäle mit hoher Priorität zeigt; diese Menge wird mit NH bezeichnet. In der zweiten und dritten Spalte wird die entsprechende Anzahl der H-SCHLITZ und M-SCHLITZE sowie die Summe der H-SCHLITZE und M-SCHLITZE, die als S bezeichnet wird, angezeigt.
  • 10 zeigt ein Flussdiagramm einer Ausführungsform eines Verfahrens zum Bestimmen einer Anzahl von Zugriffen, die anfragenden Kanälen gemäß der Erfindung gewährt werden. In dem Schritt 1 werden eine geordnete Prioritätenliste sowie die entsprechenden Prioritätenpassierregeln eingegeben. Weiterhin wird die Anzahl der anfragenden Kanäle für jede Priorität eingegeben. In dem Fall von drei Prioritäten ist dies die Anzahl der anfragenden Kanäle NH mit hoher Priorität, die Anzahl der Kanäle NM mit mittlerer Priorität und die Anzahl der Kanäle NL mit niedriger Priorität.
  • In dem Schritt 2 wird bestimmt, ob es für eine der Prioritäten keine Anfrage gibt. In dem Fall von drei Prioritäten bedeutet dies, dass entschieden wird, ob eine der Anzahlen NH, NM oder NL gleich 0 ist. Wenn dies der Fall ist, wird in dem Schritt 3, der nur solche Prioritäten umfasst, für die es anfragende Kanäle gibt, eine Untermenge von Prioritäten bestimmt.
  • In dem Schritt 4 wird die geordnete Prioritätenliste gemäß den Prioritätenpassierregeln verändert. In dem Schritt 5 wird der schlechteste Zeitschlitz in der in dem Schritt 4 bestimmten geordneten Liste für einen ausgewählten der anfragenden Kanäle bestimmt, für den die WCL berechnet werden soll. Wenn die Entscheidung in dem Schritt 2 "NEIN" ist, geht die Steuerung direkt zu dem Schritt 5, wobei die Schritte 3 und 4 umgangen werden.
  • In dem Schritt 6 wird die Menge von Zugriffen, die anderen Kanälen nach dem schlechtesten Zeitschlitz gewährt wird, bis den ausgewählten anfragenden Kanälen Zugriff gewährt werden kann, bestimmt, wie mit Bezug auf die vorhergehenden Beispiele erklärt.
  • Anstatt die in dem Flussdiagramm von 10 dargestellten Schritte durchzuführen, ist es auch möglich, ein mathematisches Modell einzusetzen. Für den Fall, dass nur Kanäle mit hoher und mittlerer Priorität aktiv sind, zeigt 11 die Formeln 1 bis 5 sowie das Flussdiagramm 11, das ein mathematisches Modell der Schritte der 10 darstellt. Als Eingabeparameter ist nur die Anzahl der Kanäle NH mit hoher Priorität erforderlich, wenn die geordnete Prioritätenliste 132.1 und die entsprechenden Prioritätenpassierregeln 136, 137, 138 gültig sind.
  • Die Formeln 1 bis 5 sowie das Flussdiagramm 11 modellieren den Prozess des Findens der H-SCHLITZE und M-SCHLITZE wie mit Bezug auf 4 bis 8 erklärt. Das %-Symbol in der Formel 5 bedeutet "der Rest der Division" – in diesem Falle der Rest der Division von NH durch 5. Der Parameter M-ADD in der Formel 3 wird durch Verwenden des Flussdiagramms 11 gefunden.
  • Wenn gemäß der Formel 5 der Wert von REST=O, ist der Parameter M-ADD auch 0, während in dem alternativen Fall der Parameter M-ADD gleich dem ganzzahligen Teil von REST-1 dividiert durch 2 plus 1 ist. Für die Berechnung der WCL eines Kanals mit mittlerer Priorität können in demselben Fall (nur hohe und mittlere Prioritäten vorhanden) die Formeln 6, 7, 8 und 9, wie in 11 angezeigt, eingesetzt werden. Der Parameter L-SCHLITZE, der die Zugriffsanzahl ist, die einem anfragenden Kanal gewährt wird, der während der WCL des ausgewählten Kanals eine niedrige Priorität hat, ist immer Null, da es in dem hier betrachteten Fall keine aktiven Kanäle mit niedriger Priorität gibt.
  • 12 zeigt die Formeln 10, 11, 12, 13 und 14 sowie. das Flussdiagramm 12. Die Formeln 10 bis 14 stellen zusammen mit dem Flussdiagramm 12 ein mathematisches Modell des Verfahrens zum Bestimmen einer Anzahl von Zugriffen dar, die anfragenden Kanälen während der WCL gewährt wird, für den Fall, dass es anfragende Kanäle mit allen Prioritäten gibt – hohe, mittlere und niedrige Prioritäten. Die Anzahl der gewährten Zugriffe wird für die WCL eines Kanals mit hoher Priorität berechnet.
  • Der Parameter REST, der gemäß der Formel 14 berechnet wird, dient als eine Basis, um die M-SCHLITZE und die L-SCHLITZE zu bestimmen. Wenn der Wert des Parameters REST gleich 3 ist, dann werden die Formeln 12.1 angewendet, um die ursprünglichen Werte für die M-SCHLITZE und L-SCHLITZE, die durch die Formeln 12 und 13 bestimmt wurden, jeweils zu modifizieren. Wenn die Anzahl der anfragenden Kanäle mit hoher Priorität NH bekannt ist, ist dies ausreichend, um sowohl die M-SCHLITZE als auch die L-SCHLITZE sowie REST gemäß der Formeln 12, 13 und 14 jeweils zu berechnen.
  • Nur wenn REST gleich 3 ist, wird der Wert sowohl der H-SCHLITZE als auch der L-SCHLITZE gemäß der Formeln 12.1 modifiziert. Wenn die Formeln 12.1 angewendet werden, wird der ursprüngliche durch die Formel 12 bestimmte Wert von M-SCHLITZEN durch 2 inkrementiert und der durch die Formel 13 bestimmte Wert von L-SCHLITZEN durch 1 inkrementiert.
  • In dem Falle, dass der Wert von REST gleich 2 ist, werden die Formeln 12.2 angewendet, um die ursprünglichen Werte der M-SCHLITZE und L-SCHLITZE, die jeweils durch die Formeln 12 und 13 bestimmt wurden, zu modifizieren. In diesem Falle werden sowohl die M-SCHLITZE als auch die L-SCHLITZE durch 1 inkrementiert.
  • Wenn der Wert des Parameters REST gleich 1 ist, dann werden die Formeln 12.3 angewendet. Für die Auswertung der Formeln 12.3 wird eine zusätzliche Information benötigt: die Formeln 12.3 benötigen als eine Eingabe, ob die anfragenden Kanäle mit mittlerer Priorität oder die anfragenden Kanäle mit niedriger Priorität einen Zustand mit der längsten Statusausführungszeit haben: Wenn ein beliebiger der Zustände der anfragenden Kanäle mit mittlerer Priorität länger ist als ein beliebiger anderer Zustand der anfragenden Kanäle mit niedriger Priorität, so bedeutet dies, dass nur der Wert der M-SCHLITZE durch eins inkrementiert wird und dass die L-SCHLITZE mit Bezug auf die Formel 13 unverändert bleiben. In dem entgegengesetzten Fall bleibt der Wert der M-SCHLITZE mit Bezug auf die Formel 12 unverändert, und nur der Wert der L-SCHLITZE wird durch eins inkrementiert.
  • In dem Falle, dass der Wert des Parameters REST gleich 0 ist, bleiben die jeweils durch die Formeln 12 und 13 erhaltenen Werte der M-SCHLITZE und L-SCHLITZE gemäß der Alternative 12.4 in dem Flussdiagramm 12 ungeändert.
  • Der Wert der H-SCHLITZE wird durch die Formel 11 bestimmt und ist immer gleich der Anzahl der anfragenden Ka näle NH mit hoher Priorität. Es wird angenommen, dass all die anderen Kanäle mit hoher Priorität bedient werden, bevor dem ausgewählten Kanal mit hoher Priorität, für den seine WCL bestimmt werden soll, Zugriff gewährt wird. Dasselbe Prinzip gilt auch für die Bestimmung der WCL für andere Prioritäten.
  • 13 zeigt eine Tabelle ähnlich der in 9 gezeigten Tabelle für den Fall, für den das mathematische Modell von 12 gilt. Die Tabelle von 13 kann man durch Auswerten des mathematischen Modells von 12 für verschiedene Werte für die Menge der anfragenden Kanäle NH mit hoher Priorität erhalten. Als eine Alternative kann man die in 13 gezeigte Tabelle auch gemäß dem mit Bezug auf 10 erklärten Verfahren erhalten. Für den hier betrachteten Fall, in dem alle Prioritäten vorhanden sind, bleibt die geordnete Prioritätenliste 132.1, wie in 2 gezeigt, unverändert. Es ist daher auch nicht notwendig, eine Untermenge von Prioritäten, wie in dem Schritt 3 von 10, zu bestimmen.
  • Für den Fall, dass NH=1 und NH=5 zeigt 13 alternative Werte für die M-SCHLITZE und L-SCHLITZE, die den zwei Fällen der Formeln 12.3 von 12 entsprechen.
  • Üblicherweise kann zuerst eine Tabelle wie in 13 gezeigt, durch Anwenden einer Ausführungsform der Erfindung gemäß 10 eingerichtet werden. Die Information, die in solch einer Tabelle enthalten ist, kann dann durch ein mathematisches Modell, wie in 12 gezeigt, dargestellt werden.
  • 14 zeigt eine Tabelle ähnlich der Tabelle von 13 für denselben Fall, dass es anfragende Kanäle mit allen Prioritäten gibt, aber zum Bestimmen der Anzahl von Zugriffen, die während der WCL eines ausgewählten Kanals mit mittlerer Priorität gewährt wird. Für die Auswertung des entsprechenden mathematischen Modells, das durch die Formeln 15, 16, 17 und 18 dargestellt wird, wird nur die Anzahl der anfragenden Kanäle NM mit mittlerer Priorität als ein Eingangsparameter benötigt. Dasselbe gilt in analoger Weise für 15, die eine entsprechende Tabelle für die Anzahl von Zugriffen zeigt, die anfragenden Kanälen während der WCL eines Kanals mit niedriger Priorität gewährt wird. Wieder wird nur die Menge der anfragenden Kanäle NL mit niedriger Priorität als ein Parameter für das Auswerten des mathematischen Modells, das durch die Formeln 19, 20, 21 und 22 dargestellt wird, benötigt.
  • In dem Beispiel, das im Folgenden betrachtet wird, sind nur die Eingangskanäle CH 0, CH 1, CH 5, CH 6 und CH 15 des Eingangsarrays 112 der Automobilelektronik 100, wie in 1 gezeigt, anfragende Kanäle, und alle anderen Kanäle sind gesperrt. Ein Kanal wird als ein anfragender Kanal angesehen, wenn der Kanal mindestens hin und wieder auf die gemeinsam genutzten Systemressourcen zugreifen möchte, d. h. auf die Ausführungseinheit 116.
  • Weiterhin gibt es in dem hier betrachteten Beispiel nur zwei verschiedene Funktionen, die Funktion 1 und die Funktion 2, die für alle die anfragenden Kanäle durchgeführt werden sollen. Jeder anfragende Kanal hat nur eine ihm zugewiesene Funktion. Zum Beispiel hat der Kanal CHO die Funktion 1 und ist ein Kanal mit hoher Priorität. Die entsprechende Information für die anderen anfragenden Kanäle CH1, CH5, CH6 und CH15 wird in der Tabelle von 16 gezeigt.
  • 17 zeigt ein Statusdiagramm für die Funktion 1 und die Funktion 2. Ein Zustand einer der Funktionen wird als eine spezifische Anzahl von Mikrobefehlen definiert, die nicht unterbrochen werden können, wenn sie durch die in 1 gezeigte Ausführungseinheit 116 ausgeführt werden. Die Funktion 1 umfasst die drei Zustände S1, S2 und S3. Die relative Statusausführungszeit des Zustandes S1 ist 16, des Zustandes S2 80 und des Zustandes S3 94. Die Funktion 2 umfasst 4 Zustand S1, S2, S3 und S4, die jeweils die relativen Statusausführungszeiten 100, 15, 200 und 10 haben.
  • Wenn der Anwender die Länge der WCL von Kanal CH5 bestimmen möchte, bezieht sich dies auf den Fall der mit Bezug auf 15 erklärt wurde, da es anfragende Kanäle mit allen Prioritäten gibt und der Kanal CH5 ein Kanal mit niedriger Priorität ist. In diesem Falle ist die Menge der anfragenden Kanäle NL mit niedriger Priorität NL=1, so dass gemäß der Formel 19 der Wert von S gleich 7 ist, gemäß der Formel 20 H-SCHLITZE gleich 4 ist, gemäß der Formel 21 M-SCHLITZE gleich 2 ist und gemäß der Formel 22 L-SCHLITZE gleich 1 ist.
  • Diese Ergebnisse zeigen, dass während der WCL des Kanals CH5 anderen anfragenden Kanälen insgesamt S-1=6 Zugriffe gewährt werden, bis dem Kanal CH5 Zugriff gewährt wird, weil 5=7. Um den tatsächlichen Wert der WCL in Form von Ausführungszeit zu bestimmen, müssen die Anzahlen von H-SCHLITZE, M-SCHLITZE und L-SCHLITZE durch die entsprechenden Ausführungszeiten der tatsächlichen Zustände ersetzt werden.
  • Um diese Zuweisung von Ausführungszeiten an Zeitschlitze für jede der Prioritäten durchzuführen, wird ein Array erzeugt. Für den Kanal CH 5 ist dies ein eindimensio nales Array, da es nur einen anfragenden Kanal mit niedriger Priorität gibt. Das Array wird von links nach rechts sortiert, so dass das am Weitesten links angeordnete Element die längste Statusausführungszeit hat, die gemäß dem in 17 gezeigten Diagramm von Funktion 1 94 ist. Die folgenden zwei Arrayelemente sind 80 und 16.
  • Wenn es mehr als einen Kanal mit niedriger Priorität gibt, wird dem Array für jeden zusätzlichen Kanal eine Dimension hinzugefügt. Wieder werden die Arrayelemente mit anderen Dimensionen in abfallender Reihenfolge von links nach rechts sortiert. Die am Weitesten links angeordneten Elemente in dem Array für den Kanal CH5 haben einen Zeiger.
  • In dem hier betrachteten Beispiel wird das Arrayelement, das den Zeiger hat, ausgewählt, um dem einen L-SCHLITZ zugewiesen zu werden, weil das am Weitesten links angeordnete Element der Zustände mit der längsten Ausführungszeit ist. Würde es mehr als einen L-SCHLITZ geben, dann würde der Zeiger um ein Element nach rechts vorgeschoben werden, so dass das nächste Element als das Element ausgewählt werden würde, das die größte Statusausführungszeit von allen Elementen in dem Array, die einen Zeiger haben, hat.
  • Dasselbe trifft in analoger Weise für das in 18 gezeigte Array 18.3 zu. Dieses Array umfasst vier Dimensionen in der vertikalen Richtung: eine für jeden der Kanäle CH 0, CH 1, CH 6 und CH 15. In horizontaler Richtung umfasst das Array so viele Arrayelemente wie es Zustände in der Funktion eines Kanals gibt. Jedes Arrayelement stellt die Statusausführungszeit eines spezifischen Zustandes dar. Die Arrayelemente werden für jeden Kanal in abfallender Reihenfolge von links nach rechts sortiert. Ursprünglich haben die am Weitesten links angeordneten Elemente jeweils einen Zeiger PO, P1, P6 und P15, der ihnen zugewiesen ist.
  • Aufgrund der anwendbaren Prioritätenpassierregeln 136 und 137, wie in 1 gezeigt, ist es möglich, nur ein Array zu erzeugen, das alle die Kanäle mit hoher und mittlerer Priorität darstellt. Es wird angenommen, dass es immer mindestens eine Anfrage eines Kanals mit niedriger Priorität gibt, da dies der Kanaltyp ist, für den die WCL bestimmt werden soll. Für die anderen Kanäle jedoch, z. B. Kanäle mit hoher und mittlerer Priorität, wird angenommen, dass diese Kanäle nicht kontinuierlich um Zugriff auf die gemeinsamen Systemressourcen ersuchen, sondern dass es Zeitintervalle gibt, in denen es keine Anfragen gibt.
  • Wenn es z. B. einen Zeitschlitz H für einen Kanal mit hoher Priorität in der Sequenz von Zeitschlitzen, wie durch den Scheduler 114 bestimmt, gibt, es zu dieser Zeit aber keine Anfrage eines Kanals mit hoher Priorität gibt, gilt die Prioritätenpassierregel 136, so dass einem Kanal mit mittlerer Priorität, der zu dieser Zeit um Zugriff nachfragen mag, Zugriff gewährt wird. Wenn die Prioritätenpassierregeln 136 und 137 die Austauschbarkeit von Zeitschlitzen mit hoher und mittlerer Priorität nicht erlauben würden, wäre es nötig, ein getrenntes Array für jede Priorität zu erzeugen.
  • Für den Fall, dass es keine Austauschbarkeit der Zeitschlitze mit hoher und mittlerer Priorität gibt, werden die entsprechenden Arrays 18.1 und 18.2 jeweils für die Kanäle mit hoher und mittlerer Priorität in 18 auch gezeigt. Die Arrayelemente werden gemäß denselben Prinzipien angeordnet und sortiert, wie mit Bezug auf das Array 18.3 erklärt. Der Unterschied zwischen den Arrays 18.1, 18.2 mit Bezug auf das Array 18.3 ist der, dass jedes der Arrays 18.1 und 18.2 nur Statusausführungszeiten für Kanäle enthält, die dieselbe Priorität haben. In den Arrays 18.1 und 18.2 haben die anfänglich am Weitesten links angeordneten Arrayelemente die ihnen zugewiesenen Zeiger HO, H6 und M1, M15.
  • Wir betrachten nun das Beispiel des Arrays 18.3, wobei wieder die folgenden Schritte durchgeführt werden, um die richtigen Arrayelemente auszuwählen, um die WCL zu berechnen: es wird das Arrayelement, das den größten Wert aller Arrayelemente hat, die einen auf sie zugewiesen Zeiger haben, ausgewählt und der entsprechende Zeiger wird um ein Element nach rechts bewegt. In dem hier betrachteten Beispiel kann das erste Arrayelement entweder das am Weitesten links angeordnete Element der Zeile des Kanals CH 6 oder des Kanals CH 15 sein, da die beiden jeweiligen Statusausführungszeiten gleich 200 sind.
  • Wenn das am weitesten links angeordnete Arrayelement des Kanals 15 ausgewählt wird, wird der Zeiger P15 um ein Element nach rechts bewegt. In dem nächsten Schritt muss ein anderes Arrayelement gemäß denselben Kriterien ausgewählt werden. Da das am Weitesten links angeordnete Element des Kanals CH6 die größte Statusausführungszeit aller Arrayelemente des Arrays 18.3, die einen auf sie zugewiesen Zeiger haben, darstellt, ist dies das nächste auszuwählende Element. Der Zeiger P6 wird ebenso um ein Element nach rechts bewegt. Die bewegten Zeiger werden durch die gestrichelten Pfeile in 18 symbolisiert.
  • Die nächsten Arrayelemente, die gemäß diesen Regeln ausgewählt werden, sind die Arrayelemente, die die Statusausführungszeit 100 der Kanäle CH 6 und CH 15 darstellen.
  • Wieder werden die Zeiger P6 und P15 um ein Element nach rechts bewegt. Als eine Konsequenz zeigen die Zeiger P6 und P15 auf Arrayelemente, die eine Statusausführungszeit von 15 haben. Als eine Konsequenz werden in den nächsten zwei Schritten die am Weitesten links angeordneten Arrayelemente der Kanäle CH 0 und CH 1 ausgewählt, und die entsprechenden Zeiger PO und P1 werden um ein Element nach links bewegt. Da der Parameter S gleich 6 ist, weil H-SCHLITZE=3 und M-SCHLITZE=3, ist eine Anzahl von S Elementen ausgewählt worden, und der Auswahlprozess hält bei dieser Stufe an; die WCL wird durch Aufsummieren der ausgewählten Arrayelemente aus dem Array 18.3 und auch aus dem Array des Kanals CH5 mit niedriger Priorität, das in der Zeichnung nicht gezeigt wird, berechnet.
  • Dies ergibt die folgende Gleichung zum Berechnen der WCL, während die Symbole in Klammern nach den Statusausführungszeiten die entsprechenden ausgewählten Kanäle symbolisieren:
    WCL = 200(CH 15) + 200(CH 6) + 100(CH 15) + 100(CH 6) + 94(CH 1) + 94(CH 0) + 94(CH 5) = 882.
  • Wenn dasselbe Verfahren zum Auswählen von Arrayelementen getrennt auf die Arrays 18.1 und 18.2 angewendet wird, bedeutet dies, dass eine Anzahl von H-SCHLITZEN=4 Elemente aus dem Array 18.1 ausgewählt werden muss und eine Anzahl von M-SCHLITZEN=2 Elemente aus dem Array 18.2 ausgewählt werden muss. Dies liegt daran, dass es in dem betrachteten Beispiel mit Bezug auf die Arrays 18.1 und 18.2 keine Austauschbarkeit zwischen Zeitschlitzen mit hoher Priorität und mit mittlerer Priorität gibt. Somit werden aus dem Ar ray 18.1 die zwei am Weitesten links angeordneten Elemente des Kanals 0 und des Kanals 6 ausgewählt, und aus dem Array 18.2 werden nur die zwei am Weitesten links angeordneten Elemente des Kanals CH15 ausgewählt. Dies ergibt die folgende Gleichung zum Berechnen der WCL:
    WCL = 200(CH 6) + 100(CH 6) + 94(CH 0) + 80(CH 0) + 200(CH 15) + 100(CH 15) + 94(CH 5) = 868.
  • 19 ist ein Flussdiagramm eines Ausführungsforms des Verfahrens gemäß der Erfindung, um die WCL des ausgewählten anfragenden Kanals zu bestimmen. Als weitere Eingangsparameter für das Verfahren ist eine geordnete Prioritätenliste ähnlich der geordneten Liste 132.1 von 1 sowie ein Satz von Prioritätenpassierregeln erforderlich. Der Parameter S sowie die Werte der H-SCHLITZE, M-SCHLITZE und L-SCHLITZE können durch ein beliebiges der oben erklärten Verfahren bestimmt werden, d. h. entweder durch Verwenden einer Tabelle oder durch Auswerten eines mathematischen Modells.
  • In dem Schritt 200 wird auch die Liste der Statusausführungszeiten für alle anfragenden Kanäle eingegeben. In dem Schritt 210 wird eine Untermenge von Prioritäten bestimmt, die nur Prioritäten anfragender Systeme umfasst. Wenn es mindestens einen anfragenden Kanal einer jeden Priorität gibt, dann ist die in dem Schritt 210 bestimmte Untermenge mit dem kompletten Satz von Prioritäten identisch.
  • In dem Schritt 220 wird ein Array für jede Priorität der Untermenge der in dem Schritt 210 bestimmten Prioritäten erzeugt. Jede Zeile in dem Array stellt die Statusausführungszeiten des anfragenden Kanals dar. Wenn es eine Austauschbarkeit zwischen den Prioritäten der anfragenden Kanäle gemäß den Prioritätenpassierregeln gibt, ist die Erzeugung von Arrays für die austauschbaren Kanäle ausreichend. In jedem Falle sind getrennte Arrays für Kanäle, die die Priorität des ausgewählten Kanals haben, für den die WCL bestimmt werden soll, und die anderen anfragenden Kanäle erforderlich.
  • In dem Schritt 230 werden die Statusausführungszeiten in jeder Zeile sortiert und Zeiger werden in dem Schritt 240 dem am Weitesten links angeordneten Element in jeder Zeile zugewiesen, so dass Arrays resultieren, die den Arrays 18.1 und 18.2 oder 18.3 von 18 ähneln.
  • In dem Schritt 250 wird in einem ausgewählten Array das Element mit der größten Statusausführungszeit ausgewählt und zu der WCL hinzugefügt. Der entsprechende Zeiger wird um ein Element nach rechts bewegt, und ein weiteres Arrayelement wird ausgewählt, bis eine Anzahl von Elementen entsprechend der jeweiligen Anzahl von Schlitzen mit dieser Priorität ausgewählt ist.
  • Wenn z. B. das Array für Kanäle mit hoher Priorität ausgewählt wird, dann muss eine Anzahl von H-SCHLITZEN Arrayelementen aus diesem Array ausgewählt werden. Dies wird für alle Arrays gemacht, einschließlich des Arrays, das die Priorität des ausgewählten anfragenden Kanals hat, für den die WCL berechnet werden soll. Wenn die Prioritätenpassierregeln, die Austauschbarkeit von Prioritäten erlauben, die nicht gleich der Priorität des ausgewählten Kanals sind, dann können die jeweiligen Arrays miteinander verbunden werden, um die Berechnung zu erleichtern und genauere Resultate zu erzeugen.

Claims (5)

  1. Verfahren zum Bestimmen einer Anzahl von Zugriffen, die anfragenden Kanälen in einem Warteschlangensystem während einer Worst-Case-Dienstlatenz (WCL) eines ausgewählten aus einer Vielzahl von anfragenden Kanälen (CH 0, CH 1, CH 2,...CH 15) des Warteschlangensystems gewährt wird, wobei jedem der anfragenden Kanäle eine Priorität (H, M, L) aus einem Satz von Prioritäten zugewiesen ist, wobei einem anfragenden Kanal in dem Warteschlangensystem durch einen Scheduler (114) Zugriff gewährt wird, wobei der Scheduler eine geordnete Prioritätenliste (132) umfasst, wobei die geordnete Prioritätenliste gemäß vorbestimmten Prioritätenpassierregeln (136, 137, 138) geändert wird, wenn eine entsprechende Zugriffsanfrage nicht vorhanden ist; mit den folgenden Schritt: a) Bestimmen einer Untermenge des Satzes von Prioritäten, wobei die Untermenge nur die Prioritäten der anfragenden Kanäle umfasst; b) Verändern der geordneten Prioritätenliste gemäß den Prioritätenpassierregeln, wenn die Untermenge und der Satz von Prioritäten nicht identisch sind; wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: c) Auswählen eines Zeitschlitzes in der geordneten Prioritätenliste, der die Priorität des ausgewählten Kanals hat und der einem Zeitschlitz vorangeht, der eine andere Priorität hat, wobei das Verhältnis von Zeitschlitzen, die die Priorität des ausgewählten Kanals haben, und von Zeitschlitzen, die eine andere Priorität in der geordneten Liste haben, am niedrigsten ist, wobei der ausgewählte Zeitschlitz ein schlechtester Zeitschlitz in der geordneten Prioritätenliste im Sinne einer Worst-Case-Dienstlatenz für eine Zugriffsanfrage des ausgewählten Kanals ist; und d) Bestimmen der Anzahl von Zugriffen durch Bestimmen der Menge von Zugriffen, die einmal jedem der anfragenden Kanäle nach dem schlechtesten Zeitschlitz gemäß der geordneten Prioritätenliste gewährt wird, bis dem ausgewählten Kanal Zugriff gewährt wird.
  2. Verfahren basierend auf dem Verfahren gemäß Anspruch 1 zum Ablauf in einem Computer, um eine Worst-Case-Dienstlatenz (WCL) eines ausgewählten aus einer Vielzahl von anfragenden Kanälen (CH 0, CH 1, CH 2,...CH 15) eines Warteschlangensystems automatisch zu bestimmen, wobei jedem der anfragenden Kanäle eine Priorität (H, M, L) aus einem Satz von Prioritäten zugewiesen ist, wobei einem anfragenden Kanal in dem Warteschlangensystem Zugriff durch einen Scheduler (114) gewährt wird, wobei der Scheduler eine geordnete Prioritätenliste (132) umfasst, wobei die geordnete Prioritätenliste gemäß vorbestimmten Prioritätenpassierregeln (136, 137, 138) geändert wird, wenn eine entsprechende Zugriffsanfrage nicht vorliegt, wobei das Verfahren die folgenden Schritte umfasst: a) Bestimmen einer Untermenge von Prioritäten aus dem Satz von Prioritäten, wobei die Untermenge nur die Prioritäten der anfragenden Kanäle umfasst; b) Eingeben einer Anzahl von Zugriffen, die anfragenden Kanälen in dem Warteschlangensystem während der Worst-Case-Dienstlatenz des ausgewählten aus der Vielzahl von anfragenden Kanälen gewährt wurden, wobei die Anzahl der Zugriffe gemäß dem Verfahren von Anspruch 1 gewährt wird; c) Eingeben einer Liste von Statusausführungszeiten einer Funktion eines jeden der anfragenden Kanäle; d) Erzeugen eines Arrays für jede Priorität aus der Untermenge der Prioritäten, wobei jede Zeile in jedem der Arrays eine der Listen der Statusausführungszeiten darstellt; e) Sortieren der Listen der Statusausführungszeiten, die durch die Zeilen in den Arrays dargestellt werden, in absteigender Reihenfolge; f) Zuweisen eines Zeigers zu einer größten Statusausführungszeit in jeder der Zeilen; g) für jede Priorität aus der Untermenge von Prioritäten: g1) Auswählen eines Arrayelementes des Arrays der Priorität, wobei das Arrayelement die größte Statusausführungszeit all der Arrayelemente darstellt, die einen Zeiger zugewiesen haben; g2) Addieren der Statusausführungszeit, die durch das in dem Schritt g1) ausgewählte Arrayelement dargestellt wird, zu der Worst-Case-Dienstlatenz; g3) Bewegen des Zeigers des in dem Schritt g1) ausgewählten Arrayelementes zu dem nächsten Arrayelement desselben anfragenden Kanals in absteigender Reihenfolge; und g4) Wiederholen der Schritte g1) bis g3) für eine Anzahl von Malen, die der Anzahl von Zugriffen entspricht, die den anfragenden Kanälen der Priorität gewährt wird.
  3. Verfahren gemäß Anspruch 2, wobei die Arrays für mindestens zwei der Prioritäten in ein einzelnes Array zusammengeführt werden, um die Arrays für die zwei der Prioritäten zu ersetzen, wenn die zwei der Prioritäten gemäß den Prioritätenpassierregeln austauschbar sind und wenn keine der zwei der Prioritäten gleich der Priorität des ausgewählten aus der Vielzahl der anfragenden Kanäle ist.
  4. Computerprogramm, das, wenn es auf einem Rechner ausgeführt wird, geeignet ist, das Verfahren durchzuführen, wie in einem der Ansprüche 1, 2 oder 3 beansprucht ist.
  5. Vorrichtung zum Bestimmen einer Anzahl von Zugriffen, die anfragenden Kanälen gewährt werden, wobei die Vorrichtung ein Warteschlangensystem für eine Vielzahl anfragender Kanäle (CH 0, CH 1, CH 2,...CH 15) aufweist, wobei jeder der anfragenden Kanäle eine Worst-Case-Dienstlatenz (WCL) benötigt, die nicht über eine vorbestimmte maximale Worst-Case-Dienstlatenz hinausgeht, wobei jedem der anfragenden Kanäle eine Priorität (H, M, L) aus einem Satz von Prioritäten zugewiesen ist, wobei einem der anfragenden Kanäle in dem Warteschlangensystem durch einen Scheduler (114) Zugriff gewährt wird, wobei der Scheduler eine geordnete Prioritätenliste (132) umfasst, wobei die geordnete Prioritätenliste gemäß vorbestimmten Prioritätenpassierregeln (136, 137, 138) geändert wird, wenn eine entsprechende Zugriffsanfrage nicht vorliegt, wobei die Vorrichtung außerdem folgendes aufweist: a) ein Mittel zum Bestimmen einer Untermenge des Satzes von Prioritäten, wobei die Untermenge nur die Prioritäten der anfragenden Kanäle umfasst; b) ein Mittel zum Verändern der geordneten Prioritätenliste gemäß den Prioritätenpassierregeln, wenn die Untermenge und der Satz von Prioritäten nicht identisch sind; wobei die Vorrichtung dadurch gekennzeichnet ist, dass sie weiterhin aufweist: c) ein Mittel zum Auswählen eines Zeitschlitzes in der geordneten Prioritätenliste, der die Priorität des ausgewählten Kanals hat und der einem Zeitschlitz vorangeht, der eine andere Priorität hat, wobei das Verhältnis von Zeitschlitzen, die die Priorität des ausgewählten Kanals haben, und von Zeitschlitzen, die eine andere Priorität in der geordneten Liste haben, am niedrigsten ist, wobei der ausgewählte Zeitschlitz ein schlechtester Zeitschlitz in der geordneten Prioritätenliste im Sinne einer Worst-Case-Dienstlatenz für eine Zugriffsanfrage des ausgewählten Kanals ist; und d) ein Mittel zum Bestimmen der Anzahl von Zugriffen durch Bestimmen der Menge von Zugriffen, die einmal jedem der anfragenden Kanäle nach dem schlechtesten Zeitschlitz gemäß der geordneten Prioritätenliste gewährt wird, bis dem ausgewählten Kanal Zugriff gewährt wird.
DE69724270T 1996-11-06 1997-11-05 Verfahren und vorrichtung zur feststellung der anzahl von zugeteilten zugriffen während der latenz des schlechtesten falles Expired - Fee Related DE69724270T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
RU96122056/09A RU96122056A (ru) 1996-11-06 Способ и устройство для определения количества обслуживаний, предоставляемых в течение максимального времени ожидания
RU96122056 1996-11-06
PCT/EP1997/006105 WO1998020425A2 (en) 1996-11-06 1997-11-05 A method for determining the number of accesses granted during wcl and apparatus

Publications (2)

Publication Number Publication Date
DE69724270D1 DE69724270D1 (de) 2003-09-25
DE69724270T2 true DE69724270T2 (de) 2004-02-19

Family

ID=20187333

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69724270T Expired - Fee Related DE69724270T2 (de) 1996-11-06 1997-11-05 Verfahren und vorrichtung zur feststellung der anzahl von zugeteilten zugriffen während der latenz des schlechtesten falles

Country Status (5)

Country Link
US (1) US6580719B1 (de)
EP (1) EP0939928B1 (de)
JP (1) JP2000509858A (de)
DE (1) DE69724270T2 (de)
WO (1) WO1998020425A2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW511034B (en) * 1998-11-09 2002-11-21 Intel Corp Scheduling requests in a system
GB9907445D0 (en) * 1999-03-31 1999-05-26 British Telecomm Packet messaging method and apparatus
US6732196B2 (en) * 2002-02-26 2004-05-04 International Business Machines Corporation Allowing slots belonging to a second slot category to receive I/O access requests belonging to a first and a second access request categories in a round robin fashion
US7814052B2 (en) 2006-11-03 2010-10-12 Salesforce.Com, Inc. Implementing formulas for custom fields in an on-demand database
US7912623B2 (en) * 2007-09-25 2011-03-22 Denso Corporation Engine control system designed to manage schedule of engine control tasks
JP4544284B2 (ja) * 2007-09-25 2010-09-15 株式会社デンソー エンジン制御装置
JP4530015B2 (ja) * 2007-09-25 2010-08-25 株式会社デンソー エンジン制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265257A (en) * 1990-06-22 1993-11-23 Digital Equipment Corporation Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines
US5311513A (en) * 1992-09-10 1994-05-10 International Business Machines Corp. Rate-based congestion control in packet communications networks
US5528766A (en) * 1994-03-24 1996-06-18 Hewlett-Packard Company Multiple arbitration scheme
US5434848A (en) * 1994-07-28 1995-07-18 International Business Machines Corporation Traffic management in packet communications networks

Also Published As

Publication number Publication date
EP0939928A2 (de) 1999-09-08
US6580719B1 (en) 2003-06-17
WO1998020425A2 (en) 1998-05-14
WO1998020425A3 (en) 1998-07-23
EP0939928B1 (de) 2003-08-20
DE69724270D1 (de) 2003-09-25
JP2000509858A (ja) 2000-08-02

Similar Documents

Publication Publication Date Title
DE3300260C2 (de)
DE3810231C2 (de)
DE3300261C2 (de)
DE69834519T2 (de) Bussteuerungssystem und -verfahren
DE3300262C2 (de)
DE2354521C2 (de) Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln
DE2164749A1 (de) Konflikt-Lösungsverfahren und -Lösungseinrichtung
DE2015971C3 (de) Datenverarbeitungsanlage mit einer Anzahl von zeitmultiplex von einem zentralen Rechenwerk bedienten virtuellen Prozessoren
DE60205231T2 (de) Vorrichtung und verfahren zur effizienten zuteilung von speicherbandbreite in einem netzwerkprozessor
EP0010570B1 (de) Verfahren und Einrichtung zur selbstadaptiven Zuordnung der Arbeitslast einer Datenverarbeitungsanlage
DE3106862C2 (de) Prioritätszuteilschaltungsanordnung
DE3535436C2 (de)
DE19744230A1 (de) Steuergeräte für ein System und Verfahren zum Betrieb eines Steuergeräts
DE102008034500A1 (de) Arbitrierung
DE2731188A1 (de) Datenverarbeitungssystem
DE69911986T2 (de) Einrichtung und verfahren zum ausgleichen und verteilen von steueralgorithmenlasten
DE102005013302A1 (de) Proaktiver, systemischer Planer für ressorceneingeschränkte Testsysteme
DE69724270T2 (de) Verfahren und vorrichtung zur feststellung der anzahl von zugeteilten zugriffen während der latenz des schlechtesten falles
DE102013011850A1 (de) Numerische Steuerung für die Kommunikation mit E/A Einheiten
DE2054941C2 (de) Anordnung zur Auswahl von Datensätzen
DE69934823T2 (de) Verfahren zur last-regulierung
DE69908911T2 (de) Zuweisungsvorrichtung für eine datenvermittlungsanlage
DE1524181A1 (de) Abrufsystem fuer Ein- und Ausgabegeraete einer Datenverarbeitungsanlage
DE112019000592B4 (de) Arbitrierung von Anforderungen nach Alter und Verkehrsklassen
DE602004005526T2 (de) Verfahren zur Auswahl von einem Übertragungskanal in einem Zeitbereichvielfachzugriffssystem, und System dafür

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: FREESCALE SEMICONDUCTOR, INC., AUSTIN, TEX., US

8339 Ceased/non-payment of the annual fee