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

Arbeitsweise von Computerprozessoren

Hier dreht es sich um (fast) alles...
Benutzeravatar
imacer
Star
Star
Beiträge: 751
Registriert: Di 25. Feb 2003, 21:45
Wohnort: Dresden

Beitrag von imacer »

Etwas gegoogelt habe ich schon, aber so richtig gute Erklärungen, die mehr sind als oberflächliche Textauszüge aus Werbeprospekten von Intel und AMD (überspitzt formuliert) fand' ich nicht.
Ich denke, die Begriffe "gleichzeitig" und "parallel" werden oft vorschnell angeführt.

Für uns träge Menschen mag uns ja vieles gleichzeitig erscheinen, ob es auch tatsächlich so ist, ist eine andere Frage und da hoffe ich ja auf die Sachkenntnis einiger "nubertianer".
Es sei denn, hier ist wer so konfirm, dass er das beantworten kann.
Schaun mer mal ;)

imacer
Homernoid

Beitrag von Homernoid »

Na ja. Auf Grund der Busbandbreite z.B. müssen logischerweise ja auch Daten warten.
Man versucht ja die Wartezeiten so gering wie möglich zu halten, in dem man bessere Cachestrukturen einsetzt und Daten in Vorhalt hat z.B. Aber wenn die Daten dann anders gelesen werden müssen, dann muss die CPU wieder darauf warten. Also, letztendlich wartet eben immer irgendwas.

Nur. Und das ist eben der Unterschied. Während die eine CPU noch immer auf Daten wartet, kann die and. CPU z.B. weitermachen mit Berechnungen. So gesehen hat man dann sowas wie eine Verbesserung, da letztendlich das Ergebnis zählt. Und mit irgendwas müssen ja Intel und AMD werben. :mrgreen:

Wenn Du auf das Philosophische hinauswillst in Richtung Physik. Da kann ich natürlich nicht mitreden. :D
Da bräuchten wir nen Physiker wie man ihn immer auf Bayern oder so sieht. ;)

Ich denke mal, selbst das Gehirn kann nicht alles parallel abarbeiten und muss ab und an auf Input warten. :D
Benutzeravatar
Sirarokh
Star
Star
Beiträge: 865
Registriert: Sa 4. Mär 2006, 22:02
Wohnort: Waldshut-Tiengen
Kontaktdaten:

Beitrag von Sirarokh »

Soweit ich weiß - aber achtung: viel ist das nicht und das Meiste ist nur mündlich überliefert worden - funktioniert ein Prozessor auf kleinster Ebene folgendermaßen:
An einem Teil der Eingangsschnittstellen (innerhalb des Core) liegt eine Spannung an (Input). Die "Arbeit" des Prozessors liegt darin, dass ausgehend von dieser Kombination von Spannungen an einem anderen Teil der Schnittstellen eine Spannung anliegt oder eben auch nicht (Output).
Diese Eingangs- und Ausgangskombination ist natürlich eine Repräsentation von einem Eingangswert (Binär) und -Befehl und einem Ausgangswert (Binär).

Ein Dualcore könne nun theoretisch zwei dieser "Befehle" gleichzeitig bearbeiten.

Aber es steht noch zur Debatte, ob diese Information auch wirklich richtig ist. Ich bin mir da nicht 100% sicher.
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]
Benutzeravatar
JensII
Star
Star
Beiträge: 8896
Registriert: Di 11. Mär 2003, 17:35
Wohnort: Zwischen den Nubis
Has thanked: 2 times
Been thanked: 16 times

Beitrag von JensII »

Wie währe es mal direkt an der Quelle?

http://www.intel.com/multi-core/index.htm
WoZi: NuVero 11 & NuVero 7 & RS5 @ Anthem MRX540

:music-rockon: :music-rockout:
Mayday21
Star
Star
Beiträge: 535
Registriert: Fr 21. Jan 2005, 13:56
Wohnort: Allershausen

Beitrag von Mayday21 »

Das Prinzip ist recht einfach.
Große Aufgaben werden in mehrere Teilaufgaben zerlegt. Dies geschieht in der Regel durch das Betriebssystem.
Dieses ist für die Koordination der Tasks und deren Verteilung auf den Kernen zuständig.

Ist ein Teilprozess fertig, muß dieser unter Umständen auf einen anderen Teilprozeß warten und kann erst dann weiter machen. Beide Teilprozesse werden aber unabhängig von einander in jedem Kern seperat abgearbeitet.


Sieht dann vielleicht so aus:

Code: Alles auswählen

Aufgabe   ---v                                                         ^------------>
Proz1        |--------------..............|----------------------------|
Proz2        |----------------------------|--------------..............|

             ^1            ^2             ^3            ^4             ^5

1) Aufteilung auf 2 Kerne
2) erster Teilprozeß fertig, wartet auf den zweiten Teilprozeß
3) Synchronisieren, weiter arbeiten
4) zweiter Teiprozeß fertig
5) beide fertig, Ergebnis an Betriebssystem
[size=75][color=green]Receiver: Denon 3805
DVD-Player: Grundig GDP 1100
Lautsprecher: Nubert nuWave 10, nuWave RS-5, nuWave CS-65
geplant: Denon DVD-1910/1720, Panasonic PT-AE700E
[/color][/size]
[url=http://www.audihelp.de]http://www.audihelp.de[/url]
Benutzeravatar
maks
Star
Star
Beiträge: 1158
Registriert: Mo 2. Mai 2005, 23:05
Wohnort: Wien

Beitrag von maks »

Ein Doppelkernprozesser (egal ob Intel Core Duo, Core 2 Duo, Athlon X2 oder ähnliche) haben 2 physikalische Rechenkerne die (fast) völlig unabhängig voneinander Arbeiten. Das Konzept ist eigentlich (fast) gleich wie bei einem Board mit 2 Prozesserfassungen. Einige kleine Unterschiede gibts aber doch. So teilen sich manche den L2 Cache (zB Core 2) und auch die Verbindung zum Hauptspeicher teilen sich manche.

Trotzdem können die beiden Kerne unabhängig voneinander und gleichzeitig Befehle verarbeiten. Das passiert nicht nach "einer die ungerade der andere die geraden Codezeilen" denn das ginge nicht, da immer erst das Ergebnis der vorhereigen Zeile abgeabreitet sein muss bevor mit der nächsten fortgefahren werden kann.

Die erwähnten Threads sind eigentlich genau solche linearen Programmabläufe. Ein Thread kann zB das ganz Programm sein etwas MS Word oder es kein ein Programm auch schlau in mehrere Threads aufgeteilt sein die voneinander weitgehend unabhängige Sachen machen zB die KI, die Physik und die Spiellogik in einem Spiel. Natürlich gibts aber auch hier immer wieder stellen an denen die Threads sich syncronisieren müssen und Informationen austauschen um richtig zu laufen.

Trotzdem verlaufen auch auf der kleinsten Ebene alles wirklich parallel. Das gleiche Konzept hat jeder in seinem Rechner schon - zB. läuft die CPU und der Grafikchip auch parallel und unabhängig voneinander.

Der einzige Flaschenhals sind die Verbindungen nach aussen. Hier ist entscheidend wir schnell der FSB (Front Side Bus - Verbindung der CPU zum Chipsatz, also vor allem Speicher) oder bei AMDs ab Athlon 64 die ihren eigenen Speicherkontroller haben der Hypertransport läuft. Wenn man so will, kommt dort alles zusammen. Irgendwann muss ja auch alles per PCIe oder AGP an den Grafikprozessor gesendet werden um das Ergebniss darzustellen.

Aber nachdem diese Verbindungen ausreichend schnell sind, sollte solche Überlegungen keine Rolle spielen. Die verarbeitung läuft absolut parallel.

Übrigens sollte man das ganze nicht mit Hyperthreading verwechseln. Ich glaub Homer hat das schon angesprochen (fälschlicherweise als Multithreading wenn mich nicht alles täusch? Naja, lesen bildet :) )
Dabei werden nur die ohnehin auf jedem Prozesser vorhandenen und unabhängig voneinenander rechnenden Funktionseinheiten besser ausgelastet, in dem die CPU selber die Einzelschritte etwas besser darauf verteilen kann. Dadurch steigt (manchmal) die Auslastung der einzelnen Recheneinheiten der CPU was sie etwas schneller macht. Wirklich parallel laufen da nur einzelne kleine Aufgaben und nicht ganze Programme.
Musik: Squeezebox Touch|nuConnect AmpX|NuVero 10|Sennheiser Momentum 2 OE
Video: Panasonic TX-P50GT30|Marantz SR6007|nuLine WS-14|nuPro AW-350
PC: piCorePlayer|nuBox A-125|AKG K271
Benutzeravatar
imacer
Star
Star
Beiträge: 751
Registriert: Di 25. Feb 2003, 21:45
Wohnort: Dresden

Beitrag von imacer »

Danke maks, das war mal eine hilfreiche, verständliche Antwort.
Jetzt fehlt nur noch die Ebene der Elektronen bzw die derer Bestandteile. 8)

imacer
Homernoid

Beitrag von Homernoid »

Komm imacer.
An was schreibst Du gerade? Hausarbeit? :lol:
Benutzeravatar
imacer
Star
Star
Beiträge: 751
Registriert: Di 25. Feb 2003, 21:45
Wohnort: Dresden

Beitrag von imacer »

8O

ich bin doch keine 14...oder in einem anderen schulkompatiblen Alter :D
Nein, die Frage hatte keinen tieferen Sinn, bzw muss nicht erschöpfend beantwortet werden.
Es waren bloss Gedanken, aber dennoch nicht ganz uninteressant, wie eng man das Zeitfenster setzen müsste, um von echter Parallelität zu reden. Mikrosekunden, Nano...Pico...?
(3GHz=Taktabstand von 0,33 Nanosekunden. Wenn es nun also im Abstand von weniger als diesem Zeitraum erfolgen würde, wäre es nicht parallel, aber wohl auch kaum feststellbar?)

Gib's zu, du willst das auch wissen :)

imacer
Homernoid

Beitrag von Homernoid »

Ehrlich gesagt hat mich das noch nie sonderlich interessiert. Auch dann nicht, als ich mal an ner E10K mit 34 Proz. gesessen habe. :mrgreen:
Also. Was Du wissen möchtest, geht schon tief in die Physik rein. Richtung Atome und so. :D
Antworten