[index] [back] [next]

2. Der PCI-Bus


Kurze Übersicht über die Features

Hohe Leistung:

Preisgünstig:

Einfache Handhabung:

Dauerhaftigkeit:

Zusammenarbeit - Verläßlichkeit:

Flexibilität:

Daten Integrität:

Software Kompatibilität:


Einführung

Der Peripheral Component Interconnect Bus ist ein weitgehend CPU-unabhängiges hochperformanentes Bussystem für PCs und wurde von INTEL im Jahre 1991 ursprünglich unter zwei Hauptgesichtspunkten konzipiert:
  • Er sollte höhere Datenraten, als es mit dem 16-Bit-ISA-Bus möglich war, erreichen und dabei Leistungswerte erzielen, die dem EISA-Bus und der MCA entsprachen.
  • Außerdem sollte die elektromagnetische Verträglichkeit (EMV) besser als bei seinen Vorgängern und besonders dem VLB sein.
  • Zudem sollte er einfach zu handhaben und zukunftssicher, das heißt auch für zukünftige Prozessorgenerationen geeignet, sein.

    Aus diesen Vorgaben entstand dann schließlich ein erster Entwurf eines 32 Bit breiten Bussystems, auf dem Daten und Adressen im Zeitmultiplex übertragen wurden und das zu Burst-Zyklen verschiedener Längen fähig war. Das Problem dabei war jedoch, daß recht geringe Zyklusdauern erreicht werden mußten um entsprechende Leistungen zu erzielen, weshalb Mainboard-intern auch nur bis zu drei PCI-Komponenten zugelassen wurden. Der entscheidende Fehler dabei waren die fehlenden Slots und die damit verbundene Tatsache, daß dadurch alle benötigten Hochgeschwindigkeitskomponenten auf dem Mainboard hätten installiert werden müssen, wodurch das Mainboard drastisch verteuert worden wäre. Im zweiten Entwurf wurde dieser Fehler dann beseitigt und bis zu vier Slots zur Verfügung gestellt. Auch hier wurde, wie beim ersten Entwurf, wieder ein System mit Direktstecker gewählt, aus Gründen der besseren EMV diesmal ein System, das mit dem der MCA verwandt ist. Bei den Slots wurde der im Zeitmultiplex betriebene Adreß- und Datenbus beibehalten, unter anderem um die Anzahl der Kontakte möglichst gering zu halten. INTEL hat eine vollständige, saubere und realistische Definition aller Signale für den PCI-Bus durchgesetzt, besonders aufgrund der schlechten Erfahrungen mit den bisher immer nur unvollständig definierten Bussystemen.

    Auch sonst wurde bei seiner Entwicklung besonderes Augenmerk darauf verwendet, daß der Umgang mit dem System so einfach wie möglich sein sollte. Dabei wurden die Erfahrungen der vorhergehenden Bussysteme genutzt und versucht aus ihren Fehlern zu lernen. Um möglichst alle Konfliktmöglichkeiten zu beseitigen, wurde eine Konfiguration der Mainboard-internen Peripherie und auch aller Erweiterungskarten vorgeschlagen und weitestgehend auch eingehalten. Diese Software wurde im Gegensatz zu EISA nicht als ein eigenständiges und unter MS-DOS laufendes Utility konzipiert, sondern als ein im EPROM mit dem Mainboard geliefertes Programm. Somit steht noch vor dem Hochlauf der Betriebssystemsoftware für die Konfiguration von Devices zur Verfügung, wodurch Nicht- MS-DOS-Anwender keine DOS-Boot-Diskette mehr brauchen.

    Am 22. Juni 1992 wurde der PCI-Bus dann in der Spezifikationsversion 1.0 erstmalig der Öffentlichkeit vorgestellt, womit sein Siegeszug begann. Die Revision 2.0 war ab April 1993 und die gegenwärtige Version, mit der Bezeichnung 2.1, ist seit dem ersten Quartal 1995 erhältlich.


    Aufbau und Technik des PCI-Bus

    Aufbau

    Im gesamten gesehen ist der PCI-Bus nicht nur ein neues Bussystem, sondern umfaßt vielmehr eine ganze PC-Architektur, das heißt der PCI-Chipsatz stellt eine ganze PC-Architektur zur Verfügung. Der Chipsatz besteht aus drei Hauptbestandteilen:
  • dem Expansion Bus Interface
  • der Host-Bridge mit dem Cache-DRAM-Controller und
  • der Data Path Unit.
  • Die Host-Bridge stellt als zentraler Baustein die Verbindung zwischen PCI-Bus und der CPU her. Sie setzt CPU-Zyklen in PCI-Zyklen und vice versa um. Aus Sicht des PCI-Bus ist aber auch die Host-Bridge nur ein PCI-Device. Dadurch wurde es möglich, auch andere als INTEL-Prozessoren als Host-CPU einzusetzen.

    Das Expansion Bus Interface stellt die Verbindung zu einem möglichen zweiten Bussystem (z.B. ISA oder EISA) her, was weiter unten noch erklärt wird und die Data Path Unit stellt den eigentlichen Bus dar, d.h. die Leitung an der alle Komponenten angeschlossen werden.

    Der PCI-Bus kann als CPU-unabhängiges Bussystem zur Verbindung des DRAM-Subsystems mit High-Speed-I/O und einer Brücke zu anderen Bussystemen verstanden werden. PCI-Erweiterungskarten können so in allen PCI-Computern unabhängig von der Host-CPU eingesetzt werden; lediglich das karteneigene BIOS muß die Konfigurationssoftware für die verschiedenen Prozessoren unterstützen. Bei Verwendung einer anderen Host-CPU bzw. eines anderen CPU-Subsystems muß lediglich die Host-Bridge verändert werden. Durch dieses stark von der CPU entkoppelte Konzept ist der Aufbau von symmetrischen und asymmetrischen Multiprozessorsystemen möglich, da hier ebenfalls das Interprozessorbussystem unabhängig von der Implementation des PCI-Busses ist und nur eine neue Host-Bridge erforderlich macht. Dies ist ein echter Vorteil gegenüber allen anderen Bussystemen, was ihn auch für zukünftige Prozessor-Generationen geeignet macht, da man auch dort nur einen der Plattform entsprechenden Treiber, die Host-Bridge benötigt.

    Ein weiterer Vorteil der Trennung ist der, daß bei PCI-Rechnern nicht die CPU, sondern die Host-Bridge für den Burst verantwortlich ist. Deshalb arbeitet auch bei 486ern, die Write-Burst nicht unterstützen, ein PCI-Device mit Write-Burst, was besonders Grafikanwendungen beschleunigt. Zudem ermöglicht die Trennung von CPU und PCI-Bus, daß die CPU weiterarbeiten kann, während der PCI-Bus in den Hauptspeicher schreibt oder aus ihm ließt (Concurrency). Dies gilt auch wenn Daten zwischen zwei PCI-Devices ausgetauscht werden. So kann der Prozessor zum Beispiel Berechnungen ausführen, während zur gleichen Zeit Daten von der Festplatte zur Grafikkarte übertragen werden.

    Die PCI-Definition erlaubt insgesamt 10 Devices (Loads) an einem PCI-Bus, wobei immer ein Device für die Host-Bridge verwendet werden muß. Die anderen können z.B. für On-Board-Komponenten, wie SCSI-, EIDE-, LAN-, oder Grafikadapter, verwendet werden. Über Slots, die als 2 Devices gezählt werden, können auch externe Geräte (PCI-Karten) an den Bus angekoppelt werden. Durch die Doppelzählung sind maximal 4 PCI-Slots verwendbar, da Host-Bridge und jene 4 Slots 9 der 10 vorhandenen Geräte besetzen.

    Bei der Konstruktion ist zu beachten, daß die Summe aller kapazitiven Lasten niemals größer als 100 pF sein darf. Dazu ist die Anzahl der Devices und der Slotstecker zu bestimmen. Jedes Device und jeder Slotstecker (Device für Slotstecker noch zusätzlich mitzählen, wodurch besagte 2 Devices pro Slot entstehen) stellt eine kapazitive Last von 10 pF dar, womit sich oben genannte 10 Devices ergeben. Werden mehr als diese 10 Devices benötigt so ist dies über eine sogenannte Bridge möglich.

    Um auch andere Karten (z.B. ISA-Karten) nutzen zu können, kann über eine entsprechende Bridge der nötige Bus an den PCI-Bus angekoppelt werden, wodurch auch ältere Karten weiterverwendet werden können.

    Die PCI-Spezifikation sieht Bus-Bridges zu eigentlich allen anderen Bussystemen vor, d.h. Bridges für die ISA, die EISA, die MCA sowie die PCMCIA. Damit will man die Probleme der MCA umgehen, die keinerlei Migrationspfad zwischen den alten ISA- und den neuen MCA-Karten vorsah. Am sinnvollsten ist dabei eine Brücke zwischen PCI und EISA, damit sind PCI-Karten, 8-Bit-ISA-Karten, 16-Bit-ISA-Karten und EISA-Karten einsetzbar. Auch technisch ist sie am interessantesten, weil sie die meisten Features bietet, dazu gehören die Möglichkeit doppelter Posted Writes; sowohl vom PCI-Bus zum Host als auch vom EISA-Bus zur PCI-Bridge. Zudem stellt die EISA-Bridge alle Funktionen einschließlich der vollständigen EISA-Arbitration zur Verfügung.

    Es ist ebenfalls möglich, Bus-Bridges zu benutzen, die für den IBM-PC nicht üblich sind.

    Ein entscheidender Vorteil, den es nur beim PCI-Bus gibt, ist die Existenz einer PCI-to-PCI-Bridge, wodurch zum Beispiel die Anzahl der Slots oder der On-Board-Komponenten erhöht werden kann. Diese Möglichkeit mehrere PCI-Busse parallel oder seriell in einem Rechner zu betreiben, wird durch die Skalierbarkeit des PCI-Bus ermöglicht. Hiermit ist es möglich, ein großes System oder eines mit hohen Leistungsanforderungen in mehrere Teilsysteme aufzuspalten, die unabhängig voneinander arbeiten können, ohne sich zu stören.

    Insgesamt ist es möglich 256 Busse einzusetzen, wobei die ersten 255 Busse PCI-Busse sind und der letzte entweder ein weiterer PCI-Bus oder ein Expansion Bus (d.h. ein EISA-, ISA-, MCA-, oder VL-Bus) sein kann.

     
    (Quelle 2)

    Zudem ist durch die Migration von 5V-Systemen hin zu den 3.3V-Systemen und den daraus resultierenden verschiedenen Slots bei PCI ein Weg gefunden worden, der sowohl die alte Technik als auch die neue und bei Kombi-Boards sogar beide Arten der Spannungsversorgung zuläßt; durch den eingesetzten Stecker und den mechanischen Aufbau des Systems ist es den Endkunden unmöglich, eine Karte verkehrt herum oder mit der falschen Spannungsversorgung einzustecken.

    Arbeitsweise

    Die PCI-Spezifikation erlaubt unterschiedliche Arten von Erweiterungskarten. Die erste Kategorie sind die Erweiterungskarten mit genau einer Funktion, die als Single Function PCI-Cards bezeichnet werden. Dazu gehören z.B. Video-Karten oder SCSI-Host-Adapter. Eine solche Single Function PCI-Card besteht i.a. aus einem PCI-ASIC, einem optionalen Controller und einem I/O Device. Meistens bleibt auf einer solchen Erweiterungskarte noch sehr viel ungenutzter Platz übrig, der zur Installation weiterer Devices genutzt werden kann. Bis zu acht verschiedene I/O-Funktionen können in einem PCI-Device implementiert werden. Dieses PCI-Device bezeichnet man als Multi Function PCI-Card. Ein Beispiel dafür ist ein Controller für eine Reihe von seriellen Schnittstellen. Aufgebaut ist sie aus einem PCI-ASIC, einem I/O Controller und mehreren I/O Devices. Im Gegensatz zu den beiden oben genannten Erweiterungskarten werden auf Multi-Device-Erweiterungskarten mehrere PCI-Devices installiert, somit ist eine solche Karte ist als eine Menge von Single- und Multifunction-Devices zu betrachten, die nur rein physikalisch auf einer Karte untergebracht sind. Untereinander sind sie durch eine Implementation des PCI-Bus verbunden. Der Zugriff von der Host-CPU oder einem anderen Bus-Master auf eines der Devices erfolgt grundsätzlich über eine PCI-to-PCI-Bridge. Eine Multi-Device-Erweiterungskarte ist eine Möglichkeit, ein hierarchisches PCI-Bus-System darzustellen. Auf einer solchen Karte sollte mindestens ein PCI-Device über die Bus-Master-Funktion verfügen, da sonst alle Transaktionen auf diesem Teilstück des PCI-Bus darauf angewiesen sind, daß ein Bus-Master oder die Host-CPU Zugriffe oder Transfers tätigt.

    Der PCI-Bus kennt zwei Arten von Bus Devices, Initiator und Target. Der Initiator initiiert einen Zugriff, indem er die Kontrolle über die Steuersignale übernimmt und die Adressen generiert, sowie Beginn und Länge einer Bus Transaktion bestimmt. Das Target aktiviert beim Erkennen seiner Adresse auf dem Bus ein Rückmeldesignal für den Initiator des Zugriffs. Das Target kann die Verfügbarkeit von Daten oder Lesebereitschaft, aber auch die Bitte um Erzeugung von Wait-States signalisieren. Mit diesen beiden Einheiten können alle Transfers und Zugriffe abgewickelt werden, was weitere Devices überflüssig macht.

    Die PCI-Bus Targets sind die Slaves des PCI-Bus. Sie selbst sind nicht in der Lage Zugriffe oder Transfers zu initiieren und sind deshalb darauf angewiesen, daß die Zugriffe durch einen Bus-Master oder die Host-CPU durchgeführt werden. Das PCI-Bus-Interface des Targets ist wie bei jedem anderen PCI-Device ein ASIC, das die PCI-Bus-Zyklen beherrscht und sinnvollerweise Burst-Modi unterstützen sollte. Optional kann auch ein Transfer Buffer implementiert werden, der einen Transfer von Daten von und zum Bus und I/O-Device mit geringer Latenz und ohne die Notwendigkeit zur Erzeugung von Wait-States ermöglicht. Die Daten sollten ohne eingreifen der CPU geschrieben und gelesen werden können, deswegen kann ein Slave mit einer eigenen CPU ausgerüstet sein. Hat ein Slave von der peripheren Einheit Daten empfangen, so kann er diesen Umstand der CPU oder einem Bus Master per Interrupt melden, die die Daten dann abholen können.

    PCI-Bus-Initiators, die dem Master entsprechen, können im Unterschied dazu über alle Ressourcen des Systems verfügen, also auch auf alle PCI-Devices zugreifen. Sie können eigenständig und unabhängig von der Host-CPU Zyklen initiieren und Zugriffe und Transfers durchführen. Solch ein Zugriff wird initiiert, indem der Initiator die Kontrolle über die Steuersignale übernimmt und die Adressen generiert sowie Beginn und Länge einer Bus Transaktion bestimmt. Weiterhin betreibt er ein Handshake mit dem Target, wodurch die Anzahl der Wartezustände definiert wird.

    Beide Device-Arten sind in der Lage Burst-Transfers zu bedienen, aber nur der Initiator ist in der Lage sie zu initiieren. Burst-Übertragung bedeutet, daß nicht jeder Datenblock (z.B. 1 DWord, also 32 Bit) mit seiner dazugehörigen Adresse angefordert werden muß, sondern nur die Adresse des ersten Datenblocks und die Daten danach einfach der Reihe nach übertragen werden. Dies funktioniert natürlich nur, wenn im Speicher aufeinanderfolgende Daten abgerufen werden, was in der Praxis relativ häufig vorkommt. Folgen die benötigten Daten im Speicher nicht aufeinander, muß allerdings weiterhin jedes DWord mit seiner entsprechenden Adresse angefordert werden. Der Burst beim PCI-Bus ist praktisch unbegrenzt, was nur hier der Fall ist. Als Vergleich, beim VL-Bus ist er auf 4 DWords begrenzt.

    Im Prinzip kann beim PCI-Bus jede Karte ein Master sein. Eine Arbitrierungslogik entscheidet welcher Master als nächstes an der Reihe ist, wenn mehrere Master Anspruch auf den Bus erheben. Die Arbitration selbst erfolgt im Hintergrund (overlapped Arbitration) mit Hilfe slotspezifischer Steuerleitungen. Ein Watch-Dog-Timer überwacht, daß ein Master den Bus nicht zu lange belegt. Wird die zugestandene Zeit überschritten und ein anderer Master will Daten übertragen, entzieht der Watch-Dog dem ersten den Bus. Dadurch wird verhindert, daß abgestürzte Devices den beanspruchten Bus nicht wieder freigeben (Deadlocks).

    Neben den Initialisierungs- und Arbitrierungszyklen gibt es nur noch einen weiteren Grundzyklus für Datentransfers. Über Frame- und Stoping-Leitung einigen sich Initiator und Target darüber, ob ein Burst- (Auto incremental Burst Mode) oder ein Non-Burst-Zyklus gewünscht wird. Im Non-Burst-Transfer benötigt ein Read 3 und ein Write 2 Takte pro DWord, womit sich bei 33 MHz Bustakt eine Transferrate von 44 MByte/s beim Read und 66 MByte/s beim Write ergibt. Im Burst-Mode werden normalerweise größere Blöcke (ab 4 DWords) übertragen. Beim Read ist dies ein 3-1-1-1-...-Burst (105 MByte/s) und beim Write ein 2-1-1-1-...-Burst (117 MByte/s). Da die Burstlänge nur durch den Adressbereich begrenzt wird, ist ein maximaler Wert von theoretisch 266 MByte/s möglich.

    Der elektrische PCI-Bus arbeitete bis zur Version 2.0 mit einem maximalen Takt von 33 MHz synchron zum Prozessortakt. War die CPU höher getaktet, so lief der Bus mit heruntergeteiltem Takt. Bei einem 60 MHz Pentium betrug der PCI-Takt deshalb nur 30 MHz. In der Spezifikation 2.1 liegt der maximale Takt inzwischen schon bei 66 MHz (siehe auch unter 2.2.3.).

    Im Idealfall sollte ein PCI-Device alle Busleitungen an einer Chipseite haben, zusätzliche Treiber oder Logik-Bausteine sind unerwünscht. Damit dies mit Standard-ASIC-Zellen möglich ist, muß die Anzahl der Leitungen so gering wie möglich gehalten werden. Deshalb arbeitet PCI mit einem gemultiplexten Daten- und Adreß-Bus. 32 Bit-Devices kommen somit mit 49 Pins aus, die sich bei gängigen ASIC-Gehäusen bequem auf einer Seite unterbringen lassen.

    Um die Anwenderfreundlichkeit des Busses zu erhöhen, unterstützt PCI die automatische Konfiguration von Devices (plug and play). Das PCI-BIOS auf dem Motherboard erkennt beim Booten jede der eingestellten Karten und konfiguriert sie automatisch. Sollten zwischen zwei PCI-Karten unlösbare Konflikte auftreten, so wird eine der Karten einfach abgeschalten. Dies geschieht aber sehr selten, da das BIOS in der Lage ist, die von den verschiedenen Karten benutzten Ressourcen, wie Port- und Memoryadressen sowie DMA-Kanäle, selbständig zu ändern. Belegen z.B. zwei Karten den gleichen I/O-Port, so wird die Adresse einer der Karten vom BIOS gewechselt. Anders verhält es sich bei den Interrupts (IRQ). Freie IRQ's sind im PC eh Mangelware, besonders aber seit immer mehr Netzwerk-, Sound-, Fax- oder sonstige Erweiterungskarten die Computer bis auf den letzten Steckplatz füllen. Da ist es oft nicht leicht, noch einen freien IRQ für die neue Erweiterungskarte zu finden. Der PCI-Bus kennt zwei Möglichkeiten dies zu umgehen. Erstens können gemäß Spezifikation alle IRQ's mehrfach benutzt werden (Interrupt-Sharing). Zweitens lassen sich die Interruptleitungen der PCI-Karten durch Jumper- oder BIOS-Einstellungen auf jeden freien Interrupteingang des Interruptcontrollers schalten. Die PCI-Spezifikation sieht vor, daß für jeden PCI-Slot vier Interrupts zur Verfügung stehen (A, B, C und D). Davon wird normalerweise nur der Interrupt A genutzt. Dieser Interrupt wird nun für jeden PCI-Slot einzeln auf einen PC-Interrupt gelegt. Zum Beispiel A von Slot 1 auf IRQ 5, A von Slot 2 auf IRQ 3 und A von Slot 3 auf IRQ 7. Desweiteren schlägt die PCI-Spezifikation vor, daß die Interrupts B, C und D nur von Karten, die mehr als einen Interrupt benötigen, benutzt werden. In der Praxis sah es aber am Anfang (erste Hälfte 1994) noch ganz anders aus. Bei damals erhältlichen Boards lag entweder nur einer der Interrupts am Slot an, oder es standen alle vier Interrupts zur Verfügung, aber sie ließen sich nicht von Slot zu Slot unabhängig belegen. Dies drohte eine der wichtigsten Stärken von PCI zu zerstören, die exakte Spezifikation. Ein weiteres schwerwiegendes Problem stellten einige BIOS-Versionen dar, die nur die PCI-Karten erkannten, die zu der Zeit existierten. Glücklicherweise residierte bei allen PCI-Boards das BIOS in einem sogenannten Flash-Memory (Flash-ROM). Das bedeutet, daß man jederzeit ein neues BIOS von Diskette auf das Board überspielen kann. Hat das BIOS herausgefunden, welche Ressourcen von der PCI-Karte benötigt werden, steht ein 256 Byte großer Konfigurationsbereich zur Verfügung, um diese Parameter zu speichern.

    Da PCI nicht nur auf die Prozessoren der INTEL-Architektur beschränkt ist, können verschiedene Karten-BIOS-Versionen, z.B. für Alpha- oder Power-PC, gleichzeitig verwaltet werden. Je nach CPU wählt das BIOS einen der drei möglichen Einsprungspunkte des Karten-BIOS aus. Diese Fähigkeit ist besonders wichtig, da sowohl APPLE (Power-PC) als auch DEC (Alpha) PCI unterstützen. Somit können alle Kartenhersteller ein einheitliches ROM für alle drei Plattformen anbieten.

    Neuerungen gegenüber Spezifikation 1.0

    Der PCI-Bus ist in der Spezifikation 1.0 ein gebuffertes, entkoppeltes, 32-Bit breites Bussystem mit einer Zyklusdauer von 30 ns bei einer Taktrate von 33 MHz.

    In der Version 2.0 der PCI-Spezifikation ist unter anderem die Erweiterung auf 64 Bit enthalten, die abwärtskompatibel zur 32 Bitversion ist. Hierfür ist allerdings ein längerer bzw. ein zusätzlicher Stecker notwendig. Durch den gemultiplexten Daten- und Adreß-Bus stehen somit 17 x 109 TByte an adressierbarem Speicher zur Verfügung.

    Eine weitere Neuerung dieser Version ist die 3,3 Volt Variante des PCI-Bus, denn neuere CPUs (jüngere 486er und Pentiums) und wahrscheinlich auch die zukünftigen Rechner werden mit 3,3 Volt betrieben werden.

    Die aktuelle Spezifikation 2.1 beseitigt einige Zweideutigkeiten und erweitert den PCI-Konfigurationsbereich um eine Sub-Vendor- und eine Sub-Device-Kennung, was vor allem von den Grafikkartenherstellern gefordert worden war, um Plug&Play-Betriebssystemen eine Chance zu geben, herstellerspezifsche Treiber auch dann automatisch zu laden, wenn mehrere Anbieter den selben Grafikchip verwenden.

    Eine weitere Klarstellung gab es im Bereich des Interrupt-Routings, wo es jetzt im Gegensatz zu früheren Versionen erstmals einen klar definierten Algorithmus gibt, nach dem die systemspezifischen Interruptkanäle (IRQs) auf die Interruptleitungen des PCI-Bus verteilt werden. Mit der Version 2.1 verabschiedet sich der PCI-Bus auch vom Bus-Konzept bei Interrupts, d.h., INT A von Slot 1 ist nicht jetzt nicht mehr zwangsweise mit INT A von Slot 2 usw. verbunden. Jetzt ist es vielmehr so, daß die systemspezifischen verfügbaren IRQs zuerst auf die einzelnen PCI-Slots verteilt werden und das Interrupt-Sharing erst zum tragen kommt, wenn mehr Interrupts durch PCI-Devices angefordert werden, als das System zur Verfügung stellen kann.

    Die letzte wichtige Neuerung ist die 66-MHz-Option. Damit diese abwärtskompatibel zur alten 33 MHz-Version ist, gibt es allerdings einen Haken. Steckt nämlich in einem 66-MHz-System auch nur eine 33-MHz-Karte, so arbeiten alle Komponenten mit 33 MHz. Damit ein Board nun nicht versehentlich mit 66 MHz läuft, wenn eine 33-MHz-Karte eingesteckt ist, wurde der 66-MHz-Enable-Pin (M66EN) auf einen bisher mit Masse belegten Kontakt (Pin B49) gelegt.


    Fazit

    PCI ist vom technischen Standpunkt aus das Bussystem der Zukunft für PCs. Es liefert höhere Datentransferraten als die anderen Bussysteme, ist für den Anwender einfach zu konfigurieren und erlaubt wie EISA echtes Multimastering. Zudem unterstützt VLB ebenso wie EISA, meines Wissens nach, keine 3.3V-Systeme. Weitere wichtige Vorteile sind die Trennung des PCI-Bus von der CPU und die Erweiterbarkeit des PCI-Bus durch die PCI-to-PCI-Bridge, etwas was nur beim PCI-Bus möglich ist. Alle diese hier und weiter oben aufgeführten Vorteile, sowie das enge Korsett an Vorschriften, das durch die sehr detaillierten Spezifikationen entstand und auch eingehalten wurde, sorgen dafür, daß der PCI-Bus die älteren Bussysteme nicht nur ergänzt sondern vollständig ersetzt und somit auch in der Praxis das Bussystem der Gegenwart und auch der näheren Zukunft ist. Ob es auch das Bussystem der ferneren Zukunft sein kann, wird sich daran zeigen, ob der PCI-Bus bei der allgemeinen technischen Entwicklung in der Computerbranche mithalten kann oder wieder der Flaschenhals aus ISA-Zeiten wird, bzw. ob sich bis dahin nicht ein neues Bussystem auf dem Markt durchsetzen kann.


    Die PCI SIG

    Damit PCI immer auf dem neuesten Stand ist und ihm nicht das gleiche Schicksal wie der MCA beschieden ist, hat INTEL die Weiterentwicklung des PCI-Busses an ein unabhängiges Komitee abgegeben, die PCI SIG.

    Im Juni 1992, das heißt zu dem Zeitpunkt als der PCI-Bus das erste mal in der Öffentlichkeit vorgestellt wurde, haben sich namhafte Firmen aus der gesamten Computerindustrie (einschließlich INTEL) zur PCI Special Interest Group (SIG) zusammengeschlossen, um den PCI-Bus als offenen, nicht proprietären Standard zu promoten und weiterzuentwickeln. Inzwischen sind mehr als 300 Firmen einschließlich verschiedener Halbleiterhersteller, Computer- und Zusatzkartenhersteller aktive Mitglieder der PCI SIG, der jeder für 2500 US-$ im Jahr beitreten kann, was auch kleineren Firmen die Möglichkeit gibt, aktiv an der Entwicklung des PCI-Bus teilzunehmen. Diese Vereinigung ist es auch, die die Spezifikationen an interessierte Leute ausliefert. Es gibt im Moment keine Online-Version.


    [index] [back] [next]