RISC vs. CISC

Turing

Admiral Special
Mitglied seit
11.11.2001
Beiträge
1.007
Renomée
1
Da die Suchfunktion keinen Thread zu diesem Thema findet, will ich doch hier mal einen neuen eröffnen.

Warum besitzen eigentlich fast alle heutigen Desktop Prozessoren (x86) eine CISC-Architektur?

Liegt das nur daran das alle x86 abwärtskompatibel sein sollen oder gibt es ernsthafta andere gründe die dafür sprechen?

Waren CISC-Architekturen früher nur deshalb interessanter, weil viel mit Assembler programmiert wurde und der Programmierer es somit auf CISC-Rechnern wesentlich leichter hatte?

Moderne x86 CPUs wie der K7 oder die Pentium Pro's arbeiten doch Intern wie eine RISC CPU. Die Microprogramme übersetzen dann alle CISC Befehle in RISC Befehle.
Heisst das dann auf dem Chip sind nur noch wenige Befehle 'fest Verdratet' ?

Ist der Vorteil von RISC-Rechnern eher das die Befehle schneller ausgeführt werden, da es keine Mikroprogramme gibt oder die Einsparung der DIE-Fläche die die Mikroprogramme benötigen würden?

Spart eine RISC-Recher überhaupt DIE-Fläche? Der braucht doch eigentlich mehr Register um die ganzen Zwischenergebnisse komplexer Befehle speichern zu können ?
 
eine gute frage! :)

ich denke mal abwärtskompatibilität ist einer der größten gründe, andererseits natürlich auch wieder ein hemmschuh, wenns darum geht, dass unsere heutigen prozzies theopraktisch auch unter dos funktionieren.

das übersetzen von cisc zu risc, bzw den nachteil kann ich mir nur dadurch erklären, dass hier auch der vorteil von cisc prozessoren liegt. soweit ich weiß sind auf einem cisc prozessor weit mehr befehle fest verdrahtet als bei einem risc prozessor. ich habe mal gehört, dass die cisc architektur deswegen auch bei technischen anwendungen um einiges schneller sein soll.

apple setzt ja auf cisc architektur, bis auf die nicht vorhandene intel-kompatibilität hat das eigentlich nur vorteile. z.b. der apple ibook-chip hat irgendwas um die 500mhz, ist aber um welten schneller als ein 500mhz risc prozessor. trotzdem braucht er eben keinen aktiven lüfter, weil er ja viel weniger abwärme produziert.

vielleicht ist es ja das einsatzgebiet, dass apple auf cisc setzen lässt (hauptsächlich grafik- und videobearbeitung). wahrscheinlich liegen besonders hier die stärken. die schwächen würden mich allerdings auch mal interessieren.
 
die stärken sind ja die hohe Pro-megaherz-Leistung, der Nachteil eventuell höhere Takte zu erreichen.
 
Original geschrieben von DeBIGBOSS
Da die Suchfunktion keinen Thread zu diesem Thema findet, will ich doch hier mal einen neuen eröffnen.
Warum besitzen eigentlich fast alle heutigen Desktop Prozessoren (x86) eine CISC-Architektur?

Das Thema wird etwa alle 2 Jahre auf ziemlich hohem Niveau im ct-Magazin durchgekaut. Hast Du wirklich keinen Freund, der die Heise-ct-Archiv-DVD hat ?
Die neuste Ausgabe davon kommt ja demnächst ... .

Und außerdem:
ist Dir das Schicksal von DECs Alpha-CPU etwa völlig unbekannt?
ist Dir der Name Transmeta wirklich kein Begriff ? Und deren Situation ?
welchen Infostand hast Du zu den CPUs in den dicken Servern der alten HP - ich meine z.B. die Kisten der alten K-Klasse und Co ?
hast Du mal gekuckt woher SUNS E10K , E15K und Co ihre Power beziehen ?

MfG
"Klaus"
 
Original geschrieben von skyphab
eine gute frage! :)

...
apple setzt ja auf cisc architektur, bis auf die nicht vorhandene intel-kompatibilität hat das eigentlich nur vorteile. z.b. der apple ibook-chip hat irgendwas um die 500mhz, ist aber um welten schneller als ein 500mhz risc prozessor. trotzdem braucht er eben keinen aktiven lüfter, weil er ja viel weniger abwärme produziert.

vielleicht ist es ja das einsatzgebiet, dass apple auf cisc setzen lässt (hauptsächlich grafik- und videobearbeitung). wahrscheinlich liegen besonders hier die stärken. die schwächen würden mich allerdings auch mal interessieren.

Ich dachte APPLE setzt auf RISC????
 
Ich dachte eigentlich IMHO das wäre allgemeinbildung im Computersektor *kopfkratz .

Also Apple setzt auf Risk . Und die DOSen setzen leider immernoch auf Cisc.

x86 = Cisc (Intel, AMD, Via, ...)
Risc = IBM, Motorola, .....

Apple hat früher auf den 680x0 er Prozessor gesetzt, später als Motorola die 68k Reihe allerdings mit dem 060 er eingestellt hat ist Apple dann auf den Risc Zug aufgesprungen.

Und ja, Risc ist um längen schneller und kühler als Cisc, bei Risc zäht nicht der MHz Wahn wie in der DOSen Welt sondern Power (PowerPC eben :)

Ciao

Pega
 
Original geschrieben von Pega
Und ja, Risc ist um längen schneller und kühler als Cisc, bei Risc zäht nicht der MHz Wahn wie in der DOSen Welt sondern Power (PowerPC eben :)

Kann man das so sagen? Das ist halt zur Zeit mehr oder weniger zufällig so. Das hat doch mit RISC und CISC nichts zu tun oder?
Man es gibt doch auch schnelle und kühle CISC CPUS und Stromfressende RISC CPUs?
Der Mhz Wahn kommt doch auch nur daher, dass der unwissende Desktop-PC käufer glaubt MHZ wäre das entscheidende Maß für Geschwindigkeit und zur Zeit fast nur CISC-CPUs kauft.
 
Original geschrieben von DeBIGBOSS

Der Mhz Wahn kommt doch auch nur daher, dass der unwissende Desktop-PC käufer glaubt MHZ wäre das entscheidende Maß für Geschwindigkeit und zur Zeit fast nur CISC-CPUs kauft.

Würde ich nicht so sagen, schau dich mal hier nur auf p3dn um wieviele Leute ständig um und aufrüsten. Vapochill und co tun ihr übriges. Ich muß auch zugeben das ich mal dem Wahn verfallen war :) . Aber nach einigen CPUs später hab ich mir mal die Geldmittel für Computerzubehör gestrichen und nix mehr gekauft.
Ich würds selbst schon fast wie ne sucht bezeichnen, jepp sowas gibts wirklich ;)

Ciao

Pega
 
Der Streit CISC oder RISC zieht sich schon durch Generationen von Ingenieuren und Informatikern, Artikel zu diesem Thema gibt es dutzende und alleine im Handbuch der Informatik ist dem Thema ein eigenes Kapitel gewidmet von Prof. Dr. Arndt Bode.

Beide Prozessoren haben ihre Vor- und Nachteile, eine kurze Auflistung der Eigenschaften aus dem Handbuch der Informatik, S. 300 bis S. 310

Eigenschaften der CISC-Architektur:
  • umfangreiche Maschinenbefehlssätze mit einige hundert Befehlen, die zum Teil komplexe Aufgabe lösen (Komplexbefehle)
  • viele Adressierungsarten mit Register-, Speicher- und Keller-Zugriffsarten, Basis- und Index-Adressierung sowie Adreßrechnung in den Maschinenbefehlen
  • Familienkonzept bei aufwärtskompatiblen Prozessoren mit großen Leistungsunterschieden
  • Nutzung der Mikroprogrammierung als Implementierungstechnik für das Leitwerk
  • Trennung von Befehlssatz, Implementierung und Realisierung
  • Entwurf der Befehlssätze nach dem Kriterium kompakter (speicherplatzsparender) Programmierung, insbesondere durch uneinheitliches Befehlsformat (variable Befehlslänge)

Eigenschaften der RISC-Architektur:
  • elementare, kleine Maschinenbefehlssätze, deren Operandenhol- und Ausführungsphase in je einem Grundtakt des Prozessors ausführbar sind
  • Verzicht auf Adressierungsarten und Adreßrechnung als Teil der Operandenholphase (Adreßrechnung durch explizite Befehle)
  • Operanden in Register (Load-Store-Architektur) und große, universelle Registersätze
  • Nutzung der Fließbandtechnik zur Überlappung der Ausführung von Maschinenbefehlen
  • festverdrahtete Leitwerke
  • einheitliche, dadurch redundante Befehlsformate (schnelle Decodierung, höherer Speicheraufwand)
  • Kooperation von optimierendem Compiler und Prozessorarchitektur zur Leistungssteigerung

Wie man sieht, sind die Unterschiede doch sehr deutlich und ausfallend und nicht ausschließlich auf den Befehlssatz bezogen. Die hervorgehobene Eigenschaft der CISC-Architektur ist der Grund, warum bis heute jeder x86-kompatible Mikroprozessor nach außen wie ein CISC-Mikroprozessor erscheint.
Ausgangspunkt für die CISC-Architekturen war zunächst der Wunsch nach Kompatibilität von Rechnern, angefangen mit dem IBM/360, IBM/370 und Nachfolger, welches eine Familie mit Leistungsunterschieden bis zu mehr als dem Faktor 1000 darstellte. Intel entschied sich damals für die CISC-Architektur da sie primär billiger zu produzieren war und eine einfachere Umsetzung sowie Familienbildung bot.
Klassische RISC-Prozessoren waren die Mainframes und Riesenrechner der frühen 50er bis 80er Jahre und natürlich die neuzeitliche PowerPC Architektur. Wobei diese vom eigentlichen Prinzip der RISC-Architekture auch schon recht weit abgewichen ist, PowerPC Prozessoren sind maschinenbefehlskompatibel zueinandern und bilden somit eine eigene Familie von Prozessoren. Auch fest-verdrahtete Leitwerke musste komplexeren Szenarien weichen um die Kompatibilität zu wahren, mittlerweile gibt es auch Befehle die deutlich mehr als einen Grundtakt zur Ausführung benötigen.

Die Aussagen, dass RISC-Prozessoren bei gleichem Takt schneller sind als CISC-Prozessoren ist ebenfalls nur bedingt richtig. Es ist zwar korrekt, dass die Abarbeitung eines einzelnen Befehls bei RISC schneller geht als bei CISC, jedoch sind für die Abarbeitung eines Komplexbefehls der unter Umständen - bei hohem Auftreten - in Hardware umgesetzt werden kann oftmals dutzende RISC-Operationen notwendig. Dass ein PowerPC 750 (G3) oder ein PowerPC 74xx (G4) bei gleichem Takt einen Athlon oder Pentium 3/4 Prozessor in die Schranken weisen kann, ist nichts neues. Jedoch hat ein 1.25 GHz schneller G4 (schnellster derzeutiger PowerPC Mikroprozessor) gegen einen Athlon XP 2600+ oder einen Pentium 4 ab 2.6 GHz nicht mal mehr den Hauch einer Chance. Hoffnung macht der neue PowerPC 970 von IBM, der vom Serverprozessor Power4 abstammt und vermutlich in die PowerMacs der nächsten Generation wandern wird. Dieser hat eine deutlich bessere pro-Takt Leistung als der Motorola G4 bei deutlich geringerem Wärmeverbrauch und kann somit nicht nur höher getaktet werden (zwischen 1.8 und 2 GHz bei Einführung sind geplant, Mitte 2003) sondern ist auch bei gleichem Takt deutlich schneller als dieser. Wie er sich jedoch im harten Alltag schlagen wird ist erst bekannt, wenn der Prozessor auch verfügbar ist. Der Power4 lässt zumindest bei deutlich niedrigerem Takt (bis zu 2 GHz) die Konkurrenz deutlich hinter sich.

Hoffentlich hab ich jetzt nicht alle verwirrt mit den Ausführungen ;)
 
RISC = Reduced Instruction Set Computing
CISC = Complex Instruction Set Computing

Wir habe damals in der Ausbildung gelernt das auch x86 CPUs seit dem Intel Pentium auf der RISC Architektur basieren... Das stand glaube ich auch irgendwo mal auf einer Intel-Seite... Wenn ich das Finde hänge ich das noch mit dran...

Bei RISC werden die Instruktionen auf Addition und Subtraktion beschränkt (Auch mit Addition und Subtraktionen lassen sich Division und Multiplikation ausführen) Typisch Für RISC CPUs ist das sogenannte "Pipelining" d.h. das die Verarbeitung intern in mehrere Rechenpipelines aufgeteilt wird. (Intel nannte das ganze Superscalare Architektur) Im Prinzip arbeiten zwei "CPUs" in einer!
Der Pentium war eigentlich auch nichts weiter als 2 zusammengeschaltene 486er CPUs! Wobei jeder 486er eine Pipeline Bildete... Soviel zur Prozessor geschichte...

Trotzdem sind x86 CPUs glaube ich keine Reinen RISC CPUs sondern eher ein Mix aus Cisc und Risc, der letzte Reine CISC Prozessor war der Intel 486DX...

XD
 
Original geschrieben von X-Dimension
RISC = Reduced Instruction Set Computing
CISC = Complex Instruction Set Computing

Wir habe damals in der Ausbildung gelernt das auch x86 CPUs seit dem Intel Pentium auf der RISC Architektur basieren... Das stand glaube ich auch irgendwo mal auf einer Intel-Seite... Wenn ich das Finde hänge ich das noch mit dran...

Bei RISC werden die Instruktionen auf Addition und Subtraktion beschränkt (Auch mit Addition und Subtraktionen lassen sich Division und Multiplikation ausführen) Typisch Für RISC CPUs ist das sogenannte "Pipelining" d.h. das die Verarbeitung intern in mehrere Rechenpipelines aufgeteilt wird. (Intel nannte das ganze Superscalare Architektur) Im Prinzip arbeiten zwei "CPUs" in einer!
Der Pentium war eigentlich auch nichts weiter als 2 zusammengeschaltene 486er CPUs! Wobei jeder 486er eine Pipeline Bildete... Soviel zur Prozessor geschichte...

Trotzdem sind x86 CPUs glaube ich keine Reinen RISC CPUs sondern eher ein Mix aus Cisc und Risc, der letzte Reine CISC Prozessor war der Intel 486DX...

XD
Das ist eine sehr stark vereinfachte Darstellungsweise und auch nicht richtig, Pipelining hat nichts mit superskalarer Architektur zu tun, das sind zwei vollkommen unabhängige Eigenschaften eines Mikroprozessors.
 
Bei den aktuellen x86 Prozessoren (AFAIK seit AMD K5 und Intel P6 [Pentium Pro, II, III]) werden die x86 Befehle (CISC) auf RISC(-artige) Befehle umgerechnet, was in den Befehlsdecodern passiert. AMD nennt die Befehle dann MakroOps, Intel MicroOps. Diese Befehle sind dann alle gleich groß und lassen sich damit wesentlich einfacher in de Pipelines bearbeiten.
So - ich hoffe ich habe nichts verdreht :)
 
Das ist eine sehr stark vereinfachte Darstellungsweise und auch nicht richtig, Pipelining hat nichts mit superskalarer Architektur zu tun, das sind zwei vollkommen unabhängige Eigenschaften eines Mikroprozessors.

:) Da kannst du ma sehen was Fachinformatiker fürn Scheiß lernen!

Aber erklär mir mal bitte den Unterschied zwischen Superscalar und Pipelining...
Ich habe hier gerade mal ein altes Lehrbuch rausgekramt, nachdem Ist Superscalare Architektur die Bezeichnung von Intel für das Pipelining in Prozessoren und nix anderes!

XD Und rutscht noch alle Gut ins neue Jahr... ich werde mich jetzt aufm Weg machen,.... PARTYYYYYYYYYY :)
 
@x-dimension

Pipelining:
Ein Befehl wird in verschiedene Teilschritte zerlegt. Also zb. Decodieren, Daten holen, Ausführen, Daten schreiben (zb. add [abc],[def])
Dabei werden im Prozzi verschiedene Bereiche genutzt zb. fürs Daten holen muss ein Speicherzugriff stattfinden, die Ausführung besteht auch nochmal aus verschiedenen Schritten und beim schreiben vom Ergebnis wieder ein Speicherzugriff (oder halt in ein Register).
So, viele dieser Schritte benötigen verschiedene Bereiche in der Cpu und da setzt Pipelining an.
Wenn für einen Befehl zb. die Daten geholt wurden (zb. mov ax,[abc]) ist diese Einheit im nächsten Schritt von diesem Befehl ohne Arbeit. Also wird beim nächsten Befehl schonmal dieser Schritt ausgeführt. Dadurch wird deutlich Zeit gespart, da man sich einen Schritt komplett einspart (er wird ja praktisch während der Ausführung eines anderen Befehls erledigt).

Superskalare Architektur:
Pipelining hat den Nachteil, das wenn 2 Befehle den selben Bereich in der Cpu benötigen diese Befehle nacheinander ausgeführt werden müssen. Oft passiert dies bei einem bestimmten Bereich der im Durchschnitt halt mehr beansprucht wird (zb. die Ganzzahlarithmetik bei Büroanwendungen). Also verbaut man einfach diesen Bereich mehrmals auf der Cpu, dadurch können (wenn die Bedingungen stimmen) mehrere Befehle direkt parallel verarbeitet werden. Der Athlon hat zb. (wenn ich mich nicht irre ;)) 6 logische Fpus, kann also im besten Fall 6 fließkomma Operationen gleichzeitig ausführen.


Pipelining gibts seit dem 286er, Superskalare Architektur seit der 5. Prozzi Generation (5x86er - also Pentium 1, Amd K5, Winchip 1, Cyrix 586er......).

Wenn beim Pipelining ein Sprung stattfindet wird die gesamte Pipeline entleert - der Prozz muss erst ein paar Befehle ausführen bis Befehle praktisch in allen Ausführungsstadien vorhanden sind. Das nennt man dann das flushen der Prefetch Queune (bzw. to flush the prefetch queune). Das kostet moderen Prozzis immernoch sehr viel Zeit und trifft vor allem die Cpus, die viele Befehle parallel verarbeiten. Für sowas gibts dann Sprungvorhersagen, dabei werden dann die Befehle an der vermuteten Zielstelle vom Sprung schonmal in den Cache geladen, so dass wesentlich schneller weitergearbeitet werden kann.

 
Zuletzt bearbeitet:
Viel ist der Erklärung von intel_hasser nicht mehr hinzuzufügen, nur ein paar Berichtigungen und Ergänzungen:

Superskalare Architektur:
Im Grunde perfekt Erklärung der Sache, erwähnenswert wäre noch die Tatsache, dass bei superskalarer Ausführung auch voneinander unabhängige Befehle parallel ausgeführt werden können mit unterschiedlichen Befehlseinheiten.
Weiterhin hat die K7 Architektur lediglich drei Floating-Point Units (FPU) und kann somit nur drei Fließkommaberechnungen gleichzeitig durchführen (Wohl gemerkt, nicht sechs pro Taktsignal da viele Befehle deutlich mehr als einen Takt zur Ausführung benötigen).

Pipeline Flush:
Auch fast perfekt, nur ist es die Queue und nicht die Queune (Queue = (Warte) Schlange nach FIFO-Prinzip (First In - First Out)). Desweiteren wird bei der Branch Prediction (Sprungvorhersage oder auch Verzweigungsvorhersage) nicht nur der Cache mit den Daten im Voraus gefüllt (Cache Prefetch) sondern auch die Pipeline mit den entsprechenden Instruktionen und Load/Store Operationen. Im Falle einer fehlerhaften Vorhersage muss die Pipeline wieder geleert werden, was umso länger braucht je länger die Pipeline ist.
 
Klar kenn ich das, was ist damit?
 
Ich findes interessant... obwohl das Kapitel über Boolsche Algebra recht langweilig ist ;)

Um mal zum Thema zurückzukommen:
Der Unterschied zwischen risc und cisc Prozzis besteht ja nicht nur in der Architektur selber, sondern auch der Rest unterscheidet sich ja ein bisschen. Oder schonmal PowerPC mit ddr400 gesehen?? Oder 800mhz Fsb? Gerade das wird im PC Sektor extrem gepusht, im Server Bereich wo es mehr auf stabilität ankommt setzen sich neue Standarts eben nicht so schnell durch.
 
Schon vom PPC970 gehört der mit angeblich 800 oder 400 MHz FSB kommen wird? Weiß es nicht mehr genau, da schwirren diese beiden Zahlen rum wenn es um den Prozessor geht. Und der Motorola MPC7455 im aktuellen PowerMac G4 MDD 1000 und 1250 war der erste Prozessor überhaupt mit 166 MHz FSB. Dummerweise läuft der bei den G4s halt noch im SDR-Verfahren und nicht DDR oder gar QDR.
 
Naja, bei den nicht-x86 Prozzis kenn ich mich net so gut aus. Aber der neue Powerpc sieht schnuckelig aus ;) Vor allem die Quad-Variante. Die Kühler dafür möchte ich gerne mal sehen.

PS Schonmal vom xc87slc gehört? *lol* ;)
 
Hi,

vieleicht sollte sich jeder mal nen nettes Buch zulegen, z.B. "Einführung in die Informatik" von H.-P. Gumm und M. Sommer, da wird das alles ganz nett erklärt. So z.B. auch "Superskalare Architekturen" auf Seite 447:

Bei einer supersakalren Architektur kommen mehrere Pipelines parallel zum Einsatz. Bei heutigen CPUs sind dies 2 bis 10 - in Zukunft können es noch mehr werden.

Oft wird jeweils eine Pipeline für Integeroperationen und für Gleitpunktoperationen implementiert. Der Befehlsfluss wird zerlegt und, soweit das ohne Störung der Konsistenz der Daten möglich ist, auf die Pipelines verteilt.

Wenn es wen interessiert kann ich auch nochmal den hier enthaltenen Vergleich von RISC und CISC zusammenfassen... ;)

m.f.g.
BoMbY
 
Hi!!

Hmm das RISC CPU schneller und kühler sind, zeigen auch Pocket PC's recht deutlich.

Man nehme einen Casio EM500/E-125. Man schalte ihn an, und zoggt mal ein richtig aufwändiges Game. Egal wie lange. Der 150MHZ MIPS (Motorolla?) wird nicht war. IN KEINSTER Weise.
Sie haben aber die gleiche, nein, 10% mehr an Leistung als ein z.b Runtergetakteter Celeron.Ich hatte diesen Pocket PC. Habe diesen auch überttaktet, auf 200MHz. Die CPU selber ist gerade mal so groß, wie die DIE vom Duron. Und auch bei voller Belastung (Benchmark 10x, hatte den auf) wird der Chip nicht warm.

Oder auch gutes Beispiel: Intel StrongARM oder der neue X-Scale.

Sind auch RISC CPU's

der StrongArm mit 206Mhz/ auf 236Mhz taktbar, oder der X-Scale mit 400Mhz bis zu 600Mhz spezifikation.
Diese CPU's werden auch nicht warm. wenn der Pocket PC 25°C ist, ist die Cpu auch 25°C. Und das bei 400Mhz, und KEINERLEI Kühlung.


Würde man das ganze bis zu 2GHZ machen, bräuchte man einen kleinen lustigen Passiv Kühler.

MfG
 
Na also so allgemein kannst du das nicht sagen! Nimm mal zb. den Via C3 - Cisc und wird auch nicht wirklich warm. Wenn du den auf sagen wir 200mhz taktest (und damit verbunden die vcore extrem senken kannst) wird der auch nicht warm.

Wenn du dagegen den Mips auf 2ghz taktest, musst du 1. die Architektur überarbeiten, die pipeline muss zb. verlängert werden und 2. muss die Kernspannung erhöht werden. Da kommst du mit einem Passiven kühler nicht zurecht...
 
Zurück
Oben Unten