Wie wäre es du antwortest auf meine
Warum verzichtet man bei den/dem "langsamen" Decoder
auf die spekulative Ausführung? Vergiss deine In-Order Argumentation, Anandtech hat den Finger drauf:
Wie besagt, die Formulierung von anandtech halte ich für sehr gefährlich.
Die Dekoder haben *nichts* mit OoO zu tun die Dekodieren erstmal. Umsortiert wird gemeinhin später, vor den Execution Units in den Reservation Stations. Dann wenn man schon µOps hat.
Da geht das auch viel effektiver, da die µOps feinkörniger sind, und sich mehr Möglichkeiten ergeben, als wenn man dicke x86 Instruktionen hin und herschieben müßte. Stell Dir mal vor, da käme ne große Microcodeinstruktion, die würde den ganzen Verkehr aufhalten ;-)
Die Dekoder dekodieren nur x86 -> µOp mehr nicht.
Wie Anand da auf spekulativ kommt, weiss nur er allein.
Ach, deswegen hast du "überhaupt 2?" gefragt, weil du wusstest das er 3 hat? Witzi
Ja ich wusste das es da 2+1 Dekoder gibt, und der Gesamtdurchsatz pro Takt 2 µOp max. beträgt. Das da irgendwas verwechselt wurde war mir fast klar, aber ich hab mich gefragt was ;-)
Zu dem "spekulativ" nochmal: In irgendeinem Bericht stand mal, dass Atom auch ausnahmsweise ein paar wenige Befehle OoO ausführen kann, aber größtenteils ist es dennoch ne in-order Architektur.
Ich schau mal, ob ichs noch irgendwo finde...
Edit:
Explizit hab ich den Artikel jetzt nicht gefunden, aber ich glaub das bezog sich aufs Load-to-store forwarding. Das kann Atom auch. Bevor eine ausgeführte Instruktion in den Speicher schreibt, steht die in nem (Schreib)Puffer. Neue Befehle können dort im Puffer nachschauen, ob sie die nagelneuen Werte benötigen und dann gleich aus dem Puffer lesen.
Rein nach in-odern Lehre, müßte das aber erst in den Speicher zurückgeschrieben werden ...
Naja nicht so interessant.
Und damit kommen wir wieder zum eigentlichen Thema: Solche Überlegungen, und da mag dieses Beispiel noch recht unbedeutend sein, lassen sich nicht einbringen, wenn schlicht ein bestehendes Desktop-Design herunterskaliert wird - ein heruntergetakteter Athlon, Phenom oder Core 2 oder sonstetwas wird im Verbrauch nie auf ein vergleichbares Niveau kommen,
Jein ... schau Dir mal VIAs C8 an ... verbraucht, sagen wir mal 10W, bei vernünftiger Taktrate, also schon etwas mehr als der Atom. Aber das Teil ist nur in 65nm produziert. Skalier das mal auf 45nm ...
Nen Unterschied wirds dann immernoch geben, aber was ich sagen will, der OoO Nachteil wird mit sinkender Strukturbreite immer geringer.
Bei Atom zwar auch, aber dort hat das dann nur nen Effekt, dass das Teil vielleicht dann auch fürs handy taugt. (Wobei da die x86->µOp Dekoder ziemlich unpraktisch sind, da sie rel. viel Platz und Strom verbraten)
Wie auch immer, für kleine Notebooks / Netbooks reicht ein 10W dual-core C8 in 45nm ... aus.
Mal schauen was Ontario wird, da hab ich auch gute Hoffnungen. Wenn das wirklich ein einzelner Bulldozerkern mit 2 Clustern + ATi GPU wird, dann wird das in 32nm nicht viel Strom brauchen, aber dennoch eine sehr gute Leistung abliefern.
Atom hat aber auch seine Berechtigung. Um/über 2 GHz herum wird die CPU-Leistung (single-thread) annehmbar, dass sollte mit 32nm auch drin sein.
ciao
Alex