CPUID

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

CPUID je symbolické pojmenování strojové instrukce na architektuře x86, která umožňuje zjistit informace o procesoru. Toto pojmenování je odvozeno z anglického . Instrukce se prvně objevila na procesorech Intel 80486. Na novějších procesorech poskytuje tato instrukce stále více informací.

Instrukce se typicky využívá ke zjištění podpory instrukcí MMX nebo SSE, dále ke zjištění výrobce a modelu procesoru, velikosti paměti cache, sériové číslo procesoru. Instrukcí není možné zjistit takt procesoru. +more Informace vrácené instrukcí se z části liší u procesorů společností Intel a AMD. Dříve platilo, že procesory AMD poskytovaly větší množství informací (např. o velikostech L1 a L2 cache).

Operační kód instrukce je 0FA2h. Obsah registru EAX při volání instrukce určuje, kterou informaci má procesor vrátit. +more Před použitím instrukce je nutné si ověřit, zda ji procesor podporuje.

Program může použít CPUID k určení typu procesoru a zda jsou implementovány funkce jako MMX/SSE.

Ukázka kódu

Úsek kódu v MASM zjišťující podporu instrukce CPUID a testující, zda se jedná o procesor AMD porovnáním obsahu registrů EBX, EDX a ECX s řetězcem AuthenticAMD:

; zjištění podpory instrukce CPUID pushfd pop eax mov ebx, eax xor eax, 00200000h push eax popfd pushfd pop eax cmp eax, ebx jz l_NoCPUID ; instrukce je podporována ; ... jmp l_EndCPUID l_NoCPUID: ; instrukce není podporována jmp l_EndCPUInfo l_EndCPUID:

; zjištění maximální podporované funkce a výrobce procesoru mov eax, 0 cpuid

; zjištění, zda se jedná o AMD .if ( ebx

68747541h ) && ( edx

69746E65h ) && ( ecx

444D4163h ) ; jedná se o AMD ; ... .else ; není to AMD .endif

Externí odkazy == * Manuál k instrukci: ** [url=http://download. intel. +morecom/design/Xeon/applnots/24161831. pdf]Intel[/url] (PDF) ** [url=https://web. archive. org/web/20051126201241/http://www. amd. com/us-en/assets/content_type/white_papers_and_tech_docs/25481. pdf]AMD[/url] (PDF).

Kategorie:Instrukce architektury x86

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top