AMD Am29000

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
AMD 29000 Microprocessor
AMD 29030.

Der AMD 29000, oft einfach auch 29k, war eine populäre Familie von 32-bit-RISC-Mikroprozessoren entwickelt von AMD. Die AMD 29000 waren zeitweise die populärsten RISC-Chips auf dem Markt, vielgenutzt in Laserdruckern von vielen Herstellern. Ende 1995 verwarf AMD die Entwicklung des 29k, weil das Entwicklungsteam zur Unterstützung der PC-Sparte versetzt wurde. Der Rest von AMDs Embedded-Geschäft wurde neuausgerichtet zur Embedded-186-Familie der 80186-Abkömmlinge. Der Großteil von AMDs Ressourcen wurde auf das Hochleistungs, x86-Klon-Geschäft konzentriert, das viele Ideen und Teile des letzten 29k nutzte, um den AMD K5 zu produzieren.

Der 29k entwickelte sich vom Berkeley RISC-Design, das auch Sun SPARC und Intel i960 beeinflusste. Ein "Trick" in allen von der Berkeley abgeleiteten Chip-Designs ist das Konzept des Registerfensters, einer Technik, die benutzt wird, um Prozeduraufrufe signifikant zu beschleunigen. Die Grundidee ist das Benutzen einer großen Zahl an Prozessorregistern als Stack, die während einem Aufruf lokale Daten in einen Registersatz lädt und diese als "dead" markiert, wenn die Prozedur beendet ist. Werte, die von den Routinen zurückgegeben werden, werden in der "global page" platziert, den oberen acht Registern in SPARC. Es ist interessant anzumerken, dass das konkurrierende frühe RISC-Design der Stanford University, Stanford MIPS, auch dieses Konzept beachtete, jedoch wurde schließlich entschieden, dass fortgeschrittenere Compiler ein effizienteres Nutzen von Allzweckregistern ermöglichen, als festverdrahtete Registerfenster, was sich über die Jahre als richtig erwies.

Im ursprünglichen Design von SPARC und i960 gab es eine feste Fenstergröße. Eine Routine, die nur eine lokale Variable nutzte, würde gleich acht Register des Prozessors nutzen und damit diese kostbare Ressource verschwenden. Hier ist es aber so, dass der 29k sich von früheren Designs insofern unterscheidet, als dass er eine variable Fenstergröße nutzt. In diesem Beispiel würden nur zwei Register genutzt, einer für die Variable, der andere für die Rückgabeadresse. Auch fügte der 29k mehr Register, einschließlich der 128-Bit-Register für den Prozedur-Stack, als auch 64 mehr für globalen Zugang. Zum Vergleich: Der SPARC hatte insgesamt 128 Register. Diese Änderungen, kombiniert mit einem halbwegs "schlauen" Compiler, führten zum Besten aus beiden Welten an Leistung/Hochleistung für Prozeduraufrufe, während man immer noch genug Register für andere Arbeiten zur Verfügung hat.

AMD 29040

Ein weiterer, nicht so außergewöhnlicher Unterschied zu SPARC besteht darin, dass der 29k keine Zustandscode-Register enthielt. Jedes Register konnte für Zustandscodes genutzt werden, was die Zustandssicherung vereinfacht, jedoch zum Preis von eventuellen Code-Störungen geschieht. Ein Instruktions-Puffer wurde genutzt, der bis zu 16 Instruktionen enthalten konnte, und dazu da war, um die Leistung bei Abzweigungen zu erhöhen—der 29k enthielt keine Abzweigungsvorhersage, sodass eine Verzögerung entstand, sobald ein Abzweig eingeschlagen wurde (auch war der 29k ursprünglich nicht superskalar, sodass er nicht, wie in anderen Designs üblich, "beide Seiten" ausführen konnte). Der Puffer verminderte dies, indem er vier Instruktionen der "anderen Seite" des Abzweigs speichern konnte, der sofort laufen konnte, während der Puffer mit Instruktionen aus dem Speicher wiederaufgefüllt wird.

Der erste 29k erschien 1988, mit eingebauter MMU, wobei die Fließkommazahlunterstützung erst mit dem 29027 kam. (FPU). Der 29005 war eine abgespeckte Version. Die Serie wurde aufgewertet mit dem 29030 und dem 29035, die einen 8KB bzw. 4KB großen Instruktionscache enthielten. Ein anderes Update integrierte die FPU direkt auf dem Die und fügte 4KB Datencache hinzu, woraus der 29040 entstand.

Die letzte Allzweck-Version war der 29050, welcher auch bessere Fließkommaleistung als ältere Versionen besaß.

Einige Teile des 29050-Designs wurden als Basis für den K5, einen x86-kompatiblen Prozessor, genutzt. Die FPU des 29k wurde hierfür unverändert genutzt, während der Rest des Kerndesigns zusammen mit komplexem Microcode genutzt wurde, um Instruktionen für die x86-Architektur zur Laufzeit in 29k-Instruktionen zu konvertieren.

[Bearbeiten] Siehe auch...

[Bearbeiten] Weblinks

 Commons: AMD Am29000 – Sammlung von Bildern, Videos und Audiodateien
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Mitmachen
Drucken/exportieren
Werkzeuge
In anderen Sprachen