Prozessor-Mimikry, Andreas Stiller, c't 8/2006 S.206 
*********************************************************

MPdetect.*        Projektdateien fr C++/Win32 Microsoft Visual Studio 2005  
MPdetect20003.zip Projektdateien fr C++/Win32 Microsoft Visual Studio 2003
MPdetect.cpp      Sourcecode  
MPdetect.exe      Ausfhrbare Konsolapplikation 
 

MPdetect ist ein Beispielprogramm zur Ermittlung der individuellen Prozessorkennungen 
von Intel- und AMD-Multiprozessor/Multicore-Systemen nach 
Package-ID, Core-ID und SMT-ID gem dem Stand von Mrz 2006, 
gemaess Intel IA-32 Intel Architecture Software Developers Manual 2a Jan 06, 25366618.pdf Kap 7.10.3
bzw. IA-32 Intel Architecture Optimization Reference Manual Jun 05, 24896612.pdf Example 7.6
und AMD CPUID Specification 25481 Rev 2.18, Jan 06. 


  
Es erzeugt fr jeden, vom Betriebssystem eingeloggten logischen Prozessor eine Struktur apic_conf, die
die Zuordnung in der Hierarchie Package/Core/SMT gestattet. Es bercksichtigt die flexiblen Bitfelder, 
in die der Wert der Inital APIC-ID aufgeteilt wird. Es ist derzeit nur fr Nicht-Cluster-Systeme, also 
ohne Cluster-ID gedacht. Ausserdem geht es bei Multiprozessorsystemen mit mehreren Sockeln von 
gleichen Prozessoren aus.  MPdetect weicht an zwei Punkten von den Intel-Programmbeispielen ab: 
Bei GetSubID wird die ID sinnvollerweise so verschoben, dass sie bei Null anfngt. Und fr die SMT-ID wird die Maske 
von der Inital-APIC-ID und nicht von der vom Betriebssystem vergebenen local APIC-ID genommen. 
(as@ctmagazin.de) 

 
 