GIO ist ein von SGI entwickelter Computerbusstandard , der in den 1990er-Jahren in verschiedenen SGI-Produkten als primäres Erweiterungssystem eingesetzt wurde. GIO ähnelte konzeptionell konkurrierenden Standards wie NuBus oder (später) PCI , fand aber außerhalb von SGI kaum Verwendung und schränkte dadurch die auf der Plattform verfügbaren Geräte stark ein. Die meisten GIO-fähigen Geräte waren SGI-eigene Grafikkarten, obwohl auch Karten von Drittanbietern mit Unterstützung für Hochgeschwindigkeits-Datenzugriffe wie Fibre Channel und FDDI erhältlich waren. Spätere SGI-Rechner verwenden den XIO- Bus, der als Computernetzwerk und nicht als Bus aufgebaut ist .

Beschreibung

Wie die meisten Busse jener Zeit war auch GIO ein 32-Bit-Adress- und Datenmultiplexbus, der üblicherweise mit 25 oder 33 MHz getaktet wurde. Das bedeutete, dass der Bus denselben Pfad für Adressierung und Datenübertragung nutzte und somit normalerweise drei Taktzyklen benötigte, um einen einzelnen 32-Bit-Wert zu übertragen: einen Zyklus zum Senden der Adresse, einen zum Senden der Daten und einen weiteren zum Lesen oder Schreiben. Dies begrenzte den Bus bei solchen kleinen Übertragungen auf einen maximalen Durchsatz von etwa 16 MByte /s bei 33 MHz. Das System verfügte jedoch auch über einen Modus für lange Lese-/Schreibvorgänge , der kontinuierliche Übertragungen von bis zu 4 Kilobyte Daten ermöglichte (die grundlegende Seitengröße in R3000-basierten SGI-Maschinen). Durch die Nutzung dieses Modus konnte der Durchsatz drastisch auf 132 MByte/s (32 Bit pro Taktzyklus * 33 MHz) gesteigert werden. GIO enthielt außerdem einen Echtzeit-Interrupt, der es Geräten ermöglichte, diese langen Übertragungen bei Bedarf zu unterbrechen. Die Busarbitrierung wurde in den ursprünglichen, auf dem R3000 basierenden SGI Indigo- Systemen vom Prozessor-Schnittstellencontroller ( PIC ) gesteuert .

GIO verwendete einen 96-poligen Anschluss und relativ kleine Karten mit einer Länge von 16,3576 cm und einer Breite von 8,5725 cm. In der Indigo-Serie waren die Karten im Gehäuse vertikal übereinander angeordnet, im Gegensatz zur üblicherweise rechtwinklig zum Motherboard angeordneten Variante . Dies ermöglichte ein hohes und schmales Gehäusedesign. Da die Karten übereinander angeordnet waren, konnte eine Karte entwickelt werden, die beide Anschlüsse auf dem Motherboard des Computers nutzte und somit mehr Platz bot.

GIO64

EISA /GIO64 Riserkarte von der SGI Indigo²

GIO wurde später zu einer 64-Bit-Version, GIO64 , erweitert, wodurch die Vorgängerversion GIO32 rückwirkend umbenannt wurde . Die Adressierung blieb 32 Bit, ermöglichte aber nun sowohl Big-Endian- als auch Little-Endian-Adressierung, was durch einen neuen Steuerpin signalisiert wurde. GIO32 hingegen unterstützte nur Big-Endian-Adressen im SGI-Stil. Daten konnten nun 64 Bit gleichzeitig übertragen werden, wodurch sich die Geschwindigkeit verdoppelte. GIO64 taktete zudem schneller als GIO32, mit bis zu 40 MHz, und erreichte einen maximalen Streaming-Durchsatz von 320 MB/s. Die Seitengrößen wurden ebenfalls an die unterschiedlichen CPUs angepasst : von 4 KB für R3000-basierte Maschinen bis zu 16 MB für R4400-basierte.

Der GIO64-Bus verwendete deutlich größere Karten, die in Größe und Layout im Allgemeinen den EISA- Karten ähnelten . Diese bewusste Entscheidung vereinfachte die Entwicklung und ermöglichte es SGI, EISA-Steckplätze in denselben Geräten zu verbauen. Der externe Anschluss (der Metallflansch) war identisch mit dem von EISA, die Form der Platine selbst unterschied sich jedoch geringfügig.

Es wurden zwei Versionen von GIO64 spezifiziert. Das „nicht-pipelinierte“ System funktionierte ähnlich wie GIO32, wobei die Datenübertragungen direkt auf dem Bus eingerichtet wurden. Das neuere „pipelinierte“ System wurde auf den tatsächlichen Karten verwendet. Wie der Name schon sagt, richtete dieses System die Datenübertragungen in einem mehrstufigen Prozess ein, der in der internen Pipeline des Controllers dekodiert wurde. Intern übertrug der nicht-pipelinierte Bus Daten zwischen den verschiedenen Komponenten des Computers, darunter GIO-Karten, EISA-Geräte, SCSI usw. GIO-Karten nutzten den pipelined Controller zur Arbitrierung und Timing-Steuerung; die Daten wurden dann über die interne, nicht-pipelinierte Seite in den Hauptspeicher eingespeist .

GIO32-bis

Ein dritter Standard, GIO32-bis , nutzte die Signale und das Timing von GIO64, jedoch mit den 32-Bit-Anschlüssen von GIO32. Entsprechend konstruierte GIO32-bis-Karten konnten in GIO64-, GIO32- oder GIO32-bis-Steckplätzen verwendet werden. Die beiden letztgenannten ließen sich anhand eines Pins unterscheiden, der bei GIO32 auf Masse und bei GIO32-bis auf High-Pegel lag. Für Karten mit geringem Datendurchsatz ermöglichte GIO32-bis die Verwendung eines einzelnen Geräts auf jedem GIO-fähigen Rechner, unabhängig von der Generation.

Siehe auch

Referenzen