DE69733602T2 - Verfahren zur Unterbrechungsbearbeitung in einer Hochgeschwindigkeits-E/A-Steuervorrichtung - Google Patents

Verfahren zur Unterbrechungsbearbeitung in einer Hochgeschwindigkeits-E/A-Steuervorrichtung Download PDF

Info

Publication number
DE69733602T2
DE69733602T2 DE69733602T DE69733602T DE69733602T2 DE 69733602 T2 DE69733602 T2 DE 69733602T2 DE 69733602 T DE69733602 T DE 69733602T DE 69733602 T DE69733602 T DE 69733602T DE 69733602 T2 DE69733602 T2 DE 69733602T2
Authority
DE
Germany
Prior art keywords
cpu
transmission
receive
interruption
input
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
DE69733602T
Other languages
English (en)
Other versions
DE69733602D1 (de
Inventor
Philippe Klein
Gideon Paul
Aviad Wertheimer
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Application granted granted Critical
Publication of DE69733602D1 publication Critical patent/DE69733602D1/de
Publication of DE69733602T2 publication Critical patent/DE69733602T2/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft Hochgeschwindigkeits-Eingabe-/Ausgabe-(E/A)-Steuervorrichtungen und insbesondere ein Verfahren zum Behandeln von Unterbrechungen unter Verwendung eines Unterbrechungsmitigationsverfahrens.
  • Wie in der Technik wohlbekannt ist, ist die Funktion der E/A-Verarbeitung zunehmend komplexer geworden. Benutzer von Computersystemen und Netzwerksystemen konkurrieren gleichzeitig um Betriebsmittel. Diese Konkurrenz beruht manchmal auf der Reihenfolge der Anfragen und manchmal auf der Grundlage der Priorität. Und bei all dem ist es die CPU-Funktion, welche die vorübergehende Zuteilung der Betriebsmittel an einen spezifischen Benutzer entscheiden, eine Synchronisation und Kontrolle der verschiedenen beteiligten Vorrichtungen bereitstellen und die eigentliche Datenübermittelung beobachten muss, so dass der Auftrag schließlich „wieder zusammengesetzt" werden kann und so dass der Benutzer sich sicher sein kann, dass sein oder ihr Programm tatsächlich alle Eingaben empfängt und alle Ausgaben überträgt – jeweils an den oder von dem richtigen Ort und in der richtigen Reihenfolge.
  • Wie auch in der Technik bekannt ist, kann in normalen Arbeitsumgebungen eine Zentraleinheit (CPU) mit einer oder mehrerer ihrer externen Vorrichtungen (der gleichen oder unterschiedlicher Typen) gleichzeitig kommunizieren, jedoch selten mit allen und gewöhnlich nicht in einem vorhersehbaren Schema. Dies erfordert die Einrichtung von Zeitablauf- und Steuerungsprozeduren, um eine saubere -Verbindung zu bewirken und um eine „vorübergehende Schnittstellensynchronisation" für individuelle Nachrichtenimpulse bereitzustellen.
  • Für eine Kommunikation (oder für Übertragungen), welche von Vorrichtungen in Gang gesetzt werden, muss die Vorrichtung dem Prozessor signalisieren, den Programmfluss zu unterbrechen, und das Betriebssystem warnen, dass eine externe Vorrichtung Aufmerksamkeit bedarf, ähnlich dem Klingeln einer Türschelle oder dem Signalisieren eines Telefons, dass jemand von außen mit denen innen kommunizieren möchte. In beiden Fällen muss in einer zeitgerechten Weise gehandelt werden, um zu gewährleis ten, dass kein Signal unbeabsichtigt missachtet wird und keine Daten verloren gehen, eine klare Möglichkeit, welche auftritt, wenn die CPU mit mehreren Hochgeschwindigkeitsvorrichtungen gleichzeitig kommuniziert.
  • Eine E/A-Steuervorrichtung, wie beispielsweise eine Platten-Steuervorrichtung oder eine Netzwerk-Steuervorrichtung, bewegt typischerweise Daten zwischen einem Platten-Subsystem oder einem Netzwerk-Subsystem und anderen Einheiten eines Computersystems. Wenn ankommende Daten aus dem Subsystem empfangen werden, übermittelt die Steuervorrichtung die Daten typischerweise zu einer Hauptspeichereinheit, um auf eine weitere Verarbeitung zu warten. Die Speichereinheit kann mit einem System-Bus verbunden sein, welcher von anderen Einheiten des Computers, welche damit verbunden sind, gemeinsam genutzt werden. Ausgehende Daten, welche aus der Speichereinheit abgerufen wurden, werden nachfolgend durch die Steuervorrichtung an das Subsystem übermittelt. Eine Funktion für wahlfreien Zugriff (DMA), welche auf der Steuervorrichtung angeordnet ist, leitet die Datenbewegung durch die Steuervorrichtung.
  • Die E/A-Steuervorrichtung verwaltet ihre Eingabe- und Ausgabedatenströme durch Bewegen der Datenströme aus/zu einem Speicher über DMA. Die E/A-Steuervorrichtung berichtet ein Ereignis bei einer Beendigung einer DMA-Operation durch ein Bekanntmachen einer Unterbrechung. Beispielsweise kann das Ereignis die Beendigung des Übertragens eines Datenpakets oder des Empfangens eines Datenpakets sein. Mit steigenden Datengeschwindigkeiten, welche durch die E/A-Steuervorrichtung behandelt werden, steigt die Anzahl von Unterbrechungen. Das Gesamtergebnis kann ein Abbau des Systemleistungsvermögens sein.
  • Wie auch bekannt ist, führt die CPU, wenn sie eine Unterbrechung empfängt, eine Operation aus, welche „Programmumschaltung" genannt wird, bevor sie ein Unterbrechungsbehandlungsprogramm ausführt oder die Unterbrechung für ein zukünftiges Verarbeiten einplant. Die Programmumschaltungs-Operation ist zeitaufwändig, da die CPU typischerweise alle Daten speichert, welche erforderlich sind, um eine Ausführung des Programms fortzusetzen, wenn sie einmal aus der Unterbrechungsroutine zurückgekehrt ist. Im Ergebnis wird die CPU in einer weniger wirksamen Weise eingesetzt, da der normale Programmfluss unterbrochen wird, wobei ein Auftreten von Befehls-Cache-Fehlgriffen bewirkt wird.
  • Bei einem System, welches E/A-Steuervorrichtungen um fasst, welche eine hohe Unterbrechungsrate übertragen, kann die CPU überflutet werden, da sie einen hohen Prozentsatz ihrer Zeit für die Unterbrechungsbehandlung verwendet. Das Ergebnis ist ein Abbau des gesamten Systemleistungsvermögens.
  • Ein Beispiel eines Systems, bei welchem Unterbrechungen an die CPU begrenzt sind, um den Abbau des Leistungsvermögens zu minimieren, wird in US 5 301 275 beschrieben. Das System umfasst einen oder mehrere Host-Adapter, welche mit einer Host-CPU unter Verwendung eines ratenbasierten E/A-Übermittelungsprotokolls seriell kommunizieren, welches Unterbrechungen reduziert, indem die Anzahl der Male pro Sekunde begrenzt wird, bei welchen die CPU unterbrochen werden kann. Host-Adapter verwenden zwei Systemparameter, um eine E/A-Latenz und eine Speicherverwendung zu steuern, wobei der erste D_INTRPS ist, welcher die Anzahl der Unterbrechungen pro Sekunde ist, und der zweite D_IOSIZE ist, welcher feststellt, wie viele Daten für jede Unterbrechung übermittelt werden können. Zum Variieren der Anzahl der Unterbrechungen kann der Parameter D_INTRPS zwischen 0 und maximal 20 pro Sekunde ausgewählt werden.
  • KURZFASSUNG DER ERFINDUNG
  • Diese Erfindung befindet sich in ihrer erweiterten Form in einem Verfahren zum Reduzieren von Übertragungsunterbrechungen in einer Zentraleinheit, wie in Anspruch 1 dargelegt. Ein anderer Gesichtspunkt der Erfindung ist ein Verfahren zum Reduzieren von Empfangsunterbrechungen, wie im unabhängigen Anspruch 6 dargelegt.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung umfasst ein Verfahren zum Reduzieren von Übertragungsunterbrechungen die Schritte des Bereitstellens einer Zentraleinheit (CPU), des Bereitstellens einer Eingabe/ Ausgabe-(E/A)-Vorrichtung, welche mit der CPU verbunden ist, wobei die E/A-Vorrichtung eine System-Bus-Schnittstellenschaltung zum Bereitstellen einer Verbindung zu einem System-Bus, eine Netzwerk-Schnittstellenschaltung zum Bereitstellen einer Verbindung zu einem Netzwerksystem, einen Pufferspeicher, welcher mit den Schnittstellenschaltungen verbunden ist, zum Behandeln mehrerer Eingabe- und Ausgabedatenströme dazwischen und eine Funktionsvorrichtung für wahlfreien Zugriff (DMA) aufweist, welche mit den Schnittstellenschaltungen und dem Pufferspeicher verbunden ist, welche in der DMA-Funktionsvorrichtung Schritte implementieren, welche ein Setzen einer Übertragungszahl-Begrenzungsvariablen auf eine Schwelle aufeinanderfolgend übertragener Pakete, welche übertragen werden, bevor der CPU eine Übertragungsunterbrechung bekanntgemacht wird, ein Setzen einer Übertragungsdauer-Begrenzungsvariablen auf eine Zeitbegrenzungsdauer, bevor der CPU die Übertragungsunterbrechung bekanntgemacht wird, ein Initialisieren eines Zählers der Übertragungszahl und eines Zählers der Übertragungsdauer auf null, ein Warten auf eine Übertragung eines Datenpakets, bei einer Übertragung eines Datenpakets ein Warten auf ein Auftreten eines vorbestimmten Ereignisses, welches dem entspricht, dass einer der Zähler gleich der jeweils gesetzten Variablen ist, ein Feststellen, ob die Übertragungsunterbrechung der CPU als Reaktion auf ein vorbestimmtes Ereignis bekanntgemacht werden soll, und ein Zurückkehren zum Schritt des Initialisierens, nachdem der CPU die Übertragungsunterbrechung bekanntgemacht wurde, umfassen. Mit einem derartigen Verfahren wird die Zeit, welche eine CPU bei einer Programmumschaltung als Ergebnis von Unterbrechungen verschwendet, reduziert und ein gesamtes Systemleistungsvermögen verbessert.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung umfasst ein Verfahren zum Reduzieren von Emp fangsunterbrechungen die Schritte für ein Bereitstellen einer Zentraleinheit (CPU), ein Bereitstellen einer Eingabe/Ausgabe-(E/A)-Vorrichtung, welche mit der CPU verbunden ist, wobei die E/A-Vorrichtung eine System-Bus-Schnittstellenschaltung zum Bereitstellen einer Verbindung zu einem System-Bus, eine Netzwerk-Schnittstellenschaltung zum Bereitstellen einer Verbindung zu einem Netzwerksystem, einen Pufferspeicher, welcher mit den Schnittstellenschaltungen verbunden ist, zum Behandeln mehrerer Eingabe- und Ausgabedatenströme dazwischen, und eine Funktionsvorrichtung für wahlfreien Zugriff (DMA) aufweist, welche mit den Schnittstellenschaltungen und dem Pufferspeicher verbunden ist, wobei in der DMA-Funktionsvorrichtung Schritte implementiert werden, welche ein Setzen einer Empfangszahl-Begrenzungsvariablen auf eine Schwelle von Paketen, welche empfangen werden, bevor der CPU eine Empfangsunterbrechung bekanntgemacht wird, ein Setzen einer Empfangsdauer-Begrenzungsvariablen auf eine Zeitbegrenzungsdauer, bevor der CPU die Empfangsunterbrechung bekanntgemacht wird, ein Initialisieren eines Zählers der Empfangszahl und eines Zählers der Empfangsdauer auf null; ein Warten auf einen Empfang eines Datenpakets, beim Empfang eines Datenpakets ein Warten auf ein Auftreten eines vorbestimmten Ereignisses, welches dem entspricht, dass einer der Zähler gleich der jeweils gesetzten Variablen ist, ein Feststellen, ob die Empfangsunterbrechung der CPU als Reaktion auf ein vorbestimmtes Ereignis bekanntgemacht werden soll; und ein Zurückkehren zum Schritt des Initialisierens, nachdem der CPU die Empfangsunterbrechung bekanntgemacht wurde, umfassen.
  • Weitere Ausführungsformen der Erfindung werden in den abhängigen Ansprüchen spezifiziert.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ein detaillierteres Verständnis der Erfindung kann aus der folgenden Beschreibung einer bevorzugten Ausführungsform entnommen werden, welche beispielhaft gegeben wird und in Verbindung mit den begleitenden Zeichnungen verstanden werden muss, wobei:
  • 1: ein Blockdiagramm ist, welches ein Nahbereichsnetzwerk illustriert, welches durch eine E/A-Steuervorrichtung mit einem System-Bus verbunden ist;
  • 2: ein Blockdiagramm der Steuervorrichtung der 1 ist; und
  • 3A bis 3B: Ablaufdiagramme sind, welche den Prozess, welcher von der Steuervorrichtung gemäß einer Ausführungsform der Erfindung durchgeführt wird, ausführlich darstellen.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 1 illustriert ein Subsystem, wie beispielsweise ein lokales Netzwerk 10, welches mit einem Knoten 12 verbunden ist, welcher eine E/A-Steuervorrichtung 14, einen Hauptspeicher 16, eine Zentraleinheit (CPU) 18 umfasst, welche alle durch einen System-Bus 20 verbunden sind. Bei der Ausführungsform der 1 ist die E/A-Steuervorrichtung 14 durch einen bidirektionalen Weg 22 mit dem System-Bus 20 verbunden und durch einen bidirektionalen Weg 24 mit dem Netzwerk-Subsystem 10 verbunden.
  • Während einer Empfangsoperation werden Daten aus dem Netzwerk-Subsystem 10 in die E/A-Steuervorrichtung 14 übermittelt und schließlich zum Hauptspeicher 16 übermittelt, um auf das Verarbeiten zu warten. Daten, welche zwischen der E/A-Steuervorrichtung 14 und dem Hauptspeicher 16 übermittelt werden, werden gemäß einer Übermittelung mit wahlfreiem Speicherzugriff (DMA) auf dem System-Bus 20 durchgeführt.
  • Während einer Übertragungsoperation werden Daten, welche aus dem Hauptspeicher 16 abgerufen werden, aus der E/A-Steuervorrichtung 14 zum Netzwerksystem 10 übermittelt.
  • Beim Beenden der DMA-Operation, beispielsweise beim Beenden des Übertragens eines Datenpakets oder des Empfangens eines Datenpakets, berichtet die E/A-Steuervorrichtung 14 ein Ereignis, indem der CPU 18 eine Unterbrechung bekanntgemacht wird. Wenn die CPU 18 die Unterbrechung empfängt, führt sie eine Operation aus, welche Programmumschaltung genannt wird, bevor sie ein Unterbrechungsbehandlungsprogramm ausführt oder die Unterbrechung für ein zukünftiges Verarbeiten einplant. Während der Programmumschaltung wird Zeit verbraucht, weil die CPU 18 alle Daten speichert, welche erforderlich sind, um die Ausführung des Programms fortzusetzen, wenn sie einmal aus der Unterbrechungsroutine zurückkehrt, und weil sie die Unterbrechungsroutine in ihren Befehls-Cache (nicht gezeigt) lädt. Falls der Befehls-Cache zu klein ist, kann es erforderlich sein, dass die CPU 18 das aktuelle Programm aus dem Befehls-Cache räumt und beim Zurückkehren aus der Unterbrechungsroutine zurücklädt.
  • Jetzt unter Bezugnahme auf 2 wird die E/A-Steuervorrichtung 14 gezeigt, welche einen Pufferspeicher 30, einen DMA-Funktionsblock 31, eine System-Bus-Schnittstellenschaltung 32 und eine Netzwerk-Schnittstelle 34 umfasst. Die System-Bus-Schnittstellenschaltung 32 gestattet Datenströmen, aus dem Pufferspeicher 30 in den/ aus dem System-Bus 20 zu fließen. Die Netzwerk-Schnittstellenschaltung 34 gestattet Datenströmen, aus dem Pufferspeicher 30 in das/aus dem Netzwerk-Subsystem 10 zu fließen. Die E/A-Steuervorrichtung 14 verwaltet die Eingabe- und Ausgabe von Datenströmen, indem sie sie über DMA 31 in ihren/aus ihrem Pufferspeicher 30 bewegt. Beim Beenden jeder DMA-Operation berichtet die E/A-Steuervorrichtung 14 das Ereignis als eine Unterbrechung an die CPU 18.
  • Eine Implementierung des vorliegenden Verfahrens befindet sich beispielsweise in dem DMA-Funktionsblock 31 der E/A-Steuervorrichtungen 14. Es kann auch in einem DMA-Funktionsblock eines System-Bus-Adapters (nicht gezeigt) implementiert werden. Eine Aufgabe der vorliegenden Erfindung ist es, die Rate der Unterbrechungen durch die CPU 18 ohne jeden Verlust an Unterbrechungen zu reduzieren. Die Erfindung verwendet zwei Parameter. Der erste Parameter setzt die Ereignisschwelle, welche der maxima le Wert aufeinanderfolgender Ereignisse ist, welchen aufzutreten gestattet ist, beispielsweise die maximale Anzahl empfangener Datenpakete, bevor der CPU 18 eine Unterbrechung (beispielsweise eine Empfangsunterbrechung) bekanntgemacht wird. Der zweite Parameter setzt die Ereigniszeitbegrenzung, welche die maximale Zeit ist, welche ein Ereignis warten kann, bevor der CPU 18 eine Unterbrechung bekanntgemacht wird. Der zweite Parameter ist nötig, da der Ereignisfluss im System unvorhersehbar ist und ohne die Zeitbegrenzung ein Behandeln des Ereignisses unendlich verzögert werden kann. Wenn beispielsweise nur ein Datenpaket empfangen wird und die Ereignisschwelle größer als eins ist, wartet der E/A-Zähler 14 für die Zeit, welche in dem Zeitbegrenzungsparameter spezifiziert ist, bevor der CPU 18 eine Unterbrechung bekanntgemacht wird.
  • Der Unterbrechungsmitigationsprozess, welcher von der E/A-Steuervorrichtung 14 gemäß der Erfindung eingesetzt wird, kann aus den Ablaufdiagrammen der 3A bis 3B besser verstanden werden, wobei die folgenden Variablen eingesetzt werden:
    • • RCV_CNT_LIMIT: der Parameter definiert die Schwelle (N1) vor dem Bekanntmachen einer Empfangsunterbre chung (RI) aufeinanderfolgend empfangener Pakete;
    • • RCV_TIME_LIMIT: der Parameter definiert die Zeitbegrenzung (N2), welche einem Empfang vor dem Bekanntmachen einer Empfangsunterbrechung (RI) nachfolgt;
    • • RCV_CNT: Zähler, welcher die Anzahl aufeinanderfolgender Pakete vor den Erteilen einer RI zählt;
    • • RCV_TIME: Zähler, welcher die Anzahl an Zeiteinheiten vor dem Erteilen einer RI zählt;
    • • WAIT_RCV: Status, in welchem das vorliegende Verfahren wartet, bis das erste Paket nach einer RI oder einem Zurücksetzen empfangen wird;
    • • WAIT_EVENT: Status, in welchem das vorliegende Verfahren wartet, bis irgendein Ereignis auftritt (Empfangen eines Pakets oder Ablaufen einer Zeiteinheit);
    • • TX_CNT_LIMIT: der Parameter definiert die Schwelle (N3) vor einen Bekanntmachen einer Übertragungsunterbrechung (TI) aufeinanderfolgend übertragener Pakete;
    • • TX_TIME_LIMIT: der Parameter definiert eine Zeitbegrenzung (N4), welche einer Übertragung nachfolgt, bevor eine TI bekanntgemacht wird;
    • • TX_CNT: Zähler, welcher die Anzahl aufeinanderfolgender Pakete zählt, welche übertragen wurden, be vor eine TI erteilt wird;
    • • TX_TIME: Zähler, welcher die Anzahl an Zeiteinheiten zählt, welche nach einer Übertragung eines Pakets abgelaufen sind, bevor eine TI erteilt wird;
    • • WAIT_TRAN: Status, in welchem das vorliegende Verfahren wartet, bis ein Paket übertragen wird, nachdem eine TI oder ein Zurücksetzen aufgetreten ist;
    • • WAIT_EVENT: Status, in welchem das vorliegende Verfahren wartet, bis irgendein Ereignis auftritt (ein Paket übertragen wird oder eine Zeiteinheit abgelaufen ist).
  • Unter Bezugnahme auf 3A wird im Schritt 50 RCV_CNT_LIMIT gleich N1 gesetzt, und RCV_TIME_LIMIT wird gleich N2 gesetzt. Im Schritt 52 wird der RCV_CNT-Zähler auf null initialisiert. Im Schritt 54 bewegt sich der Prozess in den WAIT_RCV-Status und setzt das Warten fort, bis ein Datenpaket empfangen wird. Wenn ein Datenpaket empfangen wird, fährt der Prozess mit Schritt 56 zu dem WAIT_EVENT-Status fort, wobei er im Schritt 58 RCV_CNT um eins inkrementiert. Wenn im Schritt 60 der RCV_CNT-Wert nicht gleich dem Schwellenwert N1 ist, kehrt der Prozess zu Schritt 56 zurück. Wenn der RCV_CNT-Wert gleich der Grenze N1 ist, wird im Schritt 62 eine Unterbrechung bekanntgemacht, und der Prozess kehrt zu Schritt 52 zurück.
  • Falls während des WAIT_EVENT-Status im Schritt 56 eine spezifizierte Zeiteinheit erreicht wird, inkrementiert der Prozess im Schritt 64 RCV_TIME um eins. Falls im Schritt 66 der RCV_TIME-Wert nicht gleich dem Schwellenwert N2 ist, kehrt der Prozess zu Schritt 56 zurück. Falls der RCV_TIME-Wert gleich der Grenze N2 ist, wird im Schritt 62 eine Unterbrechung bekanntgemacht, und der Prozess kehrt zu Schritt 52 zurück.
  • Jetzt unter Bezugnahme auf 3B wird im Schritt 80 TX_CNT_LIMIT gleich N3 gesetzt, und TX_TIME_LIMIT wird gleich N4 gesetzt. Im Schritt 82 wird der TX_CNT-Zähler auf null initialisiert, und der TX_TIME Zähler wird auf null initialisiert. Im Schritt 84 bewegt sich der Prozess in den WAIT_TRAN-Status und setzt das Warten fort, bis ein Datenpaket übertragen wird. Wenn ein Datenpaket übertragen wird, fährt der Prozess mit Schritt 86 in dem WAIT_EVENT-Status fort, wobei er TX_CNT im Schritt 88 um eins inkrementiert, falls eine Übertragung auftritt. Falls im Schritt 90 der TX_CNT-Wert gleich der Grenze N3 ist, wird im Schritt 92 eine Unterbrechung bekanntgemacht, und der Prozess kehrt zu Schritt 82 zurück.
  • Falls während des WAIT_EVENT-Status im Schritt 86 eine spezifizierte Zeiteinheit erreicht wird, inkrementiert der Prozess im Schritt 94 TX_TIME um eins. Falls im Schritt 96 der TX_TIME-Wert nicht gleich dem Schwellenwert N4 ist, kehrt der Prozess zu Schritt 86 zurück. Falls der TX_TIME-Wert gleich der Grenze N4 ist, wird im Schritt 92 eine Unterbrechung bekanntgemacht, und der Prozess kehrt zu Schritt 82 zurück.
  • Nachdem eine bevorzugte Ausführungsform der Erfindung beschrieben wurde, wird es Durchschnittsfachleuten nun offenkundig, dass die andere Ausführungsform, welche ihre Ideen einbezieht, verwendet werden kann. Es ist deshalb nachzuvollziehen, dass diese Ausführungsform nicht auf die offenbarte Ausführungsform eingeschränkt werden soll.

Claims (10)

  1. Verfahren zum Reduzieren von Übertragungsunterbrechungen, die folgenden Schritte umfassend: Bereitstellen einer Zentraleinheit (CPU) (18); Bereitstellen einer Eingabe-/Ausgabe-(E/A)-Vorrichtung (14), welche mit der CPU verbunden ist, wobei die Eingabe-/Ausgabe-(E/A)-Vorrichtung eine System-Bus-Schnittstellenschaltung (32) zum Bereitstellen einer Verbindung zu einem System-Bus (20), eine Netzwerk-Schnittstellenschaltung (34) zum Bereitstellen einer Verbindung zu einem Netzwerksystem (10), einen Pufferspeicher (30) zum Behandeln mehrerer Eingabe- und Ausgabedatenströme dazwischen, welcher mit den Schnittstellenschaltungen verbunden ist, und eine Funktionsvorrichtung (31) für wahlfreien Zugriff (DMA) aufweist, welche mit den Schnittstellenschaltungen und dem Pufferspeicher verbunden ist; das Verfahren gekennzeichnet durch Implementieren der folgenden Schritte in der DMA-Funktionsvorrichtung: Setzen (80) einer Übertragungszahl-Begrenzungsvariablen auf eine Schwelle aufeinanderfolgender Übertragungspakete, welche übertragen werden, bevor der CPU eine Übertragungsunterbrechung (T1) bekanntgemacht wird; Setzen (80) einer Übertragungsdauer-Begrenzungsvariablen auf eine Zeitbegrenzungsdauer, bevor der CPU die Übertragungsunterbrechung bekanntgemacht wird; Initialisieren (82) eines Zählers der Übertragungszahl und eines Zählers der Übertragungsdauer auf null; Warten (84) auf eine Übertragung eines Datenpakets; bei einer Übertragung eines Datenpakets Warten (86) auf ein Auftreten eines vorbestimmten Ereignisses, welches dem Erreichen der jeweils gesetzten Variablen eines der Zähler entspricht; Feststellen, ob die Übertragungsunterbrechung der CPU als Reaktion auf ein vorbestimmtes Ereignis bekanntgemacht werden soll; und Zurückkehren zum Schritt des Initialisierens (82), nachdem der CPU die Übertragungsunterbrechung bekanntgemacht (92) wurde.
  2. Verfahren zum Reduzieren von Übertragungsunterbrechungen nach Anspruch 1, wobei die Eingabe-/Ausgabe(E/A)-Vorrichtung ein Eingabe-/Ausgabe-(E/A)-Steuergerät (14) ist.
  3. Verfahren zum Reduzieren von Übertragungsunterbrechungen nach Anspruch 1, wobei das Eingabe-/Ausgabe(E/A)-Steuergerät ein System-Bus-Adapter ist.
  4. Verfahren zum Reduzieren von Übertragungsunterbrechungen nach Anspruch 1, wobei der Schritt des Feststellens, ob die Übertragungsunterbrechung (T1) der CPU (18) als Reaktion auf das vorbestimmte Ereignis bekanntgemacht werden soll, die folgenden Schritte umfasst: Übertragen des Datenpakets; Inkrementieren (88) des Zählers der Übertragungszahl um eins; Zurückkehren zum Schritt des Feststellens, falls der Zähler der Übertragungszahl nicht gleich der Übertragungszahl-Begrenzungsvariablen ist; und der CPU die Übertragungsunterbrechung Bekanntmachen (92), falls der Zähler der Übertragungszahl gleich der Übertragungszahl-Begrenzungsvariablen ist.
  5. Verfahren zum Reduzieren von Übertragungsunterbrechungen nach Anspruch 4, wobei der Schritt des Feststellens, ob die Übertragungsunterbrechung (T1) der CPU (18) als Reaktion auf das vorbestimmte Ereignis bekanntgemacht werden soll, die folgenden Schritte umfasst: Warten (86) für eine spezifizierte Zeiteinheit; Inkrementieren (94) des Zählers der Übertragungsdauer um eins; Zurückkehren zum Schritt des Feststellens, falls der Zähler der Übertragungsdauer nicht gleich der Über tragungsdauer-Begrenzungsvariablen ist; und der CPU die Übertragungsunterbrechung Bekanntmachen (92), falls der Zähler der Übertragungsdauer gleich der Übertragungsdauer-Begrenzungsvariablen ist.
  6. Verfahren zum Reduzieren von Empfangsunterbrechungen, die folgenden Schritte umfassend: Bereitstellen einer Zentraleinheit (CPU) (18); Bereitstellen einer Eingabe-/Ausgabe-(E/A)-Vorrichtung (14), welche mit der CPU verbunden ist, wobei die Eingabe-/Ausgabe-(E/A)-Vorrichtung eine System-Bus-Schnittstellenschaltung (32) zum Bereitstellen einer Verbindung zu einem System-Bus (20), eine Netzwerk-Schnittstellenschaltung (34) zum Bereitstellen einer Verbindung zu einem Netzwerksystem (10), einen Pufferspeicher (30) zum Behandeln mehrerer Eingabe- und Ausgabedatenströme dazwischen, welcher mit den Schnittstellenschaltungen verbunden ist, und eine Funktionsvorrichtung (31) für wahlfreien Zugriff (DMA) aufweist, welche mit den Schnittstellenschaltungen und dem Pufferspeicher verbunden ist; das Verfahren gekennzeichnet durch Implementieren der folgenden Schritte in der DMA-Funktionsvorrichtung: Setzen (50) einer Empfangszahl-Begrenzungsvariablen auf eine Schwelle aufeinanderfolgender Pakete, welche empfangen werden, bevor der CPU eine Empfangsunterbrechung bekanntgemacht wird; Setzen (50) einer Empfangsdauer-Begrenzungsvariablen auf eine Zeitbegrenzungsdauer, bevor der CPU die Empfangsunterbrechung bekanntgemacht wird; Initialisieren (52) eines Zählers der Empfangszahl und eines Zählers der Empfangsdauer auf null; Warten (54) auf einen Empfang eines Datenpakets; bei einem Empfang eines Datenpakets Warten (56) auf ein Auftreten eines vorbestimmten Ereignisses, welches dem Erreichen der jeweils gesetzten Variablen eines der Zähler entspricht; Feststellen, ob die Empfangsunterbrechung der CPU als Reaktion auf ein vorbestimmtes Ereignis bekanntgemacht werden soll; und Zurückkehren zum Schritt des Initialisierens (50), nachdem der CPU die Empfangsunterbrechung bekanntgemacht (62) wurde.
  7. Verfahren zum Reduzieren von Empfangsunterbrechungen nach Anspruch 6, wobei die Eingabe-/Ausgabe-(E/A)-Vorrichtung ein Eingabe-/Ausgabe-(E/A)-Steuergerät (14) ist.
  8. Verfahren zum Reduzieren von Empfangsunterbrechungen nach Anspruch 6, wobei die Eingabe-/Ausgabe-(E/A)-Vorrichtung ein System-Bus-Adapter ist.
  9. Verfahren zum Reduzieren von Empfangsunterbrechungen nach Anspruch 6, wobei der Schritt des Feststellens, ob die Empfangsunterbrechung der CPU (18) als Reaktion auf das vorbestimmte Ereignis bekanntgemacht werden soll, die folgenden Schritte umfasst: Empfangen des Datenpakets; Inkrementieren (58) des Zählers der Übertragungszahl um eins; Zurückkehren zum Schritt des Feststellens, falls der Zähler der Empfangszahl nicht gleich der Empfangszahl-Begrenzungsvariablen ist; und der CPU die Empfangsunterbrechung Bekanntmachen (62), falls der Zähler der Empfangszahl gleich der Empfangszahl-Begrenzungsvariablen ist.
  10. Verfahren zum Reduzieren von Empfangsunterbrechungen nach Anspruch 9, wobei der Schritt des Feststellens, ob die Empfangsunterbrechung der CPU (18) als Reaktion auf das vorbestimmte Ereignis bekanntgemacht werden soll, die folgenden Schritte umfasst: Warten (86) für eine spezifizierte Zeiteinheit; Inkrementieren (64) des Zählers der Empfangsdauer um eins; Zurückkehren zum Schritt des Feststellens, falls der Zähler der Empfangsdauer nicht gleich der Empfangsdauer-Begrenzungsvariablen ist; und der CPU die Empfangsunterbrechung Bekanntmachen (62), falls der Zähler der Empfangsdauer gleich der Empfangsdauer-Begrenzungsvariablen ist.
DE69733602T 1997-01-02 1997-12-11 Verfahren zur Unterbrechungsbearbeitung in einer Hochgeschwindigkeits-E/A-Steuervorrichtung Expired - Fee Related DE69733602T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US778327 1997-01-02
US08/778,327 US5943479A (en) 1997-01-02 1997-01-02 Method for reducing the rate of interrupts in a high speed I/O controller

Publications (2)

Publication Number Publication Date
DE69733602D1 DE69733602D1 (de) 2005-07-28
DE69733602T2 true DE69733602T2 (de) 2006-05-04

Family

ID=25112976

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69733602T Expired - Fee Related DE69733602T2 (de) 1997-01-02 1997-12-11 Verfahren zur Unterbrechungsbearbeitung in einer Hochgeschwindigkeits-E/A-Steuervorrichtung

Country Status (4)

Country Link
US (1) US5943479A (de)
EP (1) EP0852357B1 (de)
JP (1) JPH10207822A (de)
DE (1) DE69733602T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256660B1 (en) * 1997-04-08 2001-07-03 International Business Machines Corporation Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts
US6012121A (en) * 1997-04-08 2000-01-04 International Business Machines Corporation Apparatus for flexible control of interrupts in multiprocessor systems
US6253255B1 (en) * 1997-05-08 2001-06-26 Microsoft Corporation System and method for batching data between transport and link layers in a protocol stack
JPH11232214A (ja) * 1998-02-17 1999-08-27 Hitachi Ltd 情報処理装置用プロセッサおよびその制御方法
US6397282B1 (en) * 1998-04-07 2002-05-28 Honda Giken Kogyo Kabushikikaisha Communication controller for transferring data in accordance with the data type
US6243785B1 (en) * 1998-05-20 2001-06-05 3Com Corporation Hardware assisted polling for software drivers
US6615305B1 (en) * 1998-08-27 2003-09-02 Intel Corporation Interrupt pacing in data transfer unit
US6195725B1 (en) * 1998-12-14 2001-02-27 Intel Corporation Dynamically varying interrupt bundle size
US6189067B1 (en) * 1999-01-26 2001-02-13 3Com Corporation System and method for dynamically selecting interrupt quantity threshold parameters
US6351785B1 (en) * 1999-01-26 2002-02-26 3Com Corporation Interrupt optimization using varying quantity threshold
US6189066B1 (en) * 1999-01-26 2001-02-13 3Com Corporation System and method for dynamically selecting interrupt time interval threshold parameters
US6192440B1 (en) * 1999-01-26 2001-02-20 3Com Corporation System and method for dynamically selecting interrupt storage time threshold parameters
US6529986B1 (en) * 1999-01-26 2003-03-04 3Com Corporation Interrupt optimization using storage time for peripheral component events
US6574694B1 (en) * 1999-01-26 2003-06-03 3Com Corporation Interrupt optimization using time between succeeding peripheral component events
US6338111B1 (en) * 1999-02-22 2002-01-08 International Business Machines Corporation Method and apparatus for reducing I/O interrupts
AU3613100A (en) * 1999-03-01 2000-09-21 Sun Microsystems, Inc. Method and apparatus for modulating interrupts in a network interface
US6467008B1 (en) 1999-03-01 2002-10-15 Sun Microsystems, Inc. Method and apparatus for indicating an interrupt in a network interface
US6434651B1 (en) 1999-03-01 2002-08-13 Sun Microsystems, Inc. Method and apparatus for suppressing interrupts in a high-speed network environment
US6968392B1 (en) * 2000-06-29 2005-11-22 Cisco Technology, Inc. Method and apparatus providing improved statistics collection for high bandwidth interfaces supporting multiple connections
JP3389920B2 (ja) 2000-07-10 2003-03-24 日本電気株式会社 ディスクアレイ装置およびディスクアレイ装置の割り込み実行方法
US20020136220A1 (en) * 2000-10-02 2002-09-26 Shakuntala Anjanaiah Apparatus and method for an interface unit for data transfer between data processing units in the asynchronous transfer mode and in the I/O mode
US6775723B2 (en) * 2001-09-21 2004-08-10 International Business Machines Corporation Efficient reading of a remote first in first out buffer
US8856416B2 (en) * 2001-12-06 2014-10-07 Intel Corporation Method and apparatus for processing latency sensitive electronic data with interrupt moderation
JP2005128747A (ja) * 2003-10-23 2005-05-19 Fujitsu Ltd シリアル転送バス用の送受信マクロを有する集積回路装置
JP2005322032A (ja) * 2004-05-10 2005-11-17 Matsushita Electric Ind Co Ltd 受信フレーム処理装置
US7864790B2 (en) * 2004-05-17 2011-01-04 Realtek Semiconductor Corp. Method and apparatus for improving the management of data packets
US7478186B1 (en) * 2004-06-03 2009-01-13 Integrated Device Technology, Inc. Interrupt coalescer for DMA channel
US7930422B2 (en) * 2004-07-14 2011-04-19 International Business Machines Corporation Apparatus and method for supporting memory management in an offload of network protocol processing
JP2007074320A (ja) * 2005-09-07 2007-03-22 Matsushita Electric Ind Co Ltd ネットワーク機器装置
US7987307B2 (en) * 2006-09-22 2011-07-26 Intel Corporation Interrupt coalescing control scheme
WO2009122514A1 (ja) * 2008-03-31 2009-10-08 富士通株式会社 情報処理装置、割込み制御装置、割込み制御回路、割込み制御方法、及び、割込み制御プログラム
US8495403B2 (en) * 2008-12-31 2013-07-23 Intel Corporation Platform and processor power management
JP5267328B2 (ja) * 2009-05-26 2013-08-21 富士通セミコンダクター株式会社 割り込み通知制御装置および半導体集積回路
JP5496548B2 (ja) * 2009-05-29 2014-05-21 ルネサスエレクトロニクス株式会社 半導体集積回路
US9164935B2 (en) * 2013-01-04 2015-10-20 International Business Machines Corporation Determining when to throttle interrupts to limit interrupt processing to an interrupt processing time period
JP2015060273A (ja) * 2013-09-17 2015-03-30 株式会社リコー ネットワーク制御装置
US11061840B2 (en) 2013-09-24 2021-07-13 Red Hat Israel, Ltd. Managing network interface controller-generated interrupts
CN104539557B (zh) * 2015-01-04 2017-08-11 盛科网络(苏州)有限公司 报文统计上报cpu的方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4599689A (en) * 1983-02-28 1986-07-08 Data Translations, Inc. Continuous data transfer system
US5452432A (en) * 1990-08-14 1995-09-19 Chips And Technologies, Inc. Partially resettable, segmented DMA counter
US5301275A (en) * 1991-10-03 1994-04-05 Compaq Computer Corporation Data transfer system with variable data buffer size and programmable interrupt frequency
US5319752A (en) * 1992-09-18 1994-06-07 3Com Corporation Device with host indication combination
US5546543A (en) * 1993-03-26 1996-08-13 Digital Equipment Corporation Method for assigning priority to receive and transmit requests in response to occupancy of receive and transmit buffers when transmission and reception are in progress
SG47794A1 (en) * 1993-09-30 1998-04-17 Intel Corp Buffer memory management for a computer network node
US5687316A (en) * 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US5761427A (en) * 1994-12-28 1998-06-02 Digital Equipment Corporation Method and apparatus for updating host memory in an adapter to minimize host CPU overhead in servicing an interrupt
US5708814A (en) * 1995-11-21 1998-01-13 Microsoft Corporation Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events

Also Published As

Publication number Publication date
EP0852357B1 (de) 2005-06-22
US5943479A (en) 1999-08-24
EP0852357A2 (de) 1998-07-08
EP0852357A3 (de) 1999-07-21
DE69733602D1 (de) 2005-07-28
JPH10207822A (ja) 1998-08-07

Similar Documents

Publication Publication Date Title
DE69733602T2 (de) Verfahren zur Unterbrechungsbearbeitung in einer Hochgeschwindigkeits-E/A-Steuervorrichtung
EP1388238B1 (de) System und verfahren zur parallelen übertragung von echtzeitkritischen und nicht echtzeitkritischen daten über schaltbare datennetze, insbesondere ethernet
DE3300262C2 (de)
DE60002446T2 (de) Verfahren und vorrichtung zur erweiterung des usb-protokollbereichs
DE69832410T2 (de) Pipeline-kommunikationssystem mit fester latenz-zeit unter verwendung von dynamischer echtzeit-bandbreitenzuweisung
DE69533680T2 (de) Verfahren und Vorrichtung zur dynamischen Bestimmung und Zuteilung von Zugriffsguoten für ein gemeinsames Betriebsmittel
DE4426094C2 (de) Datenreduktion für Buskoppler
EP0039036B1 (de) Datenübertragungssystem
DE4121446C2 (de) Terminal-Server-Architektur
DE60122085T2 (de) Datenverarbeitungsgerät für serielles Kommunikationssystem
DE2911677B2 (de) Verfahren und Schaltungsanordnung zum Überwachen und Verhindern von Blockierungen in Datenverarbeitungssystemen mit mehreren Prozessoren
DE112015006192T5 (de) Kommunikationsvorrichtung, Kommunikationsverfahren und Programm
DE10131307B4 (de) Verfahren und Bussystem zum Synchronisieren eines Datenaustausches zwischen einer Datenquelle und einer Steuereinrichtung
DE60204794T2 (de) Mechanismus zur kennzeichnung und arbitrierung in einem eingabe/ausgabe knoten eines rechnersystems
DE69918354T2 (de) Agentsystem mit Priorität
EP3053050A1 (de) Kommunikationssystem zur inter-chip-kommunikation
DE60305560T2 (de) Eingebettetes System für die Überlastregelung von Rundfunkverkehr in einem Kommunikationsnetzwerk
EP0509114B1 (de) Verfahren zum Übertragen von Daten an mehrere Datenstationen
DE60109069T2 (de) Paketvermittlungseinrichtung mit Eingabepuffern
DE60313746T2 (de) Verfahren zur netzwerkkommunikation mit einer chipkarte die asynchrone meldungen benutzt
EP1965549A1 (de) Bussystem und Verfahren zum Betreiben des Bussystems
EP0673136A1 (de) Verfahren und Schaltungsanordnung zum Steuern der Übertragung von Nachrichtenblöcken innerhalb eines Übertragungssystems
EP0133577B1 (de) Datenübertragungsverfahren in einem digitalen Übertragungsnetzwerk und Vorrichtung zur Durchführung des Verfahrens
DE3003340C2 (de) Verfahren und Schaltungsanordnung zur Übertragung von binären Signalen zwischen über ein zentrales Busleitungssystem miteinander verbundenen Anschlußgeräten
EP2741453B1 (de) Verfahren zum betreiben eines busgeräts einer gebäudeautomatisierungseinrichtung, sowie entsprechendes konfigurationsgerät und entsprechendes computerprogrammprodukt

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee