ConsoleWAR Last-Gen-Technik (Konsolen, PS4, Xbox One und Wii U)

Dort steht nicht wie dieses Feature bei der Switch unterstützt wird. Ich finde selbst dazu übrigens auch keine Quellen und mir ist auch nicht bekannt, dass es in Games auf der Switch möglich ist.
 
Es gibt auch keinen Bericht explizit für die Switch, wie die Cache-Kohärenz funktioniert, also ob MESI, MOESI, MESIF etc..., dennoch wissen wir, dass die Architektur so arbeiten muss. Da stellt sich auch keiner hin und sagt, bitte zeige einen Artikel explizit für die Switch. :ugly:

Das sind grundlegende Vorgehensweisen für Rechner. Grundlagen Rechenarchitektur und Grundlagen Betriebssysteme.
 
Paging ist mit Sicherheit kein grundlegendes Feature für ein embedded System oder eine Konsole. Mir ist zumindest keine einzige Konsole bekannt, die das unterstützt.
 
Wie gesagt, es ist Kernelement eines Betriebssystems. Auch ein Android hat das.

Ob nun Paging, Swap-File oder anderes, es bleibt an sich das Gleiche.

Dass man darüber weniger Artikel findet bei Konsolen, ist klar. Warum auch? Das interessiert höchstens Ingenieure des jeweiligen Herstellers.

https://cturt.github.io/ps4-3.html

Since page fault is defined as hardware exception 14 in the x86 architecture, it is safe to assume that this is unchanged in the PS4.

Eine MMU ist heutzutage Standard in der Hardware und dann brauchst du eine Exceptionhandling für Page Faults. Das ist im Kernel verankert und mittlerweile bei bestimmten MMUs sogar in der Hardware.

Die PS4 verwendet offenbar Paging.

"Flexible Memory" is memory managed by the PS4 OS on the game's behalf, and allows games to use some very nice FreeBSD virtual memory functionality. However this memory is 100 per cent the game's memory, and is never used by the OS, and as it is the game's memory it should be easy for every developer to use it.

Das wäre auch nie rausgekommen, wenn ein "Insider" keinen Müll erzählt hätte vor PS4-Launch, so dass Sony sich dann wohl gezwungen fühlte, es zu kommentieren. Ansonsten hätten wir diesbezüglich nicht mal diesen Infohappen, der nicht mal ansatzweise technisch ist. Sondern wie bei der Switch: FreeBSD-Kernel sagt da schon viel aus.

Letztendlich ändert es auch nichts an der eigentlichen Sache, dass Virtual Memory unabdingbar ist heutzutage und man darauf zugreift. In welcher Form diese Exceptions behandelt werden, ist sehr schlecht dokumentiert bzw. wenn überhaupt aus der verwendeten Architektur und des Betriebssystems abzulesen. Einen offiziellen Artikel zu solch technischen Themen wirst du nicht finden.
 
Wie gesagt, es ist Kernelement eines Betriebssystems. Auch ein Android hat das.

Ob nun Paging, Swap-File oder anderes, es bleibt an sich das Gleiche.
Das bleibt nicht das gleiche, wenn gar kein Pagefile existiert. Wäre bei einem System mit realtime Anforderungen auch unpraktisch. Kein Game braucht so etwas.

Dass man darüber weniger Artikel findet bei Konsolen, ist klar. Warum auch? Das interessiert höchstens Ingenieure des jeweiligen Herstellers.
https://cturt.github.io/ps4-3.html
"Since page fault is defined as hardware exception 14 in the x86 architecture, it is safe to assume that this is unchanged in the PS4."
Eine MMU ist heutzutage Standard in der Hardware und dann brauchst du eine Exceptionhandling für Page Faults. Das ist im Kernel verankert und mittlerweile bei bestimmten MMUs sogar in der Hardware.
Nichts davon habe ich angezweifelt.
Die PS4 verwendet offenbar Paging.
Das ist deine Schlußfolgerung aus dem Artikel. Nicht meine. Ohne Pagefile gibt es eine Exception, das ist kein Paging.
 
Diskutiert ihr echt über die Nutzung von Pagefiles bei Spielekonsolen?
Das ist praktisch kaum mehr als ein bei Überanspruchung massiv bremsender Fallback bei PCs/Servern um zu verhindern das die Systeme/Anwendungen mal eben abkacken weil ich z.B. mal ein Tab zuviel aufgemacht habe.
Es gibt imo dafür in Konsolen eigentlich kein sinnvolles Anwendungsszenario weil niemand wirklich noch ordentlich zocken könnte wenn das OS auf HDD/SSD oder gar noch SD-Karte auslagern muss, weil der physikalische RAM längst voll ist.
Auch ein Partychat wird bei Datenträgerzugriffen wenig Freude haben, gschweige denn das es für den Datenträger gesund ist auf Dauer.
Deswegen wird bei den Konsolen ein fester Teil des RAM fix dem OS zugesprochen und der Rest dem Spiel zur Verfügung gestellt.
Mag eine Konsole Pagefile auch implementiert und aktiviert haben, nutzen sollte man das Feature auf keinen Fall.
 
Das ist deine Schlußfolgerung aus dem Artikel. Nicht meine.
Was meint der Sony-Typ denn dann? Dass kein Mensch der Welt dir das vorkaut und sagt, es ist so und so, ist und bleibt bei geschlossenen Plattformen immer so. Sich hier stur hinzustellen und nicht mal konstruktiv was beizutragen, sondern konstant mit Einzeiler dagegen zu stänkern, hilft niemandem weiter.

Auf der letzten Seite hast du ja noch komplett Page Faults angezweifelt, was das überhaupt sein soll bei Konsolen. Nun sind wir schon einen Schritt weiter. Merkt man, dass es dir keine Sekunde um eine ernsthafte Diskussion ging, sondern du einfach mit gefährlichem Halbwissen die Buzz-Words rausgesucht hast und dagegen einfach blind vorgegangen bist.

Wäre bei einem System mit realtime Anforderungen auch unpraktisch

Realtime ist nichts an der PS4 oder Nintendo Switch. FreeBSD ist ein ganz gewöhnliches monolithisches Betriebssystem, was mit Interrupts arbeitet. Die Prozesse kämpfen um Rechenzeit. Dafür ist ein Scheduling-Algorithmus zuständig. Aber so wie ich diesen Diskussionsverlauf kenne, haben das sicher die Konsolenhersteller auch komplett neu erfunden, obwohl Prozessmanagement das Kernel bewerkstelligt... so wie eben auch Page Faults.

Das ist deine Schlußfolgerung aus dem Artikel. Nicht meine. Ohne Pagefile gibt es eine Exception, das ist kein Paging.
Das ist an sich sogar völlig egal, was für ein Verfahren da eingesetzt wird. Bei Virtual Memory wirst du immer ein Page Fault bekommen und dann muss dafür gesorgt werden, dass der physikalische RAM mit den Daten versorgt wird, wenn der Zugriff legitim war.

Und das macht das Kernel. Das ist FreeBSD.

http://www.ico.aha.ru/h/The_Design_...he_FreeBSD_Operating_System/ch05lev1sec12.htm Hier steht nochmal, wie das Kernel arbeitet.

An sich ist dieser Detailgrad, wie ja schon erwähnt, eigentlich auch egal, denn am Anfang ging es um Virtual Memory und dass die Konsolen so arbeiten. Auch das wurde ja ursprünglich angezweifelt, aber da scheint man ja weiter zu sein.

@Montalaar: Wie gesagt, im Hintergrund wird immer im virtuellen Adressräumen gearbeitet und dann hast du die Translation in die physische Adresse und dann kommt ein Page Fault, das ist nicht zu verhindern. Und ob das nun mit Paging oder einem anderen Verfahren abgehandelt wird, tut nicht mal groß zur Sache. Dank den Aussagen vom Sony-Typ kann man aber bspw. bei der PS4 davon ausgehen, das sie mit Paging arbeitet, da er auf die FreeBSD-Funktionalität verweist (auch kein Wunder, das ist der Kernel, die gesamte Rechenlogik geht darüber) und FreeBSD so arbeitet.
 
Diskutiert ihr echt über die Nutzung von Pagefiles bei Spielekonsolen?
Das ist praktisch kaum mehr als ein bei Überanspruchung massiv bremsender Fallback bei PCs/Servern um zu verhindern das die Systeme/Anwendungen mal eben abkacken weil ich z.B. mal ein Tab zuviel aufgemacht habe.
Es gibt imo dafür in Konsolen eigentlich kein sinnvolles Anwendungsszenario weil niemand wirklich noch ordentlich zocken könnte wenn das OS auf HDD/SSD oder gar noch SD-Karte auslagern muss, weil der physikalische RAM längst voll ist.
Auch ein Partychat wird bei Datenträgerzugriffen wenig Freude haben, gschweige denn das es für den Datenträger gesund ist auf Dauer.
Deswegen wird bei den Konsolen ein fester Teil des RAM fix dem OS zugesprochen und der Rest dem Spiel zur Verfügung gestellt.
Mag eine Konsole Pagefile auch implementiert und aktiviert haben, nutzen sollte man das Feature auf keinen Fall.
Ich rede nicht über Pagefiles, das ist Ark. Der will damit irgendwelche Ausreden zum Voicechat bei Nintendo konstruieren. Macht natürlich überhaupt keinen Sinn, weil alle Konsolen mit festen oberen physischen und logischen Speichergrenzen arbeiten. Da wird nichts geswappt.

Da helfen Links zum BSD-Kernel nicht weiter. Gibt genügend Unix-Implementierungen auf embedded Systemen ohne Paging und Swapfiles. Genau so auf Konsolen. Kommt beim malloc-Aufruf NULL zurück, da kann Ark sich noch so sehr sträuben.

Edit: Was soll übrigens der Scheiß, hier einfach einem User unbegründet Sturheit, Stänkern und gefährliches Halbwissen zu unterstellen?
 
Zuletzt bearbeitet:
MMUs und Paging haben auch erst einmal nichts damit zu tun, ob eine gewisse Größe des RAMs für Anwendungen reserviert ist. Da wurde von Ark wieder einfach sinnfrei irgendwelche Fachbegriffe benutzt, die für sich keinen Ausschluss der besprochenen Thematik bedeuten, nämlich das bei PS3604OneSwitch ein gewisser Teil des RAMs den Spieleapplikationen zur Verfügung steht und ein fester Teil für das OS reserviert ist. Genauso irrelevant sind ausgerissene Passagen des FreeOS. Die Betriebssysteme von PS4 und Switch basieren auf FreeOS, sie sind es aber nicht. Hier wird suggeriert, als wenn es keine Individualisierung von Software geben könnte.

Edit: Was soll übrigens der Scheiß, hier einfach einem User unbegründet Sturheit, Stänkern und gefährliches Halbwissen zu unterstellen?

Leider Standard bei ihm.
 
Zuletzt bearbeitet:
Und ändert dennoch nichts daran, dass mit virtuellen Adressen gearbeitet wird, was ja am Anfang schon verneint wurde und dadurch natürlich Page Faults auftreten. Auch das wurde, sogar von dir persönlich, als Blödsinn abgestempelt. Die Meinung scheint sich geändert zu haben, wie man nun sieht.

Und die PS4 arbeitet offenbar mit Paging, habe sogar einen Artikel von dem hier so beliebten DigitalFoundry gefunden, die das auch vermuten. Die mutmaßen da natürlich, so wie ich, auch nur. Das ist immer so, das kann man nicht pauschal sagen, weil es natürlich keine schöne Dokumentation gibt oder Naughty Dog ausnahmsweise keine Marketing-Präsentation erstellt hat für irgendeine Messe.

Dank Hackern gibt es bei der PS4 auch halbwegs gute Indizien wie schon gepostet: https://cturt.github.io/ps4-3.html. Ein Page Fault tritt ganz gewöhnlich auf. Auf der PS4 würde die Page-Size Größe sogar erhöht im Vergleich zu Default FreeBSD. Und da es das gibt, muss es irgendjemand Verfahren geben, diese Daten in den physischen Speicher zu übertragen. Das ändert an der ganzen Situation absolut gar nichts.

Wäre auch seltsam, wenn man auf FreeBSD im Kernel setzt und dann es komplett umschreibt und solche Themen, die all die Jahre entwickelt würden, komplett über Bord wirft. Das ist, wie gesagt, Standard. MMUs sind in der Hardware und Page Faults müssen behandelt werden, da auch diese Exceptions mittlerweile in der Hardware sind. Virtual Memory Management ist heutzutage Standard.


MMUs und Paging haben auch erst einmal nichts damit zu tun, ob eine gewisse Größe des RAMs für Anwendungen reserviert ist.
Das habe ich dir auf der letzten Seite geschrieben, dass sich das nicht beißt. Es kann dennoch weiterhin 1GB für OS und 3GB für Spiele reserviert sein. Dem habe ich nie widersprochen. Ändert nichts daran, dass Entwickler auf mehr virtuellen Speicher zugreifen kann (Ursprung dieser Diskussion).
 
Die Übersetzung von virtuellen Adressen in physische hat nichts mit Paging zu tun.
Was von dir immer noch nicht belegt wurde, um deine ursprüngliche Aussage zu untermauern:
- was passiert bei page faults auf Switch
- dass "Entwickler auf mehr virtuellen Speicher zugreifen können".
Besonders letzters stelle ich in Zweifel. Im XDK finde ich dazu nichts.
 
Wo genau wurde explizit der Einsatz von virtuellen Adressen verneint? Wer soll auch behauptet haben, Sony oder Nintendo hätten hier irgendetwas neues erfunden.

Ursprung der Diskussion war übrigend, dass Entwickler auf mehr Speicher Zugriff haben, als es um den RAM ging.
 
Ganz ursprünglich ging es doch darum, ob Nintendo nachträglich einen Voice Chat einbauen könnte, der nebenbei funktioniert (insbesondere während einem laufenden Spiel, egal welches), oder?
 
Ganz ursprünglich ging es doch darum, ob Nintendo nachträglich einen Voice Chat einbauen könnte, der nebenbei funktioniert (insbesondere während einem laufenden Spiel, egal welches), oder?

Ja, dann kam die Vorlesung Rechnerarchitektur light, nach der niemand gefragt hat.
 
Die Übersetzung von virtuellen Adressen in physische hat nichts mit Paging zu tun.

Hat auch kein Mensch gesagt, das habe ich aber auch schon zig mal wiederholt...

- was passiert bei page faults auf Switch

Muss in jedem Fall die Seite in den Seitenrahmen gepackt werden. Ob das mit Paging oder mit irgendwas anderes gemacht wird, ist irrelevant. Trifft ein Page Fault auf, dann ist klar, was zu tun ist: Die Daten irgendwie in den RAM packen. Das Wie ist logischerweise nicht dokumentiert. Wird aber, wie offenbar auch bei der PS4, mit hoher Wahrscheinlichkeit das Memory Management des Kernels genommen werden, also von FreeBSD. Wie oft soll ich das noch erwähnen? Und erneut kann ich nur wiederholen, dass deine destruktive Art, zu diskutieren, uns nicht voranbringt. Übrigens ist das bei der PS4 auch nicht dokumentiert, wir haben Glück, dass die Hacker-Szene hier etwas dazu geschrieben hat.

Bei einem Page Fault wird man immer den RAM mit den Daten füllen. Genau deswegen gibt es einen Page Fault. Die Frage ist also völlig unnötig und verbeißt sich in eine Sache, die nicht dokumentiert ist. Wir wissen, dass es Page Fault gibt und diese behandelt werden müssen, mehr ist für diese Diskussion gar nicht wichtig.

- dass "Entwickler auf mehr virtuellen Speicher zugreifen können".

Virtueller Adressraum eben. Was soll ich da noch sagen? Hier ein Beispiel: https://en.wikipedia.org/wiki/Virtual_address_space. Ich muss mich zu häufig wiederholen, es nervt wirklich. So sind virtuelle Adressräume. Der Prozess kann mehr reservieren, wie eigentlich zur Verfügung steht. Das macht das Kernel (Memory Management) für einen. Wie ja auch schon gesagt: Auch eines der Dinge, die das Leben eines Entwicklers einfacher machen sollen, da er sich da nicht darum kümmern muss.

Aus Switchbrew zur Nintendo Switch:

The userspace virtual address space can be either 32 or 36 bits. [2.0.0+] introduced support for 38 bit address spaces.

Wo genau wurde explizit der Einsatz von virtuellen Adressen verneint?

https://forums.consolewars.de/threads/current-gen-technik-konsolen.58179/page-527#post-6789434

Ganz ursprünglich ging es doch darum, ob Nintendo nachträglich einen Voice Chat einbauen könnte, der nebenbei funktioniert (insbesondere während einem laufenden Spiel, egal welches), oder?

Deswegen sind wir ja jetzt hier in diesem Thread, das Thema ist schon längst gegessen. Ging irgendwann nur noch um die Technik dahinter, da die User dann angefangen haben, zu behaupten, dass es ja absolut kein Problem ist, obwohl man es keinesfalls so einfach pauschalisieren darf, nur weil System Y es so anbietet. Auch habe ich gesagt, dass es höchstwahrscheinlich daran liegt, dass Nintendo es einfach nicht will. Das scheint aber den Leuten nicht gepasst zu haben. Dennoch besteht natürlich die Möglichkeit, dass es an der Hardware liegt, egal ob es auf der PSVita geklappt hat oder nicht. Das wollten manche nicht verstehen. Dann ging es los mit "RAM reservieren kann man doch immer dafür", aber so funktionieren moderne Systeme nicht, das wird alles dynamisch gemacht und sowieso nur über den virtuellen Adressraum, der größer ist als der physikalische RAM. Es wird nicht physikalischer Speicher direkt angesprochen und gesagt, reserviere mir doch bitte 20MB für immer und ewig, bis ich den Prozess kille. Und nun sind wir hier...

Generell ist diese Diskussion mühsam, da stets drum rum geredet wird und man sich ständig an ein Satz aufhängt und den Rest gänzlich ignoriert. Und dann kommt nur heiße Luft und die Diskussion geht einfach nicht voran.

Ist für mich jetzt auch erledigt das Thema. Ich muss mich auch ständig wiederholen und mein Gegenüber widerspricht sich konstant (gestern gab es noch gar kein virtuelles Memory Management -> "Welche Page Faults? Wo kommt der Speicher her? Es gibt 3.2GB, mehr nicht." und weiter oben dann exakt diese Page Faults erwähnen...).

Habe keine Lust mehr. Wahrscheinlich ist es einfach das falsche Forum für solche Themen, so blöd es auch klingt. Wenn es keine schöne Powerpoint-Präsentation von den Verantwortlichen zu diesem Thema gibt, scheint man gänzliche Regeln der Rechenarchitektur und Betriebssysteme zu ignorieren. Es entwickelt sich ja auch zu keiner anständigen Diskussion, ich bekomme ja nur "Nein.", "Aber das.", "Zeig den Beweis.", "Habe ich noch nie gehört." oder was weiß ich. Wie soll da denn bitte eine Diskussion entstehen? Wenn man nichts zu sagen hat, sich einfach komplett raushalten, aber nicht solche destruktiven Beiträge raushauen.
 
Zuletzt bearbeitet:
Bei deiner Verlinkung verneine ich nicht den Einsatz von virtuellen Adressen.

Ich wüsste jetzt auch nicht, warum andere Personen in der Bringschuld sein sollten. Du hast die Behauptung aufgestellt und bisher nichts gebracht, was deine These untermauert. Die Nutzung von virtuellen Adressen, von MMUs oder von Paging ist keine. Du hast einzig aus den Begriffen darauf geschlossen.
Das alles wird in Konsolen schlicht schon benutzt, um einen gemeinsam Speicherpool für GPU und CPU darzustellen. Ich hatte dich schon darauf hingewiesen, dass diese Begriffe nicht zwanghaft im Zusammenhang mit deiner These stehen und du die Vorlesung Rechnerarchitektur stecken lassen solltest, die hatten wir hier auch alle und wissen, dass sie für das Szenario nicht spezifisch genug ist. Davon wolltest du aber nichts wissen.

Wie dem auch sei, um diese Diskussion zu beenden:
- Lead Programer von Naughty Dog widerspricht dir "Even in the PlayStation 4 you have 5 gigs, which seems like a lot but you’ll be amazed by how quickly it fills up"
- Microsoft widerspricht dir:
Maximum available memory while running in the foreground: Apps: 1 GB/ Games: 5 GB
 
Zurück
Top Bottom