geforceeee am 17.07.2007 11:58 schrieb:
Hey
vielen Dank für die ausführliche Erklärung, doch bleiben ein paar Fragen noch offen: Hängen die imm er ann 32 datenleitungen???
bei pci? ja.
datenübertragung überfolgt über 32 parrallele leitungen (ob es auch 32mal masse als gegenstück gibt, weiß ich grad nicht) -32bit- und die müssen auch alle genutzt werden.
beim serverableger pci64 bzw. pci-x (nicht mit -e verwechseln) sind es 64bit, also 64leitungen - in diesen slots können aber auch 32bit karten genutzt werden, genauso wie umgekehrt die meisten 64bit karten mit 32bit slots zurechtkommen (aber z.t. physisch nicht passen)
Du sprichst von Adressleitungen??? Was ist das denn genau?
zusätzlich zu den 32bit/leitungen des eigentlichen datenbusses hat der pci-bus einen extra bus (afaik 4bit breit), über den adressen, befehle,... übertragen werden. auf die art kann man sich sparen, die aus dem datengewusel heraus zu sortieren.
Du sagst, dass über die Adressleitungen geregelt wird wer die 32 Lanes benutzen darf. Gibt es da Slots, die „bevorzugt“ werden oder auch „benachteiligt“? Wenn ja warum?
es wird keiner bevor-/benachteiligt, die ansteuerung läuft ganz normal über irqs, wie auch bei vielen anderen grundlegenden elementen des computers:
alle irqs werden den der reihe nach abgefragt und wenn ein geräte dabei bedarf zurückmeldet, ist es an der reihe.
wenn nicht muss es warten, bis die runde einmal rum ist.
(bei pci kommt in der praxis verschärfend hinzu, dass sich mehrere geräte einen irq teilen können, "irq-sharing". so stehen auf den meisten bords für pci&zusätzliche onbordgeräte nur acht "int-leitungen" zur verfügung, über die irq-requests angemeldet werden können und was da hinten dran hängt, kann dann nicht mehr direkt unterschieden werden können.
da 8 irqs für z.t. 5 usb controller, grafikkarte (agp karten werden über das gleiche system angesteuert, auch wenn die datenübertragung letztlich extra erfolgen kann), soundkarte, zusätzlichem festplattencontroller, firewire, sound,... schnell knapp werden, war irq sharing zwischen mehreren geräten/pci slots aber gängige praxis, bis pci-e kam.
in dem fall müssen sich die geräte, die einen irq teilen, untereinander einigen, wer dran ist. (wie das im einzeln läuft, weiß ich auch nicht - und z.b. creative ingenieuren scheint es ähnlich zu gehen, wie unzählige jahre ärger mit soundblasterkarten belegen
)
Und das ist auch nur bei PCI so???
isa funktionierte nach dem gleichen prinzip, nur mit 8 bzw. 16bit. entsprechend auch der darauf aufbauende vlb-bus.
weitere bus-systeme wären der Universal Serial Bus, scsi und ide/pata interface, der sm-bus (wird oft zur anbindung von z.b. temperatursensoren und anderen einfachen komponenten genutzt), firewire afaik auch, der frontsidebus natürlich (auch wenn es heutzutage meist üblich ist, ihn als punkt zu punkt verbindung von cpu zu chipsatz einzusetzen - theoretisch könnten mehrere cpus unmittelbar dran hängen), alle mir spontan einfallenden ram-interfaces, alte 10mbit coaxial-netzwerke,...
eigentlich gab es bis vor ein paar jahren kaum was anderes, als bus systeme
(mit wieviel bit die im einzelnen arbeiten und ob die extra adressleitungen haben oder nicht, kann ich dir nur in einem kleinen teil der fälle sagen)
Du hast gesagt, dass beim PCI – E jeder lane eine punkt zu punkt Verbindung zum chipsatz hat (northbridge oder southbridge?)
grafikkarte: northbridge (einfach näher am ram), rest an der southbridge.
ausnahmen, die die regel bestätigen:
-beim asrock core2 hybrid bord (name vergessen) kommt eine agp-northbridge und eine southbridge mit 4 pci-e lanes zum einsatz, die zum peg (pci-e "x16") slot zusammengefasst sind.
-bei intel chipsätzen -mit ausnahme des i975- wird ein etwaiger zweiter grafikkarten slot ebenfalls über 4lanes von der southbridge versorgt.
-bei allen single-chip nvidia chipsätzen geht natürlich alles vom einzigen chip aus.
-bei x32 nvidia chipsätzen für amd, also solche mit 2xvollen 16 lanes für sli (statt einem auf 2x8 gesplitten x16) kommt ein normaler x16 chip als "south"bridge zum einsatz, der de facto auch weiterhin quasi alle aufgaben und einen der beiden x16 slots übernimmt, die "north"bridge dagegen ist nur ein einfacher zusatzchip, der einen weiteren x16 slot zur verfügung stellt.
-bei nvidia chipsätzen für amd gibts zwei systeme:
die einzigen erschienen nf5ie und die nf680i bords haben eine northbridge mit raminterface und einem x16 slot, dazu als southbridge die gängige amd lösung (nach aktuellem stand der dinge ein kompletter nforce-amd
570 chip - auch bei den
689)
der nforce4intel edition hatte eine ähnliche northbridge, nur hatte die die möglichkeit, statt 1x16 2x8 anzusteuern, um sli zu ermöglichen. dazu kam eine ganz normale southbridge mit ein paar x1 lanes.
die northbridge der nf5 und nf6 basiert mit ziemlicher sicherheit auf der nf4 northbridge, es sind auch keine neuen funktionen hinzugekommen - nur taktpotential und stabilität haben sich gebessert.
somit findet sich das gleiche system auch auf den nf650ie&co wieder, nach aktuellem stand der dinge ist die southbridge sogar absolut identisch zu der, die schon auf nf4 bords verbaut wurde.
-noch kreativer ist nvidias 4x4 lösung für dual-athlon fx systeme: da wurden scheinbar zwei nforce570 gepaart, was nicht nur 2x16 lanes sondern auch genug x1 lanes für einen elektrischen x8 slot (mechanisch x16) brachte. (und natürlich wird die alte technik auch hier werbewirksam als nf6 verkauft)
wenn man nvidia & ihre recyklingpolitik mal weglässt, kann man das ganze soweit vereinfachen:
ein echter x16 slot von der northbridge (oder vom einzigen chip), 2 x8 auch, slots mit real nur 4 lanes von der southbridge.
zusatzgeräte/x1 sowieso von der southbridge (oder vom einzigen chip)
Heißt das, dass beim normalen pci die ganzem lanes nicht alle zum chipsatzt gelangen, sondern sich vorher „bündeln“ und dann in einem dort hin kommen ??
nö, heißt es nicht.
bei pci kommen alle leitungen ("lanes" wurde erst mit pci-e eingeführt) überall hin (bus halt - wenn man nur lange genug wartet, kommt er überall hin), alle geräte hängen parrallel an der gleichen leitung (vergleich realer bus: viele haltestellen, aber immer die gleiche straße und das gleiche fahrzeug)
und dadurch eine kleinere Bandbreite als Ergebnis kommt.
daher kommt erstmal nur, dass sich alle die bandbreite teilen müssen, es können nicht zwei busse unabhänig auf der gleichen straße fahren. (auch wenn die hier 32spuren breit ist, das fahrzeug ist genauso breit
. mehrere hintereinanderfahren zu lassen wäre übrigens möglich - aber da die eh mit lichtgeschwindigkeit unterwegs sind, sehr aufwendig und nicht sehr sinnvoll)
Kommt daher auch die höhere Bandbreite bei pci – e???n
die kommt im endeffekt daher, dass man den takt dramatisch erhöht hat - 2500mhz bei pci-e, 133mhz bei pci.
ein 2,5ghz pci bus hätte zwar immer noch das problem, dass alle karten sich die bandbreite teilen müssen, aber er könnte halt bei bedarf einer einzelnen karte auch die volle leistung -also die doppelte eines pci-e x16 slots- zur verfügung stellen und dass jeder der angeschlossenen karten. (bei nem pci-e system sind ja die meisten geräte aufgrund der bauweise limitiert, da sie halt nur an einer oder an 4 lanes hängen. )
von daher können bus systeme durchaus so schnell wie punkt zu punkt verbindungen sein und haben bei vielen geräten überdies den vorteil, dass man für diese nicht extra leitungen braucht und bei bedarf jeder trotzdem die volle leistung erhalten kann.
praktisch gibt es aber ein kleines hinderniss: rein elektrisch ist ein system mit vielen, langen leitungen und vielen endstücken (leere slots, karten,...) relativ "schmutzig", d.h. das signal wird oft verteilt und an endstücken zudem zurückgeworfen, dass endergebniss ist viel rauschen und schwache signale - womit hohe taktraten nur schwer zu erreichen sind. (bei scsi und coaxial-lan kommen/kamen "terminatoren" an kabelenden zum einsatz, um zumindest das problem der reflektierten signale zu mindern - aber bei einem system mit festgelegten slots gibt es sehr viele offene enden und wenn man die alle mit dämpfern bestückt, wird das zum einen teuer und der kunde ist verwirrt, vor allem aber sinkt die signalstärke enorm ab)
hieraus ergibt sich übrigens auch der grund für den in den 90ern gestarteten wechsel weg von bussen (fsb, pci, agp, ide, scsi, coaxial-lan,...) hin zu punkt-zu-punkt verbindungen (ht, pci-e, sata, sas, heute übliches lan):
früher hatte man für jeden scheiß nen extra chip und hohe taktraten haben die fertigungsbedingt eh nicht erreicht, außerdem waren feine leiterbahnen fertigugnstechnisch und auch bei den benötigten stromstärken kaum realisierbar - niedriger bustakt war also okay und wenig leitungen ein segen.
heute hat man eher wenige hochgetacktete chips und kann recht fein fertigen, da lohnen sich schnelle punkt-zu-punkt verbindungen.
ein weiterer nachteil pci und agp ist das parrallele design:
wenn ich 4byte auf 32leitung verteile (byte1, bit1 -> leitung1. byte1, bit2 ->leitung2,..., byte2, bit1 ->leitung9,..... und zwar
in der reihenfolge, dann muss das am ziel auch
in der reihenfolge ankommen - d.h. auf allen leitungen muss die exatkt die gleiche zeit benötigt werden.
nun zeigt schon der blick auf z.b. eine pci karte, dass es nicht ganz einfach ist, 32leitungen von einem breiten slot auf einen kleinen chip zu richten, ohne dass sie unterschiedlich lang werden.
und je mehr leitungen desto schwieriger wird das, das gilt auch für höheren takt: wenn ein 1bit nur eine nanosekunde dauert (ghz bereich), dann ist natürlich eine viel höhere präzision nötig, als im khz (millisekunden) bereich.
dieses problem hat man bei pci-e, sata,... gleich mit beseitigt und das ganze serriell gebaut - eine leitung pro richtung, alle bits kommen nacheinander in genau der richtigen reihenfolge.
parrallele lanes arbeiten relativ unabhängig voneinander und mit ganzen datenpaketen, deren reihenfolge später festgestellt werden kann.
usb - universell serriell bus - beweist aber, dass sich dieses prinzip auch mit einer bus architektur kombinieren lässt.
umgekehrt ist auch ein parralleles punkt-zu-punkt interface denkbar, wurde afaik aber nie umgesetzt, auch wenn z.b. agp über die ganze lebenszeit hinweg nie genutzt wurde, um mehr als grafikkarte und chipsatz zu verbinden, obwohl die spezifikationen durchaus mehrere grafikkarten(slots) an einem agp-bus vorsahen.
Warum kann die Karte bei pci – e beide richtungen nutzen???
weil es beide gibt
bei pci-e gibt eine leitung von der karte zum chipsatz und eine vom chipsatz zur karte.
sofern daten für beide richtungen vorliegen (z.b. soundkarte: mikro und lautsprecher), können beide unabhängig voneinander arbeiten.
bei