Herkömmlicher PCI

Herkömmlicher PCI (ist PCI ein initialism, der von der Peripherischen Teilverbindung, dem Teil des PCI Lokalen Busstandards gebildet ist und häufig zu PCI verkürzt ist), ist ein Computerbus, um Hardware-Geräte in einem Computer beizufügen. Diese Geräte können entweder die Form eines einheitlichen Stromkreises annehmen, der auf die Hauptplatine selbst geeignet ist, genannt ein planares Gerät in der PCI Spezifizierung, oder eine Vergrößerungskarte, die ein Ablagefach einbaut. Der PCI Lokale Bus wurde zuerst in IBM PC compatibles durchgeführt, wo es die Kombination von ISA plus ein VESA Lokaler Bus als die Buskonfiguration versetzt hat. Es ist nachher für andere Computertypen angenommen worden. PCI wird durch PCI-X und PCI-Schnellzug ersetzt, aber die meisten Hauptplatinen werden noch mit einem oder mehr PCI Ablagefächern gemacht, die für vielen Gebrauch genügend sind.

Die PCI Spezifizierung bedeckt die physische Größe des Busses (einschließlich der Größe und des Abstands des Leiterplatte-Randes elektrische Kontakte), elektrische Eigenschaften, Bustiming und Protokolle. Die Spezifizierung kann in PCI Special Interest Group (PCI-SIG) gekauft werden.

Typische PCI in PCs verwendete Karten schließen ein: Netzkarten, gesunde Karten, Modems, Extrahäfen wie USB oder Serien-, Fernsehtuner-Karten und Plattenkontrolleure. PCI Videokarten haben ISA und VESA Karten ersetzt, bis wachsende Bandbreite-Voraussetzungen den Fähigkeiten zu PCI entwachsen haben; die bevorzugte Schnittstelle für Videokarten ist AGP, und dann PCI Schnellzug geworden. PCI Videokarten bleiben verfügbar für den Gebrauch mit alten PCs ohne AGP oder PCI-Schnellzug-Ablagefächer.

Viele auf PCI Vergrößerungskarten vorher zur Verfügung gestellte Geräte werden jetzt auf Hauptplatinen allgemein integriert oder in den universalen Serienbus und die PCI-Schnellzug-Versionen verfügbar.

Geschichte

Die Arbeit an PCI hat am Architektur-Entwicklungslaboratorium von Intel um 1990 begonnen.

Eine Mannschaft von Ingenieuren von Intel (zusammengesetzt in erster Linie aus ADL Ingenieuren) hat die Architektur definiert und hat einen Beweis des Konzepts chipset und der Plattform (Saturn) entwickelt, der mit Mannschaften in den Tisch-PC-Systemen der Gesellschaft und Kernlogikproduktorganisationen vereinigt. Die ursprüngliche PCI Architektur-Mannschaft, hat unter anderen, Dave Carson, Norm Rasmussen, Brad Hosler, Ed Solari, Bruce Young, Gary Solomon, Ali Oztaskin, Tom Sakoda, Rich Haslam, Jeff Rabe und Steve Fischer eingeschlossen.

PCI (Peripherische Teilverbindung) wurde sofort gestellt, um in Servern zu verwenden, MCA und EISA als der Server-Vergrößerungsbus der Wahl ersetzend. In Hauptströmungs-PCs war PCI langsamer, um VESA Local Bus (VLB) zu ersetzen, und hat bedeutende Marktdurchdringung bis zum Ende 1994 in der zweiten Generation PCs von Pentium nicht gewonnen. Vor 1996 war VLB fast erloschen, und Hersteller hatten PCI sogar für 486 Computer angenommen. EISA hat fortgesetzt, neben PCI im Laufe 2000 verwendet zu werden. Apple Computer hat PCI für die Berufsmacht Computer von Macintosh angenommen (NuBus ersetzend), Mitte 1995 und das Erzeugnis des Verbrauchers Performa (LC PDS ersetzend), Mitte 1996.

Spätere Revisionen von PCI haben neue Eigenschaften und Leistungsverbesserungen, einschließlich 66 MHz 3.3 V normale und 133-MHz-PCI-X und die Anpassung von PCI hinzugefügt, der zu anderen Form-Faktoren signalisiert. Sowohl PCI-X 1.0b als auch PCI-X 2.0 sind mit einigen PCI Standards rückwärts kompatibel.

Der PCI-SIG hat den Serien-PCI-Schnellzug 2004 eingeführt. Zur gleichen Zeit haben sie PCI als Herkömmlicher PCI umbenannt. Seitdem haben Hauptplatine-Hersteller progressiv weniger Herkömmliche PCI Ablagefächer für den neuen Standard eingeschlossen.

Auto-Konfiguration

PCI stellt getrenntes Gedächtnis und Eingabe/Ausgabe-Hafen-Adressräume für die x86 Verarbeiter-Familie, 64 und 32 Bit beziehungsweise zur Verfügung. Adressen in diesen Adressräumen werden durch die Software zugeteilt. Ein dritter Adressraum, genannt den PCI Konfigurationsraum, der ein festes Wenden-Schema verwendet, erlaubt Software, den Betrag des Gedächtnisses und durch jedes Gerät erforderlichen Eingabe/Ausgabe-Adressraums zu bestimmen. Jedes Gerät kann um bis zu sechs Gebiete des Speicherraums oder Eingabe/Ausgabe-Hafen-Raums über seine Konfigurationsraumregister bitten.

In einem typischen System fragt der firmware (oder Betriebssystem) alle PCI Busse in der Anlauf-Zeit (über den PCI Konfigurationsraum), um herauszufinden, welche Geräte da sind, und welche Systemmittel (Speicherraum, Eingabe/Ausgabe-Raum, Unterbrechungslinien, usw.) jeder braucht. Es teilt dann die Mittel zu und erzählt jedes Gerät, wie seine Zuteilung ist.

Der PCI Konfigurationsraum enthält auch einen kleinen Betrag der Gerät-Typ-Information, die einem Betriebssystem hilft, Gerät-Fahrer dafür zu wählen, oder mindestens einen Dialog mit einem Benutzer über die Anlagenkonfiguration zu haben.

Geräte können ein ROM an Bord haben, das rechtskräftigen Code für x86 oder Verarbeiter des PAPAS-RISC, einen Offenen Firmware Treiber oder einen EFI Treiber enthält. Diese sind für während des Systemanlaufs verwendete Geräte normalerweise notwendig, bevor Gerät-Treiber durch das Betriebssystem geladen werden.

Außerdem gibt es PCI Latenz-Zeitmesser, die ein Mechanismus für PCI busmeisternde Geräte sind, um den PCI Bus ziemlich zu teilen. "Messe" bedeutet in diesem Fall, dass Geräte solch einen großen Teil der verfügbaren PCI Busbandbreite nicht verwenden werden, dass andere Geräte nicht im Stande sind, erforderliche geleistete Arbeit zu bekommen. Bemerken Sie, das gilt für den PCI-Schnellzug nicht.

Unterbrechungen

Geräte sind erforderlich, einem Protokoll zu folgen, so dass die Unterbrechungslinien geteilt werden können. Der PCI Bus schließt vier Unterbrechungslinien ein, von denen alle für jedes Gerät verfügbar sind. Jedoch werden sie in der Parallele nicht angeschlossen, wie die anderen PCI Buslinien sind. Die Positionen der Unterbrechungslinien lassen zwischen Ablagefächern so rotieren, was zu einem Gerät als INTA# erscheint, ist Linie INTB# zum folgenden und INTC# zu demjenigen danach. Geräte der einzelnen Funktion verwenden ihren INTA# für die Unterbrechungsnachrichtenübermittlung, so wird die Gerät-Last ziemlich gleichmäßig über die vier verfügbaren Unterbrechungslinien ausgebreitet. Das erleichtert ein häufiges Problem mit dem Teilen von Unterbrechungen.

PCI Brücken (zwischen zwei PCI Bussen) stellen die vier Unterbrechungsspuren auf jeder ihrer Seiten auf unterschiedliche Weisen kartografisch dar. Einige Brücken verwenden fest kartografisch darzustellen, und in anderen ist es konfigurierbar. Im allgemeinen Fall kann Software nicht bestimmen, welche Unterbrechung ein Gerät INTA# linieren, wird Nadel mit über eine Brücke verbunden. Von PCI-Unterbrechungslinien auf Systemunterbrechungslinien durch die PCI-Gastgeber-Brücke kartografisch darzustellen, ist ähnlich von der Durchführung abhängig. Das Ergebnis besteht darin, dass es unmöglich sein kann zu bestimmen, wie Unterbrechungen eines PCI Geräts zur Software erscheinen werden. Mit der Plattform spezifischer BIOS-Code wird gemeint, um das zu wissen, und ein Feld im Konfigurationsraum jedes Geräts zu setzen, der anzeigt, mit welchem IRQ es verbunden wird, aber dieser Prozess ist unzuverlässig.

PCI Unterbrechungslinien werden Niveau-ausgelöst. Das wurde über das Rand-Auslösen gewählt, um einen Vorteil zu gewinnen, wenn er eine geteilte Unterbrechungslinie, und für die Robustheit bedient: Ausgelöste Unterbrechungen des Randes sind leicht zu fehlen.

Spätere Revisionen der PCI Spezifizierung fügen Unterstützung für mit der Nachricht Zeichen gegebene Unterbrechungen hinzu. In diesem System gibt ein Gerät Zeichen, dass sein Bedürfnis nach dem Dienst durch das Durchführen eines Gedächtnisses, aber nicht durch das Erklären einer hingebungsvollen Linie schreibt. Das erleichtert das Problem der Knappheit von Unterbrechungslinien. Selbst wenn Unterbrechungsvektoren noch geteilt werden, erträgt es die sich teilenden Probleme von Niveau-ausgelösten Unterbrechungen nicht. Es löst auch das Routenplanungsproblem auf, weil das Gedächtnis schreibt, wird ziemlich wie vorherzusehen war zwischen Gerät und Gastgeber modifiziert. Schließlich, weil die Nachrichtennachrichtenübermittlung inbändigem ist, löst sie einige Synchronisationsprobleme auf, die mit dem angeschlagenen vorkommen können, schreibt, und unterbrechen Sie aus dem Band Linien.

PCI Schnellzug hat physische Unterbrechungslinien überhaupt nicht. Es verwendet mit der Nachricht Zeichen gegebene Unterbrechungen exklusiv.

Herkömmliche Hardware-Spezifizierungen

Diese Spezifizierungen vertreten die allgemeinste Version von in normalen PCs verwendetem PCI.

  • Uhr mit gleichzeitigen Übertragungen
  • Maximalübertragungsrate von 133 MB/s (133 Megabytes pro Sekunde) für 32-Bit-Busbreite (33.33 MHz × 32 Bit ÷ 8 Bit/Byte = 133 MB/s)
  • 32-Bit-Busbreite
  • 32- oder 64-Bit-Speicheradressraum (4 Gigabytes oder 16 exabytes)
  • 32-Bit-Eingabe/Ausgabe-Hafen-Raum
  • 256 Bytes (pro Gerät) Konfigurationsraum
  • 5 Volt, die signalisieren
  • Widerspiegelte Welle, die umschaltet

Die PCI Spezifizierung stellt auch Optionen für 3.3 V Nachrichtenübermittlung, 64-Bit-Busbreite und das 66-MHz-Abstoppen zur Verfügung, aber auf diese wird außerhalb der PCI-X-Unterstützung auf Server-Hauptplatinen nicht allgemein gestoßen.

Der PCI Busschiedsrichter führt Busschlichtung unter vielfachen Mastern auf dem PCI Bus durch. Jede Zahl von Busmastern kann auf dem PCI Bus, sowie den Bitten um den Bus wohnen. Ein Paar der Bitte und Bewilligungssignale wird jedem Busmaster gewidmet.

Karte-Stromspannung und Texteingabe

Typische PCI Karten haben entweder eine oder zwei Schlüsselkerben abhängig von ihrer Signalstromspannung. Karten, die 3.3 Volt verlangen, haben eine Kerbe 56.21 Mm von der Karte backplate; diejenigen, die 5 Volt verlangen, haben eine Kerbe 104.47 Mm vom backplate. "Universale Karten", jede Stromspannung akzeptierend, haben beide Schlüsselkerben. Das erlaubt Karten, nur in Ablagefächer mit einer Stromspannung geeignet zu werden, die sie unterstützen.

Stecker pinout

Der PCI Stecker wird definiert als, 62 Kontakte auf jeder Seite des Rand-Steckers zu haben, aber zwei oder vier von ihnen werden durch Schlüsselkerben ersetzt, so hat eine Karte 60 oder 58 Kontakte auf jeder Seite. Nadel 1 ist am backplate am nächsten. B und sind Seiten wie folgt, in den Hauptplatine-Stecker herabsehend.

64-Bit-PCI erweitert das um zusätzliche 32 Kontakte auf jeder Seite, die n.Chr. [63:32], C/BE [7:4] #, das PAR64 Paritätssignal und mehrere Macht und Boden-Nadeln zur Verfügung stellen.

Die meisten Linien werden mit jedem Ablagefach in der Parallele verbunden. Die Ausnahmen sind:

  • Jedes Ablagefach hat sein eigenes REQ# Produktion zu, und GNT# Eingang vom Hauptplatine-Schiedsrichter.
  • Jedes Ablagefach hat seine eigene IDSEL Linie, die gewöhnlich mit einem spezifischen n.Chr. Linie verbunden ist.
  • TDO ist zum TDI des folgenden Ablagefaches Gänseblümchen-verkettet. Karten ohne JTAG-Unterstützung müssen TDI mit TDO verbinden, um die Kette nicht zu brechen.
  • PRSNT1# und PRSNT2# für jedes Ablagefach haben ihr eigenes ziehen Widerstände auf der Hauptplatine hoch. Die Hauptplatine kann (aber zu nicht haben) fühlen diese Nadeln, um die Anwesenheit von PCI Karten und ihren Macht-Voraussetzungen zu bestimmen.
  • REQ64# und ACK64# werden auf 32 Bit nur Ablagefächer individuell hochgezogen.
  • Die Unterbrechungslinien INTA# durch INTD# werden mit allen Ablagefächern in verschiedenen Ordnungen verbunden. (INTA# auf einem Ablagefach ist INTB# auf dem folgenden und INTC# auf demjenigen danach.)

Zeichen:

  • IOPWR ist +3.3V oder +5V abhängig vom Platineneinschub. Die Ablagefächer haben auch einen Kamm in einem von zwei Plätzen, der Einfügung von Karten verhindert, die die entsprechende Schlüsselkerbe nicht haben, Unterstützung für diesen Stromspannungsstandard anzeigend. Universale Karten haben sowohl Schlüsselkerben als auch verwenden IOPWR, um ihre Eingabe/Ausgabe-Signalpegel zu bestimmen.
  • Der PCI SIG fördert stark 3.3 V PCI-Nachrichtenübermittlung, Unterstützung dafür seit der Standardrevision 2.3 verlangend, aber die meisten PC-Hauptplatinen verwenden 5 V Variante. So, während viele zurzeit verfügbare PCI Karten beide unterstützen, und zwei Schlüsselkerben haben, um dass anzuzeigen, gibt es noch eine Vielzahl von 5 V-only Karten auf dem Markt.
  • Die M66EN-Nadel ist ein zusätzlicher Boden auf 5V PCI in den meisten PC-Hauptplatinen gefundene Busse. Karten und Hauptplatinen, die 66-MHz-Operation auch nicht unterstützen, legen diese Nadel nieder. Wenn alle Teilnehmer 66-MHz-Operation unterstützen, erhebt ein hochziehen Widerstand auf der Hauptplatine dieses Signal hoch, und 66-MHz-Operation wird ermöglicht.
  • Mindestens ein PRSNT1# und PRSNT2# muss durch die Karte niedergelegt werden. Die gewählte Kombination zeigt die Gesamtmacht-Voraussetzungen der Karte (25 W, 15 W oder 7.5 W) an.
  • SBO# und SDONE sind Signale von einem Kontrolleur des geheimen Lagers zum aktuellen Ziel. Sie sind nicht Initiator-Produktionen, aber werden diesen Weg gefärbt, weil sie Zieleingänge sind.

Physische Karte-Dimensionen

Lebensgroße Karte

Die ursprüngliche "lebensgroße" PCI Karte wird als eine Höhe von 107 Mm (4.2 Zoll) und eine Tiefe von 312 Mm (12.283 Zoll) angegeben. Die Höhe schließt den Rand-Karte-Stecker ein. Jedoch sind modernste PCI Karten Brust- oder (sieh unten) kleiner, und viele moderne PCs können keine lebensgroße Karte passen.

Karte backplate

Zusätzlich zu diesen Dimensionen werden die physische Größe und Position eines backplate einer Karte auch standardisiert. Der backplate ist der Teil, der sich zum Karte-Käfig schließt, um die Karte zu stabilisieren, und auch Außenstecker enthält, so haftet es gewöhnlich in einem Fenster an, so ist es von der Außenseite des Computerfalls zugänglich. Der backplate wird zum Käfig durch eine 6-32 Schraube befestigt.

Die Karte selbst kann eine kleinere Größe sein, aber der backplate muss noch lebensgroß und richtig gelegen sein, so dass die Karte PCI jedes Standardablagefach einfügt.

Brusterweiterungskarte (allgemeine Norm)

Das ist tatsächlich der praktische Standard jetzt - die Mehrheit von modernen PCI innerhalb dieser Länge passenden Karten.

  • Breite: 0.6 Zoll (15.24 Mm)
  • Tiefe: 6.9 Zoll (175.26 Mm)
  • Höhe: 4.2 Zoll (106.68 Mm)

Niedriges Profil (Halbhöhe) Karte

Die PCI Organisation hat einen Standard für Karten "des niedrigen Profils" definiert, die grundsätzlich die folgenden Reihen einfügen:

  • Höhe: 1.42 Zoll (36.07 Mm) zu 2.536 Zoll (64.41 Mm)
  • Tiefe: 4.721 Zoll (119.91 Mm) zu 6.6 Zoll (167.64 Mm)

Die Klammer wird auch in der Höhe, zu normalen 3.118 Zoll (79.2 Mm) reduziert. Die kleinere Klammer wird keinen Standard-PC-Fall passen, aber wird 2U Fall des Gestell-Gestells einfügen. Viele Hersteller liefern beide Typen der Klammer (Klammern werden normalerweise zur Karte so ändernd ihrer geschraubt ist nicht schwierig).

Diese Karten können durch andere Namen solcher als "schlank" bekannt sein.

Mini-PCI

Mini-PCI wurde zur PCI Version 2.2 für den Gebrauch in Laptops hinzugefügt; es verwendet 32 Bit, 33-MHz-Bus mit angetriebenen Verbindungen (3.3 V nur; 5 V wird auf 100 mA beschränkt), und die Unterstützung für den Bus meisternd und DMA. Die Standardgröße für PCI Minikarten ist ungefähr ein Viertel ihrer lebensgroßen Kollegen. Da es keinen Zugang zur Karte von der Außenseite des Falls verschieden von PCI Tischkarten mit Klammern gibt, die Stecker tragen, gibt es Beschränkungen auf die Funktionen, die sie durchführen können.

Viele PCI Minigeräte wurden wie Wi-Fi, Schneller Ethernet, Bluetooth, Modems (häufig Winmodems), gesunde Karten, kryptografische Gaspedale, SCSI, IDE-ATA, SATA Kontrolleure und Kombinationskarten entwickelt. PCI Minikarten können mit der regelmäßigen PCI-ausgestatteten Hardware mit PCI-to-PCI Minikonvertern verwendet werden. Mini-PCI ist durch den viel schmaleren PCI-Schnellzug Minikarte ersetzt worden.

Technische Details von Mini-PCI

PCI Minikarten haben einen 2 W maximalen Macht-Verbrauch, der die Funktionalität beschränkt, die in diesem Form-Faktor durchgeführt werden kann. Sie sind auch erforderlich, CLKRUN# zu unterstützen, PCI Signal hat gepflegt, die PCI Uhr zu Macht-Verwaltungszwecken anzufangen und aufzuhören.

Es gibt drei Karte-Form-Faktoren: Typ I, Typ II und Karten des Typs III. Der für jeden Typ verwendete Karte-Stecker schließt ein: Gebrauch des Typs I und II, unterscheidet sich ein 100-Nadeln-Stapeln-Stecker, während Typ III einen 124-Nadeln-Rand-Stecker, d. h. den Stecker für Typen I und II verwendet, davon für den Typ III, wo der Stecker am Rand einer Karte, wie mit SO-DIMM ist. Die zusätzlichen 24 Nadeln stellen die Extrasignale zur Verfügung, die der Weg-Eingabe/Ausgabe zurück durch den Systemstecker erforderlich sind (Audio-, AC-Verbindung, LAN, Telefonlinie-Schnittstelle). Karten des Typs II haben RJ11, und RJ45 hat Stecker bestiegen. Diese Karten müssen am Rand des Computers oder der dockenden Station gelegen werden, so dass der RJ11 und die RJ45 Häfen für den Außenzugang bestiegen werden können.

Mini-PCI ist von 144-Nadeln-Mikro-PCI verschieden.

PC/104-Plus und PCI-104

PC/104-Plus und PCI-104 schließen eingebettete Form-Faktoren ein Stapeln von 120 Nadel PCI Stecker ein.

Andere physische Schwankungen

Normalerweise geben Verbrauchersysteme "N × PCI Ablagefächer" an, ohne wirkliche Dimensionen des verfügbaren Raums anzugeben. In einigen Systemen des kleinen Form-Faktors kann das nicht genügend sein, um sogar PCI "Brust"-Karten zu erlauben, zu passen. Trotz dieser Beschränkung sind diese Systeme noch nützlich, weil viele moderne PCI Karten beträchtlich kleiner sind als Brust-.

PCI Bustransaktionen

PCI Busverkehr besteht aus einer Reihe von PCI Bustransaktionen. Jede Transaktion besteht aus einer von einer oder mehr Datenphasen gefolgten Adressphase. Die Richtung der Datenphasen kann vom Initiatoren sein, um ins Visier zu nehmen (schreiben Sie Transaktion), oder umgekehrt (gelesene Transaktion), aber alle Datenphasen müssen in derselben Richtung sein. Entweder Partei kann Pause machen oder die Datenphasen an jedem Punkt halten. (Ein allgemeines Beispiel ist eine niedrige Leistung PCI Gerät, das Platzen-Transaktionen nicht unterstützt, und immer eine Transaktion nach der ersten Datenphase hält.)

Jedes PCI Gerät kann eine Transaktion beginnen. Erstens muss es um Erlaubnis von einem PCI Busschiedsrichter auf der Hauptplatine bitten. Der Schiedsrichter gewährt Erlaubnis einem der Anforderungsgeräte. Der Initiator beginnt die Adressphase, indem er eine 32-Bit-Adresse plus ein 4-Bit-Befehl-Code überträgt, wartet dann auf ein Ziel, um zu antworten. Alle anderen Geräte untersuchen diese Adresse, und einer von ihnen antwortet einige Zyklen später.

Das 64-Bit-Wenden wird mit einer zweistufigen Adressphase getan. Der Initiator überträgt die niedrigen 32 Adressbit, die durch einen speziellen "Zyklus" Doppeladressbefehl-Code begleitet sind. Geräte, die das 64-Bit-Wenden nicht unterstützen, können einfach auf diesen Befehl-Code nicht antworten. Der folgende Zyklus, der Initiator übersendet die hohen 32 Adressbit plus der echte Befehl-Code. Die Transaktion funktioniert identisch von diesem Punkt darauf. Um Vereinbarkeit mit PCI 32-Bit-Geräten zu sichern, wird es verboten, einen Doppeladresszyklus wenn nicht notwendig zu verwenden, d. h. wenn die Adressbit der hohen Ordnung die ganze Null sind.

Während der PCI Bus 32 Bit pro Datenphase überträgt, übersendet der Initiator 4 Bytes ermöglichen Signale, die anzeigen, welche 8-Bit-Bytes bedeutend betrachtet werden sollen. Insbesondere ein Schreiben muss nur die ermöglichten Bytes im Ziel PCI Gerät betreffen. Sie sind von wenig Wichtigkeit für das Gedächtnis liest, aber Eingabe/Ausgabe liest könnte Nebenwirkungen haben. Der PCI Standard erlaubt ausführlich eine Datenphase ohne ermöglichte Bytes, der sich als nein benehmen muss.

PCI Adressräume

PCI hat drei Adressräume: Gedächtnis, Eingabe/Ausgabe-Adresse und Konfiguration.

Speicheradressen sind 32 Bit (fakultativ 64 Bit) in der Größe, dem Unterstützungsverstecken und können Platzen-Transaktionen sein.

Eingabe/Ausgabe-Adressen sind für die Vereinbarkeit mit dem Architektur-Eingabe/Ausgabe-Hafen-Adressraum von Intel x86. Obwohl die PCI Busspezifizierung Platzen-Transaktionen in jedem Adressraum erlaubt, unterstützen die meisten Geräte es nur für Speicheradressen und nicht Eingabe/Ausgabe.

Schließlich stellt PCI Konfigurationsraum Zugang zu 256 Bytes von speziellen Konfigurationsregistern pro PCI Gerät zur Verfügung. Jedes PCI Ablagefach bekommt seinen eigenen Konfigurationsraumadressbereich. Die Register werden verwendet, um Gerät-Gedächtnis und Eingabe/Ausgabe-Adressbereiche zu konfigurieren, auf die sie von Transaktionsinitiatoren antworten sollten. Wenn ein Computer zuerst angemacht wird, antworten alle PCI Geräte nur auf ihre Konfigurationsraumzugänge. Die Computer scannt BIOS für Geräte und teilt Gedächtnis und Eingabe/Ausgabe-Adressbereiche zu ihnen zu.

Wenn eine Adresse durch kein Gerät gefordert wird, wird die Transaktionsinitiator-Adressphase Unterbrechung, die den Initiatoren veranlasst, die Operation abzubrechen. Im Falle liest, es ist üblich, um voll für den gelesenen Datenwert (0xFFFFFFFF) in diesem Fall zu liefern. PCI Geräte versuchen deshalb allgemein zu vermeiden, den Voll-Wert in wichtigen Statusregistern zu verwenden, so dass solch ein Fehler durch die Software leicht entdeckt werden kann.

PCI befehlen Codes

Es gibt 16 mögliche 4-Bit-Befehl-Codes, und 12 von ihnen werden zugeteilt. Mit Ausnahme vom einzigartigen Doppeladresszyklus zeigt das am wenigsten bedeutende Bit des Befehl-Codes an, ob die folgenden Datenphasen ein gelesener (Daten sind, die vom Ziel bis Initiatoren gesandt sind) oder ein Schreiben (von einem Initiatoren gesandte Daten, um ins Visier zu nehmen). PCI Ziele müssen den Befehl-Code sowie die Adresse untersuchen und nicht antworten, um Phasen zu richten, die einen ununterstützten Befehl-Code angeben.

Die Befehle, die sich auf Linien des geheimen Lagers beziehen, hängen vom PCI Konfigurationsraumliniengröße-Register des geheimen Lagers ab, das richtig wird aufstellt; sie dürfen nicht verwendet werden, bis das getan worden ist.

0000: Unterbrechung Erkennt An

: Das ist eine spezielle Form des gelesenen Zyklus, der implizit an den Unterbrechungskontrolleur gerichtet ist, der einen Unterbrechungsvektoren zurückgibt. Das 32-Bit-Adressfeld wird ignoriert. Eine mögliche Durchführung soll eine Unterbrechung erzeugen erkennen Zyklus auf einem ISA Bus mit einer PCI/ISA Busbrücke an. Dieser Befehl ist für die Vereinbarkeit von IBM PC; wenn es keinen Stil-Unterbrechungskontrolleur von Intel 8259 auf dem PCI Bus gibt, braucht dieser Zyklus nie verwendet zu werden.

0001: Spezieller Zyklus

: Dieser Zyklus ist eine spezielle Sendung schreiben über Systemereignisse, dass sich PCI Karte dafür interessieren kann. Das Adressfeld eines speziellen Zyklus wird ignoriert, aber ihm wird von einer Datenphase gefolgt, die eine Nutzlast-Nachricht enthält. Die zurzeit definierten Nachrichten geben bekannt, dass der Verarbeiter aus irgendeinem Grund (z.B anhält, um Macht zu sparen). Kein Gerät antwortet jemals auf diesen Zyklus; es wird immer mit einem Master-Abbruch nach dem Verlassen der Daten auf dem Bus für mindestens 4 Zyklen begrenzt.

0010: Eingabe/Ausgabe Gelesener

: Das führt einen gelesenen vom Eingabe/Ausgabe-Raum durch. Alle 32 Bit der gelesenen Adresse werden zur Verfügung gestellt, so dass ein Gerät kann (aus Vereinbarkeitsgründen), führen weniger als 4 Bytes Wert von Eingabe/Ausgabe-Registern durch. Wenn das Byte Bitte-Daten nicht innerhalb des durch das PCI Gerät unterstützten Adressbereichs ermöglicht (z.B 4 Bytes, die von einem Gerät gelesen sind, das nur 2 Bytes des Eingabe/Ausgabe-Adressraums unterstützt), muss es mit einem Zielabbruch begrenzt werden. Vielfache Datenzyklen, werden mit geradlinig (das einfache Erhöhen) Platzen-Einrichtung erlaubt.

: Der PCI Standard entmutigt den Gebrauch des Eingabe/Ausgabe-Raums in neuen Geräten, dass bevorzugend, so viel wie möglich durch das kartografisch darstellende Hauptgedächtnis getan werden.

0011: Eingabe/Ausgabe Schreibt

: Das führt ein Schreiben dem Eingabe/Ausgabe-Raum durch.

010x: Vorbestellter

: Ein PCI Gerät muss auf einen Adresszyklus mit diesen Befehl-Codes nicht antworten.

0110: Gedächtnis Gelesener

: Das führt einen gelesenen Zyklus vom Speicherraum durch. Weil der kleinste Speicherraum, den ein PCI Gerät erlaubt wird durchzuführen, 16 Bit ist, sind die zwei am wenigsten bedeutenden Bit der Adresse nicht erforderlich; gleichwertige Information wird in die Form des Bytes ausgesuchte Signale ankommen. Sie geben stattdessen die Ordnung an, in der Platzen-Daten zurückgegeben werden müssen. Wenn ein Gerät die gebetene Ordnung nicht unterstützt, muss es das erste Wort zur Verfügung stellen und dann trennen.

: Wenn ein Speicherraum als "prefetchable" gekennzeichnet wird, dann muss das Zielgerät das Byte ausgesuchte Signale auf einem Gedächtnis gelesen ignorieren und immer 32 gültige Bit zurückgeben.

0111: Gedächtnis Schreibt

: Das funktioniert ähnlich zu einem gelesenen Gedächtnis. Das Byte ausgesuchte Signale sind in einem Schreiben als unausgewählte Bytes wichtiger, muss dem Gedächtnis nicht geschrieben werden.

: Allgemein schreibt PCI sind schneller, als PCI liest, weil ein Gerät das eingehende puffern kann, schreiben Daten und veröffentlichen den Bus schneller. Für einen gelesenen muss es die Datenphase verzögern, bis die Daten herbeigeholt worden sind.

100x: Vorbestellter

: Ein PCI Gerät muss auf einen Adresszyklus mit diesen Befehl-Codes nicht antworten.

1010: Konfiguration Gelesener

: Das ist einer Eingabe/Ausgabe gelesen ähnlich, aber liest vom PCI Konfigurationsraum. Ein Gerät muss nur antworten, wenn die niedrigen 11 Bit der Adresse eine Funktion und Register angeben, das es durchführt, und wenn das spezielle IDSEL-Signal behauptet wird. Es muss die hohen 21 Bit ignorieren. Platzen liest (das Verwenden des geradlinigen Erhöhens) werden im PCI Konfigurationsraum erlaubt.

: Verschieden vom Eingabe/Ausgabe-Raum werden PCI Standardkonfigurationsregister definiert, so dass liest, nie stören den Staat des Geräts. Es ist für ein Gerät möglich, Konfigurationsraumregister außer den normalen 64 Bytes zu haben, die Nebenwirkungen gelesen haben, aber das ist selten.

: Konfigurationsraumzugänge haben häufig einige Zyklen der Verzögerung, um den IDSEL Linien zu erlauben sich zu stabilisieren, der sie langsamer macht als andere Formen des Zugangs. Außerdem verlangt ein Konfigurationsraumzugang eine Mehrschritt-Operation aber nicht eine einzelne Maschineninstruktion. So ist es am besten, sie während der alltäglichen Operation eines PCI Geräts zu vermeiden.

1011: Konfiguration Schreibt

: Das funktioniert analog zu einer gelesenen Konfiguration.

1100: Gedächtnis Gelesener Vielfacher

: Dieser Befehl ist zu einem allgemeinen Gedächtnis gelesen identisch, aber schließt den Hinweis ein, dass ein langes gelesenes Platzen außer dem Ende der aktuellen Linie des geheimen Lagers weitergehen wird, und das Ziel innerlich eine große Datenmenge vorherbeiholen sollte. Ein Ziel wird immer erlaubt, das als ein Synonym für ein allgemeines gelesenes Gedächtnis zu betrachten.

1101: Doppeladresszyklus

: Wenn sie auf eine Speicheradresse zugreift, die verlangt, dass mehr als 32 Bit vertreten, beginnt die Adressphase mit diesem Befehl und die niedrigen 32 Bit der Adresse, die von einem zweiten Zyklus mit dem wirklichen Befehl und die hohen 32 Bit der Adresse gefolgt ist. PCI Ziele, die das 64-Bit-Wenden nicht unterstützen, können einfach das als ein anderer vorbestellter Befehl-Code behandeln und darauf nicht antworten. Dieser Befehl-Code kann nur mit einem Nichtnulladresswort der hohen Ordnung verwendet werden; es wird verboten, diesen Zyklus wenn nicht notwendig zu verwenden.

1110: Gedächtnis Gelesene Linie

: Dieser Befehl ist zu einem allgemeinen Gedächtnis gelesen identisch, aber schließt den Hinweis ein, dass das gelesene zum Ende der Linie des geheimen Lagers weitergehen wird. Ein Ziel wird immer erlaubt, das als ein Synonym für ein allgemeines gelesenes Gedächtnis zu betrachten.

1111: Gedächtnis Schreibt und Macht Ungültig

: Dieser Befehl ist zu einem allgemeinen Gedächtnis identisch schreiben, aber kommt mit der Garantie, dass eine oder mehr ganze Linien des geheimen Lagers geschrieben werden, mit dem ganzen Byte wählt aus hat ermöglicht. Das ist eine Optimierung dafür schreiben geheime Lager zurück, die der Bus herumschnüffeln. Normalerweise muss ein zurückschreiben geheimes Lager, das schmutzige Daten hält, die schreiben Operation unterbrechen lange genug schreiben seine eigenen schmutzigen Daten zuerst. Wenn das Schreiben mit diesem Befehl durchgeführt wird, die zurückzuschreibenden Daten wird versichert, irrelevant zu sein, und kann einfach im zurückschreiben geheimen Lager ungültig gemacht werden.

: Diese Optimierung betrifft nur das herumschnüffelnde geheime Lager, und macht keinen Unterschied zum Ziel, das behandeln kann, schreibt das als ein Synonym für das Gedächtnis Befehl.

PCI Buslatenz

Bald nach der Bekanntmachung der PCI Spezifizierung wurde es entdeckt, dass lange Transaktionen durch einige Geräte, erwartet, Anerkennungen, lange Datenbrüche, oder eine Kombination zu verlangsamen, Pufferunterschreiten der Sendezeit verursachen oder in anderen Geräten überfluten konnten. Empfehlungen auf dem Timing der Person führen Revision 2.0 stufenweise ein wurden obligatorisch in der Revision 2.1 gemacht:

  • Ein Ziel muss im Stande sein, die anfängliche Datenphase zu vollenden (behaupten Sie TRDY# und/oder STOP#) innerhalb von 16 Zyklen des Anfangs einer Transaktion.
  • Ein Initiator muss jede Datenphase vollenden (behaupten Sie IRDY#) innerhalb von 8 Zyklen.

Zusätzlich, bezüglich der Revision 2,1, müssen alle Initiatoren, die dazu fähig sind, mehr als 2 Datenphasen zu sprengen, einen programmierbaren Latenz-Zeitmesser durchführen. Der Zeitmesser fängt an, Uhr-Zyklen aufzuzählen, wenn eine Transaktion anfängt (Initiator behauptet FRAME#). Wenn der Zeitmesser abgelaufen ist und der Schiedsrichter GNT# umgezogen ist, dann muss der Initiator die Transaktion bei der folgenden gesetzlichen Gelegenheit begrenzen. Das ist gewöhnlich die folgende Datenphase, aber Gedächtnis Schreibt und Macht Transaktionen Ungültig muss zum Ende der Linie des geheimen Lagers weitergehen.

Verzögerte Transaktionen

Geräte, die unfähig sind, diejenigen zu treffen, die Beschränkungen zeitlich festlegen, müssen eine Kombination von angeschlagenen verwenden schreibt (für das Gedächtnis schreibt), und verzögerte Transaktionen (für anderen schreibt, und alles liest). In einer verzögerten Transaktion registriert das Ziel die Transaktion (einschließlich der schreiben Daten) innerlich, und Abbrüche (behauptet STOP# aber nicht TRDY#) die erste Datenphase. Der Initiator muss genau dieselbe Transaktion später neu verhandeln. In der Zwischenzeit führt das Ziel innerlich die Transaktion durch, und wartet auf die neu verhandelte Transaktion. Wenn die neu verhandelte Transaktion gesehen wird, wird das gepufferte Ergebnis geliefert.

Ein Gerät kann das Ziel anderer Transaktionen sein, während es eine verzögerte Transaktion vollendet; es muss sich an die Bewegungsart, Adresse erinnern, Byte wählt aus und (wenn ein Schreiben) Datenwert, und vollenden Sie nur die richtige Transaktion.

Wenn das Ziel eine Grenze auf der Zahl von verzögerten Transaktionen hat, die es innerlich registrieren kann (einfache Ziele können eine Grenze 1 festsetzen), es wird jene Transaktionen zwingen neu zu verhandeln, ohne sie zu registrieren. Sie werden befasst, als sich der Strom verspätet hat, wird Transaktion vollendet. Wenn zwei Initiatoren dieselbe Transaktion, eine verzögerte Transaktion begonnen davon versuchen, kann man sein Ergebnis an den anderen liefern lassen; das ist harmlos.

Ein Ziel gibt eine verzögerte Transaktion auf, wenn eine Wiederholung schafft, das gepufferte Ergebnis zu liefern, wird der Bus neu gefasst, oder wenn 2=32768 Uhr-Zyklen (etwa 1 Millisekunde) vergehen, ohne eine Wiederholung zu sehen. Die Letzteren sollten in der normalen Operation nie geschehen, aber sie verhindert einen toten Punkt des ganzen Busses, wenn ein Initiator neu gefasst wird oder schlecht funktioniert.

PCI Busbrücken

Der PCI Standard erlaubt vielfachen unabhängigen PCI Bussen, mit dem Bus Brücken verbunden zu werden, die Operationen auf einem Bus zu einem anderen nach Bedarf nachschicken werden. Obwohl herkömmlich, neigt PCI dazu, viele Busbrücken nicht zu verwenden, PCI Schnellzug-Systeme verwenden viele; jedes PCI-Schnellzug-Ablagefach scheint, ein getrennter Bus zu sein, der durch eine Brücke mit anderen verbunden ist.

Angeschlagen schreibt

Allgemein, wenn eine Busbrücke eine Transaktion auf einem Bus sieht, der zum anderen nachgeschickt werden muss, muss die ursprüngliche Transaktion warten, bis die nachgeschickte Transaktion vollendet, bevor ein Ergebnis bereit ist. Eine bemerkenswerte Ausnahme kommt im Fall vom Gedächtnis vor schreibt. Hier kann die Brücke die schreiben Daten innerlich registrieren (wenn sie Zimmer hat), und die Signalvollziehung des Schreibens, bevor die nachgeschickten schreiben, hat vollendet. Oder, tatsächlich, bevor es begonnen hat. Solch "gesandt, aber ist noch nicht angekommen" schreibt, werden "angeschlagen genannt schreibt" analog mit einer Postpostnachricht. Obwohl sie große Gelegenheit für Leistungszunahmen anbieten, ist die Regel-Regelung, was erlaubt ist, etwas kompliziert.

Das Kombinieren, sich, und das Einstürzen verschmelzend

Der PCI Standard erlaubt Busbrücken, vielfache Bustransaktionen in eine größere Transaktion unter bestimmten Situationen umzuwandeln. Das kann die Leistungsfähigkeit des PCI Busses verbessern.

Das Kombinieren: Schreiben Sie, dass Transaktionen zu Konsekutivadressen in ein längeres Platzen verbunden werden können, schreiben, so lange die Ordnung der Zugänge im Platzen dasselbe ist, wie die Ordnung des Originals schreibt. Es ist erlaubt, Extradatenphasen mit dem ganzen Byte einzufügen, ermöglicht abgedreht, wenn das Schreiben fast aufeinander folgend ist.

Das Mischen: Vielfach schreibt, um Teile desselben Wortes auseinander zu nehmen, kann zusammen in eine Single verschmolzen werden schreiben mit dem vielfachen Byte ermöglicht behauptet. In diesem Fall, schreibt wurden der Busbrücke in einer besonderen Ordnung präsentiert werden so verschmolzen sie, kommen zur gleichen Zeit wenn nachgeschickt, vor.

Das Einstürzen: Vielfach schreibt demselben Byte, oder Bytes dürfen zum Beispiel nicht verbunden werden, durch das Durchführen nur des zweiten schreiben, und das Auslassen des ersten schreiben, dass das überschrieben wurde. Das ist, weil die PCI Spezifizierungserlaubnisse schreiben, um Nebenwirkungen zu haben.

PCI Bussignale

PCI Bustransaktionen werden von fünf Hauptkontrollsignalen, zwei gesteuerten vom Initiatoren einer Transaktion (FRAME# und IRDY#) und drei gesteuerten durch das Ziel (DEVSEL#, TRDY#, und STOP#) kontrolliert. Es gibt zwei zusätzliche Schiedssignale (REQ# und GNT#), die verwendet werden, um Erlaubnis zu erhalten, eine Transaktion zu beginnen. Alle sind aktiv-niedrig, meinend, dass der aktive oder behauptete Staat eine niedrige Stromspannung ist. Fahren Sie vor Widerstände auf der Hauptplatine stellen sicher, dass sie hoch (untätig oder deasserted) wenn nicht gesteuert durch jedes Gerät bleiben werden, aber der PCI Bus hängt von den Widerständen nicht ab, um den Signalpegel zu ändern; alle Geräte steuern die Signale hoch für einen Zyklus vor dem Aufhören, die Signale zu steuern.

Signaltiming

Alle PCI Bussignale werden am steigenden Rand der Uhr probiert. Signale ändern sich nominell am fallenden Rand der Uhr, jedem PCI Gerät etwa einen einen halben Uhr-Zyklus gebend, um zu entscheiden, wie man auf die Signale antwortet, hat es auf dem steigenden Rand und einem einem halben Uhr-Zyklus beobachtet, seine Antwort auf das andere Gerät zu übersenden.

Der PCI Bus verlangt, dass jedes Mal das Gerät, ein PCI Bussignal Änderungen, ein Umkehrzyklus steuernd, zwischen der Zeit vergehen muss, hört ein Gerät auf, das Signal und die anderen Gerät-Anfänge zu steuern. Ohne das könnte es eine Periode geben, als beide Geräte das Signal steuerten, das Busoperation stören würde.

Die Kombination dieses Umkehrzyklus und der Voraussetzung, um eine Kontrolllinie hoch für einen Zyklus vor dem Aufhören zu steuern, es zu steuern, bedeutet, dass jede der Hauptkontrolllinien für ein Minimum von zwei Zyklen hoch sein muss, wenn sie Eigentümer ändert. Das PCI Busprotokoll wird so entworfen das ist selten eine Beschränkung; nur in einigen speziellen Fällen (namentlich schnelle zurück zum Rücken Transaktionen) ist es notwendig, um zusätzliche Verzögerung einzufügen, um dieser Anforderung zu entsprechen.

Schlichtung

Jedes Gerät auf einem PCI Bus, der zum Handeln als ein Busmaster fähig ist, kann eine Transaktion mit jedem anderen Gerät beginnen. Um sicherzustellen, dass nur eine Transaktion auf einmal begonnen wird, muss jeder Master zuerst auf ein Busbewilligungssignal, GNT# von einem auf der Hauptplatine gelegenen Schiedsrichter warten. Jedes Gerät hat eine getrennte Bitte-Linie REQ#, der um den Bus bittet, aber der Schiedsrichter kann das Busbewilligungssignal an jedem Gerät "abstellen", wenn es keine aktuellen Bitten gibt.

Der Schiedsrichter kann GNT# jederzeit umziehen. Ein Gerät, das GNT# verliert, kann seine aktuelle Transaktion vollenden, aber kann eine nicht anfangen (durch das Erklären FRAME#), wenn sie GNT# nicht beobachtet, hat den Zyklus behauptet, bevor sie beginnt.

Der Schiedsrichter kann auch GNT# jederzeit, einschließlich während der Transaktion eines anderen Masters zur Verfügung stellen. Während einer Transaktion entweder FRAME# oder IRDY# oder werden beide behauptet; wenn beide deasserted sind, ist der Bus müßig. Ein Gerät kann eine Transaktion jederzeit beginnen, dass GNT# behauptet wird und der Bus müßig ist.

Adressphase

Eine PCI Bustransaktion beginnt mit einer Adressphase. Der Initiator, sehend, dass es GNT# und der Bus hat, ist müßig, steuert die Zieladresse auf n.Chr. [31:0] Linien, der verbundene Befehl (z.B Gedächtnis gelesen, oder Eingabe/Ausgabe schreibt) auf dem C/BE [3:0] # Linien und Ziehen FRAME# niedrig.

Einander untersucht Gerät die Adresse und den Befehl und entscheidet, ob man als das Ziel antwortet, indem man DEVSEL# behauptet. Ein Gerät muss durch das Erklären DEVSEL# innerhalb von 3 Zyklen antworten. Wie man sagt, haben Geräte, die versprechen, innerhalb von 1 oder 2 Zyklen zu antworten, "schnellen DEVSEL" oder "mittleren DEVSEL" beziehungsweise. (Wirklich ist die Zeit, um zu antworten, 2.5 Zyklen, da PCI Geräte alle Signale ein halber Zyklus früh übersenden müssen, so dass sie drei Zyklen später erhalten werden können.)

Bemerken Sie, dass ein Gerät die Adresse auf dem ersten Zyklus zuklinken muss; der Initiator ist erforderlich, die Adresse und den Befehl vom Bus auf dem folgenden Zyklus, sogar vor dem Empfang DEVSEL# Antwort zu entfernen. Die zusätzliche Zeit ist verfügbar, nur für die Adresse und den Befehl zu interpretieren, nachdem es gewonnen wird.

Auf dem fünften Zyklus der Adressphase (oder früher wenn alle anderen Geräte mittleren DEVSEL oder schneller haben) wird einer allumfassenden "abziehenden Entzifferung" für einige Adressbereiche erlaubt. Das wird durch eine ISA Busbrücke für Adressen innerhalb seiner Reihe (24 Bit für das Gedächtnis und 16 Bit für die Eingabe/Ausgabe) allgemein verwendet.

Auf dem sechsten Zyklus, wenn es keine Antwort gegeben hat, kann der Initiator die Transaktion durch deasserting FRAME# abbrechen. Das ist als Master-Abbruch-Beendigung bekannt, und es ist für PCI Busbrücken üblich, um Voll-Daten (0xFFFFFFFF) in diesem Fall zurückzugeben. PCI Geräte werden allgemein deshalb entworfen, um zu vermeiden, den Voll-Wert in wichtigen Statusregistern zu verwenden, so dass solch ein Fehler durch die Software leicht entdeckt werden kann.

Adressphase-Timing

_ 0_ 1_ 2_ 3_ 4_ 5_

CLK _ / \_ / \_ / \_ / \_ / \_ / \_ /

___

GNT# \___/XXXXXXXXXXXXXXXXXXX (GNT# Irrelevant nachdem hat Zyklus angefangen)

_______

FRAME# \___________________

___

N.CHR. [31:0]-------

___ _______________

C/BE [3:0] #-------

Am steigenden Rand der Uhr 0 beobachtet der Initiator FRAME# und IRDY# sowohl hoch, als auch GNT# niedrig, so steuert es die Adresse, den Befehl, und behauptet FRAME# rechtzeitig für den steigenden Rand der Uhr 1. Ziele klinken die Adresse zu und beginnen, sie zu decodieren. Sie können DEVSEL# rechtzeitig für die Uhr 2 (schneller DEVSEL), 3 (Medium) oder 4 (langsam) erwidern. Abziehend decodieren Geräte, keine andere Antwort durch die Uhr 4 sehend, kann auf der Uhr 5 antworten. Wenn der Master keine Antwort durch die Uhr 5 sieht, wird sie die Transaktion begrenzen und FRAME# auf der Uhr 6 umziehen.

TRDY# und STOP# sind deasserted (hoch) während der Adressphase. Der Initiator kann IRDY# behaupten, sobald es bereit ist, Daten zu übertragen, die sobald Uhr 2 theoretisch sein konnten.

Doppelzyklus-Adresse

Um das 64-Bit-Wenden zu erlauben, wird ein Master die Adresse mehr als zwei Konsekutivzyklen präsentieren. Erstens sendet es die Adressbit der niedrigen Ordnung mit einem speziellen "Doppelzyklus" Adressbefehl auf dem C/BE [3:0] #. Auf dem folgenden Zyklus sendet es die Adressbit der hohen Ordnung und den wirklichen Befehl. Doppeladresse-Zyklen werden verboten, wenn die Adressbit der hohen Ordnung Null sind, so können Geräte, die das 64-Bit-Wenden nicht unterstützen, nicht einfach auf Doppelzyklus-Befehle antworten.

_ 0_ 1_ 2_ 3_ 4_ 5_ 6_

CLK _ / \_ / \_ / \_ / \_ / \_ / \_ / \_ /

___

GNT# \___/XXXXXXXXXXXXXXXXXXXXXXX

_______

FRAME# \_______________________

___ ___

N.CHR. [31:0]-------

___ ___ _______________

C/BE [3:0] #-------

Konfigurationszugang

Adressen für den PCI Konfigurationsraumzugang werden besonders decodiert. Für diese geben die Adresslinien der niedrigen Ordnung den Ausgleich des gewünschten PCI Konfigurationsregisters an, und die Adresslinien der hohen Ordnung werden ignoriert. Statt dessen muss ein zusätzliches Adresssignal, der IDSEL-Eingang, hoch sein, bevor ein Gerät DEVSEL# behaupten kann. Jedes Ablagefach verbindet eine verschiedene Adresslinie der hohen Ordnung mit der IDSEL-Nadel, und wird mit der einheißen Verschlüsselung auf den oberen Adresslinien ausgewählt.

Datenphasen

Nachdem die Adressphase (spezifisch, mit dem Zyklus beginnend, der DEVSEL# niedrig geht) ein Ausbruch von einer oder mehr Datenphasen kommt. In allen Fällen steuert der Initiator aktiv-niedriges Byte ausgesuchte Signale auf dem C/BE [3:0] # Linien, aber die Daten auf n.Chr. [31:0] können vom Initiatoren gesteuert werden (im Falle schreibt), oder Ziel (im Falle liest).

Während Datenphasen der C/BE [3:0] # werden Linien interpretiert, weil aktiv-niedriges Byte ermöglicht. Im Falle eines Schreibens zeigen die behaupteten Signale an, welches von den vier Bytes auf n.Chr. Bus der gerichteten Position geschrieben werden soll. Im Fall von einem gelesenen zeigen sie an, für welche Bytes sich der Initiator interessiert. Dafür liest, es ist immer gesetzlich, das Byte zu ignorieren, ermöglichen Signale und geben einfach alle 32 Bit zurück; Cacheable-Speichermittel sind erforderlich, immer 32 gültige Bit zurückzugeben. Das Byte ermöglicht sind für Eingabe/Ausgabe-Raumzugänge hauptsächlich nützlich, wo liest, haben Nebenwirkungen.

Eine Datenphase mit allen vier C/BE# werden Linien deasserted durch den PCI Standard ausführlich erlaubt, und müssen keine Wirkung auf das Ziel (anders haben als, die Adresse im Platzen-Zugang im Gange vorzubringen).

Die Datenphase geht weiter, bis beide Parteien bereit sind, die Übertragung zu vollenden und zur folgenden Datenphase weiterzugehen. Der Initiator behauptet IRDY# (Initiator bereit), wenn es nicht mehr warten muss, während das Ziel TRDY# behauptet (nehmen Sie bereit ins Visier). Welch auch immer Seite die Daten zur Verfügung stellt, muss es n.Chr. Bus vor dem Erklären seines bereiten Signals vorantreiben.

Sobald einer der Teilnehmer sein bereites Signal behauptet, kann es nicht nicht fertig werden oder sonst seine Kontrollsignale bis zum Ende der Datenphase verändern. Der Datenempfänger muss sich n.Chr. Bus jeder Zyklus einklinken, bis es sowohl IRDY# als auch TRDY# behauptet sieht, der das Ende der aktuellen Datenphase kennzeichnet und anzeigt, dass die gerade zugeklinkten Daten das zu übertragende Wort sind.

Um volle Platzen-Geschwindigkeit aufrechtzuerhalten, hat der Datenabsender dann einen halben Uhr-Zyklus nach dem Sehen sowohl IRDY# als auch TRDY# behauptet, das folgende Wort auf n.Chr. Bus zu steuern.

0_ 1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_

CLK _ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \_ /

___ _______ ___ ___ ___

N.CHR. [31:0]---

Das setzt den Adresszyklus fort, der oben illustriert ist, einen einzelnen Adresszyklus mit mittlerem DEVSEL annehmend, so antwortet das Ziel rechtzeitig für die Uhr 3.

Jedoch, damals, ist keine Seite bereit, Daten zu übertragen. Für die Uhr 4 ist der Initiator bereit, aber das Ziel ist nicht. Auf der Uhr 5 sind beide bereit, und eine Datenübertragung findet (wie angezeigt, durch die vertikalen Linien) statt. Für die Uhr 6 ist das Ziel bereit überzuwechseln, aber der initator ist nicht. Auf der Uhr 7 wird der Initiator bereit, und Daten wird übertragen. Für Uhren 8 und 9 bleiben sowohl Seiten bereit, Daten zu übertragen, als auch Daten werden an der maximalen möglichen Rate (32-Bit-ProUhrzyklus) übertragen.

Im Falle eines gelesenen wird Uhr 2 vorbestellt, für sich n.Chr. Bus umzudrehen, so wird das Ziel nicht erlaubt, Daten auf dem Bus zu steuern, selbst wenn es zu schnellem DEVSEL fähig ist.

Schnell DEVSEL# darauf liest

Ein Ziel, das schnellen DEVSEL unterstützt, hat in der Theorie gekonnt beginnen, auf einen gelesenen der Zyklus zu antworten, nachdem die Adresse präsentiert wird. Dieser Zyklus wird jedoch für n.Chr. den Buswendeplatz vorbestellt. So kann ein Ziel nicht n.Chr. Bus fahren (und kann so TRDY# nicht behaupten) auf dem zweiten Zyklus einer Transaktion. Bemerken Sie, dass die meisten Ziele das schnell nicht sein werden und keine spezielle Logik brauchen werden, um diese Bedingung geltend zu machen.

Ende von Transaktionen

Jede Seite kann dass ein Platzen-Ende nach der aktuellen Datenphase bitten. Einfache PCI Geräte, die Mehrwortbrüche nicht unterstützen, werden immer darum sofort bitten. Sogar Geräte, die wirklich Brüche unterstützen, werden etwas Grenze auf der maximalen Länge haben, die sie wie das Ende ihres addressable Gedächtnisses unterstützen können.

Initiator hat Beendigung gesprengt

Der Initiator kann jede Datenphase als die endgültige in einer Transaktion durch deasserting FRAME# zur gleichen Zeit kennzeichnen, wie es IRDY# behauptet. Der Zyklus nach dem Ziel behauptet TRDY#, die Enddatenübertragung, ist beide Seiten deassert ihr jeweiliges RDY# Signale abgeschlossen, und der Bus ist wieder müßig. Der Master kann nicht deassert FRAME# vor dem Erklären IRDY#, noch kann es deassert FRAME#, während es, mit IRDY# behauptet für das Ziel wartet, um TRDY#. zu behaupten

Die einzige geringe Ausnahme ist eine Master-Abbruch-Beendigung, wenn kein Ziel DEVSEL# erwidert. Offensichtlich ist es sinnlos, auf TRDY# in solch einem Fall zu warten. Jedoch, sogar in diesem Fall, muss der Master IRDY# für mindestens einen Zyklus danach deasserting FRAME# behaupten. (Allgemein wird ein Master IRDY# vor dem Empfang DEVSEL# behaupten, so muss er einfach IRDY# behauptet für einen längeren Zyklus halten.) Soll das sicherstellen, dass Buswendeplatz zeitlich festlegende Regeln auf FRAME# Linie gefolgt wird.

Nehmen Sie Platzen-Beendigung ins Visier

Das Ziel bittet, dass der Initiator ein Platzen beendet, indem er STOP# behauptet. Der Initiator wird dann die Transaktion durch deasserting FRAME# bei der folgenden gesetzlichen Gelegenheit beenden; wenn es mehr Daten übertragen möchte, wird es in einer getrennten Transaktion weitergehen. Es gibt mehrere Wege für das Ziel, um das zu tun:

Trennen Sie mit Daten

: Wenn das Ziel STOP# und TRDY# zur gleichen Zeit behauptet, zeigt das an, dass das Ziel möchte, dass das die letzte Datenphase ist. Zum Beispiel wird ein Ziel, das Platzen-Übertragungen nicht unterstützt, immer das tun, um einzelnes Wort PCI Transaktionen zu zwingen. Das ist der effizienteste Weg für ein Ziel, um ein Platzen zu beenden.

Trennen Sie ohne Daten

: Wenn das Ziel STOP# behauptet, ohne TRDY# zu behaupten, zeigt das an, dass das Ziel anhalten möchte, ohne Daten zu übertragen. STOP# wird gleichwertig zu TRDY# zum Zweck betrachtet, eine Datenphase zu beenden, aber keine Daten werden übertragen.

Verhandeln Sie neu

: Ein Trennen ohne Daten vor dem Übertragen irgendwelcher Daten ist eine Wiederholung, und verschieden von anderen PCI Transaktionen, PCI Initiatoren sind erforderlich, ein bisschen vor dem Fortsetzen der Operation Pause zu machen. Sieh die PCI Spezifizierung für Details.

Zielabbruch

: Normalerweise hält ein Ziel DEVSEL# behauptet durch die letzte Datenphase. Jedoch, wenn ein Ziel deasserts DEVSEL# vor dem Trennen ohne Daten (das Erklären STOP#), das einen Zielabbruch anzeigt, der eine tödliche Fehlerbedingung ist. Der Initiator kann nicht neu verhandeln, und behandelt es normalerweise als ein Busfehler. Bemerken Sie, dass ein Ziel nicht deassert DEVSEL# kann, während es mit TRDY# oder STOP# niedrig wartet; es muss das am Anfang einer Datenphase tun.

Es wird immer mindestens einen mehr Zyklus nach einer zieleingeführten Separation geben, um dem Master deassert FRAME# zu erlauben. Es gibt zwei Subfälle, die dieselbe Zeitdauer nehmen, aber man verlangt eine zusätzliche Datenphase:

Trennen Sie-A

: Wenn der Initiator STOP# vor dem Erklären seines eigenen IRDY# beobachtet, dann kann es das Platzen durch deasserting FRAME# am Ende der aktuellen Datenphase beenden.

Trennen Sie-B

: Wenn der Initiator bereits IRDY# behauptet hat (ohne deasserting FRAME#), als er das Ziel STOP# beobachtet, wird er bereits zu einer zusätzlichen Datenphase verpflichtet. Das Ziel muss durch eine zusätzliche Datenphase warten, STOP# behauptet ohne TRDY# haltend, bevor die Transaktion enden kann.

Wenn der Initiator das Platzen zur gleichen Zeit beendet, weil das Ziel um Separation bittet, gibt es keinen zusätzlichen Buszyklus.

Das Platzen-Wenden

Für Speicherraumzugänge kann auf die Wörter in einem Platzen in mehreren Ordnungen zugegriffen werden. Die unnötigen Adressbit der niedrigen Ordnung n.Chr. [1:0] werden verwendet, um die gebetene Ordnung des Initiatoren zu befördern. Ein Ziel, das keine besondere Ordnung unterstützt, muss das Platzen nach dem ersten Wort begrenzen. Einige dieser Ordnungen hängen von der Liniengröße des geheimen Lagers ab, die auf allen PCI Geräten konfigurierbar ist.

Wenn der Startausgleich innerhalb der Linie des geheimen Lagers Null ist, nehmen alle diese Weisen zu derselben Ordnung ab.

Linienknebelknopf des geheimen Lagers und Linienhülle-Weisen des geheimen Lagers sind zwei Formen des kritischen Wortes das erste Linienholen des geheimen Lagers. Knebelknopf-Weise XORs die gelieferte Adresse mit einem erhöhenden Schalter. Das ist die heimische Ordnung für Verarbeiter von Intel 486 und Pentium. Es hat den Vorteil, dass es nicht notwendig ist, die Liniengröße des geheimen Lagers zu wissen, es durchzuführen.

PCI Version 2.1 obsoleted Knebelknopf-Weise und hat die Linienhülle des geheimen Lagers mode,http://download.intel.com/design/chipsets/applnots/27301101.pdf wo hinzugefügt, Erlös geradlinig herbeiholend, sich ringsherum am Ende jeder Linie des geheimen Lagers einhüllend. Wenn eine Linie des geheimen Lagers völlig herbeigeholt wird, Sprünge zum Startausgleich in der folgenden Linie des geheimen Lagers herbeiholend.

Bemerken Sie, dass die meisten PCI Geräte nur eine beschränkte Reihe typischer Liniengrößen des geheimen Lagers unterstützen; wenn die Liniengröße des geheimen Lagers zu einem unerwarteten Wert programmiert wird, zwingen sie Zugang des einzelnen Wortes.

PCI unterstützt auch Platzen-Zugang zur Eingabe/Ausgabe und dem Konfigurationsraum, aber nur geradlinige Weise wird unterstützt. (Das wird selten verwendet, und kann in einigen Geräten verwanzt sein; sie können es nicht unterstützen, aber nicht richtig Zugang des einzelnen Wortes auch zwingen.)

Transaktionsbeispiele

Das ist die hoch-mögliche vier-Wörter-Geschwindigkeit schreiben Platzen, das vom Master begrenzt ist:

0_ 1_ 2_ 3_ 4_ 5_ 6_ 7_

CLK _ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \

___ ___ ___ ___ ___

N.CHR. [31:0]--- ___ ___ ___ ___ ___

C/BE [3:0] #---

| | | | ___

IRDY# ^^^^^^^^ \______________/^^^^^\

| | | | ___

TRDY# ^^^^^^^^ \______________/^^^^^\

| | | | ___

DEVSEL# ^^^^^^^^ \______________/^^^^^\

___ | | | ___

FRAME# \_______________/| ^^^^\\____

_ _ | _ | _ | _ | _ _ _

CLK _ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \

0 1 2 3 4 5 6 7

</pre>

Am Uhr-Rand 1 fängt der Initiator eine Transaktion an, indem er eine Adresse, Befehl steuert, und FRAME# behauptet, Die anderen Signale sind (angezeigt durch ^^^) müßig, gezogen hoch durch die Hauptplatine ziehen Widerstände hoch. Das könnte ihr Umkehrzyklus sein. Auf dem Zyklus 2 behauptet das Ziel sowohl DEVSEL# als auch TRDY#. Da der Initiator auch bereit ist, kommt eine Datenübertragung vor. Das wiederholt sich für noch drei Zyklen, aber vor dem letzten (Uhr-Rand 5), der Master deasserts FRAME#, anzeigend, dass das das Ende ist. Am Uhr-Rand 6 n.Chr. wird Bus und FRAME# ungesteuert (Umkehrzyklus), und die anderen Kontrolllinien werden hoch für 1 Zyklus gesteuert. Am Uhr-Rand 7 kann ein anderer Initiator eine verschiedene Transaktion anfangen. Das ist auch der Umkehrzyklus für die anderen Kontrolllinien.

Das gleichwertige gelesene Platzen nimmt einen mehr Zyklus, weil das Ziel auf 1 Zyklus für n.Chr. Bus warten muss, um sich umzudrehen, bevor es TRDY#: behaupten kann

0_ 1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_

CLK _ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \

___ ___ ___ ___ ___

N.CHR. [31:0]---

___ _______ ___ ___ ___

C/BE [3:0] #---

___ | | | | ___

IRDY# ^^^^\\___________________/^^^^^\

___ _____ | | | | ___

TRDY# ^^^^ \______________/^^^^^\

___ | | | | ___

DEVSEL# ^^^^\\___________________/^^^^^\

___ | | | ___

FRAME# \___________________/| ^^^^\\____

_ _ _ | _ | _ | _ | _ _ _

CLK _ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \

0 1 2 3 4 5 6 7 8

</pre>

Ein durch das Ziel begrenztes Hochleistungsplatzen wird einen Extrazyklus am Ende haben:

0_ 1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ CLK _ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \ ___ ___ ___ ___ ___ N.CHR. [31:0]---

___ _______ ___ ___ ___ ___

C/BE [3:0] #---

| | | | ___

IRDY# ^^^^^^^ \_______________________ /

_____ | | | | _______

TRDY# ^^^^^^^ \______________ /

________________ | ___

STOP# ^^^^^^^ | | | \_______ /

| | | | ___

DEVSEL# ^^^^^^^ \_______________________ /

___ | | | | ___

FRAME# \_______________________/^^^^\

_ _ _ | _ | _ | _ | _ _ _ CLK _ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \_ / \ 0 1 2 3 4 5 6 7 8</pre>

Am Uhr-Rand 6 zeigt das Ziel an, dass es anhalten will (mit Daten), aber der Initiator hält bereits IRDY# niedrig, also gibt es eine fünfte Datenphase (Uhr-Rand 7), während dessen keine Daten übertragen wird.

Gleichheit

Der PCI Bus entdeckt Paritätsfehler, aber versucht nicht, sie durch die Wiederholung von Operationen zu korrigieren; es ist rein eine Misserfolg-Anzeige. Wegen dessen gibt es kein Bedürfnis, den Paritätsfehler zu entdecken, bevor er geschehen ist, und der PCI Bus ihn wirklich einige Zyklen später entdeckt. Während einer Datenphase, welch auch immer Gerät n.Chr. [31:0] fährt, schätzen Linien gerade Bitzahl über sie und den C/BE [3:0] # Linien, und senden das der DURCHSCHNITT liniert einen Zyklus später. Alle Zugriffsregeln und Umkehrzyklen für n.Chr. Bus gelten für die DURCHSCHNITT-Linie, gerade ein Zyklus später. Das Gerät, das auf n.Chr. hört, überprüft Bus die erhaltene Gleichheit und behauptet PERR# (Paritätsfehler) linieren einen Zyklus danach. Das erzeugt allgemein eine Verarbeiter-Unterbrechung, und der Verarbeiter kann den PCI Bus für das Gerät suchen, das den Fehler entdeckt hat.

PERR# wird Linie nur während Datenphasen verwendet, einmal ist ein Ziel ausgewählt worden. Wenn ein Paritätsfehler während einer Adressphase entdeckt wird (oder die Datenphase eines Speziellen Zyklus), die Geräte, die bemerken, dass es SERR# (Systemfehler) Linie behauptet.

Selbst wenn einige Bytes durch C/BE# Linien und nicht im Gebrauch maskiert werden, müssen sie noch einen definierten Wert haben, und dieser Wert muss verwendet werden, um die Gleichheit zu schätzen.

Schnell zurück zum Rücken Transaktionen

Wegen des Bedürfnisses nach einem Umkehrzyklus zwischen verschiedenen Geräten, PCI Bussignale im Allgemeinen steuernd, ist es notwendig, einen müßigen Zyklus zwischen PCI Bustransaktionen zu haben. Jedoch in einigen Verhältnissen wird es erlaubt, diesen müßigen Zyklus auszulassen, direkt vom Endzyklus einer Übertragung (IRDY# behauptet, FRAME# deasserted) zum ersten Zyklus des folgenden (FRAME# behauptet, IRDY# deasserted) gehend.

Ein Initiator kann nur zurück zum Rücken Transaktionen wenn durchführen:

  • sie sind durch denselben Initiatoren (oder es würde keine Zeit geben, um sich C/BE# und FRAME# Linien umzudrehen),
  • die erste Transaktion war ein Schreiben (also gibt es kein Bedürfnis, sich n.Chr. Bus umzudrehen), und
  • der Initiator hat noch Erlaubnis (von seinem GNT# Eingang), um den PCI Bus zu verwenden.

Zusätzliche Timing-Einschränkungen können aus dem Bedürfnis kommen sich umzudrehen sind die Zielkontrolllinien, besonders DEVSEL#. Das Ziel deasserts DEVSEL#, es hoch im Zyklus im Anschluss an die Enddatenphase steuernd, die im Fall von zurück zum Rücken Transaktionen der erste Zyklus der Adressphase ist. Der zweite Zyklus der Adressphase wird dann für DEVSEL# Wendeplatz so vorbestellt, wenn das Ziel vom vorherigen verschieden ist, muss es DEVSEL# bis zum dritten Zyklus (DEVSEL mittlere Geschwindigkeit) behaupten.

Ein Fall, wo dieses Problem nicht entstehen kann, ist, wenn der Initiator irgendwie weiß (vermutlich, weil die Adressen genügend Bit der hohen Ordnung teilen), dass die zweite Übertragung an dasselbe Ziel wie das vorherige gerichtet wird. In diesem Fall kann es zurück zum Rücken Transaktionen durchführen. Alle PCI-Ziele müssen das unterstützen.

Es ist auch für das Ziel möglich geht die Voraussetzungen nach. Wenn es nie schnellen DEVSEL tut, werden sie trivial getroffen. Wenn es tut, muss es bis zur mittleren DEVSEL Zeit wenn warten:

  • der aktuellen Transaktion wurde durch einen müßigen Zyklus vorangegangen (ist nicht zurück zu dem Rücken), oder
  • die vorherige Transaktion war zu demselben Ziel oder
  • die aktuelle Transaktion hat mit einem doppelten Adresszyklus begonnen.

Ziele, die diese Fähigkeit haben, zeigen es durch ein spezielles Bit in einem PCI Konfigurationsregister an, und wenn alle Ziele auf einem Bus es haben, können alle Initiatoren zurück zum Rücken Übertragungen frei verwenden.

Eine abziehende Entzifferungsbusbrücke muss wissen, um diese Extraverzögerung im Falle zurück zum Rücken Zyklen zu erwarten, um zurück zur Rückenlehne zu inserieren.

64-Bit-PCI

Die PCI Spezifizierung schließt fakultative 64-Bit-Unterstützung ein. Das wird über einen verlängerten Stecker zur Verfügung gestellt, der die 64-Bit-Buserweiterungen n.Chr. [63:32], C/BE [7:4] #, und PAR64, und mehrer zusätzliche Macht und Boden-Nadeln zur Verfügung stellt. Der PCI 64-Bit-Stecker kann von 32 Bit bemerkenswert sein, indem er, und von PCI-X länger gewesen wird, indem er drei Segmente mit demjenigen in der Mitte viel kürzer gehabt wird als andere. PCI-X Ablagefächer können von 64-Bit-PCI bemerkenswert sein, weil das kleine Segment, statt im Zentrum erst ist. PCI 32-Bit-Karten werden richtig in einem PCI-X Ablagefach fungieren, aber PCI-X Karten arbeiten in einem PCI Standard-32-Bit-Ablagefach nicht.

Speichertransaktionen zwischen 64-Bit-Geräten können alle 64 Bit verwenden, um sich zu verdoppeln, die Daten übertragen Rate. Nichtspeichertransaktionen (einschließlich der Konfiguration und Eingabe/Ausgabe-Raumzugänge) können die 64-Bit-Erweiterung nicht verwenden. Während eines 64-Bit-Platzens werden Platzen-Wenden-Arbeiten ebenso in einer 32-Bit-Übertragung, aber der Adresse zweimal pro Datenphase erhöht. Die Startadresse muss ausgerichtete 64 Bit sein; d. h. AD2 muss 0 sein. Die Daten entsprechend den vorläufigen Adressen (mit AD2 = 1) werden die obere Hälfte n.Chr. Bus fortgesetzt.

Um eine 64-Bit-Transaktion zu beginnen, treibt der Initiator die Startadresse n.Chr. Bus voran und behauptet REQ64# zur gleichen Zeit als FRAME#. Wenn das ausgewählte Ziel eine 64-Bit-Übertragung für diese Transaktion unterstützen kann, antwortet es durch das Erklären ACK64# zur gleichen Zeit als DEVSEL#. Bemerken Sie, dass sich ein Ziel für eine Basis pro Transaktion entscheiden kann, ob man eine 64-Bit-Übertragung erlaubt.

Wenn REQ64# während der Adressphase behauptet wird, steuert der Initiator auch die hohen 32 Bit der Adresse und eine Kopie des Busbefehls auf der hohen Hälfte des Busses. Wenn die Adresse 64 Bit verlangt, ist ein Doppeladresszyklus noch erforderlich, aber die hohe Hälfte des Busses trägt die obere Hälfte der Adresse und des Endbefehl-Codes während beider Adressphase-Zyklen; das erlaubt einem 64-Bit-Ziel, die komplette Adresse zu sehen und zu beginnen, früher zu antworten.

Wenn der Initiator DEVSEL# behauptet ohne ACK64# sieht, führt es 32-Bit-Datenphasen durch. Die Daten, die auf der oberen Hälfte des Busses während der ersten Datenphase übertragen worden sein würden, werden stattdessen während der zweiten Datenphase übertragen. Gewöhnlich steuert der Initiator alle 64 Bit von Daten vor dem Sehen DEVSEL#. Wenn ACK64# vermisst wird, kann es aufhören, die obere Hälfte des Datenbusses zu steuern.

REQ64# und ACK64# werden Linien behauptet für die komplette Transaktion gehalten sparen die letzte Datenphase und deasserted zur gleichen Zeit als FRAME# und DEVSEL# beziehungsweise.

Die PAR64 Linie funktioniert gerade wie die DURCHSCHNITT-Linie, aber stellt gerade Bitzahl n.Chr. [63:32] und C/BE [7:4] # zur Verfügung. Es ist nur für Adressphasen gültig, wenn REQ64# behauptet wird. PAR64 ist nur für Datenphasen gültig, wenn sowohl REQ64# als auch ACK64# behauptet werden.

PCI ungefähr 64 Bit Karten werden in 32-Bit-Weise, wenn eingefügt, in kürzere 32-Bit-Stecker, mit der Hälfte der Rand-Verbindungen nicht verbunden und das Überhängen arbeiten, so lange es keine eingestellten Hauptplatine-Bestandteile gibt, um die Überhängen-Karte mechanisch zu versperren. Ein Beispiel ist Adaptec SCSI 29160 64-Bit-Schnittstelle-Karte.

Geheimes Lager, das (veraltet) herumschnüffelt

PCI hat ursprünglich fakultative Unterstützung dafür eingeschlossen schreiben Kohärenz des geheimen Lagers zurück. Diese erforderliche Unterstützung durch cacheable Speicherziele, die zwei Nadeln vom geheimen Lager auf dem Bus, SDONE (Schnüffler getan) und SBO# (Schnüffler backoff) zuhören würden.

Weil das in der Praxis selten durchgeführt wurde, wurde es von der Revision 2.2 der PCI Spezifizierung und die Nadeln gelöscht, die für den SMBus Zugang in der Revision 2.3 wiederverwendet sind.

Das geheime Lager würde alle Speicherzugänge beobachten, ohne DEVSEL# zu behaupten. Wenn es einen Zugang bemerken würde, der versteckt werden könnte, würde es SDONE niedrig (Schnüffler nicht getan) steuern. Ein Kohärenz unterstützendes Ziel würde vermeiden, eine Datenphase zu vollenden (das Erklären TRDY#), bis es SDONE hoch beobachtet hat.

Im Fall von einem Schreiben Daten, das im geheimen Lager sauber war, würde das geheime Lager nur seine Kopie ungültig machen müssen, und würde SDONE behaupten, sobald das gegründet wurde. Jedoch, wenn das geheime Lager schmutzige Daten enthielte, würde das geheime Lager es zurück schreiben müssen, bevor der Zugang weitergehen konnte. so würde es SBO# behaupten, wenn es SDONE erhebt. Das würde dem aktiven Ziel Zeichen geben, um STOP# aber nicht TRDY# zu behaupten, den Initiatoren veranlassend, die Operation später zu trennen und neu zu verhandeln. Inzwischen würde das geheime Lager für den Bus Schiedsrichter sein und seine Daten zurück dem Gedächtnis schreiben.

Ziele, die Kohärenz des geheimen Lagers unterstützen, sind auch erforderlich, Brüche zu begrenzen, bevor sie Linien des geheimen Lagers durchqueren.

Entwicklungswerkzeuge

Wenn

sie sich entwickelt und/oder Fehlerbeseitigung der PCI Bus, kann die Überprüfung von Hardware-Signalen sehr wichtig sein. Logikanalysatoren und Bus Analysatoren sind Werkzeuge, die sich versammeln, analysieren Sie, und decodieren Sie Signale für Benutzer, auf nützliche Weisen anzusehen.

Siehe auch

  • PCI Konfigurationsraum
  • PCI-X
  • CompactPCI
  • PCI Schnellzug
  • PCI-SIG, PCI Special Interest Group
  • PICMG, PCI Industrial Computer Manufacturers Group
  • Eurokarte (gedruckte Leiterplatte)

Weiterführende Literatur

Offizielle technische Spezifizierungen

  • (1000 $ für Nichtmitglieder oder 50 $ für Mitglieder. PCI-SIG Mitgliedschaft ist 3000 $ pro Jahr.)
(1000 $ für Nichtmitglieder oder 50 $ für Mitglieder. PCI-SIG Mitgliedschaft ist 3000 $ pro Jahr.)

Bücher

  • PCI Bus Demystified; 2. Ed; Doug Abbott; 250 Seiten; 2004; internationale Standardbuchnummer 9780750677394.
  • PCI Systemarchitektur; 4. Ed; Tom Shanley; 832 Seiten; 1999; internationale Standardbuchnummer 9780201309744.
  • PCI-X Systemarchitektur; 1. Ed; Tom Shanley; 752 Seiten; 2000; internationale Standardbuchnummer 9780201726824.
  • PCI & PCI-X Hardware und Softwarearchitektur & Design; 5. Ed; Ed Solari; 1140 Seiten; 2001; internationale Standardbuchnummer 9780929392639.
  • PCI Anwendung von HotPlug und Design; 1. Ed; Alan Goodrum; 162 Seiten; 1998; internationale Standardbuchnummer 9780929392608.

Links

Technische Details

Listen von Verkäufern / Geräte / Personalausweise

Tipps

Linux

Entwicklungswerkzeuge

FPGA Kerne


Papst Pius V / Tragbares Dokumentenformat
Impressum & Datenschutz