Fachkundige und individuelle Beratung ist für uns selbstverständlich - rufen Sie uns an!
Sie erreichen unsere Hotline werktags von 10:00 bis 18:00 Uhr unter der 07171 8712 0 (Samstags: 10:00 bis 12:00 Uhr). Außerhalb Deutschlands wählen Sie +49 7171 87120. Im Dialog finden wir die optimale Klanglösung für Sie und klären etwaige Fragen oder Schwierigkeiten. Das nuForum ist seit dem 19. Juli 2023 im read-only-Modus: Das Ende einer Ära: Das nuForum schließt
Sie erreichen unsere Hotline werktags von 10:00 bis 18:00 Uhr unter der 07171 8712 0 (Samstags: 10:00 bis 12:00 Uhr). Außerhalb Deutschlands wählen Sie +49 7171 87120. Im Dialog finden wir die optimale Klanglösung für Sie und klären etwaige Fragen oder Schwierigkeiten. Das nuForum ist seit dem 19. Juli 2023 im read-only-Modus: Das Ende einer Ära: Das nuForum schließt
Arbeitsweise von Computerprozessoren
Arbeitsweise von Computerprozessoren
Hallo,
kann mir bitte jemand verständlich erklären, ob es bei den neuen "Dual Core" Prozessoren (oder auch anderen Multi-CPU Systemen) wirklich so ist, dass Befehle an mehreren Kernen parallel (im wahrsten Sinne!) bearbeitet werden, oder ob die Befehle nur an die Prozessoren aufgeteilt werden, sie nacheinander (im schnellen Wechsel) abgearbeitet werden und die Ergebnisse anschließend wieder, einem Reissverschluss gleich, zusammengefügt werden.
Ich habe mal gehört, gelesen (oder was auch immer), dass ein Computer immer nur eine Sache zur Zeit kann, wenn auch rasend schnell.
War diese Aussage falsch, zu allgemein oder ist sie nun technisch einfach überholt?
Danke für Aufklärung.
imacer
kann mir bitte jemand verständlich erklären, ob es bei den neuen "Dual Core" Prozessoren (oder auch anderen Multi-CPU Systemen) wirklich so ist, dass Befehle an mehreren Kernen parallel (im wahrsten Sinne!) bearbeitet werden, oder ob die Befehle nur an die Prozessoren aufgeteilt werden, sie nacheinander (im schnellen Wechsel) abgearbeitet werden und die Ergebnisse anschließend wieder, einem Reissverschluss gleich, zusammengefügt werden.
Ich habe mal gehört, gelesen (oder was auch immer), dass ein Computer immer nur eine Sache zur Zeit kann, wenn auch rasend schnell.
War diese Aussage falsch, zu allgemein oder ist sie nun technisch einfach überholt?
Danke für Aufklärung.
imacer
- JensII
- Star
- Beiträge: 8896
- Registriert: Di 11. Mär 2003, 17:35
- Wohnort: Zwischen den Nubis
- Has thanked: 2 times
- Been thanked: 16 times
Ich weiß jetzt nicht wie das bei Prozessoren ist, aber da normalerweise die Software auf Dualcore getrimmt sein muss, wird ein Single-Programm wohl nur den einen Prozessor auslasten. Ein zweites Programm wird dann wohl automatisch auf den nächsten Kern/Prozessor gelegt.
Bei Grafikkarten gibt es verschiedene Systeme, da kann man wohl mit 2 Karten auch wählen, ob die Zeile für Zeile abwechselnd, oder die eine Karte die untere hälfte und ungekehrt.
Schau mal Dual CPU contra Single CPU +- Hyper-Threading und Hyper-Threading - Beispiel MainConcept MPEG Encoder an, da findest du ein paar Antwort(schnipsel).
Bei Grafikkarten gibt es verschiedene Systeme, da kann man wohl mit 2 Karten auch wählen, ob die Zeile für Zeile abwechselnd, oder die eine Karte die untere hälfte und ungekehrt.
Schau mal Dual CPU contra Single CPU +- Hyper-Threading und Hyper-Threading - Beispiel MainConcept MPEG Encoder an, da findest du ein paar Antwort(schnipsel).
WoZi: NuVero 11 & NuVero 7 & RS5 @ Anthem MRX540
![Rock Out! :music-rockout:](./images/smilies/music/rockout.gif)
![Rock On! :music-rockon:](./images/smilies/music/rockon.gif)
![Rock Out! :music-rockout:](./images/smilies/music/rockout.gif)
- Kat-CeDe
- Star
- Beiträge: 2131
- Registriert: Sa 5. Feb 2005, 00:07
- Wohnort: Etelsen
- Has thanked: 1 time
- Been thanked: 16 times
- Kontaktdaten:
Hi,
ohne Unterstützung vom Programm läuft wie bisher nur eine CPU und selbst die eine CPU kann diverse Sachen gleichzeitig erledigen. Sie hat verschieden, logische EInheiten die unabhänging von einander arbeiten können. Bestens Beispiel ist die Floatingpoint- und die Integereinheit. Dann gibt noch die beliebt SSE-Befehle wo dann z.B. 4 Byte gleichzeitig bearbeitet werden können (SIMD single instruction multiple data).
In diesem Zusammenhang bringt Dual-Core nur was wenn mehrere Programme gleichzeitig laufen denn dann braucht jeder Prozessor nur die halbe Anzahl der Programme handhaben.
Richtig interessant wird es erst wenn ein Programm mit mehreren Threads arbeitet, denn dann nutzt es die Prozessoren auch aus (wenn es gut gemacht ist). Das Programm muß also sagen was welcher Prozessor machen soll. Aktuelle Compiler versuchen hier schon vorzuarbeiten aber nichts geht über gute, alte Handarbeit.
Problem bei allen verteilten Programmen die Trennund der Aufgaben und die Synchronisation der Ergebnisse. Beispiel
x=(13-2)*(3+21) man kann 13-2 und 3+21 verteilen darf aber erst weiterarbeiten wenn beide Ergebnisse bereit liegen.
Bei Threads muß man aber aufpassen denn zuviele bremsen wegen dem Overhead.
Bei einer größeren Anzahl von Prozessoren gibt es komplett andere Konzepte. In den 90ern konnte/durfte/mußte ich mal 32 Transputer bändigen und habe die Konzepte pipelining und farming benutzt.
cu B.
ohne Unterstützung vom Programm läuft wie bisher nur eine CPU und selbst die eine CPU kann diverse Sachen gleichzeitig erledigen. Sie hat verschieden, logische EInheiten die unabhänging von einander arbeiten können. Bestens Beispiel ist die Floatingpoint- und die Integereinheit. Dann gibt noch die beliebt SSE-Befehle wo dann z.B. 4 Byte gleichzeitig bearbeitet werden können (SIMD single instruction multiple data).
In diesem Zusammenhang bringt Dual-Core nur was wenn mehrere Programme gleichzeitig laufen denn dann braucht jeder Prozessor nur die halbe Anzahl der Programme handhaben.
Richtig interessant wird es erst wenn ein Programm mit mehreren Threads arbeitet, denn dann nutzt es die Prozessoren auch aus (wenn es gut gemacht ist). Das Programm muß also sagen was welcher Prozessor machen soll. Aktuelle Compiler versuchen hier schon vorzuarbeiten aber nichts geht über gute, alte Handarbeit.
Problem bei allen verteilten Programmen die Trennund der Aufgaben und die Synchronisation der Ergebnisse. Beispiel
x=(13-2)*(3+21) man kann 13-2 und 3+21 verteilen darf aber erst weiterarbeiten wenn beide Ergebnisse bereit liegen.
Bei Threads muß man aber aufpassen denn zuviele bremsen wegen dem Overhead.
Bei einer größeren Anzahl von Prozessoren gibt es komplett andere Konzepte. In den 90ern konnte/durfte/mußte ich mal 32 Transputer bändigen und habe die Konzepte pipelining und farming benutzt.
cu B.
Denon 4400H, Rotel RB980, Zappiti One HDR, Pioneer BDP450, VU+ Ultimo4K, Kodi, Fire-TV, 2*NuBox 580+ABL, 2*NuBox380, 2*NuBox 300, 2*NuBox 330, 2*Dali Alteco C-1, 2*CM1, Heco Phalanx 12A, Jamo SW10E, Philips LED, Epson TW7300
Du meinst Multitasking, imacer?
Das läuft nach dem "Zeitscheibenprinzip" ab. Jeder Task bekommt eine gewisse CPU-Zeit ab, eine "Zeitscheibe". Diese werden dann nacheinander abgearbeitet bei einer normalen CPU. Also tatsächlich nicht gleichzeitig, wie man ansich denken könnte.
Hast Du mehrere CPUs, kannst Du mehrere Prozesse nebeneinander laufen lassen, wenn es denn die SW unterstützt.
Multithreading ist eigentlich so eine Art Verarsche. Man gaukelt dem System mehrere CPUs vor, dennoch ist es aber nur 1 vollwertige CPU. Allerdings kannst Du halt mehrereThreads parallel verarbeiten (z.B. im Photoshop unterschiedliche 2 Aufgaben). Dual Core CPUs z.B. dagegen haben ja 2 echte CPU Kerne, so dass man da tatsächlich von 2 echten CPUs sprechen kann und auch eben mehrere echte Prozesse verarbeiten kann.
Spiele z.B. nutzen den 2 Core für die Physikberechnung, während der 1. Core für die Sachen zuständig ist, die die Graka nicht übernimmt.
Das läuft nach dem "Zeitscheibenprinzip" ab. Jeder Task bekommt eine gewisse CPU-Zeit ab, eine "Zeitscheibe". Diese werden dann nacheinander abgearbeitet bei einer normalen CPU. Also tatsächlich nicht gleichzeitig, wie man ansich denken könnte.
Hast Du mehrere CPUs, kannst Du mehrere Prozesse nebeneinander laufen lassen, wenn es denn die SW unterstützt.
Multithreading ist eigentlich so eine Art Verarsche. Man gaukelt dem System mehrere CPUs vor, dennoch ist es aber nur 1 vollwertige CPU. Allerdings kannst Du halt mehrereThreads parallel verarbeiten (z.B. im Photoshop unterschiedliche 2 Aufgaben). Dual Core CPUs z.B. dagegen haben ja 2 echte CPU Kerne, so dass man da tatsächlich von 2 echten CPUs sprechen kann und auch eben mehrere echte Prozesse verarbeiten kann.
Spiele z.B. nutzen den 2 Core für die Physikberechnung, während der 1. Core für die Sachen zuständig ist, die die Graka nicht übernimmt.
- Sirarokh
- Star
- Beiträge: 865
- Registriert: Sa 4. Mär 2006, 22:02
- Wohnort: Waldshut-Tiengen
- Kontaktdaten:
Soweit ich gelesen habe, besitzt jedes Programm einen Thread. Dieser Thread wird von der CPU bearbeitet. Naturgemäß haben mehrere parallel laufende Programme auch mehrere Threads. Da ein einzelner Prozessor lediglich einen Befehl auf einmal abarbeiten kann, verteilen sich daher mehrere gleichzeitige Threads zeitlich vermischt hintereinander.
Eine Dual-Core CPU kann nun zwei Threads gleichzeitig bearbeiten. In der Praxis bedeutet das, dass Windows dem einen Prozessor beispielsweise den Thread eines Spieles oder einer Grafikkonvertierung zuweist, während der andere Prozessor sich um Windows mit all seinen Unterprogrammen und -Threads kümmern kann, wodurch dieses dann nicht ausgebremst wird. Da Windows alleine einen Prozessor aber nur sehr wenig belastet, sind die Unterschiede aus Sicht des Spiels nicht sehr dramatisch.
Neuere Programme werden aber so programmiert, dass sie zwei (oder mehr) Threads besitzen, wodurch sie drastisch schneller verarbeitet werden können. Dabei entstehen allerdings neue Probleme, da beide Threads sich ununterbrochen gegenseitig abstimmen und synchronisieren müssen.
Eine Dual-Core CPU kann nun zwei Threads gleichzeitig bearbeiten. In der Praxis bedeutet das, dass Windows dem einen Prozessor beispielsweise den Thread eines Spieles oder einer Grafikkonvertierung zuweist, während der andere Prozessor sich um Windows mit all seinen Unterprogrammen und -Threads kümmern kann, wodurch dieses dann nicht ausgebremst wird. Da Windows alleine einen Prozessor aber nur sehr wenig belastet, sind die Unterschiede aus Sicht des Spiels nicht sehr dramatisch.
Neuere Programme werden aber so programmiert, dass sie zwei (oder mehr) Threads besitzen, wodurch sie drastisch schneller verarbeitet werden können. Dabei entstehen allerdings neue Probleme, da beide Threads sich ununterbrochen gegenseitig abstimmen und synchronisieren müssen.
Selig ist, wer nichts zu sagen hat und trotzdem schweigt.
[size=75]
nuWave 105, CS-65, RS-5, NAD C370, Denon AVR 2106 und 'n Beamer[/size]
[size=75]
nuWave 105, CS-65, RS-5, NAD C370, Denon AVR 2106 und 'n Beamer[/size]
Danke für die bisherigen Antworten, bin aber noch nicht so ganz zufrieden. ![Rolleyes :roll:](./images/smilies/nuforum/icon_rolleyes.gif)
Wenn der Begriff parallel genuzt wird, ist es denn dann auch auf der kleinsten zeitlichen Einheit (Mikro-, bzw Nano-, oder Picosekunden auch wirklich gleichzeitig oder nur rasend schnell hintereinander?
Um das Beispiel einfach zu halten bleiben wir beim PC mit einer CPU. Ich habe (für die menschlichen Wahrnehmung) mehrere Programme und Prozesse parallel in Betrieb (zB 2 Bildbearbeitungen bei Photoshop und surfe nebenbei), in Wirklichkeit läuft doch aber alles nacheinander ab, oder nicht?
Ändert sich daran tatsächlich etwas mit 2 Kernen?
Spätestens wenn die Ergebnisse der CPU's zusammengeführt müssen, geschieht das doch "seriell"?!
(Die eine CPU bearbeitet die "ungeraden Befehlszeilen" die andere die "geraden", stark vereinfacht. Ist das falsch?)
Wenn ich bei einem Synthesizer mehrere Tasten drücke hört mein Ohr auch mehrere Töne/Klänge "gleichzeitig" in Wirklichkeit sind sie aber doch nacheinander, wenn auch im Bruchteil von Mikrosekunden.
imacer
P.S.
Bei der Frage geht's mir weniger um den Vorteil von Dual- oder Quad-Core Rechnern, als um das allgemeine Verständnis.
![Rolleyes :roll:](./images/smilies/nuforum/icon_rolleyes.gif)
Wenn der Begriff parallel genuzt wird, ist es denn dann auch auf der kleinsten zeitlichen Einheit (Mikro-, bzw Nano-, oder Picosekunden auch wirklich gleichzeitig oder nur rasend schnell hintereinander?
Um das Beispiel einfach zu halten bleiben wir beim PC mit einer CPU. Ich habe (für die menschlichen Wahrnehmung) mehrere Programme und Prozesse parallel in Betrieb (zB 2 Bildbearbeitungen bei Photoshop und surfe nebenbei), in Wirklichkeit läuft doch aber alles nacheinander ab, oder nicht?
Ändert sich daran tatsächlich etwas mit 2 Kernen?
Spätestens wenn die Ergebnisse der CPU's zusammengeführt müssen, geschieht das doch "seriell"?!
(Die eine CPU bearbeitet die "ungeraden Befehlszeilen" die andere die "geraden", stark vereinfacht. Ist das falsch?)
Wenn ich bei einem Synthesizer mehrere Tasten drücke hört mein Ohr auch mehrere Töne/Klänge "gleichzeitig" in Wirklichkeit sind sie aber doch nacheinander, wenn auch im Bruchteil von Mikrosekunden.
imacer
P.S.
Bei der Frage geht's mir weniger um den Vorteil von Dual- oder Quad-Core Rechnern, als um das allgemeine Verständnis.
- JensII
- Star
- Beiträge: 8896
- Registriert: Di 11. Mär 2003, 17:35
- Wohnort: Zwischen den Nubis
- Has thanked: 2 times
- Been thanked: 16 times
Dein Beispiel sollte sollte so aussehen, wenn ich das richtig verstanden habe:
Wenn Photoshop pro Bild einen Task machn würde:
Core 1: Photoshop 1. Bild
Core 2: Photoshop 2. Bild
Und entweder in 1 oder 2: Internet.
Wenn Photoshop aber nur 1 Gesamttask währe, würde es so aussehen:
Core 1: Photoshop beide Bilder
Core 2: Internet
Und daran sieht man dann auch, dass einem DualCore nicht viel bringt, wenn die Software nicht drauf eingestellt ist....
Bei Single-Core währe das so:
10ms Photshop1 bearbeiten 10 ms Photoshop2 bearbeite 5ms Internet bearbeiten. Zeiten sind nur ein Beispiel. Nach dem jeweiligen Bearbeiten werden die Daten im Ram zwischengelagert.
Wenn Photoshop pro Bild einen Task machn würde:
Core 1: Photoshop 1. Bild
Core 2: Photoshop 2. Bild
Und entweder in 1 oder 2: Internet.
Wenn Photoshop aber nur 1 Gesamttask währe, würde es so aussehen:
Core 1: Photoshop beide Bilder
Core 2: Internet
Und daran sieht man dann auch, dass einem DualCore nicht viel bringt, wenn die Software nicht drauf eingestellt ist....
Bei Single-Core währe das so:
10ms Photshop1 bearbeiten 10 ms Photoshop2 bearbeite 5ms Internet bearbeiten. Zeiten sind nur ein Beispiel. Nach dem jeweiligen Bearbeiten werden die Daten im Ram zwischengelagert.
WoZi: NuVero 11 & NuVero 7 & RS5 @ Anthem MRX540
![Rock Out! :music-rockout:](./images/smilies/music/rockout.gif)
![Rock On! :music-rockon:](./images/smilies/music/rockon.gif)
![Rock Out! :music-rockout:](./images/smilies/music/rockout.gif)
Ja. Wie ich das verstanden habe. 2 Cores sind somit auch 2 unabhängige CPUs und somit können 2 unterschiedliche Prozesse gleichzeitig verarbeitet werden, da jeder Core für sich unabhängig arbeitet mit allen Registern etc. während ein Multithreading CPU eben doch nur eine Core hat und bestimmte Sachen halt trotzdem noch gemeinsam nutzen muss und dann eben warten muss bei bestimmten Operationen.
Allerdings habe ich mich damit noch nie beschäftigt weiter. So denke ich mir das zumindest.
Egal, ob Multihreading oder Multicore. So lange die Progs das nicht unterstützten, nutzt Dir die grösste Multi-CPU nix.
Allerdings habe ich mich damit noch nie beschäftigt weiter. So denke ich mir das zumindest.
Egal, ob Multihreading oder Multicore. So lange die Progs das nicht unterstützten, nutzt Dir die grösste Multi-CPU nix.
Ob es was nützt oder nicht sollte hier nicht zur Debatte stehen.
Wenn sicher ist, dass bei 2 Kernen tatsächlich 2 Dinge gleichzeitig bearbeitet werden reicht mir das schon, die entsprechende Unterstützung der Software setze ich da voraus, ging nur um das theoretisch Mögliche.
Wie werden dann die Ergebnisse der Berechnungen weitergeleitet? Müssen diese nicht dann an einer Stelle "seriell" zusammengeführt werden, um ausgegeben zu werden?
Gibt es also eine Stelle (einen Flaschenhals) der die zuvor parallelel ausgeführten Prozesse wieder zu Nichte macht?
Wie sieht es denn auf kleinster Ebene des elektrischen Stroms aus?
Gibt es da real parallele Stromkreise oder ist die Geschwindigkeit des "Wechselns" nur so hoch, dass uns Gleichzeitigkeit vorgekaukelt wird.
Man kennt ja die Schaltdiagramme mit Parallel-und Reihenschaltung, aber auch bei der Parallelen wird der Strom letzten Endes wieder "zusammengeführt", kann ich mir das wie einen Wasserstrom vorstellen, wo es wirklich ineinander fließt oder eher wie einen Reissverschluss, in dem die Ionen (elektrische Ladungsträger in den Bauteilen, zB Kupferkabel) mehr oder weniger sich einglidern müssen und so doch keine absolute Gleichzeitigkeit besteht.
Sorry, das wird schon philosophisch.
der fast zufriedene imacer![Wink ;)](./images/smilies/icon/wink.gif)
Wenn sicher ist, dass bei 2 Kernen tatsächlich 2 Dinge gleichzeitig bearbeitet werden reicht mir das schon, die entsprechende Unterstützung der Software setze ich da voraus, ging nur um das theoretisch Mögliche.
Wie werden dann die Ergebnisse der Berechnungen weitergeleitet? Müssen diese nicht dann an einer Stelle "seriell" zusammengeführt werden, um ausgegeben zu werden?
Gibt es also eine Stelle (einen Flaschenhals) der die zuvor parallelel ausgeführten Prozesse wieder zu Nichte macht?
Wie sieht es denn auf kleinster Ebene des elektrischen Stroms aus?
Gibt es da real parallele Stromkreise oder ist die Geschwindigkeit des "Wechselns" nur so hoch, dass uns Gleichzeitigkeit vorgekaukelt wird.
Man kennt ja die Schaltdiagramme mit Parallel-und Reihenschaltung, aber auch bei der Parallelen wird der Strom letzten Endes wieder "zusammengeführt", kann ich mir das wie einen Wasserstrom vorstellen, wo es wirklich ineinander fließt oder eher wie einen Reissverschluss, in dem die Ionen (elektrische Ladungsträger in den Bauteilen, zB Kupferkabel) mehr oder weniger sich einglidern müssen und so doch keine absolute Gleichzeitigkeit besteht.
Sorry, das wird schon philosophisch.
der fast zufriedene imacer
![Wink ;)](./images/smilies/icon/wink.gif)
Mmmh. Also daaaa würde ich dann jetzt googlen an Deiner Stelle. ![Wink ;)](./images/smilies/icon/wink.gif)
Es sei denn, hier ist wer so konfirm, dass er das beantworten kann.![MrGreen :mrgreen:](./images/smilies/nuforum/icon_mrgreen.gif)
Die and. Hürden sind sicher der Speicher, der Bus und und und.
Ich denke mal, rein logisch gesehen. Irgendwas wird immer auf was anderes warten.![Wink ;)](./images/smilies/icon/wink.gif)
Aber ich bin kein Physiker oder so.
![Wink ;)](./images/smilies/icon/wink.gif)
Es sei denn, hier ist wer so konfirm, dass er das beantworten kann.
![MrGreen :mrgreen:](./images/smilies/nuforum/icon_mrgreen.gif)
Die and. Hürden sind sicher der Speicher, der Bus und und und.
Ich denke mal, rein logisch gesehen. Irgendwas wird immer auf was anderes warten.
![Wink ;)](./images/smilies/icon/wink.gif)
Aber ich bin kein Physiker oder so.