Wie funktioniert der Speicherzugriff bei shared memory? Können Prozessor und Graphikkarte immer nur nacheinander auf das RAM zugreifen? Oder können die beiden zeitgleich unterschiedliche Adressen ansprechen (intern im RAM müsste das aber dann doch nacheinander gehen, oder)?
Hans schrieb: > Wie funktioniert der Speicherzugriff bei shared memory? Können Prozessor > und Graphikkarte immer nur nacheinander auf das RAM zugreifen? Oder > können die beiden zeitgleich unterschiedliche Adressen ansprechen > (intern im RAM müsste das aber dann doch nacheinander gehen, oder)? Wie sollten sie das denn zeitgleich machen? Es geht über ein und denselben Bus.
Die Memory Controller von PCs sind ja seit geraumer Zeit breiter als ein
Speicherchip ("dual channel" und so). Mittlerweile sind darunter auch
Speichercontroller, die diese Speicherkanäle nicht einfach in grösserer
Breite sondern unabhängig voneinander ansprechen. Bei solchen Systemen
können je nach Adresslage Grafik- und Prozessorzugriff auf den Speicher
echt parallel erfolgen.
Klassische Bussysteme mit einem oder mehreren Prozessorsockeln und einem
(oder mehreren) Speichersystemen am gleichen Bus sind bei den heute auf
den Interconnects üblichen Taktraten schlichtweg nicht mehr machbar. Da
sind seit dem K7 und mindestens den neueren P4ern Punkt-zu-Punkt
Verbindungen im Einsatz. Das hat erheblichen Einfluss auf die Topologie.
Intels i5/i7 Quadcores sind mit ihrem zusammen mit den Cores auf dem
Prozessorchip integrierten Speichercontroller und den
Quickpath-Schnittstellen wohl mittlerweile prinzipiell ähnlich aufgebaut
wie die AMDs seit dem K8.
Bei den AMDs befindet sich eine Art Crossbar auf dem Chip, die die
verschiedenen Busmaster wie die Cores und die diversen
Hypertransport-Schnittstellen und den Speichercontroller nach Bedarf
miteinander verbindet, d.h. es ist mehr als ein Transfer gleichzeitig
möglich. Ein klassischer shared bus, der nur einen Transfer gleichzeitig
kann, existiert intern nicht. Eine per shared memory arbeitende Grafik
sitzt dabei an einem Hypertransport-Link.
Bei den i3/i5/i7 Dualcores wiederum sitzen Grafikchip und
Speichercontroller auf dem gleichen Chip, die Cores getrennt davon auf
einem zweiten. Damit gibt es dazwischen wohl nur eine Verbinung (mehr
ergibt bei gemeinsamen Cache auch wenig Sinn), aber diese Methode
schliesst gleichzeitige Nutzung der Speicherkanäle durch Cores und
Grafik ebensowenig aus.
"Früher" war es bei edleren Grafikkarten tatsächlich so, dass der Speicher zwei Ports hatte. Der eine war read/write von der CPU aus, der andere nur read für die Videologik. Der Speichertyp hiess dann auch Videoram (VRAM). Was anderes war wegen den hohen Datenraten nicht drin, sonst hätte die CPU gar nicht mehr zugreifen können. "Noch früher" (>25Jahre) gab es aber auch sogar Grafikkarten, die die Videoausgabe bei CPU-Zugriffen deswegen abgeschaltet haben. Allerdings waren die schon zu einer Zeit Truecolor mit >XGA, während die breite Masse der PC und Atari/Amiga-User mit VGA und max. 16 Farben voll zufrieden waren ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.