DE19847642C2 - PCI-PCI-Brücke - Google Patents

PCI-PCI-Brücke

Info

Publication number
DE19847642C2
DE19847642C2 DE19847642A DE19847642A DE19847642C2 DE 19847642 C2 DE19847642 C2 DE 19847642C2 DE 19847642 A DE19847642 A DE 19847642A DE 19847642 A DE19847642 A DE 19847642A DE 19847642 C2 DE19847642 C2 DE 19847642C2
Authority
DE
Germany
Prior art keywords
pci
bus
bridge
pci bus
primary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19847642A
Other languages
English (en)
Other versions
DE19847642A1 (de
Inventor
Robert Streitenberger
Hiroyuki Kawai
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE19847642A1 publication Critical patent/DE19847642A1/de
Application granted granted Critical
Publication of DE19847642C2 publication Critical patent/DE19847642C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

Die vorliegende Erfindung bezieht sich auf eine PCI-PCI-Brücke. Insbesondere bezieht sich die vorliegende Erfindung auf eine PCI-PCI-Brücke zwischen einem primären PCI-Bus und einem sekun­ dären PCI-Bus, und insbesondere auf eine PCI-PCI-Brücke, welche durch ein vorhandenes BIOS unterstützt wird und das Steuern einer Mehrzahl von PCI-Vermittlern einschließlich einer VGA- Vorrichtung durch den primären PCI ermöglicht.
Ein PCI(Peripheral Component Interconnect, programmierbare Übertragungsschnittstelle)-Bus ist allgemein insbesondere für Personalcomputer (Arbeitsplatzrechner) angepaßt. PCI ist ein Bus-Standard, der durch Intel Corporation befürwortet wird und dessen Spezifikation durch die PCI Special Interest Group (PCI SIG) in den USA bestimmt und veröffentlicht wird.
Gemäß des PCI-Bus-Standards wird eine Vorrichtung, die an einer PCI-Datenübertragung teilnimmt, als ein "Vermittler (Agent)" bezeichnet. Gemäß des PCI-Standards werden Vermittler durch ein BIOS gesteuert, welches durch eine CPU, durch einen Vorrich­ tungstreiber und dergleichen ausgeführt wird. Der PCI-Bus-Stan­ dard sieht eine automatische Konfigurationsfähigkeit bzw. Kon­ figurierungsfähigkeit eines automatischen Erfassens einer Vor­ richtung, welche mit dem Bus zum Zeitpunkt des Einschaltens verbunden ist, und des Vorbereitens der Systemumgebung, wie beispielsweise das Speicheraufteilen bzw. das Bilden eines Speicherabbilds für jedes System, vor.
In der letzten Zeit, da Personalcomputer eine immer bessere Leistungsfähigkeit aufweisen, wurde es eine allgemeine Verfah­ rensweise, Bildverarbeitungsprogramme und dergleichen, welche üblicherweise durch eine Workstation (Arbeitsplatzsystem) aus­ geführt wurden, durch einen Personalcomputer auszuführen. Zu diesem Zweck ist oft eine LSI (integrierte Halbleiterschaltung) zum Ausführen eines derartigen bestimmten Verarbeitens mit einem Hauptrechner-CPU durch einen PCI-Bus in dem Personalcom­ puter verbunden. Verwirklichen bzw. Einbauen einer Mehrzahl von PCI-Vorrichtungen in der integrierten Schaltung ist in einigen Fällen wünschenswert. Dann ist es nötig, den PCI-Bus des Haupt­ rechners an einem PCI-Bus einer hinzugefügten Vorrichtung anzu­ schließen. Hier wird der PCI-Bus in der Hauptrechner-CPU als ein primärer PCI-Bus bezeichnet, und der PCI-Bus einer Schal­ tung (Ergänzungsplatine), welche mit dem primären PCI-Bus ver­ bunden ist, wird als ein sekundärer PCI-Bus bezeichnet.
Falls ein sekundärer PCI-Bus mit dem primären PCI-Bus verbunden ist und eine Mehrzahl von PCI-Vermittlern mit dem sekundären PCI-Bus verbunden sind, ist es nötig, daß der Hauptrechner je­ des PCI unabhängig voneinander steuert. Zu diesem Zweck verwen­ det der PCI-Standard Daten, welche als PCI-Konfigurationskenn­ satz bzw. PCI-Konfigurierungskennsatz (bzw. PCI-Konfigurie­ rungskopf) bezeichnet werden. Der Kennsatz besteht aus zwei Arten, d. h. "00" und "01". Der "00"-Kennsatz wird durch die Hauptrechner-CPU als ein PCI-Vermittler erkannt, und der "01"- Kennsatz ist für die PCI-PCI-Brücke vorgesehen.
Die PCI-PCI-Brücke der Art "01" weist jedoch verschiedene Pro­ bleme auf. Zum Beispiel kann sie nur ein begrenztes BIOS unter­ stützen, es ist schwierig, eine DMA(Direct Memory Access, di­ rekter Speicherzugriff)-Funktion zu unterstützen, und es ist schwierig, einen LSI-Kern in einer Vorrichtung mit dem sekundären PCI-Bus einzubauen. Demgemäß ist das Verwenden des "01"-Kenn­ satzes ziemlich nachteilig, wenn verschiedene Schaltungen für die Bildverarbeitung in einer integrierten Halbleiterschaltungsvor­ richtung eingebaut sind, von denen eine ein PCI-Vermittler ist. Eine Datenübertragung durch die primären und sekundären PCI-Busse muß stabil sein und bei einer hohen Geschwindigkeit stattfinden. Hier ist im allgemeinen der sekundäre Bus schneller als der pri­ märe Bus. Demgemäß wird ein FIFO (First-In-First-Out-Speicher bzw. Eingangsfolgespeicher) für die Datenübertragung benutzt. Falls es jedoch eine Spezifikationsänderung geben sollte, muß auch das FIFO-Design geändert werden, was eine längere Zeit­ periode, die für das Gesamtdesign (bzw. den Gesamtentwurf) nötig ist, zur Folge hat.
Ferner ist es vorteilhaft, die Kompatibilität (Verträglichkeit) mit einer vorhandenen VGA-Vorrichtung derart zu sichern, daß kei­ nerlei Schwierigkeiten oder Unfälle zum Zeitpunkt des Ladens (Bootens) auf der VGA-Vorrichtung angezeigt werden. Obwohl es möglich ist, eine Fehlermeldung zum Zeitpunkt des Ladens unter Verwenden der Ergänzungsplatine für die oben erwähnte Grafikver­ arbeitung anzuzeigen, ist eine derartige Verarbeitung im Ver­ gleich zu dem Vorgang, der die vorhandene VGA-Vorrichtung be­ nutzt, kompliziert. Deshalb ist es vorzuziehen, daß Komponenten einschließlich der VGA-Vorrichtung mit dem sekundären PCI-Bus verbunden sind, und daß die Komponenten wie es nötig ist geschal­ tet werden. Ein derartiger Ansatz ist jedoch schwierig für die PCI-PCI-Brücke des "01"-Kennsatzes.
Aus der DE 196 03 850 A1 ist bekannt, daß ein PCI Local Bus (Pri­ mär Bus) durch eine Grafik-Brücke mit einem PCI Graphics Expansi­ on Bus (Sekundärbus) verbunden ist.
Deshalb ist es eine Aufgabe der vorliegenden Erfindung, eine PCI- PCI-Brücke anzugeben, welche eine integrierte Halbleiterschaltungsvorrichtung, die einen sekundären PCI-Bus aufweist, mit ei­ nem primären PCI-Bus ohne Verwenden des "01"-Kennsatzes verbindet und zu einem unabhängigen Steuern einzelner PCI-Vermittler fähig ist,
welche fähig ist, einen sekundären PCI-Bus und einen primären PCI-Bus in Fällen zu verbinden, in denen eine VGA-Vorrichtung wie auch PCI-Vermittler eingebaut sind,
welche in einer einfachen Weise eine Fehlermeldungsanzeige zum Zeitpunkt des Ladens unter Verwenden einer vorhandenen VGA-Vor­ richtung ermöglicht,
welche eine DMA-Übertragung ermöglicht,
welche zu einer Hochgeschwindigkeitsdatenübertragung zwischen ei­ nem Hauptspeicher und einem PCI-Vermittler oder einer Betriebs­ schaltung zum Ausführen einer bestimmten Betriebsweise auf dem sekundären PCI-Bus fähig ist, und
einen FIFO anzugeben, welcher für die PCI-Brücke benutzt wird und das Design bzw. den Aufbau der PCI-PCI-Brücke erleichtert.
Diese Aufgabe wird gelöst durch eine PCI-PCI-Brücke nach Anspruch 1.
Weiterbildungen der Erfindung sind in den Unteransprüchen ange­ geben.
Die PCI-PCI-Brücke gemäß Ausführungsformen der vorliegenden Er­ findung ist mit einem primären PCI-Bus und einem sekundären PCI- Bus verbunden und weist eine Brückenschaltung zum Verbinden des sekundären und primären PCI-Busses und zum Steuern der Datenüber­ tragung dazwischen auf. Die Brückenschaltung besitzt einen "00"- Konfigurationskennsatz und weist eine Schaltung zum Identifizie­ ren zu dem Zeitpunkt der Konfiguration eines PCI-Vermittlers aus einer Mehrzahl von PCI-Vermittlern auf dem sekundären PCI-Bus auf der Basis eines Wertes eines Funktionsnummernfeldes eines Konfigurationsbefehls, welcher von einem Vorrichtungstreiber angelegt ist, und zum Aus­ führenlassen der Konfiguration durch die identifizierten Vermitt­ ler auf.
Die PCI-PCI-Brücke, welche einen "00"-Kennsatz verwendet, wird durch das BIOS auf sichere Weise unterstützt. Obwohl die Brücke nicht durch das BIOS als eine PCI-PCI-Brücke erkannt wird, ist die Brücke fähig, einen einer Mehrzahl von PCI-Vermittlern auf dem sekundären PCI-Bus unter Verwendung des Funktionsnummern­ feldes des Konfigurationskennsatzes derart zu identifizieren, daß sie es dem identifizierten Vermittler ermöglicht, die Kon­ figuration auszuführen. Als eine Folge wird es für einen Vor­ richtungstreiber möglich, Vermittler auf dem sekundären PCI-Bus auf flexible Weise zu steuern.
Die Mehrzahl von PCI-Vermittlern weist eine VGA-Vorrichtung und andere PCI-Vermittler auf. Die Brückenschaltung ist auf selek­ tive Weise in einem eines ersten Modus, in dem ein Speicherab­ bild nur für die VGA-Vorrichtung aktiv ist, und einem zweiten Modus, in dem PCI-Vermittlern, welche andere sind als die VGA-Vorrichtung, aktiv sind, betreibbar.
Daß das Schalten zwischen dem ersten Modus, in dem nur die VGA- Vorrichtung betreibbar ist, und dem zweiten Modus, in dem PCI- Vermittler, welche andere sind als das VGA, betreibbar sind, möglich ist, ermöglicht eine gleichzeitige Ausführung eines Programmes, welches die VGA-Vorrichtung verwendet und in dem üblichen DOS-Modus arbeitet, und einer neuen Prozedur (bzw. Verfahren) durch einen PCI-Vermittler.
Die Brückenschaltung wird in dem ersten Modus geladen und in den zweiten Modus geschaltet durch einen Vorrichtungstreiber, welcher auf einem Prozessor arbeitet, der mit dem primären PCI- Bus verbunden ist.
Da die Brückenschaltung in dem ersten Modus, in dem nur das Speicherabbild für das VGA aktiv ist, aktiviert wird, kann die Anzeige beispielsweise einer Fehlermeldung auf einfache Weise durch das VGA durchgeführt werden. Hat der Vorrichtungstreiber seinen Betrieb gestartet (bzw. begonnen), wird der Betriebsmo­ dus in den zweiten Modus geschaltet, und deshalb kann das Aus­ führen eines Verarbeitens unter Verwendung der PCI-Vorrichtung ruhig gestartet werden.
Ferner weist die PCI-PCI-Brücke eine Betriebsschaltung bzw. einen Betriebskern zum Ausführen eines bestimmten Verarbeitens, die fä­ hig zu einer Datenübertragung mit dem primären und dem sekundären PCI-Bus ist, auf. Die Brückenschaltung verwaltet eine Daten­ übertragung/einen Datenempfang zwischen der Betriebsschaltung und dem primären und sekundären Bus.
Das Verwirklichen der Betriebsschaltung auf der PCI-PCI-Brücke sichert eine leistungsfähige Bedienung für das Hauptrechner-CPU. Insbesondere wenn die Menge der Berechnung gewaltig ist, wie in einer Grafikverarbeitung, verringert das Vorsehen einer zweckbe­ stimmten Betriebsschaltung die Last auf das Hauptrechner-CPU.
Die PCI-PCI-Brücke weist ferner eine Schnellablaufdatenübertra­ gungsschaltung auf, welche für ein Triggern einer direkten Daten­ übertragung von dem Hauptspeicher durch den Vorrichtungstreiber zum Ausführen der folgenden zweckbestimmten Datenübertragung ohne ein Eingreifen des Vorrichtungstreibers verantwortlich ist, und verantwortlich ist für eine Verbindungsliste, welche an ein hin­ teres Ende eines zu übertragenden Datenblockes angehängt ist, zum Ausführen einer Datenübertragung, welche durch die Verbindungsli­ ste neu bestimmt ist, ohne ein Eingreifen des Vorrichtungstrei­ bers.
Ist die anfängliche DMA-Übertragung einmal eingesetzt, wird die DMA-Übertragung in einem Schnellablauf konfiguriert, und die nächste DMA-Übertragung wird automatisch ausgeführt. Demgemäß gibt es keinen zusätzlichen Platzbedarf (bzw. Raumbedarf) des Hauptrechners (Host; Vorrichtungstreibers) bei der Datenübertra­ gung von dem Hauptspeicher zu anderen Komponenten, wodurch eine effiziente Datenübertragung möglich ist.
Gemäß eines anderen Aspektes ist ein First-In-First-Out-Speicher (Eingangsfolgespeicher) zum Anschließen einer Datenübertragung zwischen Komponenten, welche auf verschiedenen Taktfrequenzen ar­ beiten, vorgesehen und weist eine Schreibzustandsmaschine für ei­ nen Schreibanschluß, eine Lesezustandsmaschine für einen Leseanschluß und eine Mehrzahl von Speicherbereichen (bzw. Speicherbanken), welche parallel zwischen der Schreibzustandsma­ schine und der Lesezustandsmaschine angeordnet sind, auf.
Die Größe des First-In-First-Out-Speichers kann auf einfache Wei­ se durch die Anzahl von Speicherbereichen, welche parallel zwi­ schen der Schreibzustandsmaschine und der Lesezustandsmaschine angeordnet sind, geändert werden. Mit dem auf diese Weise aufge­ bauten First-In-First-Out-Speicher ist in einem Design (bzw. in einer Anordnung), welches beispielsweise eine Hardware-Beschrei­ bungssprache verwendet, die Größe des First-In-First-Out-Spei­ chers auf einen Parameter verringert, d. h. auf die Anzahl von an­ geordneten Speicherbereichen. Dies vereinfacht das Modifizieren des Designs des First-In-First-Out-Speichers bei einem plötzli­ chen Designwechsel oder Spezifikationswechsel, und daher wird die Zeitspanne, welche für die Vorrichtungsentwicklung nötig ist, kürzer.
Es folgt die Beschreibung von Ausführungsformen der vorliegenden Erfindung anhand der beiliegenden Figuren. Von diesen zeigen:
Fig. 1 ein Blockdiagramm einer Gesamtkonfiguration ei­ nes Systems, welches eine PCI-PCI-Brücke gemäß einer ersten Ausführungsform der vorliegenden Erfindung aufweist,
Fig. 2 ein Blockdiagramm der PCI-PCI-Brücke gemäß der ersten Ausführungsform der vorliegenden Erfin­ dung,
Fig. 3 eine Bitkonfiguration des "00"-Kennsatzes,
Fig. 4 eine Tabelle einer Beziehung zwischen Funktions­ nummern und entsprechenden Vorrichtungen,
Fig. 5 eine Tabelle der Bedeutungen von Koppelleitungs­ signalwerten, welche anzeigen, ob eine VGA-Vor­ richtung enthalten ist oder nicht,
Fig. 6 das Lesen aus einem Ergänzungsregister (bzw. nicht-adressierbaren Register),
Fig. 7 das Schreiben in ein Ergänzungsregister,
Fig. 8, 9 und 10 ein Maskieren zum Zeitpunkt des Schreibens in das Register,
Fig. 11 ein allgemeines schematisches Speicherabbild,
Fig. 12 ein schematisches VGA-Speicherabbild
Fig. 13 die Beziehung einer IDSEL-Verbindung zwischen der Brücke und einer VGA-Vorrichtung,
Fig. 14 eine Tabelle von Registern zum Einstellen einer DMA-Übertragung
Fig. 15, 16, 17 und 18 ein Verfahren der Schnellablaufkonfiguration zur DMA-Übertragung,
Fig. 19 niederwertige (bzw. untere) 2 Bits einer 'DMA_Quelle' von Verbindungsdaten,
Fig. 20 einen asynchronen Quittungsaustausch (d. h. Hand­ shake-Betrieb) eines FSM und eines SSO FSM in einem primären I/O,
Fig. 21 die Beziehung einer Signaleingabe/ausgabe zwi­ schen dem SSO FSM und einem sekundären FSM,
Fig. 22 ein Zustandsschaubild des SSO FSM,
Fig. 23 eine Darstellung von Signalformen, wenn ein 'P2S'-POST-Betrieb (power on self testing, Einschaltselbsttesten) auf kontinuierliche Weise für eine Mehrzahl von Zyklen ermöglicht wird,
Fig. 24A und 24B eine Beziehung zwischen einem Wert eines 'P2S_Burst'-Registers und einem Datenübertra­ gungszeitablauf,
Fig. 25A und 25B eine Beziehung zwischen einem Wert eines 'C2S_Burst'-Registers und einem Datenübertra­ gungszeitablauf,
Fig. 26A und 26B eine Beziehung zwischen einem Wert eines 'DMA_Burst'-Registers und einem Datenübertra­ gungszeitablauf,
Fig. 27 eine schematische Konfiguration eines POST- Betriebs-FIFO-Puffers, und
Fig. 28 eine Konfiguration einer Positionsscheibe in dem POST-Betriebs-FIFO.
Im folgenden wird eine Ausführungsform beschrieben, welche als eine Ergänzungsplatine unter Verwendung einer PCI-PCI-Brücke, die in einem Grafikprozessor eingebaut ist, verwirklicht ist. Es versteht sich von selbst, daß Ausführungsformen der vorlie­ genden Erfindung in der Form einer beliebigen Platine verwirk­ licht werden können, welche nicht nur für den Grafikprozessor, sondern auch für andere Verarbeitungen geeignet sind.
Es wird auf Fig. 1 Bezug genommen; eine PCI-PCI-Brücke 40 gemäß einer Ausführungsform der PCI-PCI-Brücke der vorliegenden Er­ findung ist auf einer Ergänzungsplatine 24 verwirklicht (d. h. eingebaut) und ist mit einem primären PCI-Bus 20 verbunden. Eine Hauptplatine 22 ist mit dem primären PCI-Bus 20 verbunden. Verschiedene Schaltungen auf der Ergänzungsplatine werden durch ein BIOS gesteuert, das durch einen Prozessor 32 oder einen Vorrichtungstreiber auf der Hauptplatine 22 ausgeführt wird.
Die Hauptplatine 22 weist einen Prozessor 32, ein Cache 34, einen Speicher 38 und einen Chipsatz 36 zum Steuern der Daten­ übertragung jeweils zwischen dem Prozessor 32, dem Speicher 38 und dem primären PCI-Bus 20 auf.
Die Ergänzungsplatine 24 weist einen sekundären PCI-Bus 46, welcher durch die PCI-PCI-Brücke 40 mit dem primären PCI-Bus 20 verbunden ist, einen RC (Rendering Controller, Bildaufberei­ tungssteuerung) 48 zur Grafikbildaufbereitung, zwei verschie­ dene Vorrichtungen 50 und 52 bzw. eine VGA-Vorrichtung 54, wel­ che mit dem sekundären PCI-Bus 46 verbunden sind, auf. Die PCI- PCI-Brücke 40 weist einen GE(Geometric Engine, geometrische Maschine)-Kern 44 zum Ausführen einer geometrischen Betriebs­ weise unter den Bildverarbeitungen und einen Brückenabschnitt 42 zum Anschließen einer Datenübertragung jeweils zwischen dem primären PCI-Bus 20, dem sekundären PCI-Bus 46 und dem GE-Kern 44 auf. Es versteht sich von selbst, daß die PCI-Vorrichtungs­ konfiguration nicht auf das in dieser Ausführungsform gezeigte Beispiel beschränkt ist.
Es wird auf Fig. 2 Bezug genommen; die PCI-PCI-Brücke 40 wird nun detaillierter beschrieben. Die PCI-PCI-Brücke 40 weist einen Kern-I/O (d. h. Kern-Eingabe/Ausgabe) 66 zwischen dem Brückenabschnitt 42 und dem GE-Kern 44, einen primären I/O (d. h. Eingabe/Ausgabe) 62 zwischen dem Brückenabschnitt 42 und dem primären PCI-Bus 20 und einen sekundären I/O 64 zwischen dem Brückenabschnitt 42 und dem sekundären PCI-Bus 46 auf. Der GE-Kern 44 sichert eine leistungsfähige Unterstützung für die Bildverarbeitung und verringert die Last auf den Prozessor 32.
Der primäre I/O 62 weist einen Ziel-FSM (target-FSM; Finite State Machine, endlicher Automat oder Zustandsmaschine) 72 und einen Haupt-FSM (d. h. Master-FSM) 74 auf. Der sekundäre I/O 64 weist einen Haupt-FSM 76 auf, welcher die Eingabe/Ausgabe in und aus dem sekundären PCI-Bus 46 steuert. Der sekundäre I/O 64 weist SSO (Simultaneous Switching Outputs, gleichzeitige Schaltausgaben) auf, welche nicht gezeigt sind, als einen Auto­ mat, der die Betriebsweisen des primären und sekundären PCI- Busses 20 und 46 steuert, wie später beschrieben wird.
Der Brückenabschnitt 42 weist ein FIFO 82 zwischen dem primären I/O 62 und dem sekundären I/O 64 und FIFOs 84 und 86 auf, welche zwischen dem primären I/O 62 und dem GE-Kern 44 bzw. zwischen dem sekundären I/O 64 und dem GE-Kern 44 vorgesehen sind.
Von den Konfigurationsplatzkennsätzen (bzw. Konfigurationskenn­ sätzen oder Konfigurationsraumkennsätzen) gemäß des PCI-Bus- Standards wird der "00"-Kennsatz in der Ergänzungsplatine 24 gemäß der vorliegenden Ausführungsform benutzt, und wird auf sichere Weise durch alle BIOS unterstützt. Aufgrund des Fehlens der BIOS-Unterstützung für PCI-PCI-Brücken, welche den "01"- Konfigurationsplatz aufweisen, wurde ein besonderer Ansatz in der vorliegenden Ausführungsform durchgeführt, wie im folgenden erklärt wird.
Der Konfigurationsplatz bzw. Konfigurationsraum, der sich in­ neralb der Ergänzungsplatine 24 befindet, wird nur durch das Brückenchip vertreten, wenn der "00"-Kennsatz benutzt wird. Verschiedene PCI-Vermittler und dergleichen, welche darin ent­ halten sind, können nicht durch das BIOS, das durch den Prozes­ sor 32 ausgeführt wird, erfaßt werden. Die PCI-Vermittler oder das VGA in der Ergänzungsplatine 24 kann nicht einen beliebigen Speicherplatz bzw. Speicherraum von dem BIOS abrufen, wenn eine POST(Power-On Self Testing, Einschaltselbsttesten)-Routine, welche ein Teil des BIOS ist, zum Erhalten einer Information für die Konfiguration (bzw. für das Konfigurieren) beim Ein­ schalten ausgeführt wird. Daher muß in der Ergänzungsplatine 24 gemäß der vorliegenden Ausführungsform die PCI-PCI-Brücke den Speicherraum für die Vermittler oder das VGA abrufen. Da sich die VGA-Vorrichtung 54 auf der Ergänzungsplatine 24 der vorlie­ genden Ausführungsform befindet, muß die Verwaltung des Spei­ cherraumes zusätzlich zu dem Zeitpunkt des Ladens berücksich­ tigt werden, was später beschrieben wird.
Alle Register mit Ausnahme von ID-Registern (wie beispielsweise Verkäufer/Vorrichtungs- und Nachprüfungs-ID), welche einzigar­ tige IDs liefern, vertreten (d. h. repräsentieren) die Ergän­ zungsplatine 24, wie sie an dem primären PCI-Bus erfaßt wird. Beispielsweise bestimmen die Zustands/Befehls-Bits in einem Register 04h das Verhalten der Ergänzungsplatine auf dem primären PCI-Bus. Falls Speicherzyklen über das Bit [1] des Registers 04h in dem Konfigurationsraum der Brücke gesperrt werden, können keine Daten zu den Vorrichtungen auf dem sekun­ dären PCI-Bus übertragen werden, sogar falls ihre Konfigura­ tionseinstellung Speicherzyklen freigibt.
Nach dem Initialisieren/Zurücksetzen befindet sich die Ergän­ zungsplatine in einem gesperrten Zustand. Während der POST- Routine wird der Brücke durch das BIOS Speicherplatz (bzw. Speicherraum) zugeordnet gemäß des Wertes in einem Register 10h des Konfigurationsplatzes der Brücke. Die Zuordnung des Spei­ cherplatzes wird durch die PCI-PCI-Brücke 40 im Auftrag der Ergänzungsplatine angefordert. Das BIOS ordnet den Platz bzw. Raum der PCI-PCI-Brücke 40 zu, während es keinen Einfluß auf die Zuordnungsgrenzen innerhalb dieses Raumes ausübt. Die Zuordnungsgrenzen werden nur durch die PCI-PCI-Brücke 40 und den Vorrichtungstreiber, der auf dem Prozessor 32 arbeitet, bestimmt.
Das BIOS erkennt nicht die Existenz des sekundären PCI-Busses, da kein "01"-Kennsatz für die PCI-PCI-Brücke der vorliegenden Ausführungsform benutzt wurde. Daher muß der Vorrichtungstrei­ ber die Vorrichtungen auf dem sekundären PCI-Bus intialisieren und konfigurieren, anstelle des BIOS. Dies beinhaltet zunächst das Setzen von Basisadressenregistern (BAR). Der Inhalt der BARs vertritt (d. h. repräsentiert) den Offset (d. h. Versatz) des Speicherraumes, der entsprechenden Vorrichtungen zugewiesen ist. Da kein Speicherraum entsprechenden Vorrichtungen zu­ geordnet ist, kann auf die Vorrichtungen nicht über "Speicher­ lese/schreib"-Befehle zugegriffen werden. Jedoch kann der Vor­ richtungstreiber auf die Konfigurationsplätze der Vorrichtungen über einen bestimmten "Konfigurationslese/schreib"-Befehl (welcher im folgenden beschrieben wird) zugreifen.
Auf der Basis des Wertes, welcher in das Register 10h des Kon­ figurationsraumes der Brücke durch das BIOS geschrieben wurde, ordnet der Vorrichtungstreiber die Basisadresse (bzw. Grund­ adresse) der Vorrichtungen, die mit dem sekundären PCI-Bus verbunden sind, gemäß des Speicherabbildes zu. Daher muß der Vorrichtungstreiber die entsprechenden Werte in das Register 10h des Konfigurationsraumes der entsprechenden Vorrichtung auf dem sekundären PCI-Bus schreiben.
Der Konfigurationsmechanismus #1 verwendet, wie durch die PCI- Spezifikation (Überarbeitung 2.1) vorgeschlagen ist, zwei DWort-(DWort vertritt zwei 16-Bit-Wörter)-I/O-Stellen für das Erzeugen von Konfigurationszyklen (bzw. Konfigurierungszyklen) über die Hauptrechnerbrücke. Die erste DWort-Stelle (CF8h) be­ zieht sich auf ein R/W-Register mit dem Namen "CONFIG_ADDRESS". Fig. 3 zeigt ein Format dieses Registers 90.
Es wird auf Fig. 3 Bezug genommen; das Register 90 weist die Registernummer (Bits [7:2]) und die Funktionsnummer (Bits [10:8]) des Ziel-Konfigurationsraumes auf. Da die Brücke einen "00"-Kennsatz verwendet, wird die Brücke nicht als eine Mehr­ funktions-Vorrichtung (multifunktionale Vorrichtung) betrach­ tet, und drei Bits der Funktionsnummer werden nicht durch das BIOS benutzt. Deshalb können diese drei Bits frei durch den Vorrichtungstreiber verwendet werden. Der Ziel-Konfigurations­ raum wird durch Verwenden dieser drei Bits bestimmt, und die Weise der Bestimmung ist in Fig. 4 in der Form einer Tabelle angezeigt.
In Fig. 4 vertritt "AD" Daten auf einem Adreß-Vorrichtungsbus (bzw. Adreß.Vorrichtungsbus). "Bestimmungsort" vertritt den Bestimmungsort. Die rechte Spalte der Fig. 4 vertritt Beispiele (bzw. stellt diese dar) von Zielvorrichtungen, welche den Be­ stimmungsorten entsprechen. Unter den Beispielen der Fig. 4 ist die Funktionsnummer ohne Fehler zugeordnet, wenn es eine VGA- Vorrichtung gibt. Mit Ausnahme der VGA-Vorrichtung können alle Vorrichtungen willkürlich durch den Systemplaner bzw. System­ entwerfer) angesteuert werden.
Auf den Konfigurationsraum der Brücke kann direkt und ohne Wartezeit zugegriffen werden durch Setzen der Funktionsnummer auf 000b (oder voreingestellte Werte 101b, 110b, 111b). Falls beispielsweise auf eine Vorrichtung 1 (VORR_1) zugegriffen wer­ den soll, muß die Funktionsnummer auf 001b gesetzt sein. Auf dem primären PCI-Bus wird ein Konfigurationszyklus (bzw. Konfi­ gurierungszyklus) erzeugt und durch die Brücke beansprucht, da sein 'IDSEL' zu diesem Zeitpunkt aktiviert ist.
Dieses Signal entspricht einem sogenannten Chipauswahlsignal zum Auswählen einer Vorrichtung zum Ausführen der Konfiguration bzw. der Konfigurierung. Die Adresse wird durch einen primären FSM (Finite State Machine, endlicher Automat) in dem Brückenab­ schnitt 42 analysiert. Wenn das "100b" in den Funktionsnummern­ bits erfaßt wird, wird ein 'Brückendatenweg' (Verbinden des primären I/O 62 mit dem sekundären I/O 64 in Fig. 2) innerhalb der Brücke verwendet, und der Zyklus schreitet zu dem zweiten FSM innerhalb der PCI-PCI-Brücke fort. Gemäß der Tabelle der Fig. 4 wird eine entsprechende 'S_A_D'(Secondary Address Data, Sekundäradreßdaten)-Leitung aktiviert, und der fortgeschrittene Konfigurationszyklus wird auf dem zweiten PCI-Bus erzeugt. Hier wird die Funktionsnummer auf 000b zurückgesetzt.
VGA
Ein VGA hat einen festen, DOS-kompatiblen (bzw. DOS-verträgli­ chen) Speicherbereich (A0000-BFFFFh) und einen festen Satz von I/O-Anschlüssen (3B0-3BB, 3C0-3DFh). VGA-Vorrichtungen auf einem PCI haben außerdem relativierbare (d. h. verschiebbare) Optionen für den Speicher und für den IO-Raum.
Falls mehrere VGA-Vorrichtungen in dem System vorhanden sind, können sie nicht denselben Speicher und denselben IO-Raum tei­ len. Deshalb relativiert (d. h. verschiebt) das BIOS diese, wie es nötig ist, bevor es die VGA-Vorrichtungen freigibt. Es ist erforderlich, daß alle PCI-Vorrichtungen mit gesperrtem zuge­ hörigen Speicher und I/O-Raum eingeschaltet werden, um Kon­ flikte zu verhindern, bis die POST-Routine beendet ist.
Die PCI-PCI-Brücke der vorliegenden Ausführungsform unterstützt sowohl voreingestellten, DOS-kompatiblen Speicherraum und sein relativiertes Gegenstück. Jedoch unterstützt es nur DOS-kompa­ tiblen voreingestellten I/O-Raum und sein relativiertes Gegen­ stück innerhalb der unteren 64 KB, wie auch einige bestimmte Adressen.
Die Vorrichtungen, die sich an dem sekundären PCI-Bus befinden, können nicht durch das BIOS erfaßt werden, wenn der "00"-Kenn­ satz in der PCI-PCI-Brücke benutzt wird. Falls es eine VGA- Vorrichtung auf dem sekundären Bus gibt, muß sie dem BIOS wäh­ rend der POST-Routine angezeigt werden.
Die PCI-PCI-Brücke der vorliegenden Ausführungsform muß im vor­ aus wissen, ob es eine VGA-Vorrichtung auf dem sekundären PCI- Bus gibt. Diese Information wird durch ein Koppelleitungssignal gesetzt, welche an einen bestimmten Anschlußstift, wie bei­ spielsweise in Fig. 5 gezeigt, angelegt wird. Das Signal wird beispielsweise durch einen DIP-Schalter angelegt und nur einmal gesetzt in Abhängigkeit davon, ob die Vorrichtungen, die mit der sekundären PCI-Brücke verbunden sind, eine VGA-Vorrichtung aufweisen oder nicht. In dem in Fig. 5 gezeigten Beispiel ist, falls das Signal, welches an den Anschlußstift angelegt ist, 0b lautet, eine VGA-Vorrichtung nicht vorhanden bzw. falls das Signal 1b lautet, ist eine VGA-Vorrichtung vorhanden.
Falls der Wert des Koppelleitungssignals "an" lautet, d. h. wenn der Wert des Anschlußstiftes 1b beträgt, müssen die mit dem VGA in Beziehung stehenden Register innerhalb des Konfigurations­ raumes durch die PCI-PCI-Brücke ergänzt werden. Hier bedeutet "ergänzen" kurz gesagt das Halten einer Kopie. Insbesondere ist außer den Voreinstellungsregistern (bzw. voreingestellten Regi­ stern) ein zweckbestimmtes Register für VGA-bezogene Zugriffe in der PCI-PCI-Brücke vorgesehen. Abhängig von dem Koppellei­ tungssignalwert wird entweder das Voreinstellungsregister oder das zweckbestimmte VGA-Register für einen Lese/Schreib-Zugriff auf den Konfigurationsraum der PCI-PCI-Brücke ausgewählt.
Register, die ergänzt werden sollen, weisen Befehlsregister [04h], Ergänzungsplatinen-Speicherbasisadreßregister [10h] und erweiterte ROM-Basisadreßregister [30h] auf.
Es wird auf Fig. 6 Bezug genommen; eine Kopie des Registers 04h der VGA-Vorrichtung 54 wird in der PCI-PCI-Brücke 40 gehalten. Wenn das Koppelleitungssignal an ist und es einen Konfigura­ tionslesezugriff gibt, wird ein Wert nicht von dem Register 04h der VGA-Vorrichtung 54, sondern von der Kopie, welche dem Regi­ ster 04h der PCI-PCI-Brücke 40 entspricht, gelesen, wie es in Fig. 6 gezeigt ist. Im Falle des Schreibens werden kopierte Re­ gister der PCI-PCI-Brücke 40 geschrieben, und der Zyklus wird in der PCI-PCI-Brücke 40 maskiert, und durch den sekundären PCI-Bus 46 wird das Register 04h in den Konfigurationsraum der VGA-Vorrichtung 54 geschrieben.
Daher werden die wesentlichen Register des Konfigurationsraumes der VGA-Vorrichtung während des POST-Betriebes wie erforderlich initialisiert. Das BIOS gibt den Speicher und den I/O-Raum frei durch Setzen der entsprechenden Bits in das Befehlsregister, dessen Information ebenfalls zu der VGA-Vorrichtung geliefert wird, wodurch die VGA-Vorrichtung initialisiert/konfiguriert wird.
Besondere Sorgfalt muß angewendet werden, wenn die VGA-bezoge­ nen Konfigurationszyklen zu der VGA-Vorrichtung auf dem sekun­ dären Bus geliefert werden. Zum Beispiel unterstützt die PCI- PCI-Brücke nicht das Abtasten einer DAC(Digital/Analog Conver­ sion, Digital/Analog-Umwandlung)-Palette. Daher wird Bit [5] des Konfigurationsraumes der PCI-PCI-Brücke auf "0" festver­ drahtet und sind nicht beschreibbar. Falls der vollständige Konfigurationszyklus zu dem sekundären PCI-Bus fortgeschritten ist, wird fehlerhaftes Schreiben in das Register 04h des Konfi­ gurationsraumes der VGA-Vorrichtung möglich, wodurch ein Abta­ sten auf dem sekundären PCI-Bus freigegeben werden kann.
Demgemäß werden kritische Bitbereiche gegen ein beliebiges zu­ fälliges Schreiben durch Maskieren der entsprechenden Bits geschützt. Im Falle des Registers 04h werden die Bits [15:2] zwangsweise auf "0" gesetzt, wie in Fig. 8 gezeigt ist.
Das selektive Maskieren ermöglicht, daß die Zustandsbits ge­ löscht werden und der Speicher und der I/O-Raum der VGA-Vor­ richtung freigegeben wird. Das Löschen der Zustandsbits ist eine Vorsichtsmaßnahme, um eine Fehlfunktion der VGA-Vorrich­ tung nach dem Zurücksetzen zu verhindern, falls seine Zustands­ bits nicht gelöscht sind. Das BIOS löscht typischerweise jene Bits während der Initialisierung vor anderen Zugriffen auf die VGA-Vorrichtung.
Das Register 10h ist nicht von der Koppelleitung abhängig, so­ weit Lese/Schreibzulassungen betroffen sind. Falls ein Konfigu­ rationsschreibzugriff auf dieses Register stattfindet, wird jedoch der Zugriff zu der sekundären Seite geliefert. Fig. 9 zeigt ein Maskieren zu dem Zeitpunkt des Lieferns (bzw. Fort­ schreitens).
Das Maskieren der unteren (bzw. niederwertigsten) 27 Bits, wie sie in Fig. 9 gezeigt sind, sichert, daß der Speicherraum der VGA-Vorrichtung auf 128 Mbyte ausgerichtet wird. In anderen Worten wird die untere Grenze des Speicherraumes der VGA-Vor­ richtung mit dem unteren Bereich des Speicherbereiches, der durch die PCI-PCI-Brücke abgerufen wird, ausgerichtet.
Register 30h ist vollständig abhängig von der Koppelleitung und wird nicht beschreibbar sein, falls das Koppelleitungssignal aus ist. Falls das Koppelleitungssignal an ist, findet ein Mas­ kieren, wie es in Fig. 10 gezeigt ist, statt. Das Maskieren der unteren (bzw. niederwertigsten) 24 Bits (unter der Annahme, daß LSB "0" beträgt) sichert, daß der ROM-Raum der VGA-Vorrichtung auf 16 Mbyte ausgerichtet ist, und gibt dem BIOS die Fähigkeit, das Erweiterungs-ROM über den LSB freizugeben/zu sperren.
Die Größe des Speicherraumes, der durch das Register 10h des Konfigurationsraumes der VGA-Vorrichtung abgerufen wird, hängt von der entsprechenden VGA-Vorrichtung ab. Die Größe kann von mehreren Mbit bis 64 Mbyte oder mehr reichen. Um so viele VGA- Vorrichtungen wie möglich zu unterstützen, wird der folgende besondere Ansatz gemacht.
Insbesondere wird der Vorrichtungstreiber angepaßt, um zwischen einem auswählbaren (bzw. kompatiblen) Speicherabbild, wie es in Fig. 11 gezeigt ist, und dem VGA-Speicherabbild, wie es in Fig. 12 gezeigt ist, zu schalten. Schalten ist möglich durch Betrei­ ben des Bit [0] eines Registers 40h des PCI-PCI-Brücken-Konfi­ gurationsraumes. Es wird auf Fig. 11 Bezug genommen; gemäß des auswählbaren Speicherabbilds wird ein Speicherraum 120 in einen Raum 132 zum Überbrücken (Steuerung) der unteren 4 Mbyte, einen Raum 134 zum Überbrücken (Kern) der darüber angeordneten 4 Mbyte und einen Raum 136 für entsprechende Vorrichtungen ge­ teilt. Das VGA-Speicherabbild wird in einen VGA-Raum 138 von 124 Mbyte und einen Raum 140 (4 Mbyte) zum Überbrücken (Steue­ rung) darüber geteilt.
Beim Starten läuft die PCI-PCI-Brücke mit dem aktiven VGA-Spei­ cherabbild an. Nachdem das BIOS den 5-Bit-Offset festsetzt, d. h. 128-Mbyte-Speicherbereich zuordnet, liefert die PCI-PCI- Brücke die unteren 124 Mbyte an den sekundären PCI-Bus. Da alle Vorrichtungen mit Ausnahme der VGA-Vorrichtung mit gesperrtem Speicher und I/O-Raum anlaufen, beansprucht nur das VGA, wel­ ches durch das BIOS freigegeben wurde, die Zyklen. Nach dem Laden startet der Vorrichtungstreiber seine Funktion (seinen Betrieb). Der Vorrichtungstreiber sperrt das VGA, gibt andere Vorrichtungen frei und wählt das auswählbare Speicherabbild aus. Beim Starten wird das VGA-Speicherabbild ausgewählt, und es erleichtert die Anzeige einer Fehlermeldung, falls vorhan­ den, durch Verwenden der VGA-Vorrichtung. Das Speicherabbild der Fig. 11 und das Speicherabbild der Fig. 12 kann durch den Betrieb des Bit [0] des Registers 40h des PCI-PCI-Brücken-Kon­ figurationsraumes geschaltet werden. Demgemäß wird, wenn ein DOS-kompatibles Programm benutzt wird, das Programm durch Schalten des Speicherabbildes zu demjenigen, das in Fig. 12 ge­ zeigt ist, ausgeführt.
Um eine Fehlerbehandlung zu unterstützen, müssen die entspre­ chenden Antworten ausgewählt werden, die Hilfsmittel müssen freigegeben werden, und die Zustands-Flags müssen zum Freigeben des Treibers zugreifbar (bzw. erreichbar) sein, um die Anfragen (bzw. das Abrufen) zu bedienen (bzw. zu senden). Dies kann nicht erfolgen, falls der PCI-PCI-Brückenspeicherraum nicht freigegeben ist, d. h. falls das auf den Speicher abgebildete Konfigurationsraumregister nicht zugreifbar ist. Deshalb wird der PCI-PCI-Brückenspeicherraum, der an bzw. in den unteren 4 Mbytes des auswählbaren Speicherabbildes ansässig ist, derart angepaßt, daß er zu den oberen 4 Mbyte des VGA-Speicherabbildes verschiebbar (bzw. relativierbar) ist.
Um fähig zu sein, die VGA-bezogenen Konfigurationszyklen zu der VGA-Vorrichtung zu liefern, muß die 'IDSEL'-Leitung einer VGA- Vorrichtung 54 mit einer festen Leitung wie in Fig. 13 ange­ zeigt verbunden sein. Die Verbindung entspricht der in der Tabelle der Fig. 4.
DMA-Zugriff
Wenn ein DMA (Direct Memory Access, Direktspeicherzugriff) aus­ geführt wird, arbeitet die PCI-PCI-Brücke als ein Master auf dem primären PCI-Bus mit dem Hauptspeicher, d. h. der "Haupt­ rechnerbrücke" (welche in einem Chipset vorhanden ist) als ein Ziel. Daten werden entweder zu einem GE-Kern 44 oder zu dem se­ kundären PCI-Bus 46 übertragen.
Um einen DMA-Zugriff auszulösen, muß der Vorrichtungstreiber DMA-bezogene Register mit Werten in der PCI-PCI-Brücke laden und ein Flag setzen, welches den DMA-Zugriff triggert (d. h. durch Impulse ansteuert). Die Startadresse des Blockes, welcher übertragen werden soll, ist in einem Register 'DMA_Quelle' ge­ speichert. Diese Adresse muß eine gültige Adresse innerhalb des Speicherraumes des Hauptspeichers sein. Insbesondere muß ein von der PCI-PCI-Brücke unterschiedliches Ziel auf dem primären PCI-Bus antworten.
Das tatsächliche Ziel des DMA-Zugriffs wird durch die Adresse bestimmt, welche in dem Register 'DMA_Bestimmungsort' geladen ist. Die Adresse wird mit dem in Fig. 11 gezeigten Speicherab­ bild überprüft, und gemäß des Ergebnisses werden Daten zur PCI- PCI-Brücke übertragen, d. h. zu dem sekundären PCI-Bus.
Die Menge von Daten, welche übertragen werden sollen, wird durch das Laderegister 'DMA_DWorte' mit der Anzahl von DWorten, welche den Block bilden, bestimmt.
Ferner ist es nötig, wie oben erwähnt wurde, den Flag 'DMA_Trigger' zu setzen, um einen DMA-Zugriff auszulösen.
Von den oben beschriebenen DMA-bezogenen Registern werden die Register 'DMA_Quelle' und 'DMA_Bestimmungsort' auf sukzessive Weise erhöht, wobei sie als Zeiger (bzw. Adressenverweis) der Stromquelle und der Zieladressen dienen. Das Register 'DMA_DWorte' wird nicht erhöht und wird mit einem Wert eines zweckbestimmten Zählers, welcher für die DMA-Übertragung vorbe­ reitet ist, verglichen. Falls die Zieladresse nicht innerhalb des Speicherabbildes liegt, bleibt die PCI-PCI-Brücke frei (IDLE, d. h. nicht in Betrieb), und keine DMA-Übertragung wird getriggert.
Falls die DMA-Übertragung auf dem primären PCI-Bus erkannt wird, muß die Erkenntnis dem Vorrichtungstreiber angezeigt wer­ den. Zwei Optionen können für diesen Zweck ausgewählt werden.
Nach dem Erkennen der Übertragung auf dem primären PCI-Bus wird eine Interrupt-Anfrage immer durch ein bestimmtes Bit in dem Hauptspeicher (MM)-PCI-Register gesetzt. Jedoch kann diese Interrupt-Anfrage durch ein anderes Steuerregister maskiert werden.
Da die Interrupt-Option nicht sehr effizient ist, wird eine andere Benachrichtigungsoption durch ein MM-PCI-Register 'DMA_Semaphor' vorgesehen. Der Vorrichtungstreiber schreibt eine Adresse innerhalb des Hauptspeichers nur einmal nach der Initialisierung vor der DMA-Übertragung in das Register. Die Stelle innerhalb des Hauptspeichers ist erreichbar bzw. zu­ greifbar durch den Vorrichtungstreiber und wird als ein Sema­ phor benutzt, welches das Ende der DMA-Übertragung anzeigt. Der Vorrichtungstreiber schreibt überall Null in die Stelle, so daß der Semaphor initialisiert wird. Nach dem Erkennen der Übertra­ gung auf dem primären PCI-Bus gibt das DMA-FSM einen Speicher­ schreibzyklus, welcher auf den innerhalb des Hauptspeichers sich befindenden Semaphor abzielt, aus, und überträgt ein MM- PCI-Register 'Global_Zustand'. Der LSB des Semaphor wird da­ durch auf "1" gesetzt, welches dem Treiber anzeigt, daß die DMA-Übertragung vervollständigt ist.
Zusätzlich zu dem einzelnen Bit, welches das Ende der DMA- Übertragung anzeigt, wird eine vollständige "Momentaufnahme" der PCI-PCI-Brücke durch die verbleibenden 31 Bits des Semaphor vorgesehen. Dies gibt dem Vorrichtungstreiber die Möglichkeit, den Zustand der PCI-PCI-Brücke in einem Schnellablauf (bzw. in einem Schnelldurchlauf bzw. ohne Pause) zu analysieren, ohne jeden zusätzlichen Platzbedarf bzw. Raumbedarf. (Schnellablauf bedeutet, daß eine Reihe von Betriebsvorgängen verschiedener Art ausgeführt werden, ohne die Ausführung der Betriebsvorgänge zu unterbrechen. Dies beinhaltet, daß, falls eine Art von Re­ konfiguration zwischen einem Betriebsvorgang und einem anderen nötig ist, die Betriebsvorgänge selbst die Struktur, welche die Betriebsvorgänge ausführt, dynamisch rekonfigurieren.)
Die Länge eines DMA-Burst wird durch folgendes bestimmt:
  • 1. Die Nummer der DWorte, die übertragen werden sollen, d. h. der in dem Register 'DMA_DWorte' geladene Wert.
  • 2. Die Zielantwort, d. h. die Antwort auf die Verbindungsunter­ brechung.
  • 3. Der Wartezeit-Zeitgeberwert, d. h. der Wert des Registers 0Ch des PCI-PCI-Brückenkonfigurationsraumes.
  • 4. Der POST-Betriebs-Pufferzustand.
Falls die POST-Betriebs-Puffer voll sind, beendet der Master die Übermittlung und wartet, bis der Puffer wieder Daten emp­ fangen kann und gibt dann einen neuen Zyklus aus. Dies ist auch der Fall, wenn der Wartezeit-Zeitgeber der PCI-PCI-Brücke ab­ läuft und ein Signal 'P_GNT' für den Quittungsaustausch (bzw. für den Handshake-Betrieb) des primären PCI-Busses deaktiviert wird. Der Vorrichtungstreiber überprüft den Wert des Wartezeit- Zeitgebers nach dem Starten und kann einen verschiedenen Wert laden, falls es notwendig ist.
Ein Wartezeit-Zähler wird in jedem Zyklus erhöht, sogar falls keine Daten übertragen werden. In anderen Worten wird der Wartezeit-Zähler unabhängig von der Antwort der Ziele hochge­ zählt. Falls der Wartezeit-Zähler einen Wert gleich dem in ein Register 'Wartezeit-Zähler' geschriebenen Wert aufweist, wird ein Signal 'P_RAHMEN' deaktiviert, und der Master wird ausge­ schaltet.
Falls ein Masterabbruchfehler auf dem primären PCI-Bus auf­ tritt, wird ein Flag 'DMA_Trigger' zurückgesetzt, die DMA-Über­ tragung wird beendet, und eine entsprechende Fehlerbehandlung wird ausgeführt. Dies trifft sowohl für die tatsächliche (bzw. aktuelle) DMA-Übertragung als auch für das Semaphorschreiben zu.
DMA wird immer über POST-Betriebs-Puffer ausgeführt. Der DMA- FSM überprüft nicht MM-PCI-Register 'FIFO_Steuerung' vor dem Zugreifen auf die POST-Betriebs-Puffer.
Eine "Verbindungs"-Option (bzw. "Link"-Option) wird zu dem DMA- Master der PCI-PCI-Brücke gemäß der vorliegenden Ausführungs­ form hinzugefügt, um die DMA-Leistungsfähigkeit zu verbessern. Diese Option ermöglicht, daß der Vorrichtungstreiber mehrfache DMA-Übertragungen auf automatische Weise ohne zusätzlichen Platzbedarf des Ausgebens mehrfacher Anfragen von DMA-Übertra­ gungen ausführt.
Deswegen muß der Vorrichtungstreiber Linkdaten, d. h. Verbin­ dungsdaten zwischen die Datenblocks des Hauptspeichers vor dem Triggern der DMA-Übermittlung einsetzen. Die Verbindungsdaten bestehen aus drei DWorten einschließlich einer Adreß- und Steuerinformation, welche in entsprechende MM-PCI-Register ge­ schrieben sind. Die Beziehung zwischen den DWorten und den MM- PCI-Registern ist wie es in Fig. 14 gezeigt ist.
Es wird auf Fig. 15 Bezug genommen; in dem Hauptspeicher wird, nachdem der Vorrichtungstreiber die DMA-Daten eingestellt hat, der Verbindungsdatenblock, welcher aus drei DWorten besteht, unmittelbar auf einen Datenblock n folgend eingesetzt (bzw. eingefügt). Der nächste Block folgt den Verbindungsdaten. Der Datenübertragungsbestimmungsort des Datenblocks n + 1 wird durch 'DMA_Bestimmungsort' in den Verbindungsdaten bestimmt, welche an das hintere Ende des Datenblocks n angefügt sind.
Ob mehrfache Datenübertragungen auf automatische Weise ausge­ führt werden sollten oder nicht unter Verwenden der Verbin­ dungsdaten, kann durch ein Bit [29] ('DMA_Fortsetzung') des MM- PCI-Registers 'DMA_Steuerung' freigegeben/gesperrt werden. Dieses Bit zeigt an, ob es die Verbindungsdaten gibt, welche an das hintere Ende des Datenblocks, der übertragen werden soll, angefügt sind. Falls das Bit auf "1" gesetzt ist, erwartet der DMA-FSM, daß die Verbindungsdaten folgen, und als eine Folge werden die nächsten drei DWorte in die MM-PCI-Register ge­ schrieben. Nach dem Rekonfigurieren durch die letzten Verbin­ dungsdaten ('DMA_Steuerung') beim Schnellablauf versucht der DMA-Master, den nächsten Datensatz ohne Beendigung der Zyklen zu lesen. Falls 'DMA_Fortsetzung' auf 0 gesetzt ist, wird die Übermittlung abgeschlossen, nachdem das letzte DWort des Datenblocks übertragen ist.
Daher kann eine neue DMA-Übermittlung auf automatische Weise bei dem Beendigen einer DMA-Übertragung getriggert werden. Der Vorrichtungstreiber muß nur die Verbindungsliste einmal in den Hauptspeicher schreiben, und danach können mehrfache DMA-Über­ tragungen ausgeführt werden durch die PCI-PCI-Brücke, ohne daß eine Bestimmung von dem Vorrichtungstreiber erforderlich ist.
Falls es erwünscht ist, daß das Semaphor zwischen DMA-Übertra­ gungen innerhalb der Verbindungsliste aktualisiert wird, bei­ spielsweise zum Verwirklichen langer Übertragungen, kann ein Bit demgemäß gesetzt werden.
Fig. 16 stellt dar, wie dieses Schema arbeitet. Der Vorrich­ tungstreiber konfiguriert anfänglich den DMA-Master, um vier Daten-DWorte zu übertragen und danach die Verbindungsdaten (a1) fortzusetzen. Darauf folgt, daß der DMA-FSM durch die Verbin­ dungsdaten konfiguriert wird, um die nächsten vier DWorte zu empfangen, und die Verarbeitung wird fortgesetzt (a2). Die zweiten Verbindungsdaten konfigurieren den DMA-Master, um acht DWorte zu empfangen, und beenden die DMA-Übermittlung und be­ schreiben ein Semaphor (a3). Nachdem acht DWorte übertragen sind und der Semaphor beschrieben ist, kehrt der DMA-FSM in den freien Zustand (zu IDLE bzw. in den betriebslosen Zustand) zurück.
Fig. 17 stellt eine DMA-Verbindung mit einem verschachtelten Semaphor-Schreiben dar. Ähnlich zu dem in Fig. 16 gezeigten Beispiel konfiguriert der Vorrichtungstreiber anfänglich den DMA-Master, um vier DWorte von Daten zu übertragen und danach die DMA-Übertragungen fortzusetzen. In diesem Beispiel gibt der Vorrichtungstreiber die Semaphor-Option frei. Als eine Folge werden vier DWorte gelesen, ein Semaphor wird beschrieben und der Master setzt seine Verarbeitung (b2) fort. Demgemäß wird der DMA-Master derart eingestellt, daß andere vier DWorte gele­ sen werden und die Verarbeitung gemäß der Verbindungsdaten (b2) fortgesetzt werden. Da die Semaphor-Option hier nicht freigege­ ben wurde, beschreibt die PCI-PCI-Brücke ein Semaphor nicht. Die Konfiguration ist derart, daß acht DWorte empfangen werden, die DMA-Übermittlung beendet und ein Semaphor beschrieben wird (b3).
Es gibt drei Faktoren, die die Effizienz der DMA-Übermittlungen beeinflussen.
  • 1. Aufgrund der Beschränkungen, die durch den SSO-Zuteiler, welcher später beschrieben wird, auf der PCI-PCI-Brücke gesetzt werden, wann immer eine neuen Adressenphase auf dem primären PCI-Bus eingeleitet wird, kann die sekundäre Seite keine Daten ausliefern. Die Daten können von der sekundären Seite jedoch ausgeliefert werden, wenn die Adressenphase vorüber ist und die Datenphase beginnt. Daher gibt es, falls eine DMA-Übermittlung sehr lang ist, nur eine anfängliche Adressenphase, und deshalb ist die Leistungsfähigkeit der DMA-Übermittlung am besten. Der Grund dafür ist, daß die sekundäre Seite Daten parallel mit der primären Seite ausliefern kann durch Lesen von Daten von dem Systemspeicher. In diesem Fall hat nur die anfängliche Warte­ zeit einen Einfluß auf die Übertragung (welcher später als ein SSO-Nachteil bzw. als SSO-Strafe bezeichnet wird).
  • 2. Ferner muß, falls ein primärer PCI-Bus-Zuteiler die Erlaub­ nis zum Benutzen des Busses nach oder während der Übermittlung aufhebt, die PCI-PCI-Brücke die Inhaberschaft des primären Bus­ ses wieder abrufen (Rück-Zuteilungs-Nachteil).
  • 3. Viele Hauptrechnerbrücken haben eine sehr lange anfängliche Wartezeit (bis zu 16 Zyklen). Daher muß, falls die DMA-Über­ mittlung früh beendet wird, sich die PCI-PCI-Brücke nicht nur mit dem SSO-Zuteiler und der Primärbuszuteilerverzögerung be­ fassen, sondern zusätzlich dazu auch mit der anfänglichen Zu­ griffsverzögerung der Hauptrechnerbrücke.
Daher wurde ein neues Merkmal, welches als "Domino" bezeichnet wird und im folgenden beschrieben wird, hinzugefügt. Dieses Merkmal ermöglicht kontinuierliche Speicherlesebursts von dem Systemspeicher, bis die Hauptrechnerbrücke die Übermittlung beendet. Um die laufende DMA-Einstell-Umgebung aufrechtzuerhal­ ten, wird der LSB des Registers 'DMA_Quelle' benutzt.
Es wird auf Fig. 18 Bezug genommen; die letzten zwei Bits 150 der 'DMA_Quelle' werden nicht benutzt, da ein Adressieren DWort für DWort ausgeführt wird. Von diesen zwei Bits 152 und 154 wird das LSB 154 benutzt. Falls das LSB gesetzt ist, erwartet die PCI-PCI-Brücke, daß die folgenden 'DMA_Quellen'-Adressen fortlaufend sind, und daher fährt sie einfach fort, einen in­ ternen Quellenzähler zu erhöhen. Eine neue Adreßphase ist nicht notwendig, da auf kontinuierliche Adressen zugegriffen wird. Deshalb fährt nach der 'DMA_Steuerungs'-Phase die PCI-PCI- Brücke fort, Daten ohne Beendigung des Zyklus abzufragen.
SSO (Simultaneous Switching Outputs, gleichzeitige Schaltausga­ ben) und Datenflußsteuerung
Falls der primäre I/O (32 Bits) und der sekundäre I/O (32 Bits) die A_D-Linien gleichzeitig schalten, ergibt sich folgendes Problem. Falls alle 64 Bits aktiv zu derselben Zeit betrieben würden, würde die sich ergebende Spannungsfluktuation verursa­ chen, daß die PCI-PCI-Brücke eine Fehlfunktion hat. Falls der A_D-Bus schwebt, oder nicht kippt, d. h. denselben Wert behält, ist fast keine Spannung erforderlich. Deshalb ist es wichtig, daß die PCI-PCI-Brücke auf effiziente Weise das Betreiben der zwei Busse steuert.
Deshalb wurde ein auf spezielle Weise entworfener SSO-Zuteiler innerhalb der PCI-PCI-Brücke eingebaut. Der SSO-Zuteiler ge­ währt die Erlaubnis zum Betreiben entweder der primären AD-Lei­ tung oder der sekundären AD-Leitung. Dies verringert die Mög­ lichkeit, daß die PCI-PCI-Brücke eine Fehlfunktion wegen der Spannungsfluktuation der Spannungsquelle aufweist.
Die PCI-PCI-Brücke betreibt die AD-Leitung des primären PCI- Busses in den folgenden Fällen.
Tabelle 1
Die PCI-PCI-Brücke betreibt die AD-Leitung des sekundären PCI- Busses in den folgenden Fällen.
Tabelle 2
Auf dem sekundären PCI-Bus garantieren Endwiderstände auf der Platine, daß die AD-Leitungen nicht schwebend belassen werden. Daher muß der sekundäre FSM die AD-Leitungen nicht betreiben, falls die AD-Leitungen in dem freien Zustand ('IDLE') sind.
Es gibt drei Quellen zum Betreiben der sekundären AD-Leitungen. Die erste ist ein Brückendatenweg, welcher für die Konfigura­ tion und für I/O-Zyklen benutzt wird. Der Datenweg umgeht FIFOs, wenn die FIFOs gesperrt sind. Die zweite ist ein P2S(Primary-to-Secondary)-Datenweg, der für den POST-Betrieb durch den Abrechner benutzt wird. Die dritte ist ein C2S(Coreto Secondary)-Datenweg, welcher für den POST-Betrieb durch den GE-Kern benutzt wird.
Ferner gibt es zwei unabhängige Quellen zum Betreiben der pri­ mären AD-Leitungen. Eine ist der Hauptrechner, und der andere ist das DMA. Wie in Fig. 20 gezeigt ist, bezieht sich der Hauptrechner auf das Ziel-FSM 72 im primären I/O 62. Der Master-FSM 74 im primären I/O 62 entspricht dem DMA. Da das primäre FSM und das sekundäre FSM, d. h. der Kern sich in einer unterschiedlichen Taktdomäne (bzw. Taktbereich) befindet, muß der SSO-Zuteiler (SSO-FSM), welcher in dem zweiten I/O 62 vor­ gesehen ist, mit einem asynchronen Quittungsaustausch (d. h. Handshake-Betrieb) fertigwerden. Verschiedene Frequenzen werden für den primären und sekundären PCI-Bus wie oben erwähnt be­ nutzt, da ein asynchroner Ansatz vorteilhaft ist in Bezug auf die Geschwindigkeit des Betriebs im Vergleich zu dem synchronen Ansatz. Ferner ist im allgemeinen die Taktfrequenz für den Be­ trieb des sekundären PCI-Busses höher als diejenige für den primären PCI-Bus.
Um einen ruhigen und ausgewogenen Fluß der Daten in der PCI- PCI-Brücke zu ermöglichen, wurde ein besonderes Schema, wie es unten beschrieben wird, verwirklicht.
Es wird auf Fig. 20 Bezug genommen; insbesondere gibt es zwei asynchrone unabhängige Quittungsaustausche zwischen dem SSO- Zuteiler und dem Hauptrechner und dem DMA. In Fig. 20 sind für einen entsprechenden asynchronen Quittungsaustausch Synchroni­ sationspunkte 162 und 166, und 164 und 168 gesetzt. Wie von Fig. 20 ersichtlich ist, wird der primäre I/O 62 durch eine primäre Seitenuhr @P_CLK, während der SSO-Zuteiler des zweiten I/O 64 durch die sekundäre Seitenuhr @S_CLK entsprechend be­ trieben wird.
Quittungsaustausche bestehen aus einem Anfragesignal von den Primärstatusmaschinen und einem entsprechenden Gewährsignal des SSO-Zuteilers. Da hauptsächlich Schreibzugriffe auf das primäre Ziel stattfinden, und Lesezugriffe überwiegend nicht derart kritisch im Zeitablauf sind, ist der SSO-Zuteiler für einen ru­ higen und schnellen Wechsel unter den Datenquellen zu dem se­ kundären PCI-Bus optimiert, hauptsächlich unter den zwei POST- Betriebs-Puffern.
Deshalb muß der SSO-Zuteiler zwischen jenen Quellen wechseln ohne einen Nachteil aufgrund von Synchronisier-Anfragen und Gewähr-Mitteilungen. Daher können, falls der Kern und ein Hauptrechner miteinander konkurrieren, die Daten von dem sekun­ dären PCI-Bus in einer extrem effizienten Weise ausgeliefert werden.
Es wird auf Fig. 21 Bezug genommen; der SSO-Zuteiler (SSO-FSM) 78 hat drei Anfrage-Eingänge und drei Anfrage-Ausgänge. Abhän­ gig von dem Zustand des SSO-FSM selbst wird der SSO-FSM eine der Anfragen zu dem sekundären FSM 76 liefern, oder, falls einem der primären FSM die Erlaubnis zum Betreiben der AD-Lei­ tungen gewährt ist, wird der Zuteiler alle drei Anfragen mas­ kieren, um sicherzustellen, daß nicht beide AD-Leitungen gleichzeitig betrieben werden. Zu diesem Zweck wird ein Signal 'WECHSELN' von dem sekundären FSM 76 an den SSO-FSM 78 ange­ legt. Durch ein UND (AND) des Signals 'WECHSELN' und jedes der Anfragesignale (182, 183, 184) wird ein gleichzeitiges Betrei­ ben der zwei AD-Leitungen vermieden, wie oben beschrieben ist.
Das Signal 'WECHSELN', das in Fig. 21 gezeigt ist, wird durch den sekundären FSM erzeugt. Dieses Signal teilt dem SSO-FSM mit, daß er prüfen soll, ob ein Übergang zu dem nächsten Zu­ stand gemacht werden soll. Die Wechsel werden nach jedem bean­ spruchten Zyklus mit einer Datenübertragung auf dem zweiten PCI-Bus angefragt. Daher wird im Falle eines wiederholten Ver­ suchs kein Wechsel erzwungen.
Fig. 22 ist ein Zustandsschaubild des SSO-FSM. In dieser Figur bezeichnen Kreise (HAUPTRECHNER, DMA, P2S, C2S, BRÜCKE, FREI (bzw. IDLE)) entsprechende Zustände, und Pfeile zwischen den Zuständen vertreten Übergänge zwischen Zuständen, welche bei Auftauchen eines Ereignisses durchgeführt werden. Bezugszeichen in Klammern, wie beispielsweise (b1, p2) auf den Pfeilen ver­ treten Startpunkte von Übergängen und Prioritäten (d. h. Vorrän­ gen) von Übergängen. Startpunkte von Übergängen werden durch Bezugszeichen, die in Fig. 22 gezeigt sind, vertreten. Die Priorität ist derart bestimmt, daß sie ein ausgewogenes Gewäh­ ren einer Erlaubnis zum Betreiben der AD-Leitungen sichern, wenn eine Mehrzahl von Anfragen gleichzeitig erzeugt werden. In Bezug auf die Nummer, welche die Priorität anzeigt, ist anzu­ merken, daß je niedriger die Nummer ist, desto höher die Prio­ rität ist. Durch Zuordnen einer geeigneten Priorität zu ent­ sprechenden Übergängen werden AD-Leitungserlaubnisse auf ausge­ wogene Weise entsprechenden Quellen zugeordnet, wobei ein ruhi­ ger Datentransfer ermöglicht wird.
Einige Beispiele von Zustandsübergängen durch den SSO-FSM, der in Fig. 22 gezeigt ist, werden nun beschrieben.
  • 1. Falls der SSO-FSM sich in dem Zustand 'FREI' (IDLE, d. h. freier Zustand) befindet und eine gleichzeitige Anfrage von Quellen 'P2S' und 'C2S' erfaßt werden, sind ein Übergang 'i1' zu dem Zustand 'P2S' und ein Übergang 'i2' zu dem Zustand 'C2S' Auswahlmöglichkeiten. Von diesen hat die erstere höhere Priori­ tät, und daher findet der Übergang 'i1' zu dem Zustand 'P2S' statt.
  • 2. Falls der SSO-FSM sich in dem Zustand 'BRÜCKE' befindet, wird der SSO-FSM gewechselt, und es gibt zwei gleichzeitige An­ fragen von den Quellen 'P2S' und 'HAUPTRECHNER' zu genau diesem Moment, und ein Übergang 'b1' zu dem Zustand 'HAUPTRECHNER' und ein Übergang 'b3' zu dem Zustand 'P2S' sind möglich. Hier hat der erstere höhere Priorität, und daher findet der Übergang 'b1' zu dem Zustand 'HAUPTRECHNER' statt.
Es wird darauf hingewiesen, daß in Fig. 22 Übergänge von den höchsten Prioritäten im Uhrzeigersinn auf der äußeren Peri­ pherie angeordnet sind. Dieses sichert einen ausgewogenen Wech­ sel. Es versteht sich von selbst, daß das Beispiel von Fig. 22 nicht beschränkend ist. Ein anderer Zustandsübergang kann durchgeführt werden, vorausgesetzt daß ähnliche Effekte gesi­ chert sind.
Flußsteuerung
In einigen Fällen kann es ineffizient sein, nach jedem abge­ schlossenen Übergang zu wechseln. Demgemäß werden die POST- Bebriebs-Puffer 'P2S' und 'C2S' (kundenspezifisch) angepaßt, um die Erlaubnis zum Benutzen der AD-Leitungen für verschiedene Übermittlungen zu halten, sogar falls eine andere Quellenan­ frage aktiv ist. Fig. 23 stellt diesen Ansatz dar.
Zu diesem Zweck wird der Zeitablauf zum Aktivieren des Signals 'WECHSELN' auf geeignete Weise gesteuert, wie in Fig. 23 ge­ zeigt ist. Dieses Signal zeigt das Ende einer erfolgreichen Da­ tenübermittlung an und ist nicht aktiv im Falle eines wieder­ holten Versuchs. In dem in Fig. 23 gezeigten Beispiel ist das Signal zu dem Zeitpunkt des wiederholten Versuchs nicht akti­ viert, aber an dem Ende des Zyklus ist es aktiviert.
Für ein System, das große Bursts zum Speicherschreiben unter­ stützt, kann ein POST-Betrieb ein effizienter Weg zum Übertra­ gen von Daten an den sekundären PCI-Bus sein.
P2S-Burst-Steuerung
Zyklen, die durch einen POST-Betriebs-Puffer getriggert sind, sind auf dem sekundären PCI-Bus gemäß der Größe der Speicherbe­ reiche aufgeteilt. Insbesondere wird, falls ein 16 DWort-Burst- POST betrieben wird, dieser in 8 DWort-Zyklen auf dem sekundä­ ren PCI-Bus aufgeteilt. Durch Voreinstellung wechselt der SSO- FSM, nachdem die ersten 8 DWorte geschrieben sind und noch eine andere Anfrage aktiv ist. Falls nur kleine Blöcke von Daten POST-betrieben werden, wechselt der SSO-FSM ungeachtet der Zahl von DWorten, die gelesen wurden. Beispielsweise wechselt, wenn zwei 1-DWort-Zyklen POST-betrieben werden, durch Voreinstellung der SSO-FSM, nachdem das erste DWort geschrieben und eine ande­ re Anfrage aktiv ist.
In einigen Fällen jedoch kann es erwünscht sein, den 'P2S'- Puffer mehrere Zyklen ausführen zu lassen, bevor er zu einem anderen Zustand wechselt. Deshalb weist der PCI-PCI-Bus gemäß der vorliegenden Ausführungsform ein MM-PCI-Register 'P2S_Burst' auf, welches den PCI-PCI-Bus steuert. Der Wert des Registers bestimmt die Anzahl von Zyklen, die der 'P2S'-Puffer ausführen kann, bevor der SSO-Zuteiler wechselt.
Es wird auf Fig. 24A Bezug genommen; beispielsweise die POST- Betriebsdaten des 'P2S', z. B. 16 DWorte, werden in zwei 8 DWorte durch Voreinstellung aufgeteilt. Deshalb gibt es eine Zeitlücke zwischen diesen zwei 8 DWorten. Falls eine kurze Wartezeit für 'P2S'-POST-Betriebsdaten erwünscht ist, kann eine hohe Priorität dem POST-Betriebs-Puffer über das Register 'P2S_Burst' angezeigt werden. Es wird auf Fig. 24B Bezug genom­ men; insbesondere kann, falls das Register 'P2S_Burst' auf "2" gesetzt ist, der POST-Betriebs-Puffer von 'P2S' das Ausschreiben der Enddaten (zwei) auf dem sekundären PCI-Bus zu einem Zeitpunkt bzw. auf einmal fortsetzen, ohne die Erlaubnis zum Betreiben der AD-Leitungen aufzugeben. Dies verringert die Wartezeit für die 'P2S'-POST-Betriebsdaten.
C2S-Burst-Steuerung
Eine ähnliche Steuerung ist auf den 'C2S'-POST-Betriebs-Puffer anwendbar. Obwohl zwei Speicherbereiche für 'P2S' vorausgesetzt sind, setzt die PCI-PCI-Brücke gemäß der vorliegenden Ausfüh­ rungsform einen 'C2S'-POST-Betriebs-Puffer mit vier Speicherbe­ reichen voraus. Der 'C2S'-POST-Betriebs-Puffer unterscheidet sich von 'P2S' in diesem Punkt, urd zusätzlich unterscheidet er sich von dem 'P2S'-POST-Betriebs-Puffer darin, daß er eine Quelle hat, welche "GE-Kern" genannt wird. Der 'C2S'-POST-Be­ triebs-Puffer weist zweckbestimmte Daten für die sekundäre PCI- Vorrichtung auf, und es kann erwünscht sein, den gesamten Da­ tenblock auf einmal zu übertragen, sogar falls die Daten über mehrere Speicherbereiche verteilt sind. Diese Steuerung ist möglich durch Verwenden des MM-PCI-Registers 'C2S_Burst' in der PCI-PCI-Brücke gemäß der vorliegenden Ausführungsform. Das Re­ gister 'C2S_Burst' bestimmt die Anzahl von Zyklen, welche aus­ zuführen dem 'C2S'-Puffer erlaubt sind, bevor der SSO-Zuteiler wechselt.
Es wird auf Fig. 25A Bezug genommen; beispielsweise muß, falls das Register 'C2S_Burst' auf 1 gesetzt ist, der 'C2S'-POST-Be­ triebs-Puffer die Erlaubnis zum Betreiben der AD-Leitungen bei jedem Zyklus aufgeben. Falls das Register 'C2S_Burst' auf 3 ge­ setzt ist, sind drei fortlaufende Zyklen möglich, wie es in Fig. 25B gezeigt ist. Da die Anzahl von Zyklen, welche durch den 'C2S'-POST-Betriebs-Puffer auf kontinuierliche Weise ausge­ führt werden können, steuerbar ist, können Daten, die sich über mehrere Speicherblöcke verteilen, gemeinsam zu einem Zeitpunkt von dem GE-Kern zu der sekundären PCI-Vorrichtung übertragen werden.
DMA-Burst-Steuerung
Wie oben erwähnt wurde, ist der SSO-Zuteiler in der Taktdomäne für die sekundäre PCI-Busseite angeordnet. In anderen Worten arbeitet er gemäß der Taktsignale für den sekundären PCI-Bus. Deshalb ist es für den SSO-Zuteiler notwendig, einen vollstän­ dig asynchronen Quittungsaustausch für den DMA-FSM zu erhalten. Als eine Folge muß, jedesmal, wenn in den 'DMA'-Zustand des SSO-FSM eingetreten wird oder wenn dieser verlassen wird, ein Synchronisationsnachteil in Kauf genommen werden.
Falls der DMA-Burst sehr kurz ist, d. h. falls die Hauptrechner­ brücke nur einen kleinen Puffer aufweist bzw. unterstützt, läßt der Synchronisationsnachteil die gesamte Durchsatzverzögerung ansteigen. Deshalb kann es effizienter sein, den DMA-FSM ver­ schiedene Bursts ausführen zu lassen, bevor er zu dem 'P2S'-Zustand wechselt. In dem PCI-PCI-Bus gemäß der vorliegenden Aus­ führungsform kann dies durch das MM-PCI-Register 'DMA_Burst' gesteuert werden. Das Register 'DMA_Burst' bestimmt die Anzahl von Zyklen, welche auszuführen dem DMA-FSM erlaubt sind, bevor er seine Anfrage an den SSO-Zuteiler aufgeben muß.
Fig. 26A zeigt eine DMA-Übermittlung, welche durch den 'HAUPT­ RECHNER' unterbrochen ist. In diesem Fall muß der DMA-FSM einen zusätzlichen Zyklus ausgeben. Dies läßt die Gesamtwartezeit der DMA-Übermittlung um das Zweifache des Synchronisationsnachteils (dargestellt durch die Schraffierung in den Fig. 26A und 26B) ansteigen (falls 'DMA_Burst' auf 1 gesetzt ist). Falls der 'DMA_Burst' auf 2 gesetzt ist, wird jedoch der Synchronisa­ tionsnachteil auf ein Minimum verringert, und die Gesamtverar­ beitungszeit kann um den Zeitraum verringert werden, der als t diff in den Fig. 26A und 26B dargestellt ist.
Parametersetzen der POST-Betriebs-FIFOs
Der 'P2S'-POST-Betriebs-Puffer, der 'C2S'-POST-Betriebs-Puffer usw., welche oben beschrieben wurden, bestehen aus FIFOs. Das Design der POST-Betriebs-FIFOs ist meistens ein Kompromiß zwi­ schen der verfügbaren Fläche, dem erforderlichen Durchsatz und der maximalen Wartezeit. Diese Bedingungen bestimmen die Kör­ nigkeit (bzw. die Beschaffenheit einer Einheit) der FIFOs für POST-Betriebs-Übermittlungen. Abhängig von den Beschränkungen, die durch die Umgebung auferlegt sind, ist es sehr nützlich, einen weiten Bereich von möglichen Architekturen zu haben, um eine FIFO-Verwirklichung auszuwählen. Deshalb wird in der PCI- PCI-Brücke gemäß der vorliegenden Ausführungsform ein FIFO- Design mit gesetzten Parametern verwendet.
Fig. 27 zeigt eine Blockdarstellung eines POST-Betriebs-FIFOs mit gesetzten Parametern. Es wird auf Fig. 27 Bezug genommen; der POST-Betriebs-FIFO weist einen kleinen Leseanschluß-FSM und einen kleinen Schreibanschluß-FSM, welche beide zum Steuern des Betriebs des FIFOs vorgesehen sind, und mehrere "Scheiben", welche zwischen diesen zwei FSMs angeordnet sind, auf. Mehrere Scheiben, die in dieser Weise angeordnet sind, bilden einen passenden POST-Betriebs-Puffer.
Es wird auf Fig. 28 Bezug genommen; jede "Scheibe" weist einen Speicherbereich mit der Größe von n DWorten zum Speichern von Daten, ein 32-Bit-Register zum Speichern der entsprechenden (Start-)Adresse, einen "vollen" Flag und einen "leeren" Flag und einen vollen asynchronen Quittungsaustausch für die Flags auf.
Da der FIFO derart gebildet ist, daß er eine Konfiguration mit zwei FSMs mit Speicherbereichsscheiben dazwischen angeordnet aufweist, kann der POST-Betriebs-FIFO auf bequeme Weise (kun­ denspezifisch) angepaßt werden durch einfaches Auswählen der erwünschten Parameter, d. h. der Anzahl von Scheiben. Wenn das Design auf einer beispielsweise Hardware-Beschreibungssprache basiert, ist es nötig, einfach den Parameter entsprechend der Anzahl von Scheiben gemäß der Spezifikation zu wechseln (bzw. zu ändern). Dies gibt dem Entwerfer die Flexibilität für Spezi­ fikationswechsel oder für die Nachprüfung (bzw. Überarbeitung) der Spezifikation, und vereinfacht auf signifikante Weise die Verwirklichung verschiedener POST-Betriebs-Puffer.
Obwohl die vorliegende Erfindung in Bezug auf eine bestimmte Ausführungsform beschrieben wurde, ist diese nur ein Beispiel, und die vorliegende Erfindung ist nicht auf die bestimmte Aus­ führungsform beschränkt. Wie oben beschrieben wurde, ist es möglich, durch die PCI-PCI-Brücke, welche keinen "01"-Kennsatz verwendet, eine integrierte Halbleiterschaltungsvorrichtung, welche einen sekundären PCI-Bus aufweist, mit einem primären PCI-Bus zu verbinden, und auf unabhängige Weise einzelne PCI- Vermittler zu steuern.
Ferner ist eine PCI-PCI-Brücke, welche die Verbindung zwischen einem primären PCI-Bus und einem sekundären PCI-Bus, mit denen eine VGA-Vorrichtung und PCI-Vermittler verbunden sind, angege­ ben.
Ferner kann eine Fehlermeldung zu dem Zeitpunkt des Ladens auf einfache Weise durch eine vorhandene VGA-Vorrichtung gegeben werden, und, sobald der Vorrichtungstreiber aktiviert ist, ist das Verarbeiten unter Verwenden einer PCI-Vorrichtung möglich.
Ferner ermöglicht die PCI-PCI-Brücke eine effiziente DMA-Über­ tragung. Ferner ist eine Hochgeschwindigkeitsdatenübertragung zwischen dem Hauptspeicher und einem PCI-Vermittler oder einer Betriebsschaltung zum Ausführen eines bestimmten Betriebes auf dem sekundären PCI-Bus möglich.
Ferner ist die Größe des FIFOs auf einen Parameter verringert, und daher ist eine Entwurfsänderung (bzw. ein Entwurfswechsel) auf einfache Weise möglich. Deshalb wird der Entwurf einer PCI- PCI-Brücke mit einem FIFO vereinfacht.
Ferner können durch die PCI-PCI-Brücke Daten bei hoher Ge­ schwindigkeit mit einer hohen Effizienz übertragen werden, und die Größe des First-In-First-Out-Speichers (FIFO-Speicher), welcher für die Datenübertragung benutzt wird, kann auf einfa­ che Weise geändert werden. Deshalb kann der Entwurf der PCI- PCI-Brücke auf einfache Weise modifiziert werden, sogar wenn es eine Spezifikationsänderung oder eine plötzliche Designänderung gibt. Dies verkürzt die Zeit, die zum Entwickeln der Vorrich­ tung nötig ist.

Claims (11)

1. PCI-PCI-Brücke (40), welche mit einem primären PCI-Bus (20) und einem sekundären PCI-Bus (46) verbunden ist, mit
einer Brückenschaltung (42) zum Verbinden des sekundären PCI- Busses (46) mit dem primären PCI-Bus (20) zum Steuern einer Datenübertragung dazwischen,
wobei die Brückenschaltung (42) einen "00"-Konfigurationskenn­ satz besitzt und eine Schaltung aufweist zum Identifizieren eines PCI-Vermittlers aus einer Mehrzahl von PCI-Vermittlern (48, 50, 52, 54) auf dem sekundären PCI-Bus (46) auf der Basis eines Wertes ei­ nes Funktionsnummernfeldes eines Konfigurationsbefehles von einem Vorrichtungstreiber zu einem Zeitpunkt der Konfiguration und zum Ausführen der Konfiguration durch den identifizierten Vermittler.
2. PCI-PCI-Brücke nach Anspruch 1, bei der
die Mehrzahl von PCI-Vermittlern (48, 50, 52, 54) eine VGA- Vorrichtung (48) und andere PCI-Vermittler (50, 52, 54) auf­ weist und
die Verbindungseinrichtung (42) selektiv in einem ersten Modus, in welchem ein Speicherabbild für die VGA-Vorrichtung (48) aktiv ist, und einem zweiten Modus, in dem die PCI-Vermittler (50, 52, 54) aktiv sind, die nicht die VGA-Vor­ richtung (48) sind, arbeitet.
3. PCI-PCI-Brücke nach Anspruch 1 oder 2, bei der die Verbin­ dungseinrichtung (42) in dem ersten Modus geladen wird und zu dem zweiten Modus geschaltet wird durch einen Vorrichtungs­ treiber, welcher auf einer Verarbeitungseinrichtung (32) ar­ beitet, welche mit dem primären PCI-Bus (20) verbunden ist.
4. PCI-PCI-Brücke nach einem der Ansprüche 1 bis 3, mit
einer Betriebseinrichtung (44) zum Ausführen einer bestimmten Betriebsart, welche zu einer Datenübertragung zwischen dem primä­ ren PCI-Bus (20) und dem sekundären PCI-Bus (46) fähig ist,
wobei die Brückenschaltung (42) eine Datenübertragung/einen Datenempfang zwischen der Betriebseinrichtung (44) und dem primären PCI-Bus (20) und dem sekundären PCI-Bus (46) verwal­ tet.
5. PCI-PCI-Brücke nach einem der Ansprüche 1 bis 4, mit einer Schnellablaufdirektdatenübertragungseinrichtung, welche auf das Triggern einer direkten Datenübertragung von einem Hauptspeicher (38) durch den Vorrichtungstreiber reagiert, zum Ausführen einer zweckbestimmten Datenübertragung danach ohne Eingreifen des Vorrichtungstreibers, und welche auf eine Ver­ bindungsliste reagiert, die an ein hinteres Ende eines zu übertragenden Datenblockes angehängt ist, zum Ausführen einer Datenübertragung, die durch die Verbindungsliste neu bestimmt ist, ohne ein Eingreifen des Vorrichtungstreibers.
6. PCI-PCI-Brücke nach einem der Ansprüche 1 bis 5, bei der die Brückenschaltung (42) eine Zustandsmaschine (78) aufweist, welche auf Bus-Anfragen von einem PCI-Vermittler auf dem pri­ mären PCI-Bus (20) und einem Vermittler (48, 50, 52, 54) auf dem sekundären PCI-Bus (46) zum Zuteilen einer Erlaubnis zum Betreiben des primären PCI-Busses (20) und des sekundären PCI- Busses (46) derart reagiert, daß nicht beide Vermittler des primären PCI- Busses (20) und des sekundären PCI-Busses (46) gleichzeitig betrieben werden.
7. PCI-PCI-Brücke nach einem der Ansprüche 1 bis 6, bei der die Zustandsmaschine (78) in derselben Taktdomäne wie der se­ kundäre PCI-Bus (46) arbeitet.
8. PCI-PCI-Brücke nach einem der Ansprüche 1 bis 7, bei der die Zustandsmaschine (78) bestimmt, ob ein Zustandsübergang bei jedem Erkennen einer Übertragung einer vorgeschriebenen Menge von Daten gemacht werden soll, und einen Zustandsüber­ gang abhängig von dem Ergebnis der Bestimmung durchführt.
9. PCI-PCI-Brücke nach einem der Ansprüche 1 bis 8, bei der die Zustandsmaschine (78) das Einstellen der Menge der über­ tragenen Daten bis zur Bestimmung, ob ein Zustandsübergang in einem bestimmten Zustand umfangreicher ausgeführt werden soll als in anderen Zuständen, ermöglicht.
10. PCI-PCI-Brücke nach einem der Ansprüche 1 bis 9, bei der die Schnellablaufdirektdatenübertragungseinrichtung die Zu­ standsmaschine (78) derart einstellen kann, daß die Datenüber­ tragungsdauer durch sie selbst gesteuert wird. (Fig. 15)
11. PCI-PCI-Brücke nach einem der Ansprüche 1 bis 10, bei der die Brückenschaltung (42) einen Eingangsfolge-Speicher (82, 84, 86) aufweist, welcher eine Datenübertragung zwischen Kom­ ponenten, welche mit verschiedenen Taktfrequenzen arbeiten, anschließt,
der Eingangsfolge-Speicher (82, 84, 86) eine Schreibzustands­ maschine für einen Schreibanschluß aufweist,
eine Lesezustandsmaschine für einen Leseanschluß aufweist, und
eine Mehrzahl von Speicherbereichen aufweist, welche parallel zwischen der Schreibzustandsmaschine und der Lesezustandsma­ schine angeordnet sind.
DE19847642A 1998-02-20 1998-10-15 PCI-PCI-Brücke Expired - Fee Related DE19847642C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10038841A JPH11238030A (ja) 1998-02-20 1998-02-20 Pci−pciブリッジおよびそのための先入れ先出しメモリ

Publications (2)

Publication Number Publication Date
DE19847642A1 DE19847642A1 (de) 1999-08-26
DE19847642C2 true DE19847642C2 (de) 2003-07-31

Family

ID=12536440

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19847642A Expired - Fee Related DE19847642C2 (de) 1998-02-20 1998-10-15 PCI-PCI-Brücke

Country Status (3)

Country Link
US (1) US6272582B1 (de)
JP (1) JPH11238030A (de)
DE (1) DE19847642C2 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3206570B2 (ja) * 1998-11-12 2001-09-10 日本電気株式会社 Pci機能拡張制御装置、及びpci機能拡張制御方法
JP3791742B2 (ja) * 1999-05-28 2006-06-28 株式会社沖データ Pciバス制御システム
US6668299B1 (en) 1999-09-08 2003-12-23 Mellanox Technologies Ltd. Software interface between a parallel bus and a packet network
US6484222B1 (en) * 1999-12-06 2002-11-19 Compaq Information Technologies Group, L.P. System for incorporating multiple expansion slots in a variable speed peripheral bus
US7107383B1 (en) * 2000-05-03 2006-09-12 Broadcom Corporation Method and system for multi-channel transfer of data and control information
US6745369B1 (en) * 2000-06-12 2004-06-01 Altera Corporation Bus architecture for system on a chip
US6691200B1 (en) * 2001-05-01 2004-02-10 Pericom Semiconductor Corp. Multi-port PCI-to-PCI bridge with combined address FIFOs but separate data FIFOs for concurrent transactions
US7072996B2 (en) * 2001-06-13 2006-07-04 Corrent Corporation System and method of transferring data between a processing engine and a plurality of bus types using an arbiter
US6826628B2 (en) * 2001-10-26 2004-11-30 O2Micro International Limited PCI-PCMCIA smart card reader
US20030097503A1 (en) * 2001-11-19 2003-05-22 Huckins Jeffrey L. PCI compatible bus model for non-PCI compatible bus architectures
US8219736B2 (en) * 2002-02-12 2012-07-10 Ati Technologies Ulc Method and apparatus for a data bridge in a computer system
US6973525B2 (en) * 2002-03-19 2005-12-06 Dell Products L.P. System and method for managing bus numbering
ES2333519T3 (es) * 2002-06-19 2010-02-23 Telefonaktiebolaget L M Ericsson Una arquitectura de controlador de dispositivo de red.
US7370072B2 (en) * 2002-07-08 2008-05-06 Electronic Evidence Discovery, Inc. System and method for collecting electronic evidence data
US7475107B2 (en) * 2002-07-08 2009-01-06 Electronic Evidence Discovery, Inc. System and method for managing distributed computer processes
TW200410140A (en) * 2002-12-03 2004-06-16 Via Tech Inc An initialization process in a device driver
JP4313607B2 (ja) 2003-05-08 2009-08-12 富士通株式会社 バス接続回路及びバス接続システム
US7345689B2 (en) * 2003-12-19 2008-03-18 Intel Corporation Interfacing a digital display card through PCI express connector
DE102004023329B4 (de) * 2004-05-12 2013-01-17 Robert Bosch Gmbh Verfahren zum Durchführen von Resets bei zwei Rechnern
US7356628B2 (en) * 2005-05-13 2008-04-08 Freescale Semiconductor, Inc. Packet switch with multiple addressable components
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
JP4831317B2 (ja) * 2006-02-24 2011-12-07 日本電気株式会社 Pci多段ブリッジ構成コンピュータにおけるacpiマシン語テーブル記述方法及び装置とそのプログラム
KR101324844B1 (ko) * 2008-03-25 2013-11-01 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 기능 변환 시스템 및 방법과 변환 수행 시스템
US20130326097A1 (en) * 2011-03-17 2013-12-05 Renesas Electronics Corporation Semiconductor device
US8943257B2 (en) * 2011-09-30 2015-01-27 Intel Corporation Protocol neutral fabric
US9495723B2 (en) * 2013-08-09 2016-11-15 Nvidia Corporation Scale-up techniques for multi-GPU passthrough
JP6294732B2 (ja) * 2014-03-31 2018-03-14 株式会社メガチップス データ転送制御装置及びメモリ内蔵装置
US10162775B2 (en) * 2015-12-22 2018-12-25 Futurewei Technologies, Inc. System and method for efficient cross-controller request handling in active/active storage systems
CN114389947B (zh) * 2022-03-24 2022-05-27 苏州浪潮智能科技有限公司 数据传输方法、系统及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19603850A1 (de) * 1996-02-05 1997-08-07 Miro Computer Prod Ag Grafikkarte zum Ansteuern zweier Bildschirme

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542055A (en) * 1993-05-28 1996-07-30 International Business Machines Corp. System for counting the number of peripheral buses in each hierarch connected to primary bus for creating map of peripheral buses to locate peripheral devices
JPH09237246A (ja) 1995-12-25 1997-09-09 Hitachi Ltd Pciエージェント制御カードおよびpciエージェント制御方法
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
US5996034A (en) * 1997-10-14 1999-11-30 Advanced Micro Devices, Inc. Bus bridge verification system including device independent bus monitors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19603850A1 (de) * 1996-02-05 1997-08-07 Miro Computer Prod Ag Grafikkarte zum Ansteuern zweier Bildschirme

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Rembold, Armbruster, Ülzmann: Interface- Technologie für Prozeß- und Mikrorechner, München: R. Oldenbourg Verlag, 1981, ISBN: 3-486-25081-7, S. 238-239 *

Also Published As

Publication number Publication date
DE19847642A1 (de) 1999-08-26
JPH11238030A (ja) 1999-08-31
US6272582B1 (en) 2001-08-07

Similar Documents

Publication Publication Date Title
DE19847642C2 (de) PCI-PCI-Brücke
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE69724463T2 (de) Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE19580606C2 (de) Plattenlaufwerksverbinderschnittstelle zur Verwendung an einem PCI-Bus
KR100287355B1 (ko) 그래픽/영상을 처리하기 위한 스마트 비디오 메모리 및 그 처리 방법
DE2944419C2 (de)
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE102004057756B4 (de) USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
DE60100848T2 (de) Virtuelles rom für geräte-aufzählung
DE3933849A1 (de) Prozessorgesteuerte schnittstelle
DE19729618C2 (de) Mikroprozessor und Mehrprozessorsystem
DE69433130T2 (de) Rechnersystem mit verändertem lokalen Datenbus
DE112005002336T5 (de) Befehl, der unterschiedliche Operationen in unterschiedlichen Chips steuert
JP3167027B2 (ja) 直接メモリアクセス用制御器
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE19518529A1 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines eine inkompatible CPU enthaltenden Computersystems
DE112006000634T5 (de) Verfahren und Vorrichtung zur unabhängigen und gleichzeitigen Datenübertragung auf Host-Controller
DE10030148A1 (de) Brückenvorrichtung
DE112019002336T5 (de) Speicherpoolzuordnung für ein mehrkern-system
DE19808988A1 (de) Durch Software rekonfigurierbares Target-Eingabe/Ausgabesystem eines Schaltungsemulationssystems
DE112005003216T5 (de) System und Verfahren für Steuerregister, auf die über private Rechenoperationen zugegriffen wird
DE112019000460T5 (de) Adapter für direkten speicherzugriff
DE4429764C2 (de) Zeitgebereinrichtung für einen Mikrocomputer

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8304 Grant after examination procedure
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee