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.