Kann ein Computer Befehle gleichzeitig ausführen also parallel?

3 Antworten

Das kommt drauf an.

Mehrkernprozessoren können natürlich pro Kern Befehle auch parallel ausführen.

Weiters gibt es sogenannte SIMD Befehle (Single Instruction Multiple Data), das ist zwar nur ein Befehl aber dieser wird auf mehrere Daten ausgeführt was eine gewisse Parallelisierung erlaubt.

Dann gibt es auch noch das Simultanious Multi Threading von Intel als Hyper Threading bezeichnet. Dabei werden 2 Threads auf einem Prozessor parallel ausgeführt solange die beiden nicht die selbe Ressource benötigen und solange die Befehle unabhängig sind.

Das Pipelining kann man allerdings auch so interpretieren. So kann die CPU zB gleichzeitig Rechnen und Daten aus dem Speicher lesen oder in den Speicher schreiben.

Also ein aktueller Prozessor kann auch pro Kern mit Beschränkungen zwei Befehle gleichzeitig abarbeiten.

Hast du mehrere prozessorkerne können Befehle gleichzeitig ausgeführt werden, pro Kern wird aber immer nur ein Befehl nach dem anderen ausgeführt.

Kelec  27.11.2023, 15:27

Nicht ganz. Hyperthreading und auch einige Befehle erlauben das Ausführen mehrerer Befehle pro Kern zum selben Zeitpunkt.

Auch ohne Hyperthreading machen moderne Prozessoren mehrere Operationen gleichzeitig, auch wenn das nicht mehrere Befehle sind, so erlauben die Piplines zB gleichzeitiges Instruction Fetch vom RAM, Instruction Decode, Instruction Execution usw.

Dinge wie Branch Prediction erlauben auch bei Sprüngen oder beim Nachladen bestimmter Daten aus dem RAM eine gewisse Parallelisierung.

Während die Piplines nur unterschiedliche Stufen abbilden erlauben SIMD Instruktionen sowie Hyperthreading das Nutzen mehrerer Recheneinheiten für unterschiedliche Operationen.

Natürlich ist das alles mit Einschränkungen verbunden, aber unter gewissen Umständen führen Einkernprozessoren auch Befehle Parallel aus.

0
Fidreliasis  27.11.2023, 16:30
@Kelec

Ist halt die Frage wie man den CPU Kern sieht, unterm Strich besteht er ja aus mehreren Einheiten die miteinander arbeiten und gleichzeitig mehrere Befehle und Operationen ausführen.

0
Kelec  27.11.2023, 16:32
@Fidreliasis

Richtig. Als Kern im Langläufigen Sinne bezeichnet man aber eben die Einheit aus ALU, Steuerregister und Erweiterungen. Ein Kern hat eben nur ein Steuerregister, allerdings ist das für das Hyperthreading so ausgelegt, dass es eben unabhängige Einheiten in zB der ALU nutzen kann.

0
Fidreliasis  27.11.2023, 17:08
@Kelec

Langläufig stellt sich dir normale Nutzer darunter gar nichts vor außer vielleicht Zauberei unter dem Headspreader.

1
Kelec  27.11.2023, 17:09
@Fidreliasis

Dass sich der Normalverbraucher darunter kaum etwas vorstellt ist irgendwie klar, aber nicht Teil meines Kommentars ;)

0

Da ein Computer heutzutage meist über mehrere Rechenkerne verfügt können auch mehrere Programme gleichzeitig laufen.

Früher wo die Computer meist nur über einen einzelnen Rechenkern verfügten, musste tatsächlich so verfahren werden, das die Programme Zeitabschnitte auf der CPU zugewiesen bekommen hatten, die dann wechselweise abgearbeitet wurden.

jo135  26.11.2023, 10:32
Früher wo die Computer meist nur über einen einzelnen Rechenkern verfügten, musste tatsächlich so verfahren werden, das die Programme Zeitabschnitte auf der CPU zugewiesen bekommen hatten

Und das wird natürlich auch weiterhin so gemacht.

2
julihan41  26.11.2023, 12:13
@jo135

Nur eben mittlerweile pro CPU-Kern bzw. "Thread" (bei SMT).

1