DE60127357T2 - Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema - Google Patents

Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema Download PDF

Info

Publication number
DE60127357T2
DE60127357T2 DE60127357T DE60127357T DE60127357T2 DE 60127357 T2 DE60127357 T2 DE 60127357T2 DE 60127357 T DE60127357 T DE 60127357T DE 60127357 T DE60127357 T DE 60127357T DE 60127357 T2 DE60127357 T2 DE 60127357T2
Authority
DE
Germany
Prior art keywords
master
data
bus
pci bus
arbiter
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 - Lifetime
Application number
DE60127357T
Other languages
English (en)
Other versions
DE60127357D1 (de
Inventor
Sujith K. San Jose Arramreddy
Appanagari Sunnyvale Raghavendra
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.)
Broadcom Inc
Original Assignee
Serverworks Corp
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 Serverworks Corp filed Critical Serverworks Corp
Application granted granted Critical
Publication of DE60127357D1 publication Critical patent/DE60127357D1/de
Publication of DE60127357T2 publication Critical patent/DE60127357T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Description

  • Die vorliegende Erfindung bezieht sich auf einen PCI-Arbiter (PCI = Peripheral Component Interconnect), und insbesondere auf einen PCI-Arbiter mit einem dynamischen Prioritätsschema.
  • Ein PCI-Bus (PCI = Peripheral Component Interconnect) ist ein Industriestandard-Erweiterungsbus, welcher viel von der Information und den Signalen eines Computersystems übermittelt. Idealerweise sollte, wenn das Computersystem seine Programmierung ausführt, Information möglichst schnell fließen, um sicherzustellen, dass der Computer auf den Benutzer reagiert. Um Fehler in der Übertragung von jener Information zu vermeiden, schließt eine Ausführung eines PCI-Busses eine spezielle logische Schaltung und zugeordnete Signale ein, um den Fluss von jeder Information zu steuern.
  • Insbesondere ermöglicht ein typischer PCI-Bus einem Buscontroller, auch Arbiter genannt, Busübertragungen zu steuern. Eine Vorrichtung, welche die Steuerung des Busses übernimmt, um seine eigene Übertragung abzuwickeln, wird "Master" genannt, wohingegen eine Vorrichtung, welche Daten von dem Master empfängt, als "Ziel" bezeichnet wird. Der Arbiter verwendet einen Algorithmus, um zu ermitteln, welcher Master die Steuerung des Busses übernehmen kann und um die Zeitspanne jener Steuerung zu ermitteln.
  • Eine Arbitration muss die konkurrierenden Ziele von Fairness und Priorität lösen. Fairness erfordert, dass es nicht einem Master erlaubt sein sollte, das Monopol über den Bus zu erringen. Priorität jedoch erfordert, dass unter gewissen Umständen vorbestimmte Master-Vorrichtungen den Bus häufiger nützen sollten, um zeitkritische Ziele zu erreichen. Einige typische von Arbitern verwendete Algorithmen sind die Single-Level Round Robin, Multi-Level Round Robin, Least Recently Used und die Priority Based Verfahren.
  • Im Single Level Round Robin Verfahren wird eine kleine Zeiteinheit, d.h. ein Quantum, definiert. Alle Prozesse (welche mit bestimmten Master-Vorrichtungen verbunden sind) werden in eine Kreis-Warteschlange eingefügt. Der Arbiter folgt der Warteschlange und reserviert die Verwendung des Busses durch einen Master, um den Prozess für die Dauer eines Zeitintervalls von einem Quantum durchzuführen. Ein beliebiger neuer Prozess wird nach dem letzten Prozess in der Warteschlange hinzugefügt.
  • Wenn der Prozess vor dem Ende des Quantums beendet ist, gibt der Master den Bus freiwillig frei. Jedoch wird, falls der Prozess am Ende des Quantums noch läuft, der Master abgelöst und der Prozess an das Ende der Warteschlange hinzugefügt. In jedem Fall ordnet der Arbiter den Bus zu dem nächsten Prozess in der Warteschlange zu.
  • Im Multi-Level Round Robin Verfahren werden mindestens zwei Kreis-Warteschlangen gebildet. Zum Beispiel, unter der Annahme, dass eine erste und zweite Warteschlange gebildet werden, werden Prozesse, welche den Bus häufig nützen, in der ersten Warteschlange und Prozesse, welche den Bus weniger häufig nützen, in der zweiten Warteschlange angeordnet. Prozesse in der zweiten Warteschlange haben gleichen Zugriff auf den Bus, wenn sie in der gleichen Warteschlange sind. Jedoch haben die Prozesse in der zweiten Warteschlange, als Gruppe, gleichen Zugriff auf den Bus wie jeder Prozess in der ersten Warteschlange. Mit anderen Worten, die Prozesse der zweiten Warteschlange bilden gewissermaßen einen "Super-Prozess", wobei der Super-Prozess als einer der Prozesse in der ersten Warteschlange angesehen wird. Daher wird für jede Runde der Prozesse in der ersten Warteschlange ein Prozess in der zweiten Warteschlange ausgeführt. In diesem Verfahren gibt der Master den Bus freiwillig frei, wenn der Prozess vor dem Ende des Quantums beendet ist. Jedoch wird, wenn der Prozess am Ende des Quantums noch läuft, der Master abgelöst und der Prozess wird an das Ende der geeigneten Warteschlange hinzugefügt.
  • Im Least Recently Used Verfahren wird eine beliebige Warteschlange gebildet. Anfänglich folgt der Arbiter der Warteschlange und lässt jeden Prozess abschließen, bevor er dem nächsten Master in der Warteschlange ermöglicht, die Steuerung des Busses zu erlangen. Wenn jedoch der Arbiter eine Anfrage nach einer Steuerung des Busses von einem Master empfängt, welcher nicht der nächste in der Warteschlange ist, gibt der Arbiter die Steuerung des Busses (nach Beendigung des laufenden Prozesses) an den Master, dessen Benutzung des Busses am längsten zurückliegt.
  • Schließlich, in einem Priority-Based Verfahren, entscheidet der Arbiter über die Steuerung des Busses allein basierend auf der Priorität des zugeordneten von dem Master durchgeführten Prozesses. In diesem Verfahren wird jeder Prozess vollendet, bevor der nächste Prozess begonnen wird.
  • Jedes der oben beschriebenen Verfahren hat seine Nachteile. Zum Beispiel, sowohl im Single-, als auch Multi-Level Round Robin Verfahren, gewährt ein Quantum einem Master vielleicht nicht die Zeit, um einen kritischen Prozess zu beenden. Demzufolge kann die Vollendung jenes kritischen Prozesses mehrere vollständige Durchläufe der Warteschlange erfordern, wodurch eine erhebliche Ineffizienz in das System eingebracht wird.
  • Im Least Recently Used Verfahren erlangen Prozesse, welche nicht kritisch sind, mehr Kontrolle über den Bus als in anderen Verfahren. Obwohl dies den weniger häufig benützten Prozessen eine Gelegenheit bietet, abzuschließen, erfordert sie auch, dass Zeit-Resourcen für andere kritischere Prozesse verloren gehen. Daher führt diese Verfahren auch häufig zu signifikanter Ineffizienz in dem System.
  • Im Priority Based Verfahren werden, abhängig von der durch das System zu vollendenden Aufgabe, nicht-kritische Prozesse vielleicht nur selten ausgeführt. Obwohl diese nicht-kritischen Prozesse sich vielleicht nur auf Prozesse beziehen, wie Erweiterungsbus-Anfragen, kann eine sporadische oder sogar eine Nicht-Ausführung jener Prozesse zu einer gewissen Systemineffizienz beitragen.
  • All diese Verfahren verwenden statische Algorithmen, um die Steuerung über den Bus festzulegen. Wie oben dargelegt, scheitert jeder dieser statischen Algorithmen daran, die Flexibilität bereitzustellen, um die Systemeffizienz zu optimieren. Daher besteht ein Bedarf nach einem flexiblen Arbitrationsschema, welches eine Systemeffizienz optimiert.
  • US-A-5 592 631 betrifft ein System und ein Verfahren zum Entkoppeln der Adress- und Datenbusse eines Computersystems, welches eine Vielzahl von Master- und Slave-Vorrichtungen aufweist, wobei den Master-Vorrichtungen der Zugriff auf den Datenbus basierend auf einer festen Prioritätsordnung der Master-Vorrichtungen gewährt wird.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Busarbitrationsschema bereitzustellen, welches die Effizienz von Datenübertragungen auf einem PCI-Bus verbessert.
  • Diese Aufgabe wird durch das Verfahren gemäß Anspruch 1 und durch das System gemäß Anspruch 5 erfüllt. Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung sind in den abhängigen Ansprüchen definiert.
  • Die vorliegende Erfindung stellt ein dynamisches Prioritätsschema bereit, welches beim Entscheiden, welchem Master das Eigentum an einem PCI-Bus zugeordnet werden soll, Information verwendet, die den Status des Ziels und Datenverfügbarkeit einschließt, wodurch Leistung und Ausnutzung des PCI-Busses optimiert werden. Insbesondere stellt die vorliegende Erfindung mehrere Stufen von Master-Priorität zur Verfügung. In einem Ausführungsbeispiel werden drei Prioritätsstufen bereitgestellt: HIGH, MEDIUM und LOW.
  • Sobald eine Anfrage von einem Master gesendet wird, gibt ein Arbiter in dem System ein vorläufiges Gewährungssignal an den Master aus. An diesem Punkt ordnet der Arbiter in dem System dem anfragenden Master eine MEDIUM-Priorität zu und leitet die Anfrage an das Ziel weiter. Der Arbiter entscheidet dann, ob Daten von dem Ziel verfügbar sind. Wenn die Daten verfügbar sind, ordnet der Arbiter dem anfragenden Master eine HIGH-Piorität neu zu. Jedoch, wenn die Daten nicht verfügbar sind, dann ordnet der Arbiter dem anfragenden Master eine LOW-Priorität neu zu und übergeht den anfragenden Master, bis dem Arbiter mitgeteilt wird, dass Daten von dem Ziel verfügbar sind.
  • Gemäß der vorliegenden Erfindung schließt jedes Ziel eine Speicherschnittstelle ein, um den Priorisierungsprozess zu erleichtern. Insbesondere speichert das Ziel auf einen Empfang einer Speicherzugriffsanfrage von einem Master (über den Arbiter) diese Anfrage in einer Anfrage-Warteschlange ab, welche einen Teil der Speicherschnittstelle bildet, und fährt dann fort, die benötigte Information zu erfassen, um den Zugriff auf den Speicher zu vervollständigen. Nachdem die Daten in die Anfrage-Warteschlange kopiert worden sind (d.h. die Daten sind nun verfügbar), erzeugt das Ziel eine Master-ID zum Auslösen einer Zustandsänderung des anfragenden Masters. In einem bevorzugten Ausführungsbeispiel erzeugt das Ziel die Master-ID, indem die Anfrage von dem Master (wird modifizierte Anfrage genannt) verwendet wird. Diese Master-ID wird dann an den Arbiter geliefert.
  • Nachdem der Arbiter die modifizierte Anfrage empfangen hat, ändert der Arbiter die Priorität des Masters zu HIGH und sendet, in der Annahme, dass der PCI-Bus verfügbar ist und keine weiteren Master-Vorrichtungen eine frühere hohe Priorität besitzen, dem anfragenden Master ein endgültiges Gewährungssignal, wodurch dem Master ermöglicht wird, die Steuerung des PCI-Busses zu übernehmen. Es ist zu beachten, dass, wenn der PCI-Bus gerade von einem weiteren Master gesteuert wird, oder wenn andere Master-Vorrichtungen eine frühere hohe Priorität besitzen, der Arbiter das endgültige Gewährungssignal zu der nächsten frühesten Zeitspanne sendet, nachdem der Prozess, welcher von dem letzten steuernden Master durchgeführt wird, vollendet ist.
  • Um weiter die Effizienz der vorliegenden Erfindung zu erhöhen, kann die Anfrage-Warteschlange ein Eingabe-/Ausgabe-Cache aufweisen. Ein Cache-Controller hält das Cache mit Daten oder Befehlen gefüllt, die eine oder mehrere Master-Vorrichtungen am wahrscheinlichsten als Nächstes benötigen. Auf diese Weise kann Information ohne Verzögerung aufgerufen werden.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt ein vereinfachtes Diagramm einer PCI-Bus-Architektur.
  • 2 zeigt ein vereinfachtes Diagramm einer Anfrage-/Gewährungs-Architektur.
  • 3 zeigt ein Flussdiagramm des Prioritätsschemas für einen anfragenden Master.
  • 4 zeigt einen beispielhaften Priorisierungsprozess, welcher vier anfragende Master-Vorrichtungen einschließt.
  • 5 zeigt eine beispielhafte Anfrage-Warteschlange gemäß der vorliegenden Erfindung.
  • Ausführliche Beschreibung der Zeichnungen
  • 1 zeigt eine PCI-Bus-Architektur 100, welche einen PCI-Bus 106 einschließt. Mit dem PCI-Bus 106 sind die Master-Vorrichtungen 101A, 101B und 101C verbunden. Ein Mikroprozessor 105 überträgt die Arbitration von PCI-Bus 106 an einen Arbiter 103 (welcher mit dem Mikroprozessor 105 über einen lokalen Bus 108 verbunden ist) und wird von dem System als ein weiterer Master in der Architektur 100 betrachtet. An diesem Punkt, wenn der Mikroprozessor 105 nicht die Steuerung wiederaufnimmt, ordnet der Arbiter 103 das Eigentum an dem PCI-Bus 106 an anfragende PCI-Master-Vorrichtungen zu.
  • Ziele 102A und 102B, auf welche jeder Master zugreifen kann, sind mit dem Arbiter 103 über Speicherbusse 107A bzw. 107B verbunden. Zur Verwendung in dieser Beschreibung schließen die Ziele 102A und 102B zugeordnete Speicher 104A bzw. 104B ein.
  • In einer PCI-Ausführung schließt eine Bus-Arbitration die folgenden Schritte ein. Ein Master gibt ein Anfragesignal (REQ) aus, wenn er die Steuerung des Busses übernehmen will. Der Arbiter sendet ein Gewährungssignal (GNT) an den Master, wenn die Erlaubnis gewährt wird, die Steuerung des Busses zu übernehmen. Bezugnehmend auf 2 hat jeder Master in der Anfrage-/Gewährungs-Architektur 200 seine eigenen Verbindungen in einen PCI-Bus, um die Bussteuerung anzufragen und die Bestätigung zu empfangen, dass die Steuerung gewährt worden ist. Daher besitzt jeder Master seine eigenen zugeordneten REQ# und GNT# Verbindungen, wobei # den Master kennzeichnet. Wenn mehrere Master-Vorrichtungen PCI-Bus-Eigentum anfordern, aktiviert jeder anfragende Master 101/103 seine entsprechende Anfrageverbindung. Zum Beispiel stellt Master 101B seine Anfrage, indem er die zugeordnete Anfrageverbindung REQ#2 verwendet. Arbiter 103 ermittelt, welcher Master das Eigentum an dem PCI-Bus 106 (1) erhalten soll und bestätigt die jenem Master zugeordnete Gewährungsverbindung. Zum Beispiel empfängt Master 101B sein Gewährungssignal von Arbiter 103 über Verbindung GNT#2 (es ist zu beachten, dass, der Einfachheit halber, sowohl die Anfrage-/Gewährungs-Verbindungen, als auch die darauf befindlichen Signale mit den gleichen Kennungen bezeichnet werden).
  • Gemäß der vorliegenden Erfindung wird dynamische Information, wie der Zustand des Ziels, auf welches der Master zugreift und die Verfügbarkeit der Daten, welche die Master- Vorrichtung anfragt, im Arbitrationsalgorithmus eingegliedert ist, wodurch die Systemleistung stark erhöht wird und die Systemeffizienz maximiert wird. Insbesondere schließt die Arbiter-Logik in der vorliegenden Erfindung verschiedene Stufen von Master-Priorität ein.
  • In einem Ausführungsbeispiel werden drei Stufen von Priorität bereitgestellt: HIGH, MEDIUM und LOW. Wie unten ausführlicher beschrieben, besitzt ein Master, welcher eine Anfrage in der Anfrage-Warteschlange des Ziels gesendet hat, aber keine verfügbaren Daten in dem Ziel hat, eine LOW-Priorität. Jeder Master, welcher seine Anfrage nicht in die Anfrage-Warteschlange des Ziels gesendet hat, besitzt eine MEDIUM-Priorität. Schließlich besitzt ein Master, welcher eine Anfrage in der Anfrage-Warteschlange des Ziels gesendet hat, und Daten in dem Ziel verfügbar sind, eine HIGH-Priorität.
  • 3 zeigt ein Flussdiagramm 300, welches das Prioritätsschema für jeden Master gemäß der vorliegenden Erfindung zusammenfasst. Nachdem der Priorisierungsprozess in Schritt 301 begonnen hat, weist der Arbiter dem Master in Schritt 302 eine MEDIUM-Priorität zu. An diesem Punkt ist der Master inaktiv, bis der Master ein Anfragesignal ausgibt, wenn er die Steuerung des Busses in Schritt 303 übernehmen will. Nachdem der Arbiter ein vorläufiges Gewährungssignal an den Master in Schritt 304 gesendet hat, ermittelt der Arbiter in Schritt 305, ob Daten von dem mit der Anfrage verbundenen Ziel verfügbar sind.
  • In der Annahme, dass Daten nicht verfügbar sind, weist dann der Arbiter dem Master in Schritt 306 eine LOW-Priorität zu. Der Master behält diese Priorität, bis die Zieldaten verfügbar sind, wie in Schritt 307 ermittelt. An diesem Punkt wird die von dem Master gesendete Anfrage in Schritt 308 modifiziert (d.h., eine Master-ID wird erzeugt) und an den Arbiter gesendet. Nachdem der Arbiter die modifizierte Anfrage erhalten hat, ändert er die Priorität des Masters zu einer HIGH-Priorität in Schritt 309.
  • In der Annahme, dass der PCI-Bus verfügbar ist und keine weiteren Master-Vorrichtungen mit einer HIGH-Priorität frühere Rechte an dem Bus besitzen, wie in Schritt 310 ermittelt, sendet der Arbiter ein endgültiges Gewährungssignal an den Master, wodurch dem Master ermöglicht wird, die Steuerung des PCI-Busses zu übernehmen. Nachdem die Daten in Schritt 311 von dem Ziel übertragen worden sind, kehrt der Arbiter zu Schritt 302 zurück und ändert die Priorität des Masters zurück zu einer MEDIUM-Priorität. Es ist zu beachten, dass, wenn Zieldaten in Schritt 305 verfügbar sind, der Arbiter die Anfrage sofort in Schritt 308 modifiziert und dann mit den Schritten 309311 fortfährt, wie oben beschrieben.
  • 4 zeigt einen beispielhaften Priorisierungsprozess, in welchem jede der Master-Vorrichtungen 101A, 101B, 101C und 105 (der Mikroprozessor) eine Bussteuerung anfragen. Zum Zeitpunkt t1 fragt Master 105 eine Bussteuerung an. Demzufolge ordnet der Arbiter dem Master 105 eine MEDIUM-Priorität zu. Zum Zeitpunkt t2 fragt der Master 101A eine Bussteuerung zum gleichen Zeitpunkt an, an welchem Daten für den Master 105 verfügbar werden. Gemäß der vorliegenden Erfindung ordnet der Arbiter dem Master 101A eine MEDIUM-Priorität zu und ändert die Priorität von Master 105 zu einer HIGH-Priorität. Folglich wird dem Master 105 die Steuerung des Busses zum Zeitpunkt t2 bis zum Vollenden seines Prozesses zum Zeitpunkt t5 gegeben.
  • In der Zwischenzeit sind Daten für den Master 101A zum Zeitpunkt t3 nicht verfügbar. Demzufolge ordnet der Arbiter zum Zeitpunkt t3 dem Master 101A eine LOW-Priorität neu zu. Auch zum Zeitpunkt t3 fragt der Master 101B eine Bussteuerung an und ihm wird eine MEDIUM-Priorität zugeordnet. Zum Zeitpunkt t4 werden Daten für den Master 101B verfügbar. Demzufolge weist der Arbiter dem Master 101B eine HIGH-Priorität neu zu und ermöglicht dem Master 101B, die Steuerung des Busses zum Zeitpunkt t5 zu übernehmen (d.h., nachdem der mit dem Master 105 verbundene Prozess vollendet ist). Der von dem Master 101B durchgeführte Prozess endet zum Zeitpunkt t6.
  • Es ist zu beachten, dass zum Zeitpunkt t5 der Master 101C eine Bussteuerung anfragt. Da jedoch Daten für den Master 101C zum Zeitpunkt t6 nicht verfügbar sind, weist der Arbiter dem Master 101C eine LOW-Priorität neu zu. Daher besitzen zu diesem Zeitpunkt beide Master-Vorrichtungen 101A und 101C eine LOW-Priorität. Zum Zeitpunkt t7 werden Daten für den Master 101C verfügbar. Daher weist der Arbiter dem Master 101C eine HIGH-Priorität neu zu und ermöglicht dem Master 101C, die Steuerung des Busses zum Zeitpunkt t7 zu übernehmen.
  • Zum Zeitpunkt t7 fragt der Master 105 eine Steuerung des Busses an und folglich wird ihm eine MEDIUM-Priorität zugeordnet. Zum Zeitpunkt t8 werden Daten für beide Master-Vorrichtungen 101A und 105 verfügbar. Gemäß der vorliegenden Erfindung übernimmt der Master 105 (welcher zuvor eine MEDIUM-Priorität besitzt) die Steuerung des Busses vor dem Master 101A (welcher zuvor eine LOW-Priorität besitzt). Insbesondere übernimmt der Master 105 die Steuerung zum Zeitpunkt t9, wenn der von dem Master 101C durchgeführte Prozess vollendet ist. Der Master 101A übernimmt die Steuerung des Busses, nachdem der von dem Master 105 durchgeführte Prozess vollendet ist.
  • Gemäß der vorliegenden Erfindung schließt jedes Ziel 102 eine Speicherschnittstelle ein, um den Priorisierungsprozess zu vereinfachen. Zum Beispiel, bezugnehmend auf 2, schließt das Ziel 102A eine Schnittstelle 201A zu seinem zugeordneten Speicher 104A ein und das Ziel 102B schließt eine Schnittstelle 201B zu seinem zugeordneten Speicher 104B ein. Das folgende Beispiel beschreibt die Funktionalität der Speicherschnittstelle 201A, wobei die Funktionalität von Speicherschnittstelle 201B identisch zu jener von Speicherschnittstelle 201A ist. Angenommen, der Master 101A fragt einen Zugriff auf Speicher 104A an. Eine Anfrage REQ#1 wird an den Arbiter 103 gesendet, welcher dem Master 101A eine MEDIUM-Priorität zuordnet und die Anfrage an das Ziel 102A weiterleitet. In einem Ausführungsbeispiel wird die Anfrage REQ#1 an das Ziel 102A über einen Speicherbus 107A (1) gesendet. Jedoch wird in anderen Ausführungsbeispielen die Anfrage REQ#1 zu dem Ziel 102A über eine zugeordnete Verbindung gesendet, ebenso wie die Anfrage-/Gewährungs-Signale. Auf den Empfang von REQ#1 hin fährt das Ziel 102A fort, die Information zu erfassen, welche zum Vervollständigen des Zugriffs auf den Speicher 104A benötigt wird.
  • Die erfasste Information wird in einer Anfrage-Warteschlange in der Schnittstelle 201A des Ziels 102A gespeichert. 5 stellt eine beispielhafte Anfrage-Warteschlange 500 dar, welche Anfrageinformation 501, eine Vielzahl von Master-Identifizierungen (IDs) 502 und Daten 503 einschließt. In einem Ausführungsbeispiel erzeugt das Ziel 102A eine Master-ID 502A, indem die Anfrage REQ#1 (d.h., die Anfrageinformation 501A) verwendet wird, nachdem Daten 503A verfügbar sind und in der Anfrage-Warteschlange 500 gespeichert worden sind. Die Master-ID 502A, dargestellt als modifizierte Anfrage MREQ#1 in 2, wird dann an den Arbiter 103 geliefert. In einem Ausführungsbeispiel wird die modifizierte Anfrage MREQ#1 an den Arbiter 103 über den Speicherbus 107a (1) gesendet. Jedoch wird in anderen Ausführungsbeispielen die modifizierte Anfrage MREQ#1 an den Arbiter 103 über eine zugeordnete Verbindung gesendet, ebenso wie die Anfrage-/Gewährungs-Signale.
  • Nachdem der Arbiter 103 die modifizierte Anfrage MREQ#1 empfangen hat, ändert der Arbiter 103 die Priorität von Master 101A zu HIGH und, in der Annahme, dass der PCI-Bus 106 (1) verfügbar ist und keine weiteren Master-Vorrichtungen eine frühere HIGH-Priorität besitzen, sendet ein endgültiges Gewährungs-Signal GNT#1 an den Master 101A, wodurch dem Master 101A ermöglicht wird, die Steuerung von PCI-Bus 106 zu übernehmen. Es ist zu beachten, dass, wenn der PCI-Bus 106 gerade von einem weiteren Master gesteuert wird oder wenn andere Master-Vorrichtungen eine frühere HIGH-Priorität besitzen, der Arbiter 103 dann dem Master 101A ermöglicht, die Steuerung von PCI-Bus 106 zur nächsten frühesten Zeitspanne zu übernehmen, nachdem der Prozess vollständig ist, welcher von dem letzten steuernden Master durchgeführt wird.
  • Wie unter Bezugnahme auf 4 beschrieben, ändert der Arbiter 103 die Priorität von dem Master 101A zu LOW, wenn Daten nicht in der nächsten Zeitspanne (Zeitpunkt t3), welche der Anfrage REQ#1 (Zeitpunkt t2) folgt, verfügbar sind. Auf diese Weise muss der Master 101A REQ#1 nicht wiederholen und wird in der Tat in einem bevorzugten Ausführungsbeispiel von einem Wiederholen von REQ#1 abgehalten, wenn das Ziel 102A nicht bereit ist, die Daten zu liefern. Wie zuvor beschrieben, ordnet der Arbiter 103 während der Zeitspanne, in welcher dem Master 101A eine LOW-Priorität zugeordnet ist (in 4, vom Zeitpunkt t3 zu Zeitpunkt t8) das Eigentum am PCI-Bus 106 einem anderen PCI-Master zu, welcher den Bus anfragt und verfügbare Daten besitzt (wie zum Beispiel der Master 101B zum Zeitpunkt t5 und der Master 101C zum Zeitpunkt t7).
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung kann das Ziel 102A verschiedene Anfragen in die Anfrage-Warteschlange der Schnittstelle 201A senden. Auf diese Weise können mehrere Master-Vorrichtungen auf den Speicher des gleichen Zieles zugreifen (tatsächlich können, wegen des sequenziellen Bedienens der vorliegenden Erfindung, mehrere Master-Vorrichtungen sogar auf die gleichen Daten in einem Speicher zugreifen). Das Beispiel weiter ausführend, welches den obigen Master 101A einschließt, wird angenommen, dass der Master 101B auch eine Anfrage REQ#2 an den Arbiter 103 sendet, um auf den Speicher 104A des Ziels 102A zuzugreifen. In diesem Fall sendet das Ziel 102A REQ#2 (d.h. die Anfrage-Information 501B) von dem Master 101B in die Anfrage-Warteschlange 500 (4). Es ist zu beachten, dass, obwohl nur zwei Anfragen von der Anfrage-Warteschlange 500 bearbeitet werden können, andere Ausführungsbeispiele eine beliebige Anzahl von Anfragen mit zugehörigen Master-IDs und Daten einschließen können. Ferner wird angenommen, dass die von dem Master 101B angefragten Daten vor den von dem Master 101A angefragten Daten verfügbar sind. In der vorliegenden Erfindung wird ein modifiziertes Anfragesignal MREQ#2 (d.h. Master-ID 502B von 5) (beide nicht in 2 dargestellt) an den Arbiter 103 geliefert, bevor die modifizierte Anfrage MREQ#1 geliefert wird. Daher ändert sich die Priorität von Master 101B zu HIGH vor jener von Master 101A.
  • Um weiter die Effizienz der vorliegenden Erfindung zu erhöhen, kann die Anfrage-Warteschlange ein Eingabe-/Ausgabe-Cache einschließen. Das Cache schaltet einen schnellen Speicherblock zwischen Speicher 104 und Arbiter 103. Eine Cache-Steuerung hält das Cache mit Daten oder Befehlen gefüllt, welche eine oder mehrere Master-Vorrichtungen am wahrscheinlichsten als Nächstes benötigen. Auf diese Weise kann Information ohne Verzögerung abgefragt werden (siehe zum Beispiel 4, in welcher der Master 105 eine Anfrage zum Zeitpunkt t1 sendet und Information zum Zeitpunkt t2 abfragt). Für die meisten Systemanwendungen ist eine Cache-Größe von ungefähr 256 KB ausreichend.
  • In einem Ausführungsbeispiel implementiert eine PCI-Brücke das oben beschriebene Prioritätsschema der vorliegenden Erfindung. Wie bei Fachleuten bekannt, ist eine Brücke ein Systembaustein, welcher verwendet wird, um Daten zwischen verschiedenen Bussen zu befördern. Eine Brücke kann verschiedene Bustypen verbinden. Daher, bezugnehmend auf 1, kann eine Brücke den PCI-Bus 106, die Speicherbusse 107 und den lokalen Bus 108 verbinden. Eine Brücke kann eine ASIC-Vorrichtung sein, oder kann Teil einer Chipgruppe in dem System sein. In einem bevorzugten Ausführungsbeispiel schließt die PCI-Brücke eine Chipgruppe ein, welche die Ziele 102 und den Arbiter 103 integriert.
  • Zusammenfassend schließt die vorliegende Erfindung ein Prioritätsschema ein, welches von dem Arbiter in Verbindung mit den Speicherschnittstellen in den Ziel-Vorrichtungen implementiert wird. Die Priorität von verschiedenen anfragenden Master-Vorrichtungen ändert sich basierend auf Datenverfügbarkeit und einem Anfrage-Zustand dynamisch. Unter Ver wendung der obigen Merkmale maximiert die vorliegende Erfindung eine Auslastung der PCI-Bandbreite und des PCI-Durchsatzes.
  • Die bestimmten Ausführungsbeispiele der vorliegenden Erfindung sind allein zum Zwecke der Beschreibung und Erläuterung dargestellt. Diese Ausführungsbeispiele sollen nicht erschöpfend sein oder die Erfindung in irgendeiner Weise beschränken. Fachleute werden Modifikationen und Abänderungen der vorliegenden Erfindung klar erkennen. Die vorliegende Erfindung wird nur durch die angefügten Patentansprüche definiert.

Claims (6)

  1. Verfahren zum Zuordnen von Eigentumspriorität an einem Bus zur Verbindung von Peripheriegeräten (Peripheral Component Interconnect Bus), bezeichnet als PCI Bus, wobei der PCI Bus (106) mit einer Vielzahl von Master-Vorrichtungen (101A–C), einer Vielzahl von Slave-Vorrichtungen (102A–B) und einem Arbiter (103) zum Ermitteln, welche Master-Vorrichtung (101A–C) den PCI Bus (106) zum Übertragen von Daten zu einer Ziel-Vorrichtung (102A–B) steuern kann, dadurch gekennzeichnet, dass es die folgenden Schritte aufweist: Zuordnen (302) von einer MEDIUM Prioritätsstufe zu einem Master, wobei der Master, nachdem ihm die MEDIUM Prioritätsstufe zugeordnet worden ist, inaktiv ist, bis der Master ein Anfragesignal ausgibt (303), wenn der Master die Steuerung des PCI Busses (106) übernehmen will; Identifizieren eines Ziels (102A–B), welches von dem Master (101A–C) angefragt wird; Ermitteln (305, 307), ob mit dem angefragten Ziel (102A–B) verbundene Daten verfügbar sind; und Zuordnen (306) einer ersten Eigentumsprioritätsstufe an dem PCI Bus (106) zu dem Master (101A–C), wenn die Daten nicht verfügbar sind, und Zuordnen (309) einer zweiten Eigentumspriorität an dem PCI Bus (106) zu dem Master (101A–C), wenn die Daten verfügbar sind.
  2. Verfahren gemäß Anspruch 1, wobei das Zuordnen einer ersten Eigentumsprioritätsstufe an dem PCI Bus (106) zu dem Master (101A–C) ein Zuordnen eines LOW-Prioritätslevels zu dem Master (101A–C) aufweist.
  3. Verfahren gemäß Anspruch 1, wobei das Zuordnen einer zweiten Eigentumsprioritätsstufe an dem PCI Bus (106) zu dem Master (101A–C) ein Zuordnen eines HIGH-Prioritätslevels zu dem Master (101A–C) aufweist.
  4. Verfahren gemäß den Ansprüchen 1, 2 oder 3, wobei die Speicherschnittstellen-Warteschlange ein Eingabe-/Ausgabe-Cache zum Speichern von Daten oder Befehlen aufweist, welche am wahrscheinlichsten am meisten von den anfragenden Master-Vorrichtungen (101A–C) benötigt werden.
  5. Ein Arbitrationssystem für einen PCI Erweiterungsbus, wobei das PCI Erweiterungsbussystem einen PCI Bus (106), eine Vielzahl von Master-Vorrichtungen (101A–C) und ein oder mehrere mit dem PCI Bus (106) verbundene Ziel-Vorrichtungen (102A–B) und einen mit dem PCI Bus (106) verbundenen Arbiter (103) zum Ermitteln, welche Master-Vorrichtung (101A–C) den PCI Bus zum Übertragen von Daten an eine Ziel-Vorrichtung (102A–B) steuern kann, wobei das Arbitrationssystem dadurch gekennzeichnet ist, dass: jede Ziel-Vorrichtung (102A–B) eine Speicherschnittstellen-Warteschlange aufweist, zum Speichern von: Datenzugriffsanfragen von Master-Vorrichtungen Datenanfragen, und Master-Vorrichtung-Kennungen zum Liefern einer Zustandsänderung einer anfragenden Master-Vorrichtung auf eine Verfügbarkeit von angefragten Daten in der Speicherschnittstellen-Warteschlangen hin an den Arbiter (106); und der Arbiter (103) Mittel aufweist zum: Zuordnen (302) einer MEDIUM Prioritätsstufe zu einem Master (101A–C), wobei der Master (101A–C), nachdem ihm die MEDIUM Prioritätsstufe zugeordnet worden ist, inaktiv ist, bis der Master (101A–C) ein Anfrage zur Steuerung des PCI Busses ausgibt (303), Identifizieren eines Ziels (102A–B), welches von dem Master (101A–C) angefragt wird; Ermitteln (305, 307), ob mit dem angefragten Ziel (102A–B) verbundene Daten verfügbar sind; und Zuordnen (306) einer LOW-Prioritätsstufe zu dem Master (101A–C), wenn die Daten nicht verfügbar sind, und Zuordnen (309) einer HIGH-Prioritätsstufe zu dem Master (101A–C), wenn die Daten verfügbar sind.
  6. Arbitrationssystem gemäß Anspruch 5, wobei die Speicherschnittstellen-Warteschlange ein Eingabe-/Ausgabe-Cache zum Speichern von Daten oder Befehlen aufweist, welche am wahrscheinlichsten am meisten von den anfragenden Master-Vorrichtungen (101A–C) benötigt werden.
DE60127357T 2000-08-10 2001-08-09 Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema Expired - Lifetime DE60127357T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US637846 1991-01-04
US09/637,846 US6826644B1 (en) 2000-08-10 2000-08-10 Peripheral component interconnect arbiter implementation with dynamic priority scheme

Publications (2)

Publication Number Publication Date
DE60127357D1 DE60127357D1 (de) 2007-05-03
DE60127357T2 true DE60127357T2 (de) 2007-11-29

Family

ID=24557593

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60127357T Expired - Lifetime DE60127357T2 (de) 2000-08-10 2001-08-09 Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema

Country Status (3)

Country Link
US (2) US6826644B1 (de)
EP (1) EP1187029B1 (de)
DE (1) DE60127357T2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006009617B4 (de) * 2005-03-10 2015-05-13 Dell Products L.P. Informationssystem und Verfahren zum Steuern von mehreren Hot Plug Vorgängen
DE102014225253B4 (de) 2013-12-09 2023-07-20 Atmel Corporation Reallokation für eine Systembustransaktionswarteschlange

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW515960B (en) * 2000-08-11 2003-01-01 Via Tech Inc Architecture and method of extended bus and bridge thereof
US7062582B1 (en) 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US7380040B2 (en) * 2005-04-14 2008-05-27 Texas Instruments Incorporated Software programmable dynamic arbitration scheme
US7404025B2 (en) * 2005-04-14 2008-07-22 Texas Instruments Incorporated Software programmable dynamically reconfigurable scheme for controlling request grant and masking for ultra high priority accessor during arbitration
JP2010140440A (ja) * 2008-12-15 2010-06-24 Toshiba Corp バス調停装置
JP2014016730A (ja) * 2012-07-06 2014-01-30 Canon Inc バス調停装置、バス調停方法、及びコンピュータプログラム
US9684633B2 (en) * 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same
CN110502461B (zh) * 2019-08-27 2023-03-24 深圳市中物互联技术发展有限公司 一种基于rs485通讯协议的高效数据采集方法
CN110674065B (zh) * 2019-10-09 2021-01-15 上海钧正网络科技有限公司 一种在总线上的竞争仲裁方法和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640599A (en) * 1991-12-30 1997-06-17 Apple Computer, Inc. Interconnect system initiating data transfer over launch bus at source's clock speed and transfering data over data path at receiver's clock speed
US5848297A (en) * 1991-12-30 1998-12-08 Apple Computer, Inc. Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect
US5592631A (en) * 1995-05-02 1997-01-07 Apple Computer, Inc. Bus transaction reordering using side-band information signals
US5850530A (en) * 1995-12-18 1998-12-15 International Business Machines Corporation Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data
KR0167726B1 (ko) * 1996-01-30 1999-01-15 김광호 버스의 우선권 선택장치
US5930487A (en) * 1996-03-06 1999-07-27 Vlsi Technology, Inc. PCI bus master with cascaded PCI arbitration
US5761452A (en) 1996-03-18 1998-06-02 Advanced Micro Devices, Inc. Bus arbiter method and system
US5933610A (en) * 1996-09-17 1999-08-03 Vlsi Technology, Inc. Predictive arbitration system for PCI bus agents
US6141715A (en) * 1997-04-03 2000-10-31 Micron Technology, Inc. Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction
US5872937A (en) * 1997-04-17 1999-02-16 Vlsi Technology, Inc. System for optimizing bus arbitration latency and method therefor
US6178477B1 (en) * 1997-10-09 2001-01-23 Vlsi Technology, Inc. Method and system for pseudo delayed transactions through a bridge to guarantee access to a shared resource
US5987555A (en) * 1997-12-22 1999-11-16 Compaq Computer Corporation Dynamic delayed transaction discard counter in a bus bridge of a computer system
US6199127B1 (en) * 1997-12-24 2001-03-06 Intel Corporation Method and apparatus for throttling high priority memory accesses
US6393506B1 (en) * 1999-06-15 2002-05-21 National Semiconductor Corporation Virtual channel bus and system architecture
US6499090B1 (en) * 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006009617B4 (de) * 2005-03-10 2015-05-13 Dell Products L.P. Informationssystem und Verfahren zum Steuern von mehreren Hot Plug Vorgängen
DE102006062802B4 (de) * 2005-03-10 2015-05-13 Dell Products L.P. Informationsverarbeitungssystem und Verfahren zum Steuern von mehreren Hot Plug Vorgängen
DE102014225253B4 (de) 2013-12-09 2023-07-20 Atmel Corporation Reallokation für eine Systembustransaktionswarteschlange

Also Published As

Publication number Publication date
EP1187029A3 (de) 2003-11-05
EP1187029B1 (de) 2007-03-21
US20050066094A1 (en) 2005-03-24
US6826644B1 (en) 2004-11-30
EP1187029A2 (de) 2002-03-13
US7234012B2 (en) 2007-06-19
DE60127357D1 (de) 2007-05-03

Similar Documents

Publication Publication Date Title
DE69834519T2 (de) Bussteuerungssystem und -verfahren
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69632634T2 (de) Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE3909948C2 (de)
DE69822541T2 (de) Verfahren zum Verwalten eines geteilten Speichers
DE69628609T2 (de) Distribuiertes Pipeline-Busarbitrierungssystem
DE19580990C2 (de) Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE60127357T2 (de) Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE69531270T2 (de) Unterbrechungssteuerungsgeräte in symmetrischen Mehrprozessorsystemen
DE69822866T2 (de) System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102004013635B4 (de) Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller
DE4328909C2 (de) Informationsverarbeitungssystem, Informationsprozessor in einem Informationsverarbeitungssystem und Interrupt-Controller in einem Informationsverarbeitungssystem
DE10306285A1 (de) Mikrocomputersystem
DE60226024T2 (de) Verfahren und system um auf einen gemeinsamen speicher zuzugreifen
DE10228778B4 (de) Hardware-Verfahren zum Implementieren von atomischen Semaphoroperationen unter Verwendung von Codemakros
DE60038172T2 (de) Verfahren um Daten in einem Verarbeitungsystem zu übertragen
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe
DE60118617T2 (de) Vorrichtung und verfahren zum pipeline-mehrfachspeicherzugriff

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M