Leserartikel RISC-V: Warum die Welt eine freie Instruction Set Architecture braucht

Der Sonntagsfrage (https://www.computerbase.de/2021-12...x86-wem-gehoert-die-zukunft-in-server-und-pc/) und die anschließende Diskussion brachte mich auf die Idee, diesen Leserartikel zu verfassen. Ich beschäftige mich schon länger mit RISC-V und Prozessorarchitekturen im Allgemeinen, daher hoffe ich auch Relevantes dazu sagen zu können.

Inhalt:
  1. Einleitung
  2. Was ist eine Instruction Set Architecture (ISA)?
  3. ISA vs. Mikroarchitektur
  4. Warum hat die ISA eine so zentrale Bedeutung?
  5. Warum eine freie ISA?
  6. Was bringt das?
  7. Wann gibt es ein Smartphone oder gar einen PC mit RISC-V?

Einleitung


Ich habe mir nun nicht alles, was ich hier schreibe, einfach ausgedacht, der Artikel nimmt inhaltlich teilweise Bezug auf den Vortrag „Instructions Sets want to be free“ von RISC-V Miterfinder Prof. Krste Asanović. Die Slides zu dem Vortrag gibt es u.a hier https://riscv.org/wp-content/uploads/2017/05/Mon1045-Why-RISC-V-ISAs-Want-to-be-Free.pdf. Krste Asanović und auch David Patterson haben diesen Vortrag zu unzähligen Gelegenheiten gehalten, eines der qualitativ besseren Videos davon gibt es hier:
Wer halbwegs englisch kann, sollte sich das unbedingt ansehen.


Was ist eine Instruction Set Architecture (ISA)?


Die ISA beschreibt die Maschinenbefehle und den „sichtbaren“ Zustand einer CPU bzw. eines CPU-Kerns. Mit sichtbarem Zustand sind die CPU-Register und Statusbits gemeint. Wenn die CPU Befehle ausführt, ändert sie dabei ständig diesen Zustand. Dieser Zustand wird auch „architectural state“ genannt, da er den Inhalt aller in der ISA definierten Register darstellt.

Die ISA ist damit nun das wesentliche Merkmal einer bestimmten CPU „Familie“ wie ARM, x86 oder eben RISC-V. In früheren Jahren (z.B. der Zeit des 8086 vs. 68000), als man noch viel direkt in Maschinenbefehlen programmiert hat, haben die Leute sich sehr intensiv über die Vor- und Nachteile einer bestimmten ISA gestritten.

Das hatte damals auch eine große Bedeutung, denn bei den damals recht einfach aufgebauten Prozessoren war die interne Architektur (die sogenannte Mikroarchitektur) sehr eng mit der ISA verbunden. Dass z.B. ein 8086 viel weniger ISA-CPU Register als ein 68000 hatte, machte sich direkt bemerkbar.

ISA vs. Mikroarchitektur


Grundsätzlich muss man ISA und Mikroarchitektur als getrennte Ebenen betrachten, die gleiche ISA kann man mit ganz verschiedenen Mikroarchitekturen implementieren. Und das wird natürlich auch gemacht, z.B. bei ARM, wo es ja etliche Cortex-Axx Kerne gibt.

Das Konzept, eine ISA in verschiedenen Implementierungen zu realisieren, ist übrigens uralt; IBM hat es in den frühen 60ern mit seiner IBM 360 Familie realisiert. Hierzu ein sehr sehenswerter Vortrag von David Patterson:

Über die Mikroarchitektur definieren sich auch die Unterschiede zwischen verschiedenen Prozessoren der gleichen ISA. Aktuelle Anwendungsprozessoren, wie Intel Core oder AMD Ryzen haben sehr aufwändige „Multi Issue – Out of Order“ Mikroarchitekturen.

D.h. sie können mehrere Befehle parallel ausführen (Multi Issue) und sie dabei auch umsortieren (Out of Order) um die Menge an Befehlen pro Takt (IPC – Instructions per Clock) zu optimieren. Aktuelle CPUs können dabei mehrere hundert Befehle „in-flight“ haben. Das Tückische dabei ist, dass aus Sicht der ISA die Illusion aufrechterhalten werden muss, dass die Befehle alle schön einer nach dem anderen ausgeführt werden, und sich das entsprechend auch in Änderungen des Architectural state so darstellen muss. Die ISA ist also eine Abstraktionsebene, die sicherstellt, dass sich Software in der Regel nicht um die Details der Mikroarchitektur kümmern muss.

Warum hat die ISA eine so zentrale Bedeutung?


Wie eben schon ausgeführt, ist sie der Punkt wo „Software auf Hardware“ trifft. Die CPU kann nichts anderes, als Maschinenbefehle gemäß ihrer ISA auszuführen, daher muss jeder ausführbare Code in dieser Form vorliegen. Die ISA ist der Fixpunkt, auf den sich Software- und Hardwareentwickler verlassen müssen. Auf der Softwareseite kann man jede beliebige Programmiersprache erfinden, solange man einen Compiler hat, der am Schluss Code in der ISA erzeugt. Die Hardwareentwickler ihrerseits dürfen sich auch ausdenken, was sie wollen und was sie irgendwie in einen Chip gegossen bekommen, solange dieser die ISA Befehle ausführt, ist alles in Ordnung. Die ISA ermöglicht letztendlich, dass Software und Hardware unabhängig voneinander weiterentwickelt werden können.

Nun wird heutzutage gerne argumentiert, dass ja sowieso alle Software in Hochsprachen geschrieben wird, man sie einfach nur neu kompilieren muss und daher der Wechsel der ISA ja nicht so schwer ist. Das stimmt zwar, greift aber zu kurz:


  • Software wird meistens in Binärform ausgeliefert, nicht nur bei Windows. Es macht auch unter Linux, selbst für technisch bewanderte Nutzer, einen riesigen Unterschied, ob das neue Paket nur ein „sudo apt-get install xyz“ entfernt ist oder man sich durch 10 Seiten Readme Files mit kryptischen Build-Anweisungen wühlen muss.
  • Der Anteil der Software, der abhängig von der ISA ist (neben Compilern, auch „JIT“-Engines für Javascript, Java, C#), ist zwar klein, aber wichtig für ein Ecosystem. Ohne z.B. eine Javascript-JIT Engine ist eine Plattform für Desktop und Smartphone faktisch unbrauchbar
  • Auch die Betriebssysteme selbst sind von der ISA abhängig. Auch hier ist der Anteil an direktem Assembler Codes zwar winzig, aber erhebliche Teile des Kernelcodes hängen von Datenstrukturen im Prozessor (Pagetables, Interruptvektoren, CSR-Register) ab.
Warum eine freie ISA?


Wenn man sich die IT-Welt ansieht, haben sich an verschiedenen sehr zentralen Stellen offene, herstellerunabhängige Standards durchgesetzt. Ein prominentes Beispiel ist die Internet-Protokollfamilie, also TCP/IP, und alles darum herum. Alles was er früher mal gab, wie NetBIOS, OSI, X.25, ist ausgestorben. Das gleiche gilt für den Layer-2, da hat Ethernet so Dinge wie Token Ring, ATM, usw. verdrängt.

Der Grund dafür ist ganz einfach: Weil die Standards von jedem implementiert werden können, gibt es keinen Grund mehr, verschiedene Standards parallel zu verwenden. Wichtig ist hier der Unterschied, zwischen freiem Standard und freier Implementierung. Natürlich gibt es proprietäre TCP/IP Stacks, aber der Standard selbst ist frei.

Nun ist die ISA ja, wie eben ausgeführt, auch eine zentrale Schnittstelle eines jeden Computersystems, und genau hier gab es lange keinen freien Standard. Die dominanten ISAs am Markt sind Eigentum ihrer Hersteller, und selbst in akademischen Projekten bekommt man schnell Probleme mit deren Patentanwälten.

Ein weiteres Problem der etablierten ISAs ist der historische Ballast, den sie mit sich führen. Das gilt für x86 genauso wie für ARM. Zusammen mit teilweise nicht öffentlichen Spezifikationen ist es dadurch kaum möglich, einen zu diesen ISA kompatiblen Prozessor zu bauen, unabhängig von der rechtlichen Frage. Schon allein dadurch gibt es bei Prozessoren nur ein kleines Oligopol. Die Alternative, für ein experimentelles Design wieder eine eigene ISA zu entwerfen, zieht einen Rattenschwanz an Folgen nach sich. Um einen Linux Kernel zu booten, muss man den C-Compiler (GCC), anpassen, die glibc und eben den Kernel selbst, alles keine Aufgaben, die trivial sind.

Hier kommt nun RISC-V ins Spiel. RISC-V definiert eine modulare, offen verwendbare ISA. Modular bedeutet, dass sie aus einem sehr kleinen Basis-Befehlssatz (RV32I) besteht, der um verschiedene Elemente (z.B. Floating-Point, Bit-Operationen, usw.) erweitert werden kann. Außerdem gibt es die ISA in 32- und in 64-Bit (und zukünftig auch 128-Bit).

Mit den heutzutage zur Verfügung stehenden Tools kann ein einfacher RISC-V Prozessor, der die „Basisspezifikation“ RV32I implementiert, von einem mittelmäßig begabten Computerarchitektur-Studenten im Rahmen einer Hausarbeit entwickelt werden. RV32I reicht zwar noch nicht, um Linux zu booten, aber für „Bare Metal“ C-Programme genügt es. Enorm hilfreich ist, dass es ein komplettes Toolset dafür gibt:

  • Die GNU Compiler Collection inkl. Tools wie dem gdb (Debugger)
  • Glibc und newlib als Runtime Libraries
  • Den Linux Kernel nebst angepassten Userland
  • Eine Verifikation Suite, mit der man einen Prozessor bzw. dessen Simulation auf Einhaltung der Spezifikation prüfen kann
  • Einen ISA Simulator, der das „golden Model“ der ISA darstellt, gegen das man prüfen kann.
Dazu gibt es mit RISC-V International (ehemals RISC-V „Foundation“) eine Organisation, die über das ganze „wacht“. Diese wurde mittlerweile von den USA in die Schweiz verlagert, um in einem „neutralem“ Land zu sein.

Durch dieses Toolset spart man mit RISC-V gegenüber einer „Eigenbau“ ISA enorm Zeit. Der modulare Aufbau der ISA stellt sicher, dass auch eine Simpel-CPU mit RV32I noch konform zur Spezifikation ist, und dass der GCC out-of-the-box darauf lauffähigen Code erzeugt. Man gibt einfach in der Aufrufzeile des Compilers den entsprechenden Level an (also in unserem Beispiel march=rv32i), dann wird der entsprechende Code erzeugt und auch die passende Library gelinkt.


Was bringt das?


Reicht es einem nicht, die CPU im Simulator auszuprobieren, braucht man keinen Zugriff auf eine Chipfabrik, sondern ein üblicher low-cost FPGA reicht schon, um so einen CPU in Hardware auszuprobieren. Also ungefähr das, was unzählige Mikrocontroller mit ARM Cortex-M auch tun. So ein einfacher RISC-V Prozessor entspricht dann etwa einem Cortex-M0.

Natürlich erreichen professionellere Teams mit mehr Knowhow und Ressourcen sehr viel mehr. Die offizielle Liste an RISC-V Designs https://riscv.org/exchange/cores-socs/ wird kontinuierlich länger.

Vermutlich gibt es bald für RISC-V allein mehr Designs als für alle anderen ISAs zusammen. Natürlich gibt es noch keine CPU auf dem Level eines aktuellen Performance Kerns für ARM oder X86, aber SiFive ist nicht mehr weit davon entfernt (https://www.sifive.com/cores/performance-p650)

Mit RISC-V stehen wir am Anfang einer Demokratisierung des Prozessordesigns. Das heute bestehende Oligopol an Prozessor Herstellern (bzw. im Falle von ARM–Designern) sorgt auch dafür, dass es weltweit nur relativ wenige Experten gibt, die sich mit CPU-Design auskennen. Denn Jobs gibt es ja nur bei diesen paar Firmen. Man sieht auch, dass die wenigen Experten gerne mal von einem Player zum anderen wechseln. Dabei ist CPU-Design keine Raketen-Wissenschaft; fast alle wichtigen Konzepte sind seit langem bekannt und liegen auch öffentlich vor (z.B. der Tomasulo-Algorithmus (https://de.wikipedia.org/wiki/Tomasulo-Algorithmus für das Scheduling von Instruktionen).

Es ist klar, dass man nicht durch das Lesen von ein paar Wikipedia-Artikeln einen M1-Konkurrenten in der Garage basteln kann, aber wir haben schon einmal erlebt, wie das Hobby-Projekt eines finnischen Informatik Studenten nahezu alle kommerziellen UNIX-Derivate langsam, aber sicher aus dem Markt gedrängt hat. Abgesehen von Mikrocontrollern ohne MMU und der Windows- bzw. Apple-Welt hat der Linux-Kernel heute nahezu 100% Marktdurchdringung.



Wann gibt es ein Smartphone oder gar einen PC mit RISC-V?


Das ist eine Frage, die nicht leicht zu beantworten ist (und deren Antwort ich mir auch nicht wirklich zutraue).

Die RISC-V Initiatoren sagen, mit einem gewissen Augenzwinkern, dass sie nichts Geringeres als die Weltherrschaft anstreben. Sie argumentieren dabei mit der Idee des offenen Standards: Langfristig gibt es für die meisten Marktteilnehmer keine Motivation mehr, auf einen proprietären Standard zu setzen, wenn es einen offenen Standard mit einer freien Auswahl an qualitativ hochwertigen Implementierungen gibt.

RISC-V „frisst“ sich mittlerweile langsam durch das Ecosystem: Zuerst löst es die unzähligen Inhouse Microcontroller ab, die in alle möglichen Chips (z.B. USB-SATA Bridges, usw.) stecken. Hier sind immer noch archaische 8-Bit Designs wie 8051 üblich, da diese lizenzfrei verfügbar sind. Dadurch, dass man RISC-V Cores, im Gegensatz zu ARM, beliebig anpassen und modifizieren darf, kann man auch spezielle Anforderungen damit erfüllen. So hat z.B. Western Digital einen Open Source RISC-V Core entwickelt: (https://github.com/chipsalliance/Cores-SweRV-EH2), den sie in Storage Controllern einsetzen wollen.

Drive bekommt RISC-V von Russland, China und Indien, spätestens seit dem Huawei-Bann ist chinesischen Tech-Firmen sehr klar geworden, dass sie nicht von den USA abhängig sein wollen. Ich denke, das erste Endkunden Produkt, das einen RISC-V Kern als Anwendungsprozessor einsetzen wird, wird daher in China entstehen. Erste vielversprechende CPU-Designs aus China gibt es schon. Alibaba macht es auch hier Amazon nach, und investiert in CPU-Entwicklung, aber eben RISC-V anstatt ARM. Ob das für uns in Europa eine bessere Alternative als die heutigen US-Produkte sein wird, kann man natürlich lange diskutieren.

Für einen RISC-V Desktop und Smartphone fehlen zurzeit noch ein paar wichtige Dinge (unter anderem eben ausgereifte JIT-Engines speziell für Javascript), aber an all diesen Dingen wird gearbeitet.

Aber klar, ich bin einerseits überzeugt, dass RISC-V gekommen ist, um zu bleiben, aber in welchen Marktsegmenten es sich etablieren wird, und in welchem Zeitraum, kann man ganz schwer sagen.

P.S.: Es ist mein erster Leserartikel bei CB, ich hoffe Ihr findet ihn interessant. Ich freue mich über jedes Feedback, auch bzgl. Schreibfehlern und falsch gesetzte Kommas ;)
Ich hoffe es sind nicht viele Fehler übrig geblieben, ich bin nicht sehr gut im Korrekturlesen meiner eigenen Texte...
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: SockeTM, McFly76, dev/random und 146 andere
DevPandi schrieb:
War bei PowerPC nicht auch Apple damals maßgeblich beteiligt, weil sie da ein Nachfolger für den 68k suchten?
Korrekt.
DevPandi schrieb:
Wobei Google - auch jetzt in den Smartphones - ARM verwendet als ISA - und auch einen Standardkern. Googles TPUs sind ja keine CPUs sondern eher als Beschleuniger wie GPUs zu verstehen.
Ebenso richtig, und die TPUs werden natürlich für ML/DL aller Art bei Google verwendet. Es sollte nur zeigen, daß große Firmen heute eher selbst die Sache in die Hand nehmen und für sich spezialisierte Prozessoren bauen, als von einem großen Anbieter zu kaufen. Das sichert natürlich eine gewisse Eigenständigkeit und Marktmacht.
 
Web-Schecki schrieb:
Na klar, AMD64 verwendet ja auch 64-Bit-Worte. Logischerweise können AMD64-Binaries nicht auf IA32 laufen. Umgekehrt aber schon - und zwar nativ. Bei Itanium wäre eine Emulation nötig gewesen.

Wenn Du ein IA-32-Binary im 64-bit-Mode ausfuehrst, wird es nicht funktionieren, und genauso wenig ein AMD64-Binary im Compatibility mode. Die sind genauso wenig kompatibel miteinander wie IA-32 und IA-64. Und der erste Itanium (also die Implementierung von IA-64) hatte Hardware fuer das Ausfuehren von IA-32-Programmen, der IA-32-Befehlssatz war dafuer also genauso nativ wie auf einem Athlon 64. Nur war diese Hardware so langsam, dass sie sie bei Itanium II (McKinley) und allen folgenden weggelassen haben, weil Emulation schneller war; das war beim Athlon 64 anders.

Dass AMD64 inkompatibel mit IA-32 ist, ist nicht selbstverstaendlich. Bei MIPS, SPARC, PowerPC, Alpha und RISC-V gibt's keine verschiedenen Modi fuer 32-bit code und 64-bit code. Was den Prozessor betrifft, weiss der nicht, ob er jetzt das eine oder das andere ausfuehrt (zumindest nicht, bis er einen Befehl ausfuehrt, den's in der 32-bit-Untermenge der Architektur nicht gibt). Die Unterschiede ergeben sich rein aus den unterschiedlichen Aufrufkonventionen und Unterschieden in den System Calls. Sowas aehnliches gab's auch als Vorschlag fuer AMD64 (die x32 ABI), hat sich aber nicht durchgesetzt.

Wobei ich angesichts dessen, dass 32-bit-Binaries und 64-bit-Binaries wegen der Aufrufkonventionen und Systemcalls sowieso getrennt sind, keinen nennenswerten Vorteil darin sehe, beides in einem Modus abzuhandeln. Bei AMD/Intel und ARM funktioniert das mit den Modi problemlos.
 
mae schrieb:
Wenn Du ein IA-32-Binary im 64-bit-Mode ausfuehrst, wird es nicht funktionieren, und genauso wenig ein AMD64-Binary im Compatibility mode.
Der Long-Mode unterteilt sich ja gerade deshalb nochmal. Aber die Ausführung von IA-32-Binaries ist trotzdem nativ im Long-Mode möglich, auch wenn da nochmal ein Kompatiblitätsmodus dazwischengeschaltet wird. Da wird nichts emuliert oder so.
 
Hallo zusammen,
vielen Dank für des enorme Feedback hier und in dem Ankündigungsthread von Sven. Ich habe auch einige PMs mit Korrekturhinweisen bekommen. Die Menge an Feedback zu bearbeiten ist natürlich eine kleine Herausforderung.

Zunächst: Ich werde die Korrekturhinweise natürlich berücksichtigen, gebt mir aber bitte 1-2 Tage Zeit.
Deswegen auch bitte erst mal keine neuen Hinweise mehr, mittlerweile ist bestimmt jedes falsche Komma mindestens einmal gemeldet, ich hoffe die Hinweise widersprechen sich da nicht allzusehr ;)

Jetzt ein paar Antworten zu Euren Kommentaren.

konkretor schrieb:
Board ist aktuell leider nicht zu bekommen, meine der Preis war um die 600$
Laut CrowdSupply wird die nächste Charge im Februar geliefert. Das ist bei diesen Kleinserien leider normal. Ein HiFive Unmatched war mir bisher zu teuer, aber ich habe die beiden HiFive1 RevA und RevB.

Meine Erfahrung mit SiFive Evaluation Boards ist, dass man als Anwender sehr auf sich alleine gestellt ist. Kein Problem wenn man tief in der Thematik drinsteckt, aber unabhängig vom Preis nicht vergleichbar mit einem Arduino oder, im Falle des Unmatched, mit einem Raspi oder gar einem normalen PC Mini-ITX Board. Will man mit dem Unmatched einen Linux-Desktop, braucht man zusätzlich eine unterstützte AMD Radeon Grafikkarte.

SiFive verkauft eben in erster Linie IP-Cores und die Boards sind "Proof-of-concepts", bzw. das Unmatched richtet sich an Linux Entwickler die mal was auf echter Hardware probieren wollen.

Aber hier gibt es einen englischen Erfahrungsbericht:

Erste Schritte macht man besser per Emulation QEMU, auf einem schnellen PC ist das sogar schneller als der FU540.

PHuV schrieb:
Eben, und darum sehe ich eine OpenSource CPU generell als problematisch. Man kann ja an Linux sehen, was hier leidlich funktioniert und was nicht.

Hier muss ich noch mal deutlich auf ein häufiges Missverständnis hinweisen, auch im Hinblick auf entsprechende Kommentare in einem anderen Thread:

RISC-V ist kein Open Source CPU Design, sondern eine offene ISA Spezifikation. Darauf basierende CPUs können selbstverständlich Closed Source sein und sogar patentierte Bestandteile enthalten. Es ist auch sehr unwahrscheinlich (zumindest in absehbarer Zeit) das es einen, im echten Sinne, Open-Source CPU Chip geben wird. Selbst wenn das sogenannte RTL-Design der CPU (das ist der Sourcecode des Designs in einer Hardware-Description Language, der von Synthese Tools dann in Logikschaltungen umgesetzt wird) Open Source ist, kommen spätestens bei der Umsetzung desselben auf einen Fertigungsprozess (wie TSCMC xx nm) proprietäre Komponenten ins Spiel (z.B. das Physical Design Kit der Foundry). Auch wird man vermutlich Closed-Source Designs für Dinge wie Memory Controller, PCI-Express Bus, usw. einsetzen.

Da haben auch viele Open Source Enthusiasten falsche Vorstellungen. Eine Open Source RTL hilft Chip-Designern, weil sie Kosten und Zeit sparen, aber nicht direkt dem Endkunden.

Das ist übrigens in der Softwarewelt das Gleiche: Der Linux Kernel ist deswegen so enorm erfolgreich, weil ein Betriebssystemkern ein "Commodity" ist: Für die meisten Produkte ist das Betriebssystem kein Unterscheidungsmerkmal, mit dem sie sich von ihrer Konkurrenz abheben. Ob beispielsweise eine Fritzbox einen Linux-Kernel oder irgendwas anderes hat, kann dem Endkunden komplett egal sein. Aber der Hersteller das SoC in der Fritzbox nimmt sich den Standard Linux-Kernel, passt ein paar Treiber an, und baut dann mit irgendwas wie Buildroot eine Referenzimplentierung. Jemand wie AVM braucht dann nur noch dieses Ding als Basis für sein FritzOS zu nehmen. Und da mittlerweile alle Hersteller auf Linux setzen, kann AVM in manchen Fritzboxen einen SoC von Qaulcomm Atheros einsetzen und in anderen einen von Intel.

Und genauso sind 90% aller Cloud und Webdienste die man so als Anwender benutzt aufgebaut. Meta/Facebook hat z.B. sein UI Framework React als Open Source Komponente freigeben. Web UI Frameworks sind auch Commodities die jeder braucht, die einen enormen Wartungsaufwand haben, aber eben nicht als Unterscheidungsmerkmal in Markt taugen.

Und so ähnlich ist es mit CPU Kernen: Die meisten Chips (und wenn es die oben erwähnte USB-SATA Bridge in Eurer USB Platte oder SSD ist) brauchen, neben jeder Menge spezieller Hardware, eine CPU. Welche ist völlig egal, meist muss sie noch nicht einmal sehr leistungsfähig sein. Aber man will keine Arbeit damit haben und kein unnötiges Geld dafür ausgeben.

Die Chips Alliance (https://chipsalliance.org/) hat sich zum Ziel gesetzt, Open Source IP-Cores in "Industriequalität" anzubieten. Anstatt also in Zukunft einen komplexen Vertrag mit ARM abzuschließen und erst mal einen größeren Geldbetrag zu überweisen ist im Idealfall der CPU Kern für den neuen Chip ein "git clone" Kommando entfernt (ganz so einfach ist es in Wirklichkeit natürlich nicht...).

Eine der ersten Reaktionen von ARM auf RISC-V und Firmen wie SiFive war übrigens, dass sie den Einstieg in das Designstart Programm für den Cortex-M0 kostenlos gemacht haben. Es reicht sich er EMail zu registrieren, und man kann das komplette Starterpaket inkl. einem FPGA Prototyping Kit runterladen.

PHuV schrieb:
Diese Basis hat RISC-V nicht, und wird sie so absehbar nicht bekommen.
Also es gibt Upstream Support für RISC-V im Linux Kernel, es wird in diversen Linux-Distros unterstützt, alle wichtigen RTOS (Real Time Operating Systems) haben RISC-V Support, die Hersteller von Debug-Probes (Seeger, Lauterbach, usw.) unterstützen RISC-V, usw.

PHuV schrieb:
Oder ein Land wie China investiert hier entsprechen massiv rein, dann könnte das Ding auch was werden, aber mit roter Flagge. Und das wir heute die politischen Dimensionen (leider) nicht außer acht lassen können, sehen wir ja bei Kaspersky und Huawei deutlich.
Das ist in der Tat ein Punkt, den ich oben ja auch kurz angerissen haben. China wird mit Sicherheit weiter massiv in RISC-V investieren. Die EU wird es mangelnden Verständnis der Politik wahrscheinlich verschlafen. Denn eigentlich sind einige globale Player im Bereich von Embedded Controllern (z.B. ST Microelektronics, NXP, usw.) in der EU angesiedelt und die Politik könnte sie schon ermuntern, anstatt auf ARM auf RISC-V zu setzen.
Lustigerweise baut die chinesisches Firma GigaDevice eine STM32 Kopie, bei der der CPU Kern durch RISC-V ersetzt wurde. D.h. das Ding ist von der On-Board Peripherie weitestgehend mit einem STM32 kompatibel. Damit wurde der Beweis erbracht, dass das gar nicht schwer ist.

Leider hat Europa bei Application Class Prozessoren keine Aktien im Spiel.

PHuV schrieb:
Von Problemen wie Spectre, Meltdown und Co., die sich erst nach Jahrzehnten als Sicherheitslücke im CPU-Design entpuppen, will ich noch gar nicht anfangen.
Eigentlich sind diese Angriffe sehr gut verstanden und es ist überhaupt nicht schwer, ein neues Prozessordesign dagegen zu härten. Vor allem würde hier, im Falle einer Open Source RTL, sogar die Möglichkeit bestehen, das Sicherheitsforscher den Code der CPU evaluieren können und z.B. gezielte Tests in Simulatoren oder FPGAs fahren zu können.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 0-8-15 User, Web-Schecki, Ironbutt und eine weitere Person
@TomH22
Europa ist auch mit dabei wenn es um RISC-V geht. Das erste Produktivsystem ist schon in Betrieb oder mindestens im Test. Da wird noch ARM und RISC-V gemischt und die RVs sind nur ein kleiner Bestandteil und auch nur auf FPGAs implementiert. Immerhin gibt es aber etwas.
https://www.hpcwire.com/off-the-wir...tive-epac1-0-risc-v-core-boots-linux-on-fpga/

Problem ist nur wie so oft, dass die European Processor Initiative ein politisch gewolltes Projekt mit Absicht zur Wirtschaftsförderung ist. Entsprechend aufgebläht ist der Kreis der Stakeholder. Der Vorteil, dass RV frei verfügbar ist und im Prinzip jeder schnell und unbürokratisch eigenes Cores entwerfen kann geht da gefühlt komplett flöten.


Und noch etwas, was gegen die Verbreitung von RISC-V spricht ist, dass RISC-V wirklich nur die ISA ist. Man kann sich zwar eigene Cores entwerfen, muss aber im Zweifelsfall dennoch absichern, dass man keine Patente verletzt und muss noch eigene Schnittstellen entwerfen oder als IP von Externen lizenzieren. In vielen Fällen ist es da kosteneffizienter einfach direkt Cores und Peripherie von ARM zu holen.
 
  • Gefällt mir
Reaktionen: PHuV
Piktogramm schrieb:
Europa ist auch mit dabei wenn es um RISC-V geht. Das erste Produktivsystem ist schon in Betrieb oder mindestens im Test
Ja, aber in meinen Augen ist High-Performance-Computing eine Nische, die eben nicht wirklich marktrelevant ist. Deswegen mein Verweis auf MCUs, das ist der Bereich wo europäische Hersteller relevante Marktanteile haben um etwas zu bewegen.
Piktogramm schrieb:
Man kann sich zwar eigene Cores entwerfen, muss aber im Zweifelsfall dennoch absichern, dass man keine Patente verletzt und muss noch eigene Schnittstellen entwerfen oder als IP von Externen lizenzieren.
Die wenigsten Teams werden die Cores wirklich selbst entwerfen, sondern sie einkaufen. Auch im Falle eines Open Source Cores wird man ggf. kommerziellen Support dazu holen. So wie es bei Software auch ist.

Nahezu alle industrial Grade RISC-V Cores unterstützen Standard Interfaces wie AXI (das übrigens, obwohl von ARM, auch unabhängig von deren Designs frei verwendbar ist). Ist auch nicht so schwer. Ich habe mein eigenes RISC-V Design schnitstellen-kompatibel mit dem Xilinx MicroBlaze Softcore gemacht. Man kann es also einfach austauschen. Natürlich läuft dann eben nur noch RISC-V Code und kein Microblaze Code mehr. Ist natürlich so noch keine Alternative, ich bin aber sicher das Xilinx eines Tages selber diesen Schritt gehen wird.
 
@TomH22
"Marktrelevant" ist halt so ein Ding. Im Rahmen von HPC Anwendungen ist der ganze HPC-Kram marktrelevant und der Markt selbst umfasst einige Milliarden €. Politisch ist das Ganze auch gewollt und hat tendenziell damit die Chance die Entwicklung hinzulegen wie Airbus. Naja oder es geht den Bach runter.. wir werden es sehen.

Und Cores kaufen, wenn man Cores kauft, dann ist die ISA und deren Offenheit fast egal. Da kommt es dann drauf an, wie viel Cent je Core an Kosten aufschlägt. Imho ist der der größte Grund auf RISC-V zu setzen um selbst zu entwickeln, da liegt im Vergleich zu ARMs Entwicklerlizenzen dann ein echter (Preis-)Vorteil. Wobei zugegebenermaßen ARM bei den kleinen Cores die Preise massiv gesenkt hat, weil RISC-V den Markt kannibalisiert. Mittlereile gibt es ARM Softcores sogar für lau..
 
  • Gefällt mir
Reaktionen: PHuV
PHuV schrieb:
Nicht nur Apple, auch Motorola war maßgeblich an PPC beteiligt.
Im Prinzip war das so etwas ähnliches wie ein Joint Venture, das sich A(apple)I(BM)M(otorola) nannte.
 
  • Gefällt mir
Reaktionen: Gerry18
Bevor ich hier auf den Punkt komme, muss ich leider ein wenig ausholen, um zu verstehen wo ich denke wo halt mal wieder der Hacken ist.

Also, so ganz frei sind die Freien Standard, die sich durchgesetzt haben, auch nicht wie man glauben mag. Weil man sich am Ende auch ganz genau an die Vorgaben, die der Markt geschaffen hat, halten muss damit es kompatibel bleibt. Mit einem Wort man kann da auch nicht machen was man will, auch wenn der eigene Weg vielleicht schneller wäre.

Das Problem hat man aber auch bei der Hardware und damit auch bei der CPU.

Gehen wir mal in der Zeit zurück, zu den Homecomputer. Das große Problem war, das ein C64 nicht kompatibel war zu einen Atari 800 oder Sinclair und wie sie alle geheißen haben. Das ging so gar so weit, wenn man eine Disk am C64 formatiert hat, konnten die Anderen damit nix anfangen, weil sie die nicht lesen konnten. Das hatte aber auch zur Folge das man Software immer eigenes anpassen musst. Da war es schon eine Wohltat als dann so was mit GIF oder JPEG kann. Das man gemeinsame Standards bei Grafikdaten hatte.
Schon damals hat man aber versucht einen gemeinsamen Standard zu schaffen. Bei Homecomputer war das MSX an den ja auch Microsoft beteiligt war. Aber auch CPM der Vorläufer von MS-DOS war eben der versucht.
Aber wie gesagt das setzt voraus, das sich dann jeder an die Vorgaben hält.

Kurze Erklärung.

Ich habe hier einen Commodore 128 stehen. Der kann auch CPM. Aber CPM kann so gut wie keine Grafik. Am C128 kein Problem. Denn man kann auch in CPM die Grafikfähigkeiten des C128 nutzen. Das geht ohne Probleme. Das Problem ist nur, es wäre dann zwar immer noch ein CPM Programm. Aber es würde nur mehr auf einen C128 laufen. Aber auf keiner anderen CPM Maschine mehr.

Kommen wir noch mal kurz zu der GPU. Zu seiner Zeit ist so nahe wie möglich an der Hardware programmiert worden. Das hatte zur Folge das man aus der Hardware Dinge rausgeholt hat die der Computer so gar nicht konnte. Das könnte man heute auch machen. Aktuell habe ich eine 2080 in meinen PC verbaut. Würde man da jetzt ein Spiel schreiben, das so nahe an der Hardware läuft, wie es nur geht, dann würde da eine Leistung rauskommen die man der Karte nie zutrauten würde. Das Problem, zieht man die raus und steckt eine 3080 rein. Tja, dann war es das. Das Spiel würde nicht mehr laufen. Also hat man auch hier Schnittstellen geschaffen damit es kompatibel bleibt. Auch wenn das ganze dann nicht mehr so schnell ist, wie wenn man so nah wie möglich an der Hardware programmiert. Man sieht Geschwindigkeit ist auch nicht immer alles.



Aber was hat das alles mit einer CPU zu tun. Ganz einfach, weil jeder jetzt wieder seine eigene Suppe kochen will

Apple hat damit schon mal angefangen. Ohne Frage geht das bei Apple leichter. Den Apple Computer werden nur von Apple gebaut und die Apple Fan machen das gerne mit. Von der Software ist es auch kein Problem. Jeder der Software für den Apple anbieten will weiß das da jetzt kommt. Aber man hat jetzt wieder das gleiche Problem das man schon zur Zeit der Power CPU´s hatte. Windows läuft jetzt nicht mehr so einfach darauf. Vor allem läuft es jetzt viel langsamer. Man kann zwar Linux Versionen dafür schreiben. Aber ein Programm für Linux, das für x86ger geschrieben ist, läuft dann auch nicht auf einen M1. Es muss angepasst werden. Man ist als Anwender dann darauf angewiesen, dass jemand die Linux Software anpasst. Macht das keiner hat man als Anwender Pech gehabt.

Mit einem Wort man braucht am PC Markt wieder diesen einen Standard damit alles kompatibel bleibt. Ganz egal ob der frei ist oder nicht. Nur fürchte ich halt das all die die da auf den Zug aufspringen wollen sich da nicht zusammen setzten werden, um den zu schaffen. Jeder wird sein eigenes Ding durchziehen wollen.

Die einzige Chance wäre vielleicht die Chinesen bauen eine und das setzt sich am Chinesen Markt durch. Dann vielleicht. Aber da wird dann sich wieder kommen, die spionieren uns nur aus und man legt denen für den Rest der Welt solche Steine in den Weg das sie es am Rest der Welt nicht schaffen. Aber selbst, wenn sie es schaffen. Dann wäre man eben von den Chinesen abhängig. Weil die wären das auch nicht Teilen wollen und die Gewinne allein Einstecken.

Auch wenn viele da jetzt die große Zukunft von ARM heraufbeschwören. So einfach ist das eben alles nicht.

Am Ende darf man halt nicht vergessen wir sind bis jetzt mit der x86 Architektur gut gefahren. Eine neue Architektur muss aber eben auch diesen Vorteilen, vor allem was das kompatibel angeht, bieten. Und dazu eben noch den großen Vorteil gegenüber der x86 Architektur damit das was bringt.
 
  • Gefällt mir
Reaktionen: lord_mogul
Deine Beispiele beziehen sich auf ein 40 Jahre altes Betriebssystem (CP/M). Ich kenne das noch aus eigener Anschauung, mein erster Computer (ein Bausatzcomputer der Zeitschrift mc) lief damit.

CP/M, und auch später das nahe verwandte MS-DOS, krankten daran, dass sie mehr oder weniger nur um das Dateisystem kümmerten, und nur sehr rudimentär (Charakter I/O) um sonstige Ein/Ausgabegeräte. D.h. sie boten für so etwas wir Grafik keine Abstraktionsschicht (Es gab vom CP/M Hersteller Digital Research Versuche in dieser Richtung mit GSX, aus dem später, das vor allem durch den Atari zu vorübergehender Popularität gelangte GEM entstand).
Aber genug der Retro-Anekdoten. Die Situation heute ist komplett anders, es gibt hinreichende Abstraktions- Schichten für fast alles, sodass nur noch sehr selten direkt auf die Hardware durchgegriffen werden muss.

Webanwendungen auf Basis von HTML5/CSS/EcmaSrcipt sind sogar vom Betriebssystem unabhängig, da der Web Browser eine abstrakte Ablaufumgebung bereitstellt, die überall gleich ist, bzw. deren Spezifika (etwa Bildschirmauflösung/Größe, Touch vs. Maus) abfragbar sind.

Gerry18 schrieb:
Aber ein Programm für Linux, das für x86ger geschrieben ist, läuft dann auch nicht auf einen M1. Es muss angepasst werden. Man ist als Anwender dann darauf angewiesen, dass jemand die Linux Software anpasst. Macht das keiner hat man als Anwender Pech gehabt.
Beim Portieren einer Linux Software auf einen Mac sind die Unterschiede zwischen Linux und MacOS potenziell ein größeres Problem als x86 vs. M1. "Normaler" Anwendungscode lässt sich, solange man das Betriebssystem nicht wechselt, in der Regel durch einfaches neu-compilieren auf eine andere ISA bringen. Wie ich in meinem Artikel bereits geschrieben habe, ist das nichts, was man einem Endanwender zumuten möchte, aber für z.B. einen Linux Distributor ist das kein Problem.

Aber klar, ein Wechsel der CPU-ISA für eine Plattform, wie es Apple jetzt macht, ist eine Herausforderung, und es muss gute Gründe geben, damit es erfolgreich ist.

ARM on Windows scheitert momentan einfach daran, dass es schlicht und ergreifend keine wirklich überzeugende Hardware gibt, die für den so Kunden attraktiv ist, dass er vorübergehende Einschränkungen bei der Softwareauswahl in Kauf nimmt. Aber es liegt auch an der halbherzigen, teils erratischen Unterstützung durch Microsoft (ich sage nur Windows-RT...), dass sie komplett das Vertrauen der Kunden in die Windows on ARM verspielt haben. Und den OEMs geht es vermutlich ähnlich. Niemand will Geld in den nächsten Flopp stecken...

Das ist der Unterschied zu Apple: Die haben nicht nur eine klare Strategie, sondern sie haben jetzt ein Produkt abgeliefert, dass bezüglich Powereffizenz und Performance, alles in den Schatten stellt was es sonst am Markt gibt. Man hört zunehmend von Leuten, die mit Apple bisher nichts am Hut haben, dass sie ein MacBook Pro kaufen. Und dabei auch die noch vorhanden Einschränkungen bei Nativer Software in Kauf nehmen. Dem selbst im Apple-Ecosystem geht so ein Wechsel nicht von heute auf morgen.
 
  • Gefällt mir
Reaktionen: Gerry18
Zum M1 und M2 sage ich mal abwarten und Tee trinken.

Wenn man weiß warum der gerade bei Video so schnell ist, dann weiß man auch das selbe können AMD und INTEL auch mit ihren CPUs machen. An die Topmodele kommt auch der M2 nicht ran.

Das werden wir erst in ein paar Jahren sehen wo Apple damit steht.
 
Nach dem Lesen des Leserartikels und auch einiger weiter Ausführungen qualmt mir der Kopf, aber es klingt auch super aufregend!

Nun habe ich aber noch offene Fragen zu RISC-V, die vielleicht jemand auf absolutem Noob-Level beantworten könnte.

Also:

Abgesehen davon, dass RISC-V eine offene Architektur ist (was ich SEHR begrüße), da mir dieses Monopol aus Intel/AMD suspekt ist, welche Vorteile bringt ein Computer (in weitestem Sinne), der auf RISC-V läuft?

Im Falle von x86_64 vs. ARM gibt es ja einige ganz plakative Überschriften, die YouTube Techkanäle rausbrüllen wie ARM ist effizienter, da nicht so viel Altlasten, ARM ist stromsparender (stimmt wirklich) usw.

Angenommen wir sind in einer Zeit, wo RISC-V Computer friedlich und zu gleichen Teilen neben x86_64 Computern laufen. Merke ich als Endanwender überhaupt irgendwas davon, was bei mir unter der Haube läuft? Abgesehen davon, dass ich mich freuen würde, dass meine CPU ein offenes Communityprokejt wäre.

Könnte jemand ganz plakativ einige catch phrases an die Wand werfen, welche Veränderung beim Betrieb des Computers selbst durch den "Umstieg" auf RISC-V zu verzeichnen wären?

Als Nutzer nehmen wir mal einen 0815 Noob der Mails liest, im Browse seine Seiten aufruft, gegelgentlich Spiele spielt, und dessen Programmiererdasein sich eher auf Webdesign mit HTML/CSS/PHP beschränkt. Also ganz basic Nutzerlevel- kein Poweruser.
 
@McMoneysack91
Theoretisch merkt man laufender Software nicht an, auf welcher Architektur sie läuft. Selbst wenn man Software entwickelt arbeiten die Wenigsten so tief am System, dass es bemerken können. Der größte Unterschied wird auf absehbare Zeit kein Windows und kein MacOS auf RiscV lafen wird. Entsprechend müssten sich Viele an Linux gewöhnen.

Ansonsten ist Risc-V und Arch64 von ARM jeweils recht kompakt und erlauben effiziente als auch leistungsfähige Designs.
 
  • Gefällt mir
Reaktionen: TomH22 und McMoneysack91
McMoneysack91 schrieb:
Abgesehen davon, dass RISC-V eine offene Architektur ist (was ich SEHR begrüße), da mir dieses Monopol aus Intel/AMD suspekt ist, welche Vorteile bringt ein Computer (in weitestem Sinne), der auf RISC-V läuft?
Das wird die Zukunft zeigen. Mit ARM und X86_64 gibt es quasi ein Oligopol von Firmen die Prozessoren designen/herstellen können. Im wesentlichen haben wir heute 4 Player: ARM (mit seinen Lizenznehmern), Intel, AMD, Apple und in gewissen Maße Qualcomm (Qualcomm hat wie Apple eine ARMK Architekturlizenz, allerdings machen sie immer weniger damit).
Außerhalb gibt es noch ein paar Nischen wie IBM mit Power und Imagination/MIPS.
Das behindert Innovation. Schon jetzt gibt es unzählige RISC-V Designs, die meisten sind natürlich im Low-End angesiedelt. Ab SiFive beansprucht mit dem "Performance 650" da Leistungsnviveau eines ARM Cortex-A77.
Man kann aber noch keinen SoC damit kaufen. Praktischen Nutzen hat RISC-V als "embedded Prozessor" in z.B. Speichercontrollern. Firmen wie Western Digital entwickeln eigene RISC-V Designs weil sie diese eben nach Belieben an die speziellen Bedürfnisse für solche Anwendungsfälle anpassen können.



McMoneysack91 schrieb:
Im Falle von x86_64 vs. ARM gibt es ja einige ganz plakative Überschriften, die YouTube Techkanäle rausbrüllen wie ARM ist effizienter, da nicht so viel Altlasten, ARM ist stromsparender (stimmt wirklich) usw.
ARM ist ungefähr genauso alt wie x86 und hat mittlerweile auch fast genauso viele "Altlasten". ARM mat massive Vorteile gegenüber x86 bei Lowend Prozessoren. Ein Cortex M0, wie er z.B. im Raspberry Pico eingesetzt wird, hat weniger Transistoren als der x86 Urvater 8086 und ist trotzdem ein vollwertiger 32 Bit Prozessor. ARM Instruktionen lassen sich in der Tat leichter dekodieren als x86, aber bei einem vollwertigen High-End "Application Level" Prozessor wie Apples M1 fällt dieser Unterschied kaum ins Gewicht. Auch ARM hat genügend komplexe Instruktionen die man z.B. per Microcode implementiert.

Intels Alder Lake liegt bzgl. der IPC vor dem M1, dass der M1 effizienter ist, liegt vermutlich eher an der besseren Fertigungstechnologie von TSMC als an der Architektur. Bin mal gespannt wo Zen4 dann rauskommt.

RISC-V hat den Vorteil, dass es ein Greenfield Design ist und auf viele Altlasten verzichten kann. So hat man zwar bei RISC-V eine 32Bit und eine 64 Bit ISA, aber man hat bewusst darauf verzichtet, irgendwelche Mechanismen zu bauen um 32 Bit und 64 Bit Software parallel auf einer CPU auszuführen (bin jetzt nicht sicher ob die Hypervisor Extensions da eine Möglichkeit erlauben). 32 Bit wird man sowieso nur im Embedded Controller Bereich einsetzen, wo man die Software "am Stück" kompiliert. Für Anwendungs- und Serverplatformen wird nur RV64G unterstützt, d.h. es gibt von Anfang an nur 64 Bit Software.
Sowas macht vor allem die Verifikation eines Designs einfacher, es gibt viel weniger krude Edgecases. Das reduziert natürlich auch die Gefahr von Sicherheitslücken.


McMoneysack91 schrieb:
Als Nutzer nehmen wir mal einen 0815 Noob der Mails liest, im Browse seine Seiten aufruft, gegelgentlich Spiele spielt, und dessen Programmiererdasein sich eher auf Webdesign mit HTML/CSS/PHP beschränkt.
Also Stand heute ist es für den 0815 Noob noch keine gute Idee. Es fehlen noch lauter wichtige Sachen:
  • Javascript JIT Engines wie Google V8
  • Leistungsfähige GPU Treiber
  • Eine "Enduser" taugliche Platform mit Power Management, Plug&Play, Firmware. Bei einem X86 PC wird das von der UEFI Firmware bereitgestellt, dadurch kann man einfach eine Windows oder Linux von der Stange auf dem PC installieren. An dieser Stelle krankt übrigens auch die ARM Welt, deswegen braucht man für jeden ARM SBC (Raspberry & Co) wieder ein angepasstes Linux und auch irgendwelche Android Custom ROMs müssen für jedes Telefon wieder angepasst werden.

Wenn diese Dinge in Zukunft gelöst wären, würde der Anwender keinen Unterschied zu einem heutigen PC merken. Aber es kann sein, dass er mehr Auswahl hat als heute, wo er zwischen Intel und AMD wählen kann.
 
  • Gefällt mir
Reaktionen: chartmix
@TomH22
Mips ist quasi tot, MIPS Technologies hat angekündigt selbst auf RISC-V umzusteigen. Wobei MIPS Tech erst von Imagination Tech. gekauft wurde, um später abgestoßen zu werden. Damit hat Imagination auch keine Prozessorentwicklung mehr.

Das ist halt auch so ein Ding RISC-V als Möglichen Erlöser vom X86 und ARM Olipogol zu feiern. Derzeit kanibalisiert RV viel stärker bei allen anderen kleinen Architekturen als bei den Großen. Ähnlich schaut es bei Tensilicas Xtensa aus, die waren schon nicht weit verbreitet und auch da knappert RV gerade.


Und bei ARM und Altlasten, mit Aarch64 wurden sehr viele Altlasten beseitigt und es ist vorgesehen reine Aarch64 Designs anzubieten, ohne den ganzen alten Kram der 32bit Zeit. So einen konsequenten Schnitt gab es bei x86 nie.
Wo du den AppleM1 erwähnst. Da macht es zwar nicht so viel aus, die Altlasten mitzuschleppen. Jedoch ist gerade der M1 ein reines Aarch64 Design ohne Altlasten :). Das nimmt sich also nicht viel, zu RISC-V.

Wobei für einen CPU, die ein großes Betriebssystem ausführen soll, Aarch64 im Zweifelsfall sogar kompakter ist als RV. RV sieht vor, dass CPU Designs für UNIX kompatible Systeme die C-Extension beinhalten sollen. RV muss also 16 und 32bit lange Befehle verarbeiten können, während Aarch64 nur 32bit verarbeiten muss.



Und was nicht stimmt ist, dass Grafiktreiber fehlen. Man kann in existierende RV Platinen fröhlich AMD Karten stecken. https://www.thefpsreview.com/2021/0...-running-on-risc-v-system-for-the-first-time/
Für den standardisierten Bootprozess gibt es auch Arbeitsgruppen (wenn das nicht gar ein Teil der Unix Arbeitsgruppe ist..).


Es sieht halt wirklich so aus, als wäre das Ökosystem in wenigen Jahren für Linuxer auf nutzbarem Niveau.
 
Piktogramm schrieb:
Das ist halt auch so ein Ding RISC-V als Möglichen Erlöser vom X86 und ARM Olipogol zu feiern. Derzeit kanibalisiert RV viel stärker bei allen anderen kleinen Architekturen als bei den Großen. Ähnlich schaut es bei Tensilicas Xtensa aus, die waren schon nicht weit verbreitet und auch da knappert RV gerade.
Das meinte ich damit, dass das Meiste "Lowend" ist. Und ja, vermutlich wird RISC-V mittelfristig das alles obsolet machen. RISC-V ist natürlich auch bei chinesischen und russischen Designern hoch im Kurs, die unabhängig von US Patenten werden wollen. Angesichts der aktuellen weltpolitischen Lage wird sich das noch verschärfen, ich weiß nur nicht so recht was ich davon halten soll. So ist es ja ein chinesisches Team welches an der Portierung von V8 auf RISC-V arbeitet.

Was ich mit Oligopol meinte, ist das es eben auch nur die vier genannten Firmen als Arbeitgeber für Prozessor Spezialisten in Frage kommen, entsprechend klein ist der Kreis der Experten. Das wird sich jetzt auch nicht gleich drastisch ändern, da die Entwicklung von High-End CPUs nun mal irre teuer ist. Mit SiFive ist jetzt halt ein 5ter dazugekommen, der sich um die gleichen knappen Resourcen prügelt. Und die SiFive Designs sind genauso closed source wie ARM und x86.
Vielleicht bleibt auch RISC-V für immer in der Embedded Nische, oder wir bekommen eine zweigeteilte Welt wo Russland und China ihre Computer mit chinesischen RISC-V Prozessoren bauen und der Westen weiter ARM und x86 nutzt. Wäre schon eine Ironie der Geschichte, wenn eine Erfindung aus dem Silicon Valley das Ende der amerikanisch/britischen Dominanz bei den ISAs einleitet:)

Piktogramm schrieb:
Es sieht halt wirklich so aus, als wäre das Ökosystem in wenigen Jahren für Linuxer auf nutzbarem Niveau.
Das ist zu hoffen, ich habe aber versucht die Frage von @McMoneysack91 aus der Sicht heute zu beantworten.
 
Zuletzt bearbeitet: (Tipp- und Kommafehler korrigiert)
  • Gefällt mir
Reaktionen: McMoneysack91 und chartmix

Nichts wirklich Neues aber IMHO eine aktuelle, sehr gelungene Zusammenfassung und Einordnung inklusive Vergleich mit anderen Architekturen und einiger Grundlagen für eher visuelle Typen, die Diagramme mögen.

Dabei geht er insbesondere auch der Frage nach, wie es RISC-V-Designs (dank Techniken wie Instruction Compression + Macro-Op Fusion) schaffen, trotz erheblich geringerer Komplexität und damit potentiell erheblich geringerem Transistor-Budget in puncto Performance mit x86-64 und ARMv7/v8 mitzuhalten.

Das ist BTW auch (neben der Flexibilität durch die Erweiterbarkeit) der wesentliche Grund, aus dem ich RISC-V eine große Zukunft vorhersage:
Während die Lizenzkosten für ein ARM-Design - zumal es sich abzeichnet, dass auch in der RISC-V-Welt IP-Cores z. B. von SiFive den Ton angeben werden, die ebenfalls lizensiert werden müssen - in Anbetracht der Produktionskosten (zig Millionen $ z. B. allein für die EUV-Lithografie-Maskenerstellung) kaum noch ins Gewicht fallen, lässt sich in der Massenfertigung dank Chips-per-Wafer-Vorteil hier wirklich viel Geld sparen.
 
  • Gefällt mir
Reaktionen: PHuV
Der Herr Engheim ist was Veröffentlichungen angeht ja wirklich umtriebig, aber irgendwie schafft er es beim Thema CPU Architektur und ISA immer so halb daneben zu liegen :(.

Er vergleicht die aktuelle ARM und X86 ISA mit zig Erweiterungen mit RISC-V I, also dem grundlegendem Befehlsatz, der nur Integer versteht. RISC-V I ist weniger Umfangreich als die ISA die der ARM1, also die erste ARM CPU hatte und weniger Umfangreich als das was der x8086 von Intel konnte.
Bei dem Vergleich den er wählt setzt er auch CPUs an, die gescheite Betriebssysteme laufen lassen können. Bei RISC-V braucht es da glaube mindestens das Paket G also: IMAFDZicsr und Zifencei
Also 40 + 8 + 11 + 26 + 26 + 6 + 1 = 118 Instruktionen für die 32bit Variante und etwas mehr für 64bit. Da ist dann aber auch noch keine einzige Instruktion für Vektoren, Virtualisierung, Kryptoalgorithmen, Zufallsgeneratoren und all die anderen Dinge, die das Vollprogramm an x86 und ARM liefern und die Heute einfach erwartet werden.

Dann behauptet er noch, dass RISC-V modular sei. Das stimmt für die anderen ISAs auch. Intel/AMD muss man "nur" viel Geld für ein entsprechendes Customdesign geben und ARM verkauft einem auch diverse, bedingt anpassbare IP-Cores bis hin zur Entwicklerlizenz. Andersherum wird man das aber nie auf die Spitze treiben, da es auf der Softwareseite zu kompliziert wird gegenüber allen Möglichkeiten flexiblen Code zu schreiben.

~8:10
Geht es weiter mit Chipfläche. Da vergleicht er Coretex A5 mit Rocket Core.
Rocket ist: RV64GC
Cortex A5 kann das auch alles, darüber hinaus ist der Coretex aber auch mit NEON ausgestattet (also Vektoroperatoren) und Jazelle RCT.

~19:20
Geht es um Big Cores vs. vieler kleiner (Risc-V) Kerne. Das ist zwar ganz nett, aber da unterschlägt er eben auch. Dass es weit komplizierter ist. Ein Problem was wie er es beschreibt nahezu linear mit der Anzahl an Kernen skaliert ist in der Regel eben auch sehr gut Vektorisierbar. Genau für sowas gibt es Vektorextensions, oder aber Vektorrecheneinheiten (GPUs). Gerade bei letzteren ist der Overhead an Frontend im Vergleich zur ALUs in der Regel deutlich kleiner.

Naja und der ganze Vortrag und viele seiner Artikel sind leider so. Die meisten Argumente sind sehr herausgesucht und klappen allenfalls, wenn man die gelebte Realität ignoriert :/
 
  • Gefällt mir
Reaktionen: wuselsurfer
Piktogramm schrieb:
Der Herr Engheim ist was Veröffentlichungen angeht ja wirklich umtriebig, aber irgendwie schafft er es beim Thema CPU Architektur und ISA immer so halb daneben zu liegen
Ich hatte jetzt noch keinen Nerv, die ganze Stunde komplett anzusehen, daher habe ich mal ein bisschen durch das Video durchgescrollt. Zum großen Teil beschreibt er ja erst mal generell was RISC-V ist, und erklärt Prozessorgrundlagen anhand RISC-V - soweit ich gesehen habe, nutzt er dafür ein Multi-Cycle Design.
Bezüglich Micro-Op and Macro-Op Fusion, etc. habe ich beim kurzen Reinsehen den Eindruck das er aus einer älteren Berkley Doktorarbeit zu dem Thema zitiert (die stammt glaube von Chris Celio, hier ist ein Video von ihm:

Insoweit denke ich das der Vortrag auch Teile der akademischen Forschung zum Thema RISC-V wiedergibt.

Piktogramm schrieb:
Dann behauptet er noch, dass RISC-V modular sei. Das stimmt für die anderen ISAs auch
RISC-V ist auf jeden Fall von Anfang an mit dem Ziel Modularität gestaltet, während andere ISAs eher historisch gewachsen sind. Deswegen geht RISC-V etwas verschwenderisch mit Opcode Space um, sodass man für Erweiterungen nicht mit Prefix-Bytes, Modes, etc. arbeiten muss. So muss man ARM zwischen Thumb und "uncompressed" Mode umschalten, während man bei RISC-V einfach die compressed Instructions als zusätzliche Opcodes hat (allerdings erhöht die Unterstützung von Compressed Instructions die Komplexität gleich erheblich, speziell weil 32 Bit Instruktionen dann unaligned sein können, und dabei auch Cache-Line und Page Grenzen überschreiten können).

Bei der RISC-V Modularität geht es hauptsächlich um die Möglichkeit, den ganzen Bereich der Operationen auf den Integer Registern als Basis (I), Multiply-Divide (M), Atomics (A), Compressed (C) und die diversen BitOp "Unterextensions" in definierte Untermengen zu unterteilen, ohne das man propietäre Subsets bekommt.

Bei x86 gibt es das nicht in definierter Form, schon die originale x86 16 Bit ISA ist sehr komplex zu implementieren. Erst recht gibt es keine 32 Bit ISA ohne Protected-Mode. Außerdem ist nicht definiert, wie ein x86 Prozessor im 32 oder 64Bit Modus bootet, er muss immer erst mal den Umweg über 16 Bit Real gehen.

Im ARM Bereich sieht es etwas besser aus, mindestens in dem Mikrocontroller Profilen gibt ISA Subsets, und ein Cortex-M0 entspricht im Großen und Ganzen RV32I. Da aber auch Cortex-M0 so Dinge wie Multi-Register Push/Pop enthält, muss eine ARM CPU immer mindestens einen einfachen Micro-Code Sequenzer enthalten, der diese Dinge implementiert.

Ich habe selber schon zwei verschiedene RISC-V Designs in FPGAs implementiert, und RV32I hat wirklich den Charme, das man wirklich alles in eine einfachen 3 Stage Pipeline ohne Sequenzer implementieren kann. Lediglich für Load/Store habe ich eine einfach State-Engine um Wartezyklen auf dem Datenbus zu behandeln.

Aber Du hast sicher Recht, für kommerzielle "Application-Class" Prozessoren (also Konkurrenz zu Cortex-A) ist das irrelevant, und ohne FP, Vektor und/oder SMID ist man nicht konkurrenzfähig.

Und bei komplexen CPUs ist es eh so, dass das Frontend die ISA Instruktionen in die interne Mikroarchitektur umsetzt, da ist die Quell-ISA denke ich wenig entscheidend. Ich kann mir aber durchaus vorstellen, das die mit weniger historischem Ballast belastete RISC-V ISA das Frontend kleiner und effizienter und zumindest auch besser verifizierbar macht.

Piktogramm schrieb:
Geht es weiter mit Chipfläche. Da vergleicht er Coretex A5 mit Rocket Core.
Rocket ist: RV64GC
Cortex A5 kann das auch alles, darüber hinaus ist der Coretex aber auch mit NEON ausgestattet (also Vektoroperatoren) und Jazelle RCT.
Das macht SiFive auch gerne. Wobei man sich eben auch die Frage nach dem Wert von speziell sowas wie Jazelle stellen muss. Es ist eben das Problem der gewachsenen ISAs von x86 und ARM, das eigentlich obsolete Befehle mitgeschleppt werden, weil eben sonst manches Legacy-Binary nicht mehr läuft. Man denke nur an so Dinge wie MMX. RISC-V ist nicht davor gefeit, dass es irgendwann auch solchen "Bloat" mitschleppt, aber noch kann man es auch besser machen....

Piktogramm schrieb:
Geht es um Big Cores vs. vieler kleiner (Risc-V) Kerne. Das ist zwar ganz nett, aber da unterschlägt er eben auch. Dass es weit komplizierter ist. Ein Problem was wie er es beschreibt nahezu linear mit der Anzahl an Kernen skaliert ist in der Regel eben auch sehr gut Vektorisierbar.
Es ist nichts Neues, dass, bei einem hinrechend parallisierbaren Problem, viele einfache Kerne mit niedriger IPC insgesamt effizienter (bezüglich Area und Power) sind, als wenige komplexe Kerne mit hoher IPC.
Im realen Leben sieht das ganz anders aus, das ist ja immer der Grund warum Intel sich immer wieder mit der berühmten "Brechstange" (Takt+Energie) die "Gaming-Krone" holt :)

Diese "Minion-Core" Ideen geistern halt auch durch die akademische RISC-V Welt. Auch die RISC-V Welt hat so ihre "Filterblasen" und Echokammern. Wobei dieses Video eben am manchen Stellen, der Widehall von 2016 ist :)

Wie ich auch in meinem urspünglichen Leserartikel schrieb, hat RISC-V einen Sweetspot zur Zeit vor allem als Ablösung diverser propietärer CPU Implementierungen im Low-End Bereich.

Im Applikation-Prozessor Bereich sehe ich in Zukunft vor allem China als Treiber. Da muss man auch aufpassen, das RISC-V außerhalb Chinas nicht mit schlecht gemachten (bzw. schlecht dokumentierten) Implementierungen Credibilty verspielt. Die bisherigen chineischen Desgins (egal ob Kendryte RV210 oder Gigadevice) hatten teilweise recht "eigenwillige" Interpretationen der RISC-V Spezifikation.
Was ich vom Allwinner D1 so lese, lädt mich auch nicht ein, damit rumzuspielen....
 
Zuletzt bearbeitet:
Zurück
Oben