Also, mein Senf hierzu. LWP dient, wie der Name schon sagt, dem Profiling. Die CPU erhält ein paar Statusregister (Register sind kleine schnelle Speicher
) mehr. In diesen Registern speichert ein Prozess bestimmt Daten, wie z.B.:
-Cache-Hit/Miss Rate etc.
-Wann der Prozess ausgelagert wurde etc.
-Wann und Wo (auf welchem Kern) der Prozess läuft etc.
Die Register müssen bei einem Kontextwechsel gespeichert bleiben, deswegen muss das BS mitspielen.
Aus den o.g. Daten kann der Prozess bestimmt Rückschlüsse ziehen, z.B., wenn die Cache-Hit Rate zu niedrig ist, dass er bestimmt Sachen öfters wiederholt um im Cache zu bleiben.
Oder aber, wenn der Prozess merkt, dass er immer kurz vor dem "aufwachen" ausgelagert, so kann er dem BS mitteilen, dass er mal bitte nicht mehr ausgelager wird.
Oder aber, wenn ein Prozess abwechseln auf den Kernen ausgeführt wird und deshalb immer warten muss, bis die Daten aus dem Cache des anderen Kerns zur Verfügung stehen, so kann er dem BS mitteilen, dass der Scheduler doch bitte den Prozess auf einem Kern lassen soll. Beim k10 erfolgt der Austausch der Cache-Lines über den L3-Cache, das dauert natürlich etwas. Beim C2Q geht das über den FSB, dass dauert natürlich noch länger, also wenn Kerne der 2 Dies beteiligt sind, ansonsten natürlich auch über den gemeinsamen L2-Cache.
Also, wie man sieht muss das BS beteiligt sein, die Programme etc. und die Beschleunigung erfolgt nur indirekt.
Zur direkten JAVA-Beschleunigung gab (gibt?) es mal einen Prozessor der Java-Byte-Code nativ ausführen konnte (kann?), so etwas ähnliches wird AMD dann als Extra-Kern (zum Fusion-Ding hinzu) einpflanzen, etc. etc. Es gibts noch so viele Möglichkeiten....
Hoffe ich konnte beim Verständnis helfen
MfG