RISC vs CISC
-
Der x86-Assembler besteht aus Instruktionen mit CISC-Merkmalen. Durch die notwendige Abwärtskompatibilität war der einzige Gangbare Weg bisher, nur intern auf eine RISC-Architektur zu setzen, wie der Vorposter schon geschrieben hat.
-
riscor schrieb:
Wenn ich bei Google nach "RISC vs CISC" suche, scheint es, dass die Vorteile von RISC klar überwiegen und CISC ein Auslaufmodell ist. Ist es also Zeit für einen Umbruch? (Vielleicht hin zu ARM) Oder gibt es noch gute Argumente für CISC? (Außer dass es momentan halt noch recht etabliert ist.)
Mit den Erkenntnissen bist du aber ganz schön spät dran. Da hättest du vor 20 Jahren schon ein Thread erstellen können. (Und gut möglich, dass ich damals genau das gleiche geantwortet hätte.)
-
Tippgeber schrieb:
Mit den Erkenntnissen bist du aber ganz schön spät dran. Da hättest du vor 20 Jahren schon ein Thread erstellen können. (Und gut möglich, dass ich damals genau das gleiche geantwortet hätte.)
Wenn das schon so lange klar ist, gibt es einen Grund, dass scheinbar immer noch auf CISC gesetzt wird? Auch wenn x86 "intern" RISC benutzen sollte, dadurch dass CISC Code ja nicht mehr den "nativen" Modus nutzt entstehen doch bestimmt Nachteile? Wenn das schon so lange so klar ist, warum haben wir dann nicht schon alle ARM Rechner oder etwas in der Art?
-
riscor schrieb:
Wenn das schon so lange klar ist, gibt es einen Grund, dass scheinbar immer noch auf CISC gesetzt wird? Auch wenn x86 "intern" RISC benutzen sollte, dadurch dass CISC Code ja nicht mehr den "nativen" Modus nutzt entstehen doch bestimmt Nachteile? Wenn das schon so lange so klar ist, warum haben wir dann nicht schon alle ARM Rechner oder etwas in der Art?
Tja, dann könnte man vermuten, dass du dich mit deiner Analyse geirrt hast und die Prozessorbauer doch schlauer sind als du.
-
SeppJ schrieb:
Tja, dann könnte man vermuten, dass du dich mit deiner Analyse geirrt hast und die Prozessorbauer doch schlauer sind als du.
Ja was denn nun? Könnte sich vielleicht mal jemand dazu herablassen ein paar Erklärungen an seinen Beitrag anzufügen?...
-
Die Gründe beim x86-Befehlssatz zu bleiben sind ja in erster Linie nicht technische sondern strategische. Siehe auch http://en.wikipedia.org/wiki/Reduced_instruction_set_computing#RISC_and_x86
Da Windows 8 sich nun auch dem ARM-Markt öffnet könnte sich die Lage in den nächsten Jahren durchaus verändern. Vergleichsweise spannende Zeiten.
-
riscor schrieb:
SeppJ schrieb:
Tja, dann könnte man vermuten, dass du dich mit deiner Analyse geirrt hast und die Prozessorbauer doch schlauer sind als du.
Ja was denn nun? Könnte sich vielleicht mal jemand dazu herablassen ein paar Erklärungen an seinen Beitrag anzufügen?...
Auch wenn die Unterschiede gewaltig klingen, so sind sie in der Praxis doch unbedeutend. Die bekannten CISCs (also hauptsächlich x86) sind intern RISC mit einer Übersetzungseinheit für den CISC-Befehlssatz davor und fahren damit ziemlich genau gleich gut wie die besten RISCs. Das wird Intel zwar vermutlich Zigmal soviel an Entwicklungskosten gekostet haben wie die RISC-Konkurrenten, aber sie können es sich leisten. Und jetzt, da sie die Technik erst einmal haben, können sie sie immer wieder für neue Modelle benutzen.
Kurz: Es gibt in der Praxis keine großen Unterschiede zwischen den jeweils besten ihrer Gattung. Daher ein erheblicher Vorteil für den x86, da dieser schon etabliert ist. Daher leben ARM & Co. auch hauptsächlich auf neuen Plattformen, wo sie nicht mit dem x86-PC direkt konkurrieren. Insofern war das oben erwähnte Geld von Intel wohl eine gute Investition.
-
Viele wollen x86 einfach nur Schlechtreden, fakt ist, dass CISC sich sehr gut eignet, um eine Schnittstelle zu sein die Interna von CPUs versteckt.
Ein Argument ist z.B. dass RISC CPUs viel mehr Register haben und deswegen viel effizienter sind, eine i7 CPU von intel hat aber mehr als 200 Register, um deren Allokation sich die CPU zur laufzeit sorgt, nicht der Compiler, deswegen kann die ganze Verwaltung vom momentanen Status aus optimal erfolgen. Wenn irgendwo auf Speicher gewartet wird, bleibt ein Register unangetastet, die ALU-Befehle die davor sind und danach folgen, arbeiten auf den freien Registern weiter.
Wenn du ein RISC hast, ist out of order nicht so nett, weil du bei unmengen von Registern die eventuell noch brach liegen, dennoch alle im Register-File halten musst, weil die CPU nicht vorhersehen kann, wann die wieder in benutzung kommen. und ob du 8 mal 4float hast, oder 128mal 4float ist schon ein gewaltiger unterschied (immerhin 1KB Kostbare CPU interne Transistoren).
-
Humbug
-
SeppJ schrieb:
Kurz: Es gibt in der Praxis keine großen Unterschiede zwischen den jeweils besten ihrer Gattung. Daher ein erheblicher Vorteil für den x86, da dieser schon etabliert ist. Daher leben ARM & Co. auch hauptsächlich auf neuen Plattformen, wo sie nicht mit dem x86-PC direkt konkurrieren. Insofern war das oben erwähnte Geld von Intel wohl eine gute Investition.
Wenn ich das richtig verstehe und die Kosten von großen Rechenzentren fast ausschließlich Stromkosten sind (auch für die Kühlung), dürfte ARM doch einen signifikanten Unterschied machen? Ich dachte immer ARM CPUs würden in etwa 10% von dem Verbrauchen was x86 Modelle benötigen. (Was natürlich auch super für die Hitzeentwicklung ist.)
Ist dem gar nicht so, oder habe ich da etwas anders übersehen? Denn so gibt es doch eigentlich keinen Grund mehr für Google, Facebook & co bei Servern nicht auf ARM zu setzen, wo sie ja schon Rechenzentren am Nordpol bauen wollen um Stromkosten zu sparen.
-
Man muß sich echt nicht an solchen Begriffen festkrallen und kann sich stattdessen fragen, wie gut man parallel programmieren kann bzw. parallelprogrammiererfahren ist.
Der Kern bei Risc ist, dass man sehr compilerabhängig wird, aber andererseits natürlich auch immer von Compilern lernen kann.
Seltsamerweise tut sich an der Oberfläche von "Reduced" das genaue Gegenteil auf, Java programme z.B. wirken recht aufgebläht, und sind meistens ziemlich langsam.
Visual Basic ist zwar recht effizent, sieht aber grauenhaft aus.
Oder wie wäre es z.B. mit einer reduced Windows Api?
Hier ist Linux klar im Vorteil, aber das war Unix auch schon - und? hat es sich durchgesetzt? Doch nur, weil Unix an den Unis en vogue war und nicht wegen reduced - und es dauert ja auch wirklich eine Weile, bis an mit dem Way of reduced von Unix/Linux klar kommt.In der Zukunft wäre es schön, wenn beides Hand in Hand geht, und da ist Intel eher Vorreiter als die anderen.
-
riscor schrieb:
Wenn ich das richtig verstehe und die Kosten von großen Rechenzentren fast ausschließlich Stromkosten sind (auch für die Kühlung), dürfte ARM doch einen signifikanten Unterschied machen? Ich dachte immer ARM CPUs würden in etwa 10% von dem Verbrauchen was x86 Modelle benötigen. (Was natürlich auch super für die Hitzeentwicklung ist.)
Ist dem gar nicht so, oder habe ich da etwas anders übersehen? Denn so gibt es doch eigentlich keinen Grund mehr für Google, Facebook & co bei Servern nicht auf ARM zu setzen, wo sie ja schon Rechenzentren am Nordpol bauen wollen um Stromkosten zu sparen.Tja, und wieviel Prozent aller CPUs auf der Welt sind in Rechenzentren verbaut? Und wieviel würde die Umstellung der Software kosten? Nur weil irgendetwas irgendwie ein bisschen besser wäre, lohnt sich nicht unbedingt ein Umstieg.
-
SeppJ schrieb:
Tja, und wieviel Prozent aller CPUs auf der Welt sind in Rechenzentren verbaut?
Ich habe jedenfalls mal gelesen genug um 25 Atomkraftwerke mit Arbeit zu versorgen.
SeppJ schrieb:
Und wieviel würde die Umstellung der Software kosten? Nur weil irgendetwas irgendwie ein bisschen besser wäre, lohnt sich nicht unbedingt ein Umstieg.
Ich hatte irgendwie eher erwartet, dass irgendetwas mit meinen Fakten oben nicht stimmt. Denn wenn das alles zutrifft gibt es eigentlich nur eine Schlussfolgerung:
Herb Sutter erwähnte mal, dass Strom etwa 80% der Betriebsgskosten eines Rechenzentrums ausmachen. Nehmen wir mal Festplatten etc. raus, bleiben großzügig 60% für CPU Strom. Davon kann man jetzt 90% sparen, sind 56%. Man kann also mal eben über 50% der Kosten sparen?
Dass Stromkosten ein generelles Problem sind, zeigt ja auch das oben genannte Beispiel: Facebook baut Rechenzentren am Polarkreis.Insofern bleiben für mich eigentlich zwei Schlussfolgerungen:
- Alle Unternehmen mit großen Rechenzentren sind total auf den Kopf gefallen
- Ich übersehe/unterschätze hier noch irgendeinen FaktorDas erste halte ich generell mal für weniger wahrscheinlich.
Bleibt die Suche nach diesem Faktor. Software wurde ja schon genannt, aber ist das wirklich so viel Aufwand? Es betrifft ja nur native Software, und auch die muss doch eigentlich nur neu kompiliert und vielleicht etwas angepasst werden? Oder ist da wirklich so viel an die Architektur gekoppelt? Wie muss man sich das vorstellen, überall inline Assembler? Oder kann das auch anders passieren?
-
Ja, ich halte deine Fakten auch für falsch. Dass Stromkosten 90% ausmachen, glaube ich nicht. Wo hast du das her? Hab grad nur kurz was auf Wiki gelesen, dass Stromkosten von Rechenzentren 1.8% des Stromverbrauchs in Deutschland ausmachen. Das wären ganz sicher keine 25 AKWs. Und IBM und HP machen dutzende Milliarden Umsatz mit Servern, würde mich doch stark überraschen, wenn die Stromkosten tatsächlich nochmal 10 mal mehr ausmachen würden. Und dann wären die Personalkosten noch gar nicht berücksichtigt...
ARM usw. sind auch nicht 10 mal effizienter als Intel Prozessoren. Intel hat hier sehr stark aufgeholt und den Stromverbrauch gesenkt. Du musst ja auch bedenken, dass ARM hier von der Leistungsfähigkeit nichts ansatzweise vergleichbares bietet. Ich glaube nicht, dass sie dann effizienter als Intel/IBM/Sun wären. Und wenn, dann würde es von 10000 anderen Faktoren und nicht unbedingt von RISC/CISC abhängen.
-
Werden in Rechenzentren überhaupt x86-Prozessoren benutzt? Dort gibt es doch meistens andere Architekturen.
Was RISC vs CISC betrifft kann ich mich noch an die Frage erinnern warum CISC mittlerweile doch wieder besser als RISC ist. Die Antwort hab ich aber jetzt nicht im Kopf.
-
nachtfeuer schrieb:
und da ist Intel eher Vorreiter als die anderen.
Nein ist Intel nicht. Viele Register: ja durch MMX und Co.; Conditional Execution (klick) mitlerweile auch einige; Befehle mit 3 Operanden, naja mit AVX einige. Auf der anderen Seite hat Arm auch einige Erweiterungen wie NEON, um Multimediaanwendungen zu beschleunigen.
Zu Rechenzentren: Die kosten ja bekanntlich ziemlich viel Geld. Und ueber dieses Geld entscheiden nun mal wichtige Leute. Diese haben wahrscheinlich noch nie einen Rechner von innen gesehen. Da wird genommen, was man kennt, bzw. wer am meisten Werbung macht. Hier kommt es mir auch so vor, dass viele ihre Argumentation aufgrund von Media-Markt-Prospekten vortragen. Dort werden nur selten Armprozessoren beworben.
Was das Neuschreiben der Programme angeht: das passiert sowieso. Oder wie soll sonst fuer einen Cluster mit Cell, Nvidia und x86-Prozessoren ein Programm geschrieben werden?
Intel hat hier sehr stark aufgeholt und den Stromverbrauch gesenkt. Du musst ja auch bedenken, dass ARM hier von der Leistungsfähigkeit nichts ansatzweise vergleichbares bietet.
Hier mal was von 2009: klick. Die meisten Argumente sind Meinungen. Fakten liefert irgendwie niemand. Ist doch immer das gleiche: AMD vs. Intel, Intel vs. Arm, Linux vs. Windows, ...
-
knivil schrieb:
Zu Rechenzentren: Die kosten ja bekanntlich ziemlich viel Geld. Und ueber dieses Geld entscheiden nun mal wichtige Leute. Diese haben wahrscheinlich noch nie einen Rechner von innen gesehen. Da wird genommen, was man kennt, bzw. wer am meisten Werbung macht. Hier kommt es mir auch so vor, dass viele ihre Argumentation aufgrund von Media-Markt-Prospekten vortragen. Dort werden nur selten Armprozessoren beworben.
Leute, die so wichtig sind, entscheiden nicht über Hardwaredetails. Das delegiert man.
Was das Neuschreiben der Programme angeht: das passiert sowieso. Oder wie soll sonst fuer einen Cluster mit Cell, Nvidia und x86-Prozessoren ein Programm geschrieben werden?
Kommt drauf an, auf welchem Level die Anwendung geschrieben ist. Im Hochleistungsrechnen sind mindestens die Numerikbibliotheken, die im Hintergrund arbeiten, handoptimiert. Wenn jemand einen Supercomputer mit exotischer Architektur baut, muss er daher die gängigen Schnittstellen selber mit einer passenden Implementierung bedienen.
Was bei den Stromkosten wichtig ist, ist natürlich der Preis/Performance. Momentan sind da mWn die aktuellen IBM-Prozessoren recht gut (RISC
), die dann aber wieder unter (leichten) Portierungsproblemen leiden, denn die Power-Architektur hat doch schon so einige Eigenheiten. Die aktuellen ARMs sind in dieser Kategorie mWn sogar schlechter als die aktuellen x86.
-
Leute, die so wichtig sind, entscheiden nicht über Hardwaredetails. Das delegiert man.
Ist doch egal. War auch nicht meine Aussage.
Die aktuellen ARMs sind in dieser Kategorie mWn sogar schlechter als die aktuellen x86.
Nit, dass ich dir nicht glauben wuerde, aber ... habe ich nicht in meinem vorherigen Post um Fakten gebeten? Ja!
-
knivil schrieb:
Humbug
toll, ein regestrierter Troll. Wieso wird so ein Misst nicht kommentarlos gelöscht?
-
knivil schrieb:
Nit, dass ich dir nicht glauben wuerde, aber ... habe ich nicht in meinem vorherigen Post um Fakten gebeten? Ja!
Hast du. Na und? So sehr interessiert mich diese Diskussion eigentlich nicht, vor allem, da ich hauptsächlich riscor mit dieser Aussage meinte, nicht dich. Falls das jemanden wirklich interessiert, dann mag er meine Aussagen prüfen. Das wird aber auch nicht ganz einfach, da ARM und x86 nicht wirklich die gleiche Nische haben. ARM ist gar nicht gut mit Fließkommarechnungen, x86 ist hier hingegen stark und diese Art Rechnung will man zumindest in wissenschaftlichen Rechenzentren, da hat ARM sowieso keine Chance.