DE102004003102A1 - System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung - Google Patents

System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung Download PDF

Info

Publication number
DE102004003102A1
DE102004003102A1 DE102004003102A DE102004003102A DE102004003102A1 DE 102004003102 A1 DE102004003102 A1 DE 102004003102A1 DE 102004003102 A DE102004003102 A DE 102004003102A DE 102004003102 A DE102004003102 A DE 102004003102A DE 102004003102 A1 DE102004003102 A1 DE 102004003102A1
Authority
DE
Germany
Prior art keywords
timeout
transactions
state
transaction
counter
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.)
Withdrawn
Application number
DE102004003102A
Other languages
English (en)
Inventor
Richard W. Dallas Adkisson
Huai-Ter V. Dallas Chong
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
Publication of DE102004003102A1 publication Critical patent/DE102004003102A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit

Abstract

Es sind Systeme und Verfahren zum Bestimmen von Zeitüberschreitungen bezüglich einer Mehrzahl von Transaktionen offenbart, die ein Verwenden eines ersten Zeitüberschreitungstaktes zum gleichzeitigen Bestimmen von Zeitüberschreitungszuständen bezüglich eines ersten Satzes von Transaktionen der Mehrzahl von Transaktionen und zum Bestimmen, wann Transaktionen des ersten Satzes von Transaktionen einen zeitüberschrittenen Zustand der Zeitüberschreitungszustände erreicht haben, umfassen.

Description

  • Heutzutage ist es nicht unüblich, daß ein Computersystem ziemlich komplex ist und oft mehrere Prozessoren umfaßt, die konfiguriert sind, um ein paralleles und/oder verteiltes Verarbeiten zu liefern. Beispielsweise umfassen Mehrprozessor-Computersysteme oft nicht nur mehrere Hauptverarbeitungseinheiten (MPUs – main processing units), sondern können auch mehrere Hilfsprozessoren oder -agenten, beispielsweise Speicherprozessoren und dergleichen, umfassen. Diese verschiedenen Prozessoren, sowie andere Systemressourcen, z.B. Speicher, Eingabe-/Ausgabevorrichtungen, Plattenvorrichtungen und dergleichen, können über das Computersystem verteilt sein, wobei eine Kommunikation durch verschiedene Busse bereitgestellt wird. Beispielsweise kann ein Computersystem eine Anzahl von Teilmodulen aufweisen, die hierin als Zellen oder Zellkarten bezeichnet werden und eine Anzahl von Systemressourcen, z.B. Hauptverarbeitungseinheiten (MPUs), Agenten und/oder Speicher sowie auf denselben angeordnete Busse, aufweisen. Systemressourcen eines Teilmoduls können Anforderungen an andere Systemressourcen stellen bzw. Anfragen von solchen bedienen. Derartige Systemressourcen können demselben Teilmodul und/oder anderen Teilmodulen des Systems zugeordnet sein.
  • Um Anforderungen von mehreren Systemressourcen auf ordentliche und vorhersehbare Weise zu bedienen, können Systeme verschiedene Busprotokolle und Transaktionswarteschlangen implementieren. Beispielsweise können Transaktionswarteschlangen Informationen bezüglich bestimmter Transaktionen für eine bestimmte Systemressource „während des Prozesses" („in-process") speichern. Beispielsweise kann ein Prozessor eine große Anzahl von Transaktionen, beispielsweise eine Anzahl von Speicher-Leseoperationen, ausgeben, wobei beim normalen Betrieb eine Anfangsblock- und/oder Datenrückgabe, beispielsweise eine Speicherrückgabe, erwartet wird. Falls der Prozessor eine Transaktion ausgibt und die Transaktion nicht zurückkehrt, kann der Prozessor einen vielleicht kritischen Fehlerzustand erfahren.
  • Falls durch das System ein Fehler beim Betrieb irgendeines Aspektes des Systems, beispielsweise bezüglich einer der zuvor erwähnten Systemressourcen, erfaßt wird, kann ein Fehlersignal erzeugt werden, um die entsprechenden Systemressourcen zu benachrichtigen. Derartige Fehler können nicht-kritisch sein, z.B. können sie auf die Operation einer einzigen Systemressource isoliert oder einer wiederherstellbaren Operation zugeordnet sein. Derartige Fehler können vom Wesen her jedoch kritisch sein, z.B. können sie die Initialisierung eines gesamten Busses (was hierin als Businitialisierungs- oder BINIT-Fehler bezeichnet wird) und somit der Systemressourcen auf demselben erfordern.
  • Allgemein ist es wünschenswert, bestimmte Fehlerzustände zu vermeiden, insbesondere kritische Fehlerzustände, bei denen Systemressourcen von einer weiteren Verarbeitung „suspendiert" sind, oder die eine Initialisierung einer Mehrzahl von Systemressourcen erfordern. Somit kann mit bestimmten vorhersehbaren Ereignissen, z.B. einem Ausfall bestimmter Transaktionsrückgaben, auf eine Weise umgegangen werden, die berechnet ist, um die Auswirkung auf den Systembetrieb zu minimieren, beispielsweise um eine kritische Fehlersituation zu vermeiden.
  • Es kann eine Anzahl von Gründen für ein Fehlschlagen des Empfangens einer Transaktionsrückgabe geben, z.B. dort, wo ein Ruf an eine bestimmte Hardware getätigt wurde, die in dem System nicht installiert wurde oder die entfernt wurde, und wo die Software versucht, die Hardwareumgebung zu entdecken. Dementsprechend implementierten Systeme bereits Zeitgebungsoperationen, bei denen das System auf eine vorhersehbare und elegante Weise eine Zeitüberschreitung fest stellt, so daß die Software beispielsweise erkennen wird, daß eine bestimmte Hardwareeinheit nicht existiert, und daß das Verarbeiten fortgesetzt wird. In der Vergangenheit wurden Zeitüberschreitungsschaltungen (time-out circuits) insbesondere in Bezug auf eine bestimmte Vorrichtung und/oder ein bestimmtes Ereignis implementiert. Beispielsweise können manche Eingabe-/Ausgabesysteme (I-/O-Systeme) Protokolle aufweisen, die besagen, daß, falls eine bestimmte I-/O-Karte nicht mit dem System gekoppelt ist, ein Zeitüberschreitungszähler, der dieser bestimmten I-/O-Karte zugeordnet ist, nach einer fehlgeschlagenen Rückgabe von dieser I-/O-Karte eine Zeitüberschreitungsperiode angeben wird und das System die Verarbeitung fortsetzen wird. Bei einem großen System kann sich jedoch eine Implementierung von Zeitüberschreitungszählern bezüglich jeder Vorrichtung und/oder jedes Ereignisses, für die bzw. das eine Zeitüberschreitungsverarbeitung gewünscht werden mag, aus Kostengründen, sowohl in Bezug auf Ressourcen als auch auf die Verarbeitungs-Gesamtkosten, verbieten.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren und Systeme zu schaffen, die auf einfache Weise Zeitüberschreitungen bestimmen können.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 sowie durch Systeme gemäß Anspruch 10 oder 22 gelöst.
  • Ein Verfahren zum Bestimmen von Zeitüberschreitungen bezüglich einer Mehrzahl von Transaktionen, wobei das Verfahren folgende Schritte umfaßt: Verwenden eines ersten Zeitüberschreitungstaktes zum gleichzeitigen Bestimmen von Zeitüberschreitungszuständen bezüglich eines ersten Satzes von Transaktionen der Mehrzahl von Transaktionen, und Bestimmen, wann Transaktionen des ersten Satzes von Transaktionen einen zeitüberschrittenen Zustand der Zeitüberschreitungszustände erreicht haben.
  • Ein System zum Bestimmen von Zeitüberschreitungen bezüglich einer Mehrzahl von Transaktionen, wobei das System folgende Merkmale umfaßt: einen ersten Zeitüberschreitungszähler, der ein Zeitüberschreitungsintervall einer ersten vorbestimmten Länge liefert, und eine erste Mehrzahl von Zustandsregistern, die jeweils einer entsprechenden Transaktion der Mehrzahl von Transaktionen zugeordnet sind, wobei Zustände der ersten Mehrzahl von Zustandsregistern gemäß dem Zeitüberschreitungsintervall des ersten Zeitüberschreitungszählers zu einem nächsten Zustand vorgerückt werden und wobei ein bestimmter Zustand des Zustandsregisters, zu dem gemäß den Zeitüberschreitungsintervallen vorgerückt wird, einem zeitüberschrittenen Zustand entspricht.
  • Ein System zum Bestimmen von Zeitüberschreitungen bezüglich einer Mehrzahl von Transaktionen, wobei das System folgende Merkmale umfaßt: eine erste Zustandsmaschine, die zumindest einen Schwebezustand, einen Zeitüberschreitungszustand und einen zeitüberschrittenen Zustand für jede eines ersten Satzes von Transaktionen der Mehrzahl von Transaktionen aufweist, wobei die erste Zustandsmaschine wirksam ist, um Transaktionen des ersten Satzes von Transaktionen ungeachtet des Zustands eines ersten Zeitüberschreitungszählers zu dem Schwebezustand zu sequenzieren, und wirksam ist, um die Transaktionen des ersten Satzes von Transaktionen gemäß dem Ablauf des ersten Zeitüberschreitungszählers von dem Schwebezustand zu dem ersten Zeitüberschreitungszustand zu sequenzieren, wobei durch die Transaktionen des ersten Satzes von Transaktionen gemäß dem Ablauf des ersten Zeitüberschreitungszählers in den zeitüberschrittenen Zustand eingetreten wird.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 einen Abschnitt eines Multiprozessorsystems, bei dem ein Ausführungsbeispiel der vorliegenden Erfindung implementiert ist;
  • 2 Zustandsmaschinen, die zum Implementieren einer Transaktionszeitüberschreitungsnachverfolgung gemäß Ausführungsbeispielen der vorliegenden Erfindung zusammenwirken; und
  • 3 eine Zustandsmaschine zum Implementieren einer Transaktionszeitüberschreitungsnachverfolgung gemäß Ausführungsbeispielen der vorliegenden Erfindung.
  • Ausführungsbeispiele der vorliegenden Erfindung liefern eine Zeitüberschreitungsnachverfolgung bezüglich einer Mehrzahl von Vorrichtungen und/oder Ereignissen unter Verwendung eines minimalen Maßes an Ressourcen. Gemäß Ausführungsbeispielen sind Zeitüberschreitungsperioden mit einem Unsicherheitsfenster bezüglich ihrer tatsächlichen Zeitdauer implementiert, obwohl eine große Anzahl von unabhängigen und asynchronen Ereignissen durch ein Zeitüberschreitungsnachverfolgen geliefert werden können. Durch ein Nutzen von Implementierungen, bei denen eine große Anzahl von Ereignissen durch ein Zeitüberschreitungsnachverfolgen unter Verwendung eines minimalen Maßes an Ressourcen geliefert werden kann, ermöglichen Ausführungsbeispiele der vorliegenden Erfindung auf wirtschaftliche Weise die Verwendung unterschiedlicher Zeitüberschreitungsperioden, um z.B. unterschiedliche Typen von Ereignissen und/oder Situationen zu berücksichtigen.
  • Bei einem Betrieb gemäß Ausführungsbeispielen der vorliegenden Erfindung geben Systemressourcen, z.B. Prozessoren, Transaktionen aus, die bis zum Abschluß nachverfolgt werden. Beispielsweise kann ein Prozessor eine Speicherleseoperation ausgeben, die Transaktion wird in eine Transaktionstabelle eingegeben, und ein Transaktionzeitüberschrei tungsnachverfolgen gemäß der vorliegenden Erfindung wird implementiert. Im normalen Betrieb wird die Transaktion durch ein Speichersystem verarbeitet, das ein Datenpaket zurückgibt, und die Rückgabe wird durch eine Bezugnahme auf die Transaktionstabelle verarbeitet. Falls jedoch die Transaktionsantwort nicht innerhalb einer Zeitüberschreitungsperiode zurückgegeben wird, wie durch eine Operation eines Ausführungsbeispiels der Erfindung bestimmt wird, ist das Transaktionszeitüberschreitungsverarbeiten vorzugsweise implementiert, um einen fortgesetzten und vorhersehbaren Systembetrieb zu ermöglichen. Beispielsweise erzwingen Ausführungsbeispiele einen Abschluß der Transaktion, beispielsweise um eine Rückgabe auszugeben, beispielsweise einschließlich gefälschter oder erfundener Daten, je nach dem Transaktionstyp, usw.
  • Gemäß Ausführungsbeispielen der vorliegenden Erfindung werden Transaktionen klassifiziert, und eine Zeitüberschreitungsinkrementalzustandsmaschine wird bezüglich jeder derartigen Transaktion implementiert. Ein Transaktionszeitüberschreitungszähler kann für jeden unterschiedlichen Typ von Transaktion vorgesehen sein, für den eine Zeitüberschreitungsnachverfolgung gemäß Ausführungsbeispielen der Erfindung geliefert werden soll. Dementsprechend kann eine kleine Anzahl von Transaktionszeitüberschreitungszählern bezüglich einer großen Anzahl von Transaktionen, für die eine Zeitüberschreitungsnachverfolgung implementiert ist, implementiert sein.
  • Die den diversen unterschiedlichen Klassifikationen von Transaktionen zugeordneten Transaktionszeitüberschreitungszähler können unterschiedliche Zeitüberschreitungsperioden liefern. Je nachdem, wie die Transaktion aussieht, kann es beispielsweise wünschenswert sein, verlängerte oder verkürzte Zeitüberschreitungsperioden zu ermöglichen, beispielsweise dort, wo eine Transaktion einer Systemressource oder Systemressourcen zugeordnet ist, die relativ entfernt in dem System angeordnet ist bzw. sind, oder dort, wo eine Transaktion einer Leistung seitens einer Anzahl von Systemressourcen zugeordnet ist.
  • Vorzugsweise werden die Transaktionszeitüberschreitungszähler innerhalb von vorbestimmten Zeitperioden, die geringer sind als die gewünschten Zeitüberschreitungsperioden für diese Transaktionsklassifikation, umdrehen, z.B. abwärts zählen. Gemäß Ausführungsbeispielen der Erfindung wird die Logik jeder entsprechenden Zeitüberschreitungszustandsmaschine (z.B. derjenigen Zustandsmaschinen für Transaktionen, die als der Transaktionstyp klassifiziert sind, der dem bestimmten Zeitüberschreitungszähler zugeordnet ist) jedesmal dann zu einem neuen Zustand vorgerückt, wenn ein Transaktionszeitüberschreitungszähler umdreht. Nachdem ein Zeitüberschreitungszustand erreicht ist, wird vorzugsweise ein Transaktionszeitüberschreitungsverarbeiten aufgerufen. Da eine Mehrzahl von nachverfolgten Transaktionen gleichzeitig in einen zeitüberschrittenen Zustand übergehen kann, implementieren Ausführungsbeispiele der Erfindung eine Transaktionsabschlußlogik, die ein Zeitüberschreitungsverarbeiten entscheidet. Beispielsweise können zeitüberschrittene Transaktionen (also Transaktionen, bei denen die Zeit zur Ausführung bzw. Durchführung bereits abgelaufen oder überschritten ist) zum Verarbeiten durch die Transaktionsabschlußlogik prioritätscodiert sein, z.B. auf der Basis eines Transaktionstyps, einer Position in einer Nachverfolgungstabelle usw.
  • Eine Transaktionsabschlußlogik von Ausführungsbeispielen der Erfindung kann durch jede derartige zeitüberschrittene Transaktion verlaufen und sie aus dem System löschen, z.B. indem sie einen Systemabschluß erzwingt und die Transaktion aus der Transaktionsnachverfolgungstabelle entfernt. Der zuvor erwähnte erzwungene Abschluß von zeitüberschrittenen Transaktionen wird vorzugsweise durch die Transaktionsabschlußlogik entschieden, um eine fortgesetzte Handhabung von ordnungsgemäß zurückgegebenen Transaktionen zusammen mit den zeitüberschrittenen Transaktionen zu ermöglichen.
  • Überdies sehen Ausführungsbeispiele unterschiedliche Typen von Zeitüberschreitungen vor, wie sie beispielsweise unterschiedlichen Typen von Transaktionen, die durch die Transaktionsabschlußlogik entschieden werden können, zugeordnet sein können. Ausführungsbeispiele der Erfindung berücksichtigen ferner eine tatsächliche Rückgabe einer Transaktion, für die eine Transaktionszeitüberschreitungsperiode abgelaufen ist und eine Transaktionszeitüberschreitungsverarbeitung bereits begonnen hat.
  • Unter Bezugnahme auf 1 ist ein Abschnitt eines Computersystems, bei dem ein Ausführungsbeispiel der vorliegenden Erfindung implementiert ist, allgemein als 100 gezeigt. Das Hostsystem, das als Bestandteil den Systemabschnitt 100 aufweist, kann ein Multiprozessorsystem umfassen, z.B. ein Serversystem der Serie rx von Hewlett Packard, das eine Mehrzahl von Intel-ITANIUM-Prozessoren implementiert.
  • Der in 1 veranschaulichte Systemabschnitt 100 umfaßt eine Mehrzahl von Prozessoren, hier Prozessoren 131 und 132, die auf einem Bus 101 angeordnet sind. Der Bus 101 kann bei einem Liefern einer Kommunikation zwischen verschiedenen Systemressourcen verwendet werden, z.B. Hauptverarbeitungseinheiten (MPUs), z.B. den zuvor erwähnten ITANIUM-Prozessoren, z.B. Prozessoren 131 und 132, Speicher (nicht gezeigt) und/oder dergleichen. Ebenfalls mit dem Bus 101 des veranschaulichten Ausführungsbeispiels gekoppelt ist eine Prozessorschnittstelle 110, die einen Prozessorschnittstelleneingangsblock (PIN-Blocks) 113 und einen Prozessorschnittstellenausgangsblock (POUT-Blocks) 114 umfaßt.
  • Der Prozessorschnittstelleneingangsblock 113 des veranschaulichten Ausführungsbeispiels umfaßt eine Prozessorschnittstellen-In-Reihe-Warteschlange (PIQ) 112. Die Prozessorschnittstellen-In-Reihe-Warteschlange 112 umfaßt eine In-Reihe-Warteschlange 111, die verwendet wird, um Transaktionsphasen zu nutzen, um einen Abschluß von Transaktionen auf dem Bus in einer Reihenfolge gemäß einem dominierenden Protokoll zu gewährleisten.
  • Der Prozessorausgangsblock 114 umfaßt einen Anfangsblock/Datenverarbeitungsblock 143, der mit einer Außer-Der-Reihe-Warteschlange oder -Transaktionstabelle 144 wirksam ist, um eine Transaktionsausführung auf dem Bus, die in einer beliebigen Reihenfolge zurückgegeben werden kann, nachzuverfolgen. Ein Prozessorausgabeadreßsteuerungs/Verarbeitungsblock (POAC-Block) 142 und ein Prozessorausgangsdatenblock (POD-Block) 141 des Prozessorausgangsblocks 114 arbeiten mit der Transaktionstabelle 144 und/oder dem Anfangsblock-/Datenverarbeitungsblock 143 zusammen, um Anfangsblock- und Dateninformationen gemäß Transaktionen auf dem Bus 101 auszugeben.
  • Man sollte erkennen, daß der Systemabschnitt 100 eventuell lediglich einen kleinen Abschnitt eines bestimmten Systems darstellt. Demgemäß kann das System, von dem der Systemabschnitt 100 ein Bestandteil ist, zusätzlich zu den gezeigten Systemressourcen auch Prozessoren, Busse, Prozessorschnittstellen und/oder andere Systemressourcen umfassen.
  • Im Betrieb gemäß einem Ausführungsbeispiel werden Transaktionen, die durch einen Prozessor, z.B. Prozessoren 131 und 132, ausgegeben werden, zunächst in der Prozessorschnittstellen-In-Reihe-Warteschlange 112 verarbeitet. Demgemäß kann eine Transaktion entsprechend der Reihenfolge verarbeitet werden, z.B. um eine Transaktionsanforderungsphase, eine Datennachprüfphase und eine Datenantwortphase zu umfassen, wie sie durch Zustände, die in der In-Reihe-Warteschlange 111 gespeichert sind, widergespiegelt werden. Nach Abschluß der In-Reihe-Transaktionsphasen, die der In-Reihe-Warteschlange 112 zugeordnet sind, können Transaktionen in der Transaktionstabelle 144 bis zum Abschluß der Transaktion nachverfolgt werden.
  • Wenn z.B. ein Prozessor eine Speicherleseoperation durchführt, kann auf dem Bus eine Speicherleseoperationsanforderung von diesem Prozessor erscheinen, in der Prozessorschnittstellen-In-Reihe-Warteschlange verarbeitet werden und zum Zweck einer tatsächlichen Wiedergewinnung und Rückgabe der angeforderten Daten an den Rest des Systems weitergesandt werden. Während jedoch die tatsächliche Wiedergewinnung und Rückgabe der angeforderten Daten bewerkstelligt wird, kann ein Transaktionseintrag in die Transaktionstabelle plaziert werden, um zu zeigen, daß eine angeforderte Speicherleseoperationstransaktion immer noch im Schwebezustand ist. Es wird erwartet, daß die angeforderte Speicherleseoperationstransaktion an den Anfangsblock/Datenverarbeitungsblock zurückgegeben werden wird. Der Anfangsblock-/Datenverarbeitungsblock akzeptiert die zurückgegebenen Informationen und sieht auf die Transaktionstabelle, um zu bestimmen, wie die Informationen gehandhabt werden sollen. Demgemäß kann der Prozessorausgangsadreßsteuerung ein Anfangsblock bereitgestellt werden, um anzugeben, daß zugeordnete Daten zu einem bestimmten Prozessor, der in der Transaktionstabelle identifiziert wird, gelenkt werden. Danach können die Daten dem Prozessorausgangsdatenblock bereitgestellt werden, um diese Daten mit den ordnungsgemäßen Informationen auf dem Bus zu plazieren, derart, daß der Prozessor, der die Leseoperation durchführte, diese Daten bekommen wird.
  • Obwohl erwartet wird, daß eine typische Operation zu einer Rückgabe von Transaktionen führen wird, wie oben erläutert wurde, können bestimmte Situationen dazu führen, daß eine Rückgabe bezüglich einer oder mehrerer Transaktionen niemals geliefert wird. Um zu vermeiden, daß ein Prozessor oder eine andere Systemressource eine weitere Verarbeitung anhält (d.h. ein „Suspendieren" oder „Gefrieren"), und/oder um Fehlerzustände ordnungsgemäß zu erfassen, liefern Ausführungsbeispiele der vorliegenden Erfindung eine Transaktionszeitüberschreitungsnachverfolgung und eine Löschung einer zeitüberschrittenen Transaktion. Da jedoch Systeme, bei denen Ausführungsbeispiele der vorliegenden Erfindung eingesetzt werden können, eine große Anzahl von gleichzeitigen Transaktionen unterstützen können, sind Ausführungsbeispiele der vorliegenden Erfindung angepaßt, um die zuvor erwähnte Transaktionszeitüberschreitungsnachverfolgung zu liefern, ohne separate Zeitüberschreitungszähler für jede Transaktion, für die eine Zeitüberschreitungsnachverfolgung geliefert wird, zu implementieren.
  • Demgemäß implementieren Ausführungsbeispiele der vorliegenden Erfindung eine Zustandsmaschine oder Zustandsmaschinen, wie z.B. die in 1 gezeigten Zustandsmaschinen 151 und 161, die Zustände liefern, die jeder Transaktion zugeordnet sind, für die eine Zeitüberschreitungsnachverfolgung geliefert werden soll, um zu bestimmen, wann eine bestimmte Transaktion über eine zugeordnete Zeitüberschreitungsperiode hinaus fortgedauert hat. Wie in der Technik bekannt ist, ist eine Zustandsmaschine allgemein jegliche Vorrichtung, die den Status einer Sache zu einem gegebenen Zeitpunkt speichert und auf eine Eingabe hin wirksam ist, um den Status zu verändern und/oder zu bewirken, daß eine Aktion oder eine Ausgabe für eine beliebige gegebene Veränderung stattfindet. Die Zustandsmaschinen 151 und 161 des veranschaulichten Ausführungsbeispiels arbeiten mit einer Transaktionsabschlußlogik 170 zusammen, um ein Löschen von zeitüberschrittenen Transaktionen zu steuern. Einzelheiten bezüglich der Zustände der Zustandsmaschine 151 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung sind in 2 gezeigt. Desgleichen sind Einzelheiten bezüglich der Zustände der Zustandsmaschine 161 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung in 3 gezeigt.
  • Man sollte erkennen, daß, obwohl das veranschaulichte Ausführungsbeispiel zwei Transaktionszeitüberschreitungszustandsmaschinen umfaßt, die vorliegende Erfindung nicht auf eine bestimmte Anzahl von Transaktionszeitüberschreitungszustandsmaschinen beschränkt ist. Demgemäß können Ausführungsbeispiele der vorliegenden Erfindung eine beliebige gewünschte Anzahl von Transaktionszeitüberschreitungszustandsmaschinen, wie sie beispielsweise einer beliebigen Anzahl von Transaktionsklassifizierungen entsprechen können, implementieren. Derartige Zustandsmaschinen können kooperativ arbeiten, um eine Zeitüberschreitungstransaktionsnachverfolgung bezüglich Transaktionen zu liefern, oder sie können unabhängig voneinander arbeiten.
  • Wie bei dem Ausführungsbeispiel der 1 gezeigt ist, kann die Transaktionstabelle 144 eine oder mehrere Zustandsmaschinen, z.B. die Zustandsmaschinen 151 und 161 der vorliegenden Erfindung, umfassen, obwohl Zustandsmaschinen von Ausführungsbeispielen an einer beliebigen geeigneten Stelle angeordnet sein können, um den Zeitüberschreitungsstatus von Transaktionen zu speichern, und auf eine Eingabe hin wirksam sein können, um den Status zu verändern und/oder zu bewirken, daß eine Aktion oder eine Ausgabe für eine beliebige gegebene Veränderung stattfindet. Zeitüberschreitungszähler und eine Zustandsvorrückungslogik, die in 1 als Zeitüberschreitungszähler 153a, 153b und 163 und Zustandsvorrückung 152a, 152b und 162 gezeigt sind, sind bezüglich der bei dem veranschaulichten Ausführungsbeispiel gezeigten Zustandsmaschine vorgesehen. Ein Zeitüberschreitungszähler und eine entsprechende Zustandsvorrückungslogik arbeiten mit einer Zustandsmaschine zusammen, um zeitüberschreitungsnachverfolgte Transaktionen durch eine Anzahl von Zuständen hindurch vorzurücken, wodurch eine gewünschte minimale Zeitüberschreitungsperiode geliefert wird. Register, die hier als Register 154 und 164 gezeigt sind, können mit den Zustandsmaschinen zusammenwirken, um Zustandsinformationen bezüglich jeder Transaktion einer Klassifizierung von Transaktionen, die einer entsprechenden der Zustandsmaschinen zugeordnet sind, zu speichern. Nachdem eine bestimmte Transaktion einen zeitüberschrittenen Zustand erreicht, wie durch den in einem der zuvor erwähnten Register gespeicherten Zustand angegeben werden kann, können ein „Zeitüberschreitung erfaßt"-Block und ein Prioritätscodierungsblock, hier als „Zeitüberschreitung erfaßt"-Block und Prioritätscodierungsblock 165 gezeigt, Informationen bezüglich einer bestimmten Transaktion, die einen zeitüberschrittenen Zustand erreicht hat, zum weiteren Verarbeiten an eine Transaktionsabschlußlogik liefern.
  • Die Transaktionsabschlußlogik 170 des veranschaulichten Ausführungsbeispiels umfaßt eine Entscheidungslogik, die hier eine Entscheidungseinheit 171, einen Multiplexer 172, ein Register 173 und einen Multiplexer 174 umfaßt, um zwischen mehreren Transaktionen, die gelöscht werden sollen, zu entscheiden. Die Entscheidungslogik des veranschaulichten Ausführungsbeispiels wirkt mit einer Anfangsblock/Datenverarbeitung 143 zusammen, um zeitüberschrittene Transaktionen, wie sie durch den „Zeitüberschreitung erfaßt"-Block und den Prioritätscodierungsblock 155 und 165 angegeben werden, aus der Transaktionstabelle 144 zu löschen. Zusätzlich erzwingt die Anfangsblock/Datenverarbeitung 143 eines bevorzugten Ausführungsbeispiels Antworten bezüglich bestimmter Transaktionen, beispielsweise ein Datenpaket bereitzustellen, das gefälschte Daten aufweist, um dadurch einer entsprechenden Systemressource eine erwartete Antwort zu liefern. Man sollte erkennen, daß derartige erzwungene Antworten einem vorbestimmten Protokoll folgen können, beispielsweise einem, das alle Einsen oder ein anderes bekanntes Muster umfaßt, um eine empfangende Systemressource bezüglich eines zeitüberschrittenen Zustands zu warnen.
  • Man sollte erkennen, daß die Anfangsblock/Datenverarbeitung 143 während des Verarbeitens der zuvor erwähnten zeitüberschrittenen Transaktionen weiterhin tatsächliche Transaktionsrückgaben empfangen kann. Überdies können derartige tatsächliche Transaktionsrückgaben einer Transaktion entsprechen, die als durch einen bestimmten des "Zeitüberschreitung erfaßt"-Blocks und des Prioritätscodierungsblocks 155 und 165 zeitüberschritten angegeben wird. Wie aus der nachstehenden Erläuterung deutlicher ersichtlich wird, kann die Anfangsblock-/Datenverarbeitung 143 dementsprechend bestimmte Informationen über zeitüberschrittene Transaktionen außer Kraft setzen oder ignorieren.
  • Im Betrieb gemäß dem veranschaulichten Ausführungsbeispiel gibt ein Prozessor, z.B. einer der Prozessoren 131 und 132, eine neue Transaktion aus, die durch den Prozessorschnittstelleneingang 113 empfangen wird. Vorzugsweise liefert der Prozessorschnittstelleneingang 113 Informationen bezüglich bestimmter neuer Transaktionen (NEW_TXN) und zugeordnete Indexierungsinformationen (INDEX) an die Zustandsmaschine 151. Die Indexierungsinformationen können eine Bezugnahme aufweisen, die einer Position entspricht, an der die Transaktion in der Transaktionstabelle 144 gespeichert werden soll. Wo beispielsweise 64 Transaktionen durch die Transaktionstabelle 144 nachverfolgt werden, kann der Index eine Zahl zwischen Null und 63 sein. Man sollte also erkennen, daß die Zustandsflußdiagramme der 2 einem einzigen Transaktionsindex entsprechen. Demgemäß sind vorzugsweise mehrere derartige Zustandsflüsse bezüglich der Mehrzahl von Transaktionen implementiert, für die ein Transaktionszeitüberschreitungsnachverfolgen durch die Transaktionstabelle 144 des veranschaulichten Ausführungsbeispiels geliefert wird.
  • Wie in 2 zu sehen ist, verfolgen Zustände 202–205 der Zustandsmaschine 151 gemäß einem Ausführungsbeispiel der Erfindung zumindest anfänglich alle Transaktionen nach, für die der Prozessorschnittstelleneingang 113 das Signal NEW_TXN aktiviert, wodurch eine Standardklassifizierung (MEM) bezüglich Transaktionen, die dem Signal NEW_TXN entsprechen, eingerichtet wird. Falls jedoch an irgendeinem Punkt der Transaktionszeitüberschreitungsnachverfolgung der Transaktion, die einem bestimmten Index zugeordnet ist, bestimmt wird, daß die Transaktion einer anderen Klassifizierung (MMIO) angehört, z.B. das Signal SET_MMIO wird durch den Prozessorschnittstelleneingang 113 aktiviert, werden die Zustände 212–215 der Zustandsmaschine 151 eine Transak tionszeitüberschreitungsnachverfolgung bezüglich der Transaktion bereitstellen.
  • Die Transaktionszustände bezüglich eines bestimmten Index, wie in 2 gezeigt, beginnen mit einem Ruhezustand 201. Der Ruhezustand 201 entspricht einem Zustand, bei dem keine Transaktion bezüglich des jeweiligen Index in der Schwebe ist, für den ein Transaktionszeitüberschreitungsnachverfolgen derzeit durch die Zustandsmaschine 151 verwendet wird. Auf eine Aktivierung des Neue-Transaktion-Signals (NEW_TXN) durch den Prozessorschnittstelleneingang 113 hin bewegt sich jedoch die Zustandsmaschine 151 von dem Ruhezustand 201 zu dem Schwebezustand 202, wie in dem Register 154 angegeben sein kann.
  • Ein Transaktionzeitüberschreitungsnachverfolgen einer ersten Transaktionsklassifizierung (MEM) durch die Zustandsmaschine 151 des veranschaulichten Ausführungsbeispiels beginnt bei dem Schwebezustand 202. Dementsprechend bewegt sich die Zustandsmaschine 151 auf eine Aktivierung eines Zeitüberschreitungszählersignals hin, wie es durch die Zustandsvorrückung 152a geliefert wird, von dem Schwebezustand 202 zu einem nachfolgenden MEM-Klassifizierungszeitüberschreitungs-zustand, wie in dem Register 154 angegeben sein kann. Beispielsweise kann der Zeitüberschreitungszähler 153a einen freilaufenden Takt liefern, der von einer vorbestimmten Zahl auf Null abwärts zählt, zurücksetzt und anschließend wieder abwärts zählt. Die vorbestimmte Zahl kann so ausgewählt sein, daß sie ein ausgewähltes MEM-Klassifizierungsabwärtszählintervall liefert. Jedesmal, wenn der Zeitüberschreitungszähler 153a Null erreicht, kann die Zustandsvorrückung 152a ein Zeitüberschreitungszählersignal aktivieren, was der Zustandsmaschine 151 gegenüber einen Ablauf einer weiteren Epoche des Abwärtszählintervalls für eine erste Transaktionsklassifizierung (MEM) angibt.
  • Wenn sie sich bei dem Schwebezustand 202 befindet, bewegt sich die Zustandsmaschine 151 auf eine Aktivierung des Zeitüberschreitungszählersignals durch die Zustandsvorrükkung 152a hin zu dem ersten Zeitüberschreitungszustand 203. Analog dazu bewegt sich die Zustandsmaschine 151, wenn sie sich bei dem ersten Zeitüberschreitungszustand 203 befindet, auf eine Aktivierung des Zeitüberschreitungszählersignals durch die Zustandsvorrückung 152a hin zu dem zweiten Zeitüberschreitungszustand 204. Wenn sie sich bei dem zweiten Zeitüberschreitungszustand 204 befindet, bewegt sich die Zustandsmaschine 151 auf eine Aktivierung des Zeitüberschreitungszählersignals durch die Zustandsvorrückung 152a hin zu einem dritten Zeitüberschreitungszustand 205. Gemäß dem veranschaulichten Ausführungsbeispiel entspricht der dritte Zeitüberschreitungszustand 205 einem Zustand, bei dem die MEM-Transaktion als zeitüberschritten betrachtet wird. Dementsprechend kann der „Zeitüberschreitung erfaßt"- und Prioritätscodierungsblock 155 erfassen, daß eine bestimmte Transaktion in einen dritten Zeitüberschreitungszustand 205 eingetreten ist, und die Transaktion für ein Zeitüberschreitungsverarbeiten durch die Transaktionabschlußlogik 170 prioritätscodieren.
  • Falls der Prozessorschnittstellenausgang 114 zu irgendeinem Zeitpunkt während des Transaktionszeitüberschreitungsnachverfolgens durch die Zustandsmaschine 151 eine Transaktionsrückgabe empfängt und die entsprechende Transaktion löscht, wird vorzugsweise ein Löschsignal bezüglich der Transaktion aktiviert. Auf eine Aktivierung eines derartigen Löschsignals hin, was einen Abschluß der Verarbeitung bezüglich der Transaktion durch die Prozessorschnittstelle 110 angibt, kehrt die Zustandsmaschine 151 für diese Transaktion vorzugsweise zu dem Ruhezustand 201 zurück.
  • Falls der Prozessorschnittstelleneingang 113 zu irgendeinem Zeitpunkt während des Transaktionszeitüberschreitungsnachverfolgens durch die Zustandsmaschine 151 bestimmt, daß eine bestimmte Transaktion einer anderen Klassifizierung an gehört als der Standardklassifizierung, z.B. MMIO statt MEM, aktiviert der Prozessorschnittstelleneingang 113 des veranschaulichten Ausführungsbeispiels das Signal SET_MMIO. Auf eine Aktivierung des SET_MMIO-Signals hin bewegen sich jegliche der Zustände 202–205 der Zustandsmaschine 151 zum Zweck eines Transaktionszeitüberschreitungsnachverfolgens durch die Zustandsmaschine 151 zu dem Schwebezustand 212, wie in dem Register 154 angegeben sein kann.
  • Das Transaktionszeitüberschreitungsnachverfolgen einer zweiten Transaktionsklassifizierung (MMIO) durch die Zustandsmaschine 151 des veranschaulichten Ausführungsbeispiels beginnt bei dem Schwebezustand 212. Dementsprechend bewegt sich die Zustandsmaschine 151 auf eine Aktivierung eines Zeitüberschreitungszählersignals hin, wie es beispielsweise durch die Zustandsvorrückung 152b geliefert wird, von dem Schwebezustand 212 zu einem nachfolgenden MMIO-Klassifizierungszeitüberschreitungszustand, wie er durch das Register 154 angegeben sein kann. Beispielsweise kann der Zeitüberschreitungszähler 153b einen freilaufenden Takt liefern, der von einer vorbestimmten Zahl bis auf Null abwärts zählt, zurücksetzt und anschließend erneut abwärts zählt. Die vorbestimmte Zahl kann so ausgewählt sein, daß sie ein ausgewähltes MMIO-Klassifizierungsabwärtszählintervall liefert. Jedesmal, wenn der Zeitüberschreitungszähler 153b Null erreicht, kann die Zustandsvorrückung 152b ein Zeitüberschreitungszählersignal aktivieren, was der Zustandsmaschine 151 gegenüber einen Ablauf einer weiteren Epoche des Abwärtszählintervalls einer zweiten Transaktionsklassifizierung (MMIO) angibt.
  • Wenn sie sich bei dem Schwebezustand 212 befindet, bewegt sich die Zustandsmaschine 151 auf eine Aktivierung des Zeitüberschreitungszählersignals durch die Zustandsvorrükkung 152b hin zu dem ersten Zeitüberschreitungszustand 213. Analog dazu bewegt sich die Zustandsmaschine 151, wenn sie sich bei dem ersten Zeitüberschreitungszustand 213 befindet, auf eine Aktivierung des Zeitüberschreitungszählersi gnals durch die Zustandsvorrückung 152b hin zu dem zweiten Zeitüberschreitungszustand 214. Wenn sie sich bei dem zweiten Zeitüberschreitungszustand 214 befindet, bewegt sich die Zustandsmaschine 151 auf eine Aktivierung des Zeitüberschreitungszählersignals durch die Zustandsvorrückung 152b hin zu einem dritten Zeitüberschreitungszustand 215. Gemäß dem veranschaulichten Ausführungsbeispiel entspricht der dritte Zeitüberschreitungszustand 215 einem Zustand, bei dem die MMIO-Transaktion als zeitüberschritten betrachtet wird. Dementsprechend kann der „Zeitüberschreitung erfaßt"- und Prioritätscodierungsblock 155 erfassen, daß eine bestimmte Transaktion in einen dritten Zeitüberschreitungszustand 215 eingetreten ist, und die Transaktion für ein Zeitüberschreitungsverarbeiten durch die Transaktionabschlußlogik 170 prioritätscodieren.
  • Falls der Prozessorschnittstellenausgang 114 zu irgendeinem Zeitpunkt während des Transaktionszeitüberschreitungsnachverfolgens durch die Zustandsmaschine 151 eine Transaktionsrückgabe empfängt und die entsprechende Transaktion löscht, wird vorzugsweise ein Löschsignal bezüglich der Transaktion aktiviert. Auf eine Aktivierung eines derartigen Löschsignals hin, was einen Abschluß der Verarbeitung bezüglich der Transaktion durch die Prozessorschnittstelle 110 angibt, kehrt die Zustandsmaschine 151 für diese Transaktion vorzugsweise zu dem Ruhezustand 201 zurück.
  • Aus dem Obigen sollte man erkennen, daß gemäß der vorliegenden Erfindung eine beliebige Anzahl von unterschiedlichen Zeitüberschreitungszählern implementiert werden könnte, beispielsweise um eine gewünschte Anzahl von unterschiedlichen Transaktionstypen zu berücksichtigen. Jeder derartige Zähler kann programmierbar sein, um gewünschte Zeitüberschreitungsperioden zu liefern, wodurch für jede Transaktionsklassifizierung unabhängige und unterschiedliche Zeitüberschreitungsperioden geliefert werden. Beispielsweise kann eine MMIO-Transaktion einem Teil des Systems zugeordnet sein, der eventuell nicht existiert, und somit kann der Zeitüberschreitungszähler 153b programmiert sein, um eine längere Epoche als der Zeitüberschreitungszähler 153a zu liefern, um einen verbesserten Systembetrieb bezüglich MMIO-Transaktionen zu ermöglichen.
  • Man sollte ferner erkennen, daß ein Betrieb des veranschaulichten Ausführungsbeispiels der Zustandsmaschine 151 zumindest zwei vollständige Zeitüberschreitungsepochen liefert, wie sie durch die zugeordneten Zeitüberschreitungszähler definiert sind. Im einzelnen kann, während die Zeitüberschreitungszähler des veranschaulichten Ausführungsbeispiels freilaufend sind, eine bestimmte Transaktion an einem beliebigen Punkt in einer aktuellen Epoche des entsprechenden Zeitüberschreitungszählers in die Schwebezustände beider Transaktionsklassifizierungen der Zustandsmaschine 151 (Zustände 202 und 212) eintreten. Jedoch bewegt sich der Zeitüberschreitungszustand dieser Transaktion, wie sie durch die Zustandsmaschine nachverfolgt wird, erst dann zu nachfolgenden Zuständen (z.B. Zeitüberschreitungszuständen 203–205 bzw. 213–215), wenn eine vollständige Zeitüberschreitungsepoche gemäß dem entsprechenden Zeitüberschreitungszähler verstrichen ist. Da ein Eintreten in den dritten Zeitüberschreitungszustand 205 und 215 des veranschaulichten Ausführungsbeispiels damit verbunden ist, daß die zugeordnete Transaktion zeitüberschritten wird, kann eine Zeitüberschreitungsverarbeitung durch die Transaktionsabschlußlogik 170 unmittelbar nachdem sich eine der beiden Zustandsmaschinen zu diesem abschließenden Zeitüberschreitungszustand bewegt, beginnen. Demgemäß beträgt die Zeitüberschreitungsperiode, die jeder Transaktionsklassifizierung der Zustandsmaschine 151 zugeordnet ist, zumindest das Zweifache der Zeitüberschreitungsepoche, die durch den Zeitüberschreitungszähler 153a bzw. 153b definiert ist.
  • Ausführungsbeispiele der vorliegenden Erfindung erstellen ein Zeitüberschreitungsperiodenfenster, wobei eine minimale Zeitüberschreitungsperiode der doppelten zugeordneten Zeitüberschreitungszählerepoche entspricht und eine maximale Zeitüberschreitungsperiode dem Dreifachen des zugeordneten Zeitüberschreitungszählers entspricht. Als Beispiel einer Situation, bei der eine maximale Zeitüberschreitungsperiode erfahren wird, kann ein Neue-Transaktion-Signal direkt nachdem ein Zeitüberschreitungszähler 153a von einer vorherigen Epoche zurückgesetzt wurde, aktiviert werden. Demgemäß kann eine vollständige Epoche des Zeitüberschreitungszählers 153a verstreichen, bevor sich die Zustandsmaschine 151 von dem Schwebezustand 202 zu dem ersten Zeitüberschreitungszustand 203 bewegt. Die Zeitüberschreitungsverarbeitung durch die Transaktionsabschlußlogik 170 beginnt erst nach drei Epochen des Zeitüberschreitungszählers 153a, wodurch eine maximale Zeitüberschreitungsperiode des Dreifachen des Zeitüberschreitungszählers eingerichtet wird. Dementsprechend wird, falls der Zeitüberschreitungszähler 153a für eine Epoche von 25 msec programmiert ist, eine MEM-Transaktion gemäß dem veranschaulichten Ausführungsbeispiel als zeitüberschritten angesehen, falls durch die Anfangsblock-/Datenverarbeitung 143 irgendwo im Bereich zwischen 50 und 75 msec, nachdem die Transaktion in die Transaktionstabelle 144 eingetragen wurde, keine Transaktionsrückgabe empfangen wurde, je nachdem, wo sich der Zeitüberschreitungszähler 153a bei seinem Abwärtszählen befand, als die Transaktion in die Transaktionstabelle eingetragen wurde.
  • Man sollte erkennen, daß die Zeitüberschreitungszähler 153a und 153b einen Zähler einer relativ hohen Auflösung, beispielsweise in der Größenordnung von 32 Bits, auf ökonomische Weise implementieren können, da beim Liefern eines Transaktionszeitüberschreitungsnachverfolgens gemäß Ausführungsbeispielen der vorliegenden Erfindung sehr wenige derartige Zähler verwendet werden. Ein derartiger Hochauflösungszähler, der bei den Zustandsmaschinen des veranschaulichten Ausführungsbeispiels implementiert ist, ermöglicht eine große Bandbreite von Zeitüberschreitungsperioden. Unter Verwendung eines 32-Bit-Zeitüberschreitungszählers können Ausführungsbeispiele der vorliegenden Erfindung bei spielsweise eine Zeitüberschreitungsperiode im Bereich von 17,2 bis 25,8 Sekunden am oberen Ende der Skala oder eine Zeitüberschreitungsperiode in der Größenordnung von Millisekunden am unteren Ende der Skala liefern.
  • Obwohl bei der Transaktionszeitüberschreitungszustandsmaschine des veranschaulichten Ausführungsbeispiels auf eine gewisse Zählerauflösung verzichtet wird, sollte man erkennen, daß verschiedene Anzahlen von Zeitüberschreitungszuständen, einschließlich unterschiedlicher Anzahlen von Zeitüberschreitungszuständen bezüglich jeder Zustandsmaschine, implementiert sein können, um ein gewünschtes Auflösungsniveau zu liefern. Man sollte jedoch erkennen, daß eine Hinzufügung derartiger Zeitüberschreitungszustände die Gesamtkosten bezüglich jeder Transaktion, die durch eine derartige Zustandsmaschine nachverfolgt wird, insofern erhöhen kann, als eventuell mehr Bits beim Nachverfolgen von Zuständen in den entsprechenden Registern verwendet werden.
  • Das veranschaulichte Ausführungsbeispiel der Zustandsmaschine 151 verwendet zwei Bits für ein Zeitüberschreitungszustandsnachverfolgen (z.B. 00 Schwebezustand, 10 erster Zeitüberschreitungszustand, 01 zweiter Zeitüberschreitungszustand und 11 dritter Zeitüberschreitungszustand), wobei weitere zwei Bits verwendet werden, um einen Nachverfolgungsstatus und die Transaktionsklassifizierung anzugeben (z.B. 10 gibt eine in der Schwebe befindliche Transaktion einer MEM-Klassifizierung an und 11 gibt eine in der Schwebe befindliche Transaktion einer MMIO-Klassifizierung an). Selbstverständlich können, falls gewünscht, auch andere Implementierungen verwendet werden, um ein Nachverfolgen von gewünschten Zeitüberschreitungsinformationen zu liefern.
  • Wie oben erwähnt wurde, erfaßt der „Zeitüberschreitung erfaßt"- und Prioritätscodierungsblock 155, wenn Transaktionen den abschließenden Zeitüberschreitungszustand erreichen, bei dem veranschaulichten Ausführungsbeispiel der Zustandsmaschine 151 die Zustände 205 und 215, den Transakti onszustand und codiert die Transaktion für eine weitere Verarbeitung durch die Transaktionsabschlußlogik 170. Beispielsweise kann der „Zeitüberschreitung erfaßt"- und Prioritätscodierungsblock 155 einen bestimmten, im Register 154 gespeicherten Index identifizieren, der den Zeitüberschreitungszustand erreicht hat, und kann diesen Index zum Erzwingen einer Antwort, Löschen der Transaktion usw. an die Transaktionsabschlußlogik 170 liefern. Jedoch können mehrere der Transaktionen gleichzeitig einen zeitüberschrittenen Zustand erreichen. Deshalb richtet die Prioritätscodierungsschaltungsanordnung des "Zeitüberschreitung erfaßt"-Blocks und Prioritätscodierungsblocks 155 eine Priorität bezüglich jeder derartigen Transaktion ein, um ihre Verarbeitung seriell zu ermöglichen. Beispielsweise können Transaktionen auf der Grundlage ihres zugeordneten Index für eine weitere Verarbeitung priorisiert werden. Zusätzlich oder alternativ dazu können Transaktionen auf der Basis des Transaktionstyps, der anfordernden Systemressource usw. priorisiert werden. Da eine Mehrzahl von Transaktionen als durch mehrere des "Zeitüberschreitung erfaßt"-Blocks und Prioritätscodierungsblocks des veranschaulichten Ausführungsbeispiels gleichzeitig zeitüberschritten angegeben sein können, entscheidet die Entscheidungslogik, beispielsweise die Entscheidungseinheit 171 und der Multiplexer 174 des veranschaulichten Ausführungsbeispiels, eine serielle Lieferung der zeitüberschrittenen Transaktionen an die Anfangsblock-/Datenverarbeitung 143. Selbstverständlich können, falls gewünscht, auch alternative Ausführungsbeispiele eine parallele Verarbeitung von zeitüberschrittenen Transaktionen vorsehen.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung nimmt die Anfangsblock-/Datenverarbeitung 143 ein durch den Multiplexer 174 aktiviertes Transaktionszeitüberschreitungssignal an und fragt eine Transaktionstabelle bezüglich Informationen ab, die die jeweilige Transaktion betreffen. Während beispielsweise die Anfangsblock-/Datenverarbeitung 143 während einer Zeit, in der Transaktionen, von denen be stimmt wird, daß sie zeitüberschritten sind, durch die Entscheidungseinheit 171 entschieden werden, weiterhin Transaktionsrückgaben empfängt, ist es möglich, daß die jeweilige Transaktion zurückgekehrt ist und auf normale Weise durch die Anfangsblock-/Datenverarbeitung verarbeitet wurde. Somit würde die Transaktionstabelle 144 die jeweilige Transaktion nicht mehr als Zeitüberschreitung zeigen, und die Anfangsblock-/Datenverarbeitung 143 kann die Zeitüberschreitungsinformationen verwerfen oder vielleicht eine Aufzeichnung protokollieren, um eine unbefriedigende Rückgabelatenz bezüglich der Transaktion anzugeben. Falls jedoch die Anfrage an die Transaktionstabelle 144 durch die Anfangsblock-/Datenverarbeitung 143 ergibt, daß sich die Transaktion immer noch in einer Zeitüberschreitung befindet, bestimmt die Anfangsblock-/Datenverarbeitung 143 vorzugsweise eine ordnungsgemäße Maßnahme, die zu ergreifen ist, beispielsweise welche Art von Rückgabe an den anfordernden Prozessor gesendet werden soll.
  • Falls beispielsweise in dem System eine Hardware vorliegt, die nicht existiert, kann die Transaktion als MMIO-Transaktion klassifiziert werden, und die Tatsache, daß eine Zeitüberschreitung auftrat, wird nicht als kritisch betrachtet werden, weshalb vorgeschlagen wird, daß ein vorbestimmtes Rückgabepaket, das beispielsweise alle Einsen umfaßt, durch die Anfangsblock-/Datenverarbeitung 143 gezwungen wird, den anfordernden Prozessor von dem Fehlen der bestimmten Hardware zu benachrichtigen. Falls die Transaktion Daten von einem Speicher anforderte, der in einer anderen Domain angeordnet ist, kann eine Zeitüberschreitung zu einer Bestimmung führen, daß ein schwerwiegenderer Fehler mit einem Flag markiert werden soll, jedoch kann die Anfangsblock-/Datenverarbeitung 143 trotzdem noch ein Rückgabepaket, das beispielsweise alle Einsen umfassen kann, zwingen, wieder eine weitere Verarbeitung bezüglich des anfordernden Prozessors zu ermöglichen. Falls jedoch die Transaktion Daten von einem Speicher anforderte, der in einer Domain angeordnet ist, die bezüglich der Prozessorschnittstelle 110 als lokal erachtet wird, kann ein kritischer Fehler mit einem Flag markiert werden, und die Anfangsblock-/Datenverarbeitung 143 erzwingt vielleicht keine Rückgabe oder kann ein Paket zurückgeben, um die Domain auf elegante Weise zum Absturz zu bringen und/oder um Aspekte des Systems zu initialisieren. Selbstverständlich sind die obigen Maßnahmen lediglich beispielhaft, und gemäß der Erfindung können beliebige geeignete Maßnahmen implementiert werden, ob es sich um ein Erzwingen von Rückgaben, ein Markieren von Fehlern mit Flags, ein Implementieren von Neuversuchen usw. und/oder um Kombinationen derselben handelt.
  • Nach dem Verarbeiten einer bestimmten Transaktion durch die Anfangsblock-/Datenverarbeitung 143 wird die Transaktionstabelle 144 vorzugsweise aktualisiert, um den abgeschlossenen Status der Transaktion widerzuspiegeln. Nach dem Erzwingen einer Rückgabe oder dem auf andere Weise erfolgenden Abschließen einer Verarbeitung bezüglich einer bestimmten Transaktion liefert die Anfangsblock-/Datenverarbeitung 143 vorzugsweise ein Löschen-Signal bezüglich der Zustandsmaschine 151, um die Zustandsmaschine zu veranlassen, sich von dem zeitüberschrittenen Zustand (dritter Zeitüberschreitungszustand 205 bzw. dritter Zeitüberschreitungszustand 215) zu dem Ruhezustand 201 zu bewegen. Danach ist die Zustandsmaschine bereit, eine Transaktionszeitüberschreitungsnachverfolgung bezüglich einer weiteren Transaktion aufzurufen, der anschließend der nun gelöschte Index zugewiesen wird.
  • Unter Bezugnahme auf 3 ist eine weitere Zustandsmaschine, die gemäß einem Ausführungsbeispiel der vorliegenden Erfindung vorgesehen ist, gezeigt. Im einzelnen ist in 3 die Zustandsmaschine 161 gezeigt, wie sie Transaktionen zugeordnet sein kann, die als Multicast (MC) klassifiziert sind. Die Zustandsmaschine 161 eines bevorzugten Ausführungsbeispiels ist in der Transaktionstabelle 114 angeordnet, um ein Zeitüberschreitungsnachverfolgen derartiger Multicast-Transaktionen zu ermöglichen, und liefert In formationen über zeitüberschrittene Transaktionen an den Multiplexer 174 der Entscheidungslogik der Transaktionsabschlußlogik 170 im wesentlichen wie es oben in bezug auf die Zustandsmaschine 151 beschrieben wurde. Man sollte erkennen, daß die Zustandsvorrückung 162, der Zeitüberschreitungszähler 163, die Register 164 und der „Zeitüberschreitung erfaßt"- und Prioritätscodierungsblock 165 eines bevorzugten Ausführungsbeispiels bezüglich der Zustandsmaschine 161 im wesentlichen funktionieren wie entsprechende Komponenten (z.B. Zustandsvorrückung 152a, Zeitüberschreitungszähler 153a, Register 154 und „Zeitüberschreitung erfaßt"-Block und ein Prioritätscodierungsblock 155), die oben in bezug auf die Zustandsmaschine 151 beschrieben wurden.
  • Multicast-Transaktionen können Mehrpunktpakete liefern, die auf eine Mehrzahl von Systemressourcen gerichtet sind, und nicht auf eine einzige Systemressource, wie es für viele Transaktionen üblich ist. Beispielsweise kann ein Prozessorbus in einer der Zellen eines Systems ein Cache-Synchronisierungspaket ausgeben, das an eine Mehrzahl von Systemressourcen, z.B. alle Prozessoren in einer Schutzdomain (d.h. alle Zellen, die unter der Steuerung eines bestimmten Betriebssystems wirksam sind) gesendet werden soll. Jeder Prozessorbus einer Schutzdomain müßte dieses Cache-Synchronisierungssignal sehen, um eine Cache-Synchronisierung durchzuführen. Dementsprechend kann eine Prozessorschnittstelle im normalen Betrieb eine derartige Multicast-Paketanforderung von einem zugeordneten Prozessor empfangen und sie an alle Zellen senden, die sich in dieser Schutzdomain befinden, wobei sie eine Bestätigung für jedes gesandte Anforderungspaket erwartet. Jedoch kann eine Zelle mehrere Prozessoren und/oder mehrere Busse umfassen. Obwohl auf die Multicast-Paketcachesynchronisierung letztlich durch eine Mehrzahl von Systemressourcen in einer einzigen Zelle eingewirkt wird, kann die anfordernde Systemressource von jeder Zelle lediglich eine einzige Bestätigung erwarten. Dementsprechend können derartigen Multicast- Transaktionen mehrere Transaktionsrückgaben zugeordnet sein, wobei das letzte erwartete dieser Ergebnisse in einer Rückgabe an eine anfordernde Systemressource ausgegeben wird.
  • Der Zeitüberschreitungszähler 163 und die Zustandsvorrückungslogik 162, die wie oben unter Bezugnahme auf die Zustandsmaschine 151 beschrieben wirksam sind, können bezüglich der Zustandsmaschine 161 vorgesehen sein. Ein derartiger Zeitüberschreitungszähler und eine entsprechende Zustandsvorrückungslogik können mit der Zustandsmaschine 161 zusammenwirken, um zeitüberschreitungsnachverfolgte Transaktionen durch eine Anzahl von Zuständen vorzurücken, wodurch eine gewünschte minimale Zeitüberschreitungsperiode geliefert wird. Register 164, die wie oben bezüglich der Zustandsmaschine 151 beschrieben wirksam sind, können mit der Zustandsmaschine 161 zusammenwirken, um Zustandsinformationen bezüglich jeder Transaktion einer Klassifizierung von Transaktionen, die dieser Zustandsmaschine zugeordnet sind, zu speichern. Nachdem eine bestimmte Transaktion einen zeitüberschrittenen Zustand erreicht hat, wie durch den in einem zuvor erwähnten Register gespeicherten Zustand angegeben sein kann, kann der „Zeitüberschreitung erfaßt"- und Prioritätscodierungsblock 165, der wie oben bezüglich der Zustandsmaschine 151 beschrieben wirksam ist, Informationen bezüglich einer bestimmten Transaktion, die einen zeitüberschrittenen Zustand erreicht hat, zum Zweck einer weiteren Verarbeitung an die Transaktionsabschlußlogik 170 liefern.
  • Bei einem Betrieb gemäß dem veranschaulichten Ausführungsbeispiel gibt ein Prozessor, z.B. einer der Prozessoren 131 und 132, eine Multicast-Transaktion aus, die durch den Prozessorschnittstelleneingang 113 empfangen wird. Die Prozessorschnittstelle 113 aktiviert ein Startsignal, das angibt, daß eine Multicast-Transaktion dabei ist, gestartet zu werden, und eine Logik in derselben bestimmt jede zugeordnete Ressource, die die Multicast-Transaktion bedienen wird.
  • Die Transaktion stellt bezüglich eines bestimmten Transaktionsindex, wie er in 3 gezeigt ist, fest, mit dem Ruhezustand 301 zu beginnen. Der Ruhezustand 301 entspricht einem Nichtvorhandensein einer in der Schwebe befindlichen Multicast-Transaktion bezüglich des bestimmten Index, für das das Transaktionszeitüberschreitungsnachverfolgen derzeit durch die Zustandsmaschine 161 verwendet wird. Auf eine Aktivierung des Startsignals durch den Prozessorschnittstelleneingang 113 hin bewegt sich die Zustandsmaschine 161 jedoch von dem Ruhezustand 301 zu dem gültigen Zustand 302.
  • Eine Transaktionszeitüberschreitungsnachverfolgung der Multicast-Transaktionsklassifizierung (MC) durch die Zustandsmaschine 161 des veranschaulichten Ausführungsbeispiels beginnt bei dem gültigen Zustand 302. Dementsprechend bleibt das veranschaulichte Ausführungsbeispiel in dem gültigen Zustand 302, während zugeordnete Multicast-Transaktionen gestartet werden. Die Zustandsmaschine 161 bewegt sich auf eine Aktivierung eines Zeitüberschreitungszählersignals hin von dem gültigen Zustand 302 zu einem anschließenden MC-Klassifizierungszeitüberschreitungszustand. Beispielsweise kann ein zugeordneter Zeitüberschreitungszähler einen freilaufenden Takt liefern, der von einer vorbestimmten Zahl auf Null abwärts zählt, zurücksetzt und anschließend wieder abwärts zählt. Die vorbestimmte Zahl kann so ausgewählt sein, daß sie ein ausgewähltes MC-Klassifizierungsabwärtszählintervall liefert. Jedesmal, wenn der Zeitüberschreitungszähler Null erreicht, kann ein zugeordneter Zustandsvorrückungsblock ein Zeitüberschreitungszählersignal aktivieren, was der Zustandsmaschine 161 gegenüber einen Ablauf einer weiteren Epoche des Abwärtszählintervalls angibt.
  • Wenn sich die Zustandsmaschine bei dem gültigen Zustand 302 befindet, bewegt sie sich auf eine Aktivierung des Zeitüberschreitungszählersignals hin zu dem ersten Zeitüberschreitungszustand 303. Wenn sie sich bei dem ersten Zeit überschreitungszustand 303 befindet, bewegt sich die Zustandsmaschine 161 analog dazu auf eine Aktivierung des Zeitüberschreitungszählersignals hin zu dem zweiten Zeitüberschreitungszustand 304, und wenn sie sich bei dem zweiten Zeitüberschreitungszustand 304 befindet, bewegt sich die Zustandsmaschine 161 auf eine Aktivierung des Zeitüberschreitungszählersignals hin zu dem dritten Zeitüberschreitungszustand 305. Gemäß dem veranschaulichten Ausführungsbeispiel entspricht der dritte Zeitüberschreitungszustand 305 einem Zustand, bei dem die MC-Transaktion als zeitüberschritten zu betrachten ist. Entsprechend kann die "Zeitüberschreitung erfaßt"- und Prioritätscodierungslogik erfassen, daß eine bestimmte Transaktion in den dritten Zeitüberschreitungszustand 305 eingetreten ist, und die Transaktion für eine Zeitüberschreitungsverarbeitung durch die Transaktionsabschlußlogik 170 prioritätscodieren.
  • Da der Multicast-Transaktion eine Mehrzahl von Transaktionsanforderungen zugeordnet ist, liefert ein Ausführungsbeispiel der Zustandsmaschine 161 ein Bit für jede derartige Transaktion. Dort, wo der Prozessorschnittstelleneingang 113 beispielsweise bestimmt, daß eine Multicast-Transaktion bezüglich vier Systemressourcen, z.B. vier Prozessoren einer Zelle, gestartet werden soll, kann jedes von vier Bits auf Eins eingestellt werden, um jeder der vier Systemressourcen gegenüber die gestarteten Transaktionen anzugeben. Während Transaktionsrückgaben, die der Multicast-Transaktion zugeordnet sind, zu dem Prozessorschnittstellenausgang 114 zurückgegeben werden, können dem Prozessorschnittstelleneingang 113 Informationen bezüglich der Systemressource, die eine Transaktionsantwort liefert, bereitgestellt werden, und das entsprechende Nachverfolgungsbit kann auf Null geändert werden. Obwohl eine oder mehrere Multicast-Rückgaben empfangen werden können, setzt die Zustandsmaschine 161 des veranschaulichten Ausführungsbeispiels den Zeitüberschreitungsstatus erst dann zurück, wenn alle derartigen Transaktionsbits eine Transaktionsrückgabe widerspiegeln, wodurch angegeben wird, daß die Multicast-Transaktion abgeschlossen ist.
  • Man sollte erkennen, daß die Zustandsmaschine 161, wie sie oben beschrieben wurde, ein Beispiel einer Zustandsmaschine ist, die eine Transaktionszeitüberschreitungsnachverfolgung bezüglich einer bestimmten Transaktionsklassifizierung unabhängig von der Operation irgendeiner anderen Transaktionszeitüberschreitungsnachverfolgungszustandsmaschine des veranschaulichten Ausführungsbeispiels liefert. Obwohl die Zustandsmaschinen 151 und 161 des veranschaulichten Ausführungsbeispiels in der Darstellung beide als Teile der Transaktionstabelle 144 angeordnet sind, sollte man erkennen, daß Zustandsmaschinen, die gemäß Ausführungsbeispielen der vorliegenden Erfindung verwendet werden, in einem anderen Bereich des Systems als dem gezeigten oder in einem anderen Bereich als dem der anderen Zustandsmaschinen, die gemäß der vorliegenden Erfindung wirksam sind, angeordnet sein können. Desgleichen beinhalten die Zustandsmaschinen 151 und 161 des veranschaulichten Ausführungsbeispiels in der Darstellung zwar einen ersten, einen zweiten und einen dritten Zeitüberschreitungszustand, jedoch können Zustandsmaschinen der vorliegenden Erfindung eine beliebige Anzahl von Zeitüberschreitungszuständen verwenden. Beispielsweise können unterschiedliche Zustandsmaschinen eines Ausführungsbeispiels der vorliegenden Erfindung jeweils unterschiedliche Anzahlen von Zeitüberschreitungszuständen verwenden, falls gewünscht. Dementsprechend sollte man ohne weiteres erkennen, daß Ausführungsbeispiele der vorliegenden Erfindung eine Vielzahl von Konfigurationen beim Liefern eines Transaktionszeitüberschreitungsnachverfolgens implementieren können.

Claims (27)

  1. Verfahren zum Bestimmen von Zeitüberschreitungen bezüglich einer Mehrzahl von Transaktionen, wobei das Verfahren folgende Schritte umfaßt: Verwenden eines ersten Zeitüberschreitungstaktes (153a) zum gleichzeitigen Bestimmen von Zeitüberschreitungszuständen (203–205) bezüglich eines ersten Satzes von Transaktionen der Mehrzahl von Transaktionen; und Bestimmen, wann Transaktionen des ersten Satzes von Transaktionen einen zeitüberschrittenen Zustand (205) der Zeitüberschreitungszustände erreicht haben.
  2. Verfahren gemäß Anspruch 1, bei dem der erste Zeitüberschreitungstakt Epochen eines ersten Zeitüberschreitungsintervalls liefert, wobei das Verfahren folgende Schritte umfaßt: Bewegen eines Zustands, der einer Transaktion des ersten Satzes von Transaktionen zugeordnet ist, zu einem ersten Zeitüberschreitungszustand (202), ungeachtet eines Zustandes einer Epoche des ersten Zeitüberschreitungsintervalls; und Bewegen des Zustandes, der der Transaktion zugeordnet ist, zu dem zeitüberschrittenen Zustand nach Ablauf einer Epoche des ersten Zeitüberschreitungsintervalls.
  3. Verfahren gemäß Anspruch 1 oder 2, das ferner folgenden Schritt umfaßt: Priorisieren der Transaktionen des ersten Satzes von Transaktionen, die den zeitüberschrittenen Zustand erreicht haben, für eine serielle Zeitüberschreitungsverarbeitung.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, das ferner folgenden Schritt umfaßt: Zeitüberschreitungsverarbeiten (170) der Transaktionen des ersten Satzes von Transaktionen, die den zeitüberschrittenen Zustand erreicht haben, um dadurch die Transaktionen aus Systemressourcen zu löschen.
  5. Verfahren gemäß Anspruch 4, bei dem das Zeitüberschreitungsverarbeiten folgenden Schritt umfaßt: Bestimmen, ob eine bestimmte der Transaktionen, die derzeit zeitüberschreitungsverarbeitet werden, normal abgeschlossen wurde, nachdem die bestimmte Transaktion den zeitüberschrittenen Zustand erreicht hat.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, das ferner folgende Schritte umfaßt: Verwenden eines zweiten Zeitüberschreitungstaktes (153b) zum gleichzeitigen Bestimmen von Zeitüberschreitungszuständen (213–215) bezüglich eines zweiten Satzes von Transaktionen der Mehrzahl von Transaktionen; und Bestimmen, wann Transaktionen des zweiten Satzes von Transaktionen einen zeitüberschrittenen Zustand (215) der Zeitüberschreitungszustände erreicht haben.
  7. Verfahren gemäß Anspruch 6, bei dem der erste Zeitüberschreitungstakt Epochen eines ersten Zeitüberschreitungsintervalls liefert und der zweite Zeitüberschreitungstakt Epochen eines zweiten Zeitüberschreitungsintervalls liefert, wobei das erste und das zweite Zeitüberschreitungsintervall unterschiedlich sind.
  8. Verfahren gemäß Anspruch 6 oder 7, das ferner folgenden Schritt umfaßt: Klassifizieren von Transaktionen für eine Zuordnung zu dem ersten Satz von Transaktionen und dem zweiten Satz von Transaktionen.
  9. Verfahren gemäß Anspruch 8, bei dem Transaktionen standardmäßig dem ersten Satz von Transaktionen zugeordnet sind und bei dem das Klassifizieren von Transaktionen bestimmte Transaktionen zu dem zweiten Satz von Transaktionen bewegt.
  10. System zum Bestimmen von Zeitüberschreitungen bezüglich einer Mehrzahl von Transaktionen, wobei das System folgende Merkmale umfaßt: einen ersten Zeitüberschreitungszähler (153a), der ein Zeitüberschreitungsintervall einer ersten vorbestimmten Länge liefert; und eine erste Mehrzahl von Zustandsregistern (154), wobei jedes einer entsprechenden Transaktion der Mehrzahl von Transaktionen zugeordnet ist, wobei erste Zustände (202–205) der ersten Mehrzahl von Zustandsregistern gemäß dem ersten Zeitüberschreitungsintervall des ersten Zeitüberschreitungszählers zu einem nächsten Zustand vorgerückt werden und wobei ein bestimmter Zustand der ersten Zustände, zu dem gemäß den Zeitüberschreitungsintervallen vorgerückt wird, einem zeitüberschrittenen Zustand entspricht.
  11. System gemäß Anspruch 10, bei dem der erste Zeitüberschreitungszähler ein Zählen mit einer relativ hohen Auflösung liefert.
  12. System gemäß Anspruch 11, bei dem das Zählen mit einer relativ hohen Auflösung ein Zählen mit zumindest 32 Bits umfaßt.
  13. System gemäß einem der Ansprüche 10 bis 12, bei dem die ersten Zustände der ersten Mehrzahl von Zustandsregistern einen anfänglichen Zustand umfassen, in den ungeachtet eines Status des Zeitüberschreitungsintervalls des ersten Zeitüberschreitungszählers eingetreten wird und der gemäß dem Zeitüberschreitungsintervall des ersten Zeitüberschreitungszählers zu einem nächsten Zustand vorgerückt wird, um dadurch ein Zeitüberschreitungsunsicherheitsfenster bezüglich des zeitüberschrittenen Zustands zu liefern.
  14. System gemäß Anspruch 13, bei dem das Zeitüberschreitungsunsicherheitsfenster eine Funktion des Zeitüberschreitungsintervalls des ersten Zeitüberschreitungszählers ist.
  15. System gemäß Anspruch 14, bei dem das Zeitüberschreitungsunsicherheitsfenster einen Zeitüberschreitungsperiodenbereich von dem Doppelten des Zeitüberschreitungsintervalls des ersten Zeitüberschreitungszählers bis zu dem Dreifachen des Zeitüberschreitungsintervalls des ersten Zeitüberschreitungszählers definiert.
  16. System gemäß einem der Ansprüche 10 bis 15, das ferner folgendes Merkmal umfaßt: eine Prioritätscodierungslogik (155), die wirksam ist, um eine weitere Verarbeitung bezüglich einer Mehrzahl von Transaktionen, die gleichzeitig einen zeitüberschrittenen Zustand erreicht haben, zu priorisieren.
  17. System gemäß einem der Ansprüche 10 bis 16, das ferner folgendes Merkmal aufweist: einen zweiten Zeitüberschreitungszähler (153b), der ein Zeitüberschreitungsintervall einer zweiten vorbestimmten Länge liefert, wobei zweite Zustände (212–215) der ersten Mehrzahl von Zustandsregistern gemäß dem Zeitüberschreitungsintervall des zweiten Zeitüberschreitungszählers zu einem nächsten Zustand vorgerückt werden und wobei ein bestimmter Zustand der zweiten Zustände, zu dem gemäß dem zweiten Zeitüberschreitungsintervall vorgerückt wird, einem zeitüberschrittenen Zustand entspricht.
  18. System gemäß Anspruch 17, bei dem das Zeitüberschreitungsintervall des ersten Zeitüberschreitungszählers eine andere vorbestimmte Länge aufweist als das Zeitüberschreitungsintervall des zweiten Zeitüberschreitungszählers.
  19. System gemäß Anspruch 17 oder 18, bei dem der erste Zeitüberschreitungszähler und die ersten Zustände einer ersten Klassifizierung von Transaktionen zugeordnet sind und der zweite Zeitüberschreitungszähler und die zweiten Zustände einer zweiten Klassifizierung von Transaktionen zugeordnet sind.
  20. System gemäß einem der Ansprüche 17 bis 19, bei dem die ersten Zustände und die zweiten Zustände kooperativ verwendet werden, um einen zeitüberschrittenen Zustand bezüglich einer einzelnen Transaktion zu bestimmen.
  21. System gemäß einem der Ansprüche 17 bis 20, das ferner folgendes Merkmal umfaßt: eine Entscheidungslogik, die wirksam ist, um ein weiteres Verarbeiten bezüglich Transaktionen, die einen zeitüberschrittenen Zustand erreicht haben, der den ersten Zuständen zugeordnet ist, und bezüglich Transaktionen, die einen zeitüberschrittenen Zustand er reicht haben, der den zweiten Zuständen zugeordnet ist, zu entscheiden.
  22. System zum Bestimmen von Zeitüberschreitungen bezüglich einer Mehrzahl von Transaktionen, wobei das System folgendes Merkmal umfaßt: eine erste Zustandsmaschine, die zumindest einen Schwebezustand, einen ersten Zeitüberschreitungszustand und einen zeitüberschrittenen Zustand für jede eines ersten Satzes von Transaktionen der Mehrzahl von Transaktionen aufweist, wobei die erste Zustandsmaschine wirksam ist, um Transaktionen des ersten Satzes von Transaktionen ungeachtet des Status eines ersten Zeitüberschreitungszählers zu dem Schwebezustand zu sequenzieren, und wirksam ist, um die Transaktionen des ersten Satzes von Transaktionen gemäß dem Ablauf des ersten Zeitüberschreitungszählers von dem Schwebezustand zu dem ersten Zeitüberschreitungszustand zu sequenzieren, wobei die Transaktionen des ersten Satzes von Transaktionen gemäß dem Ablauf des ersten Zeitüberschreitungszählers in den zeitüberschrittenen Zustand eintreten.
  23. System gemäß Anspruch 22, bei dem die erste Zustandsmaschine ferner folgendes Merkmal umfaßt: einen zweiten Zeitüberschreitungszustand, wobei die Zustandsmaschine wirksam ist, um die Transaktionen des ersten Satzes von Transaktionen gemäß dem Ablauf des ersten Zeitüberschreitungszählers von dem ersten Zeitüberschreitungszustand zu dem zweiten Zeitüberschreitungszustand zu sequenzieren, und wirksam ist, um die Transaktionen des ersten Satzes von Transaktionen gemäß dem Ablauf des ersten Zeitüberschreitungszählers von dem zweiten Zeitüberschreitungszustand zu dem zeitüberschrittenen Zustand zu sequenzieren.
  24. System gemäß Anspruch 23, bei dem die erste Zustandsmaschine ein Zeitüberschreitungsfenster liefert, das eine Zeitüberschreitungsunsicherheit von einer Periode des ersten Zeitüberschreitungszählers aufweist.
  25. System gemäß einem der Ansprüche 22 bis 24, das ferner folgendes Merkmal umfaßt: eine Prioritätslogik, die eine Prioritätshierarchie bezüglich Transaktionen, die den zeitüberschrittenen Zustand erreicht haben, einrichtet.
  26. System gemäß einem der Ansprüche 22 bis 25, bei dem die erste Zustandsmaschine ferner zumindest einen Schwebezustand, einen ersten Zeitüberschreitungszustand und einen zeitüberschrittenen Zustand für jede eines zweiten Satzes von Transaktionen der Mehrzahl von Transaktionen aufweist, wobei die erste Zustandsmaschine wirksam ist, um Transaktionen des zweiten Satzes von Transaktionen ungeachtet des Status eines zweiten Zeitüberschreitungszählers zu dem Schwebezustand des zweiten Satzes von Transaktionen zu sequenzieren, und wirksam ist, um die Transaktionen des zweiten Satzes von Transaktionen gemäß dem Ablauf des zweiten Zeitüberschreitungszählers von dem Schwebezustand zu dem ersten Zeitüberschreitungszustand des zweiten Satzes von Transaktionen zu sequenzieren, wobei die Transaktionen des zweiten Satzes von Transaktionen gemäß dem Ablauf des zweiten Zeitüberschreitungszählers in den zeitüberschrittenen Zustand des zweiten Satzes von Transaktionen eintreten.
  27. System gemäß einem der Ansprüche 22 bis 26, das ferner folgendes Merkmal umfaßt: eine zweite Zustandsmaschine, die zumindest einen Schwebezustand, einen ersten Zeitüberschreitungszustand und einen zeitüberschrittenen Zustand für jede eines dritten Satzes von Transaktionen der Mehrzahl von Transaktionen aufweist, wobei die zweite Zustandsmaschine wirksam ist, um Transaktionen des dritten Satzes von Transaktionen ungeachtet des Status eines dritten Zeitüberschreitungszählers zu dem Schwebezustand zu sequenzieren, und wirksam ist, um die Transaktionen des dritten Satzes von Transaktionen gemäß dem Ablauf des dritten Zeitüberschreitungszählers von dem Schwebezustand zu dem ersten Zeitüberschreitungszustand zu sequenzieren, wobei die Transaktionen des dritten Satzes von Transaktionen gemäß dem Ablauf des dritten Zeitüberschreitungszählers in den zeitüberschrittenen Zustand eintreten.
DE102004003102A 2003-05-09 2004-01-21 System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung Withdrawn DE102004003102A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/435127 2003-05-09
US10/435,127 US7219268B2 (en) 2003-05-09 2003-05-09 System and method for determining transaction time-out

Publications (1)

Publication Number Publication Date
DE102004003102A1 true DE102004003102A1 (de) 2004-12-09

Family

ID=33449691

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004003102A Withdrawn DE102004003102A1 (de) 2003-05-09 2004-01-21 System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung

Country Status (2)

Country Link
US (1) US7219268B2 (de)
DE (1) DE102004003102A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310751B2 (en) * 2004-02-20 2007-12-18 Hewlett-Packard Development Company, L.P. Timeout event trigger generation
US7418625B2 (en) * 2004-09-09 2008-08-26 Broadcom Corporation Deadlock detection and recovery logic for flow control based data path design
US7774562B2 (en) * 2004-09-17 2010-08-10 Hewlett-Packard Development Company, L.P. Timeout acceleration for globally shared memory transaction tracking table
US7480837B2 (en) * 2005-06-01 2009-01-20 Freescale Semiconductor, Inc. Method of monitoring timeout conditions and device therefor
US7490327B1 (en) * 2008-05-15 2009-02-10 International Business Machines Corporation System and method for programmatic distributed transaction commit prioritization mechanism
US7610215B1 (en) * 2008-07-31 2009-10-27 Bank Of America Corporation Mode switching to provide security for cash handling device
JP5335552B2 (ja) * 2009-05-14 2013-11-06 キヤノン株式会社 情報処理装置、その制御方法、及びコンピュータプログラム
US8745245B1 (en) 2011-09-15 2014-06-03 Google Inc. System and method for offline detection
US10002098B2 (en) 2014-10-09 2018-06-19 Netapp, Inc. Methods and systems for sharing information between processors
WO2016057217A1 (en) * 2014-10-09 2016-04-14 Netapp, Inc. Methods and systems for sharing information between processors
US10380566B2 (en) 2015-10-09 2019-08-13 Diebold Nixdorf Incorporated Automated banking machine and related methods
WO2017070707A1 (en) * 2015-10-24 2017-04-27 Diebold, Incorporated Automated transaction machine
JP2018041165A (ja) * 2016-09-05 2018-03-15 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US10585696B2 (en) 2016-11-08 2020-03-10 International Business Machines Corporation Predicting transaction outcome based on artifacts in a transaction processing environment
US10592322B1 (en) 2017-06-27 2020-03-17 Amazon Technologies, Inc. Adaptive timeout mechanism

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649096A (en) 1993-11-22 1997-07-15 Unisys Corporation Bus request error detection
US5659720A (en) 1995-04-27 1997-08-19 Emulex Corporatioln Computer control device for managing a timer array
US6473826B1 (en) 1999-04-20 2002-10-29 Adaptec, Inc. PCI delayed transaction time out counter and associated methods
US6526433B1 (en) 1999-12-15 2003-02-25 International Business Machines Corporation Adaptive timeout value setting for distributed computing environment (DCE) applications
US6807547B2 (en) * 2000-07-10 2004-10-19 Sun Microsystems, Inc. Method and apparatus for implementing timers for enterprise javabean components
US7330885B2 (en) 2001-10-25 2008-02-12 Sun Microsystems, Inc. Method and apparatus for managing data time-outs
US6892331B2 (en) * 2002-01-17 2005-05-10 International Business Machines Corporation Method and system for error detection in a managed application environment

Also Published As

Publication number Publication date
US20040237006A1 (en) 2004-11-25
US7219268B2 (en) 2007-05-15

Similar Documents

Publication Publication Date Title
DE3048365C2 (de)
DE3300261C2 (de)
DE2856483C2 (de)
DE3300260C2 (de)
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE3606211A1 (de) Multiprozessor-computersystem
DE102004003102A1 (de) System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung
DE2629459C2 (de)
DE19781620B4 (de) Bus-Patcher
DE602005004508T2 (de) Speichersystem und Speichersteuerverfahren
DE3131341A1 (de) "pufferspeicherorganisation"
DE3127349A1 (de) Signalverarbeitungssystem mit verteilten elementen
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE2722124A1 (de) Anordnung zum feststellen des prioritaetsranges in einem dv-system
DE102009054637A1 (de) Verfahren zum Betreiben einer Recheneinheit
DE3911721C2 (de)
DE2611975A1 (de) Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis
DE60125854T2 (de) Abnehmbare elektronische Vorrichtung zur Erhöhung der Funktionalität eines Hauptprozessors und Steuerungsverfahren dazu
WO2015184557A1 (de) Börsenhandelsplattform
DE112004001564T5 (de) Low-contention Lock
DE102015105234B4 (de) Dienstanforderungsunterbrechungsrouter mit gemeinsam verwendeter Schlichtungseinheit
DE102005024673A1 (de) Einrichtung, Verfahren und Computerprodukt für Plattenverwaltung
EP0584512B1 (de) Verfahren zum zeitlichen Überwachen einer Programmabarbeitung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130801