AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte CPUID Test
Thema durchsuchen
Ansicht
Themen-Optionen

CPUID Test

Ein Thema von scp · begonnen am 17. Okt 2004 · letzter Beitrag vom 21. Sep 2005
Antwort Antwort
Seite 3 von 3     123   
scp
Registriert seit: 31. Okt 2003
Habe mich mal mit dem Thema beschäftigt und ein kleines Test-Prog mit Source geschrieben. Habe darin alle Informationen kombiniert, die ich finden konnte.
Dabei ist eine Liste von über 100 Prozessoren entstanden, darunter Intel/AMD/Cyrix, aber auch Exoten wie VIA/SiS/UMC/Transmeta.
Der Athlon 64 wird auch erkannt, bei seinen Features gabe ich bis jetzt nur AA64 gefunden, das nur ein Flag für die Erkennung der Architektur darstellt.
Bei AMDs wird der Name direkt aus dem Prozessor ausgelesen, bei den anderen wird der Name aus der Liste mittels Vendor/Family/Model usw. ermittelt. Ausserdem habe ich noch bei allen Intels/AMDs die Code-/Die-Namen oder was auch immer zussamengetragen, die ich finden konnte.

Wers testen/verwenden will kann es gerne tun und eventuelle Fehler melden.

EDIT: Die Namen von Intel P4s und Verwandten Mobiles/Celerons/Xeons werden jetzt über die BrandTable ermittelt.
Angehängte Dateien
Dateityp: zip testcpuidex_144.zip (228,0 KB, 265x aufgerufen)
 
micsie

 
Delphi 2005 Architect
 
#21
  Alt 17. Okt 2004, 15:42
Hier der Screenshot mit den Daten.
Die Taktrate wird wie beim Pentium automatisch geregelt. Ich bezweifle aber, dass die 1,8 GHz CPU im Modus "minimale Batteriebelastung" immer noch mit 1,2 GHz läuft.

mfg
Miniaturansicht angehängter Grafiken
p4m.jpg  
  Mit Zitat antworten Zitat
scp

 
Delphi 7 Personal
 
#22
  Alt 17. Okt 2004, 16:08
Habe ihn jetzt mal eingetragen, weis allerdings nicht, ob es dann einen "normalen" Pentium 4 gibt, der diesselbe Family/Model/Ext.Family-Kennzeichnung hat.

EDIT: Habs rausgefunden und eingetragen: der "normale" hat ne andere Brand-ID.
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko
 
#23
  Alt 17. Okt 2004, 16:42
Zitat von scp:
Ah, den hatte ich noch nicht in der Liste. Weisst du zufällig den "Codenamen"?
Wie schon gesagt, an der Taktrate werde ich nichts ändern, es sei denn ich finde (zufällig) noch eine andere Funktion dafür.
Hmm, meinst du Pentium-M 755?
Thomas Liske
  Mit Zitat antworten Zitat
scp

 
Delphi 7 Personal
 
#24
  Alt 17. Okt 2004, 18:13
Nein, ich meinte "Dothan", aber jetzt weiss ichs ja
Habe diesen CPU jetzt eingetragen und habe jetzt die richtige BrandTable für P4s eingebaut, die Namen dürften jetzt stimmen.
  Mit Zitat antworten Zitat
DaBoss
 
#25
  Alt 17. Okt 2004, 22:31
Wen es interessiert, hier mal ein paar c sourcen, mit denen sich die CPU frequenz exakt bestimmen lässt...

long __stdcall GetCPUFrequency(void)
{
LARGE_INTEGER ulFreq, ulTicks, ulValue, ulStartCounter, ulEAX_EDX;
QueryPerformanceFrequency(&ulFreq);
QueryPerformanceCounter(&ulTicks);
ulValue.QuadPart = ulTicks.QuadPart + ulFreq.QuadPart;
_asm
{
rdtsc
mov ulEAX_EDX.LowPart, EAX
mov ulEAX_EDX.HighPart, EDX
};
ulStartCounter.QuadPart = ulEAX_EDX.QuadPart;
do
{
QueryPerformanceCounter(&ulTicks);
} while (ulTicks.QuadPart <= ulValue.QuadPart);
_asm
{
rdtsc
mov ulEAX_EDX.LowPart, EAX
mov ulEAX_EDX.HighPart, EDX
};
ulFreq.QuadPart = ulEAX_EDX.QuadPart - ulStartCounter.QuadPart;
return (long) ulFreq.QuadPart / 1000000;
};

Das Original ist von Code-Guru, von wem weiß ich nicht. Hab es ein wenig modifiziert... braucht genau 1 sekunde und ermittelt immer die selbe frequenz...
  Mit Zitat antworten Zitat
Muetze1
 
#26
  Alt 17. Okt 2004, 22:35
Moin!

@scp: Dein Tool ermittelt falsche Werte beim Cache:

Zitat von TestCPUIDEx:
Instruction TLB: 4K, 2M or 4M pages, fully associative
Data Cache: Sectored, 64 byte cache line, 4 way set associative, 8K
L2 unified cache: No L2 cache
Instruction Trace Cache: 4 way set associative, 12K uOps
L1i Cache: Size 0KB, Assoc 0, Lines 0, Line Size 0, TLB 64, TLB Assoc 0
Zitat von mein Tool:
cache information
Instruction TLB: 4-KB, 2-MB or 4-MB pages, fully associative, 64 entries
Data TLB: 4-KB or 4-MB pages, fully associative, 64 entries
1st-level data cache: 8-KB, 4-way set associative, sectored cache, 64-byte line size
No 2nd-level cache or, if processor contains a valid 2nd-level cache, no 3rd-level cache
Trace cache: 12K-uops, 8-way set associative
2nd-level cache: 512-KB, 8-way set associative, sectored cache, 64-byte line size

Cache summary...
8 KB L1 cache
-> 0 KB L1 instruction cache
-> 8 KB L1 data cache
512 KB L2 cache
no L3 cache
Wobei ich glaube, das sich dein Tool vor allem beim 2nd Level Cache an dem fett markierten Eintrag in den Cache Deskriptoren verschluckt...

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

 
Delphi 2005 Personal
 
#27
  Alt 17. Okt 2004, 22:41
mein p2 , der mit 266Mhz angegeben ist kommt laut deinem programm nur auf 250Mhz
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#28
  Alt 21. Sep 2005, 17:33
Wenn ich es so aufrufe:
Delphi-Quellcode:
  sl := TStringList.Create;
  CPUInfo := GetCPUInfo(sl);
Dann lande ich wohl irgendwo in einer Endlosschleife.

Deine Demo geht aber bei mir.

Alles, was ich eigentlich brauche ist:
s := CPUInfo.Brandname + ' ' + CPUInfo.Codename; Nachtrag: Habe Mist gebaut. Geht jetzt.

Und die Features in eine StringListe zu stecken finde ich etwas unpraktisch.
Michael
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz