Forum: Mikrocontroller und Digitale Elektronik CISC / RISC - hab ich es verstanden?


von Derneue (Gast)


Lesenswert?

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!

von Noch einer (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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
von ich (Gast)


Lesenswert?

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

von Klaus (Gast)


Lesenswert?

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.

von Derneue (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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.

von W.S. (Gast)


Lesenswert?

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.

von Lothar (Gast)


Lesenswert?

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.

von Jan K. (jan_k776)


Lesenswert?

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
von Karl H. (kbuchegg)


Lesenswert?

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.

von MaWin (Gast)


Lesenswert?

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.

von Karl (Gast)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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.

von Derneue (Gast)


Lesenswert?

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

von Klaus (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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.

von Johnny B. (johnnyb)


Lesenswert?

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

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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
von Klaus (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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
von Wolfgang (Gast)


Lesenswert?

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?

von MaWin (Gast)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

@ K.H.B.

Ich glaube wir brauchen Dein Beispiel nochmal. Vielleicht diesmal mit 
Fahrrädern oder so. :-)

von Falk S. (db8fs)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Falk S. (db8fs)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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.

von Falk S. (db8fs)


Lesenswert?

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

von Klaus (Gast)


Lesenswert?

Falk S. schrieb:

> Gute Frage, meine Definition stammt so von Prof. Rossak anno 2002 ...

Dankeschön.

von (prx) A. K. (prx)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

MaWin schrieb:
> Auch der Transputer war angeblich RISC,

Definitiv nicht. Der hatte etliche immens komplexe Befehle.

von PIC (Gast)


Lesenswert?

A. K. schrieb:
> So gesehen fallen daher alle Akkumulator-Architekturen raus.
Mikrochip bezeichent seine PIC10, -12, -16, -18 als RISC.

von (prx) A. K. (prx)


Lesenswert?

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.

von MaWin (Gast)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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
von Georg A. (georga)


Lesenswert?

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.

von Bastler (Gast)


Lesenswert?

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.

von Georg A. (georga)


Lesenswert?

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

von Bastler (Gast)


Lesenswert?

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

von Georg A. (georga)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.