Intel i860 - Intel i860

Intel i860
Designer Intel
Bits 32/64-Bit
Eingeführt 1989
Entwurf RISC , VLIW
Typ Registrieren-Registrieren
Codierung Fest
Verzweigung Vergleichen und verzweigen
Endianität Bi
Seitengröße 4 KB
Erweiterungen 64-Bit-Grafikeinheit
Register
Allgemeiner Zweck 32 32-Bit
Gleitkomma 32 32-Bit (16 64-Bit)

Der Intel i860 (auch bekannt als 80860 ) war ein RISC- Mikroprozessor- Design, das 1989 von Intel eingeführt wurde . Es war einer der ersten Versuche von Intel nach einer völlig neuen High-End- Befehlssatzarchitektur seit dem gescheiterten Intel iAPX 432 von Anfang der 1980er Jahre . Es wurde mit beträchtlicher Fanfare veröffentlicht und verdunkelte leicht den früheren Intel i960 , der in einigen Nischen von eingebetteten Systemen erfolgreich war und von vielen als besseres Design angesehen wurde. Der i860 erzielte nie einen kommerziellen Erfolg und das Projekt wurde Mitte der 1990er Jahre beendet.

Implementierungen

i860 XR
KL Intel i860XR.jpg
Intel i860 XR Mikroprozessor (33 MHz Edition)
Allgemeine Information
Gestartet 1989
Abgesetzt Mitte der 1990er Jahre
Gängige Hersteller
Leistung
max. CPU- Taktrate 25 MHz bis 40 MHz
Zwischenspeicher
L1- Cache 4 KB (I) + 8 KB (D)
Architektur und Klassifizierung
Befehlssatz Intel i860
Physikalische Spezifikationen
Kerne
Geschichte
Nachfolger i860 XP
Sterben von Intel i860 XR.
i860 XP
Intel i860 XP A80860XP-50 L4190197 top.jpg
Intel i860-Mikroprozessor (50-MHz-Edition)
Allgemeine Information
Gestartet 1991
Abgesetzt Mitte der 1990er Jahre
Gängige Hersteller
Leistung
max. CPU- Taktrate 40 MHz bis 50 MHz
Zwischenspeicher
L1- Cache 16+16 KB
Architektur und Klassifizierung
Befehlssatz Intel i860
Physikalische Spezifikationen
Kerne
Geschichte
Vorgänger i860 XR
Sterben von Intel i860 XP.

Die erste Implementierung der i860-Architektur war der i860 XR- Mikroprozessor (Codename N10 ), der mit 25, 33 oder 40 MHz lief. Der i860 XP- Mikroprozessor der zweiten Generation (Codename N11 ) fügte 4 Mbyte-Seiten, größere On-Chip-Caches, Second-Level-Cache-Unterstützung, schnellere Busse und Hardware-Unterstützung für Bus-Snooping für Cache-Konsistenz in Multiprozessorsystemen hinzu . Eine Prozessverkleinerung für den XP (von 1 Mikrometer auf 0,8 CHMOS V) hat ihn auf 40 und 50 MHz gebracht. Beide Mikroprozessoren unterstützten den gleichen Befehlssatz für Anwendungsprogramme.

Technische Eigenschaften

Der i860 kombinierte eine Reihe von Funktionen, die zu dieser Zeit einzigartig waren, insbesondere seine sehr lange Instruktionswort- Architektur (VLIW) und die leistungsstarke Unterstützung für Hochgeschwindigkeits-Gleitkommaoperationen. Das Design montierte einen 32-Bit- ALU- "Core" zusammen mit einer 64-Bit- FPU , die selbst in drei Teilen aufgebaut war: einem Addierer, einem Multiplikator und einem Grafikprozessor. Das System hatte separate Pipelines für die ALU, den Gleitkomma-Addierer und -Multiplikator und konnte bis zu drei Operationen pro Takt weiterreichen. (Dh zwei Befehle - ein ganzzahliger Befehl und ein Gleitkomma-Multiply-and-Accumulate-Befehl pro Takt.)

Alle Busse waren mindestens 64 Bit breit. Der interne Speicherbus zum Cache war beispielsweise 128 Bit breit. Beide Einheiten hatten zweiunddreißig 32-Bit-Register, aber die FPU verwendete ihren Satz als sechzehn 64-Bit-Register. Befehle für die ALU wurden jeweils zu zweit abgerufen, um den vollen externen Bus zu verwenden. Intel bezeichnete das Design als "i860 64-Bit Microprocessor".

Intel i860-Anweisungen reagierten auf Datengrößen von 8-Bit bis 128-Bit.

Die Grafikeinheit war einzigartig für die Ära. Es war im Wesentlichen eine 64-Bit-Integer-Einheit, die die FPU- Register als acht 128-Bit-Register verwendet. Es unterstützte eine Reihe von Befehlen für SIMD- ähnliche Anweisungen zusätzlich zur grundlegenden 64-Bit-Integer-Mathematik. Die Erfahrungen mit dem i860 beeinflussten die MMX- Funktionalität, die später zu Intels Pentium- Prozessoren hinzugefügt wurde .

Ein ungewöhnliches Merkmal des i860 war, dass die Pipelines in die Funktionseinheiten programmzugänglich waren ( VLIW ), was von den Compilern verlangte , Anweisungen sorgfältig im Objektcode anzuordnen , um die Pipelines gefüllt zu halten. In traditionellen Architekturen wurden diese Aufgaben zur Laufzeit von einem Scheduler auf der CPU selbst erledigt, aber die Komplexität dieser Systeme schränkte ihre Anwendung in frühen RISC-Designs ein. Der i860 war ein Versuch, dies vollständig zu vermeiden, indem er diese Aufgabe außerhalb des Chips in den Compiler verlagerte. Dies ermöglichte es dem i860, den Funktionseinheiten mehr Platz zu geben und die Leistung zu verbessern. Aufgrund seiner Architektur konnte der i860 bestimmte Grafik- und Gleitkommaalgorithmen mit außergewöhnlich hoher Geschwindigkeit ausführen, aber seine Leistung in universellen Anwendungen litt und es war schwierig, effizient zu programmieren (siehe unten).

Leistung

Auf dem Papier war die Leistung für eine Single-Chip-Lösung beeindruckend; die reale Leistung war jedoch alles andere als. Ein zu dieser Zeit vielleicht nicht erkanntes Problem bestand darin, dass Laufzeitcodepfade schwer vorherzusagen sind, was bedeutet, dass es äußerst schwierig wird, Anweisungen zur Kompilierzeit richtig zu ordnen . Zum Beispiel dauert eine Anweisung zum Addieren von zwei Zahlen erheblich länger, wenn die Daten nicht im Cache sind, aber der Programmierer kann nicht wissen, ob sie es sind oder nicht. Bei einer falschen Schätzung bleibt die gesamte Pipeline stehen und wartet auf die Daten. Das gesamte i860-Design basierte darauf, dass der Compiler diese Aufgabe effizient bewältigte, was sich in der Praxis als fast unmöglich erwies. Während die XP-Versionen theoretisch 60-80 MFLOPS sowohl für einfache als auch für doppelte Genauigkeit erreichen konnten , schaffte es manuell geschriebener Assembler-Code nur bis zu 40 MFLOPS, und die meisten Compiler hatten Schwierigkeiten, selbst 10 MFLOPs zu erreichen. Die spätere Itanium- Architektur, ebenfalls ein VLIW-Design, litt erneut unter dem Problem, dass Compiler nicht in der Lage sind, ausreichend optimierten Code zu liefern.

Ein weiteres ernstes Problem war das Fehlen einer Lösung, um den Kontextwechsel schnell zu handhaben . Der i860 hatte mehrere Pipelines (für die ALU- und FPU-Teile) und ein Interrupt konnte sie verschütten und sie alle neu laden. Dies dauerte im besten Fall 62 Zyklen und im schlechtesten Fall fast 2000 Zyklen. Letzteres ist 1/20000stel Sekunde bei 40 MHz (50 Mikrosekunden), eine Ewigkeit für eine CPU. Dadurch wurde der i860 als Allzweck-CPU weitgehend eliminiert.

Ableben

Als sich die Compiler verbesserten, tat sich die allgemeine Leistung des i860 ebenfalls, aber zu diesem Zeitpunkt hatten die meisten anderen RISC-Designs bereits den i860 in der Leistung überholt.

In den späten 1990er Jahren ersetzte Intel seine gesamte RISC-Linie durch ARM- basierte Designs, die als XScale bekannt sind . Verwirrenderweise wurde die 860-Nummer seitdem für einen Motherboard-Steuerungs-Chipsatz für Intel Xeon (High-End Pentium )-Systeme und ein Modell des Core i7 wiederverwendet.

Andy Grove schlug vor, dass das Scheitern des i860 auf dem Markt darauf zurückzuführen war, dass Intel zu dünn gestreckt wurde:

Wir hatten jetzt zwei sehr leistungsstarke Chips, die wir fast zeitgleich einführten: den 486, der größtenteils auf der CISC-Technologie basiert und mit der gesamten PC-Software kompatibel ist, und den i860, der auf der RISC-Technologie basiert, der sehr schnell, aber kompatibel war nichts. Wir wussten nicht, was wir tun sollten. Also haben wir beide eingeführt und dachten, wir würden den Markt entscheiden lassen. ... unsere Zweideutigkeit unsere Kunden dazu brachte, sich zu fragen, wofür Intel eigentlich steht, der 486 oder der i860?

—  Andy Grove ,

Anwendungen

Drei i860 XP-50 CPUs auf einer Platine von Intels Paragon XP/S Supercomputer .

Der i860 wurde zunächst nur in wenigen Supercomputern wie dem Intel iPSC/860 eingesetzt . Später vermarktete Intel den i860 zeitweise als Workstation-Mikroprozessor, wo er unter anderem mit Mikroprozessoren auf Basis der MIPS- und SPARC- Architekturen konkurrierte . Die Oki Electric OKI Station 7300/30 und Stardent Vistra 800 Unix Workstations basierten auf einem 40 MHz i860 XR mit UNIX System V /i860. Die Hauppauge 4860 und Olivetti CP486 verfügten über einen Intel 80486 und einen i860 auf demselben Motherboard. Microsoft entwickelte ursprünglich Windows NT auf intern entwickelten i860XR-basierten Workstations (Codename Dazzle ), portierte NT jedoch später auf MIPS ( Microsoft Jazz ), Intel 80386 und andere Prozessoren. Einige behaupten, die NT-Bezeichnung sei ein Hinweis auf den Codenamen "N-Ten" des i860XR.

Der i860 wurde in der Workstation- Welt als Grafikbeschleuniger verwendet. Es wurde zum Beispiel in der NeXTdimension verwendet , wo es eine abgespeckte Version des Mach-Kernels mit einem kompletten PostScript- Stack ausführte . Der PostScript- Teil des Projekts wurde jedoch nie fertig gestellt, so dass er nur Farbpixel verschoben hat. In dieser Rolle funktionierte das i860-Design erheblich besser, da das Kernprogramm in den Cache geladen und vollständig "vorhersehbar" gemacht werden konnte, sodass die Compiler die richtige Reihenfolge erhalten konnten. Truevision produzierte ein i860-basiertes Beschleunigerboard, das für die Verwendung mit ihren Targa- und Vista-Framebuffer-Karten vorgesehen ist. Pixar produzierte eine benutzerdefinierte Version von RenderMan , die auf der Karte ausgeführt wurde und ungefähr viermal schneller als der 386-Host lief. Ein anderes Beispiel war SGI ‚s RealityEngine , die eine Reihe von i860XP Prozessoren in seinem Geometrie - Engine verwendet. Diese Art der Verwendung verschwand auch langsam, als mehr Allzweck-CPUs an die Leistung des i860 herankamen und Intel seinen Fokus auf Pentium- Prozessoren für Allzweck-Computing richtete .

Mercury Computer Systems verwendete den i860 in ihrem Multicomputer . Von 2 bis 360 Rechenknoten würden sich in einem leitungsvermittelten Fat-Tree- Netzwerk befinden, wobei jeder Knoten über einen lokalen Speicher verfügt, der von jedem anderen Knoten abgebildet werden könnte. Jeder Knoten in diesem heterogenen System könnte ein i860, ein PowerPC oder eine Gruppe von drei SHARC DSPs sein. Die gute Leistung des i860 wurde erzielt, indem den Kunden eine Bibliothek von Signalverarbeitungsfunktionen in Assemblersprache zur Verfügung gestellt wurde. Die Hardware verpackt bis zu 360 Rechenknoten in 9U des Regalfläche, so dass es für mobile Anwendungen wie airborne radar Verarbeitung macht.

In den frühen 1990er Jahren baute Stratus Technologies i860-basierte Server, die XA/R-Serie, auf denen ihr proprietäres VOS- Betriebssystem ausgeführt wurde.

Ebenfalls in den 1990er Jahren baute Alliant Computer Systems ihre i860-basierten FX/800- und FX/2800-Server und ersetzte die FX/80- und FX/8-Serien, die auf dem Motorola 68000 ISA basierten. Sowohl das Alliant- als auch das Mercury-Rechensystem waren bei der NASA/JPL für die SIR-C- Missionen stark im Einsatz.

Das US-Militär nutzte den i860 für zahlreiche Anwendungen in der Luft- und Raumfahrt und zur digitalen Signalverarbeitung als Coprozessor, wo er bis Ende der 1990er Jahre Verwendung fand.

Verweise

Externe Links