| The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers. |
Publication 20734 Rev: Issue Date: June 2000 2000 Advanced Micro
Top Searches for this datasheetProcessor Recognition Publication 20734 Rev: Issue Date: June 2000 2000 Advanced Micro Devices, Inc. rights reserved. contents this document provided connection with Advanced Micro Devices, Inc. ("AMD") products. makes representations warranties with respect accuracy completeness contents this publication reserves right make changes specifications product descriptions time without notice. license, whether express, implied, arising estoppel otherwise, intellectual property rights granted this publication. Except forth AMD's Standard Terms Conditions Sale, assumes liability whatsoever, disclaims express implied warranty, relating products including, limited implied warranty merchantability, fitness particular purpose, infringement intellectual property right. AMD's products designed, intended, authorized warranted components systems intended surgical implant into body, other applications intended support sustain life, other application which failure AMD's product could create situation where personal injury, death, severe property environmental damage occur. reserves right discontinue make changes products time without notice. Trademarks AMD, logo, Athlon, Duron, combinations thereof, 3DNow!, K86, AMD-K5 trademarks, AMD-K6, Am486, Am5X86 registered trademarks Advanced Micro Devices, Inc. Microsoft, Windows, Windows registered trademarks Microsoft Corporation. trademark Intel Corporation. Other product names used this publication identification purposes only trademarks their respective companies. 20734R-June 2000 Processor Recognition Contents Revision History Processor Recognition Introduction AthlonProcessor Model Model Model DuronProcessor CPUID Instruction Overview Testing CPUID Instruction Using CPUID Functions Identifying Processor Vendor Testing Extended Functions Determining Processor Signature Identifying Supported Features Determining Instruction Support. Processor Signature (Extended Function). Displaying Processor Name Displaying Cache Information Code Samples Example CPUID Code Example Function Call Displaying Athlon Duron Processor Name String DisplayK7NameString Subroutine Appendix CPUID Instruction Definition CPUID Instruction Standard Functions. Function Largest Standard Function Input Value Vendor Identification String Function Processor Signature Standard Feature Flags. Contents Processor Recognition 20734R-June 2000 Extended Functions Function 8000_0000h Largest Extended Function Input Value Function 8000_0001h Processor Signature Extended Feature Flags Functions 8000_0002h, 8000_0003h, 8000_0004h Processor Name String. Function 8000_0005h TLB/Cache Information Athlon Processor Duron Processor Function 8000_0005h Cache Information AMD-K5and AMD-K6® Processors Function 8000_0006h TLB/L2 Cache Information Athlon Processor Duron Processor Function 8000_0006h Cache Information AMD-K6-III Processor Associativity Field Definitions Appendix Register Values Returned Family Processors Athlon Processor Duron Processor Values AMD-K6 Processor Values Am486®, Am5X86®, AMD-K5 Processor Values Contents Processor Recognition 20734R-June 2000 List Figures Figure Contents Register Returned Function Figure Contents Register Returned Extended Function 8000_0001h List Tables Table Table Table Table Table Table Table Table Table Summary CPUID Functions Processors Summary Processor Signatures Processors Summary Standard Extended Feature Bits Processor Name Strings AthlonProcessor Processor Name Strings DuronProcessor Standard Feature Flag Descriptions AMD-K6®-2 AMD-K6-III Processors Standard Feature Flag Descriptions Athlon Duron Processors. Extended Feature Flag Descriptions AMD-K6-2 AMD-K6-III Processors Extended Feature Flag Descriptions Athlon Duron Processors. Table Format Returned Function 8000_0005h Table Format Returned Function 8000_0005h. Table Format Returned Function 8000_0005h. Table Format Returned Function 8000_0005h Table Format Returned Function 8000_0005h. Table Format Returned Function 8000_0005h. Table Format Returned Function 8000_0005h Table Format Returned Function 8000_0006h Table Format Returned Function 8000_0006h. List Figures Tables 20734R-June 2000 Processor Recognition Table Format Returned Function 8000_0006h. Table Format Returned Function 8000_0006h AMD-K6-III Processor Table Associativity Values Caches TLBs. Table Values Returned Athlon Duron Processors Table Values Returned AMD-K6 Processors. Table Values Returned Am486®, Am5X86®, AMD-K5Processors List Figures Tables 20734R-June 2000 Processor Recognition Revision History Date Description Added information about Duronprocessor throughout document. June 2000 Revised "The AthlonProcessor Model Model Model page Added "The DuronProcessor" page Added Table "Processor Name Strings DuronProcessor," page Added information about Athlonprocessor Model throughout document. Revised "The AthlonProcessor Model Model Model page Revised Table "Processor Name Strings AthlonProcessor," page Added code sample "Code Samples" page Added "Displaying Athlonor DuronProcessor Name String" page "DisplayK7NameString Subroutine" page Revised information about Table "Summary Standard Extended Feature Bits," page Revised name string Athlonprocessor Model Table "Processor Name Strings AthlonProcessor," page June 2000 Made Table "Standard Feature Flag Descriptions AMD-K6®-2 AMD-K6®-III Processors," page specific these processors. Added Table "Standard Feature Flag Descriptions AthlonProcessors," page which specific these processors. Clarified instruction family generation being derived from function function 8000_0001 respectively. Made Table "Extended Feature Flag Descriptions AMD-K6®-2 AMD-K6®-III Processors," page specific these processors. Added Table "Extended Feature Flag Descriptions AthlonProcessors," page which specific these processors. Revised Table "Values Returned AthlonProcessor," page 1999 Added Athlon processor Model information throughout document. Model refers Athlon processor manufactured with 0.25-micron process technology Model refers Athlon processor manufactured with 0.18-micron process technology. Clarified usage "Code Samples" page Added "Example Function Call" page Merged standard extended feature bits into table. Table "Summary Standard Extended Feature Bits," page Revised Table "Values Returned AthlonProcessor," page 1999 August 1999 Revision History Processor Recognition 20734R-June 2000 Date Description Added Athlonprocessor information throughout document. Added www.amd.com/products/cpg/bin, where codes samples utilities available. Revised "Testing CPUID Instruction" page Revised "Determining Instruction Support" page Revised Tables through cross-reference section-"Associativity Field Definitions" page August 1999 1999 1999 Table page changed function 8000_0001h entries Models from 0080_01BFh 0080_05BFh. Added note about name string AMD-K6-2 processor Table page Added cache information Table page Added Function 8000_0006h "Displaying Cache Information" page 1999 Added Function 8000_0006h Cache Information Table "ECX Format Returned Function 8000_0006h," page Added AMD-K6-III processor Model values three notes Table page "Standard Functions" page clarified AMD's vendor identification string stored registers EBX, EDX, ECX. Table "Values Returned AMD-K6® Processors," page changed function 8000_0001h, value AMD-K6 processor Model deleted note Revised "Functions 8000_0002h, 8000_0003h, 8000_0004h Processor Name String" page Added return values AMD-K6 processor Model Table page Divided Appendix table into separate tables. Added revised description alternate test AMD-K6-2 "Identifying Supported Features" page Changed part names AMD-K6 processor Models Table page Added 3DNow!instructions feature (bit Table page Table page Added AMD-K6®-2 processor return values Table page Moved SYSCALL/SYSRET instruction feature extended feature function 8000_0001h) from Table page Table page Added extended feature function 8000_0001h feature. Table page Table page Added support AMD-K6® processor Models Table page Table page Added return values AMD-K6 processor Model Table page 1998 1998 1998 1997 Sept 1997 Sept 1997 Sept 1997 Sept 1997 viii Revision History 20734R-June 2000 Processor Recognition Application Note Processor Recognition Introduction increasing number choices available processor marketplace, need simple hardware software identify type processor feature become critical. CPUID instruction added instruction this purpose. This document contains information about using CPUID instruction test extended features, such cache AMD-K6 -III processor, Athlonprocessor, Duronprocessor. CPUID instruction provides complete information about processor (vendor, type, name, etc.) capabilities (features). After detecting processor capabilities, software accurately tuned system maximum performance benefit users. example, software roughly determine performance level particular processor detecting type speed processor. performance level high enough, software enable additional capabilities more advanced algorithms. Another example involves testing presence 3DNow!or MMXinstructions processor. software finds these features present when checks feature bits, utilize these more powerful extensions dramatically better performance multimedia software. code determining speed processors located following url: Introduction Processor Recognition 20734R-June 2000 AthlonProcessor Model Model Model This section contains information about Model Model Model Athlon processor. Model refers Athlon processor manufactured with 0.25-micron process technology. Model refers Athlon processor manufactured with 0.18-micron process technology. Model performance-enhancing internal 256-Kbyte cache manufactured with 0.18-micron process technology. more information, Appendix "CPUID Instruction Definition" page DuronProcessor Duron processor contains performance-enhancing internal 64-Kbyte cache 128-Kbyte cache total Kbytes internal cache. processor manufactured with 0.18-micron process technology. Table page list supported standard features Table page list supported extended features. Introduction 20734R-June 2000 Processor Recognition CPUID Instruction Overview Software operating privilege level execute CPUID instruction identify processor feature set. addition, CPUID instruction implements multiple functions, each providing different information about processor, including vendor, model number, revision (stepping), features, cache organization, processor name. multiple-function approach allows CPUID instruction return complete picture about type processor capabilities more detailed information than could returned single function. addition gathering information calling multiple functions, CPUID instruction provides flexibility making only call obtain specific data requested. functions divided into types: standard functions extended functions. Standard functions provide simple method software access information common processors. Extended functions provide information extensions specific vendor's processor (for example, family processors). flexibility CPUID instruction allows addition CPUID functions future generations processors. Appendix "CPUID Instruction Definition" page contains detailed description CPUID instruction. CPUID Instruction Overview Processor Recognition 20734R-June 2000 Testing CPUID Instruction Beginning with Am486 processor, family processors support CPUID instruction. CPUID instruction, software must first determine processor supports CPUID instruction. CPUID support determined following ways: Execute CPUID instruction check whether illegal instruction exception occurs. exception occurs, processor does have CPUID support. Check (bit EFLAGS register writable. writable (that modified), CPUID instruction supported. operating system (OS) environment determines which approach more appropriate. These techniques described following sections. Illegal Instruction Exception Method This technique requires user program detect handle illegal instruction exceptions. Where such capabilities present, this method represents reliable detecting support CPUID instruction. CPUID sample code starting page uses this approach. This technique retrieves contents EFLAGS using PUSHFD instruction, toggles bit, uses POPFD instruction write modified value into EFLAGS register. then retrieves contents EFLAGS using second PUSHFD instruction checks whether value differs from original value. value changed, CPUID instruction available identifying processor features. following code sample demonstrates program uses PUSHFD POPFD instructions test bit. pushfd ebx, eax, 00200000h push popfd pushfd eax, NO_CPUID Save EFLAGS stack Store EFLAGS Save testing later Switch Copy changed value stack Save changed EFLAGS Push EFLAGS stack Store EFLAGS changed change, CPUID EFLAGS ID-Bit Method Testing CPUID Instruction 20734R-June 2000 Processor Recognition potential problem with this approach that interrupt trap (such debug trap) occur between POPFD following PUSHFD, that interrupt trap handler code destroys value bit. Where possible, above code should preceded instruction followed instruction, which ensures that interrupts occur between POPFD PUSHFD. However, traps still occur, even code preceded instruction followed instruction. Using CPUID Functions When software uses CPUID instruction identify process impo uses inst ructio appropriately. instruction been defined make easy manufactured many different vendors. standard functions (EAX=0 EAX=1) same processors. Having standard functions simplifies software's task testing implementing features common processors. Software test these features and, processors released, benefit from these capabilities immediately. Extended functions specific vendor's processor. These rovi iona processors that software identify enhanced features functions. test extended functions, software checks value least 8000_0001h register returned function 8000_0000h. Within AMD's family processors, different members execute different number functions. Table page summarizes CPUID functions currently implemented processors. Using CPUID Functions Processor Recognition 20734R-June 2000 Table Summary CPUID Functions Processors Processor AMD-K6-III AthlonAMD-K5 DuronProcessor (Models Processor Processor Am486®DX4 (Model AMD-K6-2 Processor (Model (All) Am5X86® Processor Processors (Model AMD-K5Processor (Model AMD-K6 Standard Function Extended Function Description Notes: 8000_0000h 8000_0001h 8000_0002h 8000_0003h 8000_0004h Vendor String Largest Standard Function Value Processor Signature Standard Feature Bits Largest Extended Function Value Extended Processor Signature Extended Feature Bits Processor Name Processor Name Processor Name 8000_0005h TLB*/Cache Information 8000_0006h TLB/Cache Information Future versions these processors implement additional functions. Appendix "CPUID Instruction Definition" page contains detailed descriptions functions. translation lookaside buffer. Identifying Processor Vendor Software must execute standard function EAX=0. CPUID instruction returns 12-character string that identifies processor's vendor. instruction also returns largest standa function input value defined CPUID instruction processor. processors, function returns vendor string "AuthenticAMD". This string informs software follow AMD's definition subsequent CPUID functions registers returned those functions. Once software identifies processor's vendor, knows definition functions supplied CPUID instruction. using these functions, software obtains processor information needed properly tune functionality capabilities processor. Identifying Processor Vendor 20734R-June 2000 Processor Recognition Testing Extended Functions Software must test extended functions with function 8000_0000h. register returns largest extended function input value defined CPUID instruction processor. this value least 8000_0001h, extended functions supported. With exception, extended feature flags include information provided standard feature flags well indicators additional processor-specific feature enhancements. duplication standard feature bits within extended feature bits minimize number function calls required software. exception which indicates that SYSENTER SYSEXIT instructions supported standard features that SYSCALL SYSRET instructions supported extended features. Determining Processor Signature Standard function (EAX=1) CPUID instruction returns standard processor signature feature bits. standard processor signature returned register provides information regarding specific revision (stepping) model processor instruction family level supported processor. revision level used determine processor supports specific features. However, recommended that revision level used this manner unless this information available through standard extended feature bits. AMD-K6 processor models belong instruction family returned function Athlon processor models Duron processor belong instruction family returned function Figure page shows contents register obtained function Table page summarizes specific processor signature values returned processors. Testing Extended Functions Processor Recognition 20734R-June 2000 Reserved Instruction Family Model Stepping 11-8 Figure Contents Register Returned Function Table Summary Processor Signatures Processors Processor Am486® Am5X86® Processors AMD-K5Processor (Model AMD-K5 Processor (Model AMD-K5 Processor (Model AMD-K5 Processor (Model AMD-K6® Processor (Model AMD-K6 Processor (Model AMD-K6-2 Processor (Model AMD-K6-III Processor (Model AthlonProcessor (Model AthlonProcessor (Model AthlonProcessor (Model DuronProcessor Notes: Instruction Family [11:8] 0100b (4h) 0101b (5h) 0101b (5h) 0101b (5h) 0101b (5h) 0101b (5h) 0101b (5h) 0101b (5h) 0101b (5h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) Model1 [7:4] yyyy 0000b (0h) 0001b (1h) 0010b (2h) 0011b (3h) 0110b (6h) 0111b (7h) 1000b (8h) 1001b (9h) 0001b (1h) 0010b (2h) 0100b (4h) 0011b (3h) Stepping [3:0] xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx Contact your representative Model identifier information. Contact your representative latest stepping information. Determining Processor Signature 20734R-June 2000 Processor Recognition Identifying Supported Features feature bits returned register CPUID functions-standard function extended function 8000_0001h. Each corresponds specific feature indicates that feature present processor. Table summarizes standard extended feature bits. Table Summary Standard Extended Feature Bits Bit1 Feature Floating-Point Unit Virtual Mode Extensions Debugging Extensions (Page Size Extensions) Time Stamp Counter (with RDTSC disable bit) K86Family Processors' Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) (Machine Check Exception) CMPXCHG8B Instruction APIC SYSENTER/SYSEXIT Instructions SYSCALL SYSRET Instructions Note: Description floating-point unit available. Virtual mode extensions available. breakpoint debug extensions supported. 4-Mbyte pages supported. time stamp counter available processor, RDTSC instruction supported. model-specific registers available processor, RDMSR WRMSR instructions supported. Page address extensions supported using 8-byte directory entry. machine check exception supported. CMPXCHG8B instruction supported. local APIC unit available. SYSENTER SYSEXIT instructions supported. SYSCALL SYSRET instructions associated extensions supported. Standard2 Extended2 MTRR (Memory Type Range Memory type range registers available. Registers) Global Paging Extension Global paging extensions available. (Machine Check Architecture) Machine check architecture supported conditional move instructions, CMOV FCMOV, supported. Conditional Move Instructions FCOMI instruction also supported. (Page Attribute Table) Page attribute tables supported. Appendix "CPUID Instruction Definition" page contains details locations values. definitions: Support, Support BIOS must enable local APIC. Identifying Supported Features Processor Recognition 20734R-June 2000 Table Summary Standard Extended Feature Bits (continued) Bit1 Note: Feature PSE-36 (Page Size Extension) Multimedia Instruction Extensions MMXInstructions FXSAVE/FXRSTOR 3DNow!Instruction Extensions 3DNow! Instructions Description Page size extensions 36-bit addresses supported using 4-byte directory entry. additions original MMXinstruction supported. instruction supported. Fast floating-point save restore supported. Extensions 3DNow! instruction supported. 3DNow! instructions supported. Standard2 Extended2 Appendix "CPUID Instruction Definition" page contains details locations values. definitions: Support, Support BIOS must enable local APIC. Before using enhanced features added latest generation processors, software should test each feature returned functions 8000_0001h identify capabilities available processor. example, software must test feature determine processor executes technology instructions. Attempting execute unavailable feature cause errors exceptions. returned extended function 8000_0001h, designates presence 3DNow! technology. Other processor vendors have adopted this technology, considered open standard. Appendix "CPUID Instruction Definition" page Appendix "Register Values Returned Family Processors" page contain details locations values. Determining Instruction Support preferable CPUID feature flags much possible, rather than deriving capabilities from vendor specifiers combined with CPUID model numbers. Athlon processor Duron processor have sets powerful extensions instruction 3DNow! instruction extensions multimedia enhancement extensions. Additions 3DNow!and MMXInstruction Sets Manual, order# 22466 more information about these instructions. Identifying Supported Features 20734R-June 2000 Processor Recognition simplify detection instructions original 3DNow! instructions, following algorithm. code sample using CPUID instruction identify processor features available from AMD's website There other ways implement detection besides shown sample. CPUID Test Standard Function Test Establish that processor support CPUID. "Testing CPUID Instruction" page Execute CPUID function which returns processor vendor string highest standard function supported. Save vendor string later comparison. (See step step indicates that highest standard function least execute CPUID function which returns standard feature flags register. Test standard feature flags technology supported. instruction support basic minimum processor feature required support other instruction extensions. Optionally, standard feature flags set, processor streaming SIMD extensions (SSE) capabilities. Further qualification done checking support. support might present processor, usable lack support additional architected registers. Execute CPUID extended function 8000_0000h. This function returns highest extended function supported EAX. EAX=0, there support extended functions. highest extended function supported least 8000_0001h, execute CPUID function 8000_0001h. This function returns extended feature flags EDX. 3DNow! Instruction Test Vendor Check extended feature flags 3DNow! instructions supported. previously saved vendor string (see step contains "AuthenticAMD", continue next step. Optional Test Extended Functions Test Identifying Supported Features Processor Recognition 20734R-June 2000 3DNow! Extensions Test Extensions Test extended feature flags additions 3DNow! instruction supported. extended feature flags multimedia enhancement instructions that augment instruction supported. Processor Signature (Extended Function) Extended function 8000_0001h returns processor signature. signature returned register provides generation, model, stepping information processors. Figure page shows contents returned register. Reserved Generation Model Stepping 11-8 Figure Contents Register Returned Extended Function 8000_0001h Displaying Processor Name Functions 8000_0002h, 8000_0003h, 8000_0004h return ASCII string containing name processor. These functions eliminate need software search processor name lookup table, process requiring large block memory frequent updates. Instead, software simply call these three functions obtain name string ASCII characters little endian format) display screen. Although name string characters length, shorter names have remaining byte locations filled with ASCII NULL character (00h). simplify display routines avoid using screen space, software only needs display characters until NULL character detected. Note: Athlonprocessor (Models returns processor name string Athlon(tm) Processor. This Identifying Supported Features 20734R-June 2000 Processor Recognition name string different that returned Athlon processor (Model "Displaying Athlonor DuronProcessor Name String" page example properly obtain display processor name string. Table summarizes name strings returned Athlon processor Models Table Processor Name Strings AthlonProcessor Processor AthlonProcessor (Model AthlonProcessor (Model AthlonProcessor (Model Name String AMD-K7(tm) Processor Athlon(tm) Processor Athlon(tm) Processor Table summarizes name strings returned Duron processor. Table Processor Name Strings DuronProcessor Processor DuronProcessor Name String Duron(tm) Processor Displaying Cache Information Func 00_00 provide cache information processor, although function 8000_0006h only supported Athlon processor, Duron processor, AMD-K6 -III processor Model Some diagnostic software displays information about system processor's configuration. common this type software provide cache size organization information. Functions 8000_0005h 8000_0006h provide simple software obtain information about on-chip cache translation lookaside buffer (TLB) structures. size organization information returned registers described Appendix page Software simply display these values, eliminating need large pieces code test memory structures. Identifying Supported Features Processor Recognition 20734R-June 2000 Code Samples Developers want create their processor-features detection code should follow sample code described "Example CPUID Code". more elaborate function call, which detects full range CPUID information, provided sample code "Example Function Call" page Example CPUID Code Developers want create their processor detection program should follow algorithm "cpuid_ex" program. code sample available from AMD's website following url: source code included, along with executable that compiled with Microsoft® Visual Studio C/C++ Versions This example provides simple algorithm developer follow accommodated many different processors. source code, cpuid_ex.c, follows recommendations described this document. display list supported features processor, program typing cpuid_ex Microsoft Windows® Windows® Windows window. convenience, example CPUID code displayed below. Code Samples 20734R-June 2000 Processor Recognition following code follows guidelines described this document, meant serve only example, there other ways accomplish processor detection. #include <stdio.h> #include <excpt.h> Symbolic constants feature flags CPUID standard feature flags #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define CPUID_STD_FPU CPUID_STD_VME CPUID_STD_DEBUGEXT CPUID_STD_4MPAGE CPUID_STD_TSC CPUID_STD_MSR CPUID_STD_PAE CPUID_STD_MCHKXCP CPUID_STD_CMPXCHG8B CPUID_STD_APIC CPUID_STD_SYSENTER CPUID_STD_MTRR CPUID_STD_GPE CPUID_STD_MCHKARCH CPUID_STD_CMOV CPUID_STD_PAT CPUID_STD_PSE36 CPUID_STD_MMX CPUID_STD_FXSAVE CPUID_STD_SSE 0x00000001 0x00000002 0x00000004 0x00000008 0x00000010 0x00000020 0x00000040 0x00000080 0x00000100 0x00000200 0x00000800 0x00001000 0x00002000 0x00004000 0x00008000 0x00010000 0x00020000 0x00800000 0x01000000 0x02000000 Symbolic constants feature flags CPUID extended feature flags #define CPUID_EXT_3DNOW 0x80000000 #define CPUID_EXT_AMD_3DNOWEXT 0x40000000 #define CPUID_EXT_AMD_MMXEXT 0x00400000 Symbolic constants application specific feature flags #define #define #define #define #define #define #define #define #define #define #define #define FEATURE_CPUID FEATURE_STD_FEATURES FEATURE_EXT_FEATURES FEATURE_TSC FEATURE_MMX FEATURE_CMOV FEATURE_3DNOW FEATURE_3DNOWEXT FEATURE_MMXEXT FEATURE_SSEFP FEATURE_K6_MTRR FEATURE_P6_MTRR 0x00000001 0x00000002 0x00000004 0x00000010 0x00000020 0x00000040 0x00000080 0x00000100 0x00000200 0x00000400 0x00000800 0x00001000 Code Samples Processor Recognition 20734R-June 2000 Older compilers support CPUID instruction inline assembly #define cpuid _asm _emit 0x0f _asm _emit 0xa2 get_feature_flags extracts features application wants know about from CPUID information returns string application specific feature bits. following design criteria apply: Processor capabilities should directly derived from CPUID feature bits wherever possible, instead being derived from vendor strings processor signatures. However, some features indicated CPUID feature flags (whether basic extended) require looking vendor strings processor signatures. Applications also choose implement pseudo capabilities, example indicating performance levels. basic feature flags returned CPUID function compatible across processor vendors with very exceptions therefore common feature checks things like support require vendor check before evaluating basic feature flag information. unsure about particular feature, review processor vendor's literature. 3DNow! technology open standard. Therefore 3DNow! instruction capabilities indicated extended feature flags regardless processor vendor. Applications should always treat floating-point part part separate capabilities because requires support that might available, while works with operating systems. unsigned get_feature_flags(void) unsigned result unsigned signature char vendor[13] "UnknownVendr"; Define known vendor strings here Needs exactly chars char vendorAMD[13] "AuthenticAMD"; Needs exactly chars Step Check processor CPUID support. processor faults with illegal instruction exception instruction supported. This step catches exception immediately returns with feature string bits with exception occurs. _try _asm eax, _asm ebx, Code Samples 20734R-June 2000 Processor Recognition _asm _asm _asm cpuid ecx, edx, _except (EXCEPTION_EXECUTE_HANDLER) return (0); result FEATURE_CPUID; _asm Step Check CPUID supports function (signature/std features) cpuid test eax, dword [vendor], dword [vendor+4], dword [vendor+8], eax, $no_standard_features [result], FEATURE_STD_FEATURES; CPUID function largest func/vendor string save vendor string largest standard function==0? yes, standard features func does have standard features Step standard feature flags signature cpuid eax, [signature], CPUID function signature/std feature flgs save processor signature Step Extract desired features from standard feature flags Check time stamp counter support ecx, CPUID_STD_TSC ecx, ecx, ecx, FEATURE_TSC [result], indicates support supports CPUID_STD_TSC:0 supports supports 0xffffffff:0 supports FEATURE_TSC:0 merge into feature flags Check support ecx, CPUID_STD_MMX ecx, indicates support supports CPUID_STD_MMX:0 Code Samples Processor Recognition 20734R-June 2000 ecx, ecx, FEATURE_MMX [result], supports supports 0xffffffff:0 supports FEATURE_MMX:0 merge into feature flags Check CMOV support ecx, CPUID_STD_CMOV ecx, ecx, ecx, FEATURE_CMOV [result], indicates CMOV support supports CMOV?CPUID_STD_CMOV:0 supports CMOV supports CMOV 0xffffffff:0 supports CMOV FEATURE_CMOV:0 merge into feature flags Check support P6-style MTRRs ecx, CPUID_STD_MTRR ecx, ecx, ecx, FEATURE_P6_MTRR [result], indicates MTRR support supports MTRR?CPUID_STD_MTRR:0 supports MTRR supports MTRR 0xffffffff:0 supports MTRR FEATURE_MTRR:0 merge into feature flags Check initial support. There still partial support. Step will check partial support. ecx, ecx, ecx, ecx, indicates support supports CPUID_STD_SSE:0 supports supports 0xffffffff:0 (FEATURE_MMXEXT+FEATURE_SSEFP) supports FEATURE_MMXEXT+FEATURE_SSEFP:0 [result], merge into feature flags CPUID_STD_SSE Step Check CPUID extended functions cpuid eax, 0x80000000 eax, 0x80000000 $no_extended_features [result], FEATURE_EXT_FEATURES; extended function 0x80000000 largest extended function function 0x80000000 yes, extended feature flags does have ext. feature flags Step extended feature flags cpuid eax, 0x80000001 CPUID ext. function 0x80000001 extended feature flags Code Samples 20734R-June 2000 Processor Recognition Step Extract vendor independent features from extended flags Check 3DNow! instruction support (vendor independent) ecx, CPUID_EXT_3DNOW ecx, ecx, ecx, FEATURE_3DNOW [result], indicates 3DNow! support supports 3DNow! ?CPUID_EXT_3DNOW:0 supports 3DNow! supports 3DNow! 0xffffffff:0 support 3DNow!?FEATURE_3DNOW:0 merge into feature flags Step Determine vendor repe esi, vendorAMD edi, vendor ecx, cmpsb $not_AMD AMD's vendor string this CPU's vendor string strings characters compare lowest highest current vendor string AMD's vendor Step Check specific extended features test ecx, CPUID_EXT_AMD_3DNOWEXT ecx, ecx, ecx, FEATURE_3DNOWEXT [result], [result], FEATURE_MMXEXT $has_mmxext indicates 3DNow! ext. 3DNow! ext? 3DNow! 3DNow! 0xffffffff 3DNow! ext?FEATURE_3DNOWEXT:0 merge into feature flags determined support? yes, don't need check again Check support AMD's multimedia instruction additions ecx, CPUID_EXT_AMD_MMXEXT ecx, ecx, ecx, FEATURE_MMXEXT [result], indicates extension ext?CPUID_EXT_AMD_MMXEXT:0 ext? ext? 0xffffffff FEATURE_MMXEXT:0 merge into feature flags $has_mmxext: Code Samples Processor Recognition 20734R-June 2000 Step Check AMD-specific features reported CPUID Check support AMD-K6 processor-style MTRRs $not_AMD: Extract features specific CPUs $no_extended_features: $no_standard_features: $all_done: part introduces architectural state therefore requires support from operating system. even CPUID indicates support application might able CPUID indicates support check here whether also supported turn feature there support Operating systems that support return illegal instruction exception execution instruction performed. Here, sample instruction executed, checked exception using (non-standard) _try/_except mechanism Microsoft Visual (result FEATURE_SSEFP) _try _asm _emit 0x0f _asm _emit 0x56 _asm _emit 0xC0 orps xmm0, xmm0 return (result); eax, [signature] processor signature eax, 0xFFF extract family/model/stepping eax, 0x588 AMD-K6-2/CXT edx, AMD-K6-2/CXT 0xffffffff:0 AMD-K6-2/CXT 0:0xffffffff eax, 0x600 Athlon ecx, AMD-K6 0xffffffff:0 ecx, (CPU>=AMD-K6-2/CXT)&& (CPU<AMD Athlon) 0xffffffff:0 ecx, FEATURE_K6_MTRR (CPU>=AMD-K6-2/CXT)&& (CPU<AMD Athlon) FEATURE_K6_MTRR:0 [result], merge into feature flags $all_done desired features determined Code Samples 20734R-June 2000 Processor Recognition _except (EXCEPTION_EXECUTE_HANDLER) return (result (~FEATURE_SSEFP)); else return (result); sample "application" main (void) unsigned capabilities get_feature_flags(); printf ("features %08x\n", capabilities); printf ("CPU supports CPUID: %c\n", capabilities FEATURE_CPUID 'n'); printf ("CPU supports CPUID STD: %c\n", capabilities FEATURE_STD_FEATURES 'n'); printf ("CPU supports CPUID EXT: %c\n", capabilities FEATURE_EXT_FEATURES 'n'); printf ("CPU supports TSC: %c\n", capabilities FEATURE_TSC 'n'); printf ("CPU supports CMOV: %c\n", capabilities FEATURE_CMOV 'n'); printf ("CPU supports MMX: %c\n", capabilities FEATURE_MMX 'n'); printf ("CPU supports 3DNOW: %c\n", capabilities FEATURE_3DNOW 'n'); printf ("CPU supports 3DNOW_EXT: %c\n", capabilities FEATURE_3DNOWEXT 'n'); printf ("CPU supports AMD-K6-MTRR: %c\n", capabilities FEATURE_K6_MTRR 'n'); printf ("CPU supports P6-MTRR: %c\n", capabilities FEATURE_P6_MTRR 'n'); printf ("CPU supports MMX: %c\n", capabilities FEATURE_MMXEXT 'n'); printf ("CPU supports FPU: %c\n", capabilities FEATURE_SSEFP 'n'); return (0); Code Samples Processor Recognition 20734R-June 2000 Example Function Call This code sample detects full range CPUID information allows user query capabilities through simple function call. code sample available from AMD's website following url: file contains files- DETECT.C ADETECT.H. Follow these steps function call: Copy DETECT.C ADETECT.H into your project directory DETECT.C your source project user make calls GetCPUCaps() module that includes ADETECT.H. function call with following statement: #include "ADETECT.H" This source code compiles under Microsoft Visual Studio C/C++ Versions Displaying Athlonor DuronProcessor Name String Athlon Duron processors support CPUID extended functions 8000_0002h, 8000_0003h, 8000_0004h. These functions return ASCII string containing name processor. These functions eliminate need software search processor name look-up table. Instead, software simply call these three functions obtain name string ASCII characters little-endian format) display screen. character string terminated with (ASCII null character). following code samples illustrate methods that used display processor name string required Athlon Duron processor branding strategy. Code Samples 20734R-June 2000 Processor Recognition DisplayK7NameString Subroutine Athlon Duron processor name string displayed calling subroutine DisplayK7NameString. following code sample displays processor name string. DisplayK7NameString: Returns: cf=0 possible characters displayed cf=1 string reached ;-DisplayK7NameString proc near push push push push K7_CPUID 80000002h call DisplayK7NameSubstring; ;End string? K7_CPUID 80000003h call DisplayK7NameSubstring; ;End string? K7_CPUID 80000004h call DisplayK7NameSubstring; DisplayK7NameString endp K7_CPUID instruction and, optionally, loads register with specified function number. K7_CPUID macro cpuidindex IFNB <cpuidindex> eax, cpuidindex ENDIF 0Fh, 0A2h ;CPUID instruction endm Code Samples Processor Recognition 20734R-June 2000 Using K7CPUID, following line code: K7_CPUID 80000002h generates following instructions: eax, 80000002h CPUID DisplayK7NameSubstring DisplayK7NameSubstring subroutine called three times display ASCII characters returned each CPUID function call. DisplayK7NameSubstring: Returns: cf=0 errors cf=1 string reached ;-DisplayK7NameSubstring proc near;Displays eax, ebx, ecx, call DisplayEaxAscii ;End string? xchg eax, call DisplayEaxAscii ;End string? xchg eax, call DisplayEaxAscii ;End string? xchg eax, call DisplayEaxAscii DisplayK7NameSubstring endp Code Samples 20734R-June 2000 Processor Recognition DisplayEaxAscii DisplayEaxAscii subroutine four times. DisplayEaxAscii displays four bytes register ASCII characters starting with least-significant byte (little endian). subroutine DisplayAlChar used example generic name subroutine that displays value register ASCII character. This type subroutine common BIOS under variety names. DisplayEaxAscii: Returns: cf=0 errors cf=1 string reached ;-DisplayEaxAscii proc near push push ;End string? ;(assume string) YES-assumed correctly call DisplayAlChar NO-display character eax, ;next char loop ;repeat ;Restore regs DisplayEaxAscii endp Code Samples Processor Recognition 20734R-June 2000 Code Samples 20734R-June 2000 Processor Recognition Appendix CPUID Instruction Definition This appendix contains detailed description CPUID instruction. CPUID Instruction mnemonic CPUID Privilege: Registers Affected: Flags Affected: Exceptions Generated: opcode description Identify processor feature none EAX, EBX, ECX, none none CPUID instruction application-level instruction that software executes identify processor feature set. This instruction offers multiple functions, each providing different information about processor. CPUID instruction executed from privilege level. Software information returned this instruction tune functionality specific processor features. processors implement CPUID instruction. Therefore, software must test determine instruction present processor. (21) EFLAGS register writeable, CPUID instruction implemented. CPUID Instruction Processor Recognition 20734R-June 2000 CPUID instruction supports multiple functions. information associated with each function obtained executing CPUID instruction with function number register. Functions divided into types: standard functions extended functions. Standard functions found function space, 0000_0000h-7FFF_FFFFh. general, processors have same standard function definitions. Extended functions defined specifically processors supplied vendor listed vendor identification string. Extended functions found high function space, 8000_0000h-8FFF_FFFFh. Because vendors have defined extended functions, software must test their presence processor. processors have extended functions 8000_0000h function returns value least 8000_0001h register. Standard Functions Function Largest Standard Function Input Value Vendor Identification String Input: Output: Largest function input value recognized CPUID instruction EBX, EDX, Vendor identification string This standard function found processors implementing CPUID instruction. returns values. first value returned register indicates largest standard function value recognized processor. second value vendor identification string. This 12-character ASCII string returned EBX, EDX, registers little endian format. processors return vendor identification string "AuthenticAMD" follows: Registers Alpha Characters ASCII Codes Standard Functions 20734R-June 2000 Processor Recognition Software uses vendor identification string follows: identify processor processor apply AMD's definition CPUID instruction additional function calls Function Processor Signature Standard Feature Flags Input: Output: Processor Signature Reserved Reserved Standard Feature Flags Function returns values -the Processor Signature Standard Feature Flags. processor signature returned register identifies specific processor providing information type instruction family, model, revision (stepping). information formatted follows: EAX[3-0] EAX[7-4] EAX[11-8] EAX[31-12] Stepping Model Instruction Family Reserved standard feature flags returned register indicate presence specific features. most cases, indicates feature present, indicates feature present. Table page contains list currently defined standard feature flags AMD-K6® processor Models Table page contains list currently defined standard feature flags Athlonprocessor Models Duronprocessor. (See Tables through Appendix "Register Values Returned Family Processors" page family processor register definitions, including AMD-K6 processor Models Reserved bits will used features they added. more information, "The AthlonProcessor Model Model Model page "The DuronProcessor" page Standard Functions Processor Recognition 20734R-June 2000 Table Standard Feature Flag Descriptions AMD-K6®-2 AMD-K6®-III Processors 18-22 25-31 Notes: Feature AMD-K6®-2 AMD-K6-III Processor Processor (Model (Model Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte pages) Time Stamp Counter (with RDTSC disable bit) K86Family Processors' Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSENTER/SYSEXIT2 Memory Type Range Registers Global Paging Extension Machine Check Architecture Conditional Move Instruction (Page Attribute Table) PSE-36 (Page Size Extensions) Reserved processors MMXInstructions FXSAVE/FXRSTOR Reserved processors definitions: Support, Support. SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. Table page more information about Global Paging Extensions AMD-K6-2 processor Model Standard Functions 20734R-June 2000 Processor Recognition Table Standard Feature Flag Descriptions Athlonand DuronProcessors Feature AthlonAMD AthlonAMD AthlonAMD DuronProcessor Processor Processor Processor (Model (Model (Model Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte pages) Time Stamp Counter (with RDTSC disable bit) K86Family Processors' Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSENTER/SYSEXIT3 Memory Type Range Registers Global Paging Extension Machine Check Architecture Conditional Move Instruction (Page Attribute Table) PSE-36 (Page Size Extensions) 18-22 Reserved processors MMXInstructions Notes: FXSAVE/FXRSTOR 25-31 Reserved processors definitions: Support, Support. Athlon processor Model Model Duron processor contain local APIC. BIOS must enable local APIC order return (supported). SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. Standard Functions Processor Recognition 20734R-June 2000 Extended Functions Function 8000_0000h Largest Extended Function Input Value Input: 8000_0000h Output: Largest function input value recognized CPUID instruction Reserved Reserved Reserved Function 8000_0000h returns value register that indicates largest extended function value recognized processor. Function 8000_0001h Processor Signature Extended Feature Flags Input: 8000_0001h Output: Processor Signature Reserved Reserved Extended Feature Flags Function 8000_0001h returns values Processor Signature Extended Feature Flags. processor signature returned register identifies specific processor providing information regarding type generation, model, revision (stepping). (The instruction family obtained using function information function 8000_0001h formatted follows: EAX[3-0] EAX[7-4] EAX[11-8] EAX[31-12] Stepping Model Generation Reserved extended feature flags returned register indicate presence specific features found processors. most cases, indicates feature present, indicates feature present. Table page contains list currently defined feature flags AMD-K6 processor Models Table page contains list currently defined feature flags Athlon processor Duron processor. (See Tables through Appendix "Register Values Returned Family Processors" page family processor register definitions.) Reserved bits will used features they added. Extended Functions 20734R-June 2000 Processor Recognition Table Extended Feature Flag Descriptions AMD-K6®-2 AMD-K6®-III Processors 18-21 25-29 Notes: Feature1 Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte Pages) Time Stamp Counter (with RDTSC disable bit) K86Family Processors' Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSCALL SYSRET Instructions2 Memory Type Range Registers Global Paging Extension Machine Check Architecture Conditional Move Instruction (Page Attribute Table) PSE-36 (Page Size Extensions) Reserved processors MMXInstruction Extensions Instructions FXSAVE/FXRSTOR Reserved processors 3DNow!Instruction Extensions 3DNow! Instructions AMD-K6®-2 AMD-K6-III Processor Processor (Model (Model definitions: Support, Support. SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. Extended Functions Processor Recognition 20734R-June 2000 Table Extended Feature Flag Descriptions Athlonand DuronProcessors Feature1 Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte Pages) Time Stamp Counter (with RDTSC disable bit) K86Family Processors' Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSCALL SYSRET Instructions3 Memory Type Range Registers Global Paging Extension Machine Check Architecture Conditional Move Instruction (Page Attribute Table) PSE-36 (Page Size Extensions) AthlonAMD AthlonAMD AthlonAMD DuronProcessor Processor Processor Processor (Model (Model (Model 18-21 Reserved processors MMXInstruction Extensions Instructions FXSAVE/FXRSTOR 25-29 Reserved processors 3DNow!Instruction Extensions 3DNow! Instructions Notes: definitions: Support, Support. Athlon processor Model Model Duron processor contain local APIC. BIOS must enable local APIC return (supported). SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. Extended Functions 20734R-June 2000 Processor Recognition Functions 8000_0002h, 8000_0003h, 8000_0004h Processor Name String Input: 8000_0002h, 8000_0003h, 8000_0004h Output: Processor Name String Processor Name String Processor Name String Processor Name String Functions 8000_0002h, 8000_0003h, 8000_0004h each return part processor name string EAX, EBX, ECX, registers. These three functions four registers return ASCII string characters little endian format. example, function 8000_0002h returns first characters processor name. first character resides least significant byte EAX, last character this group resides most significant byte EDX. NULL character (ASCII 00h) used indicate processor name string. This feature useful processor names that require fewer than characters. Function 8000_0005h TLB/Cache Information AthlonProcessor DuronProcessor Input: 8000_0005h Output: 2-Mbyte/4-Mbyte Pages Information 4-Kbyte Pages Information Data Cache Information Instruction Cache Information Function 8000_0005h returns information about processor TLBs caches. Tables provide format information returned 8000_0005h function Athlon processor Duron processor. Extended Functions Processor Recognition 20734R-June 2000 Table describes format information 2-Mbyte/4-Mbyte large page TLBs. Table Format Returned Function 8000_0005h 2-Mbyte/4-Mbyte Pages Data Associativity1 Notes: Instruction Entries2 Bits 23-16 Associativity1 Bits 15-8 Entries2 Bits Bits 31-24 "Associativity Caches TLBs" page more information. number entries returned number entries available 2-Mbyte large pages. Because 4-Mbyte large pages require 2-Mbyte entries, number entries available 4-Mbyte large pages one-half returned value. Table Format Returned Function 8000_0005h 4-Kbyte Pages Data Associativity* Note: Instruction Entries Bits 23-16 Associativity* Bits 15-8 Entries Bits Bits 31-24 "Associativity Caches TLBs" page more information. Table Format Returned Function 8000_0005h Data Cache Size (Kbytes) Note: Associativity* Bits 23-16 Lines Bits 15-8 Line Size (bytes) Bits Bits 31-24 "Associativity Caches TLBs" page more information. Table Format Returned Function 8000_0005h Instruction Cache Size (Kbytes) Note: Associativity* Bits 23-16 Lines Bits 15-8 Line Size (bytes) Bits Bits 31-24 "Associativity Caches TLBs" page more information. Extended Functions 20734R-June 2000 Processor Recognition Function 8000_0005h Cache Information AMD-K5and AMD-K6® Processors Input: 8000_0005h Output: Reserved Information Data Cache Information Instruction Cache Information Function 8000_0005h returns information about processor's on-chip caches associated TLBs. Tables provide format information returned 8000_0005h function AMD-K5 AMD-K6 processors. Table Format Returned Function 8000_0005h Data Associativity* Bits 31-24 Entries Bits 23-16 Instruction Associativity* Bits 15-8 Entries Bits Note: "Associativity Caches TLBs" page more information. Table Format Returned Function 8000_0005h Data Cache Size (Kbytes) Note: Bits 31-24 Associativity* Bits 23-16 Lines Bits 15-8 Line Size (bytes) Bits "Associativity Caches TLBs" page more information. Table Format Returned Function 8000_0005h Instruction Cache Size (Kbytes) Note: Bits 31-24 Associativity* Bits 23-16 Lines Bits 15-8 Line Size (bytes) Bits "Associativity Caches TLBs" page more information. Extended Functions Processor Recognition 20734R-June 2000 Function 8000_0006h TLB/L2 Cache Information AthlonProcessor DuronProcessor Note: cache Athlon processor Model Model must configured prior invoking this function. Input: 8000_0006h Output: 2-Mbyte/4-Mbyte Pages Information 4-Kbyte Pages Information Unified Cache Information Reserved Function 8000_0006h returns information about cache TLB. Tables provide format information returned 8000_0006h function Athlon processor Duron processor. Table Format Returned Function 8000_0006h 2-Mbyte/4-Mbyte Pages Data TLB2 Associativity1 Notes: Instruction Unified Entries Bits 27-16 Associativity1 Bits 15-12 Entries Bits 11-0 Bits 31-28 "Associativity Caches TLBs" page more information. unified indicated value 0000h upper bits register. Unified information then referenced lower bits register. Table Format Returned Function 8000_0006h 4-Kbyte Pages Data TLB2 Associativity1 Notes: Instruction Unified Entries Bits 27-16 Associativity1 Bits 15-12 Entries Bits 11-0 Bits 31-28 "Associativity Caches TLBs" page more information. unified indicated value 0000h upper bits register. Unified information then referenced lower bits register. Extended Functions 20734R-June 2000 Processor Recognition Table Format Returned Function 8000_0006h Cache Size (Kbytes) Note: Associativity* Bits 15-12 Lines Bits 11-8 Line Size (bytes) Bits Bits 31-16 "Associativity Caches TLBs" page more information. Function 8000_0006h Cache Information AMD-K6®-III Processor Input: 8000_0006h Output: Reserved Reserved Unified Cache Information Reserved Function 8000_0006h returns information about processor's cache. Table provides format information returned 8000_0006h function. Table Format Returned Function 8000_0006h AMD-K6®-III Processor Cache Size (Kbytes) Note: Associativity* Bits 15-12 Lines Bits 11-8 Line Size (bytes) Bits Bits 31-16 "Associativity Caches TLBs" page more information. Extended Functions Processor Recognition 20734R-June 2000 Associativity Field Definitions This section describes values returned associativity fields. Associativity Caches TLBs associativity fields data cache, instruction cache, data TLB, instruction bits wide. Except (Reserved) (Full), number returned associativity field represents actual number ways, with range through FEh. example, returned value indicates 2-way associativity returned value indicates 4-way associativity. Associativity Caches TLBs associativity fields cache, data TLB, instruction bits wide. Table shows values returned these associativity fields. Table Associativity Values Caches TLBs Bits 15-12 Associativity 0000b 0001b 0010b 0011b 0100b 0101b 0110b 0111b 1000b 1001b 1010b 1011b 1100b 1101b 1110b 1111b Direct mapped 2-way Reserved 4-way Reserved 8-way Reserved 16-way Reserved Reserved Reserved Reserved Reserved Reserved Full Extended Functions 20734R-June 2000 Processor Recognition Appendix Register Values Returned Family Processors Tables through contain values returned processors CPUID instruction. Register Values Returned Family Processors Processor Recognition 20734R-June 2000 AthlonProcessor DuronProcessor Values Table Values Returned Athlonand DuronProcessors Function Register AthlonProcessor (Model AthlonProcessor (Model AthlonProcessor (Model DuronProcessor Function: Function: Function: 8000_0000h Function: 8000_0001h Notes: 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_061Xh Reserved Reserved 0081_F9FFh 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_062Xh Reserved Reserved 0183_F9FFh1 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_064Xh Reserved Reserved 0183_F9FFh1 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_063Xh Reserved Reserved 0183_F9FFh1 8000_0006h Reserved Reserved Reserved 8000_0006h Reserved Reserved Reserved 8000_0006h Reserved Reserved Reserved 8000_0006h Reserved Reserved Reserved 0000_071Xh Reserved Reserved C0C1_F9FFh 0000_072Xh Reserved Reserved C1C3_F9FFh2 0000_074Xh Reserved Reserved C1C3_F9FFh2 0000_073Xh Reserved Reserved C1C3_F9FFh2 Athlon processor (Models Duron processor contain APIC, reflected this value. BIOS enables APIC, value 0183_FBFFh. Athlon processor (Models Duron processor contain APIC, reflected this value. BIOS enables APIC, value C1C3_FBFFh. cache size associativity processors product specific. Athlon processor (Models have cache size 512-Kbyte with two-way associativity. Athlon processor Model cache size 256-Kbyte with sixteen-way associativity. cache size associativity processors product specific. Duron processor cache size 64-Kbyte with sixteen-way associativity. AthlonProcessor DuronProcessor Values 20734R-June 2000 Processor Recognition Table Values Returned Athlonand DuronProcessors (continued) Function Register AthlonProcessor (Model AthlonProcessor (Model AthlonProcessor (Model DuronProcessor Function: 8000_0002h Function: 8000_0003h Function: 8000_0004h Notes: 2D44_4D41h 7428_374Bh 5020_296Dh 6563_6F72h 2044_4D41h 6C68_7441h 7428_6E6Fh 5020_296Dh 2044_4D41h 6C68_7441h 7428_6E6Fh 5020_296Dh 2044_4D41h 6F72_7544h 6D74_286Eh 7250_2029h 726F_7373h 0000_0000h 0000_0000h 0000_0000h 6563_6F72h 726F_7373h 0000_0000h 0000_0000h 6563_6F72h 726F_7373h 0000_0000h 0000_0000h 7365_636Fh 0072_6F73h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h Athlon processor (Models Duron processor contain APIC, reflected this value. BIOS enables APIC, value 0183_FBFFh. Athlon processor (Models Duron processor contain APIC, reflected this value. BIOS enables APIC, value C1C3_FBFFh. cache size associativity processors product specific. Athlon processor (Models have cache size 512-Kbyte with two-way associativity. Athlon processor Model cache size 256-Kbyte with sixteen-way associativity. cache size associativity processors product specific. Duron processor cache size 64-Kbyte with sixteen-way associativity. AthlonProcessor DuronProcessor Values Processor Recognition 20734R-June 2000 Table Values Returned Athlonand DuronProcessors (continued) Function Register AthlonProcessor (Model AthlonProcessor (Model AthlonProcessor (Model DuronProcessor Function: 8000_0005h Function: 8000_0006h Notes: 0408_FF08h FF18_FF10h 4002_0140h 4002_0140h 0408_FF08h FF18_FF10h 4002_0140h 4002_0140h 0408_FF08h FF18_FF10h 4002_0140h 4002_0140h 0408_FF08h FF18_FF10h 4002_0140h 4002_0140h 0000_0000h 4100_4100h ****_*140h3 Reserved 0000_0000h 4100_4100h ****_*140h3 Reserved 0000_0000h 4100_4100h ****_*140h3 Reserved 0000_0000h 4100_4100h ****_*140h4 Reserved Athlon processor (Models Duron processor contain APIC, reflected this value. BIOS enables APIC, value 0183_FBFFh. Athlon processor (Models Duron processor contain APIC, reflected this value. BIOS enables APIC, value C1C3_FBFFh. cache size associativity processors product specific. Athlon processor (Models have cache size 512-Kbyte with two-way associativity. Athlon processor Model cache size 256-Kbyte with sixteen-way associativity. cache size associativity processors product specific. Duron processor cache size 64-Kbyte with sixteen-way associativity. AthlonProcessor DuronProcessor Values 20734R-June 2000 Processor Recognition AMD-K6® Processor Values Table Values Returned AMD-K6® Processors Function Register Function: Function: Function: 8000_0000h Function: 8000_0001h Notes: AMD-K6® Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_056Xh Reserved Reserved 0080_01BFh AMD-K6 Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_057Xh Reserved Reserved 0080_01BFh AMD-K6-2 Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_058Xh Reserved Reserved 0080_21BFh1 AMD-K6-III Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_059Xh Reserved Reserved 0080_21BFh 8000_0005h Reserved Reserved Reserved 8000_0005h Reserved Reserved Reserved 8000_0005h Reserved Reserved Reserved 8000_0006h Reserved Reserved Reserved 0000_066Xh Reserved Reserved 0080_05BFh 0000_067Xh Reserved Reserved 0080_05BFh 0000_068Xh Reserved Reserved 8080_29BFh 0000_069Xh Reserved Reserved 8080_29BFh AMD-K6-2 processor Model 8/[F:8], 0080_21BFh Global Paging Extension supported. AMD-K6-2 processor Model 8/[7:0], 0080_01BFh. AMD-K6-2 processor Model 8/[F:8], 8080_29BFh Global Paging Extension supported. AMD-K6-2 processor Model 8/[7:0], 8080_09BFh. Extended functions 8000_0002h, 8000_0003h, 8000_0004h each return part processor name string. Some AMD-K6-2 processors have following name string: function 8000_0002h, 322D_296Dh 6F72_5020h, function 8000_0003h, 7373_6563h 0000_726Fh. Extended functions 8000_0002h, 8000_0003h, 8000_0004h each return part processor name string. Some AMD-K6-III processors have following name string: function 8000_0002h, 492D_296Dh 5020_4949h, function 8000_0003h, 6563_6F72h 726F_7373h. AMD-K6® Processor Values Processor Recognition 20734R-June 2000 Table Values Returned AMD-K6® Processors (continued) Function Register Function: 8000_0002h Function: 8000_0003h Function: 8000_0004h Function: 8000_0005h Notes: AMD-K6® Processor (Model AMD-K6 Processor (Model AMD-K6-2 Processor (Model AMD-K6-III Processor (Model 2D44_4D41h 6D74_364Bh 202F_7720h 746C_756Dh 2D44_4D41h 6D74_364Bh 202F_7720h 746C_756Dh 2D44_4D41h 7428_364Bh 3320_296Dh 7270_2044h 2D44_4D41h 7428_364Bh 3320_296Dh 5020_2B44h 6465_6D69h 6520_6169h 6E65_7478h 6E6F_6973h 6465_6D69h 6520_6169h 6E65_7478h 6E6F_6973h 7365_636Fh 0072_6F73h 0000_0000h 0000_0000h 6563_6F72h 726F_7373h 0000_0000h 0000_0000h 0000_0073h 0000_0000h 0000_0000h 0000_0000h 0000_0073h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h Reserved 0280_0140h 2002_0220h 2002_0220h Reserved 0280_0140h 2002_0220h 2002_0220h Reserved 0280_0140h 2002_0220h 2002_0220h Reserved 0280_0140h 2002_0220h 2002_0220h AMD-K6-2 processor Model 8/[F:8], 0080_21BFh Global Paging Extension supported. AMD-K6-2 processor Model 8/[7:0], 0080_01BFh. AMD-K6-2 processor Model 8/[F:8], 8080_29BFh Global Paging Extension supported. AMD-K6-2 processor Model 8/[7:0], 8080_09BFh. Extended functions 8000_0002h, 8000_0003h, 8000_0004h each return part processor name string. Some AMD-K6-2 processors have following name string: function 8000_0002h, 322D_296Dh 6F72_5020h, function 8000_0003h, 7373_6563h 0000_726Fh. Extended functions 8000_0002h, 8000_0003h, 8000_0004h each return part processor name string. Some AMD-K6-III processors have following name string: function 8000_0002h, 492D_296Dh 5020_4949h, function 8000_0003h, 6563_6F72h 726F_7373h. AMD-K6® Processor Values 20734R-June 2000 Processor Recognition Table Values Returned AMD-K6® Processors (continued) Function Register Function: 8000_0006h Notes: AMD-K6® Processor (Model AMD-K6 Processor (Model AMD-K6-2 Processor (Model AMD-K6-III Processor (Model Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined Reserved Reserved 0100_4220h Reserved AMD-K6-2 processor Model 8/[F:8], 0080_21BFh Global Paging Extension supported. AMD-K6-2 processor Model 8/[7:0], 0080_01BFh. AMD-K6-2 processor Model 8/[F:8], 8080_29BFh Global Paging Extension supported. AMD-K6-2 processor Model 8/[7:0], 8080_09BFh. Extended functions 8000_0002h, 8000_0003h, 8000_0004h each return part processor name string. Some AMD-K6-2 processors have following name string: function 8000_0002h, 322D_296Dh 6F72_5020h, function 8000_0003h, 7373_6563h 0000_726Fh. Extended functions 8000_0002h, 8000_0003h, 8000_0004h each return part processor name string. Some AMD-K6-III processors have following name string: function 8000_0002h, 492D_296Dh 5020_4949h, function 8000_0003h, 6563_6F72h 726F_7373h. AMD-K6® Processor Values Processor Recognition 20734R-June 2000 Am486®, Am5X86®, AMD-K5Processor Values Table Values Returned Am486®, Am5X86®, AMD-K5Processors Function Register Function: Function: Function: 8000_0000h Function: 8000_0001h Function: 8000_0002h Function: 8000_0003h Note: Am486® Am5X86® Processors 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_04XXh Reserved Reserved 0000_0001h AMD-K5Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_050Xh Reserved Reserved 0000_03BFh* AMD-K5 Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_051Xh Reserved Reserved 0000_21BFh AMD-K5 Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_052Xh Reserved Reserved 0000_21BFh AMD-K5 Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_053Xh Reserved Reserved 0000_21BFh 0000_0000h Undefined Undefined Undefined 0000_0000h Undefined Undefined Undefined 8000_0005h Reserved Reserved Reserved 8000_0005h Reserved Reserved Reserved 8000_0005h Reserved Reserved Reserved Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined 0000_051Xh Reserved Reserved 0000_21BFh 0000_052Xh Reserved Reserved 0000_21BFh 0000_053Xh Reserved Reserved 0000_21BFh Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined 2D44_4D41h 7428_354Bh 5020_296Dh 6563_6F72h 2D44_4D41h 7428_354Bh 5020_296Dh 6563_6F72h 2D44_4D41h 7428_354Bh 5020_296Dh 6563_6F72h Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined 726F_7373h 0000_0000h 0000_0000h 0000_0000h 726F_7373h 0000_0000h 0000_0000h 0000_0000h 726F_7373h 0000_0000h 0000_0000h 0000_0000h AMD-K5 processor Model reserves implements feature indicate support Global Paging Extensions instead support APIC. Am486®, Am5X86®, AMD-K5Processor Values 20734R-June 2000 Processor Recognition Table Values Returned Am486®, Am5X86®, AMD-K5Processors (continued) Function Register Function: 8000_0004h Function: 8000_0005h Note: Am486® Am5X86® Processors AMD-K5Processor (Model AMD-K5 Processor (Model AMD-K5 Processor (Model AMD-K5 Processor (Model Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h Undefined Undefined Undefined Undefined Undefined Undefined Undefined Undefined Reserved 0480_0000h 0804_0120h 1004_0120h Reserved 0480_0000h 0804_0120h 1004_0120h Reserved 0480_0000h 0804_0120h 1004_0120h AMD-K5 processor Model reserves implements feature indicate support Global Paging Extensions instead support APIC. Am486®, Am5X86®, AMD-K5Processor Values Processor Recognition 20734R-June 2000 Am486®, Am5X86®, AMD-K5Processor Values Other recent searchesUG-0037 - UG-0037 UG-0037 Datasheet MASW-007076-000100 - MASW-007076-000100 MASW-007076-000100 Datasheet KSS84 - KSS84 KSS84 Datasheet FDS6990AS - FDS6990AS FDS6990AS Datasheet 74ALVCH162240 - 74ALVCH162240 74ALVCH162240 Datasheet 54LCX16244 - 54LCX16244 54LCX16244 Datasheet 2N7000 - 2N7000 2N7000 Datasheet
Privacy Policy | Disclaimer |