| The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers. |
Publication 20734 Revision: 3.04 Issue Date: September 2003 2000-
Top Searches for this datasheetProcessor Recognition Publication 20734 Revision: 3.04 Issue Date: September 2003 2000-2003 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, Arrow logo, Athlon, Duron, Opteron combinations thereof, AMD-K7, 3DNow! PowerNow! trademarks AMD-K6, AMD-K6-2, AMD-K6-III, Am486 registered trademarks Advanced Micro Devices, Inc. HyperTransport licensed trademark HyperTransport Technology Consortium. trademark Intel Corporation. Microsoft registered trademark Microsoft Corporation. Other product names used this publication identification purposes only trademarks their respective companies. 20734 Rev. 3.04 September 2003 Processor Recognition Contents Chapter Chapter Chapter Introduction CPUID Instruction Overview Using CPUID Instructions Testing CPUID Instruction 3.1.1 3.1.2 Illegal Instruction Exception Method EFLAGS ID-Bit Method Using CPUID Functions Identifying Processor Vendor Testing Extended Functions Determining Processor Signature Identifying Supported Features 3.6.1 3.6.2 3.6.3 Determining Instruction Support Processor Signature (Extended Function) Displaying Processor Name 3.6.3.1 Differentiation Processors Same Model Number 3.6.3.2 State Considerations 3.6.3.3 Recommended Name String Displaying Cache Information Determining Power Management Capabilities Determining Maximum Physical Linear Address Size Determining Vendor-Specific Feature Flags Example CPUID Code Example Function Call Displaying Athlon64, OpteronTM, AthlonTM, DuronProcessor Name Strings DisplayNameString Subroutine DisplayNameSubstring 3.6.4 3.6.5 3.6.6 3.6.7 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 Chapter Code Samples Summary CPUID Differences Changed Functions Contents Processor Recognition 20734 Rev. 3.04 September 2003 4.1.1 4.1.1.1 4.1.1.2 4.1.1.3 4.1.1.4 4.1.1.5 Standard Function 0000_0001h-Processor Version Information Feature Flags Extended Family Extended Model EAX) 8-Bit Brand EBX) CLFLUSH size EBX) Initial APIC_ID EBX) Standard Feature Flags EDX) Extended Function 8000_0000h-Highest Extended Function Available 4.1.2 4.1.3 Extended Function 8000_0001h-Processor Version Information Extended Feature Flags 4.1.3.1 Extended Family Extended Model EAX) 4.1.3.2 12-Bit Brand EBX) 4.1.3.3 Extended Feature Flags EDX) Extended Functions 8000_0005h 8000_0006h-Cache Information 4.1.4 4.1.5 4.1.6 4.2.1 Chapter Extended Function 8000_0007h-Advanced Power Management Information Extended Function 8000_0008h-Address Size Information Extended Functions Feature Flags Functions CPUID Instruction Definition CPUID Instruction Standard Functions 5.2.1 5.2.2 Function 0-Largest Standard Function Input Value Vendor Identification String Function 1-Processor Signature Standard Feature Flags 5.2.2.1 EAX-Version (Family, Model Stepping) Information 5.2.2.2 EBX-8-Bit Brand CFLUSH, APIC Information 5.2.2.2.1 8-Bit Brand 5.2.2.2.2 CLFLUSH Size 5.2.2.2.3 Initial APIC_ID 5.2.2.3 EDX-Standard Feature Flags Function 8000_0000h-Largest Extended Function Input Value Function 8000_0001h-Processor Version Information Contents Extended Functions 5.3.1 5.3.2 20734 Rev. 3.04 September 2003 Processor Recognition 5.3.2.1 5.3.2.2 5.3.2.3 5.3.2.4 Extended Feature Flags EAX-Version (Family, Model, Stepping) Information EBX-12-bit Brand ECX-Extended Feature Flag EDX-Extended Feature Flags Extended Functions 8000_0002h, 8000_0003h, 8000_0004h-Processor Name String Extended Function 8000_0005h-L1 Cache Information Athlon64, OpteronTM, AthlonTM, DuronProcessors Function 8000_0005h-L1 Cache Information AMD-K5 AMD-K6® Processors Extended Function 8000_0006h-L2 Cache Information Athlon64 OpteronTM, AthlonTM, DuronProcessors 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 Function 8000_0006h-L2 Cache Information AMD-K6®-III Processor 5.3.7.1 Associativity Field Definitions 5.3.7.1.1 Associativity Caches TLBs 5.3.7.1.2 Associativity Caches TLBs Function 8000_0007h Advanced Power Management Feature Flags Function 8000_0008h Physical Address Linear Address Size Extended Functions Feature Flags 5.3.8 5.3.9 5.3.10 Appendix Register Values Returned Family Processors Athlon64 OpteronProcessor Values AthlonProcessor DuronProcessor Values AMD-K6® Processor Values Am486®, Am5x86, AMD-K5 Processor Values Appendix Programming Name String Athlon64 OpteronProcessors Brand Constructing Name String Programming Processor Name String Contents Processor Recognition 20734 Rev. 3.04 September 2003 Contents 20734 Rev. 3.04 September 2003 Processor Recognition List Figures Figure Figure Figure Figure Figure Contents Register Returned Function 8000_0001h Fields Standard Function 0000_0001h Extended Function 8000_0001h Fields Standard Function 0000_0001h. Fields Extended Function 8000_0007h Fields Extended Function 8000_0008h List Figures Processor Recognition 20734 Rev. 3.04 September 2003 List Figures 20734 Rev. 3.04 September 2003 Processor Recognition List Tables Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Summary CPUID Functions Athlon64 OpteronProcessor. Summary CPUID Functions Athlonand DuronProcessors Summary CPUID Functions Processors. Summary Processor Signatures Processors Recommended Name String Platform Segment Athlonand DuronFamily Processors Models Above. Processor Name Strings Athlonand DuronFamily Processors Through Model Model Number Mappings AthlonFamily Processors with 256-Kbyte Cache Model Number Mappings AthlonFamily Processors with 512-Kbyte Cache Initial APIC_ID Definitions Standard Feature Flag Descriptions Athlon64 OpteronProcessors Standard Feature Flag Descriptions AthlonProcessors Standard Feature Flag Descriptions DuronProcessors Standard Feature Flag Descriptions AMD-K6®-2 AMD-K6®-III Processors Extended Feature Flags-AMD Athlon64 OpteronProcessors Extended Feature Flag Descriptions AthlonProcessors Extended Feature Flag Descriptions DuronProcessors Extended Feature Flag Descriptions AMD-K6®-2 AMD-K6®-III Processors Standard Feature Flags Versus Extended Feature Flags Format Returned Function 8000_0005h Format Returned Function 8000_0005h Format Returned Function 8000_0005h Format Returned Function 8000_0005h Format Returned Function 8000_0005h Format Returned Function 8000_0005h List Tables Processor Recognition 20734 Rev. 3.04 September 2003 Table Table Table Table Table Table Table Table Table Table Table Table Table Format Returned Function 8000_0005h Format Returned Function 8000_0006h Format Returned Function 8000_0006h Format Returned Function 8000_0006h Format Returned Function 8000_0006h AMD-K6®-III Processor Associativity Values Caches TLBs Values Returned Athlon64 OpteronProcessors Values Returned Athlonand DuronProcessors Models Higher. Values Returned Mobile AthlonProcessors Models Higher, Mobile DuronProcessors Models Values Returned AthlonProcessors Models DuronProcessors Model Values Returned AMD-K6® Processors Values Returned Am486®, Am5x86, AMD-K5 Processors Processor Name String Values Athlon64 OpteronProcessors List Tables 20734 Rev. 3.04 September 2003 Processor Recognition Revision History Date September 2003 August 2003 June 2003 2003 April 2003 Revision 3.04 3.03 3.02 3.01 3.00 Description Incorporated additional Athlon64, Athlon64 OpteronCPUID feature identification branding information. Incorporated additional Athlon64 branding information. Added Athlon information made minor corrections. Added 3000+ 3200+ models table Added content Opteronprocessor. Changed technical document format, which includes look feel well revision system. November 2002 November 2002 August 2002 August 2002 Revised Table Appendix Revised Table Added additional model numbers 2600+, 2700+, 2800+ Added 2400+ 2600+ models table Added Athlonprocessor model information following: Table "Summary CPUID Functions Athlonand DuronProcessors" Table "Summary Processor Signatures Processors," page Table "Recommended Name String Platform Segment Athlonand DuronFamily Processors Models Above," page Table "Model Number Mappings AthlonFamily Processors," page Table "Standard Feature Flag Descriptions AthlonProcessors" Table "Extended Feature Flag Descriptions AthlonProcessors" Table "Values Returned Athlonand DuronProcessors models Revision History Processor Recognition 20734 Rev. 3.04 September 2003 Date January 2002 Revision Description Added following: "Name String Supports Characters" page "Differentiation Processors Same Model Number" page State Considerations" page "Recommended Name String" page Table "Processor Name Strings Athlonand DuronFamily Processors Through Model page Revised following: Table "Summary CPUID Functions Athlonand DuronProcessors," page "Testing Extended Functions" page Table "Summary Processor Signatures Processors," page Table "Summary Standard Extended Feature Bits," page Table "Recommended Name String Platform Segment Athlonand DuronFamily Processors Models Above," page Table "Model Number Mappings AthlonFamily Processors," page Table "Standard Feature Flag Descriptions AthlonProcessors," page Table "Standard Feature Flag Descriptions DuronProcessors," page Table "Extended Feature Flag Descriptions AthlonProcessors," page Table "Extended Feature Flag Descriptions DuronProcessors," page Table "Values Returned Athlonand DuronProcessors Models page Table "Values Returned Mobile AthlonProcessors Models Mobile DuronProcessors Models page July 2001 June 2000 Added information about mobile Athlon4 processor, AthlonMP processor, mobile Duronprocessors. Added information about Duronprocessor throughout document. Revised "CPUID Instruction Overview" page Added "The DuronProcessor" page Added Table "Processor Name Strings DuronProcessor," page Revision History 20734 Rev. 3.04 September 2003 Processor Recognition Date June 2000 Revision Description Added information about Athlonprocessor Model throughout document. Revised "CPUID Instruction Overview" page Revised Table "Processor Name String," 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 String," page 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 August 1999 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 Revision History Processor Recognition 20734 Rev. 3.04 September 2003 Date 1999 1999 1999 Revision Description 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 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 1998 "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 1998 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. 1998 1997 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 Sept 1997 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 Sept 1997 Sept 1997 Sept 1997 Revision History 20734 Rev. 3.04 September 2003 Processor Recognition Chapter Introduction number choices available Instruction Architecture (ISA) processor marketplace grew, need simple hardware software identify type processor feature became critical. CPUID instruction added instruction this purpose. This document contains information CPUID instruction identify processors their features. After detecting processor capabilities, software 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!instruction, SSE, MMXinstruction support processor. (The combined support 3DNow! instruction extensions known 3DNow! Professional technology.) software finds these features present when checks feature bits, utilize these more powerful extensions dramatically better performance multimedia software. Chapter Introduction Processor Recognition 20734 Rev. 3.04 September 2003 Introduction Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Chapter CPUID Instruction Overview Software operating privilege level execute CPUID instruction identify processor feature set. 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 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 vendor-specific processor features (such those AMD). flexibility CPUID instruction allows addition CPUID functions future generations processors. Chapter "CPUID Instruction Definition," contains detailed description CPUID instruction. Chapter CPUID Instruction Overview Processor Recognition 20734 Rev. 3.04 September 2003 CPUID Instruction Overview Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Chapter Using CPUID Instructions Testing CPUID Instruction CPUID instruction, software must first determine processor supports CPUID instruction. Note: family processors, beginning with Am486® processor, support CPUID instruction. CPUID support determined following ways: Illegal Instruction Exception: Execute CPUID instruction check whether illegal instruction exception occurs. exception occurs, processor does have CPUID support. EFLAGS ID-Bit: Check (bit EFLAGS register writable. writable (that modified), CPUID instruction supported. Operating System (OS) environment determines which approach more appropriate. These methods described following sections. 3.1.1 Illegal Instruction Exception Method This method 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 method. 3.1.2 EFLAGS ID-Bit Method This method 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. Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 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 potential problem with this method that interrupt trap (such debug trap) occur between POPFD following PUSHFD, that interrupt trap handler code destroys value bit. Where possible, preceding 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 processor, important that software uses instruction appropriately. instruction been defined make easy identify type features processors manufactured many different vendors. standard functions (EAX=0 EAX=1) same processors. Having standard functions simplifies software task testing implementing features common processors. Software test these features and, processors released, benefit from these capabilities immediately. Extended functions report information vendor-specific processor features. These functions provide additional information about processors that software identify enhanced features functions. test extended functions, software checks value least 8000_0001h register returned function 8000_0000h. Within family processors, different members execute different number functions. Table page Table page Table page summarize CPUID functions currently implemented processors. Table Standard Function Summary CPUID Functions Athlon64 OpteronProcessor Extended Function Description Athlon64 OpteronProcessors (Models Vendor String Largest Standard Function Value Processor Signature Standard Feature Bits Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Standard Function Summary CPUID Functions Athlon64 OpteronProcessor Extended Function Description Athlon64 OpteronProcessors (Models Notes: 8000_0000h 8000_0001h 8000_0002h 8000_0003h 8000_0004h 8000_0005h 8000_0006h Largest Extended Function Value Extended Processor Signature Extended Feature Bits Processor Name Processor Name Processor Name TLB1/Cache Information TLB/Cache Information Advanced Power 8000_0007h Management Feature Flags Physical Address Linear 8000_0008h Address Size 8000_0009h through Vendor-Specific Feature Flags 8000_0018h Future versions these processors implement additional functions. Chapter "CPUID Instruction Definition," contains detailed descriptions functions. Translation Lookaside Buffer. Table Summary CPUID Functions Athlonand DuronProcessors Extended Function Athlon Athlon Duron Duron Athlon Athlon Processor Processor Processor Duron Processor Processor Model Model Model Models Processors Model Model Standard Function Description Vendor String Largest Standard Function Value Processor Signature Standard Feature Bits Largest Extended 8000_0000h Function Value Extended Processor 8000_0001h Signature Extended Feature Bits 8000_0002h Processor Name Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 Table Summary CPUID Functions Athlonand DuronProcessors Extended Function Athlon Athlon Duron Duron Athlon Athlon Processor Processor Processor Duron Processor Processor Models Model Model Model Processors Model Model Standard Function Description Notes: 8000_0003h Processor Name 8000_0004h Processor Name Information TLB/Cache 8000_0006h Information Advanced Power 8000_0007h Management Feature Flags Physical Address 8000_0008h Linear Address Size 8000_0005h /Cache Future versions these processors implement additional functions. Chapter "CPUID Instruction Definition", contains detailed descriptions functions. Translation Lookaside Buffer. Athlonprocessor model includes Athlon processor, Athlon processor, mobile Athlon processor. Duronprocessor model includes Duron processor mobile Duron processor. Duron processor model includes both Duron processor mobile Duron processor. Athlon processor models include Athlon processor, Athlon processor, mobile Athlon processor. Table Summary CPUID Functions Processors AMD-K5 Processor (Model Am486®DX4, Am5x86 Processors AMD-K5 Processor (Models AMD-K6® Processor (Models AMD-K6-2 Processor (Model AMD-K6®-III Processor (Model Standard Function Extended Function Description Vendor String Largest Standard Function Value Processor Signature Standard Feature Bits Largest Extended 8000_0000h Function Value Extended Processor 8000_0001h Signature Extended Feature Bits 8000_0002h Processor Name 8000_0003h Processor Name Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Summary CPUID Functions Processors AMD-K5 Processor (Model Am486®DX4, Am5x86 Processors AMD-K5 Processor (Models AMD-K6® Processor (Models AMD-K6-2 Processor (Model AMD-K6®-III Processor (Model Standard Function Extended Function Description Notes: 8000_0004h Processor Name 8000_0005h TLB*/Cache Information TLB/Cache 8000_0006h Information Advanced Power 8000_0007h Management Feature Flags Physical Address 8000_0008h Linear Address Size Future versions these processors implement additional functions. Chapter "Using CPUID Instructions", 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 vendor processor. instruction also returns largest standard 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 vendor processor, knows definition functions supplied CPUID instruction. using these functions, software obtains processor information needed tune functionality capabilities processor. 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. Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 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. Athlon64 Opteronprocessors (Models belong family 0Fh. Athlonprocessor models Duronprocessor belong instruction family AMD-K6® processor models belong instruction family returned function Figure shows contents returned function Extended Family Family Model Stepping Reserved, Extended Model Reserved, Bits 31-28 27-20 19-16 15-12 11-8 Mnemonic Reserved Extended Family1 Extended Model1 Reserved Family Model Stepping Definition (Family 0Fh), provides additional family information (Family 0Fh), provides additional model information Processor/Instruction Family Processor Model Processor Stepping (revision) Note: These fields supported only Athlon64 Opteronprocessors. Athlon Duron processors, earlier processors, these fields reserved RAZ. Figure Contents Register Returned Function 8000_0001h Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table summarizes specific processor signature values returned processors. Table Summary Processor Signatures Processors Processor Am486® Am5x86 Processors AMD-K5 Model AMD-K5 Model AMD-K5 Model AMD-K5 Model AMD-K6® Model AMD-K6 Model AMD-K6 Model AMD-K6®-III Model AthlonModel Athlon Model DuronModel Athlon Model Athlon Model Athlon Model Mobile Athlon Model Duron Model Mobile Duron Model Duron Model Mobile Duron Model Athlon Model Athlon Model Mobile Athlon XP-M Model Mobile Athlon XP-M (LV) Model Athlon Model Athlon Model Mobile Athlon XP-M Model Mobile Athlon XP-M (LV) Model Notes: Extended Instruction Family [27:20] Extended Model [19:16] 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) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) Model [7:4] yyyy1 0000b (0h) 0001b (1h) 0010b (2h) 0011b (3h) 0110b (6h) 0111b (7h) 1000b (8h) 1001b (9h) 0001b (1h) 0010b (2h) 0011b (3h) 0100b (4h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0110b (6h) 0111b (7h) 0111b (7h) 1000b (8h) 1000b (8h) 1010b (Ah) 1010b (Ah) 1010b (Ah) 1010b (Ah) 1010b (Ah) 1010b (Ah) Stepping [3:0] xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb xxxxb Contact your representative model identifier information. Stepping change. Consult appropriate processor revision guide, contact your representative latest stepping information. Athlon processors same model numbers share same revision guide. Duron processors same model number share same Revision Guide. Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 Table Summary Processor Signatures Processors (Continued) Processor Extended Instruction Family [27:20] Extended Model [19:16] Instruction Family [11:8] 1111b (0Fh) 1111b (0Fh) Model [7:4] 0100b (04h) 0101b (05h) Stepping [3:0] xxxxb xxxxb Athlon64 Model OpteronModel Notes: Contact your representative model identifier information. Stepping change. Consult appropriate processor revision guide, contact your representative latest stepping information. Athlon processors same model numbers share same revision guide. Duron processors same model number share same Revision Guide. 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 summaries standard extended feature bits, view tables through Chapter "CPUID Instruction Definition". 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 MMXtechnology 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. Chapter "CPUID Instruction Definition", Appendix "Register Values Returned Family Processors", contain details locations values. 3.6.1 Determining Instruction Support preferable CPUID feature flags much possible, rather than deriving capabilities from vendor specifiers combined with CPUID model numbers. simplify detection instructions supported Athlon Opteron processors different models Athlonand Duronfamily processors, including original 3DNow! instructions, Enhanced 3DNow!, 3DNow! Professional (combining 3DNow! support), following algorithm. CPUID Test Establish that processor support CPUID. "Using CPUID Instructions" page Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Standard Function Test Execute CPUID function which returns processor vendor string highest standard function supported. step indicates that highest standard function least execute CPUID function which returns standard feature flags register. MMXTest standard feature flags "1", MMXtechnology supported. instruction support basic minimum processor feature required support other instruction extensions. Test standard feature flags Athlon Opteron processor either Athlonor Duronprocessor model greater, instructions supported. Optionally, standard feature flags previous processor, streaming SIMD extensions (SSE) capabilities. Further qualification done checking support. support might present processor usable lack support additional architected registers. Extended Functions Test 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 extended feature flags "1", 3DNow!instructions supported. 3DNow!Instruction Extensions Test extended feature flags "1", additions 3DNow! instruction supported. MMXExtensions Test extended feature flags "1", multimedia enhancement instructions that augment instruction supported. Long Mode Test extended feature flags "1", then "long mode" (including 64-bit mode) x86-64 supported. Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 PREFETCH PREFETCHW Test either extended feature flags (either Long Mode 3DNow! instructions supported), then PREFETCH PREFETCHW instructions supported. No-Execute Page Protection Test extended feature flags "1", then No-Execute Page feature processor enabled. 3.6.2 Processor Signature (Extended Function) Extended function 8000_0001h returns processor signature. signature returned register provides generation, model, stepping information processors. Starting with Athlon Opteron processors, 8000_0001h function supplements family model numbers with fields: extended family extended model fields. These fields expand family model numbering scheme. Figure page shows contents returned register. terms effective family effective model describe expanded 8-bit family 8-bit model numbers computed using extended family, family, extended model, model fields. Software that displays uses processor family model must aware extended family extended model fields combine with family model fields produce effective family effective model numbers. Software must computed 8-bit effective family effective model numbers when displaying using processor's family model numbers. Failure results display incorrect values. family field (EAX bits 11-8) equal 1111b (0Fh), extended family extended model fields compute 8-bit effective family effective model numbers shown following sample code: CPUID(0000_0001) Family EAX.11:8 Model EAX.7:4 ExtendedFamily EAX.27:20 ExtendedModel EAX.19:16 (Family 0Fh) EFFECTIVE_FAMILY EFFECTIVE_MODEL ExtendedFamily Family (ExtendedModel Model bits bits, zero extended bits bits bits, zero extended bits bits bits Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition 3.6.3 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: processor name string supports characters, name strings characters. example, name string "AMD Athlon(tm)" uses characters. Future name strings longer, BIOS vendors should take this into consideration when displaying name string boot-up system configuration screen. Unlike previous generations processors, Athlon Opteron processors have pre-programmed default name string. These processors return ASCII NULLs until name string programmed BIOS. Therefore, Athlon Opteron processors must have processor name string programmed BIOS before general purpose application software uses extended functions that read name string. processors support MSRs programming processor name string. information about programming name string, Appendix "Programming Name String Athlon64 OpteronProcessors". Athlon Opteron processors implement extended functions 8000_0002h, 8000_0003h, 8000_0004h same manner previous processors; therefore, necessary change software that displays processor name string. sample code display name string, "Displaying Athlon64, OpteronTM, AthlonTM, DuronProcessor Name Strings" page example properly obtain display processor name string. 3.6.3.1 Differentiation Processors Same Model Number Athlon Duron processors model higher must have name string programmed properly according values Table page depending processor's cache size. cache size value reported extended function 8000_0006h bits[31:16] greater, then processor Athlon family processor. cache size reported less than 256, then processor Duron family processor. 3.6.3.2 State Considerations Before entering S3-Suspend (STR)-state, BIOS must save processor name string MSRs. Upon exiting state, BIOS must then reload processor name string back into appropriate MSRs. Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 3.6.3.3 Recommended Name String namestring Athlon Opteron processor must programmed into processor BIOS. Appendix "Programming Name String Athlon64 OpteronProcessors" page more information. Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table summarizes recommended name strings Athlon Duron processors through models above. Table Recommended Name String Platform Segment Athlonand DuronFamily Processors Models Above Capable (bit Extended Feature Flags) Reserved Reserved Reserved Reserved Reserved Platform Segment Multiprocessing Desktop Mobile Multiprocessing Multiprocessing Desktop Mobile Desktop Mobile Desktop Mobile Multiprocessing Multiprocessing Desktop Desktop Mobile Desktop Multiprocessing OPGA Mobile µPGA Mobile Processor CPUID Recommended Name String1 AthlonModel Athlon Model Athlon Model Athlon Model Athlon Model Athlon Model Athlon Model DuronModel Duron Model Duron Model Duron Model Athlon Model Athlon Model Athlon Model Athlon Model Athlon Model Athlon Model Athlon Model Athlon Model Athlon Model Notes: N/A3 N/A3 N/A3 N/A3 N/A3 N/A3 N/A3 N/A3 N/A3 N/A3 N/A3 N/A3 N/A3 Athlon(tm) Athlon(tm) mobile Athlon(tm) Athlon(tm) [xxxxx]2 Athlon(tm) [xxxxx]2 Athlon(tm) [xxxxx]2 mobile Athlon(tm) Duron(tm) mobile Duron(tm) Duron(tm) mobile Duron(tm) Athlon(tm) [xxxxx]2 Athlon(tm) [xxxxx]2 Athlon(tm) [xxxxx]2 Athlon(tm) [xxxxx]2 mobile Athlon(tm) [xxxxx]2 Athlon(tm) [xxxxx]2 Athlon(tm) [xxxxx]2 mobile Athlon(tm) XP-M [xxxxx]2 mobile Athlon(tm) XP-M (LV) [xxxxx]2 This name string must programmed into processor BIOS. document, Displaying Programming Processor Name String BIOS Application Note, order# 90056. Table page Table page proper model number insert into name string. Recommended name strings Duronprocessors models Athlonprocessors models vary CPUID stepping value. Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 Table summarizes recommended name strings Athlon Duron processors through model Table Processor Name Strings Athlonand DuronFamily Processors Through Model Processor AthlonModel Athlon Model DuronModel Mobile Duron Model Athlon Model Notes: ASCII Name String AMD-K7(tm) processor Athlon(tm) processor Duron(tm)1 mobile Duron(tm)1 Athlon(tm)1 This name string must programmed into processor BIOS. document, Displaying Programming Processor Name String BIOS Application Note, order# 90056. Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Table page summarizes recommended name strings Athlon processors through model through Table Model Number Mappings AthlonFamily Processors with 256-Kbyte Cache Frequency1 (MHz) 9502 10002 11002 12002 13003,4 1333 1400 1467 15004 1533 1600 1667 1733 1800 2000 20835 2133 21675 22505, Notes: Model Number 1100+ 1200+ 1300+ 1400+ 1500+ 1500+ 1600+ 1700+ 1800+ 1800+ 1900+ 2000+ 2100+ 2200+ 2400+ 2600+ 2600+ 2700+ 2800+ recommended that BIOS display processor name string, including model number, whenever displaying processor information during bootup. processor frequency displayed, processor name string, including model number, must also displayed. Motherboards will pass validation posted recommended motherboard site, during bootup processor frequency displayed BIOS without also displaying name string model number Athlonmodel model model processors having frequencies with corresponding model numbers. model number 1200 MHz, 1100 MHz, 1000 MHz, should displayed only mobile Athlonmodel processor. mobile Athlonmodel processors, frequency below 1300 MHz, model number should shown name string. Also, mobile Athlonmodel processors below 1300 have name string "mobile Athlon(tm) Frequencies 1300 1500 only offered mobile low-power desktop processors using Front Side Bus. Frequencies 2083 MHz, 2167 MHz, 2250 only offered desktop processors using Front Side Bus. frequency above 2250 MHz, model number should omitted from name string show simply "AMD Athlon(tm) multiprocessing segment, "AMD Athlon(tm) desktop lowpower desktop, "mobile Athlon(tm) XP-M" OPGA mobile, "mobile Athlon(tm) XP-M (LV)" µPGA mobile. Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 Table Model Number Mappings AthlonFamily Processors with 512-Kbyte Cache Frequency1 (MHz) 13002 14002 14672 15332 16002 16672 18002 18333 18672 19173 20002 20833 21004 21335 21673 22004,6 Model Number 1700+ 1800+ 1900+ 2000+ 2100+ 2200+ 2400+ 2500+ 2500+ 2600+ 2600+ 2800+ 3000+ 2800+ 3000+ 3200+ Notes: recommended that BIOS display processor name string, including model number, whenever displaying processor information during bootup. processor frequency displayed, processor name string, including model number, must also displayed. Motherboards will pass validation posted recommended motherboard site, during bootup processor frequency displayed BIOS without also displaying name string model number Athlonmodel processors having frequencies with corresponding model numbers. Frequencies 1300 MHz, 1400 MHz, 1467 MHz, 1533 MHz, 1600 MHz, 1667 MHz, 1800 MHz, 1867 MHz, 2000 only offered mobile processors using Front Side Bus. Frequencies 1833 MHz, 1917 MHz, 2083 MHz, 2167 only offered desktop processors using Front Side Bus. Frequencies 2100 2200 only offered desktop processors using Front Side Bus. Frequency 2133 offered mobile workstation/server processors using Front Side Bus. frequency above 2200 MHz, model number should omitted from name string show simply "AMD Athlon(tm) multiprocessing segment, "AMD Athlon(tm) desktop lowpower desktop, "mobile Athlon(tm) XP-M" OPGA mobile, "mobile Athlon(tm) XP-M (LV)" µPGA mobile. Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition 3.6.4 Displaying Cache Information Functions 8000_0005h 8000_0006h provide cache information processor, although function 8000_0006h only supported Athlon Opteron processors, Athlon processors, Duron processors, AMD-K6®-III processor model Some diagnostic software displays information about system processor 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 Chapter "CPUID Instruction Definition". Software simply display these values, eliminating need large pieces code test memory structures. 3.6.5 Determining Power Management Capabilities Athlon Opteron processors support detection power management features through function 8000_0007h. These features include on-chip thermal diode, Voltage transitioning, Frequency transitioning, thermal trip. Athlon family processors model greater Duron family processors model also support detection power management features through function 8000_0007h. These features include on-chip thermal diode, Voltage transitioning, Frequency transitioning. Desktop varieties model model processors will have support only thermal diode. Mobile varieties model model processors support thermal diode, Voltage (VID) transitioning, Frequency (FID) transitioning. 3.6.6 Determining Maximum Physical Linear Address Size Athlon Opteron processors, Athlon family processors model greater, Duron family processors model support function 8000_0008h, which provides maximum physical maximum linear address size supported processor. 3.6.7 Determining Vendor-Specific Feature Flags Athlon Opteron processor introduces several Extended CPUID functions. Functions 8000_0009h through 8000_0018h reserved future expansion vendorspecific feature flags. Chapter "CPUID Instruction Definition" more information. Code Samples Developers want create their processor-features detection code should follow sample code described "Example CPUID Code." Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 more elaborate function call, which detects full range CPUID information, provided sample code "Example Function Call" page 3.7.1 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 Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition convenience, example CPUID code displayed follows: 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 FEATURE_CPUID FEATURE_STD_FEATURES FEATURE_EXT_FEATURES FEATURE_TSC FEATURE_MMX FEATURE_CMOV FEATURE_3DNOW FEATURE_3DNOWEXT FEATURE_MMXEXT 0x00000001 0x00000002 0x00000004 0x00000010 0x00000020 0x00000040 0x00000080 0x00000100 0x00000200 Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 #define FEATURE_SSEFP #define FEATURE_K6_MTRR #define FEATURE_P6_MTRR 0x00000400 0x00000800 0x00001000 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. Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition _try _asm _asm _asm _asm _asm cpuid eax, ebx, ecx, edx, _except (EXCEPTION_EXECUTE_HANDLER) return (0); result FEATURE_CPUID; _asm Step Check CPUID supports function (signature/std features) cpuid test dword [vendor], dword [vendor+4], dword [vendor+8], eax, $no_standard_features [result], FEATURE_STD_FEATURES; eax, 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 Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 ecx, CPUID_STD_MMX ecx, ecx, ecx, FEATURE_MMX [result], indicates support supports CPUID_STD_MMX:0 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 $no_extended_features [result], FEATURE_EXT_FEATURES; eax, 0x80000000 extended function 0x80000000 largest extended function function 0x80000000 yes, extended feature flags does have ext. feature flags Step extended feature flags Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition eax, 0x80000001 CPUID ext. function 0x80000001 cpuid extended feature flags 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: Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 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 Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 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); 3.7.2 Example Function Call function call code sample detects full range CPUID information allows user query capabilities through simple function call. code sample available from AMD's website following URL: Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 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 3.7.3 Displaying Athlon64, OpteronTM, AthlonTM, DuronProcessor Name Strings Athlon Opteron processor Athlon Duron family processors support CPUID extended functions 8000_0002h, 8000_0003h, 8000_0004h. These functions return ASCII string containing name processor. These functions eliminate need operating systems application 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 Opteron, Athlon, Duron processors branding strategy. 3.7.4 DisplayNameString Subroutine name string Athlon Opteron processors, well Athlon Duron family processors, displayed calling DisplayNameString subroutine. following code sample displays processor name string. DisplayNameString: Returns: cf=0 possible characters displayed cf=1 string reached ;-DisplayNameString proc near push push push Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition push eax, 80000002h 0Fh, 0A2h ;CPUID instruction call DisplayNameSubstring; ;End string? eax, 80000003h 0Fh, 0A2h ;CPUID instruction call DisplayNameSubstring; ;End string? eax, 80000004h 0Fh, 0A2h ;CPUID instruction call DisplayNameSubstring; DisplayNameString endp 3.7.5 DisplayNameSubstring DisplayNameSubstring subroutine called three times display ASCII characters returned each CPUID function call. DisplayNameSubstring: Returns: cf=0 errors cf=1 string reached ;-DisplayNameSubstring 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 DisplayNameSubstring endp Chapter Using CPUID Instructions Processor Recognition 20734 Rev. 3.04 September 2003 DisplayEaxAscii DisplayNameSubstring subroutine calls 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 type 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 Using CPUID Instructions Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Chapter Summary CPUID Differences CPUID instruction provides complete information about processor (vendor, type, name, etc.) features. CPUID instruction designed flexible extensible, that provide information future generations processors. Athlon64 Opteronprocessors introduce several CPUID functions, well changes existing functions. This section summarizes features changes. Chapter "CPUID Instruction Definition" detailed description each CPUID function. Changed Functions CPUID instruction implements multiple functions, each providing information about specific processor features. following sections describe changes CPUID functions they exist Athlonand Duronfamily processors. 4.1.1 Standard Function 0000_0001h-Processor Version Information Feature Flags Standard Function been enhanced return following fields flags. 4.1.1.1 Extended Family Extended Model EAX) These fields, conjuction with existing family model fields, expand family model numbering scheme bits. "AMD Processor Signature (Extended Function)" page important information about calculating displaying family model numbers Athlon Opteron processors. 4.1.1.2 8-Bit Brand EBX) certain models, brand 8-bit field that identifies processor with unique features specific brand. Other models have 12-bit Brand "12-Bit Brand EBX)" page details.The BIOS 8-bit 12-bit brand program ASCII processor name string returned CPUID functions 8000_0002h, 8000_0003h, 8000_0004h. "8Bit Brand page details. 4.1.1.3 CLFLUSH size EBX) This field reports size cache line flushed CLFLUSH instruction. "CLFLUSH Size" page details. Chapter Summary CPUID Differences Processor Recognition 20734 Rev. 3.04 September 2003 4.1.1.4 Initial APIC_ID EBX) Initial APIC field reports node "Initial APIC_ID" page details. 4.1.1.5 Standard Feature Flags EDX) Athlon Opteron processors report same standard features Athlon processor, with following additions: CLFLUSH instruction SSE2 4.1.2 Extended Function 8000_0000h-Highest Extended Function Available Athlon Opteron processors return 8000_0018h highest extended function available. 4.1.3 Extended Function 8000_0001h-Processor Version Information Extended Feature Flags Extended Function 8000_0001h been enhanced return several fields flags. 4.1.3.1 Extended Family Extended Model EAX) These fields, conjuction with existing family model fields, expand family model numbering scheme bits. "AMD Processor Signature (Extended Function)" page important information calculating displaying family model numbers Athlon Opteron processors. 4.1.3.2 12-Bit Brand EBX) certain models, brand 12-bit field that identifies processor with unique features specific brand. Other models have 8-bit brand "8-Bit Brand EBX)" page details. BIOS 8-bit 12-bit brand program ASCII processor name string returned CPUID functions 8000_0002h, 8000_0003h, 8000_0004h. "EBX-12-bit Brand page details. 4.1.3.3 Extended Feature Flags EDX) Athlon Opteron processors these extended feature flags: No-execute page protections (NX) Long Mode capable (LM) Summary CPUID Differences Chapter 20734 Rev. 3.04 September 2003 Processor Recognition "Function 8000_0001h-Processor Version Information Extended Feature Flags" page details. 4.1.4 Extended Functions 8000_0005h 8000_0006h-Cache Information These functions return information about processor TLBs caches. format information returned these functions identical Athlon Duron processors, although field values differ. "Extended Function 8000_0005h-L1 Cache Information Athlon64, OpteronTM, AthlonTM, DuronProcessors" page "Extended Function 8000_0006h-L2 Cache Information Athlon64 OpteronTM, AthlonTM, DuronProcessors" page details. 4.1.5 Extended Function 8000_0007h-Advanced Power Management Information This function returns following flag: Thermal Trip (TTP) 4.1.6 Extended Function 8000_0008h-Address Size Information Athlon Opteron processors return bits (30h) maximum linear address (Virtual Address) size bits (28h) maximum physical address size. "Function 8000_0008h Physical Address Linear Address Size" page details. Functions Athlon Opteron processors introduce several extended CPUID functions. 4.2.1 Extended Functions Feature Flags Functions 8000_0009h through 8000_0018h reserved future expansion vendor-specific feature flags. Each function reserved specific vendor. "Extended Functions 8000_0009h- 8000_0018h-Vendor-Specific Feature Flags" page details. Chapter Summary CPUID Differences Processor Recognition 20734 Rev. 3.04 September 2003 Summary CPUID Differences Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Chapter CPUID Instruction Definition This chapter contains detailed description CPUID instruction. CPUID Instruction Opcode Description Identify processor feature none EAX, EBX, ECX, none none Mnemonic CPUID Privilege: Registers Affected: Flags Affected: Exceptions Generated: 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 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 through 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 through 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. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Standard Functions Standard functions provide simple method software access information common processors. 5.2.1 Input: Function 0-Largest Standard Function Input Value Vendor Identification String 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 Software uses vendor identification string follows: identify processor processor apply AMD's definition CPUID instruction additional function calls 5.2.2 Function 1-Processor Signature Standard Feature Flags Function returns values-the Processor Signature Standard Feature Flags. Input: Output: 0000_0001h Version (family, model stepping) information 8-Bit Brand CLFLUSH APIC information1 (Reserved) Standard Feature Flags Note: Reserved AthlonTM, DuronTM, earlier processors CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition 5.2.2.1 EAX-Version (Family, Model Stepping) Information processor belongs certain family processors (for example-AMD-K6® microprocessor, Athlon, Athlon Opteronprocessors). Within that family, several models exist. Additionally, each processor stepping revision number. This function returns information about processor instruction family, model, stepping numbers register, shown Figure Extended Family Family Model Stepping Reserved, Extended Model Reserved, Bits Mnemonic Definition (Family 0Fh), provides additional family information (Family 0Fh), provides additional model information Processor/Instruction Family Processor Model Processor Stepping (revision) 31-28 Reserved 27-20 Extended Family1 19-16 Extended Model1 15-12 11-8 Reserved Family Model Stepping Note: These bits only returned Athlon64 Opteronprocessors. Athlonand Duronprocessors these bits reserved. Figure Fields Standard Function 0000_0001h Extended Function 8000_0001h extended family extended model fields Athlon Opteron processors will implemented future processor families. These fields, conjunction with existing family stepping fields, form 8-bit effective family effective model number described "AMD Processor Signature (Extended Function)" page 5.2.2.2 EBX-8-Bit Brand CFLUSH, APIC Information This function returns information regarding processor brand register, along with CLFLUSH APIC information, shown Figure Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Initial APIC_ID Reserved, CLFLUSH Size 8-Bit Brand Bits 31-24 23-16 15-8 Mnemonic Initial APIC_ID Reserved CLFLUSH Size 8-Bit Brand Description Initial local APIC physical Cache line size quadwords) Processor Brand Identification Figure Fields Standard Function 0000_0001h 5.2.2.2.1 8-Bit Brand certain models, brand 8-bit field that identifies processor with unique features specific brand. Other models have 12-bit brand "EBX-12-bit Brand page details. BIOS 8-bit 12-bit brand program processor's ASCII name string returned CPUID functions 8000_0002h, 8000_0003h, 8000_0004h. "Extended Functions 8000_0002h, 8000_0003h, 8000_0004h-Processor Name String" page details. value this field indicates either that processor reports 12-bit brand through CPUID function 8000_0001h that engineering sample. BIOS programmers should Appendix page information about procedure program processor name string that corresponds each brand value. This field Opteron processors. 5.2.2.2.2 CLFLUSH Size 8-bit CLFLUSH Size field reports size cache line flushed CLFLUSH instruction. number reported cache line size quadword (8-byte) increments. This field implemented only CLFLUSH instruction supported. Software must test CLFLUSH feature standard feature flags returned determine CLFLUSH instruction implemented. information about returned flag values, "EDX-Standard Feature Flags." This field Athlon Opteron processors. 5.2.2.2.3 Initial APIC_ID 8-bit initial APIC_ID field contains initial value processor's local APIC physical Athlon Opteron processors derive initial value local APIC physical from node Subsequent writes software local APIC register change initial APIC value returned CPUID instruction, shown Table This value continues reflect node CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table 26-24 31-27 Initial APIC_ID Definitions Name NodeID Reserved Function Node This field Athlon Opteron processors. 5.2.2.3 EDX-Standard Feature Flags 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 Athlon Opteron processors. Table page contains list currently defined standard feature flags Athlon family processors. Table page contains list currently defined standard feature flags Duron family processors. Table page contains list currently defined standard feature flags AMD-K6® processor models (See Table through Table Appendix "Register Values Returned Family Processors," family processor register definitions, including AMD-K6 processor models Reserved bits will used features they added. more information, Chapter "CPUID Instruction Overview". Table Standard Feature Flag Descriptions Athlon64 OpteronProcessors Feature1 Athlon64 OpteronProcessors Models Notes: Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte pages) Time Stamp Counter (with RDTSC disable bit) Family Processors Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC return (supported). SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Table Standard Feature Flag Descriptions Athlon64 OpteronProcessors (Continued) Feature1 Athlon64 OpteronProcessors Models 20-22 27-31 Notes: Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSENTER/SYSEXIT Instructions3 MTRR (Memory Type Range Registers) Global Paging Extension Machine Check Architecture Conditional Move Instruction (Page Attribute Table) PSE-36 (Page Size Extensions) Reserved processors CLFLUSH Instruction Reserved processors MMXInstructions FXSAVE/FXRSTOR Instructions SSE2 Reserved processors definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC return (supported). SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Standard Feature Flag Descriptions AthlonProcessors AthlonProcessor Model Model Model Model Model Model Feature1 Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte pages) Time Stamp Counter (with RDTSC disable bit) Family Processors Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSENTER/SYSEXIT3 MTRR (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 Instructions4 Reserved processors 18-22 26-31 Notes: definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC order return (supported). SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. instruction support only present when processor support BIOS. Athlonand DuronProcessor BIOS, Software, Debug Developers Guide, order# 21656. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Table Standard Feature Flag Descriptions DuronProcessors Feature1 Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte pages) Time Stamp Counter (with RDTSC disable bit) Family Processors Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSENTER/SYSEXIT3 MTRR (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 Instructions4 Reserved processors DuronProcessor Model Model Model 18-22 26-31 Notes: definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC order return (supported). SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. instruction support only present when processor support BIOS. Athlonand DuronProcessor BIOS, Software, Debug Developers Guide, order# 21656. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Standard Feature Flag Descriptions AMD-K6®-2 AMD-K6®-III Processors Notes: Feature AMD-K6®-2 Processor (Model AMD-K6®-III Processor (Model Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte pages) Time Stamp Counter (with RDTSC disable bit) Family Processors Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved AMD-K6® 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 AMD-K6 processors MMXInstructions FXSAVE/FXRSTOR Reserved AMD-K6 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 Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 5.3.1 Extended Functions Function 8000_0000h-Largest Extended Function Input Value Extended functions provide information extensions specific vendor's processor. Extended function 8000_0000h returns highest extended function input value defined processor. Software must test existence extended functions using this function. value (reported EAX) least 8000_0000h, processor supports extended functions. Input: Output: 8000_0000h 8000_0018h Reserved Reserved Reserved 5.3.2 Function 8000_0001h-Processor Version Information Extended Feature Flags Function 8000_0001h CPUID instruction returns types information about processor-version features. version information identifies specific processor providing family, model, revision (stepping). This information same that provided function This function also returns extended feature flags, which indicate presence specific features introduced processors. Input: Output: 8000_0001h Version (family, model, stepping) information 12-bit Brand (Reserved Future Features) Extended Feature Flags Note: This field only returned Athlon64 Opteronprocessors. reserved AthlonTM, DuronTM, earlier processors. 5.3.2.1 EAX-Version (Family, Model, Stepping) Information processor belongs certain family processors (for example-AMD-K6 microprocessor, Athlon, Athlon Opteron processors). Within that family, several models exist. Additionally each processor revision number stepping number. This function returns information about processor instruction family, model, stepping numbers register. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition This information identical that returned standard function diagram fields, Figure page 5.3.2.2 EBX-12-bit Brand certain models Athlon Opteron processors, brand 12-bit field that identifies processor with unique features specific brand. Other models have 8-bit brand See"8-Bit Brand page details. BIOS 8-bit 12-bit brand program processor's ASCII name string returned CPUID functions 8000_0002h, 8000_0003h, 8000_0004h. "Extended Functions 8000_0002h, 8000_0003h, 8000_0004h-Processor Name String" page details. value this field indicates either that processor reports 8-bit brand through CPUID function 0000_0001h that engineering sample. BIOS programmers should Appendix "Programming Name String Athlon64 OpteronProcessors" page information about procedure program processor name string that corresponds each Brand value. This field Athlon Opteron processors. This reserved Athlon, Duron, earlier processors. 5.3.2.3 ECX-Extended Feature Flag reserved future features. 5.3.2.4 EDX-Extended Feature Flags extended feature flags returned register. Each corresponds specific feature. indicates that feature present, indicates that feature present. Most standard feature bits from function (See "Function 1-Processor Signature Standard Feature Flags" page replicated extended feature flags, along with bits specific extensions architecture. Table list differences between standard function feature flags extended function feature flags. Table page shows complete extended feature flags Athlon Opteron processors. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Table Extended Feature Flags-AMD Athlon64 OpteronProcessors Feature1 Athlon64 OpteronProcessors Models Notes: Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte Pages) Time Stamp Counter (with RDTSC disable bit) Family Processors Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSCALL SYSRET Instructions3 MTRR (Memory Type Range Registers) Global Paging Extension Machine Check Architecture Conditional Move Instruction (Page Attribute Table) PSE-36 (Page Size Extensions) Reserved Athlon64 Opteronprocessors Reserved Athlon Opteron processors No-execute Page Protection (NX) Reserved processors definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC order return (supported). implementation SYSCALL SYSRET instructions same Athlon Opteron processors, Athlon, Duron processor AMD-K6® processor models through SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Extended Feature Flags-AMD Athlon64 OpteronProcessors (Continued) Feature1 Athlon64 OpteronProcessors Models 25-28 Notes: Extensions MMXInstruction Instructions FXSAVE/FXRSTOR Instructions Reserved processors Long Mode Capable (LM) 3DNow!Instruction Extensions 3DNow! Instructions definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC order return (supported). implementation SYSCALL SYSRET instructions same Athlon Opteron processors, Athlon, Duron processor AMD-K6® processor models through SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Table contains list currently defined feature flags Athlon processors. Table Extended Feature Flag Descriptions AthlonProcessors AthlonProcessor Model Model Model Model Model Model Feature1 Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte Pages) Time Stamp Counter (with RDTSC disable bit) Family Processors Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSCALL SYSRET Instructions3 MTRR (Memory Type Range Registers) Global Paging Extension Machine Check Architecture Conditional Move Instruction (Page Attribute Table) PSE-36 (Page Size Extensions) Reserved processors Notes: definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC order return (supported). implementation SYSCALL SYSRET instructions same Athlonprocessors, Duronprocessors, well AMD-K6® processors models SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. This value AthlonMP model processors with CPUID value greater. Although value Athlon processors model with CPUID value 661, these processors also multiprocessing capable. reserves right report other model processors which tested, supported, intended used operation multiprocessing platforms. Athlon Processor Model Revision Guide, order# 24332, processor revision information corresponding these model CPUID values. This value Athlon model model processors other Athlon model model processors, including Athlon processor mobile Athlon processor. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Extended Feature Flag Descriptions AthlonProcessors (Continued) Feature1 Multiprocessing Capable Reserved processors Extensions MMXInstruction Instructions FXSAVE/FXRSTOR Instructions Reserved processors 3DNow!Instruction Extensions 3DNow! Instructions AthlonProcessor Model Model Model Model Model Model 20-21 25-29 Notes: definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC order return (supported). implementation SYSCALL SYSRET instructions same Athlonprocessors, Duronprocessors, well AMD-K6® processors models SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. This value AthlonMP model processors with CPUID value greater. Although value Athlon processors model with CPUID value 661, these processors also multiprocessing capable. reserves right report other model processors which tested, supported, intended used operation multiprocessing platforms. Athlon Processor Model Revision Guide, order# 24332, processor revision information corresponding these model CPUID values. This value Athlon model model processors other Athlon model model processors, including Athlon processor mobile Athlon processor. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Table contains list currently defined feature flags Duron processor. Table Extended Feature Flag Descriptions DuronProcessors Feature1 Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte Pages) Time Stamp Counter (with RDTSC disable bit) Family Processors Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved processors SYSCALL SYSRET Instructions3 MTRR (Memory Type Range Registers) Global Paging Extension Machine Check Architecture Conditional Move Instruction (Page Attribute Table) PSE-36 (Page Size Extensions) Reserved processors Multiprocessing Capable DuronProcessor Model Model Model Notes: definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC order return (supported). implementation SYSCALL SYSRET instructions same Athlonproceessors Duronprocessors,as well AMD-K6® processors models SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. reserves right report Duron model model processors which tested, supported, intended used operation multiprocessing platforms. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Extended Feature Flag Descriptions DuronProcessors (Continued) Feature1 Reserved processors Extensions MMXInstruction Instructions FXSAVE/FXRSTOR Instructions Reserved processors 3DNow!Instruction Extensions 3DNow! Instructions DuronProcessor 20-21 25-29 Notes: Model Model Model definitions: Support, Support. processor contains local APIC. BIOS must enable local APIC order return (supported). implementation SYSCALL SYSRET instructions same Athlonproceessors Duronprocessors,as well AMD-K6® processors models SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. reserves right report Duron model model processors which tested, supported, intended used operation multiprocessing platforms. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Table contains list currently defined feature flags AMD-K6 processor models Table Extended Feature Flag Descriptions AMD-K6®-2 AMD-K6®-III Processors Notes: Feature AMD-K6®-2 Processor (Model AMD-K6®-III Processor (Model Floating-Point Unit Virtual Mode Extensions Debugging Extensions Page Size Extensions (4-Mbyte Pages) Time Stamp Counter (with RDTSC disable bit) Family Processors' Model-Specific Registers (with RDMSR WRMSR) (Page Address Extensions) Machine Check Exception CMPXCHG8B Instruction APIC Reserved AMD-K6 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 AMD-K6 processors Extensions MMXInstruction Instructions FXSAVE/FXRSTOR Reserved AMD-K6 processors 3DNow!Instruction Extensions 3DNow! Instructions definitions: Support, Support. SYSENTER SYSEXIT instructions have different implementations than SYSCALL SYSRET instructions. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Before Athlon Opteron processors, most standard feature bits returned function were duplicated extended feature flags returned function 8000_0001h. Starting with Athlon Opteron processors, standard feature bits will replicated extended feature flags. Extended feature bits only added extensions architecture. Table lists differences between standard function feature flags extended function feature flags. Table Standard Feature Flags Versus Extended Feature Flags Standard Feature Flag Extended Feature Flag SYSENTER SYSEXIT Instructions SYSCALL SYSRET Instructions CFLUSH Instruction Reserved Reserved Instructions SSE2 Reserved Reserved Reserved Reserved No-execute Page Protection (NX) MMXInstruction Extensions Reserved Reserved Long Mode Capable (LM) 3DNow!Instruction Extensions 3DNow! Instructions Features that compatible with extensions made other vendors will reported feature function reserved that vendor. details, "Extended Functions 8000_0009h-8000_0018h- Vendor-Specific Feature Flags" page Tables through Appendix "Register Values Returned Family Processors" page family processor register definitions. 5.3.3 Extended Functions 8000_0002h, 8000_0003h, 8000_0004h-Processor Name String Functions 8000_0002h, 8000_0003h 8000_0004h each return part processor name string EAX, EBX, ECX, registers. Input: Output: 8000_0002h, 8000_0003h, 8000_0004h Processor Name String Processor Name String Processor Name String Processor Name String These three functions four registers return ASCII string characters little-endian byte order. Function 8000_0002h returns first characters processor name. first character resides least significant byte EAX, last character this group resides most significant byte EDX. Functions 8000_0003h 8000_0004h return Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 second third group characters similar fashion. ASCII character (00h) indicates processor name string. With Athlon Opteron processor, processor name string NULs (ASCII 00h) upon reset must programmed BIOS during system initialization. Appendix "Programming Name String Athlon64 OpteronProcessors" information about program processor name string. some versions Athlon Duron processors, processor name string must reprogrammed. 5.3.4 Extended Function 8000_0005h-L1 Cache Information Athlon64, OpteronTM, AthlonTM, DuronProcessors Function 8000_0005h returns cache information. Input: Output: 8000_0005h Large Page Information 4-Kbyte Page Information Data Cache Information Instruction Cache Information Function 8000_0005h returns information about processor TLBs caches. format information returned 8000_0005h function Athlon Opteron processors same format used Athlon Duron processors, although field values differ. Table through Table page list values returned function 8000_0005h Athlon Opteron, Athlon, Duron processors. Table Format Returned Function 8000_0005h Two-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. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Format Returned Function 8000_0005h Four-Kbyte Pages Data Associativity* Entries Bits 23-16 Instruction Associativity* Bits 15-8 Entries Bits Note: Bits 31-24 "Associativity Caches TLBs" page more information. Table Format Returned Function 8000_0005h Data Cache Size (Kbytes) Associativity* Bits 23-16 Lines Bits 15-8 Line Size (bytes) Bits Note: Bits 31-24 "Associativity Caches TLBs" page more information. Table Format Returned Function 8000_0005h Instruction Cache Size (Kbytes) Associativity* Bits 23-16 Lines Bits 15-8 Line Size (bytes) Bits Note: Bits 31-24 "Associativity Caches TLBs" page more information. 5.3.5 Function 8000_0005h-L1 Cache Information AMD-K5 AMD-K6® Processors 8000_0005h Reserved Page Information Data Cache Information Instruction Cache Information Input: Output: 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. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 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) Associativity* Bits 23-16 Lines Bits 15-8 Line Size (bytes) Bits Note: Bits 31-24 "Associativity Caches TLBs" page more information. Table Format Returned Function 8000_0005h Instruction Cache Size (Kbytes) Associativity* Bits 23-16 Lines Bits 15-8 Line Size (bytes) Bits Note: Bits 31-24 "Associativity Caches TLBs" page more information. 5.3.6 Extended Function 8000_0006h-L2 Cache Information Athlon64 OpteronTM, AthlonTM, DuronProcessors Note: cache Athlon processor model model must configured prior invoking this function. Function 8000_0006h returns information about processor TLBs cache. format information returned 8000_0006h function Athlon Opteron processors same format used Athlon Duron processors, although field values differ. Tables through list values returned function 8000_0006h Athlon Opteron processors. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Input: Output: 8000_0006h Large Page Information 4-Kbyte Page Information Unified Cache Information Reserved Table Format Returned Function 8000_0006h Two-Mbyte/4-Mbyte Pages Data TLB2 Associativity1 Entries Bits 27-16 Instruction Unified Associativity1 Bits 15-12 Entries Bits 11-0 Notes: 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 Four-Kbyte Pages Data TLB2 Associativity1 Entries Bits 27-16 Instruction Unified Associativity1 Bits 15-12 Entries Bits 11-0 Notes: 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 Cache Size (Kbytes) Associativity* Bits 15-12 Lines Bits 11-8 Line Size (bytes) Bits Note: Bits 31-16 "Associativity Caches TLBs" page more information. Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 5.3.7 Function 8000_0006h-L2 Cache Information AMD-K6®-III Processor Function 8000_0006h returns information about processor's cache. Input: Output: 8000_0006h Reserved Reserved Unified Cache Information Reserved 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. 5.3.7.1 Associativity Field Definitions This section describes values returned associativity fields. 5.3.7.1.1 Associativity Caches TLBs associativity fields data cache, instruction cache, data TLB, instruction eight bits wide. Except (Reserved) (Full), number returned associativity field represents actual number ways, with range through FEh. example, returned value indicates two-way associativity returned value indicates four-way associativity. 5.3.7.1.2 Associativity Caches TLBs associativity fields cache, data TLB, instruction four bits wide. Table shows values returned these associativity fields. Table Associativity Values Caches TLBs Bits 15-12 Associativity 0000b 0001b Direct mapped CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Table Bits 15-12 Associativity Values Caches TLBs Associativity 0010b 0011b 0100b 0101b 0110b 0111b 1000b 1001b 1010b 1011b 1100b 1101b 1110b 1111b 2-way Reserved 4-way Reserved 8-way Reserved 16-way Reserved Reserved Reserved Reserved Reserved Reserved Full 5.3.8 Function 8000_0007h Advanced Power Management Feature Flags Function 8000_0007h returns information about advanced power management features supported processor. function returns power management feature flags register, shown Figure Each corresponds specific feature. indicates that feature present indicates that feature present. EAX, EBX, reserved future advanced power management features. Input 8000_0007h Output Reserved Reserved Reserved Advanced Power Management feature flags Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 Reserved, Bits 31-4 Mnemonic Reserved Definition Thermal Trip1 Voltage Control Frequency Control Temperature Sensor Value Note: This function available only Athlon64 Opteronprocessors. Figure Fields Extended Function 8000_0007h more details, BIOS Requirements PowerNow!Technology Application Note, order# 25264, BIOS Requirements PowerNow!Technology Low-Power Desktop Processors Application Note, order# 25541. 5.3.9 Function 8000_0008h Physical Address Linear Address Size Function 8000_0008h returns information about maximum physical linear address width bits) supported processor, shown Figure page width reported maximum supported mode. long mode capable processors, size reported independent whether long mode enabled. Input: Output: 8000_0008h Physical Linear Address Width Reserved Reserved Reserved Athlon Opteron processors return bits) maximum linear address (Virtual Address) size bits) maximum physical address size. CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Reserved, Virtual Address Width Physical Address Width Bits Definition Value bits) bits) 31-16 Reserved 15-8 Maximum Virtual Address Width Maximum Physical Address Width Figure Fields Extended Function 8000_0008h 5.3.10 Extended Functions Feature Flags Functions 8000_0009h through 8000_0018h reserved future expansion vendor-specific feature flags. Each function reserved specific vendor. Input: Output: 8000_0009h 8000_0018h (Reserved vendor-specific features) (Reserved vendor-specific features) (Reserved vendor-specific features) (Reserved vendor-specific features) Features that compatible with extensions made other vendors will reported feature function reserved that vendor. check certain feature across multiple vendors, software need only check vendor-specific feature flags vendor that first implemented that feature. Currently, Intel features reported function 0000_0001h features reported function 8000_0001h. Functions 8000_0009h 8000_000Ah reserved expansion Intel respectively. 8000_0009h reserved Intel feature flag expansion 8000_000Ah reserved feature flag expansion 8000_000B-8000_0018h reserved vendors determined Chapter CPUID Instruction Definition Processor Recognition 20734 Rev. 3.04 September 2003 CPUID Instruction Definition Chapter 20734 Rev. 3.04 September 2003 Processor Recognition Appendix Register Values Returned Family Processors Tables 31-36 contain values returned processors CPUID instruction. Table Athlon64 OpteronProcessor Values Values Returned Athlon64 OpteronProcessors Athlon64 Processor (Model Athlon64 OpteronProcessors (Model Function Register Function: Function: Function: 8000_0000h Notes: 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_0F4Xh XX00_08XXh1 Reserved 078B_F9FFh2 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_0F5Xh XX00_08XXh1 Reserved 078B_F9FFh2 8000_0018h Reserved Reserved Reserved 8000_0018h Reserved Reserved Reserved Function byte returns 8-bit Brand some versions Opteron (see section 5.2.2.2.1.) byte returns initial APIC which system-dependent (see section 5.2.2.2.3.). 2.The processor contains APIC, reflected this value. BIOS enables APIC, value would 078B_FBFFh. 8000_0001h returns 12-bit Brand EBX. more information, Appendix "Programming Name String Athlon64 OpteronProcessors". 8000_0002/3/4 return until name string programmed BIOS. more information, Appendix "Programming Name String Athlon64 OpteronProcessors". processor contains APIC, reflected this value. BIOS enables APIC, value E1D3_FBFFh. Appendix Register Values Returned Family Processors Processor Recognition 20734 Rev. 3.04 September 2003 Table Function Register Values Returned Athlon64 OpteronProcessors Athlon64 Processor (Model Athlon64 OpteronProcessors (Model Function: 8000_0001h Function: 8000_0002h4 Function: 8000_0003h4 Function: 8000_0004h4 Notes: 0000_0F4Xh 0000_0XXXh3 Reserved E1D3_F9FFh5 0000_0F5Xh 0000_0XXX3 Reserved E1D3_F9FFh5 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 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h Function byte returns 8-bit Brand some versions Opteron (see section 5.2.2.2.1.) byte returns initial APIC which system-dependent (see section 5.2.2.2.3.). 2.The processor contains APIC, reflected this value. BIOS enables APIC, value would 078B_FBFFh. 8000_0001h returns 12-bit Brand EBX. more information, Appendix "Programming Name String Athlon64 OpteronProcessors". 8000_0002/3/4 return until name string programmed BIOS. more information, Appendix "Programming Name String Athlon64 OpteronProcessors". processor contains APIC, reflected this value. BIOS enables APIC, value E1D3_FBFFh. Register Values Returned Family Processors Appendix 20734 Rev. 3.04 September 2003 Processor Recognition Table Function Register Values Returned Athlon64 OpteronProcessors Athlon64 Processor (Model Athlon64 OpteronProcessors (Model Function: 8000_0005h Function: 8000_0006h Function: 8000_0007h Function: 8000_0008h Function: 8000_0009h Notes: 0408_FF08h FF20_FF10h 4002_0140h 4002_0140h 0408_FF08h FF20_FF10h 4002_0140h 4002_0140h 0000_0000h 4100_4100h 0400_8140h Reserved 0000_0000h 4100_4100h 0400_8140h Reserved Reserved Reserved Reserved ****_***Fh Reserved Reserved Reserved ****_***Fh 0000_3028h Reserved Reserved Reserved 0000_3028h Reserved Reserved Reserved 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h 0000_0000h Function byte returns 8-bit Brand some versions Opteron (see section 5.2.2.2.1.) byte returns initial APIC which system-dependent (see section 5.2.2.2.3.). 2.The processor contains APIC, reflected this value. BIOS enables APIC, value would 078B_FBFFh. 8000_0001h returns 12-bit Brand EBX. more information, Appendix "Programming Name String Athlon64 OpteronProcessors". 8000_0002/3/4 return until name string programmed BIOS. more information, Appendix "Programming Name String Athlon64 OpteronProcessors". processor contains APIC, reflected this value. BIOS enables APIC, value E1D3_FBFFh. Appendix Register Values Returned Family Processors Processor Recognition 20734 Rev. 3.04 September 2003 Table Function Register Values Returned Athlon64 OpteronProcessors Athlon64 Processor (Model Athlon64 OpteronProcessors (Model Function: 8000_000Ah Function: 8000_000Bh- 8000_0018h Notes: 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 Function byte returns 8-bit Brand some versions Opteron (see section 5.2.2.2.1.) byte returns initial APIC which system-dependent (see section 5.2.2.2.3.). 2.The processor contains APIC, reflected this value. BIOS enables APIC, value would 078B_FBFFh. 8000_0001h returns 12-bit Brand EBX. more information, Appendix "Programming Name String Athlon64 OpteronProcessors". 8000_0002/3/4 return until name string programmed BIOS. more information, Appendix "Programming Name String Athlon64 OpteronProcessors". processor contains APIC, reflected this value. BIOS enables APIC, value E1D3_FBFFh. Register Values Returned Family Processors Appendix 20734 Rev. 3.04 September 2003 Processor Recognition Table Function AthlonProcessor DuronProcessor Values Values Returned Athlonand DuronProcessors Models Higher Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_066Xh Reserved Reserved 0183_F9FFh2 Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_067Xh Reserved Reserved 0183_F9FFh2 Processor (Model 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_068Xh Reserved Reserved 0183_F9FFh2 Processor (Model 10)1 0000_0001h 6874_7541h 444D_4163h 6974_6E65h 0000_068Xh Reserved Reserved 0183_F9FFh2 Register Function: Function: Function: 8000_0000h Function: 8000_0001h Notes: 8000_0008h Reserved Reserved Reserved 8000_0008h Reserved Reserved Reserved 8000_0008h Reserved Reserved Reserved 8000_0008h Reserved Reserved Reserved 0000_076Xh Reserved Reserved C1C3_F9FFh3 0000_077Xh Reserved Reserved C1C3_F9FFh3 0000_078Xh Reserved Reserved C1C3_F9FFh3 0000_078Xh Reserved Reserved C1C3_F9FFh3 returned values Athlonand Duronprocessors models higher non-mobile processors, including Athlon Athlon Duron processors. processors models higher contain APIC, reflected this value. BIOS enables APIC, value would 0183_FBFFh. processors models higher contain APIC, reflected this value. BIOS enables APIC, value would C1C3_FBFFh. This value also varies based setting Table page Table page details. cache size associativity processors product specific. Athlon processor model cache size 512-Kbyte with 16-way associativity. Athlon processor models have cache size 256-Kbyte with 16-way associativity. Duron processor models greater have cache size 64-Kbyte with 16-way associativity. Appendix Register Values Returned Family Processors Processor Recognition 20734 Rev. 3.04 September 2003 Table Function Values Returned Athlonand DuronProcessors Models Higher (Continued) Processor (Model Processor (Model Processor (Model Processor (Model 10)1 Register Function: 8000_0002h Function: 8000_0003h Function: 8000_0004h Function: 8000_0005h Notes: 2044_4D41h 6C68_7441h 7428_6E6Fh 5020_296Dh 2044_4D41h 6F72_7544h 6D74_286Eh 7250_2029h 2044_4D41h 6C68_7441h 7428_6E6Fh 5020_296Dh 2044_4D41h 6C68_7441h 7428_6E6Fh 5020_296Dh 6563_6F72h 726F_7373h 0000_0000h 0000_0000h 7365_636Fh 0072_6F73h 0000_0000h 0000_0000h 6563_6F72h 726F_7373h 0000_0000h 0000_0000h 6563_6F72h 726F_7373h 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 0408_FF08h FF20_FF10h 4002_0140h 4002_0140h 0408_FF08h FF20_FF10h 4002_0140h 4002_0140h 0408_FF08h FF20_FF10h 4002_0140h 4002_0140h 0408_FF08h FF20_FF10h 4002_0140h 4002_0140h returned values Athlonand Duronprocessors models higher non-mobile processors, including Athlon Athlon Duron processors. processors models higher contain APIC, reflected this value. BIOS enables APIC, value would 0183_FBFFh. processors models higher contain APIC, reflected this value. BIOS enables APIC, value would C1C3_FBFFh. This value also varies based setting Table page Table page details. cache size associativity processors product specific. Athlon processor model cache size 512-Kbyte with 16-way associativity. Athlon processor models have cache size 256-Kbyte with 16-way associativity. Duron processor models greater have cache size 64-Kbyte with 16-way associativity. Register Values Returned Family Processors Appendix 20734 Rev. 3.04 September 2003 Processor Recognition Table Function Values Returned Athlonand DuronProcessors Models Higher (Continued) Processor (Model Processor (Model Processor (Model Processor (Model 10)1 Register Function: 8000_0006h Function: 8000_0007h Function: 8000_0008h Notes: 0000_0000h 4100_4100h ****_*140h4 Reserved 0000_0000h 4100_4100h ****_*140h4 Reserved 0000_0000h 4100_4100h ****_*1 Other recent searchesTK15467S - TK15467S TK15467S Datasheet SX4617-1 - SX4617-1 SX4617-1 Datasheet NJU7704 - NJU7704 NJU7704 Datasheet NJU7705 - NJU7705 NJU7705 Datasheet LM342 - LM342 LM342 Datasheet IMP1232LP - IMP1232LP IMP1232LP Datasheet IMP1232LPS - IMP1232LPS IMP1232LPS Datasheet CPC1727 - CPC1727 CPC1727 Datasheet CGRM4001 - CGRM4001 CGRM4001 Datasheet CGRM4007 - CGRM4007 CGRM4007 Datasheet 501503b00000 - 501503b00000 501503b00000 Datasheet
Privacy Policy | Disclaimer |