Hallo zusammen,
nur mal eine kurze Frage zu interlocked und non-interlocked Pipelines.
Wenn ich einen Maschinencode ausführe der einen Wert aus dem Speicher
holt, und sofort prüft was dort steht - sollte ich da nicht Probleme mit
der Pipeline bekommen ?
Der Fetch aus dem Memory ist doch eventuell noch nicht komplett
abgeschlossen wenn ich meinen compare durchführe, oder ?
Also meiner Meinung nach passiert also bei diesen Befehlen:
(ebx beinhaltet eine Addresse im Speicher)
1 | mov eax, [ebx]
|
2 | cmp eax, 0x00000000
|
a) Bei x86 Architekture wären hier wohl Wait-States nötig, oder ?
Verwunderlich ist das nur weil diese Befehle werden ja ständig in quasi
jedem Programm durchgeführt. Muss da wirklich gewartet werden, oder
gibts da nen Trick ?
b) Bei MIPS (without interlocked pipeline) sollte so eine
Befehlsreihenfolge ja dann garnicht gehen, oder ?
Vielen Dank für ein paar Schubser in die richtige Richtung. Und bitte
nicht sagen ich soll das Intel x86 Architecture Manual durchlesen. Das
liegt schon unter dem Kopfkissen :-)
Thomas