PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zur aktuellen Hardware


pippo
2007-09-24, 18:59:10
Eins vorweg, sollte der Thread hier fehl am Platz sein, bitte verschieben. Heute hatten wir mal ne Stunde Datenverarbeitung und wieder über aktuelle Hardware gesprochen. Jetz würd mich interessieren, ob das wirklich alles so stimmt, weil dann muss ich sagen, hab ich in letzter Zeit doch einiges verpasst!

Los ging es bei den in der Praxis erzielten Bandbreiten (keine theoretischen), jetzt aber alles nur mal auf PCs bezogen. Prozessoren haben demnach intern eine Bandbreite von bis zu 5GB/s, Arbeitsspeicher von 50-200MB/s und Festplatten von 8-24MB/s.

Aber z.B. HDTach zeigt bei meiner 3 Jahre alten 2,5" Festplatte mit 5400U/min eine Bandbreite von 26MB/s an.

Dann gings kurz zu Intel. Aktuell sollen insgesamt 9 Pipelines im Prozessor sitzen. Ist hier dann die ALU, FPU ... gemeint? Muss gestehen, bisher dachte ich immer, hat eine CPU 4 Pipelines, ist sie 4-fach Superskalar, wie z.B. ein Core2

Es wurde dann noch erklärt, wie das mit den Pipelines funktioniert. Die meisten Programme sind nur für 1 Prozess und 1 Thread programmiert. Damit ein Programm von mehreren Cores profitiert, müsste es für mehrere Prozesse programmiert sein. Bestenfalls programmiert man das Programm dann noch auf mehrere Threads, dann profitiert es auch von mehreren Pipelines. Andernfalls kümmert sich ein "Zerhacker" darum, das Programm in mehrere Threads aufzuteilen.
Bisher ging ich eigentlich immer davon aus, dass wenn ein Programm auf Multithreaded programmiert ist, es bedeutet, dass es von mehreren Cores profitiert, nicht nur von mehreren Pipelines.

Was stimmt denn nun?


Zum Schluss gings dann noch um Supercomputer. Demnach haben diese Prozessoren bereits 1024bit. WTF? Welche sind das denn? Bisher kommen doch in Supercomputern Power5, Intanium, Opteron ... zum Einsatz. Das sind doch alles nur 64bit Prozessoren

Coda
2007-09-24, 19:05:57
Prozessoren haben längst eine interne Cachebandbreite von >100GiB/s, Arbeitsspeicher ist bei >10GiB/s im Dual-Channel und Festplatten sind inzw. >100MiB/s.

Das mit den Pipelines und Cores hat dein Lehrer außerdem querbeet durcheinander gebracht.

Demnach haben diese Prozessoren bereits 1024bit. WTF?
Ist völliger Blödsinn.

pippo
2007-09-24, 19:12:38
Kannst du das mit den Cores vielleicht mal kurz anreißen oder kennst ne gute Seite? Find das schon ziemlich interessant, solang man sich nicht Stundenlang irgendwo durchlesen muss.

Diese theoretischen Werte für die Bandbreite kenn ich, aber wie siehts in der Praxis aus? Ne Festplatte schafft doch keine 100MB/s im Schnitt, von SCSI und Raid mal abgesehen, oder?

Coda
2007-09-24, 19:17:28
Kannst du das mit den Cores vielleicht mal kurz anreißen oder kennst ne gute Seite? Find das schon ziemlich interessant, solang man sich nicht Stundenlang irgendwo durchlesen muss.
Naja. Schon allein das sich Programme von selber in Threads aufteilen ist ganz ganz grober Bullshit. Wenn das gehen würde gäbe es keine Multicores.

Zudem hat er Cores und Pipelines durcheinander gebracht. Ein Prozessor hat im wesentlichen eigentlich nur eine Pipeline, aber mehrer Ausführungseinheiten. Wieviel das sind ist unterschiedlich.

Diese theoretischen Werte für die Bandbreite kenn ich, aber wie siehts in der Praxis aus? Ne Festplatte schafft doch keine 100MB/s im Schnitt, von SCSI und Raid mal abgesehen, oder?
Eine moderne High-End-Festplatte schafft im Burst 100MB/s.

pippo
2007-09-24, 19:27:55
Hab ich vielleicht vergessen zu erwähnen: Der Zerhacker sitzt hardwareseitig vor den Pipelines, bzw. sollte es :) Dieser kann natürlich die Pipelines nicht so gut füllen können, als wenn das Programm gleich für mehrere Threads programmiert worden wäre.

Was mir grad noch einfällt: Die Bandbreite vom Cache zum Prozessor soll ebenfalls 50-200MB/s betragen, allein die Zugriffszeit von 1ns ( im vergleich zu 4ns beim Arbeitsspeicher ) soll dem Prozessor hier Vorteile bringen. Durch eine HIT-Rate von 96% bei der Sprungvorhersage kann der Prozessor also so gut wie immer innerhalb von 1ns auf die benötigten Daten zugreifen könne.

Coda
2007-09-24, 19:32:51
Hab ich vielleicht vergessen zu erwähnen: Der Zerhacker sitzt hardwareseitig von den Pipelines, bzw. sollte es :) Dieser soll natürlich die die Pipelines nicht so gut füllen können, als wenn das Programm gleich für mehrere Threads programmiert worden wäre.
Ach du meinst Superskalarität und Out-Of-Order-Execution. Das hat mit mehreren Cores nichts zu tun. Das geschieht alles innerhalb einer Pipeline.

Mehrere Threads füllen eine Pipeline nur besser wenn diese SMT (Hyperthreading o.ä.) hat.

Was mir grad noch einfällt: Die Bandbreite vom Cache zum Prozessor soll ebenfalls 50-200MB/s betragen, allein die Zugriffszeit von 1ns ( im vergleich zu 4ns beim Arbeitsspeicher ) soll dem Prozessor hier Vorteile bringen.
Das sind ganz sicher schon >100GiB/s bei manchen Prozessoren.

pippo
2007-09-24, 21:47:19
Ok, dann schonmal vielen Dank. Denk ich hab jetz auch rausgefunden, was der Dozent mit 9 Pipelines meint. Die Corearchitektur besitzt ja drei 64-Bit-ALUs für Integer-Operationen, drei 128-Bit-SSE-Units und zwei 128-Bit-Floating-Point-Rechenwerke. Dazu kommt ja dann noch die Load- und Store-Unit, was zusammen 9 ergeben würde.

Wenn ich das ganze nun richtig verstanden hab, kommen die Befehle in die Pipeline, werden dekodiert, bearbeitet ... und irgendwann kommt man mal an nen Punkt, wo z.B. die ALU oder die FPU benötigt wird. Ist eine CPU nun 4-fach Superskalar, können 4 dieser Rechenwerke gleichzeitig benutzt werden, bevor die Pipeline angehalten/neu geladen wird?