Forum: Mikrocontroller und Digitale Elektronik Die registerlose Prozessorarchitektur


von Rene (Gast)


Lesenswert?

Wo kann ich dazu Informationen finden? Leider spuckt selbst google 
nichts dazu aus ...

von AVR und mehr (Gast)


Lesenswert?

Da gibt es nicht viel zu erklären - registerlos heißt eben registerlos. 
:-)
Insofern reicht das, was Google aussuckt - z.B.auch
https://www.mikrocontroller.net/articles/Prozessor - völlig aus.

Gruß

von Wolfram (Gast)


Lesenswert?

Möglicherweise meinst du eine Architektur mit Registerbaenken.
Such mal nach MMIX oder C167

von Rene (Gast)


Lesenswert?

okay "viel zu erzählen gibts da nicht" ist jetzt nicht das was ich hören 
wollte, brauch Information wie der nun genau arbeitet, ... bzw Infos wo 
ich nachlesen kann.

von ????? (Gast)


Lesenswert?

Das einzige zum lesen was nicht gleich zu bezahlen wäre ist z.B.:
http://citeseer.ist.psu.edu/348396.html
Im Grunde genommen werden die Register einfach durch Speicher=Cache 
ersetzt und es wird direkt auf'm Stack gearbeitet.
Ob das soooo großen Sinn macht steht natürlich auf'm anderen Blatt ...

von Olaf (Gast)


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

von Sven DerSchreckliche (Gast)


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?

von Rene (Gast)


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 ;-)

von Olaf (Gast)


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

von Eckhard (Gast)


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

von Olaf (Gast)


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

von Eckhard (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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

von arc (Gast)


Lesenswert?

Es gibt auch noch neuere registerlose Prozessordesigns

P. Suresh, PERL: A Registerless processor.
http://people.csa.iisc.ernet.in/~iriss/IITK/suresh_iitk.paper.pdf

Für andere registerlose bzw. stack-basierte
http://www.ultratechnology.com/chips.htm
http://www.jopdesign.com/docu.jsp

von arc (Gast)


Lesenswert?

Vllt. sollte man den Links (http://citeseer.ist.psu.edu/348396.html) 
doch folgen...

von Lupin (Gast)


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.

von alfsch (Gast)


Lesenswert?

es gibt sogar ne sprache dafür,
guck mal nach: forth
bzw. forth prozessor

von Mark S. (struberg)


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...

von Mark S. (struberg)


Lesenswert?

hab nochmal in meinen alten Uni scripten nachgesehen - R2000 in asm =)
Die MIPS haben doch Registers, es gab nur bei den späteren Modellen 
einige 'Optimierungen'

von Philipp (Gast)


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.

von Rene (Gast)


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....

von Rene (Gast)


Lesenswert?

okay meine Recherchen werden nun Richtung Fleetzero-Chip von Sun 
ausgeweitet.
Vielleicht kennt sich ja jmd damit aus !?

von Olaf (Gast)


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

von Stefan Helmert (Gast)


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 + *

von Axel Heider (Gast)


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

von Philipp (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.