Zum Inhalt springen

[UPDATE] Linux auf die Wii U portiert

Wii U, Wii U: Neu , ,

Der Pinguin watschelt auf die Wii U: Quarktheawesome hat den Linux-Kernel auf die Wii U portiert.

Genauer handelt es sich dabei um den Kernel 4.11.6 und Debian Unstable als Distribution.

UPDATE: Vorkompilierte Images sind jetzt erhältlich. Die fw.img muss in den Root der SD und der Kernel als "kernel" in "SD://linux/". Als nächstes muss ein USB-Gerät in EXT4 formatiert und das Debian-Rootfs darauf entpackt werden (Danke an Tarik für den HInweis!). Auf der Seite sind auch Docker-Images für alle, die einfach selbst kompilieren wollen.

Anschließend kann die fw.img per Haxchi oder CFW Booter gestartet werden. X.org und xf86-video-fbdev wurden noch nicht getestet, sollten allerdings funktionieren (aber sehr langsam, da noch keine HW-Beschleunigung).

Das Ganze muss allerdings selbst kompiliert werden – hierzu werden devkitPPC, devkitARM und armpis benötigt. Zuerst muss der Loader (die fw.img) kompiliert werden – hier einfach die Repo klonen, die castify.py um den Starbuck-Key ergänzen und "make" ausführen. Die fw.img sollte dann im Root der SD und der Linux-Kernel als "kernel" in SD://linux/ liegen. Als nächstes muss ein USB-Gerät in EXT4 formatiert und das Debian-Rootfs darauf entpackt werden.

Folgendes funktioniert bisher:

  • USB (nur hintere Ports)
  • Framebuffer
  • SD-Karten
  • Bluetooth (per Tethering mit einem Handy kann eine Internetverbindung hergestellt werden)
  • Einige ARM-Interaktionen (Shutdown, Reboot)
  • 2 GB RAM
  • Ein PowerPC-Kern
  • Beide Interrupt-Controller
Abonnieren
Benachrichtige mich bei
guest
86 Kommentare
Neueste
Älteste Am besten bewertet
Tarik

Schade, dass eine EXT4-Partition für Rootfs nötig ist. Wäre toll gewesen, wenn man das auf die FAT32-vWii-Platte hätte mit raufpacken können. Für Leute mit 2-Festplatten-Setup (Wii U-WFS und vWii-FAT32) wäre das noch ein weiteres USB-Gerät, zumal man vermutlich auch ustealthen müsste, damit CafeOS nicht wieder weint, aber dann wiederum ist fraglich, ob Linux mit UStealth klar kommt. Mal sehen, was Quark dazu sagt.
Ich sehe in dem Linux aktuell null Anwendungszweck, aber der Bastler in mir will es zumindest mal kurz ausprobieren.

EnterpriseFreak

XP (NT 5.1) geht auch mit FAT32 ^^

EnterpriseFreak

Hehe… NTFS wurde erst mit Fista (absichtlich falsch geschrieben!!!) eine feste Regel. Hast du eine Ahnung wie lang der Nintendo Support zum Antworten braucht? Mein einer JoyCon hebt nicht mehr gescheit und jetzt bin ich nervös…

EnterpriseFreak

Ok.

Tarik

Wollt grad schon sagen. 😀

Quark gab mir dazu übrigens Feedback:
"You couldn’t use FAT32 – Linux would chuck a tizzy. You could make a second partition though, or use something else (maybe NTFS?) for the vWii. If you have several drives connected though, you’d need to change your kernel commandline to mount the right one – we don’t have that option available yet. For now you need only one drive connected (your rootfs), or you wait for us to get a custom commandline working. Sorry about that…"

Marry

Jemand hat zu mir vor ein paar Tagen gesagt, dass die WiiU- bei ihm als Homeserver eingesetzt- einen besseren Server abgibt, als ein üblicher 50-Watt-PC.

Zum Downloaden von großen Dateien ist das Ding ideal. Gerade wenn du keine hohe Stromrechnung willst.

Tarik

Für die, die es nicht selbst kompilieren wollen:
https://gitlab.com/linux-wiiu/linux-loader
Quark war mal so "mutig", es bis zu einem möglichen Takedown dort zu lassen (die fw.img).
@WiiDatabase:disqus : Falls es nicht okay ist, das hier zu posten (obwohl es ja nur ein Link zu Gitlab ist), lösche es bitte einfach wieder. 🙂

EnterpriseFreak

Kann man, wenn man jedoch bedenkt, dass so auch Highres Texturen möglich währen – und JIT – anscheinend hat einfach keiner Lust drauf einen für die U zu entwickeln.

EnterpriseFreak

Sobald NV die Klappe aufmacht und den Kernel Entwicklern die Hardware offenlegt.

Wann kommt Linux für die 64?!
Die MIPS Architektur wird doch vom Kernel unterstützt… 🙁


Ok, Spaß bei Seite
Wenn morgen jemand von euch hört das irgend ein Typ am Staub einer N64 Kassette gestorben ist weil er sie geschliffen hat bin ich das. Wünscht mir Glück dabei meinen Regio Free Adapter zu bauen <3

Marry

Meinst du mit der 64 das N64?

EnterpriseFreak

Richtig

Marry

Linux würde aber nicht besonders gut darauf laufen. Was erhoffst du dir davon? xD

EnterpriseFreak

Ich habe von einem Cartridge gehört das einen eingebauten Modemadapter hat. Einen 512K Cache? 😉

Marry

Echt? Ok, das ist mir neu…Aber mal ehrlich: Und was erhoffst du dir davon? Einfach Linux auf dem N64 laufen zu haben?

Auf einem 66 Mhz (war das nicht so beim N64 damals? Oder warens 80 MhZ? xD) Prozessor?

Und wieviel Ram gabs nochmal? 4 Mbyte?

EnterpriseFreak

Das währe für mich einfach nur ein Just for fun Projekt. Jup, 4MB RAM kann man aber mit dem Expansion Pak auf 8 hochbringen und mit dem Kernel vlt. Sogar noch mehr mit einem custom pak. Zur Haupt CPU: ca. 100MHz – Der 2. Prozessor (Sound & Grafik) ist auf ungefähr 80, und ja das 64 hat 2 cpus.

EnterpriseFreak

Hier ein Link zum Spiel mit dem Modem

https://en.m.wikipedia.org/wiki/Morita_Shogi_64

Marry

Das wäre sowieso ziemlich langsam. Da könntest du dann tatsächlich fragen: Wofür?

Die Switch ist ein Tablet. Für Emulation & Co relativ uninteressant, weil du ziemlich eingeschränkt bist. Wie du schon sagtest: Es kommt nicht nur auf den Ram an.

Yama

Ich will Gamecube Emulation auf der Switch 🙁

Marry

Du irrst dich. Ein ARM-Chip ist so ziemlich das Langsamste, was man heute verbauen kann.

ARM-Chips wurden nicht für Geschwindigkeit entwickelt. Sondern für Entwickler-Freundlichkeit. Also einfach zu entwickeln. Und fürs Stromsparen.

Darum hat die Switch ja auch so massive Spieleprobleme. Nicht aus "Entwicklerfaulheit". Sondern weil die Switch halt ein Tablet ist. Und es kommt aus guten Gründen jedes Jahr ein neues Tablet raus.

Also ist die Switch bereits veraltet bzw. wird wohl bald ein Nachfolger angekündigt. Und es war auch von Anfang an bekannt, da man nun die Schiene wie bei Sony/MS fahren wird (alle 2-3 Jahre neues Gerät ankündigen, 6-8 Jahre Konsolenzyklen wirds nicht mehr geben).

Unity 2018 soll z.b. die Switch schon nicht mehr unterstützen. So ist es. Laut den Entwicklern soll sogar in Betracht gezogen werden nur noch die neuen Konsolen, also PS4 Pro und Xbox One X zu unterstützen, weil alles andere eben schon zu langsam ist. Aber man wird sehen.

"Wieso sollte man eingeschränkt sein?"

Ganz einfach. Weils ein Tablet ist. Kein Tablet kann eine nennenswerte Leistung aufweisen. Da benötigst du schon nen Core i3-Chip. Den hat aber kein gewöhnliches Tablet.

Kerne sind halt nicht alles. Und Gflops sind nicht alles. Du scheinst dich nicht sonderlich mit Rechenleistung auszukennen. Hat schon seinen Grund warum der Browser der Wii auch heute- ca. 8 Jahre nach Einführung der Tablets- schneller ist, als so manches Tablet. Ich war erst neulich wieder überrascht wie langsam ein Tablet mit 2 Ghz-ARM-Prozessor beim Internet ist, wenn man mal etwas komplexere Seiten aufruft (wo eben mehr Javascript drin ist). Hab das Ding schnell zur Seite gelegt und bin an den PC gegangen. Rate mal woran das liegt?

Jetzt nimmst du diese "Leistung" der uralten Wii und multiplizierst sie mit 15. Das ist in etwa die Leistung des PowerPC der WiiU.
In Zahlen ausgedrückt sind das 45 Gflops.
Aber ich finde das wird überbewertet, weil das halt nur die Rechenleistung ist, die maximal erreicht werden kann. Diese Rechenleistung nützt dir nichts, wenn du auf Javascript-Seiten surfst.

Letztendlich kommts immer auf die Bandbreite an, wenn du im Internet unterwegs bist. Alles andere ist dann unwichtig.

Darum ist dein Router auch so schnell im Internet bzw. kann von tausend Servern gleichzeitig herunterladen wenns drauf ankommt (das Problem ist, dein PC kann die Daten aber nicht von 1000 Computern gleichzeitig empfangen).

Weder AMD/Intel noch ARM-Chips sind für das Internet gedacht. Weshalb ihre Leistung in diesen Bereichen auch gnadenlos so gut wie jedem Router unterlegen ist.

Und genau aus diesem Grund gibt die WiiU auch einen hervorragenden "Homeserver" ab. Die Kiste schlägt hier jeden handelsüblichen PC- und verbraucht dabei nur 1/5tel des Stroms.

Mal ein Vergleich:

Der PowerPC benötigt nur 5 Watt pro Kern bei maximaler Last (70 Tbyte pro Stunde unkomprimiertes Material geliefert).

Verbrauchst du also nur 7 Tbyte pro Stunde, hast du auch nur 1/10tel Stromverbrauch von 5 Watt, ca. 0,5 Watt.

Du könntest glatt von einer Million PCs gleichzeitig Daten herunterladen mit diesem Chip und der Bandbreite (wie gesagt du könntest ca. 70 Tbyte pro Stunde herunterladen, weil das die reine Bandbreite ist, die verarbeitet wird, wohlgemerkt auf einem CPU-Kern, bei Komprimierung der Daten wäre es sogar noch mehr).

Nur: Finde mal einen Internetanbieter mit dieser Bandbreite…Du wirst keinen finden, nichtmal Google selbst, die dir das liefern können. Da musst du schon von 1 MIo PCs gleichzeitig Daten erhalten um diese Bandbreite zu erreichen.

Ich sags dir noch mal:

Wenn du einen simplen Befehl hast (wie z.b. "Sauge diese Datei aus dem Internet und speichere sie") und gibst diesen Befehl dem PowerPC…der wird diese Aufgabe locker 10x schneller bewältigen als selbst ein Core i7 mit 5 Ghz.

Weil das nichts anderes ist als "If Server X is online"- then download data x- then save data x "- then loop 1 Mio times-else don`t download anything"

So einfach ist das.

Während der AMD/Intel-Chip eher für komplexe Befehle gedacht ist. Etwa Videospiele. Oder Dinge, bei denen man viele Zahlen verarbeiten muss (Gflops). Aber Bandbreite- da kannst du alles von AMD, Intel und ARM-Chips vergessen. Die haben nämlich keine nennenswerte Bandbreite.

Aber jedes Mal, wenns um simple Befehle geht, wird ein PowerPC immer voraus sein. Die Realität zeigt es einfach.

Ansonsten hättest du nämlich einen AMD/Intel-Prozessor in deinem Router, wenns nicht so wäre 😉

Ansonsten könntest du problemlos von 1 Mio Computern gleichzeitig etwas herunterladen an einem schnellen PC.
Aber rate mal, was passiert, wenn du schon 100 Computer erreichst?

Eben.

Nur zur deiner Info: Alles was du herunterlädst, wird via Lan-Chip zum Prozessor geschickt und dort dann vearbeitet.

Und hier liegt das Problem: Wenn du keinen richtigen Netzwerkchip mit eigenem schnellem Prozessor hast (was in etwa auf 99% aller heutigen PCs zutrifft) dann geht diese Last auf deinen Hauptprozessor.

Und du kannst das gut beobachten: Wenn du von einer Quelle herunterlädst, hast du vielleicht 1% CPU-Last. Doch lädst du von 10 Computern runter, etwa via Emule oder Torrent oder ähnlichem, steigt deine Prozessorlast ins Unermessliche und du hast bereits 10-15% Prozessorlast.

Und das ist eben, weil dein Prozessor keine hohe Bandbreite hat. Bei 100 gleichzeitigen Downloads macht ein Core i7 mit 5 Ghz bereits die Fliege.

Und jetzt kannst du dir ausrechnen, was passieren würde, wenn du 70 Tbyte in einer Stunde runterladen würdest.

Nein, natürlich nicht nur von 100 Computern sondern dann vielleicht von 1 Mio. Der PowerPC-Chip ist dafür geschaffen.

Die Frage ist: Was passiert wenn hunderte Server kollabieren, weil sie eben nicht so schnell die Daten liefern können bzw. weil du dann die ganze Bandbreite für dich in Anspruch nimmst und die anderen Leute im Internet nur noch eine Fehlermeldung bekommen (Server down, bitte nächsten verwenden)?

Du siehst? Gute Gründe, diese Chips zu fürchten. Genauso funktionieren nämlich DDOS-Angriffe.

Der Server wird mit Anfragen bombardiert,bis dieser kollabiert. Daher auch "Distributed Denial of Service".

Marry

Bitte höre auf, mit mir zu reden. Du willst es halt nicht kapieren.

Musst du ja wissen.

Bitte google mal die Zahlen der WiiU und der des PowerPC. Der Hacker "marcan" gibt sie alle auf seinem Twitter-Account an. Frei verfügbar.

Ich habs dir sogar ausgerechnet. Bei dir fühlt man sich wie bei einem Kleinkind.

Wenn du nichtmal simpelste mathematische Dinge ausrechnen kannst (z.b. 20 Gbyte in der Sekunde sind ca. 70 Tbyte pro Stunde) dann solltest du am besten in die Schule zurückkehren 😀

Marry

Soso. Könntest du mir mal bitte mitteilen welche Zahlen angeblich falsch sind?

Ich habe dir sogar eine Quelle gegeben, wo diese Zahlen her sind.

Marry

Hab keine Zahlen erhalten. Du redest dich einfach immer tiefer rein 😀

Marry

Ich warte auf deine angeblichen Zahlen, die falsch sein sollen. Lass dir ruhig Zeit.

Marry

Du hast behauptet es gäbe Zahlen, die falsch sind. Und bis du diese jetzt endlich geliefert hast, werde ich nichts mehr dazu sagen 😉

m 00 vin

Nehmen wir mal an, du hättest Recht mit deiner Aussage, warum sollte Nintendo so eine Konsole überhaupt rausbringen bzw warum sollte soetwas von der Regierung zugelassen werden? Außerdem würden Google und die anderen großen Firmen etwas dagegen unternehmen.
Es sei denn es ist jeden scheiß egal und das denke ich nicht.

Marry

Ich verstehe nicht, was du meinst. Was genau sollte die Regierung dagegen haben? Wie willst du das denn aufhalten? Der Chip-Hersteller ist doch gar nicht Nintendo selbst. Die Regierung muss also den Chiphersteller aufhalten.

Es weiß ja kaum einer das mit der Bandbreite, ich mein offensichtlich nichtmal der Admin hier. Das ist doch der Haken. Man weiß es halt, bzw. hat mal davon gehört oder nicht. Und das, obwohl man die Zahlen überall nachlesen kann. Auf dem offiziellen Twitter-Account von "Marcan" z.B.

Vielleicht weiß es die Regierung aber auch schon längst?

Das Prinzip ist halt simpel: Die WiiU ist wie die Playstation 3 damals aufgebaut. Eher nicht so für Spiele geeignet. Für alles andere dafür aber umso mehr (bandbreiten-intensive Dinge).

Es kommt halt darauf an, was du damit machen willst.

Ist halt ne Homebrew-Sache.

Und vielleicht störts die Regierung nicht, weil Nintendo dem PowerPC-Chip keine Netzwerk-Freigabe erteilt hat?

Das hält die Hacker (egal ob böse oder nicht) aber nicht davon ab, ein solches Programm zu erstellen- was ja gerade gemacht wird- ansonsten wäre Homebrew ja nutzlos ohne Netzwerk- und aus der ARM-Sandbox auszubrechen. Das sind ein paar dutzend Zeilen Code und dann läuft das. Was glaubst du, warum es einen Watchdog (= Wächter) gibt, der den PowerPC-Chip sozusagen rund um die Uhr überwacht?

Also ich würde klar sagen,dass dies wegen den Bedenken der Netzwerksicherheit so gemacht wurde.

Zu deiner Frage:

"Warum sollte Nintendo so eine Konsole rausbringen?"

Das ist eine gute Frage.Nun, vergisst nicht, dass nicht irgendwer diese Konsole entworfen hat, sondern Satoru Iwata. Der war ein Genie. Er war ein Autist. Genies entwerfen nicht einfach irgendwelche Kisten oder Konsolen. Sie entwerfen ihren Traum.

Weißt du was ein Autist ist? Ein Autist kümmert sich nicht darum, was Regierung & Co über etwas denken. Er macht es einfach.

Autisten machen im Prinzip alles fehlerfrei und kümmern sich nicht um die Kosten.

Und zu deinem anderen Punkt:

Was willst du denn dagegen unternehmen, dass ein Chip einen Server mit 70 Tbyte-Bandbreite (und das ist der Best-Case, wenn keine komprimierten Daten verwendet werden, ansonsten wären es nämlich ca. 420 Tbyte/Stunde) pro Stunde bombarbiert?

Glaubst du wirklich, dass dir hier ne simple Hardware-Firefall bzw. ein anderes Schutzgerät noch hilft?

Es gibt doch kein Hilfsmittel dagegen.

Die Firmen schützen sich heute im Prinzip mit KI. Mit einer schlechten KI. Diese ist zwar lernfähig.

Aber was gibts hier zu lernen? Die KIs lernen, indem sie die Stärke der Attacke einstufen (die man mit Tbits/Angriff angibt). Hier jedoch hättest du nur einen einzigen Angriff und danach wäre alles funktionsunfähig.

Stell dir ein Botnet vor mit 1000 dieser Kisten zusammengeschaltet. Du hättest eine unfassbare Bandbreite die das Internet, so wie wir es kennen, wegwischen würde.

Aus diesem Grund werden solche hardwareverwandte Chips auch in Routern eingesetzt.

Was glaubst du, warum Router fast immer als erstes angegriffen werden?
Es ist genau deswegen:

Weil die Hacker wissen, dass Router für DDOS-Attacken wesentlich effizienter und schneller sind, als ein normaler Computer. Und unauffälliger natürlich.

Der Computer wird durch Virenscanner & Co geschützt. Ein Router dagegen hat keinen Virenscanner.

Marry

Der Witz ist: Selbst mit nur einem PowerPC-Kern (vorausgesetzt dieser ist unlocked, also nicht auf vWii-Speed limitiert) kann man ne Menge anstellen.

Aber: Damit lässt sich auch ne Menge Schabernack anstellen! Die Stärken dieses PowerPC:

– Datenbanken
– Speichern, Aufrufen und Editieren von Daten
– Datenein/Ausgabe generell
– Soundberechnung via Software-Emulation (benötigt viel Bandbreite)
– Internet bzw. Javascript-Berechnungen
– KI

Edit: Wir sollten jetzt schonmal beten, dass es niemand für "Schabernack" verwendet. Denn die Folgen könnten verheerend sein, wenn es doch irgendjemand macht.

Da wie gesagt, diese Architektur perfekt für Java-Script geeignet ist. Da die Architektur generell sehr gut für KI-Berechnungen von Internetscripts/Videospielen geeignet ist, kann so ein Angriff extrem mächtig sein.

Irgendwie ist mir nicht ganz wohl dabei, dass die Hacker (möglicherweise auch bösartige) im Besitz dieser Technik sind.

EnterpriseFreak

Man darf nicht vergessen, dass Nintendo Kompromisse gemacht hat und die CPU der eines PowerMacs aus dem Ende der 90er gleicht. Ob 1×1.2GHz pro System da überhaupt I
interessant währen?

Marry

Der Chip wäre trotzdem interessant, da du eine immens hohe Bandbreite hast. Denn das ist nicht "irgendein" PowerPC. Und der ist auch nicht vergleichbar mit dem eines Mac.

Es ist ein "asynchron arbeitender" mit 60 Gbyte/s Bandbreite. Speziell angepasst. Es ist der erste asynchron arbeitende PowerPC dieser Art.

Allein die Bandbreite des Chips (die Anzahl der Logiktransistoren die mit boolschen Gleichungen = If-Then-else arbeiten können) ergibt die Leistung für Javascript. Die Gflops- also mathematischen Berechnungen- sind hier egal, weil es nur simple "If-then-Else"-Befehle sind. Auch die 1,2 Ghz sind egal.

Wofür wird die meiste Malware geschrieben? Javascript!

Und ich rede von DDOS-Angriffen.

Das ist der perfekte Chip für DDOS, da diese immer via simplem "If-Then-Else"-Javascript ablaufen.

Deshalb Gefahr.

Wenn du dem PowerPC sagst, dass er 1 Milliarde mal die IP-Adresse XYZ angreifen solls, dann wird er das auch tun.

Das ist das Problem. Da er – pro Kern wohlgemerkt!- eine Bandbreite von 20 gbyte/s oder etwa 70 Tbyte pro Stunde hat, kannst du dir ausmalen, was dann passiert. Die DDOS-Attacke wäre enorm und nicht vergleichbar mit der eines normalen Computers.

Und diese Rate entspricht den unkomprimierten Formaten.

Was aber, wenn der Code komprimiert ist? Dann erreichst du locker ca. 1 Pbyte/Stunde Datendurchsatz.

Vor allem, wenn du dann noch mehrere Geräte hintereinander schaltest, hast du unvorstellbar hohe Datenraten. Meine Befürchtung: Früher oder später wird es soweit kommen. Denn auch das ist eben möglich. Du bist nicht auf ein Gerät allein angewiesen. Du kannst- rein theoretisch- mehrere solcher Chips in ein "Botnetz" integrieren, sofern du ein Programm hast, was dies erlaubt.

Und genau deswegen meinte ich dass man damit ne Menge Schabernack treiben kann.

So langsam dürfte klar werden, warum Nintendo dem PowerPC-Chip kein Programm für den Internetzugriff gegeben hat.

Ein Java-Script ist meist nichts anders als ein simpler "If-Then-Else"-Angriffsbefehl für eine IP-Adresse. Und genau das ist das Problem. Genau auf diese Dinge ist diese Architektur ausgelegt. Auf simple, sich aber millionenfach wiederholende Befehle.

Ein PowerPC ist langsam bei komplexen Befehlen. Relativ. Aber er ist ungeheuer schnell bei simplen, sich ständig wiederholenden Befehlen (Z.b. Loops).

EnterpriseFreak

Nun die Architektur ähnelt sehr wohl der eines alten Power Macs. Siehe Abschnitt Design in der Wikipedia Seite des Espressos.
https://en.m.wikipedia.org/wiki/Espresso_(microprocessor)

Marry

Es ist ein PowerPC 750. Aber eben kein normaler, wie man diesen von 2006 oder früher kennt. Wo die halt noch gebräuchlich waren. Mit altem sram-Cache und so, der dazu tendier zu überhitzen.

Ein PowerPC 750 ist auch nicht multicore-tauglich. Dafür war einiges an Änderung notwendig. Und dazu wird spezieller Hochleistungs-Cache verwendet, um die Leistung entsprechend hochzuskalieren.

Marry

Du verstehst es nicht?

Hier ein paar Dinge:

a) Der WiiU-PowerPC soll zu etwa 90% aus sogenannten "KI-Gattern", also boolschen Gleichungs-Transistor-Anordnungen bestehen. Diese Transistoren werden für Java-Script verwendet. Wann immer du eine Datei aufrufst, diese änderst, sie speicherst usw, benötigst du solche Transistor-Anordungen. Moderne Chips haben nur noch sehr sehr wenige dieser Transistoren, die für KI und Logik geeignet sind.

Moderne Chips sind nur noch "Number-Cruncher". Das heißt, sie verarbeiten fast nur noch Zahlen.

Eine KI ist aber nicht aus Zahlen bestehend, sondern besteht aus simpelsten "If, then-else"-Befehlen.

Das heißt- es funktioniert wie eine Datenbank.

Es läuft in etwa so (einfache KI):

Befehl "IF" (Wenn du dich nach links bewegst)
Befehl "THEN" (dann bewege den Feind nach rechts)
Befehl "ELSE" (ansonsten bewege den Feind nicht).

Verstanden? Das ist die simpelste Form der KI.

Wenn du die ganzen Befehle verschachtelst, hast du eine komplexe KI.

b) Nur ein winziger Bruchteil der Chipfläche des PowerPCs der WiiU besteht aus Cache. Der Chip ist also ein vollkommen anders aufgebauter Chip und widerspricht allem, was man sonst so gebaut hat.

c) Ein handelsüblicher AMD/Intel-Prozessor (oder auch ARM-Chip) dagegen besteht zu 50% aus reinem Cache und dann hast du ja noch deutlich mehr Kerne und alle Befehle müssen auch untergebracht werden. So bleibt eben kaum Platz über (vielleicht 1-2%) für Logiktransistoren.

Die Bandbreite eines Chips ergibt sich aus seiner Größe! Je kleiner ein Chip in der Fläche ist, umso schneller kann ein Signal von a nach b sausen.

Je größer der Chip ist, umso geringer auch seine Bandbreite, da das Signal länger von a nach b braucht.

Aber: Das ist nur die Bandbreite. Du benötigst natürlich auch die entsprechende Anzahl an Logikgattern, damit diese Logik mit immenser Bandbreite dann auch verarbeitet werden kann.

Marry

Der WiiU PowerPC besteht eben nicht zu 30-40% aus gewöhnlichem Cache. Hast du dir mal ein Bild des Prozessordies davon angesehen? Anscheinend nicht, ansonsten würdest du sowas nicht schreiben xD

Da ist keine große Fläche mit Cache bedeckt! Deswegen sagten die Leute damals in den Foren auch "Was soll das für ein Chip sein? Der sieht einem PowerPC 750 mal so gar nicht ähnlich."

Und ein moderner Chip, etwa ein AMD Jaguar hat 96 mm² Fläche. Wovon genau 50% (48mm²) für den Cache draufgehen.

Bei der WiiU wird spezieller Cache verwendet (eDRAM wird auch im PowerPC-Chip selbst verwendet). Dieser benötigt nur ca. 1/10tel der Grundfläche von herkömmlichem Cache.

Darum gibts ja soviele Logiktransistoren, weil ansonsten nichts überbleibt, weil kaum Fläche für Cache benötigt wird. Der Cache des WiiU-Chips ist in etwa 3mm² groß (ca. 1mm pro Mbyte). Der ganze Chip ist in etwa 30mm². Das bedeutet, dass in etwa 80% des Chips aus reinen Logikgattern für If-When-Then-else-Befehle bestehen. Und das ist eben nicht das was du geschrieben hast. Es gibt unterschiedliche Transitoranordnungen. Ich schrieb boolsche Logik, das heißt dass das eben NICHT für Zahlenverarbeitung ist! Und das ist so, weil der PowerPC 750 nichtmal eine richtige SIMD-Einheit hat. Ergo liegen seine Stärken nicht bei Rechenaufgaben, sondern in "Eingabe und Ausgabe".

Daher auch der Codename "Espresso". Es bedeutet (Wörlich übersetzt) "Schnell rein, schnell raus".

Der Rest der Transistoren des Transistorcounts geht für die anderen Befehle drauf.

Ein PowerPC hat nunmal wesentlich mehr Logikgatter als ein AMD/Intel-Prozessor und daher auch wesentlich mehr Register. Sind eben unterschiedliche Verwendungszwecke.

"Wir reden hier von einer Spielekonsole, nicht von einem Quantencomputer."

Theretisch ja. Praktisch nein.

Denn der IBM Espresso ist der Nachfolger des IBM Cell, der schon ein Hochbandbreiten-Chip war. Der IBM Cell wurde eingestellt.

Ich kann dir nur sagen, was ich weiß. Und so siehts nunmal aus.

Was verstehst du daran jetzt nicht? Du kannst alle Zahlen dazu googeln.

Nochmal: Ein herkömmlicher Chip (etwa von AMD/Intel) verarbeitet in der Sekunde eben enorme Zahlenreihen. Er ist für Number-Crunching gedacht.

Die Berechnung vom "Internet" (etwa Javascript) oder von komplexer/einfacher KI aber funktioniert nicht via Zahlenreihen. Du schickst keinen Zahlencode ins Internet, wenn du mit einem Server Kontakt aufnimmst.

Sondern du sendest ne Simple "1".

Klingt einfach? Ist es auch. In der Theorie. die Praxis ist aber: Mit jedem verschickten "Ping" hast du auch nen Overhead. Und deine Bandbreite auf dem AMD/Intel-Chip ist sehr begrenzt. Daher kannst du auch nur begrenzt Pings ausführen, da die Bandbreite zu gering ist.

Kurz: Diese Chips taugen nicht für Bandbreiten-Aufgaben. Der PowerPC wurde nun speziell angepasst. Um enorme Datenbandbreiten pro Stunde verarbeiten zu können.

Der speziell veränderte PowerPC der WiiU verarbeitet pro Sekunde etwa 20 Gbyte. In einer Stunde, also 3600 Sekunden, sind das immerhin ca. 70 Tbyte.

Diese Daten gelten für einen Kern. Und das ist unkomprimiert. Bei 3 Kernen kommst du auf etwa 210 Tbyte in der Stunde Datendurchsatz.

Und wenn du das alles noch komprimierst, erreichst du in etwa das 5-6 fache pro Stunde. Also ca 1 Pbyte pro Stunde.

Am Tag sind das- bei 3 Kernen gerechnet (jeder Kern arbeitet für sich selbst) 24 Pbyte Datenbandbreite.

Finde mal bitte eine Festplatte, oder SSD die Daten mit dieser Geschwindigkeit aufzeichnet.

Und das alles ist eben möglich, weil kein herkömmlicher Cache verwendet wird im Chip selbst, der (etwa AMD/Intel L1-Cache) 50 Gbyte pro Sekunde transferiert. Sondern etwa 20x mehr pro Sekunde.

Also ist es ein ganz anderer Chip.

Denn ein herkömmlicher Chip verarbeitet eben keine 20 Gbyte pro Sekunde, sondern nur wenige Gbyte, Etwa 2-3 bei heutigen Chips. Und ihr Cache ist auch um Größenordnungen langsamer, weil eben sRAM-Cache zum Einsatz kommt.

Lies dir nochmal durch, was ich oben gesagt habe, wenn du es nicht verstehst.

Es geht um Logikgatter.

Und ein herkömmlicher AMD/Intel-Chip hat eben nur sehr wenige Logikgatter.

Da er normalen Cache verwendet, und auf spekulative Befehle setzt. Er versucht eben, vorauszuahnen was als nächstes benötigt wird.

Darum auch der riesige Cache. Darum auch die ganzen komplexen Befehle.

Der IBM Espresso jedoch ist gegen Spectre immun. Er hat keinen Cache den er mit anderen Kernen teilt!

Jeder Kern hat seinen eigenen Cache!
Er ahnt auch nicht voraus was als nächstes benötigt wird weil er keine spekulative Logik besitzt/nutzt. Er liefert es einfach. Noch bevor der Prozessor es benötigt, hat der Cache es schon geliefert, weil das Server-eDRAM so schnell ist.

Mit einer Bandbreite von ca. (geschätzt) 1000 Gbyt/Sekunde und einer Latenz von vielleicht 1 Nanosekunde.

Und wenn jemals ein Mensch auf die dumme Idee kommen sollte, so einem Chip eine simple (aber gefährliche) Aufgabe zu geben – wie "Rufe IP x ab alle 0,xxx Sekunden" und da einen Loop dranhängt…

Dann kannst du Server wie "Google" im Geschichtsbuch suchen. Im Prinzip ist die WiiU nämlich mit einem Router vergleichbar vom Einsatzzweck.

Warum?

Ich hoffe ich muss dir das nicht erklären.

Falls doch:

Nun ist doch logisch! Du hast eine Bandbreite von 70 Tbyte pro Stunde.

Ergo wird der Chip mit 70 Tbyte/Stunde den Server attackieren. Solange bis dieser funktionsunfähig ist. Und da kein Server so einer Attacke lange standhalten würde…

Ist doch ne simple Sache oder?

Und deswegen sagte ich ja:

Gib einem PowerPC eine einfache Aufgabe wo ein Loop drin ist (Befehlswiederholung) und er wird darin seine wahre Stärke zeigen. Denn genau dafür wurde er ja geschaffen!

Für Datenbanken (was nichts anderes ist als "if-Then-else"-Befehlsketten). Auch wenn da natürlich hier und da mal ein Zahlencode dazukommt. 90% des Codes besteht aber aus simpler KI wie "Rufe x auf. Speichere X. Beende Y" oder eben "Mache dies, wenn das ist, ansonsten machst du das da."

Natürlich besteht ein Javascript-Code nicht allein aus solchen simplen Befehlen. Aber eben großteils!
Und erst solche simplen DDOS-Tools wie Hacker sie verwenden, bestehen zu über 90% aus solchen simplen Befehlen.

Was glaubst du, warum man die sonst "Script-Kiddies" nennt? Bestimmt nicht, weil sie sonderlich gute Programmierkenntnisse haben.

Es ist im übrigen egal, ob du Javascript auf Hardware- oder Softwarebene programmierst.

Der Chip ist trotzdem sehr schnell in diesem Gebiet. Weil er genau dafür geschaffen wurde.

Falls du das jetzt immer noch nicht verstehen solltest, stell mir bitte konkret deine Frage, was du nicht verstehst.

Marry

Korrekt. Und wo siehst du da nun 30 oder gar 50% Chipfläche für den Cache wie bei einem x86-Prozessor? Das sind eher 15%, vielleicht auch 20%- rechne es halt mal aus. Das graue auf der linken Seite ist der Cache, von dem ich rede. Das ist der L2-Cache, der bei x86-Prozessoren viel viel größer ist (teilweise über 50% schon). Dazwischen ist weitere Logik. Ca. 5% der Chipfläche geht für das enorme 60 Gbyte-Bandbreite-Interface drauf (3 x 20 Gbyte/Sekunde), was schon ein Novum ist für so einen Prozessor. Das ist hier am Rand zu sehen, das blau-dunkelgraue Band, was sich über den gesamten Rand an allen 4 Seiten des Chips zieht.

Satoru Iwata hat damals mal gesagt es gibt keine "tote Fläche", so wie bei anderen Chips.

Und der Unterschied den ich ansprach bezieht sich nicht auf boolsche Prinzipien allein. Du sprichst von Zahlen. Ich nicht.

Ich beziehe mich auf Vergleichs-Anordungen.

Die Transistoren sind so angeordnet, dass sie "Ist größer als" oder "Ist kleiner als" oder "ist gleich" oder ähnliche Vergleiche eben sehr schnell und in sehr großen Mengen verarbeiten können. Dafür benötigt es eine bestimmte Transistoren-Anordnung.

Sowas kann man nicht "mal eben" mit ein paar völlig anders angeordneten Transistoren berechnen, die für Zahlen ausgelegt sind. Ein Vergleichswert kann also nicht in einer SIMD-Einheit berechnet werden, weil die SIMD-Einheit nur dazu dient, etwa Fließkommaberechnungen durchzuführen.

Es geht um Wahrheitsvergleiche. Da gibts ja auch in Javascript so schöne Dinge wie "Wahr", "falsch", "nicht ganz richtig" "Richtig" oder "inkorrekt", "Völlig daneben" "das passt nicht", "Inakzeptabel" oder "Nein" 😉

Das ist der Unterschied. Genau das macht Javascript ja. Es ist eine Logik. Du kannst sie abschalten, aber dann funktionieren halt viele Webseiten nicht mehr oder sie liefern falsche Ergebnisse.

Genau diese Transistorenanordung gibts eben kaum noch bei x86-Prozessoren, die sich für Vergleichs-Berechnungen eignen.

Ich erwähnte ja bereits, dass die Bandbreite immer geringer wird, je größer die Chipfläche ist.

Und die Bandbreite eines 1x1mm² großen Chips ist in der Theorie deutlich größer. Und die Bandbreite eines 30mm² großen Chips ist eben auch um Dimensionen größer als die eines 300mm² großen Chips.

Man spricht da auch von Latenzen.

Die Latenz ein Signal von A nach B zuschicken im Prozessor ist beim 300mm²-Chip eben deutlich höher. Das ist schlecht.

Um eine hohe KI-Leistung zu haben benötigst du beides: Eine geringe Chipgröße, dadurch eine geringe Latenz und in Folge dessen eine Hohe Chipbandbreite.

Und du benötigst viele Register sowie viele Logiktransistoren, die dann diese Vergleichsberechnungen machen.

Denn da fließen keine Zahlen durch.

Sondern eben Zustände. Zahlen werden verglichen und dann wird eine simple Statusmeldung rausgegeben (also 1 = wahr, 0 = falsch und 01 = z.b. passt oder 10 = Inakzeptabel oder 101 = ziemlich gleich) und das dann an das Programm gemeldet.

Diese Logiktransistoren haben die Aufgabe eine Zahl oder einen Wert (u.a. werden auch Buchstaben auf ihre Wahrheit geprüft, wie du weißt) einzuschätzen.

Ergo muss bei einer KI geschätzt werden, wo du dich im Spiel befindest. Und stellen diese Vergleichstransistoren fest, du bewegst, dich, so bewegt sich auch der Feind – in die entgegengesetzte Richtung von dir (genauso funktioniert die KI im Spiel "Bomberman").

Weil so nunmal die KI eines Videospiels im Allgemeinen funktioniert.

Da werden keine Zahlen von A nach B geschoben.

Sondern ne Menge 1en oder auch 0en. Es werden Vergleiche angestellt. Und es werden Statusmeldungen etwa "Spieler bewegt sich schneller = ja, wahr, ergo Gegner schneller machen!) rausgegeben. Diese Statusmeldungen benötigen eine immense Bandbreite.

Es sind also keine wenigen Zahlen, die hierbei berechnet werden wo man ne Menge Gflops an Rechenleistung braucht (welche Rechenleistung? KI berechnet man im Grunde genommen gar nicht! Sondern du brauchst die nötige Bandbreite um die KI durchfließen lassen zu können).

Es ist eine hoch-bandbreitige Aufgabe, die innerhalb kurzer Zeit viele Signale von A nach B schicken muss.

Ist deine Bandbreite gering, so ist auch deine KI-Leistung (Javascript) gering.

Eine typische boolsche Vergleichs-Anordnung besteht aus UND-, ODER-, oder NICHT-Transistoren.

Das ist der Punkt. Während heutige Chips fast nur noch NAND oder andere Schaltkreise verwenden (keine Logik, sondern pure Mathematik).

Logik ist eben nicht Mathematik allein. Logik ist das, was Menschen "denken" nennen.

Logik ist vergleichbar mit IQ. Du hast den IQ entweder oder du hast ihn nicht. Den IQ kannst du nicht "erlernen". Mathematik dagegen ist einfach nur die Fähigkeit, zu rechnen. Mathematik kann man erlernen.

Oder auch sehr schöner Vergleich: Ein Grafikchip hat keine Logik. Er kann nicht denken. Er berechnet einfach nur das, was reinkommt, eine riesige Zahlenreihe. Er macht keine Vergleiche.

Genau aus diesem Grund kannst du kein Windows auf ner reinen Grafikkarte laufenlassen. Weil diese Chips keine Logiktransistoren haben. Eine GPU hat nicht die Fähigkeit, Vergleiche zwischen zwei Zahlen zu ziehen. Die Grafikkarte besteht nur aus aneinandergeketteten SIMD-Rechen-Einheiten.

Ein Prozessor hat diese Fähigkeit, rational zu denken (wenn du es so nennen willst), also gute Entscheidungen zu treffen, aber. Genau das benötigt man, um Windows oder generell ein komplexes Betriebssystem laufen zu lassen. Windows ist eben nicht nur einfach pures Durchrechnen von irgendwelchen Zahlen.

Sondern es geht mind. 50% der Rechenzeit um Vergleiche.

Also zurück zur Frage: Was genau verstehst du jetzt nicht?

Marry

Ich gebs auf mit dir. Glaub was du willst 😉
Fakt ist: es war deine Behauptung, der Chip würde 30-50% Chipfläche mit Cache vollhauen. Das ist falsch. Du hast es selbst gepostet. Sind eher so in etwa 15%. Meine Behauptung war, dass ein moderner Chip heute in etwa 50-60% der Fläche mit Cache vollhaut. Kannst du selber nachschauen, Mein Beispiel war der AMD Jaguar mit 96mm², wo genau 48mm² L2-cache ist (also 50% der Fläche). Damals wurden sogar Zahlen angegeben für den Espresso-Chip. Ich glaub ein Forum hat die Zahlen sogar ausgerechnet.

Aus diesem Grund hat in den Foren niemand den Chip auch nur ansatzweise als PowerPC 750 erkannt. Weil di halt nen ganz normalen Chip mit 50% Cache-Fläche erwartet haben. Der sieht aber anders aus.

Und du hast mir auch nicht gesagt, was du nun nicht verstehst.

Ich hab es deutlich gemacht,wie die Realität aussieht. Wirst ja sehen, wenn die falschen Hacker das in ihre Finger bekommen, was dann passiert.

Und was ich behauptet habe, was "Bullshit" sein soll, wüsste ich auch gerne mal von dir. Ich glaub du bist ein Admin, der eher von Nichts ne Ahnung hat.

Weder von der ARM-Architektur (sie wurde nicht für Performance geschaffen), noch von Rechenleistung. Oder von sonstigem.

Marry

Naja, das Thema ist ja auch nicht gerade einfach.

Kannst du ja mal erklären in einfacheren Worten.

Aber bei manchen Leuten redet man einfach gegen ne Wand. Da ist Erklären sinnlos. Siehe oben.

Jeder kann sich die Zahlen ansehen. Die sind frei verfügbar. Wieviel sind denn 20 Gbyte/Sekunde auf die Stunde gerechnet, hm? 😉

Genau diese Berechnungen hab ich halt schon vor Jahren gemacht. Ein paar Foren haben die auch gemacht. Wenn er die halt nicht nachvollziehen kann (oder wenn er kein Mathe kann), dann kann ich da lange reden. Da kommst dann aber auf keinen grünen Zweig.

Jedenfalls hat eine Stunde 3600 Sekunden.

Ergo nimmst du die 20 Gbyte x die 3600 Sekunden.

Und das ergibt pro Stunde eben etwas mehr als 72000 Gbyte, das sind ca. 70 Tbyte.

Jetzt muss man nur noch wissen dass die Bandbreite eines AMD/Intel-Chips viel geringer ist und schon machts "Klick".

niino

Was hast du bitte geraucht? ._.

Marry

Nichts. Ich gebe nur Fakten wieder. Die Zahlen sind für jeden einsehbar.

Die Chipfläche besteht nicht zu 30% oder gar 50% aus L2-Cache, so wie bei anderen Chips heute.

Und laut Aussage des Produzenten damals "Wird kein Prozent der Chipfläche verschwendet, so wie bei anderen Chips".

Soweit so klar?

Aus diesem Grund weiß auch bis heute keiner so recht, was das Ding eigentlich ist. Denn da sind ne Menge boolscher Logik-Transistoren drauf (also mit Vergleichs-Logik versehen, nicht wie sonst mit Speicher/Arithmetik-Logik also reine Mathematik), die eben kaum einer kennt.

Für Vergleichs-Logik benötigt man UND, ODER und ähnliche Transistor-Anordnungen.

Es ist der erste, asynchron aufgebaute PowerPC.
Aber es ähnelt eben nicht einem PowerPC 750, weil dessen Die ganz anders aussieht. Und daher weiß keiner, wo er es einordnen soll.

Der Chip sieht weder wie bei der Wii, noch wie beim Gamecube damals aus.

luckyforyouthatswhatilike

Und was ist der Sinn dahinter? Was bringt es wenn ich Linux auf Meiner Wii U habe?

EnterpriseFreak

Einiges:
– zb. Custom Browser (Chromium, firefox etc)
– Die Möglichkeit Java Programme auszuführen
– evt. Bald den VLC Media Player
– Eine nette Sandbox
– JIT Emulatoren (wenn PPC Pakete verfügbar sind(
Und vieles mehr

EnterpriseFreak

Haben sie, das letzte Debian mit PPC Support war 8 – Jedoch kann man die meisten Programme immernoch auf PPC kompilieren. Zu meinem Post unten: meinst du auch das es möglich währe per Linux Kernel die Wii U auf 4k@24fps zu zwingen (ginge zumindest vonwegen HDMI 1.4)

EnterpriseFreak

Nun wenn man bedenkt, dass das selbst eine billige HD Graphics in nem Intel Atom mit 64MB dez. VRAM das hinbekommt… Dann kriegt das auch ne Radeon Latte auf R4XX Basis hin…

Yama

Die Wii U könnte 4K@24fps rendern, das würde dann aber in grafische Konkurrenz mit dem N64 treten

EnterpriseFreak

Was der N64 hinbekommen hat? Im Highres Mode oder im normalen?

Yama

Müsste HighRes sein

EnterpriseFreak

Also im 640×480 Mode…
Das eigentliche Problem mit den Texturen des 64 ist, dass der Texture-Cache nur 4KB (1/1000 vom N64 Stock RAM) groß ist und deshalb halt nur 32×32 in guter Farbqualität möglich ist. Als Rechnung nehme ich √(4096)÷bpp

Aber 4k@24 währe schon um aus der Wii U ein Media Center zu machen

Yama

Viel spaß, du kriegst dann aber niemals 24 Bilder auf 4k, müssten dann um die 2-3 Bilder in der Sekunde für Videodekoding in 4K sein.

EnterpriseFreak

Vielen dank!
Aber für mein Projekt warte ich lieber noch bis Hardware Beschleunigung da ist und alle 3 PPC nutzbar sind.

Yama

Meine Argumente waren eigentlich so gemeint das die Wii U so schlecht auf 4K performt wenn alle 3 Kerne und HW Beschleunigung Verfügbar sind

EnterpriseFreak

Achso… Nun das kann nur die Zeit beantworten. Wenn wir Mal wüssten wie stark die U ausgelastet ist wenn sie im Browser ein Video in 1080p abspielt dann könnten wir die Sache schon besser einschätzen.

Yama

1080p Ist auf jeden Fall zumindest bei 30 fps Drin. 1060p@60fps könnte schon etwas schwerer umzusetzen sein

EnterpriseFreak

Das müssten wir mal genau analysieren, es kommt ja auch auf die Codierung an, wenn es ein nativ von der Wii U Hardware unterstütztes Format ist (MP4/H264) sieht es ja dann schon wieder anders aus.

Marry

Hättest du die Frage für die Wii gestellt könnte man es verstehen. Auf der Wii war es relativ sinnfrei denn außer als Homeserver oder als Multimediazentrale war die Wii nicht unter Linux geeignet. Weil man da nur 88 Mbyte Ram hatte und nen relativ langsamen Prozessor.

Aber die WiiU hat eben ca. 20x soviel Ram (volle 2 Gbyte unter Linux nun nutzbar!). Und sie hat eine etwa 15x so schnelle CPU.

Damit lässt sich eine Menge anstellen. Damit wirst du problemlos jede Menge Linux-Programme auch tatsächlich nutzen können.

Und selbst Emulation unter Linux wird möglich wegen genug Ram. Dir sollte ja bekannt sein, dass man für Emulation immer viel Ram benötigt. Mit 88 Mbyte kommst du da nicht weit, wenn du z.b. Wine unter Linux (also via Homebrew) laufen lassen möchtest.

Denn Linux und Wine benötigen Ram. Und wenn du unter Wine ein Spiel laufen lassen möchtest, benötigst du auch Ram dafür.

Marry

Die Ramanbindung ist hier egal, weil das für diesen PowerPC nicht von Bedeutung ist. Dieser Prozessor wird über eDRAM, eine spezielle Art von Cache gespeist.

Der Ram ist nur ein Datenzulieferer für den eDRAM. Der schnelle eDRAM füttert aber den PowerPC, nicht der Ram. Der Ram an sich füttert so gesehen nur den Cache.

Vielleicht schafft man es, Wine zum Laufen zu bekommen. Wine läuft ganz normal unter Linux. Das Einzige was die brauchen, ist ein funktionsfähiger Grafikchip-Treiber.

Eigentlich ist es sogar sehr wahrscheinilch, dass bald ein funktionsfähiger Treiber gefunden wird.

Theoretisch kannst du den sogar selbst schreiben. Du musst nur die Eckdaten des Chips mit den von offiziellen AMD-Chips vergleichen und dann einen offziellen Treiber so umändern, dass dieser den WiiU-Chip akzeptiert. Es heißt ja, dass dieser Grafikchip in der WiiU von einem anderen AMD-Chip abstammen soll.

So könnte man seinen Treiber selbst schreiben. Nur obs funktioniert, bleibt dann die Frage.

Es gibt übrigens gute Gründe warum man sich für einen langsamen Ram (mit sehr geringer Latenz) entschieden hat.

niino

Du hast ein paar Dinge nicht verstanden.
1. Der eDRAM dient in erster Linie der GPU. Zugriffe der GPU geschehen priorisiert. Großer L3 Cache ersetzt keine schnelle RAM-Anbindung. In eine ähnliche Architekturfalle ist Microsoft auch mit der XBOX One getappt.
2. Irgendwie müssen Daten ja in den eDRAM gelangen. Woher? Vom RAM.
3. Gerade Gaming-bezogene Anwendungen profitieren von hohen Speicherbandbreiten enorm.
4. Allgemein ist im Gaming eine hohe Bandbreite einer geringen Latenz vorzuziehen. Und die Latenz des eingesetzten DDR3-1600 RAMs ist darüberhinaus alles andere als gering.

Marry

Zu 2. Das sagte ich doch. Ein Datenzulieferer. Der Punkt ist: Da ist eine Logik drin, die eben priorisiert, was im Ram landet bzw. im eDRAM und was nicht.

Sein Hauptpunkt war jedoch, dass er meinte das Ram wäre langsam.

Tja, es ist absichtlich so langsam. Denn das ist kein gewöhnlicher PowerPC aus nem Mac oder so, wo es eben keinen L3-Cache gab/gibt und die Grafikkarte nur ganz normalen Ram zur Verfügung hatte bzw. handelsüblichen gDDR3-Ram. Du hast hier ja auch keine richtige SIMD-Einheit im Prozessor. Und der hat auch kein Altivec oder ähnliches was aus den Macs damals kam.

a) Das Gerät soll viele Jahre Lebensdauer erreichen. Kein gewöhnlicher Ram erreicht das ohne "tricksen". Es gilt je mehr Mhz, desto schneller erfolgt der Ram-Tod.

b) Der eDRAM dient als schneller Ramersatz. Es ist halt kein gewöhnlicher Cache, so wie du ihn vom PC kennst.
eDRAM hat eine sehr, sehr hohe Lebensdauer, daher wurde er eingesetzt, da die Architektur in etwa der einer Playstation 3 damals (schneller Ram + schnelle Caches) entspricht.

Dieser Cache kann Daten mit ca. 1000 Gbyte/s transferieren vom Ram in den Cache und umgekehrt.

Zu 4. Das weißt ich selbst. Es wird aber ULL DDR3 eingesetzt. Mehr ist nicht bekannt. Was willst du also sagen? Es ist halt langsamer, aber mit geringer Latenz versehener DDR3-Ram.

Eigene Anmerkung:

Dieses Problem- nämlich dass die WiiU mit Level 3-Cache arbeitet (Denn nicht nur die GPU kann auf diesen 32 Mbyte großen eDRAM zugreifen, sondern auch der IBM Espresso-Chip selbst!) ist eben in etwa wie auf der Xbox 360 bzw. auf der Xbox One wo man auf esram setzte.

Und das erklärt auch die "Cache-Issues".

Denn wie ich schon sagte: Ein bestimmtes Protokoll sorgt dafür, dass immer genug Daten im eDRAM bereitstehen (welches übrigens mit komprimierten Daten arbeitet, du hast also nicht nur 32 Mbyte reinen Inhalt), und somit der Prozessor niemals stillsteht.

Insgesamt stehen dem Prozessor also in etwa 3 Mbyte L2-Cache sowie 32 Mbyte Level 3-Cache (mit der GPU geteilt) zur Verfügung.

Da die Daten jedoch häufig komprimiert sind, kommst du eher auf etwa 128-256 Mbyte Cache-Daten, wenn du es so ausdrücken willst.

Mein Fazit ist: Wenn du als Entwickler den L3-Cache nicht nutzt, sondern dich nur auf den langsamen Ram verlässt (bei nem PowerPC) dann bist du doch selbst schuld. Du erwartest von der Maschine etwas, für was sie nicht ausgelegt ist.

Es ist eben möglich, die Daten im Cache abzulegen und den Prozessor so zu nutzen, dass dieser alles vom Cache erhält. Aber du musst es auch wollen.

Du kannst doch nicht sagen "Das Ding ist langsam."

Nur weil du nicht in der Lage bist zu verstehen,dass das Ding nicht darauf ausgelegt ist, Gigabyte-weise Daten im Ram zu lagern sowie es andere Systeme handhaben.

Dies ist ein PowerPC. PowerPC-Chips haben wesentlich mehr Register als AMD/Intel-Chips und die Daten können nur im Cache oder im Register berechnet werden, NICHT aber im Ram! Weil so nunmal PowerPC-Chips arbeiten.

Wenn du also etwas im Ram berechnen möchtest, muss der Inhalt erst an den Cache geschickt werden.

Die Kiste hat also aus guten Gründen nur 2 Gbyte Ram, wie du sicherlich weißt. Und der Ram ist aus guten Gründen so langsam.

Ich hätte es ganz genauso gebaut, um ehrlich zu sein.

So eine Kiste baut halt nur ein Genie. Niemand anderes.

Und wie gesagt:

Darum hast du auch die Caching-Issues.

Vermutlich weil Linux eben nicht dazu in der Lage ist den 32 Mbyte-eDRAM-Cache anzusprechen.

Für genau diesen Chip ist die WiiU aber ausgelegt, bzw. der PowerPC.

Ansonsten bremst du ihn halt künstlich aus, weil der PowerPC nur noch Zugriff auf 3 Mbyte Cache hat statt insgesamt 35 Mbyte.

Nochmal: Linux kann zwar den Level 2-Cache (eDRAM) ganz normal nutzen.

Weil er halt in die CPU integriert ist.

Aber auf den 32 Mbyte-Level 3-Cache kannst du nur zugreifen, wenn du einen entsprechenden Treiber bastelst der das ermöglicht (der Treiber muss ja irgendwo im WiiU-Betriebssystem vorhanden sein). Tja und der fehlt bei Linux. Weil Linux die WiiU und dessen Architektur nicht kennt.

Da die CPU aber so gebaut ist, Daten auch direkt aus dem Level 3-Cache zu holen, so wie heutige moderne Prozessoren, hast du eben bei bestimmten Anwendungen bzw. Berechnungen Caching-Issues.

Anders ausgedrückt: Vielleicht erwartet die CPU, dass die Daten im Level 3-Cache liegen. Das tun sie wohl aber nicht, weil Linux keinen passenden Treiber hat. Ergo führts zum Missed Cache-Zugriff (= Latenz).

Es kann natürlich aber auch einfach so sein, dass die Daten einfach durch den Ram müssen, also dass der GPU-eDRAM-Buffer schlichtweg komplett wegfällt weil kein 32 Mbyte-eDRAM-Support da ist.

Das wäre natürlich ziemlich schlecht, weil du dann große Probleme bei 3D-Spielen bekommen wirst.

Denn die Latenzen addieren sich natürlich bei großen Mengen an GPU-Daten.

Also nochmal: Der Prozessor ist darauf ausgelegt, ständig mit Daten gefüttert zu werden. Dies geschieht nicht via Ram, sondern via extraschnellem L2-CPU-Cache. Und dies geschieht via Extra-Level3-Cache, der auch gleichzeitig den Grafikchip füttert.
Und dies geschieht indem der IBM Espresso viele Register hat, die eine normale CPU eben nicht hat.

Der Ram ist nur als langsame Datenfütterung des eDRAMs gedacht. Darum muss er auch geringe Latenzen aufweisen.

Die WiiU ist nicht eine gewöhnliche Kiste. Mit gewöhnlichen Bauteilen.

Das ist genau das Problem der schnellen Computer heute:

Ständig raucht entweder der Ram, die CPU oder das Mainboard ab.

Gerade heute ist das ein immer schlimmeres Problem.

Das ist auch einer der Gründe, warum bei wichtigen Computern heute immer langsameres Ram verwendet wird, und nicht das schnellste, verfügbare.

Es gilt: Je mehr Mhz, desto mehr Elektronenmigration. Desto schneller der Ramtod.

Und glaub mir eins: Ich kenn mich aus mit defekten Ram-Bausteinen. Hab schon etliche gesehen.

Und heute kann man festhalten: Mit zunehmender Mhz-Erhöhung verkürzt sich die Ram-Lebenserwartung.
Und wie du sicherlich weißt, ist Ram in den letzten Jahren verdammt teuer geworden.

Ich schätze, um das Caching-Problem zu lösen, wird man nicht umhinkommen, einen geeigneten Treiber zu schreiben.

Denn sonst hast du ja keinen funktionsfähigen GPU-Buffer.

Bzw. der Buffer liegt einfach nur im normalen Ram. Und das ist halt nicht dafür gedacht/vorgesehen.

EnterpriseFreak

Wine kann man theoretisch schon zum laufen bringen, da Qemu auch CPUs für einzelne Programme emulieren kann ohne dabei eine komplette VM (OS, etc.) zu managen.

EnterpriseFreak

Allerdings.
Ich hab mich nochmal informiert – Wine würde mit Qemu nicht gehen da es shared librarys nutzt und Qemu damit nicht zurecht kommt

Marry

Bezüglich deiner Frage wegen 15x schneller.

Du hast 70% höheren Takt. 12x mehr Cache und eine 10x schnellere Datenlieferung (20 Gbyte/Sekunde statt 2 Gbyte/Sekunde wie bei der alten Wii) bei beiner Hardware-bedingten Architektur (PowerPC steigt direkt ums Doppelte in der Geschwindigkeit wenn du den wichtigen Cache verdoppelst).

Deshalb ergibt das ca. 15x schnellere Performance.

Bedenke: Performance ist nicht nur "Gflops" so wie du das annimmst. Dein Fehler ist, dass du immer von mathematischen Dingen allein ausgehst. Du gehst von Benchmarks aus. Von theoretischen Zahlen.

Ich spreche von der Alltagsleistung.

Die Performance im realen Leben ist eine Mischung aus Gflops und einer gewissen Bandbreite die für Dinge wie KI und Logik benötigt werden. Oder auch für bestimmte Befehle wie Daten Speichern, Laden, Ändern usw.

Und die 15x-Angabe bezieht sich nur darauf, wenn dein Programm auch tatsächlich den 12x größeren Cache verwenden,und die Bandbreite ausnutzen kann. Den L3-Cache musst du dafür natürlich auch verwenden.

Es ist eine bis-zu Angabe. Theoretisch bist du 15x schneller. In der Praxis gibts dann noch Dinge wie Overhead und anderes wie Programme die nicht für diese Architektur geschrieben wurden.

EnterpriseFreak

Edit am Rande:
Die Wii U hat HDMI 1.4 – HDMI 1.4 kann 4k@24fps – PAL N64 Spiele laufen auf 50Hz oder eben 25fps – Eine Hoffnung?

der kaländer

Das ist echt cool! Wird es irgendwelche Vorteile bringen, außer eben Linux?

Tarik

D.h. ich kann Linux per Haxchi von SD starten, ohne meinen Wii U NAND (CafeOS) zu affektieren? Genauer gesagt, ich starte es quasi sorglos wie ’ne Homebrew App?