Die registerlose Prozessorarchitektur

Gast #443892
Lesenswert?

Tja nun, vielleicht wollte dein Lehrer einfach mal testen wie gut die in 
der Benutzung von Bibliotheken bist? Nicht alle Probleme bekommt man 
geloest indem man mit dem Arsch vorm Rechner haengt und andere Leute 
bittet einem alles abzunehmen. .-)

In der Praxis wird soetwas heute wohl nicht mehr vorkommen weil ihre 
Nachteile zu offensichtlich sind. Aber diese alten Dinger die man 
Buecher nennt koennten einem dazu schon weiterhelfen.

Wenn ich dir noch einen kleinen Tip geben darf, ich glaube Texas hat 
soetwas vor 20Jahren noch gebaut. Aber die Entwicklung geht ja eher den 
umgekehrten Weg, also Ram in den Prozessor zu verlagern und nicht die 
Register nach aussen.

Olaf
Gast #443901
Lesenswert?

@Olaf
Was hackst Du denn jetzt auf dem armen Kerle rum?
Er hat gefragt, wo er Infos bekommen kann. Sooo schwer ihm da einfach 
nur eine Antwort zu geben ohne ihn deshalb gleich zum Deppen zu 
erklären?
Gast #443949
Lesenswert?

@Olaf: Es geht hier jetzt nicht um irgend ne Aufgabe von nem Lehrer, 
zumal ich glaube ich mitlerweile seit 7 Jahren keinen Lehrer mehr hatte 
(Sieht man vom Tanzunterricht vor der Hochzeit ab). Ich wollte mich 
lediglich darüber informieren, warum diese Architektur sich nie richtig 
durchsetzen konnte und vor allem was die Vorteile davon sein sollten. 
(Irgendwer muss sich ja mal was dabei gedacht haben). Vielen Dank an die 
5Fragezeichen ...

@Sven DS: Ist halt schade das neugier von einigen als Dummheit 
dargestellt wird, aber da steh ich drüber ;-)
Gast #444049
Lesenswert?


> (Sieht man vom Tanzunterricht vor der Hochzeit ab). Ich wollte mich
> lediglich darüber informieren, warum diese Architektur sich nie richtig
> durchsetzen konnte und vor allem was die Vorteile davon sein sollten.

Ueberleg doch mal warum man heute Ram im Prozessor einlagert. (Und es 
dort Cache nennt) Und dann ueberleg nochmal was passiert wenn man 
Register ins externe Ram auslagert.

Olaf
Gast #444061
Lesenswert?

Hallo,

der Vorteil ist ziemlich klar. Schnelle Taskwechsel in 
Multitaskingsystemen, es müssen keine Ragister gesichert werden. 
Meistens liegen die Register in einem Ram bereich und es wird nur ein 
Poiner geändert. Der TMS9900 war so ein vertreter. Warum sich sowas 
nicht durgesetzt hat sondern Intel Prozessoren sollte hinlänglich 
bekannt sein. Manchmal geht es halt nicht um Technologiern, sonderen 
darum zur rechten Zeit am rechten Ort zu sen.

Eckhard
Gast #444077
Lesenswert?


> Der TMS9900 war so ein vertreter. Warum sich sowas
> nicht durgesetzt hat sondern Intel Prozessoren sollte hinlänglich
> bekannt sein. Manchmal geht es halt nicht um Technologiern, sonderen
> darum zur rechten Zeit am rechten Ort zu sen.

No Baby. :-) Damit hat es diesmal nichts zutun.
Das Problem ist einfach das externes Ram schnarchlahm ist.

Ausserdem koennte man Registerbaenke auch anders umschalten. (vgl. Z80)

So...jetzt koennten wir noch darueber debatieren zu welche Kategorie ein 
6502 gehoert. (wegen der Zeropage)

Ausserdem war TI damals sehr teuer. Ich hatte einen TI99/4A da hat 
allein die Erweiterungsbox die man brauchte um daran spaeter noch eine 
Floppy anzuschliessen mehrere kDM gekostet.

Dagegen habe ich fuer meinen zweiten Rechner (ZX Spektrum) ein 
Floppylaufwerk schon fuer 999DM bekommen. Und zwar mit Controller!
Also fast geschenkt. :-)

Olaf
Gast #444086
Lesenswert?

Hallo,

ist ja n netter Ton schnuckel.
Als der TMS9900 gebaut wurde war RAM so schnell das Register auch nicht 
schneller waren. Würde jetzt gerne mal wissen wie Du den Akku des 6502 
ins Ram auslagerst. Sicherlich war die Idee mit dem Indexregister dort 
angelehnt.
TIs Preispolitik hat mit der Technologie eher wenig zu tun außerdem war 
der TMS9900 ein 16 Bit Prozessor, die waren halt teurer als 8 Bitter. 
Bei den Transputern wurde ein ähnliches Konzept übernommen. Hier gab es 
Reigisterbänke im lokalen Speicher.

Eckhard
Persönliche Seite #444097
Lesenswert?

Der Preis von Homecomputersystemen reflektiert ganz sicher die 
Erfolgsgeheimnisse mancher Microcomputerarchitekturen, weil das ja klar 
ist.

Der TMS9900* kam nur zu früh, nämlich bereits 1976 auf den Markt, und 
der war damals noch nicht reif für eine 16-Bit-Architektur.

1976 war das Jahr des Apple-Computers, um mal die zeitlichen 
Zusammenhänge zu zeigen.

Und das Argument mit "schnarchlangsamen RAM" (auch externem)  ist bei 
Microcontrollern schlichtweg irrelevant bis falsch, denn bei denen ist 
üblicherweise das Flash-ROM geschwindigkeitslimitierend. SRAM (auch 
externes) ist schneller als jedes Flash-ROM.





*) http://en.wikipedia.org/wiki/Texas_Instruments_TMS9900
Gast #444151
Lesenswert?

Registerlose "CPUs" benutzt man heute doch auch bei softcores - also 
stack basierte CPUs die auf einen Interpreter aufsetzen, oder?

Ich hab zumindest sowas mal für eine "normale" CPU entwickelt und finde 
es sehr angenehm das ich anstatt meiner mickrigen 4x 8 bit und 2x 16 bit 
register nun nur noch durch RAM limitiert bin. Die Geschwindigkeit solch 
eines Interpreters steht natürlich auf einem anderen Blatt geschrieben.
#444443
Lesenswert?

es gibt auch noch mehrere 'registerlose' die sensationelle 
Geschwindigkeit hatten:

von der alten Riege:

Inmos T200, T400, T800 & T9000 Serie (zb T414, T805): hatten 4kByte RAM 
die direkt in der CPU lagen und eine 3-stufigen 32 bit Hardware Stack 
für Arithmetik, aber KEINE Register!


Irgendwie könnte man uu auch sämtliche SPARC und MIPS Prozessoren als 
'registerlos' im Sinne eines microcodes auffassen. Diese haben zwar 
Registerbefehle, aber eigentlich handelt es sich dabei um reine 
Offsetwerte in einem einige kByte großen internen Speicherbereich 
(Registerfile beim SPARC, bzw TLB beim MIPS) der je nach belieben 
umgeschaltet werden kann. Das spart pushs und pops beim Taskwechsel...
Gast #444545
Lesenswert?

> Ueberleg doch mal warum man heute Ram im Prozessor einlagert. (Und
> es dort Cache nennt) Und dann ueberleg nochmal was passiert wenn
> man Register ins externe Ram auslagert.

Und dann überleg Du derweil, wieviel Aufwand getrieben wird, um für 
jeden Fall die richtigen Seiten im Cache zu haben und für eine 
breitbandige RAM-Anbindung, und daß ein Großteil der Wärmeentwicklung in 
heutigen CPUs direkt oder indirekt mit dem Datentransfer zusammenhängt.

Und daß die aussichtsreichste Lösung dieses Problems ist, die Daten dort 
zu verarbeiten, wo sie sind: im RAM. Und das ist nur mit registerlosen 
Stackmaschinen realistisch: jedem RAM-Block seine eigene kleine 
Forthmaschine; das gibt einen minimalen Hardwareoverhead und die 
Geschwindigkeitsnachteile der Stackmaschine machst Du durch die 
unerhörte Parallelität wett, die man bei klassischen Architekturen durch 
die Bandbreite der Speicheranbindung so gar nicht nutzen könnte.

So ist manchmal die Vergangenheit wieder die Zukunft. Und wenn man 
vorher zu laut gelästert und andere »Baby« genannt hat, steht man leicht 
sehr peinlich da. Aber damit muß man dann leben, wenn man gerne 
überheblich auftritt.
Gast #445739
Lesenswert?

Vielen Dank erstmal für die Empfehlungen mit den Transputern und den 
VMs. Hat jmd zufällig ne Quelle wo ich ne "reale Architektur" abgebildet 
hab. Am besten gern als Zeichnung mit Erklärung der einzelnen 
Bestandteile....
Gast #446369
Lesenswert?

> Und dann überleg Du derweil, wieviel Aufwand getrieben wird, um für
> jeden Fall die richtigen Seiten im Cache zu haben und für eine
> breitbandige RAM-Anbindung, und daß ein Großteil der Wärmeentwicklung in
> heutigen CPUs direkt oder indirekt mit dem Datentransfer zusammenhängt.

> Und daß die aussichtsreichste Lösung dieses Problems ist, die Daten dort
> zu verarbeiten, wo sie sind: im RAM. Und das ist nur mit registerlosen
> Stackmaschinen realistisch: jedem RAM-Block seine eigene kleine
> Forthmaschine; das gibt einen minimalen Hardwareoverhead und die
> Geschwindigkeitsnachteile der Stackmaschine machst Du durch die

Also das halte ich fuer ziemlichen Unsinn. Unter Verarbeitung von Daten 
wuerde ich im einfachsten Falle z.B eine Addition oder Multiplikation 
verstehen. Das willst du in jedem Ram einbauen? Das bedeutet ja nicht 
anderes als das du in dein Ram eine komplette CPU einbauen willst. Aber 
externe Register und externe CPU sind dann wieder CPU mit internen 
Register. :-)

Und wie willst du bitte dem Ram sagen welches seiner vielen Zellen er 
nun addieren soll und welche nicht und wo er das Ergebnis ablegen soll? 
Durch einen schnarchlangsamen externen Speicherzugriff deiner CPU ohne 
Register?

Olaf
Gast #446578
Lesenswert?

Hallo,

wenn jemand wissen will wie so eine CPU arbeitet:
Es gibt load- und store-Befehle (PUSH und POP) mit denen daten zwischen 
RAM und Stack ausgetauscht werden und wenn man addiert, subtrahiert... 
werden immer die auf dem Stack liegenden Operanden verwendet und 
anschließend durch das ergebnis ersetzt.
Beispiel:
Stack vorher: 5;3;1;4
dann Addition
Stack nachher: 5,3,5
Da ist ideal geeignet um komplizierte mathematische Formeln zu rechnen:
z.B. (a+b)*(c+d)
Programm: a b + c d + *
Gast #446708
Lesenswert?

Hi,

ist die Java VM nicht auch eine registerlose Maschine? Meine zumindest, 
mich daran zu erinnern, das der Bytecode auf einer Stackmaschine 
ausgeführt wird.

So abwegig oder veraltet ist das Konzept also nicht.

Axel
Gast #447131
Lesenswert?

> Also das halte ich fuer ziemlichen Unsinn. Unter Verarbeitung von Daten
> wuerde ich im einfachsten Falle z.B eine Addition oder Multiplikation
> verstehen. Das willst du in jedem Ram einbauen?

Viel, viel mehr. Eine komplette, universelle Stackmaschine, die alles 
rechnen kann. Ein Großteil rechenintensiver Operationen kann parallel 
erfolgen und dabei jeweils hauptsächlich auf lokal begrenzte 
Speicherbereiche zugreifen: Videokompression, Simulation, Rendering, 
Bildfilter etc. Aber wenn das Zeug erst in die CPU muß, dort kurz 
berechnet und zurück ins RAM, dann nützt die beste CPU nichts.

Wie eine Produktionsanlage, die nicht an den Rohstoffen gebaut wurde. 
Man baut immer breitere Straßen dahin (Busbandbreite), optimiert das 
Lager am Standort (Chachekaskade), aber wird niemals so effektiv wie 
eine Verarbeitung an Ort und Stelle.

> Das bedeutet ja nicht anderes als das du in dein Ram eine
> komplette CPU einbauen willst.

So ist es!

> Aber externe Register und externe CPU sind dann wieder CPU
> mit internen Register. :-)

Damit das überhaupt realistisch ist, müssen die lokalen CPUs richtig 
klein sein. Vergleiche mal die Transistorenanzahl einer typischen 
Register-CPU, und sei es ein kleiner Controller (ohne Cache oder RAM 
gerechnet natürlich) mit einer kompakten Forthmaschine. Keine weiteren 
Fragen.

> Und wie willst du bitte dem Ram sagen welches seiner vielen
> Zellen er nun addieren soll und welche nicht und wo er das
> Ergebnis ablegen soll?

Eine zentrale CPU schiebt ein passendes Programm in die RAM-Blöcke und 
kümmert sich um »Managementaufgaben«, bis das Ergebnis da ist.

> Durch einen schnarchlangsamen externen Speicherzugriff deiner
> CPU ohne Register?

Das Programm ist ja Größenordnungen kleiner als die zu verarbeitenden 
Daten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren