DE60223177T2 - Computer zur dynamischen bestimmung der unterbrechungsverzögerung - Google Patents

Computer zur dynamischen bestimmung der unterbrechungsverzögerung

Info

Publication number
DE60223177T2
DE60223177T2 DE2002623177 DE60223177T DE60223177T2 DE 60223177 T2 DE60223177 T2 DE 60223177T2 DE 2002623177 DE2002623177 DE 2002623177 DE 60223177 T DE60223177 T DE 60223177T DE 60223177 T2 DE60223177 T2 DE 60223177T2
Authority
DE
Germany
Prior art keywords
interrupt
processor
delay
delay condition
factor
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.)
Active
Application number
DE2002623177
Other languages
English (en)
Other versions
DE60223177D1 (de
Inventor
Akira Kawasaki-shi Jinzaki
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to PCT/JP2002/000516 priority Critical patent/WO2003063002A1/ja
Publication of DE60223177D1 publication Critical patent/DE60223177D1/de
Application granted granted Critical
Publication of DE60223177T2 publication Critical patent/DE60223177T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft ein Unterbrechungssteuersystem und, im Besonderen, ein Computersystem, das zum dynamischen Bestimmen der Verzögerungszeit zum Beispiel ab einer externen Eingabe eines Unterbrechungsereignisses bis zu einer Ausgabe einer Unterbrechungsaufforderung einer Unterbrechungsaufforderungsausgabeeinheit in einem Computersystem an einen Prozessor in Abhängigkeit von dem Belastungsstatus des Prozessors in der Lage ist.
  • Hintergrundtechnik
  • US 5708814 offenbart einen Unterbrechungscontroller einer peripheren Vorrichtung, der das Zählen von schwebenden Unterbrechungsereignissen für eine periphere Vorrichtung bis zu einer voreingestellten Grenze weiterführt und ein voreingestelltes Verzögerungsintervall von einem ersten schwebenden Unterbrechungsereignis oder einer letzten Unterbrechungsbedienung vor dem Aktivieren einer Unterbrechungsaufforderung zeitlich festlegt. Wenn die Unterbrechungsaufforderung aktiviert ist, können die schwebenden Unterbrechungsereignisse Dienste als Gruppe von einer zentralen Verarbeitungseinheit eines Computers sein.
  • US 5613129 offenbart ein System, das eine Unterbrechungsverschiebung vorsieht, und insbesondere einen Mechanismus, der die tatsächliche Systemerfahrung misst und die Mühe der Parameterkonfiguration eliminiert, indem er seine eigene Erfahrung filtert, um einen Zielwert für die Unterbrechungsverschiebung abzuleiten. Ein gegenwärtiger Verschiebungswert mit der potentiell größeren Varianz als das Ziel wird verwendet, um schnell auf eine abrupte Veränderung der anliegenden Belastung zu reagieren.
  • US 6195725 offenbart ein System, das Unterbrechungen als Antwort auf Ereignisse erzeugt und an sich verändernde Raten der Ereigniserzeugung dynamisch anpasst. Eine Anzahl von Ereignissen kann gemeinsam gebündelt werden, um eine oder mehrere Unterbrechungen zu erzeugen, statt eine Unterbrechung für jedes Ereignis zu erzeugen.
  • US 5881296 offenbart ein Verfahren und eine Vorrichtung zum Reduzieren der Anzahl von Unterbrechungen, die durch eine erste Vorrichtung an eine zweite Vorrichtung in einem Computersystem ausgegeben wird. Ein Verzögerungsintervall gibt einen Zeitbetrag für die erste Vorrichtung an, um nach dem Empfang von Daten von der zweiten Vorrichtung zu warten, ehe eine Unterbrechung unmittelbar nach dem Empfang der Daten von der zweiten Vorrichtung ausgegeben wird, wenn die spezifizierte Verzögerung Null beträgt. Wenn die Verzögerung nicht Null beträgt, ist die erste Vorrichtung so programmiert, um die zweite Vorrichtung zu unterbrechen, nachdem das Verzögerungsintervall zu Ende ist. Falls eine zweite Dateneinheit von der zweiten Vorrichtung empfangen wird, bevor das Verzögerungsintervall abläuft, wird die programmierte Unterbrechung unterdrückt. Sonst wird die Unterbrechung unmittelbar nach Ablauf des Verzögerungsintervalls ausgegeben.
  • Wenn ein Unterbrechungsereignis, das eine externe Unterbrechungsverarbeitung durch einen Prozessor erfordert, einem Computersystem eingegeben wird, gibt zum Beispiel eine E/A-Vorrichtung, die das Unterbrechungsereignis empfängt, ein Unterbrechungs(aufforderungs)signal an den Prozessor aus, und der Prozessor führt eine entsprechende Unterbrechungsverarbeitung aus. Wenn die E/A-Vorrichtung zum Beispiel eine Netzschnittstelle ist, wird ein Unterbrechungs signal von der E/A-Vorrichtung an den Prozessor ausgegeben, wenn Kommunikationsdaten, wie beispielsweise ein Paket, empfangen werden.
  • 16 ist ein Blockdiagramm, das die Konfiguration des Computersystems zeigt, worauf die vorliegende Erfindung angewendet wird. In 16 enthält das Computersystem einen Prozessor 50, einen Hauptspeicher 51, eine E/A-Busbrücke 53 und eine Vielzahl von E/A-Vorrichtungen 54 und 55.
  • In 16 verbindet die E/A-Busbrücke 53 den Prozessor 50, den Hauptspeicher 51 und einen E/A-Bus 52 und sieht eine Zugriffsfunktion von dem Prozessor 50 auf den Hauptspeicher 51 und den E/A-Bus 52 vor. Die E/A-Vorrichtungen 54 und 55 sind mit dem E/A-Bus 52 verbunden und fungieren als Schnittstellen zwischen verschiedenartigen Vorrichtungen wie beispielsweise einem Netz, einer Platte, etc. und dem Computersystem.
  • Beispielsweise wird im Falle einer Netzschnittstelle, wenn Kommunikationsdaten durch die E/A-Vorrichtung empfangen werden, ein Unterbrechungs(aufforderungs)signal an den Prozessor 50 ausgegeben, wobei der Prozessor 50 zum Beispiel im Inneren der E/A-Vorrichtung 54 den Inhalt eines Unterbrechungsfaktorregisters in Entsprechung zu dem Signal prüft.
  • Bei diesem Beispiel wird die herkömmliche Technik unter Bezugnahme auf einen PCI-(Peripheral Component Interconnect)-Systembus, der gegenwärtig als bedeutender Hochgeschwindigkeitsbus für Personalcomputer verwendet wird, und auf eine PCI-Busvorrichtung beschrieben, wobei die vorliegende Erfindung aber auf ein beliebiges ähnliches System angewendet werden kann.
  • In dem System, wie es in 16 gezeigt ist, haben die Zeitlage und die Frequenz einer E/A-Vorrichtung, die ein Unterbrechungs(aufforderungs)signal an einen Prozessor ausgibt, einen beträchtlichen Einfluss auf die Leistung eines Systems. Wenn zum Beispiel eine E/A-Vorrichtung eine Schnittstelle entsprechend Gigabit-Ethernet ist, kann die Übertragungsleistung von 125 MB/s zum Senden/Empfangen zwar realisiert werden, aber die Mindestlänge eines Paketes beträgt ungefähr 60 Bytes. Falls immer dann, wenn ein Paket empfangen wird, eine Mitteilung an den Prozessor ausgegeben wird, erfolgt deshalb alle 0,5 μs eine Unterbrechung beim Prozessor.
  • 17 ist eine Erläuterungsansicht einer herkömmlichen Technik der Unterbrechungsverarbeitung, die in dem obigen Fall ausgeführt wird. In 17 wird zum Beispiel ein Unterbrechungsereignis 1 extern auf das Computersystem angewendet, führt der Prozessor sofort eine Unterbrechungsverarbeitung aus, wird dann ein Unterbrechungsereignis k extern angewendet und führt der Prozessor sofort eine Unterbrechungsverarbeitung aus.
  • Wenn der Prozessor eine Unterbrechungsverarbeitung ausführt, wird eine vorbestimmte Verarbeitungslast zum Sichern und Wiederherstellen eines gegenwärtigen Prozesszustandes, zum Bezeichnen eines Unterbrechungsfaktors, etc. benötigt. Wenn Unterbrechungen häufig auftreten und die Unterbrechungsintervalle kürzer werden, nimmt die Unterbrechungsverarbeitungslast eines Prozessors zu, wodurch möglicherweise die Leistung des Systems reduziert wird.
  • Um die Erhöhung der Belastung des Prozessors durch ein häufiges Auftreten einer Unterbrechung zu vermeiden, findet daher die herkömmliche Technik breite Verwendung, die als "Unterbrechungsvereinigung" bezeichnet wird. Bei der Unterbrechungsvereinigung wird die Zeit ab dem Auftreten eines Ereignisses, das eine Unterbrechung erfordert, das heißt, ab einem Unterbrechungsereignis, bis zur Ausgabe einer tatsächlichen Unterbrechungsaufforderung an den Prozessor unter einer vorbestimmten Bedingung verzögert. Da Unterbrechungsereignisse zum Beispiel kollektiv eingegeben werden, kann eine Verarbeitungslast, wie etwa das Sichern und Wiederherstellen des gegenwärtigen Prozesszustandes, die Bezeichnung eines Unterbrechungsfaktors, etc., kollektiv verarbeitet werden, wodurch die Verarbeitungslast des Prozessors reduziert wird.
  • 18 ist eine Erläuterungsansicht der obigen Unterbrechungsvereinigung. In 18 wird eine Vielzahl von Unterbrechungen ab dem Unterbrechungsereignis 1 bis zum Unterbrechungsereignis K gesammelt und wird eine Unterbrechungsaufforderung von der E/A-Vorrichtung an den Prozessor ausgegeben.
  • Als typische Bedingung bis zur Unterbrechungsaufforderung bei der Unterbrechungsvereinigung gelten solche Bedingungen wie etwa "das Verstreichen einer vorbestimmten Zeit", "eine vorbestimmte Anzahl des Auftretens von Unterbrechungsereignissen", etc. Zum Beispiel wird im Falle einer Netzschnittstelle eine Unterbrechungsaufforderung ausgegeben, falls eine vorbestimmte Zeit verstrichen ist, nachdem ein Paket empfangen ist. Wenn bei diesem Verfahren insgesamt K Pakete empfangen werden, während die Unterbrechung verzögert wird, kann die Anzahl von Unterbrechungen beim Prozessor auf 1/K reduziert werden. Unter Verwendung der Bedingungen der Häufigkeit von Unterbrechungsereignissen kann die Häufigkeit von Unterbrechungsereignissen auch verringert werden.
  • Unten ist die herkömmliche Konfiguration der Vorrichtung der Unterbrechungsaufforderungsschaltung in der E/A-Vorrichtung beschrieben. 19 ist ein Blockdiagramm der Konfiguration der Vorrichtung. In 19 ist zum Beispiel eine Unterbrechungsaufforderungsschaltung 58 in der E/A-Vorrichtung 54 vorgesehen und ist ein Unterbrechungsfaktorregister 59 in der Unterbrechungsaufforderungsschaltung 58 vorgesehen.
  • Die Unterbrechungsaufforderungsschaltung 58 gibt ein Unterbrechungs(aufforderungs)signal an den Prozessor 50 durch den E/A-Bus 52 und die E/A-Busbrücke 53 aus, wenn ein Unterbrechungsereignis zum Beispiel durch das externe Empfangen eines Paketes eintritt, und gleichzeitig werden die Informationen zur Bestimmung des Inhaltes des Unterbrechungsereignisses in dem Unterbrechungsfaktorregister 59 eingestellt.
  • Der Inhalt des Unterbrechungsfaktorregisters 59 wird von dem Prozessor 50 durch den E/A-Bus 52 gelesen und kann geschrieben werden. Der Prozessor 50 identifiziert den Inhalt eines Unterbrechungsereignisses durch das Prüfen des Inhaltes des Unterbrechungsfaktorregisters 59. Der Prozessor 50 kann der Unterbrechungsaufforderungsschaltung 58 das Ende der Unterbrechungsverarbeitung durch das Löschen des Inhaltes des Unterbrechungsfaktorregisters 59 mitteilen. Entsprechend dieser Mitteilung negiert die Unterbrechungsaufforderungsschaltung 58 ein Unterbrechungssignal, wodurch der Prozess bei der Unterbrechung vollendet ist.
  • 20 ist eine Erläuterungsansicht eines Ablaufs der in 19 gezeigten Unterbrechungsverarbeitung. Wenn ein Unterbrechungsereignis auf die E/A-Vorrichtung angewendet wird, wird sofort ein Unterbrechungssignal an den Prozessor ausgegeben, und der Prozessor startet bei <1> die Unterbrechungsverarbeitung durch Prüfen des Unterbrechungsfaktors anhand des Inhaltes des Unterbrechungsfaktorregisters 59, beendet im Grunde die Unterbrechungsverarbeitung und löscht den Inhalt des Unterbrechungsfaktorregisters 59 und führt den Prozess zum Freigeben des Arbeitsbereiches für die Unterbrechungsverarbeitung, etc. bei <2> aus und beendet bei <3> die Unterbrechungsverarbeitung.
  • 21 ist ein Blockdiagramm eines anderen Beispiels für die Konfiguration der herkömmlichen E/A-Vorrichtung. 22 ist eine Erläuterungsansicht des Ablaufs der in 21 gezeigten Unterbrechungsverarbeitung. In 21 ist ein Bedingungsregister 61, das eine vorbestimmte feststehende Verzögerungsbedingung speichert, in der Unterbrechungsaufforderungsschaltung 58 vorgesehen und bestimmt eine Unterbrechungsverzögerungsschaltung 62 eine Verzögerungszeit ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe eines Unterbrechungssignals an den Prozessor. Der Speicherinhalt des Bedingungsregisters 61 kann die vorbestimmte Zeit oder eine vorbestimmte Häufigkeit von Unterbrechungsereignissen sein, die oben angegeben wurden, und die Unterbrechungsverzögerungsschaltung 62 bestimmt die Verzögerungszeit ab dem Auftreten eines Unterbrechungsereignisses entsprechend des Inhaltes und gibt ein Unterbrechungssignal aus.
  • In 22 wird ein Unterbrechungssignal an den Prozessor ausgegeben, falls eine vorbestimmte Verzögerungszeit abgelaufen ist, nachdem ein Unterbrechungsereignis auf die E/A-Vorrichtung angewendet wurde. Wie im Falle von 20 wird dann bei <1> der Unterbrechungsfaktor geprüft, wird bei <2> der Unterbrechungsfaktor gelöscht und wird bei <3> die Unterbrechungsverarbeitung beendet.
  • Bei der Unterbrechungsvereinigung gemäß der obenerwähnten herkömmlichen Technik gibt es drei Probleme. Das erste Problem besteht darin, dass die Antwort ab dem Auftreten eines Unterbrechungsereignisses konstant verzögert wird, da eine Unterbrechung unter einer konstanten Bedingung ab dem Auftreten eines Unterbrechungsereignisses verzögert wird. Zum Beispiel kann im Falle einer Netzschnittstelle und dann, wenn nur ein Paket empfangen wird, die Unterbrechungsverarbeitung erst ausgeführt werden, wenn eine vorbestimmte Zeit abgelaufen ist, nachdem das Paket tatsächlich empfangen wurde.
  • Das zweite Problem liegt darin, dass auf Grund dessen, dass der Belastungsstatus eines Prozessors nicht berücksichtigt wird, ein adaptiver Prozess zum Beispiel durch sofortiges Ausführen einer Unterbrechung, wenn die Belastung eines Prozessors klein ist, und durch Verzögern einer Unterbrechung, wenn die Belastung des Prozessors groß ist, nicht ausgeführt werden kann.
  • Das dritte Problem besteht darin, auch wenn eine E/A-Vorrichtung mit eingefügter Karte, etc. verwendet wird und die optimale Bedingung für die Unterbrechungsverzögerung zwischen der Karte und dem Prozessor von einer Karte, etc. abhängt, dass bei der herkömmlichen Technik feststehende Verzögerungsbedingungen ohne Anpassungen verwendet werden.
  • Die vorliegende Erfindung ist auf das Vorsehen eines Computers gerichtet, der zum dynamischen Bestimmen der Verzögerungsbedingung ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe eines Unterbrechungsaufforderungssignals von einer E/A-Vorrichtung an einen Prozessor in Abhängigkeit von der Leistung und dem Belastungsstatus eines Prozessors und der Häufigkeit des Auftretens von Unterbrechungsereignissen in der Lage ist.
  • Offenbarung der Erfindung
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein Computer mit einer Unterbrechungsaufforderungsausgabeeinheit und einem Prozessor vorgesehen, bei dem: die Unterbrechungsaufforderungsausgabeeinheit betriebsfähig ist, um während jeder von einer Vielzahl von Unterbrechungsoperationen eine Unterbrechungsaufforderung an den Prozessor als Antwort auf ein entsprechendes Unterbrechungsereignis auszugeben; der Prozessor betriebsfähig ist, um während jeder Unterbrechungsoperation eine Unterbrechungsverarbeitung als Antwort auf die betreffende Unterbrechungsaufforderung auszuführen; und die Unterbrechungsaufforderungsausgabeeinheit betriebsfähig ist, um eine Verzögerungsbedingung in Abhängigkeit von einem Maß eines Belastungsstatus des Prozessors zu bestimmen und jene Verzögerungsbedingung während solch einer Unterbrechungsoperation zu nutzen, um die Ausgabe der betreffenden Unterbrechungsaufforderung bezüglich des betreffenden Unterbrechungsereignisses zu verzögern, dadurch gekennzeichnet, dass die Unterbrechungsaufforderungsausgabeeinheit (1) umfasst: eine Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung (4), die betriebsfähig ist, um solch ein Maß des Prozessorbelastungsstatus während solch einer besonderen Unterbrechungsoperation zu erhalten und das erhaltene Maß als Verzögerungsbedingungsbestimmungsfaktor zu nutzen, welches Maß eine Zeitperiode ab der Ausgabe der Unterbrechungsaufforderung der besonderen Unterbrechungsoperation bis zum Beginn oder Ende der Unter brechungsverarbeitung jener besonderen Unterbrechungsoperation ist; und eine Verzögerungsbedingungsbestimmungsvorrichtung, die betriebsfähig ist, um beim Ausführen solch einer anschließenden Unterbrechungsoperation die Verzögerungsbedingung in Abhängigkeit von dem erhaltenen Verzögerungsbedingungsbestimmungsfaktor zu bestimmen.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Programm vorgesehen, das bei seiner Ausführung auf einem Computer bewirkt, dass der Computer die Schritte ausführt: Ausgeben, während jeder von einer Vielzahl von Unterbrechungsoperationen, einer Unterbrechungsaufforderung an einen Prozessor als Antwort auf ein entsprechendes Unterbrechungsereignis, damit der Prozessor als Antwort darauf eine Unterbrechungsverarbeitung ausführen kann; Bestimmen einer Verzögerungsbedingung in Abhängigkeit von einem Maß eines Belastungsstatus der Prozessors; und Nutzen jener Verzögerungsbedingung während solch einer Unterbrechungsoperation, um die Ausgabe der betreffenden Unterbrechungsaufforderung bezüglich des betreffenden Unterbrechungsereignisses zu verzögern, gekennzeichnet durch: Erhalten solch eines Maßes des Prozessorbelastungsstatus während solch einer besonderen Unterbrechungsoperation und Nutzen des erhaltenen Maßes als Verzögerungsbedingungsbestimmungsfaktor, welches Maß eine Zeitperiode ab der Ausgabe der Unterbrechungsaufforderung der besonderen Unterbrechungsoperation bis zum Beginn oder Ende der Unterbrechungsverarbeitung jener besonderen Unterbrechungsoperation ist; und Bestimmen, wenn solch eine anschließende Unterbrechungsoperation ausgeführt wird, der Verzögerungsbedingung in Abhängigkeit von dem erhaltenen Verzögerungsbedingungsbestimmungsfaktor.
  • Gemäß der vorliegenden Erfindung kann, wie oben beschrieben, die Verzögerungsbedingung ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe einer Unterbrechungsaufforderung durch die Unterbrechungsaufforderungsausgabeeinheit an den Prozessor dynamisch bestimmt werden.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm der Konfiguration, die das Prinzip der vorliegenden Erfindung zeigt;
  • 2 ist ein Blockdiagramm der Konfiguration der Unterbrechungsaufforderungsschaltung gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 3 zeigt den Ablauf der Unterbrechungsverarbeitung, die in 2 gezeigt ist;
  • 4 ist ein Flussdiagramm des Verzögerungsbedingungseinstellprozesses durch den Prozessor gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 5 ist ein Blockdiagramm der Konfiguration der Unterbrechungsverzögerungsschaltung gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 6 ist ein Flussdiagramm des Unterbrechungsverzögerungsprozesses gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 7 ist ein Blockdiagramm der Konfiguration der Unterbrechungsaufforderungsschaltung gemäß der zweiten Ausführungsform der vorliegenden Erfindung;
  • 8 zeigt den Ablauf der Unterbrechungsverarbeitung von 7;
  • 9 zeigt den Ablauf des Prozesses, der ausgeführt wird, wenn eine Verzögerungszeit auf der Basis der Zeit bis zum Lesen eines Unterbrechungsfaktors bestimmt wird, gemäß der zweiten Ausführungsform der vorliegenden Erfindung;
  • 10 ist ein Blockdiagramm der Konfigurationen eines Zeitgebers und einer Verzögerungszeitbestimmungsschaltung gemäß der zweiten Ausführungsform der vorliegenden Erfindung;
  • 11 zeigt das erste Beispiel für ein Flussdiagramm des Unterbrechungsverzögerungszeitbestimmungsprozesses gemäß der zweiten Ausführungsform der vorliegenden Erfindung;
  • 12 zeigt das zweite Beispiel für ein Flussdiagramm des Unterbrechungsverzögerungszeitbestimmungsprozesses gemäß der zweiten Ausführungsform der vorliegenden Erfindung;
  • 13 ist ein Blockdiagramm eines Beispiels für die Konfiguration der Verzögerungszeitbestimmungsschaltung zum Bestimmen der Verzögerungszeit gemäß einer Vielzahl von Zeitmesswerten gemäß der zweiten Ausführungsform der vorliegenden Erfindung;
  • 14 ist ein Blockdiagramm der Konfiguration der Unterbrechungsaufforderungsschaltung gemäß der dritten Ausführungsform der vorliegenden Erfindung;
  • 15 zeigt den Ablauf des Prozesses von 14; 16 ist ein Blockdiagramm eines Beispiels für die Konfiguration des Computersystems;
  • 17 ist eine Erläuterungsansicht, die die Beziehung zwischen den Unterbrechungsintervallen und der Unterbrechungsverarbeitungslast zeigt;
  • 18 ist eine Erläuterungsansicht des Prozesses der Unterbrechungsvereinigung als herkömmliche Technik;
  • 19 ist ein Blockdiagramm der Konfiguration der herkömmlichen Technik der Unterbrechungsaufforderungsschaltung, wenn es keine Unterbrechungsverzögerung gibt;
  • 20 zeigt den Ablauf des in 19 gezeigten Prozesses;
  • 21 ist ein Blockdiagramm der Konfiguration der herkömmlichen Technik der Unterbrechungsaufforderungsschaltung, wenn es eine Unterbrechungsverzögerung gibt; und 22 zeigt den Ablauf des Prozesses von 21.
  • Bester Modus zum Ausführen der Erfindung
  • 1 ist ein Blockdiagramm der Konfiguration, die das Prinzip der vorliegenden Erfindung zeigt. In 1 entspricht eine Unterbrechungsaufforderungsausgabeeinheit 1 der in 16 gezeigten E/A-Vorrichtung, und sie gibt eine Unterbrechungsaufforderung an einen Prozessor 2 als Antwort auf das Auftreten eines Unterbrechungsereignisses aus.
  • In 1 enthält die Unterbrechungsaufforderungsausgabeeinheit 1 eine Verzögerungsbedingungsbestimmungsvorrichtung 3. Die Verzögerungsbedingungsbestimmungsvorrichtung 3 bestimmt dynamisch eine Verzögerungsbedingung, wie zum Beispiel eine Verzögerungszeit, ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe einer Unterbrechungsaufforderung von der Unterbrechungsaufforderungsausgabeeinheit 1 an den Prozessor 2.
  • In der Ausführungsform der vorliegenden Erfindung enthält die Unterbrechungsaufforderungsausgabeeinheit 1 ferner eine Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung 4. Die Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung 4 erhält einen Bestimmungsfaktor einer Verzögerungsbedingung ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe einer Unterbrechungsaufforderung an den Prozessor, und die Verzögerungsbedingungsbestimmungsvorrichtung 3 bestimmt die Bedingung bis zur Ausgabe einer Unterbrechungsaufforderung entsprechend dem bestimmten Faktor.
  • 2 ist ein Blockdiagramm, das die Konfiguration der Unterbrechungsaufforderungsschaltung gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt. Und 3 zeigt den Ablauf der Unterbrechungsverarbeitung von 2.
  • In 2 speichert ein Bedingungsregister 13 die Verzögerungsbedingung ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe eines Unterbrechungs(aufforderungs)signals durch eine Unterbrechungsverzögerungsschaltung 12 in einer E/A-Vorrichtung 10 an einen Prozessor durch einen E/A-Bus 15, wie das Bedingungsregister 61, das unter Bezugnahme auf die herkömmliche Technik beschrieben wurde, die in 21 gezeigt ist. Die Verzögerungsbedingung wird durch den Prozessor in Abhängigkeit von dem Belastungsstatus des Prozessors dynamisch bestimmt, und die Bedingung wird im Bedingungsregister 13 gespeichert.
  • Das heißt, der Prozessor meldet einer E/A-Vorrichtung 11 explizit die Unterbrechungsverzögerungsbedingung, nämlich die Verzögerungszeit ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe eines Unterbrechungssignals durch die Unterbrechungsverzögerungsschaltung 12, oder die Anzahl der während der Periode auftretenden Unterbrechungsereignisse, und die E/A-Vorrichtung 11 verzögert die Unterbrechung auf der Basis der Bedingung.
  • Die Bestimmung einer Unterbrechungsverzögerungsbedingung durch den Prozessor wird in Abhängigkeit von dem jeweiligen Belastungsstatus des Prozessors, etc. dynamisch ausgeführt. Zum Beispiel kann die Unterbrechungsverzögerung, die an den Belastungsstatus des Prozessors angepasst ist, dynamisch realisiert werden, indem der Inhalt des Bedingungs registers 13 in vorbestimmten Zeitintervallen überschrieben wird. Das Verfahren zum Messen des Belastungsstatus auf der Seite des Prozessors kann irgendeine wohlbekannte Technik sein, und die eingehende Erläuterung wird hier weggelassen.
  • Bei dem in 3 gezeigten Prozessablauf wird bei <1> die Unterbrechungsverzögerungsbedingung im Bedingungsregister 13 von der Seite des Prozessors eingestellt, und auf der Seite der E/A-Vorrichtung gibt die Unterbrechungsverzögerungsschaltung 12 ein Unterbrechungssignal an den Prozessor nach einer Verzögerung mit der spezifizierten Zeit nach dem Auftreten des ersten Unterbrechungsereignisses auf der Basis der Spezifikation der Bedingung, wie zum Beispiel der Verzögerungszeit, aus, auch wenn während der Verzögerungszeit eine Vielzahl von Unterbrechungsereignissen auftritt. Der Prozessor liest den Inhalt des Unterbrechungsfaktorregisters 14, um bei <2> den Unterbrechungsfaktor zu prüfen, und wenn die Unterbrechungsverarbeitung bei <3> im Wesentlichen endet, wird der Unterbrechungsfaktor gelöscht, der im Unterbrechungsfaktorregister 14 gespeichert ist, und bei <4> wird die Unterbrechungsverarbeitung vollendet.
  • 4 ist ein Flussdiagramm des Unterbrechungsverzögerungsbedingungseinstellprozesses, der durch den Prozessor gemäß der ersten Ausführungsform der vorliegenden Erfindung ausgeführt wird. In 4 bestimmt der Prozessor zuerst dynamisch bei Schritt Si die Unterbrechungsverzögerungsbedingung und stellt die Verzögerungsbedingung für das Bedingungsregister 13 in der E/A-Vorrichtung 11 ein. Nach dem Auftreten eines Unterbrechungsereignisses gibt somit die E/A-Vorrichtung 11 ein Unterbrechungsaufforderungssignal entsprechend der bei Schritt S3 eingestellten Unterbre chungsverzögerungsbedingung aus, und bei Schritt S4 führt der Prozessor die Unterbrechungsverarbeitung aus.
  • 5 ist ein Blockdiagramm, das ein Beispiel für die Konfiguration der Unterbrechungsverzögerungsschaltung 12 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt. Bei diesem Beispiel wird eine Unterbrechungsverzögerungszeit als Unterbrechungsverzögerungsbedingung in dem Bedingungsregister 13 eingestellt.
  • In 5 wird ein Wert der Unterbrechungsverzögerungszeit, der im Bedingungsregister 13 eingestellt ist, an einen Zähler 16 in Entsprechung zu dem Auftreten eines Unterbrechungsereignisses geliefert, und in dem Zähler wird zum Beispiel das regressive Zählen gestartet. Am Ende der Zeit wird ein Zeitablaufsignal an einen Eingangsanschluss eines UND-Gatters 17 ausgegeben. Ein Unterbrechungs(aufforderungs)signal entsprechend dem Auftreten des Unterbrechungsereignisses wird dem anderen Eingangsanschluss des UND-Gatters 17 eingegeben, und ein Unterbrechungs(aufforderungs)signal wird von dem UND-Gatter 17 durch den E/A-Bus 15 an den Prozessor ausgegeben.
  • 6 zeigt ein Beispiel für ein Flussdiagramm des Unterbrechungsverzögerungsprozesses, wenn die Unterbrechungsverzögerungsschaltung 12 durch Software realisiert wird. In 6 wird der Wert einer Unterbrechungsverzögerungszeit, der im Bedingungsregister 13 eingestellt ist, bei Schritt S5 in dem Zeitgeber eingestellt, wenn ein Unterbrechungsereignis auftritt. Bei Schritt S6 wird der Zeitgeberwert dekrementiert, und bei Schritt S7 wird bestimmt, ob ein Zeitablauf eingetreten ist oder nicht. Falls nicht, werden die Prozesse bei und nach Schritt 56 wiederholt. Falls ein Zeitablauf eingetreten ist, wird bei Schritt S8 bestimmt, ob ein Unterbrechungsfaktor vorhanden ist oder nicht. Falls nicht, werden die Prozesse bei und nach Schritt S5 wiederholt. Falls ein Unterbrechungsfaktor vorhanden ist, wird bei Schritt S9 die Unterbrechungsverarbeitung ausgeführt.
  • 7 ist ein Blockdiagramm der Konfiguration der Unterbrechungsaufforderungsschaltung gemäß der zweiten Ausführungsform der vorliegenden Erfindung. 8 zeigt den Ablauf des Prozesses von 7. In der zweiten Ausführungsform wird anders als in der ersten Ausführungsform die Unterbrechungsverzögerungsbedingung, wie zum Beispiel eine Unterbrechungsverzögerungszeit, durch die E/A-Vorrichtung dynamisch bestimmt.
  • Das Unterbrechungsfaktorregister 14 in der Unterbrechungsaufforderungsschaltung 11 speichert, wie oben beschrieben, einen Faktor entsprechend eines Unterbrechungsereignisses, das aufgetreten ist. Der Prozessor prüft einen Unterbrechungsfaktor durch Lesen des Inhaltes durch den E/A-Bus 15 und löscht den Unterbrechungsfaktor, wenn die Unterbrechungsverarbeitung im Wesentlichen endet.
  • In der zweiten Ausführungsform wird der Belastungsstatus eines Prozessors geschätzt, indem die Zeit ab der Ausgabe eines Unterbrechungssignals für ein Unterbrechungsereignis, das zu einem Zeitpunkt aufgetreten ist, bis zum Löschen des Unterbrechungsfaktors gemessen wird, der in dem Unterbrechungsfaktorregister 14 gespeichert ist, und die Unterbrechungsverzögerungszeit für das Unterbrechungsereignis, das als Nächstes auftritt, wird auf der Basis der geschätzten Zeit bestimmt.
  • In 7 wird der Unterbrechungsfaktor in dem Unterbrechungsfaktorregister 14 gespeichert, wenn das Unterbrechungssignal unmittelbar nach Auftreten eines Unterbre chungsereignisses ausgegeben wird, und gleichzeitig wird der Zeitgeber 21 aktiviert, und die Zeit wird gemessen, bis der Inhalt des Unterbrechungsfaktorregisters 14 durch den Prozessor gelöscht ist. Dann wird die Zeit für eine Verzögerungszeitbestimmungsschaltung 20 zur Verwendung beim Bestimmen der Unterbrechungsverzögerungszeit entsprechend dem Auftreten des nächsten Unterbrechungsereignisses vorgesehen.
  • Beim Bestimmen der Verzögerungszeit kann der Messwert des Zeitgebers 21 verwendet werden wie er ist, aber der Messwert kann auch mit einem Koeffizienten wie zum Beispiel 2, 4,..., 1/2, 1/4, ..., etc. multipliziert werden, um die Verzögerungszeit zu bestimmen. Empirisch wurde ermittelt, dass in manchen Systemen die gesamte Leistung verbessert werden kann, indem ein Messwert eines Zeitgebers zum Beispiel mit 4 multipliziert wird, statt den Messwert so zu verwenden wie er ist.
  • In dem Prozessablauf, der in 8 gezeigt ist, gibt die E/A-Vorrichtung, wenn ein Unterbrechungsereignis zu einem Zeitpunkt auftritt, ein Unterbrechungssignal an den Prozessor zum Beispiel durch den E/A-Bus 15 aus und startet bei <1> das Messen der Zeit. Der Prozessor prüft bei <2> den Unterbrechungsfaktor, der in dem Unterbrechungsfaktorregister 14 gespeichert ist, und löscht den Unterbrechungsfaktor, wenn die Unterbrechungsverarbeitung bei <3> im Wesentlichen endet. Auf der Seite der E/A-Vorrichtung wird der Messwert der Zeit ab der Ausgabe des Unterbrechungssignals bis zum Löschen des Unterbrechungsfaktors bei <3> beim Bestimmen der Unterbrechungsverzögerungszeit entsprechend dem Auftreten des nächsten Unterbrechungsereignisses verwendet. Das heißt, ein Unterbrechungssignal wird um die bestimmte Verzögerungs zeit ab dem Auftreten des nächsten Unterbrechungsereignisses verzögert ausgegeben, und die Zeit wird wieder für das Auftreten des weiteren Unterbrechungsereignisses gemessen.
  • 9 ist eine Erläuterungsansicht des Prozessablaufs, der ausgeführt wird, wenn der Zeitgeber 21 die Zeit ab der Ausgabe des Unterbrechungssignals bis zur Prüfung des Unterbrechungsfaktors, jedoch nicht bis zum Löschen des Unterbrechungsfaktors durch den Prozessor misst, und die Unterbrechungsverzögerungszeit für die nächste Unterbrechung wird auf der Basis der Zeit gemäß der zweiten Ausführungsform bestimmt.
  • In 9 wird wie in 8, wenn ein Unterbrechungsereignis auftritt, sofort ein Unterbrechungssignal an den Prozessor ausgegeben, und bei <1> startet der Zeitgeber 21 die Zeitmessung. Auf der Seite des Prozessors wird der Inhalt des Unterbrechungsfaktorregisters 14 bei <2> geprüft, wird der Faktor bei <3> gelöscht und wird bei <4> die Unterbrechungsverarbeitung beendet. Die Zeitmessung bei <1> dauert jedoch bis zur Zeit der Prüfung des Unterbrechungsfaktors an, und das Messresultat wird beim Bestimmen der Unterbrechungsverzögerungszeit entsprechend dem nächsten Unterbrechungsereignis verwendet.
  • Das heißt, in 9 reflektiert die Zeit, die durch den Zeitgeber 21 gemessen wird, die Zeit ab Empfang eines Unterbrechungs(aufforderungs)signals bis zum tatsächlichen Beginn der Unterbrechungsverarbeitung durch den Prozessor, und die Zeit entspricht auch dem Belastungsstatus des Prozessors.
  • Gemäß der zweiten Ausführungsform spezifiziert der Prozessor die Unterbrechungsverzögerungsbedingung also nicht, sondern die E/A-Vorrichtung detektiert praktisch den Verar beitungsbelastungsstatus des Prozessors und bestimmt die Unterbrechungsverzögerungsbedingung. Das heißt, die E/A-Vorrichtung misst die Zeit ab der Ausgabe der Unterbrechungsaufforderung an den Prozessor bis zum Start oder dem Ende der entsprechenden Unterbrechungsverarbeitung durch den Prozessor und bestimmt die Unterbrechungsverzögerungsbedingung auf der Basis der Zeit. In dieser Ausführungsform ist es nicht erforderlich, dass der Prozessor die Verzögerungsbedingung einstellt.
  • 10 ist ein Blockdiagramm der detaillierten Konfiguration des Zeitgebers und der Verzögerungszeitbestimmungsschaltung von 7 gemäß der zweiten Ausführungsform. In 10 tritt ein Unterbrechungsereignis auf, speichert das Unterbrechungsfaktorregister 14 einen Unterbrechungsfaktor und wird ein Unterbrechungssignal von der Unterbrechungsverzögerungsschaltung 12 an den Prozessor ausgegeben. Und dann wird der Zeitgeber 21 aktiviert, und das Zählen wird gestartet.
  • Wenn der Prozessor in 8 den Inhalt des Unterbrechungsfaktorregisters 14 löscht, wenn zum Beispiel Null als Datenelement geschrieben ist, wird dem Zeitgeber 21 entsprechend dem Schreibsignal der Daten ein Stoppsignal eingegeben, und der Zeitgeber 21 gibt einen Messwert an einen Multiplizierer 26 aus. Die Koeffizienteneinheit 25 gibt an den Multiplizierer 26 einen Koeffizienten aus, mit dem der Messwert des Zeitgebers zu multiplizieren ist, und das Muliplikationsresultat von dem Multiplizierer 26 wird für die Unterbrechungsverzögerungsschaltung 12 vorgesehen. Die Konfiguration der Unterbrechungsverzögerungsschaltung ist dieselbe wie die der ersten Ausführungsform, die in 5 gezeigt ist.
  • In 9 wird die Zeit gemessen, nachdem der Zeitgeber 21 das Zählen startet, bis der Prozessor den Inhalt des Unterbrechungsfaktorregisters 14 liest, das heißt, ein Lesesignal ausgibt. Zum Teil anders als in 10 wird ein Stoppsignal an den Zeitgeber 21 ausgegeben, wenn das Lesesignal eingegeben wird. Der Messwert des Zeitgebers wird für den Multiplizierer 26 vorgesehen, wie oben beschrieben, wird mit dem Koeffizienten multipliziert, der durch die Koeffizienteneinheit 25 ausgegeben wird, und an die Unterbrechungsverzögerungsschaltung 12 ausgegeben.
  • 11 ist ein Flussdiagramm des Unterbrechungsverzögerungszeitbestimmungsprozesses, der in 8 gezeigt ist. In 11 gibt die E/A-Vorrichtung bei Schritt S10 ein Unterbrechungsaufforderungssignal an den Prozessor aus, und der Zeitgeber 21, der in 7 gezeigt ist, wird aktiviert.
  • Der Prozessor empfängt bei Schritt S11 die Unterbrechungsaufforderung und liest bei Schritt S12 den Inhalt des Unterbrechungsfaktorregisters 14, nachdem eine Zeit abgelaufen ist, die von dem Belastungsverarbeitungsstatus zu der Zeit des Empfangs der Unterbrechungsaufforderung abhängt. Dann führt der Prozessor bei Schritt S13 die Unterbrechungsverarbeitung aus und löscht bei Schritt S14 den Inhalt des Unterbrechungsfaktorregisters.
  • Die E/A-Vorrichtung detektiert das Löschen des Unterbrechungsfaktorregisters durch den Prozessor, stoppt den Zeitgeber bei Schritt S15 und bestimmt die Verzögerungszeit auf der Basis des Wertes des Zeitgebers bei Schritt S16.
  • 12 ist ein Flussdiagramm des Verzögerungszeitbestimmungsprozesses, der in 9 gezeigt ist. Im Vergleich zu 11 besteht der Unterschied darin, dass die E/A-Vorrichtung den Zeitgeber bei Schritt S17 entsprechend dem Prozess bei Schritt S12 durch den Prozessor stoppt, das heißt, den Prozess zum Lesen des Unterbrechungsfaktors, und bei Schritt S18 die Unterbrechungsverzögerungszeit bestimmt.
  • 13 ist ein Blockdiagramm, das ein Beispiel für die Konfiguration der Verzögerungszeitbestimmungsschaltung zum vielmaligen Messen der Zeit ab der Ausgabe eines Unterbrechungssignals bis zum Lesen oder Löschen des Inhaltes des Unterbrechungsfaktorregisters 14 durch den Prozessor und zum Einstellen der Unterbrechungsverzögerungsbedingung entsprechend der nächsten Unterbrechung auf der Basis der vielen Messresultate gemäß der zweiten Ausführungsform zeigt.
  • In 13 wird wie in 10 ein Stoppsignal an den Zeitgeber 21 ausgegeben, wenn der Prozessor den Inhalt des Unterbrechungsfaktorregisters 14 löscht oder liest. Der Zeitgeber 21 zählt zuerst die Zeit ab der Ausgabe des Unterbrechungssignals entsprechend dem Auftreten des ersten Unterbrechungsereignisses, und der Messwert wird in einem Register 31a gespeichert. Das Speichern des Messwertes erfolgt so, dass der Zeitgeber 21 ein Zeitgeberwertbestätigungssignal an einen Zähler 30 liefert, der Zählwert des Zählers 30 in Entsprechung zu dem Signal inkrementiert wird und die Ausgabe des Zählers 30 als Schreibfreigabesignal an das Register 31a geliefert wird.
  • Die Zeit ab der Ausgabe des Unterbrechungssignals entsprechend dem Auftreten des zweiten Unterbrechungsereignisses bis zum Lesen oder Löschen des Inhaltes des Unterbrechungsfaktorregisters 14 durch den Prozessor wird durch den Zeitgeber 21 gemessen, und der Zählwert wird in einem Register 31b gespeichert, indem das Schreibfreigabesignal, das durch den Zähler 30 ausgegeben wird, an das Register 31b geliefert wird.
  • Ähnlich werden insgesamt n Zählwerte in den jeweiligen Registern gespeichert, und dann werden die Zählwerte an eine Durchschnittswertberechnungsschaltung 32 geliefert, und ein berechneter Durchschnittswert wird an den in 10 gezeigten Multiplizierer 26 ausgegeben, wodurch der Messwert entsprechend vielmaligen Unterbrechungsereignissen zur Verwendung beim Bestimmen einer Unterbrechungsverzögerungszeit entsprechend dem Auftreten des nächsten Unterbrechungsereignisses erhalten wird.
  • 14 ist ein Blockdiagramm der Konfiguration der Unterbrechungsaufforderungsschaltung 11 gemäß der dritten Ausführungsform der vorliegenden Erfindung. 15 ist eine Erläuterungsansicht des Prozessablaufs von 14. In der dritten Ausführungsform gibt die E/A-Vorrichtung 10 periodisch ein Unterbrechungs(aufforderungs)signal an den Prozessor aus. Obwohl ein Unterbrechungsereignis auftritt, wird eine Unterbrechungsverzögerung bis zur Zeitlage der nächsten Unterbrechungsperiode ausgeführt. Da das Auftreten eines Unterbrechungsereignisses in der Periode wahllos verteilt ist, beträgt die Verzögerungszeit ab dem Auftreten eines Unterbrechungsereignisses bis zur tatsächlichen Ausgabe eines Unterbrechungssignals im Durchschnitt eine halbe Periode.
  • In 14 erzeugt ein Periodenzeitgeber 35 die Unterbrechungsperiode, und eine Verzögerungszeitbestimmungsschaltung 34 bestimmt eine Verzögerungszeit synchron mit der Periode. Die Unterbrechungsverzögerungsschaltung 12 gibt ein Unterbrechungssignal an den Prozessor zu einem Zeitpunkt aus, der mit der Periode synchron ist.
  • In 15 wird das Unterbrechungssignal für den Prozessor zu der Zeitlage der nächsten feststehenden Periode entsprechend dem Auftreten des ersten Unterbrechungsereignisses ausgegeben, prüft der Prozessor bei <1> einen Unterbrechungsfaktor, löscht bei <2> den Unterbrechungsfaktor und beendet bei <3> die Unterbrechungsverarbeitung.
  • Bei dem nächsten auftretenden Unterbrechungsereignis wird die Ausgabe des Unterbrechungssignals bis zu der in Abhängigkeit von der Periode bestimmten Zeitlage verzögert. Obwohl während der Periode andere Unterbrechungsereignisse auftreten, werden die Unterbrechungs(aufforderungs)signale für die Unterbrechungsereignisse kollektiv ausgegeben.
  • Die Periode, die der Periodenzeitgeber 35 erzeugt, kann sich auf drei Zeitpunkte erstrecken, das heißt, wenn die Periode feststeht, wenn die Periode durch den Prozessor in Abhängigkeit von dem Belastungsstatus wie in der ersten Ausführungsform spezifiziert wird und wenn die Periode auf der Basis des durch die E/A-Vorrichtung erhaltenen Messwertes der Zeit bis zum Lesen oder Löschen des Inhaltes des Unterbrechungsfaktorregisters 14 durch den Prozessor wie in der zweiten Ausführungsform bestimmt wird.
  • Empirisch wurde ermittelt, dass das System zum Ausgeben einer Unterbrechungsaufforderung zu einer periodischen Zeitlage, wie es in der dritten Ausführungsform der Fall ist, in einem System effektiv ist, bei dem das TCP/IP (Transmission Control Protocol/Internet Protocol) zum Einsatz kommt, und dass das System zum Multiplizieren eines Messwertes eines Zeitgebers mit einem Koeffizienten, wie es oben unter Bezugnahme auf 7 gemäß der zweiten Ausführungsform erläutert wurde, in dem System effektiv ist, bei dem das UDP/IP (User Datagram Protocol/Internet Protocol) zum Einsatz kommt.
  • Bei der obigen Erläuterung sind die Ausführungsformen unter Verwendung einer Verzögerungszeit als Unterbrechungsverzögerungsbedingung beschrieben, aber als Verzögerungsbedingung kann auch die Häufigkeit des Auftretens von Unterbrechungsereignissen verwendet werden. Zum Beispiel kann in der zweiten Ausführungsform anstelle des Messens der Zeit bis zum Lesen oder Löschen des Unterbrechungsfaktors durch den Prozessor die Anzahl der während der Periode auftretenden Unterbrechungsereignisse gezählt werden, und die Verzögerungsbedingung kann auf der Basis der Anzahl bestimmt werden.
  • Gemäß der vorliegenden Erfindung kann der Verarbeitungsbelastungsstatus des Prozessors aus dem vergangenen Prozessstatus entsprechend einem Unterbrechungsereignis bestimmt werden, und die Unterbrechungsverzögerungsbedingung kann adaptiv entsprechend dem Bestimmungsresultat eingestellt werden.
  • Als Resultat kann, wenn die Belastung eines Prozessors niedrig ist, eine Unterbrechung sofort nach dem Auftreten eines Unterbrechungsereignisses ausgeführt werden. Wenn die Belastung des Prozessors hoch ist, kann eine Unterbrechung in Abhängigkeit von der Höhe der Belastung verzögert werden. Somit kann die Verzögerungszeit ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe einer Unterbrechungsaufforderung automatisch optimiert werden.
  • Obwohl eine Karte, etc. in eine E/A-Vorrichtung eingesetzt wird, kann die optimale Bedingung für die Unterbrechungsverzögerung zwischen der Karte und dem Prozessor ferner automatisch eingestellt werden, wodurch ein großer Beitrag zur Verbesserung der Leistung der Unterbrechungsverarbeitung geleistet wird.
  • Gewerbliche Anwendbarkeit
  • Mit dem Computer gemäß der vorliegenden Erfindung kann die Verzögerungsbedingung ab dem Auftreten eines Unterbrechungsereignisses bis zur Ausgabe einer Unterbrechungsaufforderung an einen Prozessor in Abhängigkeit von der Belastung eines Prozessors, etc. adaptiv bestimmt werden. Deshalb kann die vorliegende Erfindung in allen Industriezweigen eingesetzt werden, in denen Computer verwendet werden, die zum Ausführen einer Unterbrechungsverarbeitung in der Lage sind.

Claims (7)

  1. Computer mit einer Unterbrechungsaufforderungsausgabeeinheit (1) und einem Prozessor (2), bei dem: die Unterbrechungsaufforderungsausgabeeinheit (1) betriebsfähig ist, um während jeder von einer Vielzahl von Unterbrechungsoperationen eine Unterbrechungsaufforderung an den Prozessor (2) als Antwort auf ein entsprechendes Unterbrechungsereignis auszugeben; der Prozessor (2) betriebsfähig ist, um während jeder Unterbrechungsoperation eine Unterbrechungsverarbeitung als Antwort auf die betreffende Unterbrechungsaufforderung auszuführen; und die Unterbrechungsaufforderungsausgabeeinheit (1) betriebsfähig ist, um eine Verzögerungsbedingung in Abhängigkeit von einem Maß eines Belastungsstatus des Prozessors (2) zu bestimmen und jene Verzögerungsbedingung während solch einer Unterbrechungsoperation zu nutzen, um die Ausgabe der betreffenden Unterbrechungsaufforderung bezüglich des betreffenden Unterbrechungsereignisses zu verzögern, dadurch gekennzeichnet, dass die Unterbrechungsaufforderungsausgabeeinheit (1) umfasst: eine Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung (4), die betriebsfähig ist, um solch ein Maß des Prozessorbelastungsstatus während solch einer besonderen Unterbrechungsoperation zu erhalten und das erhaltene Maß als Verzögerungsbedingungsbestimmungsfaktor zu nutzen, welches Maß eine Zeitperiode ab der Ausgabe der Unterbrechungsaufforderung der besonderen Unterbrechungsoperation bis zum Beginn oder Ende der Unterbrechungsverarbeitung jener besonderen Unterbrechungsoperation ist; und eine Verzögerungsbedingungsbestimmungsvorrichtung (3), die betriebsfähig ist, um beim Ausführen solch einer anschließenden Unterbrechungsoperation die Verzögerungsbedingung in Abhängigkeit von dem erhaltenen Verzögerungsbedingungsbestimmungsfaktor zu bestimmen.
  2. Computer nach Anspruch 1, bei dem: die Unterbrechungsaufforderungsausgabeeinheit (1) ferner eine Unterbrechungsfaktorspeichervorrichtung (14) umfasst, die während jeder derartigen Unterbrechungsoperation betriebsfähig ist, um einen Unterbrechungsfaktor entsprechend dem betreffenden Unterbrechungsereignis zu speichern; und die Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung (4) betriebsfähig ist, um während der besonderen Unterbrechungsoperation als Verzögerungsbedingungsbestimmungsfaktor eine Zeitperiode ab der Ausgabe der Unterbrechungsaufforderung der besonderen Unterbrechungsoperation bis zum Lesen von Speicherinhalten der Unterbrechungsfaktorspeichervorrichtung (14) durch den Prozessor (2) zu erhalten.
  3. Computer nach Anspruch 2, bei dem: die Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung (4) betriebsfähig ist, um eine Zeitperiode ab der Ausgabe der Unterbrechungsaufforderung bis zum Lesen der Speicherinhalte der Unterbrechungsfaktorspeichervorrichtung (14) durch den Prozessor während jeder von einer Vielzahl von solchen Unterbrechungsoperationen zu messen und den Verzögerungsbedingungsbestimmungsfaktor auf der Basis der Vielzahl von gemessenen Zeitperioden zu erhalten.
  4. Computer nach Anspruch 1, bei dem: die Unterbrechungsaufforderungsausgabeeinheit (1) ferner eine Unterbrechungsfaktorspeichervorrichtung (14) umfasst, die während jeder derartigen Unterbrechungsoperation betriebsfähig ist, um einen Unterbrechungsfaktor entsprechend dem betreffenden Unterbrechungsereignis zu speichern; und die Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung (4) betriebsfähig ist, um während der besonderen Unterbrechungsoperation als Verzögerungsbedingungsbestimmungsfaktor eine Zeitperiode ab der Ausgabe der Unterbrechungsaufforderung der besonderen Operation bis zum Löschen von Speicherinhalten der Unterbrechungsfaktorspeichervorrichtung (14) durch den Prozessor zu erhalten.
  5. Computer nach Anspruch 4, bei dem: die Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung (4) betriebsfähig ist, um eine Zeitperiode ab der Ausgabe der Unterbrechungsaufforderung bis zum Löschen der Speicherinhalte der Unterbrechungsfaktorspeichervorrichtung (14) durch den Prozessor während jeder von einer Vielzahl von solchen Unterbrechungsoperationen zu messen und den Verzögerungsbedingungsbestimmungsfaktor auf der Basis der Vielzahl von gemessenen Zeitperioden zu erhalten.
  6. Computer nach irgendeinem der Ansprüche 2 bis 5, bei dem: die Verzögerungsbedingungsbestimmungsvorrichtung (3) betriebsfähig ist, um eine Verzögerungszeitperiode als Verzögerungsbedingung durch Multiplizieren der Zeitperiode, die der Verzögerungsbedingungsbestimmungsfaktor ist, der durch die Verzögerungsbedingungsbestimmungsfaktor-Ausgabevorrichtung (4) erhalten wird, mit einem vorbestimmten Koeffizienten zu bestimmen.
  7. Programm, das bei seiner Ausführung auf einem Computer bewirkt, dass der Computer die Schritte ausführt: Ausgeben, während jeder von einer Vielzahl von Unterbrechungsoperationen, einer Unterbrechungsaufforderung an einen Prozessor (2) als Antwort auf ein entsprechendes Unterbrechungsereignis, damit der Prozessor (2) als Antwort darauf eine Unterbrechungsverarbeitung ausführen kann; Bestimmen einer Verzögerungsbedingung in Abhängigkeit von einem Maß eines Belastungsstatus der Prozessors (2); und Nutzen jener Verzögerungsbedingung während solch einer Unterbrechungsoperation, um die Ausgabe der betreffenden Unterbrechungsaufforderung bezüglich des betreffenden Unterbrechungsereignisses zu verzögern, gekennzeichnet durch: Erhalten solch eines Maßes des Prozessorbelastungsstatus während solch einer besonderen Unterbrechungsoperation und Nutzen des erhaltenen Maßes als Verzögerungsbedingungsbestimmungsfaktor, welches Maß eine Zeitperiode ab der Ausgabe der Unterbrechungsaufforderung der besonderen Unterbrechungsoperation bis zum Beginn oder Ende der Unterbrechungsverarbeitung jener besonderen Unterbrechungsoperation ist; und Bestimmen, wenn solch eine anschließende Unterbrechungsoperation ausgeführt wird, der Verzögerungsbedingung in Abhängigkeit von dem erhaltenen Verzögerungsbedingungsbestimmungsfaktor.
DE2002623177 2002-01-24 2002-01-24 Computer zur dynamischen bestimmung der unterbrechungsverzögerung Active DE60223177T2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/000516 WO2003063002A1 (en) 2002-01-24 2002-01-24 Computer for determining interruption delay dynamically

Publications (2)

Publication Number Publication Date
DE60223177D1 DE60223177D1 (de) 2007-12-06
DE60223177T2 true DE60223177T2 (de) 2008-07-31

Family

ID=27590527

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002623177 Active DE60223177T2 (de) 2002-01-24 2002-01-24 Computer zur dynamischen bestimmung der unterbrechungsverzögerung

Country Status (5)

Country Link
US (1) US7415561B2 (de)
EP (1) EP1471431B1 (de)
JP (1) JP4219818B2 (de)
DE (1) DE60223177T2 (de)
WO (1) WO2003063002A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3971715B2 (ja) * 2003-03-28 2007-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation 情報処理装置、割込制御装置、制御方法、及びこれらのプログラム
US20060064529A1 (en) * 2004-09-23 2006-03-23 International Business Machines Corporation Method and system for controlling peripheral adapter interrupt frequency by transferring processor load information to the peripheral adapter
US7634589B2 (en) * 2004-09-23 2009-12-15 International Business Machines Corporation Method for controlling peripheral adapter interrupt frequency by estimating processor load in the peripheral adapter
JP2006121667A (ja) * 2004-09-27 2006-05-11 Matsushita Electric Ind Co Ltd パケット受信制御装置及びパケット受信制御方法
US7103693B2 (en) * 2004-09-30 2006-09-05 International Business Machines Corporation Method for applying interrupt coalescing to incoming messages based on message length
JP2006252015A (ja) * 2005-03-09 2006-09-21 Nec Engineering Ltd データ転送制御装置
FR2888960B1 (fr) * 2005-07-19 2007-10-12 Gemplus Sa Detection d'une faute par perturbation longue
TWI283977B (en) * 2005-12-16 2007-07-11 Ind Tech Res Inst Adaptive interrupts coalescing system with recognizing minimum delay packets
JP4807502B2 (ja) * 2006-03-10 2011-11-02 日本電気株式会社 I/oブリッジ回路及び割り込み信号制御方法
JP2008084043A (ja) * 2006-09-28 2008-04-10 Fujitsu Ltd 割り込み処理方法
JP4952542B2 (ja) * 2007-11-28 2012-06-13 富士通株式会社 通信プログラム、通信装置および通信方法
JP5099215B2 (ja) 2008-03-31 2012-12-19 富士通株式会社 情報処理装置、割込み制御装置、割込み制御回路及び割込み制御方法
US10521265B2 (en) * 2008-09-19 2019-12-31 Microsoft Technology Licensing, Llc Coalescing periodic timer expiration in guest operating systems in a virtualized environment
US9405347B2 (en) 2009-02-26 2016-08-02 Microsoft Technology Licensing, Llc Power-saving operating system for virtual environment
EP2241953B1 (de) * 2009-04-17 2019-08-28 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Realisierung einer fehlersicheren Zeitfunktion
JP5267328B2 (ja) * 2009-05-26 2013-08-21 富士通セミコンダクター株式会社 割り込み通知制御装置および半導体集積回路
JP2011180767A (ja) * 2010-02-26 2011-09-15 Kyocera Mita Corp 半導体装置
US8612998B2 (en) 2010-09-23 2013-12-17 Intel Corporation Coordinating device and application break events for platform power saving
JP5829890B2 (ja) * 2011-11-02 2015-12-09 ルネサスエレクトロニクス株式会社 半導体データ処理装置、タイムトリガ通信システム及び通信システム
JP5804075B2 (ja) * 2011-11-11 2015-11-04 富士通株式会社 電子計算機及び割り込み制御方法
CN103218032B (zh) 2011-11-29 2017-07-14 英特尔公司 利用相对能量损益平衡时间的功率管理
US9218288B2 (en) * 2012-06-15 2015-12-22 International Business Machines Corporation Monitoring a value in storage without repeated storage access
US9075639B1 (en) * 2012-10-23 2015-07-07 Altera Corporation Systems and methods for handling interrupts during software design simulation
US9208113B2 (en) 2013-01-15 2015-12-08 Apple Inc. Deferred inter-processor interrupts
US9195292B2 (en) 2013-06-26 2015-11-24 Intel Corporation Controlling reduced power states using platform latency tolerance
US10282326B1 (en) * 2014-10-29 2019-05-07 Xilinx, Inc. Active interrupt handler performance monitoring in microprocessors
JP2018106583A (ja) * 2016-12-28 2018-07-05 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53145536A (en) * 1977-05-25 1978-12-18 Hitachi Ltd Interruption process system
US5555420A (en) * 1990-12-21 1996-09-10 Intel Corporation Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management
US5613129A (en) * 1994-05-02 1997-03-18 Digital Equipment Corporation Adaptive mechanism for efficient interrupt processing
US5708817A (en) * 1995-05-31 1998-01-13 Apple Computer, Inc. Programmable delay of 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
US5881296A (en) * 1996-10-02 1999-03-09 Intel Corporation Method for improved interrupt processing in a computer system
US6195725B1 (en) * 1998-12-14 2001-02-27 Intel Corporation Dynamically varying interrupt bundle size
US6370607B1 (en) * 1999-04-13 2002-04-09 Advanced Micro Devices, Inc. Automatic disabling of interrupts upon entry into interrupt service routine
JP2000322270A (ja) * 1999-05-11 2000-11-24 Matsushita Electric Ind Co Ltd 割り込み制御方法
JP2001331329A (ja) * 2000-05-22 2001-11-30 Mitsubishi Electric Corp 割込み制御装置及び割込み制御方法

Also Published As

Publication number Publication date
DE60223177D1 (de) 2007-12-06
EP1471431A1 (de) 2004-10-27
US7415561B2 (en) 2008-08-19
WO2003063002A1 (en) 2003-07-31
EP1471431B1 (de) 2007-10-24
JP4219818B2 (ja) 2009-02-04
US20040236875A1 (en) 2004-11-25
EP1471431A4 (de) 2006-05-24
JPWO2003063002A1 (ja) 2005-05-26

Similar Documents

Publication Publication Date Title
DE102009032581B4 (de) Management der Zeitsteuerung eines Protokollstapels
TWI468944B (zh) 中斷控制器及其方法
US7634589B2 (en) Method for controlling peripheral adapter interrupt frequency by estimating processor load in the peripheral adapter
US7330434B2 (en) Traffic quality measurement apparatus and method
US6662204B2 (en) Thread control system and method in a computer system
EP0852357B1 (de) Verfahren zur Unterbrechungsbearbeitung in einer Hochgeschwindigkeits-E/A-Steuervorrichtung
DE60317837T2 (de) Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität
US6785753B2 (en) Method and apparatus for response modes in pipelined environment
JP3190003B2 (ja) 適応ポーリング・システム及び周辺装置を効率的にサポートする方法
JP2520568B2 (ja) デ―タ・プロセッサに接続された周辺装置からのサ―ビス要求を管理するためのシステム
US7114106B2 (en) Scalable network attached storage (NAS) testing tool
US7412509B2 (en) Control system computer, method, and program for monitoring the operational state of a system
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
US7065598B2 (en) Method, system, and article of manufacture for adjusting interrupt levels
US7478186B1 (en) Interrupt coalescer for DMA channel
US6393480B1 (en) Application response time prediction
JP4463686B2 (ja) パフォーマンス・モニタおよびその方法
US4464749A (en) Bi-directional token flow system
US6735653B2 (en) Bus bandwidth consumption profiler
US8843652B2 (en) Distributed real-time operating system
US8104036B2 (en) Measuring processor use in a hardware multithreading processor environment
EP1185013B1 (de) System und Verfahren zur Taktsynchronisierung für ein USB-Zielgerät
US6085241A (en) Internet user-bandwidth management and control tool
US7568028B2 (en) Bottleneck detection system, measurement object server, bottleneck detection method and program
US20080062892A1 (en) High speed bus protocol with programmable scheduler

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: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE