DE69621309T2 - Verfahren und Gerät zur Optimierung von gemeinsamen PCI-Unterbrechungen und entsprechender Latenz in den PCI-Bussen mit Erweiterung oder Brücke - Google Patents
Verfahren und Gerät zur Optimierung von gemeinsamen PCI-Unterbrechungen und entsprechender Latenz in den PCI-Bussen mit Erweiterung oder BrückeInfo
- Publication number
- DE69621309T2 DE69621309T2 DE69621309T DE69621309T DE69621309T2 DE 69621309 T2 DE69621309 T2 DE 69621309T2 DE 69621309 T DE69621309 T DE 69621309T DE 69621309 T DE69621309 T DE 69621309T DE 69621309 T2 DE69621309 T2 DE 69621309T2
- Authority
- DE
- Germany
- Prior art keywords
- interrupt
- pci
- register
- registers
- master
- 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
Links
- 238000000034 method Methods 0.000 title claims description 12
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf das Gebiet von Bussen, und insbesondere auf das Gebiet des Optimierens einer PCI-Unterbrechungsbindung und der damit zusammenhängenden Latenz bei erweiterten/überbrückten PCI-Bussen.
- Ein Peripheriekomponenten-Verbindungsbus (peripheral component interconnect bus/PCI-Bus) ist ein lokales Bussystem, das zur Bewegung von 32 oder 64 Bits von Daten mit 33 MHz oder 66 MHz fähig ist. Der PCI-Bus nimmt Peripheriegeräte von einem Eingabe/Ausgabe-Bus (I/O-Bus) entgegen und verbindet sie über einen breiteren und schnelleren Datenpfad mit einer Zentraleinheit (CPU) und einem Speicheruntersystem.
- Das Ergebnis ist ein schnellerer Datentransfer zwischen der CPU und den Peripheriegeräten. Dies ist wichtig für Server und grafikintensive Software wie Windows® und OS/2. Die meisten PCI-Systeme unterstützen drei bis fünf leistungskritische Peripheriegeräte. Diese Peripheriegeräte sind entweder direkt auf einem Motherboard integriert oder können über PCI-Erweiterungskarten hinzugefügt werden, wie zum Beispiel Multimedia-, Grafik-, Platten- und LAN-Adapter-Karten.
- So gut wie alle mit Pentium-Prozessoren ausgestatteten PCs zum Beispiel, die heutzutage ausgeliefert werden, unterstützen den PCI-Bus. Der Pentium- Prozessor kommuniziert mit seinen PCI-Peripheriegeräten über einen speziellen Schnittstellenchipsatz, und die Konstruktion und die Leistung dieses Chipsatzes kann sich ganz besonders auf die Leistung des PCI-Busses eines Computers auswirken.
- Softwarefunktionen niederer Ebene (low level), zum Beispiel PCI-BIOS- Funktionen bieten gegenüber der Hardware eine Software-Schnittstelle, die zur Implementierung eines PCI-Systems eingesetzt wird. Sein Hauptverwendungszweck ist zur Systemkonfiguration, z. B. Adressabbildung, Unterbrechungsrouting, usw.
- Wie ebenfalls wohl bekannt ist, haben als Industriestandard vorherrschende PCI-Vorgaben eine "zusammen genutzte" oder mit einem "verdrahteten ODER" arbeitende Unterbrechungsbindungsarchitektur, die typischerweise in der Ätzung des eigentlichen Motherboards implementiert ist, d. h. die Einsteck-Unterbrechungsspuren sind so geführt, dass sie für das Interrupt-Verfahren gemeinsam genutzt werden können. Dieses Verfahren zur gemeinsamen Nutzung ist in der PCI-Lokal-Bus- Spezifikation, Revision 2.1, empfohlen.
- In einem solchen Verfahren muss die Host-CPU PCI-Geräte abfragen, nachdem sie eine Unterbrechungsanforderung empfangen hat, um festzustellen, welches PCI-Gerät die Unterbrechung eingeleitet hat. Erst dann kann die Unterbrechungs-Dienstroutine eingeleitet werden. Dieses so genannte "Abfrage- Verfahren" kann zu seiner vollständigen Durchführung bis maximal n-1 Dienstroutinen in Anspruch nehmen, wenn n PCI-Geräte vorhanden sind. Die Zeit zur Identifikation des unterbrechenden Geräts ist jedoch nicht vorhersagbar, z. B. kann es sein, dass das initiierende PCI-Gerät nach nur einer Abfrage lokalisiert ist, oder dass dies erst beim letzten Versuch gelingt.
- Wie wohl bekannt ist, ist bei kleinen Anzahlen von PCI- Unterbrechungsquellen, z. B. weniger als vier, diese Abfrageverfahrensimplementierung akzeptabel. Für eine größere Anzahl von PCI- Geräten, die möglicherweise über eine PCI-zu-PCI-Brückenbildung implementiert sind, fängt das Verfahren zur gemeinsamen Nutzung der Unterbrechungsbindung an, sich beträchtlich auf die Unterbrechungslatenz auszuwirken, d. h. auf die Zeit, die dazu benötigt wird festzustellen, welches PCI-Gerät die Unterbrechung eingeleitet hat.
- Es besteht also ein Bedarf nach einer PCI-Unterbrechungssteuerung, die sowohl das standardmäßig in der Industrie eingesetzte Verfahren der gemeinsamen Nutzung als auch eine Architektur zum vorhersagbaren Feststellen des die Unterbrechung einleitenden PCI-Geräts mit einer beträchtlich verringerten Latenz unterstützt.
- In der EP 0 511 769 A1 ist eine Unterbrechungssteuerung beschrieben, die Unterbrechungssignale von mehreren I/O-Geräten entgegennimmt, die Unterbrechungen in eine Prioritätsrangfolge bringt und sie dann an einen Prozessor weiterleitet.
- Die Erfindung besteht allgemein in einem Verfahren zum Identifizieren einer Quelle einer Peripherie-Komponenten-Verbindungsunterbrechung in einem Computersystem und in einem entsprechenden System, wie es in den Ansprüchen 1 beziehungsweise 7 angeführt ist.
- Wie nachfolgend beschrieben, ist ein als Beispiel angegebenes Computersystem mit den folgenden Komponenten vorgesehen: einer Zentraleinheit (CPU), einem Speicher; einer PCI-Host-zu-PCI-Busschnittstelle, wobei die PCI-Hostzu-PCI-Busschnittstelle über einen CPU-Bus mit dem Speicher und der CPU verbunden ist, mehreren PCI-Geräten, wobei die mehreren PCI-Geräte über einen primären PCI-Bus mit der PCI-Host-zu-PCI-Busschnittstelle verbunden sind, einer Unterbrechungssteuerungseinheit, wobei die Unterbrechungssteuerungseinheit ein Konfigurationsregister, ein Master-Unterbrechungsregister und mehrere Unterbrechungsregister aufweist, wobei die mehreren Unterbrechungsregister eine Verbindung zwischen dem Master-Unterbrechungsregister und jeder der mehreren PCI-Geräte herstellt. Mit einer solchen Anordnung wird eine zweifache Funktionalität der Handhabung von PCI-Unterbrechungen implementiert, d. h. eine Übereinstimmung mit dem Industriestandard und der erfindungsgemäße nicht abfragende (Unterbrechungsbeschleunigungs-)Modus.
- In einer solchen Anordnung ist auch eine deterministische Art und Weise zum Identifizieren einer Quelle einer PCI-Unterbrechung ohne die Notwendigkeit einer Abfrage vorgesehen. Dies wird über eine Registerarchitektur und einen stufenweisen Initiator-Code bewerkstelligt.
- Ein detaillierteres Verständnis der Erfindung ergibt sich aus der folgenden Beschreibung einer bevorzugten Ausführungsform, die als Beispiel und im Zusammenhang mit den Zeichnungen gegeben wird. Es zeigt:
- Fig. 1 ein Blockdiagramm eines beispielhaften Computersystems, das mehrere PCI-Geräte beinhaltet;
- Fig. 2 ein beispielhaftes Blockdiagramm eines Industriestandards der Handhabung von PCI-Unterbrechungen im beispielhaften Computersystem von Fig. 1, und
- Fig. 3 ein Blockdiagramm der Abwicklung von PCI-Unterbrechungen nach einer erfindungsgemäßen Ausführungsform.
- Fig. 1 ist ein Blockdiagramm eines beispielhaften Computersystems, bei dem die vorliegende Erfindung eingesetzt werden kann, das eine Host-Zentraleinheit (CPU) 10 und einen Host-Speicher 12 aufweist. Die Host-CPU 10 und der Host- Speicher 12 sind über einen CPU-Bus 16 mit einer Host-zu-PCI-Busschnittstelle 14 verbunden. Die Host-zu-PCI-Busschnittstelle 14 stellt über einen primären PCI-Bus 26 eine Verbindung zu einer Anzahl von PCI-Geräten her, die mit 18, 20, 22 beziehungsweise 24 bezeichnet sind. In dem in Fig. 1 gezeigten beispielhaften Computersystem ist gezeigt, dass das PCI-Gerät 24 eine PCI-zu-PCI-Brücke ist. Die PCI-zu-PCI-Brücke 24 schafft über einen sekundären PCI-Bus 30 eine weitere Verbindung zu PCI-Gerät 27 und PCI-Gerät 28.
- In der bevorzugten Ausführungsform ist die Erfindung in der Unterbrechungssteuerungseinheit 32 untergebracht, die am primären PCI-Bus 26 angeordnet ist. Es gibt jedoch keinen technischen Einschränkungsfaktor, der verhindern würde, dass die vorliegende Erfindung an anderen Orten des beispielhaften Computersystems untergebracht würde, wie zum Beispiel im CPU-Bus 16 oder an einem anderen Ort, der direkt oder indirekt mit der CPU 10 verbunden ist.
- Fig. 2 zeigt einen beispielhaften Schaltplan des Industriestandards der Abwicklung von PCI-Unterbrechungen, der vier Unterbrechungsleitungen aufweist, die mit INTA, INTB, INTC beziehungsweise INTD bezeichnet sind, für jedes der PCI- Geräte im beispielhaften Computersystem von Fig. 1. Im Fall des PCI-Geräts 24, das eine PCI-zu-PCI-Brücke ist, können bis zu 16 Unterbrechungsleitungen verwendet werden, d. h. diejenigen, die den PCI-Geräten zugeordnet sind, die mit dem sekundären PCI-Bus 30 verbunden sind. Auf diese Weise sind beim in Fig. 2 gezeigten Industriestandard alle PCI-Unterbrechungen einfach in einer Verdrahtungs-ODER-Unterbrechungs-Routinglogik 50 als verdrahtetes ODER geschaltet, um die Unterbrechungen INTA 52, INTB 54, INTC 56 und INTD 58 zur Unterbrechungssteuerungseinheit 32 zu bilden.
- In Fig. 3 ist ein erfindungsgemäßes Blockdiagramm gezeigt, bei dem die Verdrahtungs-ODER-Unterbrechungs-Routinglogik 50 nicht verwendet wird. Insbesondere ist gezeigt, dass die vorliegende Erfindung eine Anzahl von Unterbrechungsregistern verwendet, die mit 70, 72, 74 beziehungsweise 76 bezeichnet sind. Das System weist ein Register für jedes primäre Gerät auf, um für jede von diesem PCI-Gerät unterstützte PCI-Unterbrechung einen Status zu liefern. Da das PCI-Gerät eine PCI-zu-PCI-Brücke mit vier (oder einer anderen Anzahl) weiteren PCI-Geräten hinter ihr sein kann, muss jedes Register dazu fähig sein, 16 Bits INT#-Daten, vier pro PCI-Gerät, zu enthalten. Jede Unterbrechungsquellenleitung hat auch ein entsprechendes Maskierungsbit. Fig. 3 weist auch ein Konfigurationsregister 78 und ein Master-Unterbrechungsregister 80 auf. Das Konfigurationsregister 78 gibt im Einzelnen an, ob ein primäres PCI-Gerät eine physische Verbindung oder eine Rückebenen-PCI-zu-PCI-Brücke ist, d. h. ob ein primäres PCI-Gerät eine Brücke zu einem sekundären PCI-Bus mit Geräten ist, deren Unterbrechungsanforderungen an die vorliegenden Erfindung weitergeleitet werden, oder nicht. Wie in Fig. 3 gezeigt, ist jedes der Unterbrechungsregister mit einem jeweiligen der PCI-Geräte einzeln ausgerichtet. Insbesondere ist gezeigt, dass das PCI-Gerät 18 mit dem Unterbrechungsregister 70, das PCI-Gerät 20 mit dem Unterbrechungsregister 72, das PCI-Gerät 22 mit dem Unterbrechungsregister 74 und das PCI-Gerät 24 mit dem Unterbrechungsregister 76 ausgerichtet ist. Die Ausrichtung von PCI-Geräten mit Unterbrechungsregistern ist im Folgenden näher beschrieben. In Fig. 3 ist ebenfalls ein Konfigurationsregister 78 und ein Master- Unterbrechungsregister 80 gezeigt. Das in Fig. 3 gezeigte System kann auch als "Unterbrechungsbeschleunigungsmodus" bezeichnet werden, um es so vom Industriestandardmodus zu unterscheiden, der in Fig. 2 gezeigt ist.
- Das Konfigurationsregister 7ß ist immer aktiv und steuert das Verhalten des Systems im Unterbrechungsbeschleunigungsmodus. Das Konfigurationsregister 78 enthält ebenfalls ein Modus-Freischaltungsbit, das, wenn es während des Systemstarts gesetzt wird, anzeigt, dass der in Fig. 3 gezeigte Unterbrechungsbeschleunigungsmodus zu verwenden ist. Wenn das Modus- Freischaltungsbit nicht gesetzt ist, dann greift das System auf das in Fig. 2 gezeigte Verfahren zurück. Auf diese Weise unterstützt die vorliegende Erfindung sowohl den Industriestandardmodus von Fig. 2 und den in Fig. 3 gezeigten Unterbrechungsbeschleunigungsmodus.
- Während des Systemstarts sind, wenn das Modus-Freischaltungsbit im Konfigurationsregister 78 gesetzt ist, die Unterbrechungsregister 70, 72, 74 und 76 zugänglich und mit dem jeweiligen PCI-Gerät oder der jeweiligen PCI-zu-PCI-Brücke ausgerichtet, wie in Fig. 3 gezeigt ist. Zusätzlich wird beim Systemstart ein Adresszeiger für die vier Unterbrechungsregister 70, 72, 74 und 76 im Konfigurationsregister 78 gespeichert. Das Master-Unterbrechungsregister 80 wird nur freigeschaltet, wenn das Modus-Freischaltungsbit gesetzt ist. Das Master- Unterbrechungsregister 80 wird von den vier mit 70, 72, 74 beziehungsweise 76 bezeichneten Unterbrechungsregistern direkt über Flags angesprochen. Das Master- Unterbrechungsregister 80 wird dazu verwendet festzustellen, auf welches Unterbrechungsregister 70, 72, 74 oder 76 zum Auffinden der Quelle der PCI- Unterbrechung zugegriffen werden soll. Auf diese Weise kann die PCI- Unterbrechungsquelle zuverlässig und vorhersagbar in zwei Bus-Lesezyklen festgestellt werden, d. h. ein Lesezyklus an das Master-Unterbrechungsregister 80 und ein Lesezyklus an das spezifische Unterbrechungsregister, d. h. 70, 72, 74 oder 76.
- Das mit Registern arbeitende Verfahren der vorliegenden Erfindung reicht zur Unterstützung von mehreren Implementierungen aus. Zum Beispiel kann in der Grundimplementierung die vorliegende Erfindung bis zu vier primäre PCI-Geräte oder PCI-zu-PCI-Brücken und sechzehn sekundäre PCI-Geräte unterstützen, d. h. vierundsechzig einzelne Unterbrechungsleitungen, vier Unterbrechungsleitungen pro sekundärem PCI-Gerät. Ein zusätzliches erfindungsgemäßes Merkmal besteht darin, dass alle Unterbrechungsbits sowohl im Master-Unterbrechungsregister 80 als auch in den vier Unterbrechungsregistern maskierbar sind. Im Konfigurationsregister 78 ist ein Maskierungs-Freischaltungs/Modus-Bit. Dieses Maskierungs/Freischaltungs-Bit kann automatisch das Durchlassen maskierter Unterbrechungsleitungen und damit inhärent die Eingabe an das Master-Unterbrechungsregister 80 blockieren. Dieses Merkmal ist auch für die Master-Unterbrechungs-Maskierungsbits implementiert. Hierdurch wird die Unterbrechungslatenz verbessert, da es nicht länger notwendig ist, dass die einzelnen Maskierungsbits in einem getrennten Buszyklus gelesen werden. Außerdem wird dadurch die Flexibilität für die Unterbrechungsabfrage beibehalten, d. h. die vier (oder eine andere Zahl) von Unterbrechungs-Statusbits, die im Master-Unterbrechungsregister 80 gespeichert sind, stimmen mit dem Status der Unterbrechungsregisterquellen überein. Außerdem können gegebenenfalls eine Vielzahl von Unterbrechungsquellen erfasst und in eine Prioritätsrangfolge gebracht werden.
- Nach der Beschreibung einer bevorzugten Ausführungsform der Erfindung wird es dem Fachmann ersichtlich, dass andere, diese Konzepte beinhaltende Ausführungsformen vorgesehen werden können. Es versteht sich daher, dass die vorliegende Erfindung nicht auf die offenbarten und oben beschriebenen Ausführungsformen der Erfindung, sondern nur durch den Umfang der folgenden Ansprüche eingeschränkt ist.
Claims (10)
1. Computersystem, mit:
mehreren an einen PCI-Bus (26) angeschlossenen PCI-Geräten (18...24),
wobei die PCI-Geräte Unterbrechungsanforderungen aussenden können;
gekennzeichnet durch:
mehrere Unterbrechungsregister (70...76), wobei jedes
Unterbrechungsregister nur einem PCI-Gerät zugeordnet ist und jedes PCI-
Gerät nur einem Unterbrechungsregister zugeordnet ist, wobei jedes
Unterbrechungsregister zum Aussenden eines Unterbrechungssignals nach
dem Empfang einer Unterbrechungsanforderung von dem diesem
Unterbrechungsregister zugeordneten PCI-Gerät eingerichtet ist; und
ein Master-Unterbrechungsregister (80), das mit jedem
Unterbrechungsregister (70...76) verbunden ist, zum Empfangen eines
Unterbrechungssignals, das von einem der Unterbrechungsregister in
Reaktion auf eine Unterbrechungsanforderung ausgesendet wurde, wobei das
Master-Unterbrechungsregister Bits enthält, wobei jedes Bit einem der
Unterbrechungsregister entspricht und anzeigt, ob das entsprechende
Unterbrechungsregister das Unterbrechungssignal ausgesendet hat, wobei
das Master-Unterbrechungsregister identifiziert, welches der
Unterbrechungsregister das Unterbrechungssignal ausgesendet hat, um das
dem identifizierten Unterbrechungsregister zugeordnete PCI-Gerät (18...24)
als eine Quelle der Unterbrechungsanforderung zu identifizieren.
2. Computersystem nach Anspruch 1, weiter mit einem Konfigurationsregister
(78), das eine Adresse der Unterbrechungsregister (70...76) speichert, wobei
die Adresse zum Zugreifen auf das Unterbrechungsregister verwendet wird,
das vom Master-Unterbrechungsregister (80) als dasjenige identifiziert wurde,
welches das Unterbrechungssignal ausgesendet hat.
3. Computersystem nach Anspruch 1, bei dem jedes Unterbrechungsregister
(70...76) Bits aufweist, wobei jedes Bit eines Unterbrechungsregisters einer
Unterbrechungsleitung entspricht, die von dem dem Unterbrechungsregister
zugeordneten PCI-Gerät (18...24) zum Aussenden einer
Unterbrechungsanforderung verwendet werden kann, wobei jedes Bit anzeigt,
ob eine Unterbrechungsanforderung auf dieser entsprechenden
Unterbrechungsleitung ausgesendet wurde; und das weiter Folgendes
aufweist:
eine Einrichtung zum Ausblenden eines oder mehrerer Bits eines
Unterbrechungsregisters, um das Unterbrechungsregister daran zu hindern,
ein Unterbrechungssignal auszusenden, wenn das dem
Unterbrechungsregister zugeordnete PCI-Gerät auf der einem
ausgeblendeten Bit entsprechenden Unterbrechungsleitung eine
Unterbrechungsanforderung aussendet.
4. Computersystem nach Anspruch 1, weiter mit:
einer Einrichtung zum Ausblenden eines oder mehrerer Bits des Master-
Unterbrechungsregisters, um das Master-Unterbrechungsregister daran zu
hindern, ein Signal auszusenden, wenn das Bit ausgeblendet ist, das dem
Unterbrechungsregister entspricht, welches das Unterbrechungssignal
aussendete.
5. Computersystem nach Anspruch 1, weiter mit:
einer Unterbrechungs-Weiterleitungslogik (50), die mit jedem PCI-Gerät am
PCI-Bus verbunden ist, wobei die Unterbrechungs-Weiterleitungslogik ein
Signal liefert, wenn eines der PCI-Geräte eine Unterbrechungsanforderung
aussendet, und
einer Einrichtung (78) zum Freischalten der Unterbrechungsregister und des
Master-Unterbrechungsregisters, während die Unterbrechungs-
Weiterleitungslogik gesperrt wird, so dass die Unterbrechungsregister und das
Master-Unterbrechungsregister zum Bestimmen der Quelle der
Unterbrechungsanforderung anstelle der Unterbrechungs-Weiterleitungslogik
ausgewählt werden.
6. Computersystem nach Anspruch 1, weiter mit:
einer PCI-zu-PCI-Brücke (24), die zwischen den PCI-Bus (26) und einen
zweiten PCI-Bus (30) geschaltet ist, wobei die PCI-zu-PCI-Brücke einem der
Unterbrechungsregister (76) zugeordnet ist; und
PCI-Geräten (27, 28), die an den zweiten PCI-Bus (30) angeschlossen sind,
wobei jedes davon Unterbrechungsanforderungen aussenden kann, wobei die
PCI-zu-PCI-Brücke (24) zum Weiterleiten von Unterbrechungsanforderungen
von den an den zweiten PCI-Bus angeschlossenen PCI-Geräten an das der
PCI-zu-PCI-Brücke zugeordnete Unterbrechungsregister (76) eingerichtet ist.
7. Unterbrechungssteuerung, gekennzeichnet durch:
mehrere Unterbrechungsregister (70...76), wobei jedes
Unterbrechungsregister nur einem von mehreren an einen PCI-Bus (26)
angeschlossenen PCI-Geräten (18...24) zugeordnet ist und jedes PCI-Gerät
nur einem Unterbrechungsregister zugeordnet ist, wobei jedes
Unterbrechungsregister nach dem Empfangen einer
Unterbrechungsanforderung auf einer von mehreren Unterbrechungsleitungen
vom zugeordneten PCI-Gerät ein Unterbrechungssignal aussendet;
ein Master-Unterbrechungsregister (80), das mit jedem
Unterbrechungsregister (70...76) verbunden ist, zum Empfangen eines von
einem dem Unterbrechungsregister in Reaktion auf eine
Unterbrechungsanforderung ausgesendeten Unterbrechungssignals, wobei
das Master-Unterbrechungsregister Bits aufweist, wobei jedes Bit einem der
Unterbrechungsregister entspricht und anzeigt, ob das entsprechende
Unterbrechungsregister das Unterbrechungssignal aussendete, wobei das
Master-Unterbrechungsregister identifiziert, welches der
Unterbrechungsregister das Unterbrechungssignal aussendete; und
ein Konfigurationsregister (78), das eine Adresse des Unterbrechungsregisters
(70...76) speichert, wobei die Adresse zum Zugreifen auf das
Unterbrechungsregister verwendet wird, das vom Master-
Unterbrechungsregister als dasjenige identifiziert wurde, welches das
Unterbrechungssignal ausgesendet hat, wobei das identifizierte
Unterbrechungsregister eine Unterbrechungsleitung identifiziert, die von dem
dem identifizierten Unterbrechungsregister zugeordneten PCI-Gerät (18...24)
zum Aussenden der Unterbrechungsanforderung verwendet wurde.
8. Verfahren zum Bestimmen einer Quelle von Unterbrechungsanforderungen,
gekennzeichnet durch die folgenden Schritte:
Zuordnen von Unterbrechungsregistern (70...76) und an einen PCI-Bus (26)
angeschlossenen PCI-Geräten (18...24), wobei jedes Unterbrechungsregister
nur einem PCI-Gerät zugeordnet ist und jedes PCI-Gerät nur einem
Unterbrechungsregister zugeordnet ist, wobei jedes PCI-Gerät an das diesem
PCI-Gerät zugeordnete Unterbrechungsregister
Unterbrechungsanforderungen aussenden kann;
Aussenden eines Unterbrechungssignals an ein Master-
Unterbrechungsregister (80) durch eines der Unterbrechungsregister in
Reaktion auf eine Unterbrechungsanforderung, wobei das Master-
Unterbrechungsregister Bits aufweist, wobei jedes Bit einem der
Unterbrechungsregister (70...76) entspricht, wobei jedes Bit anzeigt, ob das
entsprechende Unterbrechungsregister das Unterbrechungssignal
ausgesendet hat; und
Identifizieren aus den Bits des Master-Unterbrechungsregisters, welches der
Unterbrechungsregister das Unterbrechungssignal ausgesendet hat.
9. Verfahren nach Anspruch 8, weiter mit den folgenden Schritten:
Lesen eines Konfigurationsregisters (78) zum Erhalten einer Adresse des
Unterbrechungsregisters (70...76), das als dasjenige identifiziert wurde,
welches das Unterbrechungssignal ausgesendet hat; und
Lesen des identifizierten Unterbrechungsregisters zum Bestimmen, welche
Unterbrechungsleitung das dem identifizierten Unterbrechungsregister
zugeordnete PCI-Gerät zum Aussenden der Unterbrechungsanforderung
verwendet hat.
10. Verfahren nach Anspruch 8, weiter mit den folgenden Schritten:
Lesen eines Freischaltungsbits; und wobei die Schritte des Zuordnens,
Aussendens und Identifizierens nur dann erfolgen, wenn das Freischaltungsbit
gesetzt ist, wobei sonst jedes der PCI-Geräte abgefragt wird, um zu
bestimmen, welches der PCI-Geräte die Unterbrechungsanforderung
ausgesendet hat.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/563,221 US5764996A (en) | 1995-11-27 | 1995-11-27 | Method and apparatus for optimizing PCI interrupt binding and associated latency in extended/bridged PCI busses |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69621309D1 DE69621309D1 (de) | 2002-06-27 |
DE69621309T2 true DE69621309T2 (de) | 2002-10-24 |
Family
ID=24249611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69621309T Expired - Fee Related DE69621309T2 (de) | 1995-11-27 | 1996-11-11 | Verfahren und Gerät zur Optimierung von gemeinsamen PCI-Unterbrechungen und entsprechender Latenz in den PCI-Bussen mit Erweiterung oder Brücke |
Country Status (4)
Country | Link |
---|---|
US (1) | US5764996A (de) |
EP (1) | EP0775959B1 (de) |
JP (1) | JPH09185578A (de) |
DE (1) | DE69621309T2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978860A (en) * | 1995-06-07 | 1999-11-02 | Dell Usa, L.P. | System and method for disabling and re-enabling at least one peripheral device in a computer system by masking a device-configuration-space-access-signal with a disable or re-enable signal |
US6240065B1 (en) | 1996-01-08 | 2001-05-29 | Galileo Technologies Ltd. | Bit clearing mechanism for an empty list |
IL116707A (en) * | 1996-01-08 | 2000-01-31 | Galileo Technology Ltd | Method and apparatus for managing packet memory |
IL116986A (en) * | 1996-01-31 | 2000-01-31 | Galileo Technology Ltd | Switching ethernet controller providing packet routing |
IL116989A (en) * | 1996-01-31 | 1999-10-28 | Galileo Technology Ltd | Switching ethernet controller |
IL116988A (en) * | 1996-01-31 | 1999-12-31 | Galileo Technology Ltd | Bus protocol |
DE19731634A1 (de) * | 1997-07-23 | 1999-01-28 | Nokia Telecommunications Oy | Vorrichtung und Verfahren zum Auffinden einer einer Quelle zugeordneten Unterbrechungsanforderung |
KR100448931B1 (ko) * | 1997-08-11 | 2004-11-16 | 삼성전자주식회사 | 피씨아이 인터럽트 공유장치 |
US6003109A (en) * | 1997-08-15 | 1999-12-14 | Lsi Logic Corporation | Method and apparatus for processing interrupts in a data processing system |
JP3287283B2 (ja) * | 1997-10-20 | 2002-06-04 | 日本電気株式会社 | Pciバスの割り込みステアリング回路 |
US6141703A (en) * | 1998-07-21 | 2000-10-31 | Hewlett-Packard Company | Interrupt sharing system assigning each interrupt request signal to a select one of system interrupt signals based on characteristic data of each peripheral device |
US6553443B1 (en) * | 1999-09-28 | 2003-04-22 | Legerity, Inc. | Method and apparatus for prioritizing interrupts in a communication system |
US6636916B1 (en) | 2000-02-14 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | Assigning PCI device interrupts in a computer system |
US6816935B1 (en) * | 2001-03-02 | 2004-11-09 | Advanced Micro Devices, Inc. | Interrupt and status reporting structure and method for a timeslot bus |
GB0212262D0 (en) * | 2002-05-28 | 2002-07-10 | Sendo Int Ltd | Accessory detection and identification |
US20040064620A1 (en) * | 2002-09-30 | 2004-04-01 | Kaushik Shivnandan D. | Device representation apparatus and methods |
US20050021894A1 (en) * | 2003-07-24 | 2005-01-27 | Renesas Technology America, Inc. | Method and system for interrupt mapping |
DE102004042170B4 (de) * | 2004-08-31 | 2009-02-19 | Advanced Micro Devices, Inc., Sunnyvale | Nachrichtenbasierte Interrupttabelle |
JP4839484B2 (ja) | 2007-04-06 | 2011-12-21 | 日本電気株式会社 | バス接続デバイス、バス接続方法およびバス接続用プログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3611305A (en) * | 1969-02-10 | 1971-10-05 | Scanders Associates Inc | Data processor interrupt system |
US3719930A (en) * | 1971-03-25 | 1973-03-06 | Hitachi Ltd | One-bit data transmission system |
US4519028A (en) * | 1981-02-17 | 1985-05-21 | Digital Equipment Corporation | CPU with multi-stage mode register for defining CPU operating environment including charging its communications protocol |
US4908745A (en) * | 1986-10-08 | 1990-03-13 | Hitachi, Ltd. | Sequence controller |
JPH01126751A (ja) * | 1987-11-11 | 1989-05-18 | Fujitsu Ltd | グルーピング装置 |
KR940001878B1 (ko) * | 1990-03-08 | 1994-03-10 | 가부시끼가이샤 히다찌세이사꾸쇼 | 멀티 프로세서시스템 및 인터럽션 제어장치 |
JP3003968B2 (ja) * | 1991-05-01 | 2000-01-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 割込み処理プログラム選択装置及び処理方法 |
US5542076A (en) * | 1991-06-14 | 1996-07-30 | Digital Equipment Corporation | Method and apparatus for adaptive interrupt servicing in data processing system |
US5530875A (en) * | 1993-04-29 | 1996-06-25 | Fujitsu Limited | Grouping of interrupt sources for efficiency on the fly |
AU1261995A (en) * | 1993-12-16 | 1995-07-03 | Intel Corporation | Multiple programmable interrupt controllers in a multi-processor system |
US5519872A (en) * | 1993-12-30 | 1996-05-21 | Intel Corporation | Fast address latch with automatic address incrementing |
-
1995
- 1995-11-27 US US08/563,221 patent/US5764996A/en not_active Expired - Lifetime
-
1996
- 1996-11-11 EP EP96118048A patent/EP0775959B1/de not_active Expired - Lifetime
- 1996-11-11 DE DE69621309T patent/DE69621309T2/de not_active Expired - Fee Related
- 1996-11-25 JP JP8313445A patent/JPH09185578A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0775959A2 (de) | 1997-05-28 |
EP0775959B1 (de) | 2002-05-22 |
DE69621309D1 (de) | 2002-06-27 |
US5764996A (en) | 1998-06-09 |
JPH09185578A (ja) | 1997-07-15 |
EP0775959A3 (de) | 1997-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69621309T2 (de) | Verfahren und Gerät zur Optimierung von gemeinsamen PCI-Unterbrechungen und entsprechender Latenz in den PCI-Bussen mit Erweiterung oder Brücke | |
DE69626485T2 (de) | Schnittstellenbildung zwischen Direktspeicherzugriffsvorrichtung und einem nicht-ISA-Bus | |
DE69825623T2 (de) | Mechanismen zum umwandeln von unterbrechungsanfragesignalen auf addressen und datenleitungen zur generierung von interruptsignalen | |
DE69519926T2 (de) | Verfahren und vorrichtung zum einhalten der transaktionssteuerung und zur unterstützung von verzögerten antworten in einer busbrücke | |
DE3586352T2 (de) | Busarbiter fuer datenverarbeitungssystem mit einem ein-/ausgabekanal. | |
DE69032614T2 (de) | Verfahren zur Datenverteilung in einer Speicherplattenanordnung | |
DE69030640T2 (de) | Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas | |
DE69905689T2 (de) | Verfahren und System zum Einstecken unter Spannung von Anpassungskarten in einer Buserweiterungsumgebung | |
DE602004012106T2 (de) | Multikanal-DMA mit gemeinsamem FIFO-Puffer | |
DE69030861T2 (de) | Bus-Master-Steuerprotokoll | |
DE3788805T2 (de) | Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem. | |
DE69421755T2 (de) | Initialisierung von Mehrfachbus-Netzwerken | |
DE102008035120B4 (de) | Prozessorauswahl für einen Interrupt, die einen Prozessorcluster identifiziert | |
DE69108434T2 (de) | Mehrgruppen-Signalprozessor. | |
DE69828074T2 (de) | Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl | |
DE69901247T2 (de) | Direktspeicherzugriff in einer brücke für ein mehrprozessorsystem | |
DE69621212T2 (de) | Busfehlerverarbeiter in einem Zweifachbussystem | |
DE69903630T2 (de) | Mehrprozessorsystembrücke | |
DE69228684T2 (de) | Verfahren und gerät zur erweiterung eines rückwandverbindungsbusses ohne zusätzliche byte-selektionssignale | |
DE60000285T2 (de) | Vorrichtung und verfahren zur unterbrechungsverarbeitung von peripheriegeräten | |
DE60304455T2 (de) | Usb host controller | |
DE3855300T2 (de) | Schnittstellenschaltung zur Datenübertragung zwischen Prozessor und Ein-/Ausgabevorrichtung | |
DE69726302T2 (de) | Busschnittstellensteuerungsschaltung | |
DE69531270T2 (de) | Unterbrechungssteuerungsgeräte in symmetrischen Mehrprozessorsystemen | |
DE69717232T2 (de) | Fehlertolerantes Bussystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |