R
volkard schrieb:
Vielleicht baut nächstes Jahr einer einen Supa-Dupa-Prozessor (nennen wir ihn einfach mal Itanium-Pro)
heisst eigentlich SPE und ist im CELL processor verbaut.
.. der komplett alte Zöpfe abschneidet (und deswegen stromsparender als ARM und schneller als Intel-amd64 wird), der misalignte Zugriffe schlicht nicht unterstützt. Dann fliegt ne Hardware-Exception
kannst du auf der ppu anmachen, die SPE hat hingegen kein wissen ueber die unteren 16byte der addresse, du musst die exception per software emulieren, sonst werden die unteren bytes ignoriert und 16byte aligned gelesen.
und das BS *kann* gerne den Code anschauen und per Software solche Zugriffe emulieren, kostet halt 1000 Takte pro misaligned-Zugriff.
software emuliert laufen missaglined zugriffe recht schnell, ist
-read
-address masking
-select von bytes anhand untere 4bits
read kostet 6cycles latenz, die beiden anderen 4cycles, wenn ich mich recht erinnere.
normaler c++ code laeuft auf SPEs sehr viel schneller als auf der PPU und kann mit intel cpus mithalten, mit software cache.
optimierte daten layouts mit hand geschriebenen DMAs und hier und da ein wenig assembler zerlegt jede andere cpu.
http://www.umiacs.umd.edu/~joseph/Streaming-model-ray-casting.pdf
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.8622&rep=rep1&type=pdf
http://graphics.cs.uni-saarland.de/fileadmin/cguds/papers/2006/benthin_06_RTCELL/Benthin_et_al._-_Ray_Tracing_on_the_CELL_processor.pdf
eine SPU hat 21MTransistors, ein Arm cortex a9 core soll 26MTransistors haben, ich weiss nicht aus dem kopf wieviel watt eine SPU zieht, eine neue ps3 im ganzen zieht <80watt, davon 10watt peripherie, vom rest 50%+ die RSX, sollten also ca 30watt fuer den CELL sein, sollten also etwa 3Watt sein fuer eine SPE.