Wo kann ich dazu Informationen finden? Leider spuckt selbst google nichts dazu aus ...
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ß
Möglicherweise meinst du eine Architektur mit Registerbaenken. Such mal nach MMIX oder C167
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.
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 ...
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
@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?
@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 ;-)
> (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
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
> 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
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
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
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
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.
es gibt sogar ne sprache dafür, guck mal nach: forth bzw. forth prozessor
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...
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'
> 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.
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....
okay meine Recherchen werden nun Richtung Fleetzero-Chip von Sun ausgeweitet. Vielleicht kennt sich ja jmd damit aus !?
> 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
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 + *
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
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.