PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : was sind K Ops


Mikey_K80
2004-05-24, 22:00:34
was sind K Ops beim Pentium 4? wie kann ich das verstehen

mrdigital
2004-05-24, 22:16:32
meinst du µ-Ops? Der Pentium zerlegt x86 Instruktionen in kleinere, einfachere Befehle, die dann vom Kern ausgeführt werden. Der x86 Befehlssatz stammt aus der "CISC-Welt", der Kern versteht aber einen RISC Befehlssatz, der sich aus den µ-Ops zusammensetzt.

Coda
2004-05-25, 00:54:52
Vielleicht meint er auch die Einheit in der Intel die größe des Caches angibt kOps

BlackBirdSR
2004-05-25, 07:11:54
Original geschrieben von Mikey_K80
was sind K Ops beim Pentium 4? wie kann ich das verstehen

Alle Befehle der x86 CPUs sind im Programmcode enthalten. Wie seit Ewigkeiten üblich misst man die Größe von Programmen in Byte.
Die BefehlsCaches von CPUs fassen mehrere KByte an Befehlen, welche zur Ausführung benötigt werden.
Diese Befehle liegen als Programmcode im L1 Cache, werden von der CPU angefordert in die eigene Sprache der CPU übersetzt und dann ausgeführt.

Ein x86 Befehle wird dabei mitunter ins mehrere solche elementare Operationen zerlegt. Die heissen ganz einfach (µ)-Ops. Also mikro-operations.
Der Pentium4 besitzt jetzt keinen L1 BefehlsCache wie andere CPUs, sein Befehlscache liegt weiter im CPU Kern.
Er Cached Befehle, nachdem sie ins eigene Format (µOps) übersetzt wurden.
Demnach macht es keinen Sinn mehr, diesen Cache in Kbyte anzugeben, sondern gleich das zu beschreiben, was er speichert.
Das sind eben 12 tausend µOps, oder 12 kilo µops = 12kµOps

GloomY
2004-05-25, 16:41:18
Die µ-Ops sind die schon dekodierten Befehle. Das "k" ist das SI-Präfix für 1000.

Die 12000 µOps sind in etwa äquivalent zu 16 bis 24 kiB eines "normalen" L1 Code Caches. Das liegt daran, dass der Trace Cache eben Traces speichert, also Folgen von dekodierten µOps, die während der Programmausführung benötigt werden/wurden. Dass der Trace Cache nicht so groß wie die sonst üblichen Code Caches sein kann, liegt an zweierlei Gründen:

Erstens benötigen die dekodierten µOps natürlich mehr Platz als die x86-Ops und zweitens können/müssen außerdem Teile eines Traces doppelt gespeichert werden bzw. frei gelassen werden (z.B. bei einem Trace, der Verzweigung enthält), abhängig von der Implementierung des Trace Caches.

http://www-ti.informatik.uni-tuebingen.de/~heim/lehre/seminar_ws0001/martin/tc_html/node3.html#re-conv

Aber wir können uns schon mal an die Trace Caches gewöhnen, da der K9 ja auch einen bekommen soll =) (quasie als zusätzlichen L0 I-Cache)

Mikey_K80
2004-05-26, 21:35:03
Danke, jetzt ist meine frage beantwortet (wenn es nur immer so wäre).

Mave@Work
2004-05-27, 15:43:44
Gloomy weisst du wo man mehr Informationen über die K9 Architektur bekommt? Ich hab mal gegoogelt aber das waren nur Sachen aus mitte/ende 2003 die ich gefunden hab (inquirer, xbitlabs und ein paar andere). Nichts tieferes a la chip-architect oder arstechnica.

Zum Trace Cache des K9 standen da auch nur Andeutungen.

(Ich hab gerade auf chip-architect noch was zum Hammer gefunden ist aber aus 2001. Davon wurde wohl nicht alles im
aktuellen Design implementiert)

GloomY
2004-05-27, 17:08:52
Original geschrieben von Mave@Work
Gloomy weisst du wo man mehr Informationen über die K9 Architektur bekommt? Ich hab mal gegoogelt aber das waren nur Sachen aus mitte/ende 2003 die ich gefunden hab (inquirer, xbitlabs und ein paar andere). Nichts tieferes a la chip-architect oder arstechnica.

Zum Trace Cache des K9 standen da auch nur Andeutungen.

(Ich hab gerade auf chip-architect noch was zum Hammer gefunden ist aber aus 2001. Davon wurde wohl nicht alles im
aktuellen Design implementiert) Nein, bisher ist praktisch kaum etwas bekannt. Der K9 ist wohl noch zeitlich ein ganzes Stück weit entfernt.

Ich weiss auch momentan nicht mehr genau, wo ich das mit dem Trace Cache aufgeschnappt habe (was nicht heissen soll, dass das nicht stimmt). Vielleicht war's die C't, ich hoffe, ich komm' noch drauf.

BlackBirdSR
2004-05-27, 17:41:44
Original geschrieben von GloomY
Nein, bisher ist praktisch kaum etwas bekannt. Der K9 ist wohl noch zeitlich ein ganzes Stück weit entfernt.

Ich weiss auch momentan nicht mehr genau, wo ich das mit dem Trace Cache aufgeschnappt habe (was nicht heissen soll, dass das nicht stimmt). Vielleicht war's die C't, ich hoffe, ich komm' noch drauf.

war von einer Uni Präsentation eines AMD K9 Designteam Mitarbeiters.
Es ging hauptsächlich um Design und Integration, dabei hat er aber auch einen Kommentar über einen großen Trace Cache im K9 fallen lassen.
Das ist aber schon so ziemlich die einzige Quelle, natürlich sehr zuverlässig.

Vor einiger Zeit tauchten auch einmal Informationen zu kleinen L0 Caches direkt vor den Ausführungseinheiten auf. Dies könnten Abwandlungen von TraceCaches sein, aber ob irgendwie erscheint mir das nur bei einer CPU mit Monsterrechenwerken, Speicherbandbreite ohne Ende und dem Ziel ein Maximum an Parallelität zu erreichen sinnvoll.
Dem K9 trau ich das nicht zu.

Mave@Work
2004-05-28, 11:59:14
Original geschrieben von BlackBirdSR
Vor einiger Zeit tauchten auch einmal Informationen zu kleinen L0 Caches direkt vor den Ausführungseinheiten auf. Dies könnten Abwandlungen von TraceCaches sein, aber ob irgendwie erscheint mir das nur bei einer CPU mit Monsterrechenwerken, Speicherbandbreite ohne Ende und dem Ziel ein Maximum an Parallelität zu erreichen sinnvoll.
Dem K9 trau ich das nicht zu.

Ich denke mal diese informationen stammen alle von hier:
http://www.chip-architect.com/news/2001_10_02_Hammer_microarchitecture.html (http://)

Aber wie ich schon sagte wurde davon so gut wie nichts im K8 implementiert. Wenn der K9 double core wird müsste etliches evtl. drin sein.

Der Rest dann im K10 :bäh: