LordArgaron
Lt. Junior Grade
- Registriert
- Jan. 2004
- Beiträge
- 304
Hallo liebe Community,
vor nicht allzu langer Zeit kam mir ein Gedanke, dieser lautet:
Welche Kriterien nutzt eine CPU um Multitreading (2 Kernauslastung) optimal zu nutzen, bzw. die Treads den entsprechenden Kernen zuzuweisen?
Beispiel Core2Quad
[(Kern1+Kern2)L2 Cache + (Kern3+Kern4)L2 Cache] :
Dementsprechen müsste die CPU aus Leistungsgründen bei einer Auslastung von 2Kernen, Kern1 und Kern3 oder Kern2 und Kern4 nutzen. Bei der Nutzung von Kern1 und Kern2 oder Kern3 und Kern4 würde dann nicht die "volle" Leistung genutzt werden können weil dann der L2 Cache geteilt wird.
Beispiel "Bulldozer":
Ein Bild der Architektur. Dieses entspricht einem Modul. Die CPU hat dann noch zusätzlich einen L3 Cache den alle Module gemeinsam nutzen. Wie im Core2Quad beispiel würde ein 4-Kern "Bulldozer" aus 2 Modulen bestehen und einem L3 Cache. Hier müsste der Unterschied noch deutlicher sein. Der L3 Cache wird ja in jedem Fall geteilt.
EDIT:
Wenn die Software oder das OS die Kerne bestimmt, meint ihr das mein Gedanke berücksichtigt wird? Wenn ja, wie?
vor nicht allzu langer Zeit kam mir ein Gedanke, dieser lautet:
Welche Kriterien nutzt eine CPU um Multitreading (2 Kernauslastung) optimal zu nutzen, bzw. die Treads den entsprechenden Kernen zuzuweisen?
Beispiel Core2Quad
[(Kern1+Kern2)L2 Cache + (Kern3+Kern4)L2 Cache] :
- Diese CPU besteht aus 2 zusammengesetzten Core2Duo's.
- Der Core2Duo hat 2 vollwertige Kerne mit je einem L1 Cache, aber einem gemeinsamgenutzen L2 Cache.
- Dieser L2 Cache kann bei einem Tread einem Kern vollständig zugewiesen werden.
Dementsprechen müsste die CPU aus Leistungsgründen bei einer Auslastung von 2Kernen, Kern1 und Kern3 oder Kern2 und Kern4 nutzen. Bei der Nutzung von Kern1 und Kern2 oder Kern3 und Kern4 würde dann nicht die "volle" Leistung genutzt werden können weil dann der L2 Cache geteilt wird.
Beispiel "Bulldozer":
Ein Bild der Architektur. Dieses entspricht einem Modul. Die CPU hat dann noch zusätzlich einen L3 Cache den alle Module gemeinsam nutzen. Wie im Core2Quad beispiel würde ein 4-Kern "Bulldozer" aus 2 Modulen bestehen und einem L3 Cache. Hier müsste der Unterschied noch deutlicher sein. Der L3 Cache wird ja in jedem Fall geteilt.
EDIT:
cutulhu schrieb:Hallo,
ich denke mal, die Kriterien für die Nutzung der Kerne bestimmt das OS bzw. die entsprechend programmierte Software. Die CPU stellt nur die Rechenwerke zur Verfügung.
Wenn die Software oder das OS die Kerne bestimmt, meint ihr das mein Gedanke berücksichtigt wird? Wenn ja, wie?
Zuletzt bearbeitet: