• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Hauptspeicherzugriffszeit berechnen

German_Ripper

Spiele-Enthusiast/in
Registriert
22.03.2001
Beiträge
1.358
Reaktionspunkte
3
Hallo Leute,

vielleicht kann mir einer bei der Frage helfen.

Wie viele Befehle kann ein gängiger 3 gHz-Prozessor während eines Hauptspeicherzugriffs von 40 nsec ausführen. Mit welchen technischen Kniffen wird dieser Engpass umgangen?


Vielen Dank im Voraus
 
German_Ripper am 17.12.2005 17:26 schrieb:
Hallo Leute,

vielleicht kann mir einer bei der Frage helfen.

Wie viele Befehle kann ein gängiger 3 gHz-Prozessor während eines Hauptspeicherzugriffs von 40 nsec ausführen. Mit welchen technischen Kniffen wird dieser Engpass umgangen?


Vielen Dank im Voraus

ich weiß es nicht genau, aber afaik sollte er pro sekunde 3milliarden mal befehle annehmen können und jedesmal afaik 3stück (pipelines beim p4 - n at64 hat afaik 4 stück)
allerdings werden die afaik nicht alle auch in der zeit abgearbeitet - pro takt springen sie afaik in der pipeline einen schritt weiter und z.b. so prescott hat derer ~30.
wärend der ersten 30takte kommen also noch rechenergebnisse aus der vorangegangen sekunde und die letzten 30 werden erst in der nächsten bearbeitet.
so, das ganze jetzt noch auf 40ns runtergerechnet macht 40x3 befehle.

was für einen engpass du meinst, weiß ich aber nicht so ganz. meinst du, dass der prozessor nicht bei jedem schritt auf den speicher zugreifen kann?
dafür gibts seit ewigkeiten den 1st level cache, seit dem coppermine (zweite PIII generation) den 2nd level cache (war bei so7 extern, bei pII mit halben takt unterwegs) und bei einigen prozessoren (xeon mp, erste generation p4ee) den 3rd level cache, die mit vollem prozessortakt arbeiten. (der k6III hat auch 3cache stufen, die dritte war aber deutlich niedriger getaktet)
die daten darin wurden entweder kurz vorher eh schon benötigt/gerade erst erstellt oder von einem "prefetcher" vorgeladen. (was natürlich nicht immer klappt, aber die teile sind gar nicht mal so schlecht darin, programme daraufhin zu anylisieren, welche daten vielleicht bald benötigt werden könnten)
sollten die daten übrigens tatsächlich aus dem speicher geladen werden müssen, so wartet die cpu. (oder rechnet mit einem anderen programm weiter, wenn es sich um einen ht prozessor handelt und mehrere threads laufen)
deswegen bringt mehr cache auch mehr leistung - es muss nicht so oft gewartet werden.
 
ich versteh die frage so: wie oft kann die CPU vom RAM daten empfangen, und wie umgeht man den "engpass", dass das RAM deutlich weniger takt hat als die CPU => vermutlich will man auf DDR raus => statt einem datenpaket werden pro takt=stromstoß 2 datenpakete versendet, je eines mit an- und abstiegen der spannungskurve des stromstoßes...


aber berechnen? naja, das sollte mit den methoden aus dem unterricht, die durchgenommen wurden, wohl zu schaffen sein ;)

maximal aber würd ich sagen zB bei normalem DDR-RAM PC3200 mit 200MHz => 400.000 pro sekunden => in "pro" ns umrechen und mal 40 nehmen... ;)
 
Herbboy am 17.12.2005 20:53 schrieb:
ich versteh die frage so: wie oft kann die CPU vom RAM daten empfangen, und wie umgeht man den "engpass", dass das RAM deutlich weniger takt hat als die CPU => vermutlich will man auf DDR raus => statt einem datenpaket werden pro takt=stromstoß 2 datenpakete versendet, je eines mit an- und abstiegen der spannungskurve des stromstoßes...


aber berechnen? naja, das sollte mit den methoden aus dem unterricht, die durchgenommen wurden, wohl zu schaffen sein ;)

maximal aber würd ich sagen zB bei normalem DDR-RAM PC3200 mit 200MHz => 400.000 pro sekunden => in "pro" ns umrechen und mal 40 nehmen... ;)

Hallo Ihr beiden,

mir geht es um die zu verarbeitendenen Prozesse vom Prozessor die über die normale Speicherverwaltung organisiert werden. Es gibt doch bestimmt irgendwo einen Umrechnungsfaktor bei dem ich durch die Taktung des Prozessors auf eine Gesamtanzahl der abzuarbeitendenen Prozesse in 40nsec schließen kann. Ich denke mir aber auch das über die Adressierung im virtuellen Speicher ausrechnen zu können. Doch bloß wie?
Jedenfalls danke ich Euch für die Antworten. Sie haben mich weiter zum denken angeregt. :-)
 
Zurück