click flag for
english version

TestCPU
Detekce procesoru a benchmark
Freeware, Naprogramoval Robert Šmíd
Nová verze 0.96 (11.1.2000)
přidáno menu pro zvolení
jednotlivých procesorů do grafů,
podpora INI souborů větších než 64kB

DOWNLOAD  TestCPUc.zip 0.96 česky  (619885 B)

DOWNLOAD  Results.zip 17.2.2000  (19098 B)
INI soubor s výsledky, obsahuje 115 procesorů (i486DX, i486DX2, i486DX4, Cx486DX2, Am486DX4, Am5x86, Pentium, Pentium MMX, 6x86, 6x86MX, M-II, K5, K6, K6-2, K6-III, Athlon, WinChip, Pentium Pro, Celeron, Celeron A, Pentium II, Pentium III, Pentium III E)

Posílejte své výsledky na můj E-mail: xsmid4@fi.muni.cz



Minimální systémové požadavky

operační systém Windows 95/98/NT/2000
32-bitový procesor i386 (s FPU)
volná paměť 4 MB
pracovní plocha s 256 barvami
nespuštěné žádné procesy náročné na výkon počítače
doporučená je myš

 

Splashscreen

Když spustíte exe soubor zobrazí se malé úvodní okno - splashscreen, během kterého se zjistí typ procesoru, frekvence, testy přenosové rychlosti paměti a sada klasických testů CPU a FPU (Dhrystones, Whetstones, MIPS, MFLOPS).
Pokud testování trvá příliš dlouho, tak buď systém čeká až bude moci přidělit maximální prioritu, kterou testy požadují nebo je velký rozdíl mezi rychlostí paměti a procesoru. Testování paměti potom trvá o něco déle.

 

Stránka 1 - Procesor

První stránka obsahuje základní informace o procesoru.
Ke zjištění typu procesoru používám tři metody. 
První metoda 
využívá rozdílů mezi procesory a dokáže tak rozlišit následující procesory. V závorce uvádím jak byl typ zjištěn:

Intel i386SX
Intel i386DX
Intel i486SX
Intel i486DX
Intel Pentium
Cyrix Cx486S
Cyrix Cx486DX
NexGen Nx586
NexGen Nx586FP

(má POPAD chybu)
(nemá FPU)
(má AC bit v registru příznaků)
(má ID bit v registru příznaků značící podporu CPUID instrukce, viz dále)
(nemá FPU)
(procesory Cyrix nemění při dělení nedefinované bity v registru příznaků)
(nemá FPU)
(procesory NexGen nemění při dělení ZeroFlag v registru příznaků)

Druhá metoda 
vezme výsledky první a určí následující typy procesoru podle jeho frekvence:

AMD Am386SX
AMD Am386DX
Intel i486DX2
AMD Am486DX4
Cyrix Cx486DX2
Cyrix Cx486DX4
Cyrix 6x86
Cyrix 6x86MX
(40MHz)
(40MHz)
(50 a 66MHz)
(100 a 120MHz)
(66 a 80 MHz)
(100MHz)
(všechny verze, 80 až 150MHz)
(všechny verze od 166MHz)

Třetí metoda 
se provádí pouze u procesorů podporujících CPUID instrukci. To jsou v podstatě všechny procesory vyrobené po procesoru Intel Pentium, který byl uveden v roce 1993. Tedy i některé nové 486ky z roku 1994. U procesorů Cyrix 5x86, Cyrix 6x86 a NexGen je ale tato instrukce BIOSem vypnuta a pro správnou detekci je potřeba ji softwarově zapnout. Po provedení CPUID instrukce vrátí procesor o sobě řadu informací, pomocí kterých lze všechny současné procesory přesně detekovat. Zde je seznam procesorů, které lze touto metodou rozpoznat:

Intel i486DX
Intel i486SX
Intel i486DX2
Intel i486SL
Intel i486SX2
Intel i486DX4
Intel i486DX4 OverDrive
Intel Pentium
Intel Pentium OverDrive
Intel Pentium MMX
Intel Pentium MMX OverDrive
Intel Pentium Pro
Intel Pentium II OverDrive
Intel Pentium II
Intel Pentium II Xeon
Intel Pentium II PE (mobilní)
Intel Celeron
Intel Celeron A (Slot1)
Intel Celeron A (Socket370)
Intel Pentium III
Intel Pentium III Xeon
Intel Pentium III E
Intel Pentium III E Xeon

UMC U5S
UMC U5D
UMC U486SX2
UMC U486DX2

AMD Am486DX2
AMD Am486DX4
AMD Am5x86
AMD K5
AMD K6
AMD K6-2
AMD K6-III
AMD Athlon

Cyrix MediaGX
Cyrix Media GXm
Cyrix 5x86
Cyrix 6x86
Cyrix 6x86MX
Cyrix M-II

Centaur/IDT WinChip
Centaur/IDT WinChip 2
Centaur/IDT WinChip 2A
Centaur/IDT WinChip 2B
Centaur/IDT WinChip 3

Rise mP6

NexGen Nx586
NexGen Nx586FP
NexGen Nx686


CPUID instrukci lze provádět v několika úrovních.
Na první úrovni CPUID instrukce
 

vrací specifický řetězec prodejce čipu:

"GenuineIntel"
"AuthenticAMD"
"CyrixInstead"
"NexGenDriven"
"CentaurHauls"
"RiseRiseRise"
"UMC UMC UMC"
řetězec "PravýIntel" vrací procesory Intel
řetězec "AutentickéAMD" vrací procesory AMD
řetězec "CyrixMístoToho" vrací procesory Cyrix
řetězec "PoháněnoNexGenem" vrací procesory NexGen
řetězec "KentaurTáhne" vrací procesory Centaur/IDT
vrací procesory Rise
vracely 486ky od firmy UMC


Na druhé úrovni CPUID instrukce 
vrací informace o typu, rodině, modelu, revizi a vlastnostech procesoru.
Program obsahuje malou databázi, která k těmto detekovaným informacím doplní krátké popisky. Malé vysvětlení hodnot, které CPUID instrukce vrací:

TYP může nabývat hodnot:
0 - což znamená, že se jedná o primární (první) procesor
1 - znamená OverDrive procesor, což je upgrade do zastaralých základních desek
2 - značí, se jedná o sekundární (druhý, pomocný) procesor ve víceprocesorovém systému

RODINA je téměř ekvivalentní s generací a značí "výkonovou" třídu procesoru:
4 - všechny 486ky, AMD 5x86, Cyrix 5x86
5 - Intel Pentium a Pentium MMX, AMD K5 a K6, Cyrix 6x86, všechny Centaur/IDT WinChip, Rise mP6
6 - Intel Pentium Pro, Celeron, Pentium II a Pentium III, AMD Athlon, Cyrix 6x86MX a M-II

MODEL je opět číslo, které definuje o jaký model z rodiny se jedná:
například u rodiny 4:
0 - i486DX
3 - i486DX2
8 - i486DX4
například u rodiny 5:
2 - Pentium
4 - Pentium MMX
například u rodiny 6:
1 - Pentium Pro
5 - Pentium II
6 - Celeron
7 - Pentium III
tyto všechny procesory pocházejí od Intelu, pro jiného výrobce samozřejmě tytéž hodnoty znamenají jiný procesor.

REVIZE číslo výrobce zvyšuje podle toho, kolik drobnějších úprav na procesoru provede

BRAND je Intelem nově přidaná položka, její význam je rozlišit některé jejich procesory. Uvedu hodnoty, které jsou doposud známé:
0 - funkce není podporována
2 - Intel Pentium III
3 - Intel Pentium III Xeon


Na třetí úrovni CPUID instrukce 
podporují pouze procesory Intel šesté generace (Pentium Pro a novější) a vrací informace o velikosti cache pamětí reprezentované následujícími (hexadecimálními) hodnotami:

$06 - procesor má 8kB L1 cache pro instrukce
$08 - procesor má 16kB L1 cache pro instrukce
$0A - procesor má 8kB L1 cache pro data
$0C - procesor má 16kB L1 cache pro data
$40 - procesor nemá L2 cache (princip detekce Celeronu)
$41 - procesor má 128kB L2 cache (CeleronA)
$42 - procesor má 256kB L2 cache (mobilní Pentium II)
$43 - procesor má 512kB L2 cache (Pentium II a III)
$44 - procesor má 1MB L2 cache (verze Xeon)
$45 - procesor má 2MB L2 cache (verze Xeon)
$82 - procesor má 256kB L2 cache (Pentium III E)

$4x - znamená 4-cestná cache (všechny)
$8x - znamená 8-cestná cache (Pentium III E)


Na čtvrté úrovni CPUID instrukce 
vrací procesory Intel Pentium III (a novější) sériové číslo procesoru.

Procesory AMD, Cyrix a Centaur navíc podporují některé další úrovně CPUID instrukce, kterými lze u těchto procesorů zjistit další vlastnosti (jako 3Dnow! technologii), velikosti cache pamětí nebo řetězec se jménem procesoru, který je v čipu zakódován. Zde jsou řetězce, které procesory vrací:

AMD-K5(tm) Processor
AMD-K6tm w/ multimedia extensions
AMD-K6(tm) 3D processor
AMD-K6(tm)-2 Processor
AMD-K6(tm) 3D+ Processor
AMD-K6(tm)-III Processor
AMD-K7(tm) Processor
IDT WinChip 2
IDT WinChip 2-3D
AMD K5
AMD K6
AMD K6-2
AMD K6-2
AMD K6-III
AMD K6-III
AMD K7
Centaur/IDT C2
Centaur/IDT C2


Frekvenci procesoru měřím pomocí dvou metod.
První metoda
 
změří čas provedení několika operací procesoru, pak podle typu procesoru vybere z tabulky hodnotu, která udává za kolik taktů tyto operace procesor provede. Potom stačí vydělit počet taktů časem a vyjde frekvence.
Nevýhodou této metody je, že frekvence nebude zjištěna správně, pokud není detekovaný správný typ procesoru nebo pokud hodnota pro nový procesor ještě není do tabulky přidána.

Zjištění frekvence první metodou:
z tabulky načti kolik taktů je potřeba / čas provedení = frekvence
120000 taktů procesoru / 0.0012 sekundy = 100 MHz

Druhá metoda 
se provádí jen u procesorů majících Time Stamp Counter - TSC (čítač taktů procesoru). Ten se s každým taktem procesoru zvyšuje o jedničku a poskytuje tak nejpřesnější způsob časování na PC. Čítač se nuluje při resetu procesoru. Je to 64 bitový registr, takže se může zvyšovat 5850 let než přeteče zpět na nulu, pokud má procesor 100MHz. Přítomnost TSC se zjišťuje přes CPUID instrukci. Všechny moderní procesory TSC mají. Intel ho podporuje od procesoru Pentium, AMD od procesoru K5, Cyrix až od procesoru 6x86MX. Pomocí TSC lze teoreticky určit správnou frekvenci procesoru s přesností na jeden takt. V praxi se mohou hodnoty mírně lišit podle zatížení systému, ale přesto program zjistí frekvenci s přesností tisíciny MHz.

Zjištění frekvence druhou metodou:
1) přečti hodnotu TSC a zapiš ji do proměnné TAKT1
2) čekej přesně jednu sekundu (TSC se samo zvyšuje)
3) přečti hodnotu TSC a zapiš ji do proměnné TAKT2
4) výslednou frekvenci procesoru v Hertzích získáme odečtením TAKT2-TAKT1

PR-hodnocení
U některých procesorů se navíc vedle frekvence udává PR-hodnocení, což znamená anglicky Performance Rating (tedy zkráceně PR). Na tomto označení svých procesorů se domluvily firmy AMD, Cyrix a IBM, které tak chtěly zdůraznit, že jejich procesory dokáží efektivněji zpracovávat instrukce, takže na nižších frekvencích dosahují srovnatelného výkonu jako procesory Intel Pentium nebo Pentium II. Jako měřítko použily test Winstone. Takže například procesor s výkonem Pentia 75 obdrží PR75. Následuje tabulka procesorů a jejich PR-hodnocení:

procesor:
NexGen Nx586-PR75
NexGen Nx586-PR80
NexGen Nx586-PR90
NexGen Nx586-PR100
NexGen Nx586-PR110
NexGen Nx586-PR120

AMD Am5x86-PR75
AMD K5-PR75
AMD K5-PR90
AMD K5-PR100
AMD K5-PR120
AMD K5-PR133
AMD K5-PR166
AMD K5-PR200

Cyrix 5x86-PR75
Cyrix 5x86-PR90
Cyrix 6x86-PR90
Cyrix 6x86-PR120
Cyrix 6x86-PR133
Cyrix 6x86-PR150
Cyrix 6x86-PR166
Cyrix 6x86-PR200
Cyrix 6x86MX-PR133
Cyrix 6x86MX-PR150
Cyrix 6x86MX-PR166
Cyrix 6x86MX-PR200
Cyrix 6x86MX-PR233
Cyrix 6x86MX-PR266
Cyrix M-II PR300
Cyrix M-II PR333
Cyrix M-II PR366
Cyrix M-II PR400
Cyrix M-II PR433

Rise mP6-PR166
Rise mP6-PR233
Rise mP6-PR266
Rise mP6-PR333
Rise mP6-PR366

IDT WinChip2A-PR200
IDT WinChip2A-PR233
IDT WinChip2A-PR300
IDT WinChip3-PR233

interní / externí frekvence v MHz:
70 / 35
75 / 37,5
84 / 42
93 / 46,5
102 / 51
111 / 55,5

133 / 33
75 / 50
90 / 60
100 / 66
90 / 60
100 / 66
116,7 / 66
133 / 66

100 / 33
120 / 40
80 / 40
100 / 50
110 / 55
120 / 60
133 / 66
150 / 75
100 / 50,  110 / 55
120 / 60,  125 / 50
133 / 66,  137,5 / 55,  150 / 50
150 / 75,  165 / 55,  166 / 66
166 / 83,  187,5 / 75,  200 / 66
207,5 / 83,  225 / 75,  233 / 66
207,5 / 83,  225 / 75,  233 / 66
250 / 83
250 / 100
285 / 95
300 / 100

166 / 83
190 / 95
200 / 100
237,5 / 95
250 / 100

200 / 66
233 / 66
250 / 100
200 / 66

 

Stránka 2 - Vlastnosti

Vlastnosti procesoru, které vrací CPUID instrukce 
jsou zobrazeny na druhé stránce. Některé zajímavé pro uživatele dále popíši:

Koprocesor je integrován na čipu Tato položka značí přítomnost matematického koprocesoru přímo v procesoru, všechny moderní procesory jsou již takto vyráběny (od 486DX), slouží pro výpočty s pohyblivou desetinnou čárkou, anglický název zní Floating-Point Unit (FPU).
Čítač taktů procesoru Anglicky Time Stamp Counter (TSC) umožňuje nejpřesnější způsob časování na PC a lze pomocí něj velmi přesně zjistit frekvenci procesoru, viz výše
Podpora více procesorů (čip má APIC) Tato položka značí přítomnost APIC, který umožňuje spolupráci více procesorů. Pokud je položka škrtnutá, je APIC buď vypnutý nebo není přítomen.
Sériové číslo procesoru Značí zapnuté sériové číslo. Intel ho umožňuje vypnout, potom je položka škrtnutá.
Technologie MMX Značí rozšíření instrukční sady procesoru o dalších 57 instrukcí zrychlující zpracování grafiky a multimédií. Poprvé se objevila u procesoru Intel Pentium MMX. V současnosti  ji podporují všichni výrobci procesorů.
Rychlé uložení a obnovení FP/MMX/SSE
Značí schopnost procesoru rychle se přepínat mezi módy FPU, MMX a SSE.
Intel Streaming SIMD Extensions (SSE) Značí přítomnost druhé rozšiřující sady se 70 instrukcemi, které umožňují rychlejší zpracování 3D grafiky, zvuku a internetu. Je podporována od procesoru Intel Pentium III.

Další vlastnosti podporují pouze konkurenční procesory Intelu:

Částečná podpora SSE Značí rozšíření instrukční sady procesoru Athlon a novějších o SSE-MMX a SSE-MEM instrukce.
Cyrix rozšířené MMX Značí rozšíření instrukční sady procesorů 6x86MX, M-II a novějších o další MMX instrukce. 
AMD 3Dnow! Značí přítomnost 21 instrukcí od AMD pro zrychlení 3D grafiky, které se poprvé objevily v procesoru K6-2. Tato sada je obsažena i v procesorech IDT WinChip.
AMD rozšířené 3Dnow! Od procesoru Athlon zavádí AMD další rozšiřující 3D instrukce.

 

Stránka 3 - Paměť 1

MOV test
je první z dvojice testů paměti, který měří přenosovou rychlost pamětí a vyrovnávacích pamětí (tzv. cache). Test zjišťuje rychlost těchto pamětí tak, že dvakrát přesouvá stejně velký blok dat. Při prvním přesunu se blok dat nahraje zároveň do cache, takže se podruhé vyzvednou data z ní. Velikost bloku se postupně zvětšuje od 2kB až po 2MB. Pokud při zvětšení bloku prudce klesne přenosová rychlost, znamená to, že zatímco se minulý blok do cache vešel, stávající blok byl vzhledem k velikosti cache příliš velký. Tímto způsobem lze určit velikosti cache pamětí. V tomto prvním testu používám k přesunu dvojici instrukcí MOV, což je zároveň jedna z nejvíce používaných instrukcí vůbec. Přesun pomocí MOV instrukce je však pomalejší než přesun pomocí MOVSD instrukce, která je použita v druhém testu paměti, viz dále. Zde je část kódu, který pro přesun používám:

@opakuj: mov eax,[esi]
mov [edi],eax
add esi,4
add edi,4
dec ecx
jnz @opakuj

Nejprve se do ESI uloží zdrojová adresa, do EDI cílová adresa a do ECX počet opakování. Chceme-li například přenášet 4 kB dat je to 1024 opakování, protože přenášíme 32 bitů (4 byte) najednou. Instrukce MOV EAX,[ESI] čte data ze zdrojové adresy [ESI] v paměti do EAX registru v procesoru. Druhá instrukce MOV [EDI],EAX zapíše data z EAX zpátky na cílovou adresu v paměti určenou [EDI]. Následující dvě instrukce ADD ESI,4 a ADD EDI,4 zvyšují ukazatele na zdrojovou a cílovou adresu o 4 byte, aby ukazovaly na další 4 byte, které budeme přenášet. Další instrukce DEC ECX sníží obsah registru ECX o jedničku, aby se smyčka opakovala už jen 1023krát. Poslední instrukce JNZ @OPAKUJ se vrátí na začátek pokud není ECX rovno nule.

Cache 
jsou rychlé paměti malé kapacity, které do sebe nahrají často používaná data z RAM a tak je přístup k těmto datům mnohem rychlejší. Cache paměť se poprvé objevila na základních deskách pro 386. Od procesoru 486 se používají dvě cache. Cache první úrovně, která je přímo v procesoru (tzv. Level 1 cache) a cache druhé úrovně na desce (Level 2 cache), která je větší, ale pomalejší. Od Pentia se cache v procesoru rozdělila na cache pro instrukce a pro data.

Některé velikosti cache v procesoru:

procesor:
Intel i486SX/DX/DX2
Intel i486DX4
Intel Pentium
Intel Pentium MMX
Intel Pentium Pro
Intel Pentium II/III
Intel Celeron
Intel Celeron A
Intel Pentium III E

AMD Am486DX/DX2/DX4
AMD Am5x86
AMD K5
AMD K6/K6-2
AMD K6-III
AMD Athlon

Cyrix Cx486SLC/DLC
Cyrix Cx486S
Cyrix Cx486DX/DX2/DX4
Cyrix 5x86/6x86
Cyrix 6x86MX/M-II

IDT WinChip/WinChip2
IDT WinChip3

Rise mP6

NexGen Nx586
NexGen Nx686

UMC 486

IBM 486SLC

L1 cache (pro instrukce + pro data)
8 kB
16 kB
16 kB (8 kB + 8 kB)
32 kB (16 kB + 16 kB)
32 kB (16 kB + 16 kB)
32 kB (16 kB + 16 kB)
32 kB (16 kB + 16 kB)
32 kB (16 kB + 16 kB)
32 kB (16 kB + 16 kB)

8 kB
16 kB
24 kB (16 kB + 8 kB)
64 kB (32 kB + 32 kB)
64 kB (32 kB + 32 kB)
128 kB (64 kB + 64 kB)

1 kB
2 kB
8 kB
16 kB
64 kB

64 kB (32 kB + 32 kB)
128 kB (64 kB + 64 kB)

16 kB (8 kB + 8 kB)

32 kB (16 kB + 16 kB)
48 kB (16 kB + 32 kB)

8 kB

16 kB

L2 cache v procesoru:




256 kB až 1 MB
512 kB (Xeon až 2 MB)

128 kB
256 kB





256 kB
512 kB až 8 MB

 

Stránka 4 - Paměť 2

MOVSD test
je podobný prvnímu. Také měří přenosovou rychlost paměti, případně cache, ale používá k tomu MOVSD instrukci. Ta je rychlejší než dvojice MOV instrukcí, protože procesor přednačte data v burst cyklech (použije prefetch) a také zápis dat bude kombinovat do burst cyklů.

Postup pro přenesení bloku dat je podobný. Nejprve se do ESI uloží zdrojová adresa, do EDI cílová adresa a do ECX počet opakování. Potom stačí použít jedinou instrukci REP MOVSD. Prefix REP znamená, že instrukce bude prováděna opakovaně. Počet opakování určuje obsah registru ECX, jehož hodnota se po každém provedení MOVSD snižuje o jedničku. Až je ECX rovno nule provádění instrukce skončí. Instrukce MOVSD při každém provedení přesune data ze zdrojové adresy [ESI] na cílovou adresu [EDI] a oba ukazatele ESI a EDI zvýší, aby ukazovaly na další data. 

 

Stránka 5 - Výpočty

Tato stránka obsahuje pětici matematických testů:
První test počítá faktoriál čísla 10001. Jedná se o celočíselný výpočet, takže využívá pouze procesor. Faktoriál čísla 10001 spočítáme vynásobením všech čísel od 1 do 10001:

10001! = 1 * 2 * 3 * 4 * ....... * 9998 * 9999 * 10000 * 10001

Výsledek je velmi vysoké číslo, které je zapsáno v 14812 bytech (přes 14 kB) paměti. Při vyjádření v bitech by se jednalo o 118496-bitové číslo! Přesto se výsledek vejde u většiny procesorů do L1 cache, která je přímo v procesoru.

Druhý test počítá prvních 30000 prvočísel. Opět se počítá s celými čísly, takže test zatěžuje jen procesor. Test používá asi 120 kB paměti, které jsou ale přistupované pouze jednou, takže data nemusí být ani v cache. Ke zjištění prvočísla existuje spousta inteligentních algoritmů, použil jsem následující verzi:

Číslo n je prvočíslo pokud není dělitelné čísly většími než 1 a menšími než n. Stačí však zjišťovat jen dělitelnost čísly od 2 po odmocninu z čísla n. Navíc všechna sudá čísla n po dvojce nemohou být prvočísla,  protože jsou dělitelná právě dvojkou.

Třetí test počítá determinant matice 9x9 Laplaceovým rozvojem. Pracuje s (regulární) maticí reálných čísel, takže mimo procesor využívá i koprocesor. Počítání Laplaceovým rozvojem je založeno na rozkladu původní matice na menší matice, které se dále rozkládají, dokud nezískáme jednotlivá čísla. V programu to zajišťuji rekurzivním voláním procedury. Zde je začátek výpočtu determinantu matice 3x3, který ukazuje, jak procedura pracuje:

| 9 8 7 |
| 4 5 6 |
| 0 1 2 |
 = (-1)1+1 * 9 *  | 5 6 |
| 1 2 |
 + (-1)1+2 * 8 *  | 4 6 |
| 0 2 |
 + (-1)1+3 * 7 *  | 4 5 |
| 0 1 |
 = ..... atd.

Čtvrtý test počítá inverzní matici 200x200 Gaussovou eliminací. Test pracuje s dvojicí matic 200x200 s reálnými čísly, takže test používá nejen procesor, ale i koprocesor. Navíc dvojice matic zabírá přibližně 320 kB, takže má i paměťové požadavky. Do L2 cache se vejde pouze pokud má cache alespoň 512 kB. První matice obsahuje náhodná čísla (tak, aby byly jednotlivé vektory lineárně nezávislé) a druhá matice je jednotková. Na těchto dvou maticích provádí program Gaussovu a zpětnou Gaussovu eliminaci tak, že se první matice  převede na jednotkovou a z druhé vznikne inverzní matice.

Pátý test násobí dvě matice 250x250. Výsledek se ukládá do třetí. Všechny matice obsahují reálná čísla, takže test opět zatěžuje mimo procesoru i koprocesor. Tento test je ale nejnáročnější na paměť, protože všechny tři matice vyžadují asi 750 kB paměti, takže se obvykle nevejdou ani do L2 cache.

 

Stránka 6 - Testy

Tato stránka obsahuje čtveřici testů, které zatěžují procesor a koprocesor:

Dhrystone
je 32-bitová verze testu, který reprezentuje výkon procesoru převážně v aplikacích s celočíselnými výpočty. Zde jsem  použil původní verzi (2.1) od autora testu Reinholda Weickera. Celý test se vejde do poměrně malé cache (asi 8 kB), takže u procesorů s interní cache testuje pouze výkon procesoru a ne pamětí.

Whetstone
je 32-bitová verze syntetického testu, který zatěžuje převážně koprocesor při operacích s reálnými čísly. Navíc obsahuje transcendentní funkce jako SIN a EXP. Použita je verze jednoho z původních autorů Briana Wichmanna. Test je opět malý, takže odráží pouze výkon koprocesoru a interní L1 cache.

MIPS
není, jak by se mohlo podle názvu zdát, test výkonu v celočíselných operacích. Jedná se o malý test, který velmi zatěžuje koprocesor počítáním transcendentní funkce. Autor tohoto testu je Hiroshi Fukuda, který ho zveřejnil v C a ve Fortranu, zde je původní část C kódu:

int i,n;double x,y;

for(i=1;i<=n;i++){
        x=i;
        y=sin(x)/x+x;
}

MFLOPS
Výsledek tohoto 32-bitového testu říká, kolik miliónů základních operací s desetinnou čárkou (sčítání, odčítání, násobení) je schopný počítač provést za sekundu. Toto číslo je určeno prováděním starší verze Lawrence Livermoore Loops, což je sada 14 jader programů pracujících s reálnými čísly, a vypočítáním průměrných MFLOPS (Millions of FLoating-point OPerations per Second). Existuje i novější verze LLL, která používá 24 jader a dává detailnější diagnózu výkonu, ta ale nebyla používána kvůli své velikosti. Test LLL používá kolem 60 kB paměti, takže výsledky mohou být ovlivněny velikostí cache. 

 

Stránka 7 - Muzeum

Tato stránka popisuje vlastnosti většiny 32-bitových procesorů, které byly doposud představeny. Většinu z nich také program rozpozná (až na Cx486SLC/DLC, který lze detekovat pouze přes DIR registry Cyrixu). První dva řádky Rodina a Model popisují jaké hodnoty vrací procesor po provedení CPUID instrukce. V případě, že ji nepodporuje, tak jaké hodnoty vrací po RESETU. Další řádek popisuje Kódové jméno, za kterým je v závorce uvedená výrobní technologie. Následují položky: Počet tranzistorů, První představení procesoru, Rozsah frekvencí, na kterých procesor pracuje, Další vlastnosti a Velikosti cache.

 

Stránka 8 - O Programu

Naprogramoval Robert Šmíd pod Delphi 4
Program volně ke stažení na URL: www.fi.muni.cz/~xsmid4
Připomínky a výsledky testů posílejte na E-mail: xsmid4@fi.muni.cz