DE69621212T2 - Busfehlerverarbeiter in einem Zweifachbussystem - Google Patents

Busfehlerverarbeiter in einem Zweifachbussystem

Info

Publication number
DE69621212T2
DE69621212T2 DE69621212T DE69621212T DE69621212T2 DE 69621212 T2 DE69621212 T2 DE 69621212T2 DE 69621212 T DE69621212 T DE 69621212T DE 69621212 T DE69621212 T DE 69621212T DE 69621212 T2 DE69621212 T2 DE 69621212T2
Authority
DE
Germany
Prior art keywords
bus
pci
error
interrupt
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69621212T
Other languages
English (en)
Other versions
DE69621212D1 (de
Inventor
Bassam N. Elkhoury
Brian S. Hausauer
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.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of DE69621212D1 publication Critical patent/DE69621212D1/de
Application granted granted Critical
Publication of DE69621212T2 publication Critical patent/DE69621212T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/0745Error 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 in an input/output transactions management context
    • 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/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

  • Während der letzten zehn Jahre haben bemerkenswerte Zunahmen des Hardware-Preis/Leistungsverhältnisses eine verblüffende Verschiebung sowohl in technischen als auch Bürocomputerumgebungen bewirkt. Verteilte Workstation-Server-Netzwerke ersetzen einmal vorherrschende Terminals, die gewöhnlich an Großrechner und Minicomputer angeschlossen waren. In einem Computernetzwerk wird jede einzelne Workstation eine Benutzers als ein Client-Computer bezeichnet, während die Maschinen, die gemeinsam genutzte Betriebsmittel wie Drucker, einen Datenspeicher und einen Kommunikationsdienst bereitstellen, als Daten- Server oder einfach Server bezeichnet werden. Der Server ist mit einem lokalen Netzwerk (LAN) verbunden, das mit den Client- Computern verbunden ist. Client- und Server-Computer werden alle als Knoten im Netzwerk betrachtet. Client-Knoten verwenden Standardübertragungsprotokolle, um Dienstanforderungen und Antworten mit Server-Knoten auszutauschen. Der Server weist eine Massenspeichervorrichtung auf, typischerweise eine Magnetfestplatte, die mit einem Netzwerk verbunden ist und als ein zentrales Betriebsmittel zur Unterstützung mehrerer Benutzer über das Netzwerk genutzt wird. Die Information, die typischerweise auf einem solchen System gespeichert ist, besteht aus binären Computerdaten, wie ausführbaren Programmen und entsprechenden Daten.
  • Die Zunahme der Client-Workstation-Leistung um mehr als einen Faktor zehn in den letzten Jahren hat es ermöglicht, dass leistungsfähigere Anwendungssoftware verwendet wird, mit einem entsprechen gefräßigen Appetit auf Daten vom LAN. Ferner sind Client-Computer, auf denen Mehrprogramm-Betriebssysteme, wie UNIX, Windows 95 oder Windows NT laufen, in der Lage, mehrere Anforderungen gleichzeitig an den Server zu schicken. Als solche wird die Leistungsanforderung an den Wirtsserver bedeutsam.
  • Eine Lösung, den Server-Engpass zu lösen, setzt mehrere Hochgeschwindigkeitsprozessoren im Server ein. Jeder Prozessor ist typischerweise ein fortschrittlicher 32-Bit-Prozessor, wie ein PentiumTM- oder ein Pentium ProTM-Mikroprozessor, der von Intel Corporation in Santa Clara, CA. erhältlich ist. Um die schnellen Prozessoren zu ergänzen, werden ein schnelles Speichersystem, Plattensystem, und Eingabe-/Ausgabe- (I/O-) Karten benötigt. Server der oberen Preisklassen bieten typischerweise einen oder mehrere Peripheriekomponenten-Verbindungs- (PCI-) Erweiterungsbusse zur Aufnahme zusätzlicher I/O-Karten für den I/O-hungrigen Server-Computer. Der PCI-Bus ist eine verhältnismäßig schnelle physikalische Verbindungsvorrichtung, die zur Verwendung zwischen Peripheriesteuereinheitenkomponenten und Prozessor/Speichersystemen bestimmt ist. Zusätzlich dazu, dass er eine höhere Bandbreite bietet, stellt der PCI-Bus auch spezifische Fehlerdetektions- und Meldungsfähigkeiten für Serversysteme über Fehlermeldungsstifte, wie PERR# und SERR# bereit. PERR# ist ein Paritätsfehlersignal zur Meldung von Datenparitätsfehlern während aller PCI-Transaktionen mit der Ausnahme von speziellen PCI-Zyklen, während SERR# zur Meldung von Adreßparitätsfehlern, Datenparitätsfehlern bei speziellen Zyklusbefehlen oder irgendwelchen anderen Systemfehlern vorgesehen ist, wo das Ergebnis katastrophal sein kann. PERR# und SERR# liefern daher lebenswichtige Rückmeldungsdaten an den Prozessor bezüglich der Systemgesundheit und werden durch den Prozessor überwacht, um ein zuverlässiges Computersystem bereitzustellen. Das # am Ende eines Signalnamens zeigt an, dass der aktive Zustand auftritt, wenn das Signal sich auf einer niedrigen Spannung befindet. Eine detailliertere Beschreibung des Aufbaus/der Operation der PCI-Bus-Architektur und zugehöriger Hilfsmittel zur Handhabung von Fehlern werden in "Peripheral Component Interconnect (PCI) Local Bus Specification, Revision 2.1 Production Version", veröffentlicht am 1. Juni 1995, "Preliminary PCI System Designs Guide" Revision 1. 0, veröffentlicht am 8. September 1993, und "Peripheral Component Interconnect (PCI) Add-in Board/Connector Addendum", veröffentlicht am 26. Februar 1993, bereitgestellt, die alle von der PCI Special Interest Group herausgegeben werden.
  • Da ein Unternehmens-Server mit einem breiten Bereich von Peripheriegeräten für diverse Anwendungen umgehen muss, ist die Fähigkeit wichtig, eine Vielfalt von Erweiterungskarten aufzunehmen. Um die I/O-Anforderungen zu erfüllen, kann eine Anzahl von Peripheriegeräten, die mit der PCI-Bus-Architektur kompatibel sind, auf dem primären PCI-Bus angeordnet werden, wobei keine anderen PCI-Busse vorhanden sind; oder eine Anzahl von PCI-Peripheriegeräten könnte auf dem primären PCI-Bus oder an einer Anzahl von sekundären PCI-Bussen durch jeweilige PCI-Brücken, die mit dem primären PCI-Bus verbunden sind, angebracht werden. Jeder sekundäre PCI-Bus könnte auch eine Anzahl von zusätzlichen PCI-Bussen aufweisen, die durch PCI-Brücken an ihm angebracht sind, und diese tertiäre PCI-Busse könnten zusätzliche PCI-Busse aufweisen, die an ihnen in verschiedenen Kombinationen angebracht sind. Obwohl die Verwendung sekundärer und tertiärer PCI-Busse die Gesamtzahl an Einbauplätzen erhöht, die am Server zur Verfügung stehen, können Geräte, die an den sekundären und tertiären PCI-Bussen eingesteckt sind, bei der Kommunikation mit den Prozessoren auf dem Wirtsbus Verzögerungen erleiden, da sie mit einer oder mehreren Entscheidungsschichten verhandeln müssen, um schließlich den Prozessor zu erreichen. Um dieses Problem teilweise zu beseitigen, werden durch einen neuen Pentium ProTM-Wirtsbus mehrere nichthierarchische PCI-Brücken unterstützt, um eine modulares Verfahren zur Verbesserung der I/O-Leistung bereitzustellen. Diese nichthierarchische Anordnung beseitigt Verzögerungen, die das Durchqueren einer oder mehrere Entscheidungsstufen nach sich zieht, die in der hierarchischen Anordnung vorhanden sind, was zu einer höheren Systemleistung führt. Jedoch führt die nicht-hierarchische PCI-Brückenanordnung zu unvereinbaren Sätzen von PERR#- und SERR#-Signale. Da die PERR#- und SERR#-Signale des sekundären PCI-Busses in einer nicht-hierarchischen Anordnung unabhängig von den jeweiligen PERR# und SERR# auf dem primären PCI-Bus arbeiten, können Fehler, die auf dem sekundären PCI-Bus auftreten, nicht einer Weise gehandhabt werden, die mit jenen vereinbar ist, die auf dem primären PCI-Bus auftreten. Die sich ergebenden Unterschiede können bewirken, dass sich Anwendungen unterschiedlich verhalten, wenn Fehlerbedingungen angetroffen werden, abhängig von der Position des Einbauplatzes, auf dem die PCI-Erweiterungskarte eingesetzt worden ist. Um folglich sicherzustellen, dass Fehler auf den primären und den sekundären PCI-Bussen robust und miteinander vereinbar gehandhabt werden, wird eine Vorrichtung benötigt, um Fehlersignale zu vereinheitlichen, die durch die Peripheriegeräte erzeugt werden, die in den sekundären und den primären Bussen vorhanden sind, bevor die Fehlersignale den Prozessoren präsentiert werden. Ferner wird eine Vorrichtung benötigt, um die Quelle der Fehlersignale zu isolieren, um die Probleme aufzuheben.
  • EP-A-0503936 offenbart ein Steuersystem für eine Speicherplatte, in dem Fehlersignale, die von unterschiedlichen Kanalbussen herrühren, kombiniert und synchronisiert werden, um ein einziges Feldunterbrechungssignal zu erzeugen.
  • Gemäß der vorliegende Erfindung, die durch die Ansprüche definiert wird, wird eine Vorrichtung zum Übertragen von Fehlersignalen in einem Computer mit einem Unterbrechungseingang bereitgestellt, wobei die Vorrichtung umfasst:
  • einen ersten Erweiterungsbus mit einer ersten Leitung zum Leiten eines ersten Typs Fehlersignal und einer zweiten Leitung zum Leiten eines zweiten Typs Fehlersignal auf dem ersten Erweiterungsbus;
  • einen zweiten Erweiterungsbus mit einer dritten Leitung zum Leiten des ersten Typs Fehlersignal und einer vierten Leitung zum Leiten des zweiten Typs Fehlersignal auf dem zweiten Erweiterungsbus; ·
  • eine Synchronisierschaltung, die den zweiten Typ Fehlersignal von der vierten Leitung des zweiten Erweiterungsbusses und von der zweiten Leitung des ersten Erweiterungsbusses empfängt, wobei die Synchronisierschaltung ein zweites Ausgangssignal erzeugt, das das Auftreten des zweiten Typs Fehler in dem Computer repräsentiert; und
  • eine Unterbrechungssteuereinheit, die mit dem Unterbrechungseingang des Computers gekoppelt ist; gekennzeichnet durch einen Puffer, der den ersten Typ Fehlersignal von der dritten Leitung des zweiten Erweiterungsbusses mit der ersten Leitung des ersten Erweiterungsbusses kombiniert und ein erstes Ausgangssignal erzeugt, das das Auftreten des ersten Typs Fehler in dem Computer repräsentiert, und
  • wobei die Unterbrechungssteuereinheit einen ersten und zweiten Typ von Ausgangssignalen von dem Puffer bzw. der Synchronisierschaltung empfängt und die Unterbrechungssteuereinheit den Computer beim Empfangen eines der Ausgangssignale unterbricht. Die Vorrichtung weist einen Puffer auf, wobei ein Eingang mit Masse verbunden ist, ein Freigabeeingang mit dem zweiten SERR#-Signal verbunden ist und ein Ausgang mit dem ersten SERR#-Signal verbunden ist. Wenn das zweite SERR#-Signal geltend gemacht wird, wird auch das erste SERR#-Signal über den Puffer geltend gemacht.
  • Die Ausgabe des ersten SERR#-Signals wird an einen Eingang der Unterbrechungssteuereinheit geliefert, die ein nicht maskierbares Unterbrechungs-. (NMI-) Signal an den Prozessor erzeugt.
  • Die Vorrichtung empfängt auch die ersten und zweiten PERR#- Signale und ODER-verknüpft die Signale logisch miteinander, um ein kombinierte PERR#-Signal zu erzeugen. Das kombinierte PERR#-Signal wird einem Register präsentiert, das durch den PCI-Systemtakt getaktet wird, um das kombinierte PERR#-Signal mit dem PCI-Takt zu synchronisieren, bevor das kombinierte PERR#-Signal einem zweiten Eingang der Unterbrechungssteuereinheit präsentiert wird. Auf den Empfang des kombinierten PERR#-Signals hin erzeugt die Unterbrechungssteuereinheit ein anderes NMI-Signal zum Prozessor.
  • Folglich erzeugt die Unterbrechungssteuereinheit auf den Empfang von entweder dem kombinierten SERR# oder dem mit dem PCI-Takt synchronisierten PERR# hin ein Unterbrechungssignal, vorzugsweise ein nicht maskierbares Unterbrechungs (NMI-) Signal, an den Prozessor, das den Prozessor veranlasst, eine Unterbrechungsbehandlungsroutine auszuführen, nachdem der laufende Befehl vollendet ist. Auf den Eintritt in die Unterbrechungsbehandlungsroutine hin liest der Prozessor die Unterbrechungsstatusregister, um die Unterbrechungsfehlergruppe oder Gruppen zu lokalisieren, die die Unterbrechung erzeugt haben. Danach löscht der Prozessor die Unterbrechungsfreigaberegister, um eine Detektion neuer Unterbrechungen zuzulassen. Für jede Gruppe, die mit der Fehleranzeige verbunden war, fragt der Prozessor alle Geräte ab, die den Fehler verursacht haben könnten, und nimmt geeignete Korrekturmaßnahmen vor.
  • Die so beschriebene Vorrichtung vereinheitlicht Fehlersignale, die durch Peripheriegeräte erzeugt werden, die in den sekundären und den primären Erweiterungsbussen angeordnet sind, bevor sie die Fehlersignale den Prozessoren präsentiert, so dass Fehler auf beiden PCI-Bussen robust und miteinander vereinbar gehandhabt werden können. Folglich wird ein zuverlässigeres Computersystem für Anwendungen bereitgestellt, die eine hohe Leistung und Zuverlässigkeit erfordern.
  • Es kann ein besseres Verständnis der vorliegenden Erfindung erhalten werden, wenn die folgende detaillierte Beschreibung der bevorzugten Ausführungsform in Verbindung mit den folgenden Zeichnungen betrachtet wird. Es zeigen:
  • Fig. 1 ein Blockdiagramm eines erfindungsgemäßen Computersystems;
  • Fig. 2 ein Blockdiagramm einer Prozessorschaltkarte des Computersystems der Fig. 1;
  • Fig. 3 ein schematisches Diagramm der Vorrichtung zur Behandlung von Busfehlern der vorliegenden Erfindung; und
  • Fig. 4 ist ein Ablaufplan eines NMI-Unterbrechungsbehandlerroutine, die auf die Unterbrechungssignale reagiert, die durch die Schaltung der Fig. 3 erzeugt werden.
  • Sich nun Fig. 1 zuwendend, wird ein Server-Computersystem S offenbart. Um eine ausreichende Verarbeitungsfähigkeit für Unternehmensserveranwendungen bereitzustellen, setzt das Server-Computersystem S der Fig. 1 einen oder mehrere Prozessoren ein, vorzugsweise den Pentium ProTM-Prozessor, der von Intel Corporation erhältlich ist, das in Santa Clara, Kalifornien ansässig ist. Die Pentium ProTTM-Prozessoren sind auf einer Prozessorkarte C angeordnet, die in einen der P6-Einbauplätze 100- 102 gesteckt ist.
  • Die P6-Einbauplätze 100-102 sind mit einem 72-Stift-Pentium ProTM-Wirtsbus verbunden, der als der P6-Bus 103 bezeichnet wird. Der P6-Bus 103 ist ein Hochleistungsbus, der vorzugsweise zwei Prozessorkarten unterstützt, die an Einbauplätzen 100-102 angebracht sind. Vorzugsweise unterstützt jede Prozessorkarte C zwei Pentium ProTM-Prozessoren. Folglich unterstützt die bevorzugte Ausführungsform bis zu vier Prozessoren.
  • Zusätzlich zu den Prozessoren ist der P6-Bus 103 mit einer Speichersteuereinheit 104 und einer Datenwegvorrichtung 106 verbunden, die zusammen ein DRAM-Steuerungsteilsystem bilden. Vorzugsweise ist die DRAM-Steuereinheit ein 82453GX und die Datenwegvorrichtung 106 ist ein 82452GX, von denen beide von der Intel Corporation erhältlich sind. Die DRAM-Steuereinheit 104 stellt eine Steuerung und ein Timing für das Speicherteilsystem bereit, während die Datenwegvorrichtung 106 eine Schnittstelle vom 72-Bit-P6-Wirtsbus zum Speicherfeld bildet. Die Speichersteuereinheit 104 und der Datenweg 106 sind in der Lage, eine Speicheranforderung von der CPU aufzunehmen, sie in eine Warteschlange einzuordnen und, nachdem die angeforderte Operation vollendet ist, zu beantworten.
  • Zusätzlich stellt die Steuereinheit 104 eine Speicherfehlerkorrektur bereit, die bei Serveranwendungen lebenswichtig ist, die die Fähigkeit einer fliegenden Einzelbit-Fehlerkorrektur und Mehrbit-Fehlerdetektion einschließt. Speicheranordnungen mit nicht verschachtelten, x2- und x4-Verschachtelungsanordnungen werden durch die Speichersteuereinheit 104 unterstützt. Mehrere Speichermodule 110-112 sind mit Speichereinbauplätzen 108 verbunden, um bis zu vier Gigabyte Speicher bereitzustellen. Die Steuereinheit 104 minimiert den Einfluss von Leerlaufzyklen, indem sie es zulässt, dass Leseoperationen die Schreiboperationen umgehen und zuerst vollendet werden, solange die Speicheradressen für das Schreib-/Lesepaar nicht übereinstimmen. Während des Betriebs wird die tatsächliche Leistung des Speicherteilsystems teilweise von der Mischung der Lese- und Schreiboperationen und dem Speicherzugriffsmuster für eine gegebene Anwendung ab.
  • Zusätzlich zu den Speichersteuereinheiten wird ein robustes Eingabe-/Ausgabesystem für den Server S benötigt. Das für den Server bestimmte I/O-Teilsystem muss skalierbar sein, während es die Leistungsanforderungen für die vier Pentium ProTM-Prozessoren erfüllt. Der PCI-Bus stellt eine Kombination oder hohe Leistung und skalierbare I/O für die Anforderungsumgebung auf, die in Server-Anwendungen angetroffen werden. Um PCI-Verbindungen bereitzustellen, sind eine oder mehrere PCI-Brücken 114 mit dem P6-Bus 103 verbunden. Die nicht-hierarchische Anordnung des PCI-Busses beseitigt eine oder mehrere Entscheidungsstufen, die in der hierarchischen Anordnung vorhanden sind, was zu einer höheren Systemleistung führt. Vorzugsweise ist die PCI-Brücke 114 eine 82454GX PCI-Brücke (PB) von Intel, die die Bus-Entscheidungslogik integriert, die erforderlich ist, um bis zu zwei 82454GX PB-Komponenten ohne irgendeinen äußeren Verknüpfungsschaltkreis zu verbinden. In der bevorzugten Ausführungsform ist eine PCI-Brücke so konfiguriert, dass sie durch Zusammenschaltungsoptionen beim Einschalten die Kompatibilitäts- PCI-Brücke ist. Diese PCI-Brücke stellt den PC-kompatiblen Weg zum Boot-ROM und dem EISA/ISA-Bus bereit. Eine zweite PCI-Brücke, die als Hilfsbrücke bezeichnet wird, wird durch Zusammenschaltungsoptionen so konfiguriert, dass sie die Hilfs-PCI-Brücke ist. Ein Zuteiler 120 ist mit dem sekundären PCI-Bus 115 verbunden, um Zugriffe auf und vom sekundären PCI-Bus 115 zu entscheiden. Die Entscheidung für den Prozessorbus wird durch die Kompatibilitätsbrücke gesteuert, die eine höhere Priorität als die Hilfsbrücke aufweist, um eine geeignete Antwortzeit für ISA-Busmaster sicherzustellen. Die mehreren PCI-Brücken 114 stellen mehrere PCI-Busse bereit, die aufgrund ihrer direkten Verbindungen zum P6-Bus 103 von sich aus eine schnellere Entscheidungsantwort als die Alternative bereitstellen, PCI-Brücken miteinander zu kaskadieren, um für mehrere PCI-Busse zu sorgen. Diese Fähigkeit sorgt nicht nur für eine Designflexibilität sondern auch für redundante I/O-Kanäle für Systeme, in denen Zuverlässigkeit ausschlaggebend ist.
  • Wie in der DRAM-Steuereinheit 104, unterstützt die PCI-Brücke 114 eine vollständige 64-Bit-Schnittstelle zum CPU-Bus, einschließlich einer Unterstützung für alle Protokolle als auch einer Fehlerkorrektur. Die PCI-Brücke 114 unterstützt eine in Reihenfolge geordnete Transaktionswarteschlange der Tiefe 8 als auch getrennte Warteschlangen der Tiefe 4 für sowohl abgehende (Prozessor zu PCI) als auch ankommende (PCI zum Prozessor) Transaktionen, die für die I/O-Bus-Einrichtung bestimmt sind. Auch stellt die PCI-Brücke 114 wie die DRAM-Steuereinheit 104 vier 32-Byte-Datenpuffer sowohl in ankommende als auch abgehende Richtungen bereit. Die Puffer entkoppeln den Wirtsbus 103 von den PCI-Bussen 115-117 und optimieren die Leistung, indem sie das Eingeben von Daten bei vollen Busgeschwindigkeiten in beide Richtungen zulassen. Jedoch unterstützt die PCI-Brücke 114 im Gegensatz zur DRAM-Steuereinheit 104 bis zu zwei unerledigte Anforderungen mit zurückgestellter Antwort. Dieses Merkmal lässt es zu, dass eine Bus-Transaktion aufgespalten und später vollendet wird, was verhindert, dass der Pentium ProTM- P6-Bus 103 durch I/O-Operationen mit langer Wartezeit blockiert wird. In diesem Modus würde die PCI-Brücke 114 Pentium ProTM- Speicherlesevorgänge, I/O-Lesevorgänge, I/O-Schreibvorgänge und Unterbrechungs-Bestätigungstransaktionen zurückstellen. Jedoch werden Speicher-Schreibtransaktionen nicht zurückgestellt, da sie durch Eingeben besser optimiert sind.
  • An den sekundären PCI-Bus 115 ist eine SCSI-Plattensteuereinheit 116 angebracht. Die SCSI-Steuereinheit 116 stellt die Fähigkeit bereit, gleichzeitige Plattenbefehle handhaben zu können, was in einem vielfädigen Mehrprogramm-Betriebssystem notwendig ist. Vorzugsweise ist die SCSI-Steuereinheit 116 ein 53C825, der von der NCR Corporation erhältlich ist. An den· 53CS25 sind mehrere SCSI-Verbinder 118 angebracht, die mehrere Plattenlaufwerke betreiben, die angepasst sind, die gleichzeitige Ausgabe von mehreren Befehlen des Wirtssystems an eine oder mehrere SCSI-Vorrichtungen zu unterstützen. Die Fähigkeit, Befehle zu überlappen und die Befehle in einer Warteschlange zu einer oder mehreren Vorrichtungen anzuordnen, kann die Leistung in Umgebungen, wie Windows 95 und NT beträchtlich fördern. Zusätzlich zur SCSI-Steuereinheit 116 können mehrere Vorrichtungen in den sekundären PCI-Bus 115 über mehrere sekundäre PCI- Einbauplätze 122 eingesteckt werden.
  • Auf dem primären PCI-Bus 117 bearbeitet eine Unterbrechungssteuereinheit 124 Unterbrechungsanforderungen, die an der PCI-Brücke 114 ankommen, zu einer schließlichen Übertragung zu einem der Prozessoren in den Einbauplätzen 100-102. Die Unterbrechungssteuereinheit 124 leitet Unterbrechungsanforderungen von Geräten, die auf den PCI-Bussen 115-117 angeordnet sind, an die Prozessoren auf den Einbauplätzen 100-102 während des Mehrprozessorbetriebs weiter. Zusätzlich können eine Anzahl von PCI-Peripheriegeräten in mehrere primäre PCI-Einbauplätze 126 gesteckt werden. Zusätzlich sind eine EISA-Systemsteuereinheit ESC 128, vorzugsweise die Intel 82374EB-Vorrichtung, und eine PCI-EISA-Brücke PCEB 130, vorzugsweise der Intel 82375EB, mit dem primären PCI-Bus 117 verbunden. Die ESC 128 und die PCEB 130 müssen mit dem primären PCI-Bus 117 verbunden sein, da die Hilfsbus-Steuereinheit bei einigen Operationen eine Entscheidung von der Kompatibilitätsbus-Steuereinheit 114 anfordern muss. Diese hinzugefügte Wartezeit bedeutet, dass der Hilfsbus oder sekundäre PCI-Bus 115 den Wartezeit-Spezifikationen der PCI Version 2.1 nicht entsprechen kann, und dass EISA- und ISA- Busbrücken sich auf dem Kompatibilitätsbus oder primären PCI- Bus 117 befinden müssen.
  • Die ESC 128 und die PCEB 130 arbeiten parallel, um eine EISA-I/O-Teilsystem-Schnittstelle für das Computersystem S bereitzustellen. Die Kombination der ESC 128 und der PCEB 130 stellt ein I/O-Teilsystem bereit, das fähig ist, die Leistungsfähigkeit der PCI-Bus-Architektur auszunutzen, während ein Zugang zu einer breiten Basis von EISA- und ISA-Erweiterungskarten und den entsprechenden Softwareanwendungen aufrecht erhalten wird. Mit dem Einschluss der ESC 128 und der PCEB 130 enthält das System 5 nun drei Ebenen von Bussen, die in der folgenden Hierarchie strukturiert sind: P6-Bus 103 als den Ausführungsbus; ein Erweiterungsbus-SystEm mit primären und sekundären PCI-Bussen 115-117; und einen EISA-Bus als weiteren I/O- Bus. Diese Bus-Hierarchie lässt eine Gleichzeitigkeit für einen gleichzeitigen Betrieb aller drei Bus-Umgebungen zu. Eine Datenpufferung erlaubt eine Gleichzeitigkeit von Operationen, die zu einer anderen Bus-Umgebung überwechseln. Die ESC 128 implementiert Systemfunktionen, wie einen Zeitgeber/Zähler, DMA, eine Unterbrechungssteuereinheit und EISA-Teilsystem-Steuerfunktionen, wie einer EISA-Bus-Steuereinheit und einem EISA- Bus-Zuteiler. Die PCEB 130 stellt die Schnittstelle zur Brücke zwischen den PCI und EISA-Bussen dar, indem sie Bus-Protokolle in beide Richtungen übersetzt. Sie verwendet eine ausgedehnte Pufferung an beiden PCI- und EISA-Schnittstellen, um gleichzeitige Busoperationen zuzulassen.
  • Die ESC 128 und die PCEB 130 sind mit mehreren EISA-Einbauplätzen 132 verbunden. Zusätzlich erzeugt die ESC 128 auch Chip-Freigaben für bestimmte Funktionen, die typischerweise auf einem X-Bus angeordnet sind.
  • Die ESC 128 erzeugt Chip-Freigabesignale aus einer ihtegrierten Systemverwaltungseinheit (ISM) 158, einer Tastatur- Steuereinheit 156, einem Flash-ROM 154, einem nicht flüchtigen RAM 152 und einer Allzweck-I/O-vorrichtung 144, die Disketten- Laufwerke, serielle Anschlüsse und parallele Anschlüsse über Disketten-Verbinder 146, serielle Verbinder 148 und parallele Verbinder 150 unterstützt. System-Datenleitungen der EISA-Einbauplätze 132 sind mit dem Datenbus des X-Busses über einen Puffer 134 verbunden, der Zugriffe zu den I/O-Vorrichtungen als auch dem System-BIOS im Flash-ROM 154 zulässt. Ferner weisen die EISA-Einbauplätze 132 System-Adreßleitungen auf, die mit den Adreßleitungen des X-Busses über einen Puffer 136 verbunden sind. Die EISA-Einbauplätze 132 weisen verriegelte Adreßleitungen auf, die mit den System-Adreßleitungen über den Puffer 138 verbunden sind. Schließlich ist eine Video-Steuereinheit 140 mit den X-Bus-Adreßleitungen, den EISA/132-System-Datenleitungen und den verriegelten Adreßleitungen verbunden. Vorzugsweise ist die Video-Steuereinheit eine Cirrus Logic 5424 Steuereinheit. Die Video-Steuereinheit 140 ist mit einem Video-RAM 142 verbunden, das vorzugsweise 512 Kilobyte groß ist.
  • Sich Fig. 2 zuwendend, werden weitere Details der Prozessorkarte C geliefert, die entweder in den Einbauplatz 100 oder den Einbauplatz 102 eingesetzt werden kann. In Fig. 2 weist die Prozessorkarte C eine erste CPU 200 und eine zweite CPU 201 auf.
  • Die CPU 200 wird durch einen Gleichspannungswandler 202 versorgt, während die CPU 201 durch einen Gleichspannungswandler 203 versorgt wird. Die Spannung, die durch den Gleichspannungswandler 202 erzeugt wird, wird über mehrere DIP-Schalter 213 angegeben. Entsprechend geben mehrere DIP-Schalter 215 die Spannung an, die durch den Gleichspannungswandler 203 erzeugt werden kann. Die Gleichspannungswandler 202-203 liefern Strom an die jeweiligen CPUs 200-201.
  • Zusätzlich steht ein redundanter Gleichspannungswandler 205 zur Verfügung. Die Ausgangsspannung am Gleichspannungswandler 205 wird ebenfalls durch DIP-Schalter 213 angegeben. In einer Betriebsart, wo die CPU 200 die primäre CPU ist, liefern die Gleichspannungswandler 202 und 205 Strom an die CPU 200, während der Gleichspannungswandler 203 nur die CPU 201 versorgt. In dem Fall, dass die DIP-Schalter 213 und 215 einen gleichen Wert aufweisen, kann der Gleichspannungswandler 205 so eingestellt sein, dass er beide CPUs 200-201 versorgt. Dieser Vergleich wird durch eine ID-Logik 206 bereitgestellt werden, die Eingaben vom DIP-Schalter 213-215 empfängt und ein Installationssignal vom Gleichspannungswandler 205 empfängt. Folglich liefert in dem Fall, dass die Einstellung der DIP-Schalter 213-215 gleich ist und der Gleichspannungswandler 205 installiert ist, der Gleichspannungswandler 205 Strom an beide CPUs 200-201. Die CPUs 200-201 sind schließlich mit dem Prozessorbus 103 verbunden, um auf Speicher zuzugreifen und um die Ergebnisse der Verarbeitung an den Rest des Server-Computers S zu liefern. Obwohl die bevorzugte Ausführungsform DIP-Schalter 213 und 215 verwendet, ist Fachleuten bekannt, die CPUs 200-201 anstatt den DIP-Schaltern 213 und 215 die Spannungsanforderungssignale direkt für die Gleichspannungswandler 202, 203 und 205 erzeugen und ihnen präsentieren zu lassen.
  • Jede der CPUs 200-201 kann für Anwendungen, die eine Parallelverarbeitung ausnutzen, parallel arbeiten. Zusätzlich dazu, dass sie in der Lage sind, parallel zu arbeiten, können die Doppel-Prozessoren auf der Prozessorkarte C in einer Funktionsredundanzprüfungs-Betriebsart (FRC) arbeiten, um eine zusätzliche Zuverlässigkeitsprüfung bereitzustellen. Die FRC-Betriebsartkonfiguration besteht aus einer Haupt-CPU und einer Neben- oder Prüfer-CPU. Die beiden CPUs sind als eine logische Einheit verbunden. Die Haupt-CPU führt Code aus und erzeugt Ergebnisse. In der Zwischenzeit führt·die Neben-CPU denselben Code aus und vergleicht seine Ergebnisse mit den Ergebnissen der Haupt-CPU. Wenn es irgendeinen Widerspruch gibt, wird ein Fehler registriert. Die beiden CPUs 200-201 werden in einem verriegelten Schritt gehalten, indem alle ihrer Eingaben mit dem Takt der CPU-Karte synchronisiert werden. In der bevorzugten Ausführungsform stellt der Pentium ProTM die FRC-Betriebsartlogik bereit. Alle Eingaben und der größte Teil der Ausgaben des FRC-Paares 200-201 sind direkt aneinander gebunden. Ein Prozessor wird während eines Systemrücksetzvorgangs als Haupt- CPU oder Prüfer-CPU konfiguriert. Der als Haupt-CPU konfigurierte Prozessor verhält sich wie ein normaler Prozessor. Der als Prüfer konfigurierte Prozessor betreibt niemals seine Ausgänge, sondern vergleicht sie mit den Ausgängen seiner Haupt- CPU. Wenn eine Diskrepanz auftritt, benachrichtigt der Prüfer die Haupt-CPU, indem er FRCERR für einen Taktzyklus gültig macht. Nach der Geltendmachung des FRCERR stoppt der Prüfer eine weitere Prüfung und sein innerer Zustand ist undefiniert. Auf den Empfang des FRCERR hin, springt die Haupt-FRC-CPU zu einer geeigneten Fehlerbehandlungsroutine, so dass sie den Fehler robust korrigieren kann.
  • In einem Server-System, wie jenem des Computersystems S. ist Zuverlässigkeit wichtig. Fehler, die angetroffen werden, müssen robust behandelt werden, so dass das System betriebsfähig und verfügbar bleibt. Folglich stellt das Computersystem S zusätzlich zur Bereitstellung einer robusten Fehlerkorrektur für die Prozessoren über die FRC-Fähigkeit auch eine robuste Fehlerkorrektur für Fehler bereit, die durch die I/O-Karten auf den PCI-Bussen 115 und 117 erzeugt werden. Der PCI-Standard stellt PERR# und SERR# für Paritäts- und Systemfehler bereit, die auf jedem PCI-Bus getrennt detektiert und gemeldet werden sollen. Die,PCI-Fehlerbehandlung wird an Einrichtungen geliefert, die Fehler detektieren, melden und korrigieren. Die Paritätsmeldefähigkeit der PCI-Architektur stellt einen Mechanismus bereit, transaktionsweise festzustellen, ob die Quelle dabei erfolgreich ist, das gewünschte Ziel zu adressieren, und ob Daten, die zwischen'ihnen übertragen werden, korrekt erscheinen. Nur die Quelle verfälschter Bus-Übertragungen meldet Paritätsfehler an Software unter Verwendung anderer Mechanismen als PERR#.4 Dies gibt dem Urheber des Zugriffs auf jeder Softwarestufe das Vorrecht der Korrektur. Eine Quelle eines Zugriffs, die einen Paritätsfehler detektiert, kann die Transaktion fortsetzen oder sie beenden. Entsprechend kann das Ziel eines Zugriffs, das einen Paritätsfehler detektiert, entweder die Operation fortsetzen oder veranlassen, dass sie über eine Ziel-Beendigung gestoppt wird. Wenn die Quelle eines Zugriffs merkt, dass ein Paritätsfehler bei ihrer Transaktion aufgetreten ist, ist es erforderlich, den Prozessor zu informieren. Der empfohlene Weg besteht für die Quelle darin, ihren Gerätetreiber von dem Fehler zu informieren, indem sich unter anderen Optionen eine Unterbrechung erzeugt.
  • Wenn der Vorrichtung keine dieser Optionen zur Verfügung steht, kann die letzte Zuflucht darin bestehen, die Verantwortung, den Fehler zu behandeln, an das Betriebssystem zu übergeben, indem SERR# geltend gemacht wird, der ein PCI-Stift ist, der verwendet wird, um andere Fehler als Paritätsfehler anzuzeigen. Wenn eine PCI-Einrichtung, die eine PCI-Master- oder Slave-Vorrichtung sein kann, SERR# gültig setzt, ist es erforderlich, das Bit des signalisierten Systemfehlers im Statusregister des PCI-Konfigurationsraum zu setzen. Die Endeinrichtung, die an SERR# interessiert ist, ist das zentrale Betriebsmittel, das den abfallenden SERR#-Impuls in ein Signal an den Prozessor, vorzugsweise ein nicht maskierbares Unterbrechungs- (NMI-) Signal umwandelt, unter anderen Verfahren. Typischerweise kann eine Einrichtung SERR# auf die Detektion eines Paritätsfehlers hin geltend machen, der durch gewisse andere Mechanismen nicht gemeldet wird, auf die abnormale Beendigung einer Transaktion hin, oder auf einen katastrophalen Fehler hin, der die Einrichtung so hinterlässt, dass ihre Fähigkeit fraglich ist, korrekt zu arbeiten. Folglich wird die Geltendmachung von SERR# nur als letzte Zuflucht bei der Behandlung von Fehlern durchgeführt.
  • Wie zu erkennen ist, stellen SERR# und PERR# eine Unterstützung für einen robusten Fehlerbehandlungsmechanismus bereit, der zu einem zuverlässigen Server-System beiträgt. Jedoch sind in einem nicht-hierarchischen Mehrfach-PCI-Bus-System SERR# und PERR# des sekundären PCI-Busses von den SERR# und PERR# des primären PCI-Busses isoliert. Als solche werden die Fehler, die durch die sekundären PCI-Vorrichtungen erzeugt werden, die an den sekundären PCI-Einbauplätzen angeordnet sind, nicht in einer Weise behandelt, die mit den Fehlern vereinbar ist, die durch die primären PCI-Peripheriegeräte erzeugt werden, die an den primären PCI-Einbauplätzen 126 angeordnet sind. Dieses Problem wird durch die Schaltung der Fig. 3 gelöst.
  • Sich Fig. 3 zuwendend, sind mehrere primäre PCI-Einbauplätze 126A, 126B und 126C mit dem PCI-Bus 117 verbunden. Eine oder mehrere (nicht gezeigte) PCI-kompatible I/O-Karten sind in die Einbauplätze 126A-126C eingesetzt.
  • Ein Signal jedes der Einbauplätze 126A-126C ist mit einer CSERR#-Leitung 190 verbunden, die der primäre Kanal SERR# ist. Ferner ist ein Signal jedes der primären PCI-Einbauplätze 126A- 126C mit einer CPERR#-Leitung 192 verbunden, die der primäre Kanal PERR# ist. Entsprechend weist auf dem sekundären PCI-Bus 115 jeder sekundäre PCI-Einbauplatz 122A und 122B Signale auf, die mit einer SSERR#-Leitung 194 bzw. einer SPERR#-Leitung 196 des, sekundären PCI-Busses 115 verbunden sind. Ferner weist die SCSI-Schnittstellenvorrichtung 116 ein Ausgangssignal, das mit der SSERR#-Leitung 194 verbunden ist, und ein anderes Ausgangssignal auf, das mit der SPERR#-Leitung 196 des sekundären PCI- Busses 115 verbunden ist.
  • Obwohl die bevorzugte Ausführungsform das Systemfehlersignal SSERR# 194 vom sekundären PCI-Bus 115 zu CSERR# 190 auf dem' primären PCI-Bus 117 überträgt, kann ein Fachmann die Rolle der ersten und zweiten PCI-Busse durch Umkehren der Verbindungen austauschen, so dass das Systemfehlersignal CSERR# 190 vom primären PCI-Bus 117 zum sekundären PCI-Bus 115 übertragen wird. In einem solchen System ist das CSERR#-Signal 190 mit dem Freigabeeingang des Dreizustands-Puffers 300 verbunden, während der Eingang des Puffers 300 mit Masse verbunden ist und der Aus gang des Puffers 300 mit dem SSERR#-Signal 194 des sekundären PCI- Busses 115 verbunden ist. Als solche werden Systemfehler, die auf dem primären PCI-Bus 117 erzeugt werden, zum Systemfehler- Eingangsstift SSERR# 194 des sekundären PCI-Busses 115 zur schließlichen Meldung an die ESC 128 übermittelt.
  • Als nächstes wird die Schaltung, um Systemfehlersignale zu behandeln, erläutert. In Fig. 3 sind die SSERR#-Leitung 194 des sekundären PCI-Busses 115 und die CSERR#-Leitung 190 des primären PCI-Busses 117 über einen Dreizustands-Puffer 300 miteinander gekoppelt. Der Dreizustands-Puffer 300 weist eine Ausgangsfreigabeleitung auf, die mit der SSERR#-Leitung 194 verbunden ist. Der Eingang des Dreizustands-Puffers 300 ist mit Masse verbunden, während der Ausgang des Dreizustands-Puffers 300 mit der CSERR#-Leitung 190 verbunden ist. Wenn folglich die SSERR#-Leitung 194 geltend gemacht wird, wird über den Dreizustands-Puffer 300 eine asynchrone Geltendmachung der CSERR#- Leitung 190 erzeugt. Die CSERR#-Leitung 190 wird dem SERR# -Eingang der ESC 128 präsentiert. Daraufhin, dass der SERR#-Eingang als aktiv abgetastet wird, erzeugt die ESC 128 eine NMI-Unterbrechung an die Prozessoren 200-201.
  • Sich der Behandlung von Paritätsfehlersignalen auf den Bussen 115 und 117 zuwendend, wird eine SPERR#-Leitung 196 vom sekundären PCI-Bus 115 an einen Eingang eines ODER-Gatters 302 geliefert. Eine CPERR#-Leitung 192, die das PERR#-Signal für den primären PCI-Bus 117 leitet, ist für den anderen Eingang des ODER-Gatters 302 vorgesehen. Die Ausgabe des ODER-Gatters 302 wird an den D-Eingang eines Flipflops 304 geliefert. Das Flipflop 304 wird durch PCI CLK getaktet, dem Taktsignal des primären PCI-Busse 117. Die Ausgabe des Flipflops 304 wird zum PERR#-Eingang der ESC-128 geliefert, die die ESC 128 veranlasst, eine Unterbrechung für die Prozessoren zu erzeugen, die auf der Karte C angeordnet sind. Folglich wird die PERR# -Eingabe erzeugt, indem die PERR#-Signale aus den primären und den sekundären PCI-Bussen 115 und 117 mit PCI CLK logisch ODERverknüpft und dann synchronisiert werden. Die so verbundenen PERR#-Signale von jedem PCI-Bus werden an der Anstiegsflanke von PCI CLK durch die ESC 128 empfangen. Daraufhin, dass PERR# als aktiv abgetastet wird, erzeugt die ESC 128 eine NMI-Unterbrechung für die CPU. Der Fehlerbehandler der Fig. 3 vereinigt folglich SERR# und PERR#-Signale von getrennten PCI-Bussen 115 und 117, kombiniert sie und leitet sich durch die ESC 128. Diese Leitung gestattet es einem Betriebssystem, mehrere NMIs zu behandeln, selbst wenn die Quelle des NMI auf unterschiedlichen PCI-Bussen angeordnet ist.
  • Auf den Empfang der NMI-Unterbrechung am NMI-Stift des Prozessors hin, beendet der Prozessor den laufenden Befehl und leitet sofort einen Unterbrechungszyklus ein. Eine NMI tritt im allgemeinen als ein Ergebnis eines ernsten Hardwareproblems auf und unterscheidet sich von einer Standard-Unterbrechung darin, dass sie im Prozessor nicht unterdrückt oder maskiert werden kann, wie der Name sagt. Da zahlreiche Unterbrechungen auf einmal erzeugt werden können, muss die Software im Betriebssystem die NMI-Anforderungen in einer spezifischen Abfolge behandeln, um zu verhindern, Unterbrechungsanforderungen zu verlieren. Sich Fig. 4 zuwendend, wird die NMI-Behandlungssequenz offenbart. Nach der Vollendung des laufenden Befehls springt der Prozessor zum Start der Software in Fig. 4. An dieser Stelle muss der Prozessor die spezifische. Vorrichtung, die den NMI- Fehler erzeugt, aus sechs Gruppen isolieren. Die NMI-Fehler- Gruppen sind, zusammen mit den jeweiligen Adressen für das NMI- Statusregister und dem NMI-Freigaberegister für die bevorzugte Ausführungsform des Computersystems S. wie folgt:
  • Im Schritt 400 setzt die Routine die NMI-Gruppe auf die Gruppe 0, um eine systematische Suche nach allen sechs Gruppen · einzuleiten. Im Schritt 402 wird das NMI-Statusregister der ESC 128 geprüft, um festzustellen, ob die entsprechende IJMI-Fehlergruppe gesetzt worden ist.
  • Im Fall der SERR#-Gruppe ist kein einzelnes Bit verfügbar, so dass jede potentielle Quelle einzeln geprüft werden muss. Wenn das Fehlerbit der Gruppe nicht im Schritt 402 gesetzt wird, springt die Routine zu Schritt 411, der die NMI-Gruppe erhöht, um die nächste Gruppe auf potentielle Fehler zu untersuchen. Wenn alternativ im Schritt 402 ein Fehlerbit gesetzt ist, dann schreibt der Prozessor in das NMI-Freigaberegister der ESC 128, um die NMI Gruppen im Schritt 404 freizugeben. Diese Schreiboperation setzt das flankendetektierende Flipflop für jede Gruppe zurück und lässt die Detektion von neuen NMIs zu, die für jene bestimmte Gruppe auftreten. Als nächstes kann im Schritt 406 der Prozessor optional in das ESC-NMI-Freigaberegister schreiben, um weitere NMIs zu maskieren, die während der Ausführung des NMI-Behandler auftreten. Wenn das Lesen des Statusregister nicht mitteilt, auf welchem Bus der Fehler aufgetreten ist, muss die Software im Fall des PERR#-Signals oder des IOCHK#-Signals die Vorrichtungen auf beiden PCI-Bussen durchsuchen, um die Quelle des Fehlers zu lokalisieren. Im Schritt 408 fragt der Prozessor jede Vorrichtung auf den primären und sekundären PCI-Bussen 115, 117 ab, die in der Lage ist, den Fehler für die bestimmte ISJMI-Fehlergruppe geltend zu machen.
  • Danach werden im Schritt 410 die Korrekturmaßnahmen durch den Prozessor im NMI-Behandler vorgenommen. Die Korrekturmaßnahme kann so einfach sein, den Benutzer zu informieren, dass ein Fehler aufgetreten ist, oder kann so komplex sein, dass sie es erfordert, dass eine bestimmte Software erneut ausgeführt wird und Daten erneut übertragen werden. Vom Schritt 410 oder wenn kein Fehler für die gegenwärtige NMI-Gruppe im Schritt 402 vorhanden ist, wird der NMI-Gruppenindex erhöht, um auf die nächste NMI-Gruppe im Schritt 411 zu zeigen. Im Schritt 412 springt die Routine, wenn der Prozessor nicht alle NMI-Gruppen untersucht hat, zu Schritt 402 zurück, um die nächste gesetzte Gruppe zu prüfen. Alternativ ist, sobald der Prozessor alle Vorrichtungen von allen aktiven Fehlergruppen abgefragt hat, und alle geeigneten Korrekturmaßnahmen unternommen hat, er bereit, von der Unterbrechung zurückzukehren. Bevor er dies tut, sollte der Prozessor die NMI kurz sperren und dann die IIMI wieder freigeben, indem er in das ESC-NMI-Freigaberegister im Schritt 414 schreibt. Diese Schreiboperation bewirkt eine neue Flanke am NMI-Eingang des Prozessors, wenn irgendwelche neuen NMI-Fehler während der Verarbeitung der vorherigen Fehler auftreten würden. Schließlich kehrt die Routine vom NMI-Unterbrechungsaufruf zurück. Obwohl die bevorzugte Ausführungsform NMI- Signale verwendet, würde ein Fachmann wissen, dass andere Arten von Unterbrechungen zur Verfügung stehen, um dem Prozessor Fehlerbedingungen zu signalisieren und es dem Prozessor zu ermöglichen, Fehlerkorrekturprozeduren einzuleiten.
  • Wie oben erläutert, vereinheitlicht die vorliegende Erfindung Fehlersignale, die durch Peripheriegeräte erzeugt werden, die in den sekundären und den primären Bussen angeordnet sind, bevor die Fehlersignale den Prozessoren präsentiert werden, so dass Fehler auf den primären und den sekundären PCI-Bussen robust und miteinander vereinbar behandelt werden. Wenn folglich das zweite SERR#-Signal auf dem zweiten PCI-Bus geltend gemacht wird, wird auch das erste SERR#-Signal auf dem ersten PCI-Bus über den Puffer geltend gemacht wird. Die Ausgabe des ersten SERR#-Signals wird an einen Eingang der Unterbrechungssteuereinheit geliefert, die eine NMI-Unterbrechung am Prozessor erzeugt. Die Vorrichtung der vorliegenden Erfindung empfängt auch die ersten und zweiten PERR#-Signale von den ersten und zweiten PCI-Bussen und ODER-verknüpft die Signale logisch miteinander, um ein kombiniertes PERR#-Signal zu erzeugen. Das kombinierte PERR#-Signal wird einem Register präsentiert, das durch den PCI-Systemtakt getaktet wird, um das kombinierte PERR#-Signal mit dem PCI-Takt zu synchronisieren, bevor das PERR#-Signal einem zweiten Eingang der Systemsteuereinheit präsentiert wird.
  • Schließlich identifiziert der Prozessor die Unterbrechungsgruppen und fragt Erweiterungskarten ab, um die Quelle der Fehlersignale zu lokalisieren und zu behandeln. Die so beschriebene Vorrichtung vereinheitlicht Fehlersignale, bevor sie die Fehlersignale den Prozessoren präsentiert, so dass Fehler auf den primären und den sekundären PCI-Bussen robust und miteinander vereinbar behandelt werden, was zu einem zuverlässigeren Computersystem S führt.

Claims (11)

1. Vorrichtung zum Übertragen von Fehlersignalen in einem Computer mit einem Unterbrechungs-Eingang, wobei die Vorrichtung umfasst:
einen ersten Erweiterungsbus (117) mit einer ersten Leitung (190), die einen ersten Typ Fehlersignal auf dem ersten Erweiterungsbus leitet, und einer zweiten Leitung (192), die einen zweiten Typ Fehlersignal auf dem ersten Erweiterungsbus leitet;
einen zweiten Erweiterungsbus (115) mit einer dritten Leitung (194), die den ersten Typ Fehlersignal auf dem zweiten Erweiterungsbus leitet, und einer vierten Leitung (196), die den zweiten Typ Fehlersignal auf dem zweiten Erweiterungsbus leitet;
eine Synchronisierschaltung (302, 304), die den zweiten Typ Fehlersignal von der vierten Leitung (196) des zweiten Erweiterungsbusses und von der zweiten Leitung (192) des ersten Erweiterungsbusses (117) empfängt, wobei die Synchronisierschaltung ein zweites Ausgangssignal erzeugt, das das Auftreten des zweiten Typs Fehler in dem Computer anzeigt; und
eine Unterbrechungs-Steuereinheit (128), die mit dem Unterbrechungs-Eingang des Computers verbunden ist;
einen Zwischenspeicher (300), der den ersten Typ Fehlersignal von der dritten Leitung (194) des zweiten Erweiterungsbusses mit der ersten Leitung (190) des ersten Erweiterungsbusses kombiniert und ein erstes Ausgangssignal erzeugt, das das Auftreten des ersten Typs Fehler in dem Computer anzeigt, und
wobei die Unterbrechungs-Steuereinheit einen ersten und zweiten Typ von Ausgangssignalen von dem Zwischenspeicher (300) bzw. der Synchronisierschaltung (302, 304) empfängt und die Unterbrechungs-Steuereinheit den Computer beim Empfangen eines der Ausgangssignale unterbricht.
2. Vorrichtung nach Anspruch 1, wobei der erste Erweiterungsbus (117) und/oder der zweite Erweiterungsbus (115) ein PCI-Bus ist.
3. Vorrichtung nach Anspruch 1 oder Anspruch 2, wobei der erste Typ Fehlersignal ein Systemfehlersignal einschließt.
4. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei der zweite Typ Fehlersignal ein Paritätsfehlersignal einschließt.
5. Vorrichtung nach einem der vorangehenden Ansprüche, wobei der Zwischenspeicher (300) ein Dreizustands-Zwischenspeicher ist, der einen Dateneingang, der mit Erde verbunden ist, einen Steuergang, der mit der dritten Leitung verbunden ist, und einen Ausgang aufweist, der mit der ersten Leitung (190) des ersten Erweiterungsbusses (117) verbunden ist.
6. Vorrichtung nach einem der vorangehenden Ansprüche, wobei der erste Erweiterungsbus (117) ein Taktsignal aufweist, und wobei die Synchronisierschaltung ein Register (304) aufweist und das Register den zweiten Typ Fehlersignal von einem ODER-Gatter (302) empfängt, wobei das Register durch das Taktsignal getaktet wird und das Register einen Ausgang zu der Unterbrechungs-Steuereinheit (128) erzeugt.
7. Vorrichtung nach einem der vorangehenden Ansprüche, die des Weiteren einen Bus mit EISA-Architektur mit Unterbrechungs-Signalen umfasst, wobei die Unterbrechungs-Steuereinheit (128) mit dem EISA-Bus verbunden ist, um diä EISA- Unterbrechungs-Signale zu verarbeiten.
8. Vorrichtung nach einem der vorangehenden Ansprüche, wobei die Unterbrechungs- Steuereinheit (128) den Computer mit einem nicht unterdrückbaren Unterbrechungs-Signal (NMI) unterbricht.
9. Vorrichtung nach Anspruch 8, die des Weiteren eine Einrichtung zum Löschen des NMI-Sianals umfasst.
10. Vorrichtung nach Anspruch 6, wobei eine Vielzahl von Vorrichtungen in den ersten (117) und den zweiten (115) Erweiterungsbus eingesteckt sind, und die des Weiteren eine Einrichtung für Abrufvorrichtungen umfasst, die sich an den Erweiterungsbussen befinden, um beim Empfangen des NMI-Signals die Quelle des ersten oder zweiten Typs Fehlersignal zu identifizieren.
11. Computer mit Fehlerbehandlungsmöglichkeit, wobei der Computer umfasst:
eine Vorrichtung nach einem der vorangehenden Ansprüche; und
einen Prozessor (C), der den Unterbrechungs-Eingang erzeugt.
DE69621212T 1995-12-15 1996-12-12 Busfehlerverarbeiter in einem Zweifachbussystem Expired - Lifetime DE69621212T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/573,030 US5790870A (en) 1995-12-15 1995-12-15 Bus error handler for PERR# and SERR# on dual PCI bus system

Publications (2)

Publication Number Publication Date
DE69621212D1 DE69621212D1 (de) 2002-06-20
DE69621212T2 true DE69621212T2 (de) 2002-10-24

Family

ID=24290375

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69621212T Expired - Lifetime DE69621212T2 (de) 1995-12-15 1996-12-12 Busfehlerverarbeiter in einem Zweifachbussystem

Country Status (4)

Country Link
US (1) US5790870A (de)
EP (1) EP0779579B1 (de)
DE (1) DE69621212T2 (de)
TW (1) TW312765B (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911077A (en) * 1996-05-31 1999-06-08 Micron Electronics, Inc. System for multithreaded disk drive operation in a computer system
US5905910A (en) * 1996-05-31 1999-05-18 Micron Electronics, Inc. System for multi-threaded disk drive operation in a computer system using an interrupt processor software module analyzing and processing interrupt signals to control data transfer
US5951686A (en) * 1997-03-31 1999-09-14 International Business Machines Corporation Method and system for reboot recovery
US6119246A (en) * 1997-03-31 2000-09-12 International Business Machines Corporation Error collection coordination for software-readable and non-software readable fault isolation registers in a computer system
US6065139A (en) * 1997-03-31 2000-05-16 International Business Machines Corporation Method and system for surveillance of computer system operations
US6557121B1 (en) * 1997-03-31 2003-04-29 International Business Machines Corporation Method and system for fault isolation for PCI bus errors
US6502208B1 (en) 1997-03-31 2002-12-31 International Business Machines Corporation Method and system for check stop error handling
US5878237A (en) * 1997-07-11 1999-03-02 Compaq Computer Corp. Apparatus, method and system for a comuter CPU and memory to PCI bridge having a pluarlity of physical PCI buses
US6170033B1 (en) * 1997-09-30 2001-01-02 Intel Corporation Forwarding causes of non-maskable interrupts to the interrupt handler
US6393508B2 (en) 1997-09-30 2002-05-21 Texas Instruments Incorporated Method and apparatus for multiple tier intelligent bus arbitration on a PCI to PCI bridge
US6182178B1 (en) * 1998-06-30 2001-01-30 International Business Machines Corporation Method and system for supporting peripheral component interconnect (PCI) peer-to-peer access across a PCI host bridge supporting multiple PCI buses
US6304984B1 (en) * 1998-09-29 2001-10-16 International Business Machines Corporation Method and system for injecting errors to a device within a computer system
FI19991735A (fi) * 1999-08-16 2001-02-17 Nokia Networks Oy Menetelmä ja laite tietokonejärjestelmän toimintavarmuuden parantamiseksi
US6523140B1 (en) * 1999-10-07 2003-02-18 International Business Machines Corporation Computer system error recovery and fault isolation
US6519718B1 (en) * 2000-02-18 2003-02-11 International Business Machines Corporation Method and apparatus implementing error injection for PCI bridges
US6959354B2 (en) * 2001-03-08 2005-10-25 Sony Corporation Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US6904546B2 (en) * 2002-02-12 2005-06-07 Dell Usa, L.P. System and method for interface isolation and operating system notification during bus errors
US7251755B2 (en) * 2004-02-13 2007-07-31 Intel Corporation Apparatus and method for maintaining data integrity following parity error detection
US20080148104A1 (en) * 2006-09-01 2008-06-19 Brinkman Michael G Detecting an Agent Generating a Parity Error on a PCI-Compatible Bus
US8108584B2 (en) 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
US9542251B2 (en) * 2013-10-30 2017-01-10 Oracle International Corporation Error detection on a low pin count bus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS607549A (ja) * 1983-06-24 1985-01-16 Mitsubishi Electric Corp 故障診断装置
US4760516A (en) * 1986-11-25 1988-07-26 Dialogic Corporation Peripheral interrupt interface for multiple access to an interrupt level
US5060139A (en) * 1989-04-07 1991-10-22 Tektronix, Inc. Futurebus interrupt subsystem apparatus
US5177747A (en) * 1989-10-16 1993-01-05 International Business Machines Corp. Personal computer memory bank parity error indicator
US5430747A (en) * 1991-03-14 1995-07-04 At&T Global Information Solutions Company Bus configuration validation for a multiple source disk array bus
US5475846A (en) * 1993-08-11 1995-12-12 Databook Incorporated Apparatus for processing PCMCIA interrupt requests
US5649127A (en) * 1994-05-04 1997-07-15 Samsung Semiconductor, Inc. Method and apparatus for packing digital data
US5608884A (en) * 1995-05-17 1997-03-04 Dell Usa, L.P. Commonly housed multiple processor type computing system and method of manufacturing the same
US5632021A (en) * 1995-10-25 1997-05-20 Cisco Systems Inc. Computer system with cascaded peripheral component interconnect (PCI) buses

Also Published As

Publication number Publication date
EP0779579A3 (de) 1998-06-10
US5790870A (en) 1998-08-04
EP0779579B1 (de) 2002-05-15
DE69621212D1 (de) 2002-06-20
TW312765B (de) 1997-08-11
EP0779579A2 (de) 1997-06-18

Similar Documents

Publication Publication Date Title
DE69621212T2 (de) Busfehlerverarbeiter in einem Zweifachbussystem
DE69030861T2 (de) Bus-Master-Steuerprotokoll
DE69032614T2 (de) Verfahren zur Datenverteilung in einer Speicherplattenanordnung
DE69223303T2 (de) Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.
DE69903629T2 (de) Prüfung der funktionsfähigkeit eines gerätetreibers
DE69032607T2 (de) Physischer, einziger Hauptspeicher, anteilig genutzt durch zwei oder mehr Prozessoren, die ihr jeweiliges Betriebssystem ausführen
DE69031815T2 (de) Initialisation eines fehlertoleranten Datenverarbeitungssystems
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE3788354T2 (de) Eingangs-/ausgangssteuerungstechnik.
DE69721393T2 (de) Umschalten eines Systemwirtsrechners
DE3650036T2 (de) Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung.
DE69032631T2 (de) Verfahren und Anordnung zum Hinzufügen von einer Datenverarbeitungsfunktion zu einem Datenverarbeitungssystem
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE69032254T2 (de) Rechner mit Tastaturkennwortfunktionen
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69032632T2 (de) Fehlertolerantes Datenverarbeitungssystem
DE69126498T2 (de) Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems
DE69032611T2 (de) Anordung und Verfahren zum Verbinden eines Datenprozessors mit einem unbekannten Informationsverarbeitungssystem
DE69033476T2 (de) Schutz von Datenredundanz und -rückgewinnung
DE3688763T2 (de) Mehrfachport-Übertragungsadaptiervorrichtung.
DE69031093T2 (de) Unterbrechungsbedienung in einem Datenverarbeitungssystem
DE60001327T2 (de) Isolierungsmodus zur prüfung von redundanten steuerungseinheiten
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition