Guten Morgen an alle, Ich wollt mal fragen ob ich mit meinen überlegungen richtig liege: Und zwar: CISC: Ein Befehl muss durch mehrere Schritte verarbeitet werden. Es muss jedesmal gewartet werden, bis der Befehl komplett durch ist, um mit einem neuen anzufangen. Das ist ja auch das von Neumann Prinzip. Alle Befehle + Adressen werden in reihe in den Speicher gelegt und dann auch so ausgeführt. RISC: Es werden Befehle parallelausgeführt. Heisst, wenn Befehl_1 mit Schritt A fertig ist und ins Schritt B geht, wird Schritt A direkt von einem neuen Befehl ausgenutzt. Somit wird Zeit gespart. Ist das so korrekt ? :) Vielen dank!
Da gehen 30 Jahre alte technische Überlegungen und jede Menge Marketinggeblubber durcheinander. Wir sollten diese Begriffe aufgeben. Da finden wir nicht mal eine gemeinsame Definition.
Derneue schrieb: > Ist das so korrekt ? :) Nein. CISC = *C*omplex *I*nstruction *S*et *Computer RISC = *R*educed *I*nstruction *S*set *C*omputer Mit dem was du beschreibst hat das überhaupt nichts zu tun. Ganz simpel könnte man sagen: Bei einem RISC Rechner kann das Silizium weniger Befehle, die aber dafür sauschnell. Hintergrund der Sache ist, dass man vor RISC (in den Anfängen der Computerbauerei) dachte, man könne Computer schneller machen, indem man in die CPU immer komplexere Befehle einbaut, damit das darauf laufende Programm auf mächtige Grundbausteine zurückgreifen kann. Das war komplex, fehleranfällig und teuer. Bis sich dann jemand mal ansah, was bei durchschnittlichen Programmen tatsächlich auch benutzt wird. Man kam drauf, dass diese mächtigen Befehle so selten zum Einsatz kamen, dass es sich nicht lohnt diesen Aufwand zu treiben. Nimm die Befehle die oft vorkommen, schmeiss alles andere raus und mach dafür die sauschnell. In den seltenen Fällen, in denen tatsächlich mal so ein Eierleg-Wollmilchsau Befehl zum Einsatz kommen könnte, setzt man das dann aus diesen einfacheren Befehlen zusammen. Das ist in Summe immer noch schneller und vor allen Dingen viel viel einfacher in Silizium zu giessen. Und es öffnet das Tor um dann auch noch weitergehende Optimierungen einfacher realisieren zu können.
:
Bearbeitet durch User
Nein, glaub das ist falsch. CISC hat einfach einen größeren Befehlsumfang als RISC aber die Einteilung ist eigentlich egal. Bei Risc war am Anfang die Grundidee wenige gleichförmige Befehle zu haben die einfach in eine Pipeline gebracht werden könne. (So 1 Befehl/ Takt kommt) aber das können moderne CISC auch. MfG ich
Nein. Leider nicht. Zunächst hat die Frage nichts mit der "Von-Neumann-Architektur" zu tun. Ihr wesentliches Merkmal ist, dass Daten- und Programme in einem gemeinsamen Speicher, der über ein und den selben Adressbus adressiert wird, gespeichert sind. Was CISC und RISC betrifft ist das Unterscheidungsmerkmal, je nach Standpunkt, ein wenig komplexer zu beschreiben. Ich würde Dir zunächst empfehlen, die Wikipedia-Artikel, vor allem die englischen Artikel dazu zu lesen und dann wieder hier nachzufragen, falls noch Details unklar sind.
Ich hab mich auf dieses Bild bezogen: https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29#/media/File:Befehlspipeline.svg https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29 Desswegen dachte ich dass es so wäre wie ich schrieb. Aber beim RISC werden doch schon paar Befehle gleichzeitig ausgeführt? Sonst wèrde die Zeichnung keinen Sinn ergeben? lG
Derneue schrieb: > Ich hab mich auf dieses Bild bezogen: > https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29#/media/File:Befehlspipeline.svg > > https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29 Ja. Das ist Pipelining Mit CISC - RISC hat das erst mal überhaupt nichts zu tun. Bei CISC - RISC geht es um etwas komplett anderes. > Aber beim RISC werden doch schon paar Befehle gleichzeitig ausgeführt? Einen Z80 wird wohl kaum jemand als RISC Rechner bezeichnen. Der machte auch Pipelining. So wie die meisten CISC Cpus vor und nach ihm
Karl H. schrieb: > Derneue schrieb: >> Ich hab mich auf dieses Bild bezogen: >> > https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29#/media/File:Befehlspipeline.svg >> >> https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29 > > > Ja. Das ist Pipelining > > Mit CISC - RISC hat das erst mal überhaupt nichts zu tun. Bei CISC - > RISC geht es um etwas komplett anderes. Um eine Analogie zu benutzen. Du sagst gerade, der Unterschied zwischen einem Benziner-PKW und einem Diesel-PKW liegt darin, dass der eine Halogenscheinwerfer hat und der andere LED. Ja, mag sein, dass das so ist. Aber das ist nicht der wesentliche Unterschied zwischen einem Benziner und einem Diesel.
Derneue schrieb: > Ich hab mich auf dieses Bild bezogen: > https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29#/media/File:Befehlspipeline.svg > > https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29 > > Desswegen dachte ich dass es so wäre wie ich schrieb. > Aber beim RISC werden doch schon paar Befehle gleichzeitig ausgeführt? > Sonst wèrde die Zeichnung keinen Sinn ergeben? > > lG Das Thema Pipelining hat auch nichts mit der Frage CISC/RISC zu tun. Du wirst in dem ganzen Artikel diese Stichworte nicht finden. Anders herum: Pipelining lässt sich (und wird) bei CISC und bei RISC verwendet - jedenfalls gibt es keinen prinzipiellen Grund dagegen. Allerdings überschneiden sich die zeitliche Entwicklung von Pipelining und Cache einerseits und die Abkehr von CISC, so daß man den Eindruck haben könnte es gäbe einen kausalen Zusammenhang. Der Eindruck täuscht. Das sind zwei völlig verschiedene paar Schuhe.
Karl H. schrieb: > Einen Z80 wird wohl kaum jemand als RISC Rechner bezeichnen. Der machte > auch Pipelining. So wie die meisten CISC Cpus vor und nach ihm Da verwechselst du aber den Z80 mit dem Z8. W.S.
Karl H. schrieb: > Bei einem RISC Rechner kann das Silizium weniger Befehle, die aber dafür > sauschnell Nun ja der ARM1 hatte 1986 30 Befehle und war sicher RISC aber der Cortex hat heute hunderte Befehle. Und der erste AVR hatte schon 1994 mehr Befehle als ein 8051 der als CISC bezeichnet wird. Inzwischen hat der AVR auch über 100 Befehle, vom XMEGA gar nicht zu reden.
Derneue schrieb: > Ich hab mich auf dieses Bild bezogen: > https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29#/media/File:Befehlspipeline.svg > > https://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29 > > Desswegen dachte ich dass es so wäre wie ich schrieb. > Aber beim RISC werden doch schon paar Befehle gleichzeitig ausgeführt? > Sonst wèrde die Zeichnung keinen Sinn ergeben? > > lG Das hat aber nichts mit CISC/RISC zu tun. Pipelining versucht nur, die gesamte (Rechen-) Operation in deren einzelne Aktionen (Instruktion laden, Daten aus Speicher holen etc) aufzuspalten. Dadurch kann in jedem Takt quasi parallel gearbeitet werden, indem die nächste Instruktion schon geladen wird, wenn die davor noch am rechnen ist und so weiter. CISC und RISC beziehen sich wie die Namen sagen auf den Instruktionssatz, also das, was die CPUs können. Beispielsweise gibt es sehr einfache Instruktionen, wie "Addiere operanden 1 und 2" oder "lade 32Bit Variable aus Speicheradresse 0xabcd". Bei CISC gibt es auch sehr komplizierte, die z.B. ganze Zeichenketten verarbeiten. Dadurch steigt die Komplexität und die Fehleranfälligkeit. Insbesondere kann man diese Operationen auch aus einfachen "nachbauen". edit: meine Fresse, geht das schnell hier :D
:
Bearbeitet durch User
W.S. schrieb: > Karl H. schrieb: >> Einen Z80 wird wohl kaum jemand als RISC Rechner bezeichnen. Der machte >> auch Pipelining. So wie die meisten CISC Cpus vor und nach ihm > > Da verwechselst du aber den Z80 mit dem Z8. http://www.z80.info/z80arki.htm
1 | .... |
2 | The interesting thing about the Z80-CPU is that you can all ready see |
3 | the beginning to: what was about to become pipelined constructions. |
4 | .... |
5 | |
6 | Processor architecture: |
7 | |
8 | The Z80 CPU has a very interesting architecture. First of all it has |
9 | "fetch/execute overlapping", witch means that it's possible to get (fetch) |
10 | next instruction from memory while the first instruction are executed |
erste Ansätze von Pipeling. Noch sehr rudimentär, aber immerhin.
Derneue schrieb: > Ist das so korrekt ? Nö. http://www.bernd-leitenberger.de/risc.shtml Karl H. schrieb: > Ganz simpel könnte man sagen: > Bei einem RISC Rechner kann das Silizium weniger Befehle, die aber dafür > sauschnell. Niemand sagt, daß sie sauschnell wären. Auch der Transputer war angeblich RISC, aber lahm. Da schon der 6502 von manchen als RISC angesehen wird, war der INS8060 SC/MP erst recht RISC, aber ebenfalls saulangsam. Und erst der MC14500, glatte 16 Befehle und schnachlahm.
Lothar schrieb: > Karl H. schrieb: >> Bei einem RISC Rechner kann das Silizium weniger Befehle, die aber dafür >> sauschnell > > Nun ja der ARM1 hatte 1986 30 Befehle und war sicher RISC aber der > Cortex hat heute hunderte Befehle. > > Und der erste AVR hatte schon 1994 mehr Befehle als ein 8051 der als > CISC bezeichnet wird. Inzwischen hat der AVR auch über 100 Befehle, vom > XMEGA gar nicht zu reden. Aber der wesentliche Unterschied zwischen RISC/CISC ist nicht die Anzahl der Befehle sondern die Mächtigkeit, die Komplexität jedes einzelnen Befehls. Dein Argument ist insofern verständlich, als viele Leute (sorry K.H.B. :-)), die diese Entwicklung selbst erlebt haben, sagen das wesentliche Merkmal von RISC seien wenige einfache Befehle. Allerdings ist das im Kontext zu sehen. Als RISC aufkamen stimmte auch die Qualifizierung wenige Befehle. Das das nunmehr von der Zählung her nicht stimmt, ändert aber nichts daran, dass die einzelnen Befehle nach wie vor simpel im Vergleich zu CISC sind.
Lothar schrieb: > Karl H. schrieb: >> Bei einem RISC Rechner kann das Silizium weniger Befehle, die aber dafür >> sauschnell > > Nun ja der ARM1 hatte 1986 30 Befehle und war sicher RISC aber der > Cortex hat heute hunderte Befehle. > > Und der erste AVR hatte schon 1994 mehr Befehle als ein 8051 der als > CISC bezeichnet wird. Inzwischen hat der AVR auch über 100 Befehle, vom > XMEGA gar nicht zu reden. Aber der wesentliche Unterschied zwischen RISC/CISC ist nicht die Anzahl der Befehle sondern die Mächtigkeit, die Komplexität jedes einzelnen Befehls. Dein Argument ist insofern verständlich, als viele Leute (sorry K.H.B. :-)), die diese Entwicklung selbst erlebt haben, sagen das wesentliche Merkmal von RISC seien wenige einfache Befehle. Allerdings ist das im Kontext zu sehen. Als RISC aufkamen stimmte auch die Qualifizierung wenige Befehle. Das das nunmehr von der Zählung her nicht stimmt, ändert aber nichts daran, dass die einzelnen Befehle nach wie vor simpel im Vergleich zu CISC sind.
Also nochmal: Mit pipelining kann man also quasi parallel arbeiten. Und der Unterschied zwischen CISC und RISC ist der dass CISC sehr viele komplexe Befehle benutzt, und festgestellt wurde, dass viele der sehr komplexen Befehle nicht oft benutzt wurden. Somit wurde in RISC alles auf sehr rudimentäre triviale Befehle reduziert. Die komplexen nicht so oft benutzen werden im RISC dann durch einfache Bausteine zusammengebastelt. Richtig ? lG
Man muss auch beachten, dass diese Begriffe keine formale Definition haben. Es waren auch Marketing-Worte. Insofern wird sich immer ein Standpunkt finden lassen, der plausibel heutige RISC-Befehle in die Nähe von CISC rückt. Allerdings kann man mal spaßeshalber ein interessantes Experiment machen, um den Unterschied ein wenig deutlicher zu machen. Man versuche einmal, einen Abschnitt von etwa 30 Befehlen 6502-Code in AVR-Assembler nachzubilden. Mir ist erst neulich wieder, als ich mal auf meine 6502 Programming Reference Card geschaut habe, die zur Erinnerung an der Wand hängt, aufgefallen wie "orthogonal" der Befehlsatz war. Nahezu jeder Befehl liess sich auf jedes Quell- und Zielargument (Speicher, Register) anwenden. Das geht beim AVR nicht. Weitere analoge Unterschiede lassen sich finden. Insofern muss man ein wenig in die Geschichte dieser Begriffe hineingehen um den Unterschied zu verstehen.
Derneue schrieb: > Also nochmal: > > Mit pipelining kann man also quasi parallel arbeiten. > > Und der Unterschied zwischen CISC und RISC ist der dass CISC sehr viele > komplexe Befehle benutzt, und festgestellt wurde, dass viele der sehr > komplexen Befehle nicht oft benutzt wurden. Somit wurde in RISC alles > auf sehr rudimentäre triviale Befehle reduziert. Die komplexen nicht so > oft benutzen werden im RISC dann durch einfache Bausteine > zusammengebastelt. > > Richtig ? Ich denke, so kann man das stehen lassen ohne einen wesentlichen Fehler zu machen.
Derneue schrieb: > Also nochmal: > > Mit pipelining kann man also quasi parallel arbeiten. Nicht "quasi" sondern tatsächlich. > Und der Unterschied zwischen CISC und RISC ist der dass CISC sehr viele Vorsicht! Da hier im Thread die Verwendung von "viele" als Kritikpunkt genommen wurde muss man darauf hinweisen, dass die Anzahl der verschiedenen Befehle kein wesentliches Unterscheidungsmerkmal ist. > komplexe Befehle benutzt, und festgestellt wurde, dass viele der sehr > komplexen Befehle nicht oft benutzt wurden. Somit wurde in RISC alles > auf sehr rudimentäre triviale Befehle reduziert. Die komplexen nicht so > oft benutzen werden im RISC dann durch einfache Bausteine -> Befehle (wir reden ja nicht von Fischertechnik :-) ) > zusammengebastelt. > > Richtig ? > > lG Soweit ja.
Klaus schrieb: > Dein Argument ist insofern verständlich, als viele Leute (sorry K.H.B. > :-)), braucht kein sorry. Ist schon ok. > die diese Entwicklung selbst erlebt haben, sagen das wesentliche > Merkmal von RISC seien wenige einfache Befehle. OK. UNterlassungssünde meinerseits. Das wenige ist nicht so sehr wichtig. Das Hauptaugenmerk lag auf einfach (und 'orthogonal'). > Allerdings ist das im > Kontext zu sehen. Als RISC aufkamen stimmte auch die Qualifizierung > wenige Befehle. Das das nunmehr von der Zählung her nicht stimmt, > ändert aber nichts daran, dass die einzelnen Befehle nach wie vor simpel > im Vergleich zu CISC sind. Weil ichs weiter oben schon mal benutzt habe: Erinnert mich ein wenig an Benzin-Motor - Diesel-Motor. In den 60-er Jahren verband man mit Diesel: Einfach im Aufbau, kaum fehleranfällig, weil einfach: billig in der Herstellung, robust. Heutige Diesel stehen einem Benziner sehr wahrscheinlich in Punkto Komplexität in nichts mehr nach.
Karl H. schrieb: > Erinnert mich ein wenig an Benzin-Motor - Diesel-Motor. > In den 60-er Jahren verband man mit Diesel: Einfach im Aufbau, kaum > fehleranfällig, weil einfach: billig in der Herstellung, robust. > Heutige Diesel stehen einem Benziner sehr wahrscheinlich in Punkto > Komplexität in nichts mehr nach. Was mich wiederum an meine erste Fahrstunde (ich habe sehr spät den Führerschein gemacht, als ich aus einer U-Bahn-Bus-Grossstadt in die Pampa zog). Ich bin gerade dabei den Zündschlüssel zu drehen und die Kupplung kommen zu lassen, als mein Fahrlehrer sagt: "Einen Diesel kann man eigentlich gar nicht abwürgen". Wröghhhh! OK.
Die Unterscheidung RISC/CISC ist eh hinfällig, wenn ein Prozessor mit Microcode arbeitet. https://de.wikipedia.org/wiki/Mikrocode Der kann dann zwar eine RISC CPU haben, doch mittels Mikrocode trotzdem CISC-artige/komplexe Befehle ausführen (in mehreren Takten natürlich).
Einer der Gründe, warum RISC-Rechner "sauschnell" (zumindest einige) sind: Die Befehle sind alle gleich lang. Bei CISC-Rechnern ist das meist anders. Dort gibt es kürzere und längere Befehle. Da muss der CISC-Rechner erstmal nachschauen, was für ein Typ der jeweilige Befehl ist, um anschließend Operanden und auch noch weitere Parameter nachzuladen. Wenn jedoch alle Befehle gleich lang sind, z.B. 4 Bytes, kann die CPU die 4 Bytes "blind" laden, bevor es an die Verarbeitung geht.
Johnny B. schrieb: > Die Unterscheidung RISC/CISC ist eh hinfällig, wenn ein Prozessor mit > Microcode arbeitet. RISC/CISC bezieht sich üblicherweise auf die für den Programmierer sichtbare Architektur. Nicht auf Details der Implementierung. > Der kann dann zwar eine RISC CPU haben, Damit kategorisiert du aber nicht die CPU, sondern einen Teil des Cores einer CPU. Microcode ist keine neue Erfindung (spätestens 60er Jahre) und viele CPUs, die auf Basis von Microcode arbeiten, haben vergleichsweise einfache Cores. Der Core mancher kleiner VAXen dürfte sich dem Prinzip nach nicht allzu sehr von den Cores früher ARMs unterschieden haben. Das macht aber aus dieser VAX keine RISC und aus diesen ARMs kein CISC. Ebenso enthielten IBM frühe POWER Prozessoren (bis PowerPC 601) Microcode für einige komplexe Befehle. Das macht aus ihnen kein CISC.
Frank M. schrieb: > Wenn jedoch alle Befehle gleich lang sind, z.B. 4 Bytes, kann die CPU > die 4 Bytes "blind" laden, bevor es an die Verarbeitung geht. Das gewinnt in dem Mass an zusätzlicher Bedeutung, in dem man mehrere Befehle parallel dekodiert und ausführt. Bei extrem variabler Befehlslänge ist das deutlich aufwändiger. Ganz besonders wenn diese Längenerkennung eine iterative Komponente enthält (VAX, 68020). Allerdings ist das nicht ganz so strikt zu sehen, denn manche RISCs haben dann doch wieder variable Längen implementiert, wie etwa die Cortex M mit Thumb2 Befehlssatz. Manchmal ist das auch einfach nur Marketing, wie bei den als "variable length RISC" angepriesenen Coldfires, die eigentlich ganz normale CISC sind, nur eben gegenüber der übertriebenen 68020 stark reduziert wurden.
:
Bearbeitet durch User
Johnny B. schrieb: > Die Unterscheidung RISC/CISC ist eh hinfällig, wenn ein Prozessor mit > Microcode arbeitet. > https://de.wikipedia.org/wiki/Mikrocode Das ist so nicht richtig. Allerdings geht mein Einwand schon ein wenig in die Richtung "Erbsenzählerei". Der englische Wikipedia-Artikel ist da (wie so oft) wesentlich präziser (sogar, wenn gerade darin "multiple issues" am Anfang bemerkt werden). Die RISC/CISC Unterscheidung hat zunächst nichts mit der Frage Mikroprogrammierung/Festdrahtetes Steuerwerk zu tun. Mikrpprogrammierung war und ist zunächst nichts als ein Mittel den Ablauf von Befehlen zu spezifizieren. Man kann damit sowohl RISC als auch CISC Befehle beschreiben. Aber das ist wohl nicht Deine (Johnnys) Kernaussage. > Der kann dann zwar eine RISC CPU haben, doch mittels Mikrocode trotzdem > CISC-artige/komplexe Befehle ausführen (in mehreren Takten natürlich). Wenn ich oben sage, dass sei so nicht richtig dann beziehe ich mich auf die Frage ob es den Unterschied noch gibt. Da bei heutigen grossen Prozessoren (ich kenne keine Mikroprogrammierbaren Mikrocontroller, aber das mag eine Bildungslücke sein) der Mikrocode veränderbar ist, kann man sehr wohl auch komplexe Befehle beschreiben. Allerdings ändert das ja nichts an der Frage ob ein gegebener Befehl nun komplex (CISC) ist oder nicht (RISC).
Langer Rede, kurzer Sinn: Wie bei so vielem in der Informatik kann man die Begriffe nicht 100% absolut festmachen. Wie überall gibt es Grauzonen in denen die Definitionen versagen bzw. nicht eindeutig sind bzw. nicht klar ist, in welche Schublade ein konkretes Objekt zu schieben ist. Was bleibt ist die Grundidee, die sich aber im Laufe der Zeit aus guten Gründen verwässert hat.
W.S. schrieb: >> Einen Z80 wird wohl kaum jemand als RISC Rechner bezeichnen. Der machte >> auch Pipelining. So wie die meisten CISC Cpus vor und nach ihm > > Da verwechselst du aber den Z80 mit dem Z8. Selbst einfache CPUs wie Z80 oder 6502 hatten bereits eine rudimentäre Pipeline, denn der letzte Teil der Ausführungsphase einen Befehls überlappte sich oft mit dem Instruction Fetch des Folgebefehls. Beispiel: Bei beiden CPUs findet die Addition des "add immediate to accumulator" zu dem Zeitpunkt statt, zu dem der Folgebefehl geladen wird.
:
Bearbeitet durch User
Karl H. schrieb: > Derneue schrieb: >> Also nochmal: >> >> Mit pipelining kann man also quasi parallel arbeiten. >> >> Und der Unterschied zwischen CISC und RISC ist der dass CISC sehr viele >> komplexe Befehle benutzt, und festgestellt wurde, dass viele der sehr >> komplexen Befehle nicht oft benutzt wurden. Somit wurde in RISC alles >> auf sehr rudimentäre triviale Befehle reduziert. Die komplexen nicht so >> oft benutzen werden im RISC dann durch einfache Bausteine >> zusammengebastelt. >> >> Richtig ? > > Ich denke, so kann man das stehen lassen ohne einen wesentlichen Fehler > zu machen. PS: CISC: Befehle und Adressen stehen im gleichen Speicher. ->von Neumann Architektur RISC: Befehle und Adressen stehen getrennt in 2 verschiedene Speichern, somit ist RISC "schneller" da es befehl und adresse gleichzeitig laden kann. ->Havard Archtitektur Es geht nur ums Prinzip Richtig?
Wolfgang schrieb: > CISC: > Befehle und Adressen stehen im gleichen Speicher. ->von Neumann > Architektur > RISC: > Befehle und Adressen stehen getrennt in 2 verschiedene Speichern Blödsinn. Das eine ist von Neumann, das andere Harvard Architektur. Beide können jeweils mit RISC oder CISC gebaut werden.
Wolfgang schrieb: > PS: > CISC: > Befehle und Adressen stehen im gleichen Speicher. ->von Neumann > Architektur > RISC: > Befehle und Adressen stehen getrennt in 2 verschiedene Speichern, somit > ist RISC "schneller" da es befehl und adresse gleichzeitig laden kann. > ->Havard Archtitektur > > Es geht nur ums Prinzip > > Richtig? Nein. Das ist in einem Beitrag ganz oben (hüstel, von mir) schon einmal geschrieben worden. Die Frage CISC/RISC hat nichts (jedenfalls nicht kausal oder logisch) etwas mit Von-Neuman/Harvard-Architektur zu tun. Es gibt, ähnlich wie beim Pipelining eine gewisse zeitliche Parallelität - daher kann man auf diese Idee kommen. Aber sachlich gibt es absolut keinen Zusammenhang.
@ K.H.B. Ich glaube wir brauchen Dein Beispiel nochmal. Vielleicht diesmal mit Fahrrädern oder so. :-)
Wolfgang schrieb: > PS: > CISC: > Befehle und Adressen stehen im gleichen Speicher. ->von Neumann > Architektur > RISC: > Befehle und Adressen stehen getrennt in 2 verschiedene Speichern, somit > ist RISC "schneller" da es befehl und adresse gleichzeitig laden kann. > ->Havard Archtitektur > > Es geht nur ums Prinzip > > Richtig? Nö. Von-Neumann-Architektur heißt nach Lehrbuch nur: - räumliche Aufteilung in Steuerwerk/Rechenwerk/Speicherwerk/IO-Werk - Verwendung des Dualzahlensystem als Grundlage für Berechnungen - linear addressierter Speicher für sowohl Daten + Befehle (daher auch v.N-Flaschenhals) - Sequenzbefehle - Verzweigungsbefehle - Sprungbefehle Die Klassifikation CISC/RISC kommt nur aus der Hennessy/Patterson-Studie, in der halt festgestellt wurde, dass die Compiler die Anzahl von Befehlen der komplexen Steuerwerke (CISC) gar nicht implementieren. CISC/RISC ist also eine Klassifikation nach Befehlsarchitektur. RISC-Rechner waren die Konsequenz der Studie, indem viele und reichlich Register, dafür aber vergleichsweise wenige Befehle (OpCodes) implementiert wurden, was zu einfacheren Steuerwerken geführt hat. Die ARMs sind sicher das beste Beispiel einer Befehlsarchitektur, die mit Compilern fast besseren Code erzeugt, als handgeschriebener ASM-Code.
Falk S. schrieb: > Nö. Von-Neumann-Architektur heißt nach Lehrbuch nur: > - Verwendung des Dualzahlensystem als Grundlage für Berechnungen Nö. Von-Neumann geht auch dezimal => IBM 650, der erste in grosser Stückzahl verkaufte Computer.
A. K. schrieb: > Falk S. schrieb: >> Nö. Von-Neumann-Architektur heißt nach Lehrbuch nur: >> - Verwendung des Dualzahlensystem als Grundlage für Berechnungen > > Nö. Von-Neumann geht auch dezimal => IBM 650, der erste in grosser > Stückzahl verkaufte Computer. Deswegen hab ich ja auch geschrieben "nach Lehrbuch". :) Allerdings nehme ich auch an, dass obige Definition schon ganz gut die Gemeinsamkeiten von mehr als soundsoviel Prozent der existierenden Rechnerarchitekturen beschreibt.
Falk S. schrieb: > Deswegen hab ich ja auch geschrieben "nach Lehrbuch". :) Welches Lehrbuch? Ich will Deine Aussage nicht bestreiten. Sicher gibt es dieses Lehrbuch in dem das steht. Mich würde nur interessieren, welches das ist.
Klaus schrieb: > Falk S. schrieb: >> Deswegen hab ich ja auch geschrieben "nach Lehrbuch". :) > > Welches Lehrbuch? > Ich will Deine Aussage nicht bestreiten. Sicher gibt es dieses Lehrbuch > in dem das steht. Mich würde nur interessieren, welches das ist. Gute Frage, meine Definition stammt so von Prof. Rossak anno 2002 in der Info1-Veranstaltung. Verfügbar hier, Quellen sind auf der Titelseite angegeben (Schauer bzw. Rauch, Eder, Steinberger): https://caj.informatik.uni-jena.de/caj/file/view;jsessionid=4C8C972A677471539C2C38C8AF748D9B?id=87
Falk S. schrieb: > Gute Frage, meine Definition stammt so von Prof. Rossak anno 2002 ... Dankeschön.
MaWin schrieb: > INS8060 SC/MP erst recht RISC, aber ebenfalls saulangsam. Als RISC werden meint Prozessoren verstanden, die ihre Rechenoperationen zwischen Registern durchführen und davon getrennte Lade- und Speicheroperationen verwenden. So gesehen fallen daher alle Akkumulator-Architekturen raus. Es ist eben nicht die Anzahl der Befehle. IBM hatte bei der POWER Architektur RISC wohlweislich mit "Reduced Instruction Set Cycles" übersetzt, angesichts der grossen Anzahl Befehle.
MaWin schrieb: > Auch der Transputer war angeblich RISC, Definitiv nicht. Der hatte etliche immens komplexe Befehle.
A. K. schrieb: > So gesehen fallen daher alle Akkumulator-Architekturen raus. Mikrochip bezeichent seine PIC10, -12, -16, -18 als RISC.
PIC schrieb im Beitrag #4220252: >> So gesehen fallen daher alle Akkumulator-Architekturen raus. > Mikrochip bezeichent seine PIC10, -12, -16, -18 als RISC. Klar. Und Motorola tat das mit den Coldfires. Ist halt eine Frage, ob man diesen Begriff für die Klassifizierung von Architekturen verwendet, oder als Buzzword auf Powerpoint-Folien.
A. K. schrieb: >> Auch der Transputer war angeblich RISC, > > Definitiv nicht. Nun, der Hersteller sagt RISC. Ist natürlich auch Marketing. > Der hatte etliche immens komplexe Befehle. Nicht mal ein REPMSB (repeat move string byte) oder ähnlich, Blockumkopieraktionen waren EXTEM lahmarschig.
MaWin schrieb: > Nicht mal ein REPMSB (repeat move string byte) oder ähnlich, Blockmove gab es als "move", 2 Takte pro Byte. Beim T800 auch als 2D-Grafikblock.
:
Bearbeitet durch User
Was noch nicht angesprochen wurde: Ein IMO typisches Merkmal von RISCs ist die Load-Store-Architektur. D.h. Speicherzugriffe gibts nur mit speziellen Befehlen, "normale" Befehle arbeiten nur auf Registern. Das geht teilweise so weit, dass auch Call/Ret nicht mehr existieren und "von Hand" nachgebaut werden müssen. Dadurch fallen auch die übermässigen Befehlsvariationen weg (ala 68020-Kuddelmuddel, das dem 68040 das Genick gebrochen hat) und man bekommt ein einheitliches Opcodeformat. Gibt eigentlich nur wenige traditionelle RISCs, die unterschiedliche Befehlslänge haben (AFAIR 29K, da gabs einen Jump mit 2*32Bit). Diese Einheitlichkeit hat dann natürlich auch wieder Vorteile für die einfache und schnelle HW-Dekodierung und das erlaubt dann auch wieder einfacheres Pipelining.
Einheitlich Befehlslänge erlaubt z.B. exakt vorhersagen zu können, wo ein Befehl anfängt. Anders als bei den Byte-Streams eines typischen x86 Befehls. Ist er das schon, oder hatte er noch 5 Perfixe? Damit wird natürlich auch wirkungsvoll Creative Programmierung unterdrückt, wenn dann ein und der selbe Bytestring je nach Einsprungadresse unterschiedlichstes macht. Ich erinnere mich da an meinen ersten Computer. Zx81, und es wollte mir nicht gelingen ein Firmware-Listing in Buchform mit dem in Einklang zu bringen, was ich aus dem ROM lesen konnte. Und das war auch sinnvoll. Und es war "mehrfachverwendbar". PIC (die mit dem W-Reg) ist vielleicht wirklich RISC, erinnert mich aber eher an ein Vorlesung Microprogrammierung auf PDP11. Adresse in ein Register schreiben und gelesenes Byte aus einem anderen Register lesen klingt stark nach "unterhalb Assembler". Und damit haben das Kriterium "separate Lade-/Speicher-Befehle" erfüllt.
> PIC (die mit dem W-Reg) ist vielleicht wirklich RISC,
Die Original-PICs von General Instruments Mitte der 70er Jahre sind aber
deutlich vor der RISC-Definition von Patterson rausgekommen. RISC ist
nicht nur einfach "wenig Befehle und keiner taugt was" ;)
RISC in Sinne von "Lade/Speicher sind die einzigen Speicherzugriffe". Und bloß weil dafür noch keiner einen Namen gefunden hat muß es ja nicht "nicht-existent" sein. Zudem finde ich die Dinger eher "mikroprogrammier".
> RISC in Sinne von "Lade/Speicher sind die einzigen Speicherzugriffe". Aber dann hat "echtes" RISC noch dazu viele gleichberechtigte Register, und das kann man vom PIC (und vom 8051) mit dem einen Akku nicht wirklich behaupten ;)
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.