Gast
#304811
Guten Tag! Ich beschäftige mich zur Zeit dem generellen Aufbau von CPU´s und habe mir auch schon einige Core-Designs angeschaut und auch kräftig Google angestrengt, aber mir bleiben trotzdem noch ein paar Fragen offen: Die modernen CPU´s sind ja meist mit Pipelines aufgebaut, wozu manchmal noch Superskalarität hinzukommt, was ich mir so vorstelle, dass einfach mehrere Einheiten der CPU wie ALU mehrfach vorhanden sind und somit parallel arbeiten können. Jetzt gibt es ja von Intel mehrere Befehlssatzerweiterungen wie MMX oder SIMD usw. die ja darauf ausgelegt sind, Daten parallel zu verarbeiten. Bedeutet das, dass eine CPU die diese Befehle unterstützt automatisch eine Superskalare CPU ist? Weiter gibt es ja noch ISA´s wie VLIW, welche zum Beispiel der Intel Itanium verwendet, bei der ja vom Kompiler schon direkt die Befehle so gepackt werden, dass sie parallel abgearbeitet werden können. Laut Google verfolgt VLIW aber einen anderen Ansatz als die Superskalarität. Ist der Unterschied nur, dass bei VLIW nicht die CPU über die parallelisierung entscheidet? Zum Schluss wäre da noch Multithreading, wo ja ein Prozess in mehrere Teilaufgaben unterteilt wird, die parallel abgearbeitet werden können, wenn ich das richtig verstanden habe. Bei einem normalem Prozess kann die Pipeline auch durch sorgfältiges parallelisieren meist nicht komplett ausgelastet werden. Wird bei Multi-/Hyperthreading jetzt versucht, die Pipeline so aufzufüllen, dass immer alles ausgelastet ist? Wenn ja, dann ist dafür doch aber auch eine Superskalare Architektur von nöten, die man sonst ja kaum passende Programmstücke finden wird, die zum auffüllen passend sind, oder steht mir da grad gehörig einer auf dem Schlauch?*g* Sorry für die vielen Fragen, aber wäre nett, wenn mir da jemand weiter helfen könnte! Gruß Michael