Was ist der „Unterschied“ zwischen Hyperthreading und Multithreading? Und was ist CMT und SMT?
2 Antworten
Der Unterschied ist Branding. Im Endeffekt beschreiben die alle das gleiche.
SMT ist der allgemeine Begriff, Intel nennt ihre Implementierung Hyperthreading, IBM oder AMD nannten es CMT.
Multithreading ist dann nochmal allgemeiner die Bezeichnung für das Verwenden mehrerer Threads gleichzeitig.
Du versuchst dinge zu vergleichen, die nicht direkt vergleichbar sind nur verwandt.
Es ist wie die Frage "Was ist der Unterschied zwischen einem Fuß und einem Schuh?"
Multithreading ist eine Software Konzept das quasi ermöglicht einen einzelnen Prozess auf mehrere Threads aufzuteilen und gleichzeitig abzuarbeiten.
Hyperthreading hingegen bezieht sich auf eine sehr spezifische, von Intel entwickelte Hardwaretechnologie, die es einem einzelnen Prozessorkern ermöglicht, mehrere Ausführungsthreads effizienter auszuführen.
Wenn Du es wüsstest, dann hättest Du die Frage in dieser Form ja wohl kaum stellt. Und die Antwort ist nicht aus einem Übersetzer, sondern sagt genau das, was es eben ist:
Multithreading ist ein Konzept, Hyperthreading eine Hardwaretechnologie.
Deine Frage ist wie: Was ist der Unterschied zwischen einem Antrieb und einem V8-Motor.
Ja, jetzt verstehe ich das, wegen ZaoDaDangs Antwort.
Also ist SMT sowie CMT beides Hyperthreading? Nur ist SMT von Intel?
Hier der exakte Link: https://superuser.com/questions/740611/what-is-the-difference-between-multithreading-and-hyperthreading
SMT ist eine generelle Bezeichnung für eine Technologie, die es erlaubt, dass "echtes" Multithreading möglich ist. Sprich, der Prozessor kann zwar nicht in einem Kern gleichzeitig mehrere Threads ausführen, aber er kann effizienter zwischen einzelnen Threads wechseln. Ohne diese Technologie wäre zwar gleichzeitiges Multithreading möglich, wenn jeder Kern einen Thread ausführt, aber auf einem Kern wäre die Ausführung mehrerer Threads auf einem Kern langsamer.
Intels Umsetzung von SMT heißt HTT (Hyper-Threading-Technology).
Steht doch genau da was der Unterschied zwischen Hyperthreading und Multithreading ist.
Hyperthreading passiert in Hardware.
Multithreading passiert in Software. Multithreading kann ja auch auf Systemen mit nur einem Prozessorkern und ohne Hyperthreading eingesetzt werden. Die beiden Dinge haben direkt nichts miteinander zu tun, außer dass durch Hyperthreading mehrere Softwarethreads (mit Einschränkungen) auf einem Prozessor laufen können.
Das hast du aus dem Internet und einfach nur in den übersetzer gepackt. Das weiß ich auch, deswegen habe ich auch „Unterschied“ geschrieben.