معرف وحدة المعالجة المركزية

في بنية x86 ، تُعدّ تعليمة CPUID (المُعرّفة برمز CPUIDالعملية ) تعليمة تكميلية للمعالج (اسمها مُشتق من " تحديد وحدة المعالجة المركزية ")، تسمح للبرامج باكتشاف تفاصيل المعالج. وقد قدمتها شركة إنتل عام 1993 مع إطلاق معالجات بنتيوم ومعالجات 486 المتأخرة . [ 1 ]

يمكن للبرنامج استخدام ذلك CPUIDلتحديد نوع المعالج وما إذا كانت ميزات مثل MMX / SSE مطبقة.

تاريخ

قبل إتاحة هذه CPUIDالتعليمات للجميع، كان المبرمجون يكتبون شفرة آلية معقدة تستغل اختلافات طفيفة في سلوك وحدة المعالجة المركزية لتحديد نوع المعالج وطرازه. [ 2 ] [ 3 ] [ 4 ] [ 5 ] مع ظهور معالج 80386، أشارت تعليمات EDX عند إعادة التشغيل إلى رقم المراجعة، ولكن لم يكن بالإمكان قراءة هذه القيمة إلا بعد إعادة التشغيل، ولم تكن هناك طريقة قياسية للتطبيقات لقراءتها.

خارج عائلة x86، لا يزال يتعين على المطورين في الغالب استخدام عمليات غامضة (تتضمن توقيت التعليمات أو مشغلات أعطال وحدة المعالجة المركزية) لتحديد الاختلافات الموجودة في تصميم وحدة المعالجة المركزية.

على سبيل المثال، في سلسلة معالجات موتورولا 68000 - التي لم تكن تحتوي على CPUIDأي نوع من التعليمات - تطلبت بعض التعليمات المحددة صلاحيات إضافية. ويمكن استخدام هذه الصلاحيات للتمييز بين أفراد عائلة المعالجات المختلفة. في معالج موتورولا 68010، أصبحت تعليمة MOVE from SR ذات صلاحيات إضافية. ولأن معالج 68000 كان يوفر تعليمة MOVE from SR بدون صلاحيات إضافية، فقد أمكن التمييز بين المعالجين المختلفين من خلال حدوث خطأ في المعالج.

على الرغم من أن CPUIDالتعليمات خاصة ببنية x86، إلا أن البنى الأخرى (مثل ARM) غالبًا ما توفر سجلات على الشريحة يمكن قراءتها بطرق محددة للحصول على نفس أنواع المعلومات التي توفرها CPUIDتعليمات x86.

استدعاء CPUID

رمز العملية CPUIDهو 0F A2. يمكن اكتشاف دعم المعالج للتعليمات عن طريق تبديل علامة المعرف (البت 21) بنجاح في سجل EFLAGS .

في لغة التجميع ، CPUIDلا تتطلب هذه التعليمة أي معلمات، إذ CPUIDتستخدم ضمنيًا سجل EAX لتحديد الفئة الرئيسية للمعلومات المُعادة. في مصطلحات إنتل الحديثة، يُطلق على هذا اسم "ورقة CPUID". CPUIDيجب استدعاء هذه التعليمة EAX = 0أولًا، لأن ذلك سيخزن في سجل EAX أعلى معلمة استدعاء (ورقة) EAX التي يُنفذها المعالج.

للحصول على معلومات إضافية عن الوظيفة، CPUIDيجب استدعاء الدالة مع ضبط البت الأكثر أهمية في سجل EAX. لتحديد أعلى قيمة لمعامل استدعاء الوظيفة الإضافية، استدعِ الدالة CPUIDمع EAX = 80000000h.

لا يمكن الوصول إلى أجزاء CPUID التي يزيد حجمها عن 3 ويقل عن 80000000 إلا عندما تكون قيمة البت 22 في سجلات الطراز IA32_MISC_ENABLE.BOOT_NT4 تساوي 0 (وهي القيمة الافتراضية). وكما يوحي الاسم، لم يكن نظام التشغيل Windows NT 4.0 يعمل بشكل صحيح حتى إصدار SP6 إلا إذا تم ضبط هذا البت، [ 6 ] ولكن الإصدارات الأحدث من Windows لا تحتاج إليه، لذا يُفترض أن الأجزاء الأساسية التي يزيد حجمها عن 4 مرئية على أنظمة Windows الحالية. اعتبارًا من أبريل 2024، تصل مدة الإجازات الأساسية الصالحة إلى 23 ساعة، ولكن المعلومات التي يتم إرجاعها بواسطة بعض الإجازات لا يتم الكشف عنها في الوثائق المتاحة للجمهور، أي أنها "محجوزة".

بعض الأوراق المضافة حديثًا لها أيضًا أوراق فرعية، والتي يتم اختيارها عبر سجل ECX قبل الاتصال CPUID.

EAX=0: أعلى معلمة وظيفية ومعرف الشركة المصنعة

يُعيد هذا الأمر سلسلة تعريف الشركة المصنعة لوحدة المعالجة المركزية - وهي سلسلة ASCII مكونة من اثني عشر حرفًا مخزنة في EBX وEDX وECX (بهذا الترتيب). ويُعاد أعلى مُعامل استدعاء أساسي (أكبر قيمة يمكن ضبط EAX عليها قبل الاستدعاء ) في EAX. CPUID

فيما يلي قائمة بالمعالجات وأعلى وظيفة تم تنفيذها.

أعلى معلمات الوظيفة
المعالجاتأساسيممتد
معالج Intel 486 السابقلم يتم تنفيذ CPUID
لاحقًا Intel 486 و Pentium0x01لم يتم التنفيذ
بنتيوم برو ، بنتيوم 2 ، وسيليرون0x02لم يتم التنفيذ
بنتيوم 30x03لم يتم التنفيذ
بنتيوم 40x020x8000 0004
زيون0x020x8000 0004
بنتيوم إم0x020x8000 0004
معالج بنتيوم 4 بتقنية تعدد الخيوط المتزامنة0x050x8000 0008
بنتيوم دي (8xx)0x050x8000 0008
بنتيوم دي (9xx)0x060x8000 0008
الثنائي الأساسي0x0A0x8000 0008
Core 2 Duo0x0A0x8000 0008
معالجات Xeon 3000 و 5100 و 5200 و 5300 و 5400 ( سلسلة 5000 )0x0A0x8000 0008
سلسلة Core 2 Duo 80000x0D0x8000 0008
سلسلة Xeon 5200 و 54000x0A0x8000 0008
الذرة0x0A0x8000 0008
المعالجات القائمة على معمارية Nehalem0x0B0x8000 0008
معالجات Ivy Bridge0x0D0x8000 0008
معالجات مبنية على معمارية Skylake (تردد المعالج الأساسي والأقصى؛ تردد مرجعي للناقل)0x160x8000 0008
تعداد سمات مورد النظام على شريحة - الورقة الرئيسية0x170x8000 0008
معالجات مبنية على Meteor Lake0x230x8000 0008

فيما يلي سلاسل تعريفية تستخدمها المعالجات الفعلية، مرتبة حسب تاريخ ظهورها:

فيما يلي سلاسل تعريفية يُرجح أنها مزيفة:

فيما يلي سلاسل تعريفية تستخدمها أنوية المعالجات البرمجية مفتوحة المصدر :

  • "GenuineAO486"  معالج ao486 (قديم) [ 12 ] [ 13 ]
  • "MiSTer AO486"  معالج ao486 (جديد) [ 14 ] [ 13 ]
  • "GenuineIntel"  النواة v586 [ 15 ] (هذا مطابق لسلسلة معرف Intel)

فيما يلي سلاسل المعرفات التي تستخدمها الأجهزة الافتراضية:

  • (مجموعة متنوعة من السلاسل) – معالج MCST Elbrus e2k عند تشغيل برنامج الترجمة الثنائية الديناميكية [ 16 ] 
    • "E2K MACHINE "– السلاسل غير متناسقة – بعضها (وليس كلها) تشفر نوع اللوحة الأم
    • "E8C-SWTX    "– من غير المعروف ما إذا كانت لوحات مفاتيح DBT SW تحتوي على مسافات لاحقة أو أحرف \0 لاحقة
    • "EL2S4       "
    • "Elbrus-MCST "
    • "MBE1C-PC    "
    • "MBE8C-PC v.2"
    • "MONOCUB     "
  • "ConnectixCPU"  برنامج Connectix Virtual PC (الإصدار 6 وما دونه) [ 17 ] [ 18 ]
  • "Virtual CPU "  مايكروسوفت فيرتشوال بي سي 7؛ [ 18 ] مايكروسوفت x86-to-ARM (32 بت x86) [ 19 ]
  • "AuthenticAMD"  مايكروسوفت x86-to-ARM (64 بت x86) [ 19 ]
  • "GenuineIntel" أبل روزيتا 2 [ 20 ]
  • "Insignia 586"  Insignia RealPC [ 21 ] [ 22 ] و SoftWindows 98 [ 23 ]
  • "Compaq FX!32"  Compaq FX!32 (محاكي x86 لمعالجات DEC Alpha ) [ 24 ]
  • "Neko Project"  مشروع نيكو الثاني ( محاكي PC-98 ) (يستخدم عندما يتم ضبط وحدة المعالجة المركزية المراد محاكاتها على "معالج نيكو الثاني") [ 25 ] [ 26 ]

على سبيل المثال، في GenuineIntelالمعالج، تكون القيم المُعادة في EBX هي 0x756e6547، وEDX هي ، 0x49656e69وECX هي 0x6c65746e. يعرض مثال الكود التالي سلسلة مُعرّف المورّد بالإضافة إلى أعلى مُعامل استدعاء تُنفّذه وحدة المعالجة المركزية.

.intel_syntax noprefix.نص.m0: .string "CPUID: %x\n".m1: .string "أكبر عدد من الدوال الأساسية التي تم تنفيذها: %i\n".m2: .string "معرف المورد: %s\n".globl mainرئيسي:اضغط على R12mov eax , 1sub rsp , 16cpuidlea rdi , .m0 [ rip ]mov esi , eaxاستدعاء دالة printfxor eax , eaxcpuidlea rdi , .m1 [ rip ]mov esi , eaxmov r12d , edxmov ebp , ecxاستدعاء دالة printfmov 3 [ rsp ], ebxlea rsi , 3 [ rsp ]lea rdi , .m2 [ rip ]mov 7 [ rsp ], r12dmov 11 [ rsp ], ebpاستدعاء دالة printfأضف rsp ، 16بوب آر 12ريت.section .note.GNU - stack , "" , @ progbits

في بعض المعالجات، يُمكن تعديل سلسلة مُعرّف المُصنِّع (MSR) المُبلغ عنها بواسطة CPUID.(EAX=0) عن طريق كتابة سلسلة مُعرّف جديدة في سجلات خاصة بالطراز (MSRs ) باستخدام WRMSRالتعليمة. وقد استُخدمت هذه الطريقة في معالجات غير تابعة لشركة إنتل لتمكين ميزات وتحسينات مُعطَّلة برمجياً لوحدات المعالجة المركزية التي لا تُعيد GenuineIntelسلسلة المُعرّف. [ 27 ] ومن المعالجات المعروفة بامتلاكها لهذه السجلات:

معالجات مزودة بمعرف الشركة المصنعة MSRs
المعالجMSRs
برنامج IDT WinChip108h-109h[ 28 ]
عبر C3 ، C71108h-1109h[ 29 ]
VIA Nano1206h-1207h[ 30 ]
ترانسميتا كروزو ، إيفيسيون80860001h-80860003h[ 31 ] [ 32 ]
AMD Geode GX، LX3000h-3001h[ 33 ]
DM&P Vortex86 EX252444300h-52444301h[ 34 ]

EAX=1: معلومات المعالج وبتات الميزات

يُعيد هذا معلومات خطوة المعالج ، وطرازه، واسمه الرمزي ، وعائلته في السجل EAX (يُسمى أيضًا توقيع المعالج)، وعلامات الميزات في السجلين EDX وECX، ومعلومات إضافية عن الميزات في السجل EBX. [ 35 ]

CPUID EAX=1: معلومات إصدار المعالج في EAX
إي إيه إكس
313029282726252423222120191817161514131211109876543210
محجوزهوية العائلة الممتدةمعرف النموذج الموسعمحجوزنوع المعالجهوية العائلةنموذجمعرف الخطوة
  • رقم تعريف الخطوة هو رقم مراجعة المنتج الذي تم تعيينه بسبب تصحيح الأخطاء أو التغييرات الأخرى.
  • يُستخلص نموذج المعالج الفعلي من حقول النموذج، ومعرّف النموذج الموسّع، ومعرّف العائلة. إذا كان حقل معرّف العائلة يساوي 6 أو 15، فإن النموذج يساوي مجموع حقل معرّف النموذج الموسّع مُزاحًا إلى اليسار بمقدار 4 بتات وحقل النموذج. وإلا، فإن النموذج يساوي قيمة حقل النموذج.
  • تُستمد عائلة المعالج الفعلية من حقلي "معرّف العائلة" و"معرّف العائلة الموسّع". إذا كان حقل "معرّف العائلة" يساوي 15، فإن العائلة تساوي مجموع حقلي "معرّف العائلة الموسّع" و"معرّف العائلة". وإلا، فإن العائلة تساوي قيمة حقل "معرّف العائلة".
  • يُوضح الجدول أدناه معنى حقل نوع المعالج.
نوع المعالج
يكتبالتشفير بالثنائي
معالج من الشركة المصنعة للمعدات الأصلية ( OEM )٠٠
معالج Intel Overdrive01
معالج مزدوج (ينطبق على معالجات Intel P5 Pentium فقط) [ 36 ]10
القيمة المحجوزة11

اعتبارًا من أكتوبر 2023، تم التعرف على معرفات عائلة معالجات x86 التالية: [ 37 ]

CPUID EAX=1: معرفات عائلة المعالج
هوية العائلة + هوية العائلة الممتدةإنتلAMDآخر
عرافةديسمبر
0h0غير متوفرغير متوفرغير متوفر
1h1غير متوفرغير متوفرغير متوفر
2h2غير متوفرغير متوفرغير متوفر
3h3[ أ ]غير متوفرغير متوفر
4h4486486 ، [ 38 ] 5x86 ، Élan SC4xx/5xx [ 39 ]Cyrix 5x86 ، [ 40 ] Cyrix MediaGX ، [ 41 ] UMC Green CPU ، [ 4 ] MCST Elbrus (معظم الطرازات)، [ 16 ] MiSTer ao486 [ 42 ]
5h5بنتيوم ، بنتيوم إم إم إكس ، كوارك إكس 1000K5 ، K6Cyrix 6x86 ، Cyrix MediaGXm ، [ 41 ] Geode (باستثناء NX)، NexGen Nx586، [ 4 ] IDT WinChip ، IDT WinChip 2، IDT WinChip 3، Transmeta Crusoe ، Rise mP6 ، SiS 550، DM&P Vortex86 (الإصدار المبكر)، [ 43 ] RDC IAD 100، MCST Elbrus-8C2 [ 16 ]
6h6بنتيوم برو ، بنتيوم 2 ، بنتيوم 3 ، بنتيوم إم ، إنتل كور (جميع الإصدارات)، إنتل أتوم (جميع الإصدارات)، زيون (باستثناء إصدارات نتبرست )، زيون فاي (باستثناء KNC)K7: أثلون ، أثلون إكس بيCyrix 6x86 MX/MII، VIA C3 ، VIA C7 ، VIA Nano ، DM&P Vortex86 (DX3،EX2 [ 44 ]Zhaoxin ZX-A/B/C/C+، ( Centaur CNS [ 45 ]MCST Elbrus-12C/16C/2C3 [ 16 ]
7h7إيتانيوم (في وضع IA-32)غير متوفرتشاوكسين كايشيان، تشاوكسين كايشينغ
8h8[ ب ]غير متوفرغير متوفر
9h9غير متوفرغير متوفرغير متوفر
0Ah10غير متوفرغير متوفرغير متوفر
0Bh11زيون فاي (ركن الفرسان) [ 47 ]غير متوفرغير متوفر
0Ch12غير متوفرغير متوفرغير متوفر
0Dh13غير متوفرغير متوفرغير متوفر
0Eh14غير متوفرغير متوفرغير متوفر
0Fh15نت بيرست (بنتيوم 4)K8/Hammer ( Athlon 64 )ترانسميتا إيفيسيون
10h16غير متوفرK10 : فينومغير متوفر
11h17إيتانيوم 2 [ 48 ] (في وضع IA-32)توريون إكس 2غير متوفر
12h18معالجات Intel Core (Nova Lake وما فوق) [ 49 ]يانوغير متوفر
13h19زيون (بانثر كوف وما فوق) [ 50 ]غير متوفرغير متوفر
14h20غير متوفرالوشقغير متوفر
15h21غير متوفرالجرافة ، آلة دق الركائز ، المدحلة البخارية ، الحفارةغير متوفر
16h22غير متوفرجاكوار ، بوماغير متوفر
17h23غير متوفرزين 1 ، زين 2غير متوفر
18h24غير متوفرهيجون ديانا
19h25غير متوفرزين 3 ، زين 4غير متوفر
1Ah26غير متوفرزين 5 ، ( زين 6 )غير متوفر
  1. لا يدعم معالجi386 التعليماتCPUID - ولكنه مع ذلك يقوم بإرجاع معرف العائلة3hفي قيمة إعادة التعيين لـ EDX.
  2. تم الإبلاغ عن تجنب استخدام معرف العائلة8hعمدًا لعائلة معالجات Pentium 4 بسبب عدم التوافق مع نظام التشغيل Windows NT 4.0. [ 46 ]
CPUID EAX=1: معلومات إضافية في EBX
أجزاءEBXصالح
7:0مؤشر العلامة التجارية
15:8CLFLUSHحجم السطر (القيمة * 8 = حجم سطر ذاكرة التخزين المؤقت بالبايت)إذا CLFLUSHتم تعيين علامة الميزة.

CPUID.01.EDX.CLFSH [bit 19]= 1

23:16الحد الأقصى لعدد المعرفات القابلة للعنونة للمعالجات المنطقية في هذه الحزمة المادية؛

أقرب عدد صحيح من قوى العدد 2 لا يقل عن هذه القيمة هو عدد معرّفات APIC الأولية الفريدة المحجوزة لعنونة المعالجات المنطقية المختلفة في حزمة مادية. [ أ ]

الاستخدام السابق: عدد المعالجات المنطقية لكل معالج فعلي؛ اثنان لمعالج بنتيوم 4 بتقنية Hyper-Threading. [ 53 ]

إذا تم تعيين علامة ميزة Hyper-threading .

CPUID.01.EDX.HTT [البت 28] = 1

31:24معرّف APIC المحلي: يُستخدم معرّف APIC الأولي لتحديد المعالج المنطقي المُنفِّذ. [ ب ]معالجات بنتيوم 4 والمعالجات اللاحقة.
  1. في وحدات المعالجة المركزية التي تحتوي على أكثر من 128 معالجًا منطقيًا في حزمة واحدة (مثل Intel Xeon Phi 7290 [ 51 ] و AMD Threadripper Pro 7995WX [ 52 ] ) يتم تعيين القيمة في البت 23:16 إلى قيمة غير قوة للعدد 2.
  2. يمكن أيضًا تحديد مُعرّف APIC المحلي عبر ورقة cpuid 0Bh (CPUID.0Bh.EDX[x2APIC-ID]). في وحدات المعالجة المركزية التي تحتوي على أكثر من 256 معالجًا منطقيًا في حزمة واحدة (مثل Xeon Phi 7290)، يجب استخدام ورقة 0Bh لأن مُعرّف APIC لا يتسع في 8 بتات.

معلومات المعالج وعلامات الميزات خاصة بالشركة المصنعة، ولكن عادةً ما يتم استخدام قيم Intel من قبل الشركات المصنعة الأخرى من أجل التوافق.

CPUID EAX=1: معلومات الميزات في EDX و ECX
قليلEDXECX [ أ ]قليل
قصيرميزةقصيرميزة
0وحدة معالجة مركزيةوحدة معالجة الفاصلة العائمة x87 المدمجةsse3SSE3 ( تعليمات بريسكوت الجديدة - PNI)0
1vmeامتدادات وضع 8086 الافتراضي (مثل VIF وVIP وPVI)pclmulqdqPCLMULQDQ(تعليمات الضرب بدون حمل)1
2ديملحقات تصحيح الأخطاء ( CR4 بت 3)dtes64مخزن تصحيح الأخطاء 64 بت (بت edx 21)2
3pseامتداد حجم الصفحة (صفحات بحجم 4  ميجابايت)شاشةMONITORوالتعليمات MWAIT( PNI )3
4tscRDTSCعداد الطوابع الزمنية والتعليماتds-cplمخزن تصحيح الأخطاء المؤهل CPL4
5msrسجلات وتعليمات RDMSRخاصة بالنموذجWRMSRvmxملحقات الآلة الافتراضية5
6paeامتداد العنوان الفعليsmxإضافات الوضع الآمن ( لاغراند ) ( GETSECتعليمات)6
7mceاستثناء فحص الجهازESTخطوة السرعة المحسّنة7
8cx8 [ b ]CMPXCHG8Bتعليمات ( المقارنة والتبديل )tm2جهاز مراقبة الحرارة 28
9apic [ c ]وحدة تحكم متقدمة قابلة للبرمجة للمقاطعات مدمجةssse3تعليمات إضافية خاصة بـ SSE39
10(mtrr) [ d ](محجوز)معرف cnxtمعرف السياق L110
11sep [ e ]SYSENTERوتعليمات سريعة SYSEXITلإجراء المكالمات النظاميةsdbgواجهة تصحيح الأخطاء السيليكونية11
12مترنطاق أنواع الذاكرة [ f ]fmaالضرب والجمع المدمج (FMA3)12
13صفحةتفعيل بت الصفحة العامة في CR4cx16CMPXCHG16Bالتعليمات [ g ]13
14إم سي إيهبنية فحص الآلةxtprيمكن تعطيل إرسال رسائل أولوية المهام14
15cmovالحركة المشروطة :CMOV ، FCMOVوالتعليمات [FCOMI ح ]pdcmإمكانية مراقبة الأداء وتصحيح الأخطاء15
16باتجدول سمات الصفحة(محجوز) [ i ]16
17pse-36امتداد حجم الصفحة 36 بتمرض عنق الرحممعرفات سياق العملية ( CR4 بت 17)17
18شبكة بلاي ستيشنرقم المعالج التسلسلي مدعوم ومفعل [ j ]دي سي إيهالوصول المباشر إلى ذاكرة التخزين المؤقت لعمليات الكتابة DMA [ 64 ] [ 65 ]18
19سمك القاروصCLFLUSHتعليمات مسح سطر ذاكرة التخزين المؤقت ( SSE2 )sse4.1تعليمات SSE4.119
20(nx)بت عدم التنفيذ (NX) ( خاص بمعالجات إيتانيوم فقط، محجوز في المعالجات الأخرى) [ 66 ] [ k ]sse4.2تعليمات SSE4.220
21dsمخزن التصحيح: حفظ تتبع القفزات المنفذةx2apicx2APIC (APIC المحسّن)21
22ACPIنظام التحكم الحراري المدمج في أجهزة قياس الحرارة المنصهرة (MSRs) لأنظمة ACPIموفبيMOVBEالتعليمات ( الترتيب الكبير للنهاية )22
23mmxتعليمات MMX (64 بت SIMD)نسبة السكانPOPCNTتعليمات23
24fxsrFXSAVE، FXRSTORالتعليمات، CR4 بت 9الموعد النهائي لـ tscتُنفذ APIC عملية لمرة واحدة باستخدام قيمة مهلة TSC24
25sseتعليمات امتدادات SIMD المتدفقة (SSE) (المعروفة أيضًا باسم " تعليمات Katmai الجديدة"؛ SIMD 128 بت)aes-niمجموعة تعليمات AES25
26sse2تعليمات SSE2xsaveحفظ/استعادة حالة المعالج القابلة للتوسيع: XSAVE، XRSTOR، XSETBV، XGETBVالتعليمات26
27ssتُنفذ ذاكرة التخزين المؤقت لوحدة المعالجة المركزية خاصية التجسس الذاتيosxsaveXSAVEتم تمكينه بواسطة نظام التشغيل27
28httحقل معرفات APIC الأقصى المحجوز صالح [ l ]avxامتدادات المتجهات المتقدمة (SIMD 256 بت)28
29يقوم جهاز مراقبة الحرارة بضبط درجة الحرارة تلقائيًاإف 16 سيتعليمات تحويل الفاصلة العائمة من وإلى تنسيق FP1629
30ia64معالج IA64 يحاكي x86 [ 66 ]rdrndRDRANDميزة (مولد الأرقام العشوائية على الشريحة)30
31pbeإمكانية التنبيه في وضع الإيقاف المؤقت (PBE# pin)برنامج إدارة الأجهزة الافتراضيةوجود برنامج إدارة الأجهزة الافتراضية (دائمًا ما تكون قيمته صفرًا على وحدات المعالجة المركزية الفعلية) [ 69 ] [ 70 ] [ 71 ]31
  1. في بعض المعالجات القديمة، قد يؤدي تنفيذ البرنامج باستخدام فهرس طرفي (EAX) أكبر من صفر إلى ترك قيمتي EBX وECX دون تغيير، محتفظتين بقيمهما القديمة. لذا ، يُنصح بتصفير قيمتي EBX وECX قبل تنفيذ البرنامجباستخدام فهرس طرفي يساوي 1.CPUIDCPUID

    تشمل المعالجات التي لوحظ أنها تُظهر هذا السلوك Cyrix MII [ 54 ] و IDT WinChip 2. [ 55 ]

  2. في معالجات IDT وTransmeta وRise (معرفات الموردينCentaurHaulsو)،تكون التعليمات مدعومة دائمًا، ولكن قد لا يتم ضبط بت الميزة الخاص بها. هذا حل بديل لخلل في نظام التشغيل Windows NTGenuineTMx86. [ 56 ]RiseRiseRiseCMPXCHG8B
  3. في معالجات AMD K5 المبكرة (AuthenticAMDالعائلة 5، الطراز 0) فقط، كانت البتة 9 من EDX تشير إلى دعم PGE. تم نقلها إلى البتة 13 بدءًا من طراز K5 1 فصاعدًا. [ 57 ]
  4. Intel AP-485، المراجعات 006 [ 58 ] إلى 008، تسرد CPUID.(EAX=1):EDX[bit 10] باسم "MTRR" (على الرغم من وصفها بأنها "محجوزة" / "لا تعتمد على قيمتها") - تمت إزالة هذا الاسم في المراجعات اللاحقة من AP-485، وتم إدراج البت على أنه محجوز بدون اسم منذ ذلك الحين.
  5. في معالجات Pentium Pro (GenuineIntelالعائلة 6، الطراز 1) فقط، يكون البت 11 في EDX غير صالح - يتم تعيين البت، ولكنSYSENTERالتعليماتSYSEXITغير مدعومة على Pentium Pro. [ 59 ]
  6. بالنسبة لسجلات MTRR، لا تتوفر معلومات إضافية عن الميزات عبر CPUID، بل عبر سجل MSR للقراءة فقطMTRRCAP(MSR0FEh). يتميز سجل MSR هذا بالتخطيط التالي:
    أجزاءالاستخدام
    7:0عدد معدلات MTRR ذات النطاق المتغير
    8يدعم نطاق MTRR الثابت
    9(محجوز)
    10يدعم نوع الذاكرة Write-Combining
    11يدعم نظام إدارة النطاقات (SMRR)
    12يدعم PRMRR (سجل نطاق الذاكرة المحجوزة للمعالج، وهو جزء من SGX ).
    13يدعم SMRR2 [ 60 ]
    14يدعم قفل SMRR
    15تم دعم SEAMRR (سجل نطاق وضع التحكيم الآمن، جزء من TDX ) [ 61 ]
    63:16(محجوز)
  7. تحتوي بعض معالجات Intel 64 المبكرة جدًا علىCMPXCHG16Bبت الميزة مضبوطًا على الرغم من أنها لا تدعم التعليمات - ينطبق هذا علىرقائقGenuineIntelFamily Model 3 Stepping 4 (90nm Pentium 4) فقط. [ 62 ]0Fh
  8. FCMOV والتعليماتFCOMIمتاحة فقط في حالة وجود وحدة معالجة الفاصلة العائمة x87 المدمجة (يشار إليها بواسطة بت EDX 0).
  9. يُدرج البت 16 من ECX على أنه "محجوز" في وثائق Intel وAMD العامة، ولا يتم تعيينه في أي معالج معروف. مع ذلك، تشير التقارير إلى أن بعض إصدارات نواة Windows Vista تتحقق من هذا البت [ 63 ] - إذا تم تعيينه، فسيتعرف عليه Vista كميزة "قنوات المعالج".
  10. في معالجات Intel و Transmeta [ 31 ] التي تدعم PSN (الرقم التسلسلي للمعالج)، يمكن تعطيل PSN عن طريق ضبط البت 21 من MSR119h(BBL_CR_CTL) إلى 1. سيؤدي القيام بذلك إلى إزالة الورقة 3 وجعل CPUID.(EAX=1):EDX[bit 18] يُرجع 0.
  11. في معالجات x86 غير Itanium،يتم الإشارة إلى دعم بت عدم التنفيذ في CPUID.(EAX=8000_0001):EDX[bit 20] بدلاً من ذلك.
  12. يشير البت 28 من EDX، إذا تم ضبطه، إلى أن البتات من 23 إلى 16 من CPUID.(EAX=1):EBX صالحة. إذا لم يتم ضبط هذا البت، فإن حزمة وحدة المعالجة المركزية تحتوي على معالج منطقي واحد فقط.

    في الوثائق القديمة، يُشار إلى هذا الجزء غالبًا باسم " تقنية تعدد الخيوط المتزامنة " [ 67 ] ، ومع ذلك، فبينما يُعد هذا الخيار شرطًا أساسيًا لدعم تقنية تعدد الخيوط المتزامنة، إلا أنه لا يُشير بحد ذاته إلى دعم هذه التقنية، وقد تم ضبطه على العديد من وحدات المعالجة المركزية التي لا تحتوي على أي شكل من أشكال تقنية تعدد الخيوط. [ 68 ]

يجب إخفاء الحقول المحجوزة قبل استخدامها لأغراض تحديد هوية المعالج.

EAX=2: معلومات وصف ذاكرة التخزين المؤقت وذاكرة الترجمة السريعة

هذا يُعيد قائمة من الواصفات التي تشير إلى إمكانيات ذاكرة التخزين المؤقت وذاكرة الترجمة السريعة في سجلات EAX وEBX وECX وEDX.

في المعالجات التي تدعم هذه الورقة، CPUIDسيؤدي استدعاء الدالة مع EAX=2 إلى تعيين البايت السفلي من EAX إلى 01h[ a ] ، وملء البايتات الـ 15 المتبقية  من EAX/EBX/ECX/EDX بـ 15 واصفًا، كل منها بايت واحد. توفر هذه الواصفات معلومات حول ذاكرة التخزين المؤقت للمعالج، وجداول ترجمة العناوين (TLBs)، وجلب البيانات المسبق. عادةً ما تكون ذاكرة تخزين مؤقت واحدة أو جدول ترجمة عناوين واحد لكل واصف، ولكن بعض قيم الواصفات توفر معلومات أخرى أيضًا - على وجه الخصوص، 00hيُستخدم للواصف الفارغ، FFhويشير إلى أن الورقة لا تحتوي على معلومات ذاكرة تخزين مؤقت صالحة، وأنه يجب استخدام الورقة 4h بدلاً منها، FEhويشير إلى أن الورقة لا تحتوي على معلومات جدول ترجمة عناوين صالحة، وأنه يجب استخدام الورقة 18h بدلاً منها. هناك أيضًا بعض الحالات، مثل الواصفات 63hو C3h، حيث يوفر واصف واحد معلومات حول جداول ترجمة عناوين متعددة. يمكن أن تظهر الواصفات بأي ترتيب.

بالنسبة لكل من السجلات الأربعة (EAX، EBX، ECX، EDX)، إذا تم تعيين البت 31، فلا ينبغي اعتبار السجل يحتوي على واصفات صالحة (على سبيل المثال، في Itanium في وضع IA-32، يتم إرجاع CPUID(EAX=2) 80000000hفي EDX - يجب تفسير هذا على أنه يعني أن EDX لا يحتوي على معلومات صالحة، وليس أنه يحتوي على واصف لذاكرة تخزين مؤقتة من المستوى الثاني بحجم 512 كيلوبايت).

يُقدّم الجدول أدناه، بالنسبة لقيم الواصفات المعروفة، وصفًا مُختصرًا لذاكرة التخزين المؤقت أو ذاكرة الترجمة السريعة (TLB) المشار إليها بواسطة قيمة الواصف تلك (أو معلومات أخرى، عند الاقتضاء). اللواحق المُستخدمة في الجدول هي:

  • K,M,G  : kibibyte, mebibyte, gibibyte (سعة ذاكرة التخزين المؤقت، حجم الصفحة لـ TLBs)
  • E  : المدخلات (لـ TLBs؛ على سبيل المثال 64E = 64 مدخلاً)
  • p  : حجم الصفحة (على سبيل المثال 4Kp لـ TLBs حيث يصف كل إدخال صفحة  واحدة بحجم 4 كيلوبايت ، 4K/2Mp لـ TLBs حيث يمكن لكل إدخال أن يصف إما صفحة واحدة بحجم 4 كيلوبايت أو صفحة ضخمة بحجم 2 ميجابايت)  
  • L  : حجم سطر التخزين المؤقت (على سبيل المثال 32L = حجم سطر التخزين المؤقت 32 بايت)
  • S  : حجم قطاع ذاكرة التخزين المؤقت (على سبيل المثال، 2S تعني أن ذاكرة التخزين المؤقت تستخدم قطاعات من سطرين من خطوط ذاكرة التخزين المؤقت لكل منها)
  • أ  : الترابطية (على سبيل المثال 6A = ترابطية مجموعة سداسية الاتجاهات ، FA = ترابطية كاملة)
مفتاح رموز بايتات واصف ذاكرة التخزين المؤقت/مخزن الترجمة
ذاكرة تخزين مؤقتة للتعليمات أو البيانات من المستوى 1مخبأ المستوى 2مخبأ المستوى 3تعليمات أو بيانات TLBالمستوى 2 مشترك TLBمعلومات أخرى(محجوز)
CPUID EAX=2: ترميزات بايتات واصف ذاكرة التخزين المؤقت/مخزن الترجمة
x0x1x2x3x45x6x7x8x9xxAxBxCxDxExF
0xواصف فارغITLB: 32E, 4Kp, 4AITLB: 2E, 4Mp, FADTLB: 64E, 4Kp, 4ADTLB: 8E، 4Mp، 4ADTLB: 32E، 4Mp، 4AL1I: 8K، 4A، 32L0xL1I: 16 كيلوجول، 4 أمبير، 32 لترL1I: 32K، 4A، 64LL1D: 8K, 2A, 32LITLB: 4E, 4Mp, FAL1D: 16 كيلو أوم، 4 أمبير، 32 لترL1D: 16K, 4A, 64L [ b ]L1D: 24K, 6A, 64L [ b ]0x
1x(L1D: 16K, 4A, 32L) [ c ](L1I: 16K, 4A, 32L) [ c ]1x(L2C: 96K, 6A, 64L) [ c ]L2C: 128K، 2A، 64L1x
2xL2C: 256K, 8A, 64L [ d ]L3C: 512K، 4A، 64L، 2SL3C: 1M، 8A، 64L، 2SL2C: 1M, 16A, 64LL3C: 2M، 8A، 64L، 2S(جلب مسبق 128 بايت ) [ هـ ](جلب مسبق 128 بايت ) [ هـ ]2x(جلب مسبق 128 بايت ) [ هـ ]L3C: 4M، 8A، 64L، 2SL1D: 32 كيلو أوم، 8 أمبير، 64 لتر2x
3xL1I: 32 كيلو هرتز، 8 أمبير، 64 لتر3xL2C: 128K, 4A, 64L, 2S [ f ]L2C: 192K, 6A, 64L, 2S [ f ]L2C: 128K, 2A, 64L, 2S [ f ]L2C: 256K, 4A, 64L, 2S [ f ]L2C: 384K, 6A, 64L, 2S [ f ]L2C: 512K, 4A, 64L, 2S [ f ]L2C: 256K, 2A, 64L [ g ]3x
4xلا يوجد ذاكرة تخزين مؤقتة من المستوى الثالثL2C: 128 كيلو أوم، 4 أمبير، 32 لترL2C: 256K, 4A, 32L [ h ]L2C: 512K، 4A، 32LL2C: 1M، 4A، 32LL2C: 2M, 4A, 32LL3C: 4M، 4A، 64LL3C: 8M، 8A، 64L4xL2C: 3M، 12A، 64LL2C/L3C: [ i ] 4M,16A,64LL3C: 6M, 12A, 64LL3C: 8M, 16A, 64LL3C: 12M، 12A، 64LL3C: 16M، 16A، 64LL2C: 6M, 24A, 64LITLB: 32E, 4Kp [ j ]4x
5xITLB: 64E,FA, 4K/2M/4MpITLB: 128E,FA, 4K/2M/4MpITLB: 256E,FA, 4K/2M/4MpITLB: 7E, 2M/4Mp, FADTLB: 16E، 4Mp، 4ADTLB: 16E, 4Kp, 4A5xDTLB: 16E, 4Kp, FADTLB: 32E، 2M/4Mp، 4ADTLB: 64E 4K/4Mp, FADTLB: 128E، 4K/4Mp، FADTLB: 256E، 4K/4Mp، FA5x
6xL1D: 16 كيلو أوم، 8 أمبير، 64 لترITLB: 48E, 4Kp, FAاثنان من وحدات DTLB: 32E، 2M/4Mp، 4A + 4E، 1Gp، FADTLB: 512E, 4Kp, 4AL1D: 8K, 4A, 64LL1D: 16K، 4A، 64L6xL1D: 32K، 4A، 64LDTLB: 64E, 4Kp, 8ADTLB: 256E, 4Kp, 8ADTLB: 128E، 2M/4Mp، 8ADTLB: 16E, 1Gp, FA6x
7xذاكرة التتبع ، 12 ألف عملية دقيقة، 8 أمبير [ كيلو ]ذاكرة تخزين مؤقتة للتتبع، 16 ألف عملية دقيقة، 8 أمبيرذاكرة التتبع، 32 ألف عملية دقيقة، 8 أمبيرذاكرة التتبع، 64 ألف عملية دقيقة، 8 أمبير [ f ][ ح ]ITLB: 8E, 2M/4Mp, FA [ l ](L1I: 16K، 4A، 64L) [ m ] [ h ]7xL2C: 1M, 4A, 64LL2C: 128 كيلو أوم، 8 أمبير، 64 لتر، 2SL2C: 256 كيلو أوم، 8 أمبير، 64 لتر، 2SL2C: 512K، 8A، 64L، 2SL2C: 1M، 8A، 64L، 2SL2C: 2M, 8A, 64L(L2C: 256K, 8A, 128L) [ m ]L2C: 512K, 2A, 64L7x
8xL2C: 512K, 8A, 64L [ k ](L2C: 128K, 8A, 32L) [ e ]L2C: 256K, 8A, 32L [ h ]L2C: 512K، 8A، 32LL2C: 1M، 8A، 32LL2C: 2M, 8A, 32LL2C: 512K, 4A, 64LL2C: 1M, 8A, 64L8x(L3C: 2M, 4A, 64L) [ c ](L3C: 4M, 4A, 64L) [ c ](L3C: 8M, 4A, 64L) [ c ](L3C: 3M, 12A, 128L) [ m ] [ n ]8x
9x(ITLB: 64E,FA, 4K-256Mp) [ c ](DTLB: 32E,FA, 4K-256Mp) [ c ]9x(DTLB: 96E,FA, 4K-256Mp) [ c ]9x
الفأسDTLB: 32E, 4Kp, FAالفأسالفأس
BxITLB: 128E, 4Kp, 4AITLB: 8E, 2M/4Mp, 4A [ o ]ITLB: 64E, 4Kp, 4ADTLB: 128E, 4Kp, 4ADTLB: 256E, 4Kp, 4AITLB: 64E, 4Kp, 8AITLB: 128E, 4Kp, 8ABxDTLB: 64E, 4Kp, 4ABx
CxDTLB: 8E، 4K/4Mp، 4AL2TLB: 1024E، 4K/2Mp، 8ADTLB: 16E, 2M/4Mp, 4A [ 89 ]اثنان من وحدات STLB من المستوى الثاني: 1536E، 4K/2Mp، 6A [ p ] + 16E، 1Gp، 4ADTLB: 32E، 2M/4Mp، 4ACxL2TLB: 512E, 4Kp, 4ACx
التشخيصL3C: 512K, 4A, 64LL3C: 1M، 4A، 64LL3C: 2M, 4A, 64LL3C: 1M، 8A، 64LL3C: 2M,8A, 64LDxL3C: 4M,8A, 64LL3C: 1.5M,12A, 64LL3C: 3M,12A, 64LL3C: 6M,12A, 64LDx
ExL3C: 2M,16A, 64LL3C: 4M,16A, 64LL3C: 8M,16A, 64LExL3C: 12M,24A, 64LL3C: 18M,24A, 64L[92]L3C: 24M,24A, 64LEx
Fx64-byteprefetch[q]128-byteprefetch[q]FxLeaf 2 hasno TLB info,use leaf 18hLeaf 2 hasno cache info,use leaf 4Fx
x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
  1. In older Intel documentation, the bottom byte of the value returned in EAX is described as specifying the number of times the CPUID must be called with EAX=2 to get hold of all the cache/TLB descriptors. However, all known processors that implement this leaf return 01h in this byte, and newer Intel documentation (SDM rev 053[72] and later) specifies this byte as having the value 01h.
  2. 12For descriptors 0Dh and 0Eh, Intel AP-485 rev 37[73] lists the caches they describe as having ECC - this was removed in rev 38 and later Intel documentation.
  3. 123456789Descriptors 10h, 15h, 1Ah, 88h, 89h, 8Ah, 90h, 96h, 9Bh are documented for the IA-32 operation mode of Itanium only.[74]
  4. The cache described by descriptor 21h is in some places (e.g. AP-485 rev 36[75] but not rev 37) referred to as an "MLC" (Mid-Level Cache).
  5. 1234Descriptor values 26h,27h,28h and 81h are not listed in Intel documentation and are not used in any known released CPU. (81h has been seen in engineering samples of the cancelled Intel Timna.[85]) They have nevertheless been reported to be recognized by the Windows NT kernel v5.1 (Windows XP) and higher. 81h is also recognized by v5.0 (Windows 2000).[86]
  6. 1 2 3 4 5 6 7 تمالواصفاتفي المراجعة 36 من Intel AP-485، [ 75 ] ولكن تمت إزالتها من وثائق Intel اللاحقة على الرغم من استخدام العديد منها في وحدات المعالجة المركزية Intel (معظمها في وحدات المعالجة المركزية Celeron القائمة على Netburst ، على سبيل المثالفي "Willamette-128" ، [ 76 ] وفي "Northwood-128"، [ 77 ] وفي"Prescott-256" [ 78 ] ).39h-3Eh73h39h3Bh3Ch
  7. لم يُدرج هذا الوصف3Fh، اعتبارًا من نوفمبر 2024، في أي من وثائق إنتل المعروفة - ومع ذلك، فهو يُستخدم فيمعالجات إنتل تولاباي ، [ 79 ] وهو مُدرج في رقعة نواة لينكس التي قدمتها إنتل. [ 80 ]
  8. تشير وثائق معالج VIA Cyrix III "Joshua" ( العائلة 6 ، الطراز 5 ) إلى أن هذا المعالج يستخدم قيمًا وصفيةلـTLBs الخاصة به، وقيمًا وصفيةلـcaches الخاصة به - لكنها لا تحدد أي caches/TLBs في المعالج تتوافق مع كل قيمة وصفية من هذه القيم. [ 81 ]CyrixInstead74h77h42h82h
  9. يشير الوصف49hإلى ذاكرة تخزين مؤقتة من المستوى 3 علىGenuineIntelوحدات المعالجة المركزية من طراز Family 0Fh Model 6 (Pentium 4 based Xeon)، وذاكرة تخزين مؤقتة من المستوى 2 على وحدات المعالجة المركزية الأخرى.
  10. لا تُحدد وثائق CPUID الخاصة بشركة Intel مدى ارتباطية ITLB المشار إليها بواسطة الواصفوقد وُصفت4Fhالمعالجات التي تستخدم هذا الواصف (Intel Atom "Bonnell" [ 82 ] ) في موضع آخر بأنها تمتلك ITLB ارتباطية كاملة مكونة من 32 مدخلاً. [ 83 ]
  11. 1 2 على وحدات المعالجة المركزية Cyrix و Geode (معرفات البائعCyrixInsteadوGeode by NSC)، فإن الواصفات70hو80hلها معنى مختلف: [ 84 ]
    • يشير الوصف إلى ذاكرة 70hترجمة عناوين الذاكرة المشتركة المكونة من 32 مدخلاً للتعليمات والبيانات، والتي تحتوي على 4 اتجاهات ترابطية للمجموعات، وبحجم صفحة 4K.
    • يشير الوصف إلى ذاكرة تخزين مؤقتة من المستوى الأول (L1) مشتركة للتعليمات والبيانات بحجم 80h16  كيلوبايت مع ارتباط مجموعة رباعي الاتجاهات وحجم خط ذاكرة تخزين مؤقتة يبلغ 16  بايت.
  12. تم إدراجDescriptorذاكرة تخزين مؤقتة من المستوى الثاني بحجم 1 ميجابايت في الإصدار 37 من Intel AP-485، [ 73 ] ولكن كـ TLB للتعليمات في الإصدار 38 وجميع وثائق Intel اللاحقة.76h 
  13. تمالواصفات 1 2 3 لوضعالتشغيل IA-32 الخاص بمعالج Itanium 2 فقط. [ 87 ]77h7Eh8Dh
  14. في وضع التشغيل IA-32 لمعالج Itanium 2، يتم دائمًا الإبلاغ عن حجم ذاكرة التخزين المؤقت L3 على أنه 3 ميجابايت بغض النظر عن الحجم الفعلي لذاكرة التخزين المؤقت. [ 88 ]
  15. بالنسبة للوصفB1h، تبلغ سعة TLB 8 عناصر عند استخدام صفحات بحجم 2 ميجابايت، ولكنها تنخفض إلى 4 عناصر عند استخدام صفحات بحجم 4 ميجابايت.
  16. بالنسبة للوصفC3h، تحتوي العديد من معالجات إنتل التي تستخدم هذا الوصف على ذاكرة تخزين مؤقتة من المستوى الثاني (L2 TLB) ذات 12 اتجاهًا ترابطيًا، وليس 6 اتجاهات ترابطيًا. ينطبق هذا على الأقل على معالجات Skylake [ 90 ] و Whiskey/Kaby/Coffee/Comet Lake [ 91 ] .
  17. 1 2 الجلب المسبق المحدد بواسطة الواصفاتF0hهوF1hالخطوة الموصى بها لجلب الذاكرة المسبق باستخدامPREFETCHNTAالتعليمة. [ 93 ]

EAX=3: الرقم التسلسلي للمعالج

يُعيد هذا الأمر الرقم التسلسلي للمعالج. تم تقديم الرقم التسلسلي للمعالج في معالجات إنتل بنتيوم 3 ، ولكن نظرًا لمخاوف تتعلق بالخصوصية، لم تعد هذه الميزة مُفعّلة في الطرازات اللاحقة (يتم مسح بت ميزة PSN دائمًا). كما توفر معالجات Efficeon وCrusoe من شركة Transmeta هذه الميزة. أما معالجات AMD، فلا تُفعّل هذه الميزة في أي من طرازاتها.

بالنسبة لوحدات المعالجة المركزية Intel Pentium III، تُرجع الورقة 3 الـ 64 بتات السفلية من الرقم التسلسلي للمعالج ذي 96 بت في EDX:ECX - يتم أخذ الـ 32 بتات العلوية من الرقم التسلسلي من توقيع وحدة المعالجة المركزية الذي تم إرجاعه في EAX عند CPUIDاستدعائها مع EAX=1. [ 94 ] .

بالنسبة لوحدات المعالجة المركزية Transmeta Crusoe و Efficeon، تُرجع الورقة 3 رقمًا تسلسليًا للمعالج مكونًا من 128 بت بتنسيق EAX:EBX:ECX:EDX [ 95 ] (تكون أعلى 32 بت من هذا الرقم التسلسلي، المُقدم بتنسيق EAX، دائمًا 0 على معالجات Crusoe [ 96 ] ولكن من المعروف أنها غير صفرية على بعض معالجات Efficeon على الأقل. [ 97 ] )

لاحظ أنه يجب تفعيل ميزة الرقم التسلسلي للمعالج في إعدادات BIOS لكي تعمل.

EAX=4 و EAX=8000'001Dh: التسلسل الهرمي والطوبولوجيا لذاكرة التخزين المؤقت

تُستخدم هاتان الورقتان لتوفير معلومات حول مستويات التسلسل الهرمي لذاكرة التخزين المؤقت المتاحة لنواة المعالج التي CPUIDتُنفذ عليها التعليمات. 4تُستخدم الورقة Leaf في معالجات Intel، بينما 8000'001Dhتُستخدم الورقة Leaf في معالجات AMD. تُعيد كلتاهما البيانات في EAX وEBX وECX وEDX، باستخدام نفس تنسيق البيانات، باستثناء أن الورقة Leaf 4تُعيد بعض الحقول الإضافية التي تُعتبر "محجوزة" لها 8000'001Dh. تُوفر كلتاهما معلومات ذاكرة التخزين المؤقت لوحدة المعالجة المركزية في سلسلة من الأوراق الفرعية التي يُحددها ECX. للحصول على معلومات حول جميع مستويات ذاكرة التخزين المؤقت، من الضروري استدعاء الدالة CPUIDبشكل متكرر، مع تعيين EAX= 4أو 8000'001DhECX بقيم متزايدة بدءًا من 0 (0، 1، 2، ...) حتى يتم العثور على ورقة فرعية لا تصف أي ذاكرة تخزين مؤقت (EAX[4:0]=0). قد تظهر الأوراق الفرعية التي تُعيد معلومات ذاكرة التخزين المؤقت بأي ترتيب، ولكن ستظهر جميعها قبل أول ورقة فرعية لا تصف أي ذاكرة تخزين مؤقت.

في الجدول أدناه، تم تمييز الحقول التي تم تعريفها للورقة 4ولكن ليس للورقة 8000'001Dhبتلوين الخلايا باللون الأصفر وعنصر (#4) .

CPUID EAX=4 و 8000'001Dh: معلومات خصائص ذاكرة التخزين المؤقت في EAX و EBX و EDX
قليلإي إيه إكسEBXEDX [ أ ]قليل
0نوع ذاكرة التخزين المؤقت:
  • 0: (لا توجد ذاكرة تخزين مؤقتة أخرى)
  • 1: ذاكرة التخزين المؤقت للبيانات
  • 2: ذاكرة التخزين المؤقت للتعليمات
  • 3: ذاكرة التخزين المؤقت الموحدة
  • 4-31: (محجوز)
حجم خط تماسك النظام بالبايت، ناقص 1WBINVDنطاق تنفيذ إبطال ذاكرة التخزين المؤقت. تشير القيمة 0 إلى أن تعليمات INVD/ WBINVDستُبطل جميع ذاكرات التخزين المؤقت ذات المستويات الأدنى لهذه الذاكرة، بما في ذلك ذاكرات التخزين المؤقت التابعة للمعالجات الشقيقة التي تشترك في هذه الذاكرة. وتشير القيمة 1 إلى أنه ليس من المضمون مسح جميع ذاكرات التخزين المؤقت ذات المستويات الأدنى للمعالجات الشقيقة التي تشترك في هذه الذاكرة.0
1شمولية ذاكرة التخزين المؤقت. إذا كانت القيمة 1، فإن ذاكرة التخزين المؤقت تشمل ذاكرات التخزين المؤقت ذات المستوى الأدنى.1
2فهرسة ذاكرة التخزين المؤقت المعقدة. إذا كانت القيمة 1، فإن ذاكرة التخزين المؤقت تستخدم دالة معقدة للفهرسة، وإلا فإنها تستخدم تعيينًا مباشرًا. (#4)2
3(محجوز)3
4(محجوز) [ ب ]4
7:5مستوى التخزين المؤقت (يبدأ من 1)(محجوز)7:5
8مستوى ذاكرة التخزين المؤقت ذاتية التهيئة (1 = لا تحتاج إلى تهيئة برمجية بعد إعادة الضبط)(محجوز)8
9ذاكرة التخزين المؤقت الترابطية الكاملة(محجوز)9
10( WBINVDنطاق تنفيذ إبطال ذاكرة التخزين المؤقت) [ ج ] (#4)(محجوز)10
11(شمولية التخزين المؤقت) [ ج ] (#4)(محجوز)11
13:12(محجوز)أقسام الخطوط المادية (عدد خطوط التخزين المؤقت التي تشترك في علامة عنوان التخزين المؤقت)، ناقص 1(محجوز)13:12
21:14الحد الأقصى لعدد المعرفات القابلة للعنونة للمعالجات المنطقية التي تشترك في هذه الذاكرة المؤقتة، ناقص 1(محجوز)21:14
25:22طرق ترابط الذاكرة المؤقتة ، ناقص 1(محجوز)25:22
31:26الحد الأقصى لعدد المعرفات القابلة للعنونة لأنوية المعالج في الحزمة المادية، ناقص 1 (#4)(محجوز)31:26
  1. Intel AP-485، المراجعات 31 [ 98 ] و 32، تسرد البتات 9:0 من EDX كحقل "Prefetch Stride" - تمت إزالة هذا في المراجعة 33 وجميع وثائق Intel اللاحقة، ولا يُعرف أن أي معالج يستخدم EDX بهذه الطريقة.
  2. لم يتم إدراج البت 4 من EDX في أي من وثائق Intel العامة المعروفة، ولكن لوحظ أنه مُفعّل لذاكرة التخزين المؤقت من المستوى 2 لمعالجات Intel Xeon Phi x200 ("Knights Landing"). [ 99 ]
  3. بالنسبة لـ CPUID leaf 4، فإن البتات من 11 إلى 10 من EAX موثقة لمعالج Xeon Phi "Knights Corner" (GenuineIntelالعائلة0Bh) فقط. [ 47 ] بالنسبة للمعالجات الأخرى، يجب استخدام البتات من 1 إلى 0 من EDX بدلاً من ذلك.

بالنسبة لأي ذاكرة تخزين مؤقت صالحة وغير ترابطية بالكامل، فإن القيمة المُعادة في ECX هي عدد المجموعات في ذاكرة التخزين المؤقت ناقص 1. (بالنسبة لذاكرات التخزين المؤقت الترابطية بالكامل، يجب التعامل مع ECX كما لو كانت تُعيد القيمة 0). بالنسبة لأي ذاكرة تخزين مؤقت مُعطاة موصوفة بواسطة ورقة فرعية من CPUIDورقة 4أو 8000'001Dh، يمكن حساب إجمالي حجم ذاكرة التخزين المؤقت بالبايت على النحو التالي:

CacheSize = (EBX[11:0]+1) * (EBX[21:12]+1) * (EBX[31:22]+1) * (ECX+1)

على سبيل المثال، في معالجات Intel Crystalwell ، سيؤدي تنفيذ CPUID مع EAX=4 وECX=4 إلى قيام المعالج بإرجاع معلومات الحجم التالية لذاكرة التخزين المؤقت من المستوى 4 في EBX وECX: EBX=03C0F03Fو ECX=00001FFF- يجب أن يُفهم من ذلك أن ذاكرة التخزين المؤقت هذه لها حجم سطر ذاكرة تخزين مؤقت يبلغ 64 بايت (EBX[11:0]+1)، وتحتوي على 16 سطر ذاكرة تخزين مؤقت لكل علامة (EBX[21:12]+1)، وهي ذات 16 اتجاهًا ترابطيًا (EBX[31:22]+1) مع 8192 مجموعة (ECX+1)، ليصبح الحجم الإجمالي 64*16*16*8192=134217728 بايت، أو 128 ميببايت.

EAX=4 و EAX=Bh: بنية معالج Intel Thread/Core وذاكرة التخزين المؤقت

تُستخدم هاتان الورقتان لتحديد بنية المعالج (الخيط، النواة، الحزمة) وتسلسل ذاكرة التخزين المؤقت في معالجات إنتل متعددة النوى (والمعالجات متعددة الخيوط). [ 100 ] اعتبارًا من عام 2013لا تستخدم AMD هذه الأوراق، ولكن لديها طرق بديلة لإجراء تعداد النوى. [ 101 ]

على عكس معظم أوراق CPUID الأخرى، تُرجع الورقة Bh قيمًا مختلفة في EDX اعتمادًا على المعالج المنطقي الذي تُنفذ عليه تعليمة CPUID؛ فالقيمة المُرجعة في EDX هي في الواقع مُعرّف x2APIC للمعالج المنطقي. مع ذلك، لا يتم ربط مساحة مُعرّف x2APIC بالمعالجات المنطقية بشكل متواصل؛ فقد توجد فجوات في الربط، ما يعني أن بعض مُعرّفات x2APIC الوسيطة لا تُطابق بالضرورة أي معالج منطقي. تتوفر معلومات إضافية لربط مُعرّفات x2APIC بالنوى في السجلات الأخرى. على الرغم من أن الورقة Bh تحتوي على أوراق فرعية (يتم اختيارها بواسطة ECX كما هو موضح أدناه)، فإن القيمة المُرجعة في EDX تتأثر فقط بالمعالج المنطقي الذي تُنفذ عليه التعليمة، وليس بالورقة الفرعية.

تُظهر بنية المعالج (أو المعالجات) التي يكشف عنها الفرع Bh بنيةً هرمية، مع ملاحظة غريبة تتمثل في أن ترتيب المستويات (المنطقية) في هذه البنية لا يتطابق بالضرورة مع ترتيبها في البنية الفيزيائية ( SMT /core/package). ومع ذلك، يمكن الاستعلام عن كل مستوى منطقي كفرع فرعي ECX (من الفرع Bh) لمعرفة مدى مطابقته لنوع المستوى، والذي قد يكون SMT أو core أو "غير صالح". يبدأ نطاق معرفات المستويات من 0 وهو متصل، ما يعني أنه إذا كان معرف مستوى ما غير صالح، فستكون جميع معرفات المستويات الأعلى منه غير صالحة أيضًا. يُعاد نوع المستوى في البتات من 15 إلى 8 من ECX، بينما يُعاد عدد المعالجات المنطقية في المستوى المستعلم عنه في EBX. وأخيرًا، يتم إرجاع الاتصال بين هذه المستويات ومعرفات x2APIC في EAX[4:0] على أنه عدد البتات التي يجب إزاحة معرف x2APIC من أجل الحصول على معرف فريد في المستوى التالي.

As an example, a dual-core Westmere processor capable of hyperthreading (thus having two cores and four threads in total) could have x2APIC ids 0, 1, 4 and 5 for its four logical processors. Leaf Bh (=EAX), subleaf 0 (=ECX) of CPUID could for instance return 100h in ECX, meaning that level 0 describes the SMT (hyperthreading) layer, and return 2 in EBX because there are two logical processors (SMT units) per physical core. The value returned in EAX for this 0-subleaf should be 1 in this case, because shifting the aforementioned x2APIC ids to the right by one bit gives a unique core number (at the next level of the level id hierarchy) and erases the SMT id bit inside each core. A simpler way to interpret this information is that the last bit (bit number 0) of the x2APIC id identifies the SMT/hyperthreading unit inside each core in our example. Advancing to subleaf 1 (by making another call to CPUID with EAX=Bh and ECX=1) could for instance return 201h in ECX, meaning that this is a core-type level, and 4 in EBX because there are 4 logical processors in the package; EAX returned could be any value greater than 3, because it so happens that bit number 2 is used to identify the core in the x2APIC id. Note that bit number 1 of the x2APIC id is not used in this example. However, EAX returned at this level could well be 4 (and it happens to be so on a Clarkdale Core i3 5x0) because that also gives a unique id at the package level (=0 obviously) when shifting the x2APIC id by 4 bits. Finally, you may wonder what the EAX=4 leaf can tell us that we didn't find out already. In EAX[31:26] it returns the APIC mask bits reserved for a package; that would be 111b in our example because bits 0 to 2 are used for identifying logical processors inside this package, but bit 1 is also reserved although not used as part of the logical processor identification scheme. In other words, APIC ids 0 to 7 are reserved for the package, even though half of these values don't map to a logical processor.

The cache hierarchy of the processor is explored by looking at the sub-leaves of leaf 4. The APIC ids are also used in this hierarchy to convey information about how the different levels of cache are shared by the SMT units and cores. To continue our example, the L2 cache, which is shared by SMT units of the same core but not between physical cores on the Westmere is indicated by EAX[26:14] being set to 1, while the information that the L3 cache is shared by the whole package is indicated by setting those bits to (at least) 111b. The cache details, including cache type, size, and associativity are communicated via the other registers on leaf 4.

يُرجى الانتباه إلى أن الإصدارات القديمة من مذكرة تطبيق Intel رقم 485 تحتوي على بعض المعلومات المُضللة، لا سيما فيما يتعلق بتحديد وحساب النوى في المعالجات متعددة النوى؛ [ 102 ] وقد تم تضمين أخطاء ناتجة عن سوء تفسير هذه المعلومات حتى في نموذج التعليمات البرمجية من Microsoft لاستخدام CPUID، حتى في إصدار 2013 من Visual Studio، [ 103 ] ولكن نموذج التعليمات البرمجية من Intel لتحديد بنية المعالج [ 100 ] يحتوي على التفسير الصحيح، كما أن دليل مطوري برامج Intel الحالي يتميز بلغة أكثر وضوحًا. ويُطبّق كود الإنتاج (مفتوح المصدر) متعدد المنصات [ 104 ] من Wildfire Games أيضًا التفسير الصحيح لوثائق Intel.

تُقدَّم أمثلةٌ لكشف بنية الشبكة باستخدام معالجات Intel القديمة (ما قبل 2010) التي تفتقر إلى x2APIC (وبالتالي لا تُطبِّق EAX=Bh leaf) في عرضٍ تقديميٍّ لشركة Intel عام 2010. [ 105 ] يُرجى الانتباه إلى أنَّ استخدام طريقة الكشف القديمة هذه على معالجات Intel من عام 2010 وما بعده قد يُبالغ في تقدير عدد النوى والمعالجات المنطقية، لأنَّ طريقة الكشف القديمة تفترض عدم وجود فجوات في مساحة معرّفات APIC، وهذا الافتراض لا ينطبق على بعض المعالجات الأحدث (بدءًا من سلسلة Core i3 5x0)، ولكن هذه المعالجات الأحدث تأتي أيضًا مزوَّدةً بـ x2APIC، لذا يُمكن تحديد بنيتها بشكلٍ صحيح باستخدام طريقة EAX=Bh leaf.

EAX=5: ميزات المراقبة/الانتظار

تُعيد هذه العملية معلومات الميزات المتعلقة MONITORبالتعليمات الموجودة MWAITفي سجلات EAX و EBX و ECX و EDX.

CPUID EAX=5: معلومات ميزة المراقبة/الانتظار في EAX وEBX وEDX
قليلإي إيه إكسEBXEDXقليل
3:0أصغر حجم لسطر المراقبة بالبايتأكبر حجم لسطر المراقبة بالبايتعدد الحالات الفرعية C0 [ أ ] المدعومة لـMWAIT3:0
7:4عدد الحالات الفرعية C1 المدعومة لـMWAIT7:4
11:8عدد الحالات الفرعية C2 المدعومة لـMWAIT11:8
15:12عدد الحالات الفرعية C3 المدعومة لـMWAIT15:12
19:16(محجوز)(محجوز)عدد الولايات الفرعية C4 المدعومة لـMWAIT19:16
23:20عدد الولايات الفرعية C5 المدعومة لـMWAIT23:20
27:24عدد الحالات الفرعية C6 المدعومة لـMWAIT27:24
31:28عدد الولايات الفرعية C7 المدعومة لـMWAIT31:28
  1. الحالات من C0 إلى C7 هي حالات C خاصة بالمعالج، والتي لا تتطابق بالضرورة بنسبة 1:1 مع حالات ACPI C.
CPUID EAX=5: تعداد ملحقات المراقبة/الانتظار في ECX
قليلبورصة السلع الأوروبية (ECX)
قصيرميزة
0إي إم إكستعداد ملحقات MONITOR/MWAIT في ECX و EDX المدعومة
1IBEيدعم التعامل مع المقاطعات كأحداث توقف MWAITحتى عند تعطيل المقاطعات
2(محجوز)
3بدون شاشة - MWAITالسماح MWAITباستخدامها لإدارة الطاقة دون إعداد مراقبة الذاكرة مع MONITOR[ 106 ]
31:4 (محجوز)

EAX=6: إدارة الحرارة والطاقة

هذا يعيد بتات الميزات في سجل EAX ومعلومات إضافية في سجلات EBX وECX وEDX.

CPUID EAX=6: بتات ميزة إدارة الحرارة/الطاقة في EAX
قليلإي إيه إكس
قصيرميزة
0DTSقدرة المستشعر الحراري الرقمي
1تعزيز التوربوتقنية Intel Turbo Boost
2أرات [ أ ]إمكانية تشغيل مؤقت APIC باستمرار
3(محجوز)
4PLNإمكانية التنبيه بحدود الطاقة
5ECMDقدرة تعديل الساعة الممتدة
6PTMقدرة إدارة الحرارة في الحزمة
7HWPحالات الأداء التي يتم التحكم فيها بواسطة الأجهزة . تمت إضافة سجلات MSR:
  • IA32_PM_ENABLE( 770h)
  • IA32_HWP_CAPABILITIES( 771h)
  • IA32_HWP_REQUEST( 774h)
  • IA32_HWP_STATUS( 777h)
8إشعار HWPإشعار HWP بتغيير الأداء المضمون الديناميكي - IA32_HWP_INTERRUPT( 773h) MSR
9نافذة نشاط HWPالتحكم في نافذة نشاط HWP - البتات 41:32 من IA32_HWP_REQUESTMSR
10تفضيل أداء الطاقة HWPالتحكم في تفضيلات الطاقة/الأداء لوحدة المعالجة المركزية - البتات من 31 إلى 24 من IA32_HWP_REQUESTسجل حالة المحرك
11HWP_Package_Level_Request​التحكم على مستوى حزمة HWP - IA32_HWP_REQUEST_PKG( 772h) MSR
12(محجوز)
13HDCيدعم الجهاز دورات التشغيل المتكررة . تمت إضافة سجلات MSR:
  • IA32_PKG_HDC_CTL( DB0h)
  • IA32_PM_CTL1( DB1h)
  • IA32_THREAD_STALL( DB2h)
14توربو بوست ماكستقنية Intel Turbo Boost Max 3.0 متوفرة
15HWP_CAPالمقاطعات عند حدوث تغييرات في IA32_HWP_CAPABILITIES.Highest_Performance (البتات 7:0) مدعومة
16تجاوز HWP_PECI_يدعم تجاوز HWP PECIIA32_HWP_PECI_REQUEST_INFO - البتات 63:60 من ( 775h) MSR
17مرن_ HWPHWP المرن - البتات 63:59 من IA32_HWP_REQUESTMSR
18HWP_REQUEST_ FAST_ACCESSوضع الوصول السريع لـ IA32_HWP_REQUESTMSR مدعوم [ ب ]
19ملاحظات الأجهزةواجهة التغذية الراجعة للأجهزة. تمت إضافة أجهزة تسجيل الرسائل المغناطيسية (MSRs):
  • IA32_HW_FEEDBACK_PTR( 17D0h)
  • IA32_HW_FEEDBACK_CONFIG( 17D1h) (البت 0 يُفعّل HFI، والبت 1 يُفعّل Intel Thread Director)
20HWP_REQUEST_IGNORE_IDLE​IA32_HWP_REQUESTيتم تجاهل المعالج المنطقي الخامل عندما يكون واحد فقط من المعالجين المنطقيين اللذين يشتركان في معالج فعلي نشطًا.
21(محجوز)
22HWP Control MSRIA32_HWP_CTL( 776h) دعم MSR [ 108 ]
23مدير الموضوعيدعم Intel Thread Director. تمت إضافة MSRs:
  • IA32_THREAD_FEEDBACK_CHAR( 17D2h)
  • IA32_HW_FEEDBACK_THREAD_CONFIG( 17D4h)
24( IA32_THERM_INTERRUPT MSR bit 25 supported) [ c ]
31:25 (محجوز)
  1. في معالجات عائلة Intel Pentium 4 (GenuineIntelالعائلة 0Fh) فقط، يتم استخدام البت 2 من EAX للإشارة إلى OPP (حماية نقطة التشغيل) [ 107 ] بدلاً من ARAT.
  2. لتمكين وضع الوصول السريع (غير التسلسلي) لـIA32_HWP_REQUESTMSR على وحدات المعالجة المركزية التي تدعمه، من الضروري تعيين البت 0 منFAST_UNCORE_MSRS_CTL(657h) MSR.
  3. تم إدراج بت CPUID.(EAX=6):EAX[24] في المراجعات من 078 إلى 087 من دليل Intel SDM، ولكن تمت إزالته من المراجعة 088 فصاعدًا. وهو غير مُفعّل في أي معالج معروف.
CPUID EAX=6: حقول ميزات إدارة الحرارة/الطاقة في EBX وECX وEDX
قليلEBXبورصة السلع الأوروبية (ECX)EDXقليل
0عدد عتبات المقاطعة في المستشعر الحراري الرقميواجهة التردد الفعال المدعومة - IA32_MPERF( 0E7h) و IA32_APERF( 0E8h) MSRsتقارير ملاحظات الأجهزة: دعم تقارير قدرات الأداء0
1(قدرة ACNT2) [ أ ]تقارير ملاحظات الأجهزة: دعم تقارير كفاءة الأداء1
2(محجوز)(محجوز)2
3قدرة تحيز الأداء والطاقة - IA32_ENERGY_PERF_BIAS( 1B0h) MSR3
7:4(محجوز)(محجوز)7:4
11:8عدد فئات Intel Thread Director التي يدعمها الجهازحجم بنية واجهة التغذية الراجعة للأجهزة (بوحدات 4  كيلوبايت) ناقص 111:8
15:12(محجوز)15:12
31:16 (محجوز)فهرس صف هذا المعالج المنطقي في بنية واجهة التغذية الراجعة للأجهزة31:16 
  1. تم إدراج بت "ACNT2 Capability" في Intel AP-485 rev 038 [ 109 ] و039، ولكنه غير مدرج في أي مراجعة من Intel SDM. من المعروف أن هذه الميزة موجودة في عدد قليل فقط من معالجات Intel، مثل Xeon "Harpertown" من الإصدار E0. [ 110 ]

EAX=7، ECX=0: الميزات الموسعة

يُعيد هذا الأمر علامات الميزات الموسعة في EBX وECX وEDX. ويُعيد القيمة القصوى لـ ECX عندما تكون EAX=7 في EAX.

CPUID EAX=7,ECX=0: بتات الميزات الموسعة في EBX وECX وEDX
قليلEBXبورصة السلع الأوروبية (ECX)EDXقليل
قصيرميزةقصيرميزةقصيرميزة
0fsgsbaseالوصول إلى قاعدة %fs و %gsprefetchwt1PREFETCHWT1تعليمات(sgx-tem) [ a ]؟0
1tsc_adjustIA32_TSC_ADJUST MSRavx512-vbmiتعليمات معالجة بتات المتجهات AVX-512sgx-keysخدمات التصديق لتقنية Intel SGX1
2sgxملحقات حماية البرامجumipمنع التعليمات في وضع المستخدمavx512-4vnniwتعليمات الشبكة العصبية ذات 4 سجلات AVX-5122
3مؤشر كتلة الجسم 1مجموعة تعليمات معالجة البتات 1pkuمفاتيح حماية الذاكرة لصفحات وضع المستخدمavx512-4fmapsAVX-512 ضرب وتجميع 4 سجلات بدقة مفردة3
4hleإلغاء قفل الأجهزة TSXأوسبكتم تمكين PKU بواسطة نظام التشغيلfsrmسريع قصيرREP MOVSB4
5avx2ملحقات المتجهات المتقدمة 2انتظار الحزمةتعليمات الإيقاف المؤقت والمراقبة/الانتظار على مستوى المستخدم ( TPAUSE, UMONITOR, UMWAIT)uintrمقاطعات المستخدم بين المعالجات5
6استثناءات fdp فقطيتم تحديث سجل مؤشر بيانات وحدة الفاصلة العائمة x87 فقط عند حدوث استثناءاتavx512-vbmi2تعليمات معالجة بتات المتجهات AVX-512 2(محجوز)6
7سمبمنع تنفيذ وضع المشرفcet_ss/shstkفرض التحكم في التدفق (CET): مكدس الظل (اسم بديل لـ SHSTK)(محجوز)7
8مؤشر كتلة الجسم 2مجموعة تعليمات معالجة البتات 2gfniتعليمات ميدان غالواavx512-vp2intersectتعليمات تقاطع المتجهات AVX-512 على الأعداد الصحيحة 32/64 بت8
9إيه إم إسمحسّنREP MOVSB/STOSBفايسمجموعة تعليمات AES المتجهة (VEX-256/EVEX)srbds-ctrlإجراءات تخفيف أخذ عينات البيانات من مخزن السجلات الخاص9
10معرف العميلINVPCIDتعليماتvpclmulqdqمجموعة تعليمات CLMUL (VEX-256/EVEX)إم دي كليرVERWتقوم هذه التعليمات بمسح مخازن وحدة المعالجة المركزية المؤقتة.10
11rtmذاكرة المعاملات المقيدة في بورصة تورنتوavx512-vnniتعليمات الشبكة العصبية المتجهة AVX-512rtm-always-abort [ 111 ]تم إلغاء جميع معاملات بورصة تورنتو11
12rdt-m/pqmمراقبة مدير موارد إنتل (RDT) أو مراقبة جودة الخدمة لمنصة AMDavx512-bitalgتعليمات AVX-512 BITALG(محجوز)12
13إهمال fcs_fds_تم إيقاف دعم وظائف CS وDS في معالج الفاصلة العائمة x87tme_enتتوفر خدمة تشفير الذاكرة الكاملة (MSRs)rtm-force-abort [ 111 ]0x10fيتوفر TSX_FORCE_ABORT (MSR )13
14mpxIntel MPX (ملحقات حماية الذاكرة)avx512-vpopcntdqAVX-512 عد عدد متجهات الكلمات المزدوجة والرباعيةالتسلسلSERIALIZEتعليمات14
15rdt-a/pqeتخصيص موارد Intel Resource Director (RDT) أو فرض جودة الخدمة لمنصة AMD(fzm) [ أ ]؟هجينمزيج من أنواع وحدات المعالجة المركزية في بنية المعالج (مثل Alder Lake )15
16avx512-fمؤسسة AVX-512la57ترقيم الصفحات ذو 5 مستويات (57 بت عنوان)tsxldtrkتعليمات تعليق/استئناف تتبع عنوان تحميل TSXTSUSLDTRK ( و TRESLDTRK)16
17avx512-dqتعليمات AVX-512 للكلمات المزدوجة والرباعيةماواوقيمة تعديل عرض عنوان MPX في مساحة المستخدم المستخدمة بواسطة BNDLDXتعليمات BNDSTXIntel MPX في وضع 64 بت(محجوز)17
18rdseedRDSEEDتعليماتpconfigتهيئة النظام الأساسي (تعليمات تقنيات تشفير الذاكرة)18
19adxIntel ADX (امتدادات تعليمات الجمع والحمل متعددة الدقة)lbrسجلات الفرع الأخير المعمارية19
20smapمنع الوصول إلى وضع المشرفاختبار CET-IBTتطبيق تدفق التحكم (CET): تتبع الفروع غير المباشر20
21avx512-ifmaتعليمات الضرب والجمع المدمجة للأعداد الصحيحة AVX-512(محجوز)21
22(pcommit)( تعليمات PCOMMIT ، مهملة) [ 113 ]rdpidRDPID(قراءة مُعرّف المعالج) والتعليمات و IA32_TSC_AUX MSRamx-bf16حساب مربعات AMX على أرقام bfloat1622
23clflushoptCLFLUSHOPTتعليماتklخزانة مفاتيح AESavx512-fp16 تعليمات حسابية للفاصلة العائمة بنصف الدقة AVX-512 [ 114 ]23
24clwbCLWB(تعليمات كتابة سطر ذاكرة التخزين المؤقت)كشف قفل الحافلةاستثناءات تصحيح أخطاء قفل ناقل البياناتبلاطة amxتعليمات تحميل/تخزين بلاطات AMX24
25نقطةتتبع معالج إنتلcldemoteCLDEMOTE(تعليمات خفض مستوى سطر التخزين المؤقت)amx-int8حساب بلاطات AMX على أعداد صحيحة 8 بت25
26avx512-pfتعليمات الجلب المسبق AVX-512(mprr) [ أ ]؟ibrs / spec_ctrlالتحكم في المضاربة، جزء من التحكم في الفروع غير المباشرة (IBC): المضاربة المقيدة بالفروع غير المباشرة (IBRS) وحاجز التنبؤ بالفروع غير المباشرة (IBPB) [ 115 ] [ 116 ]26
27avx512-erتعليمات AVX-512 الأسية والتبادليةموفديريMOVDIRIتعليماتستيبمُتنبئ التفرع غير المباشر أحادي الخيط، جزء من IBC [ 115 ]27
28avx512-cdتعليمات الكشف عن التعارضات في AVX-512movdir64bMOVDIR64Bتعليمات (تخزين مباشر 64 بايت)L1D_FLUSHIA32_FLUSH_CMD MSR28
29شاامتدادات SHA-1 و SHA-256enqcmdمتاجر قائمة الانتظار و EMQCMD/أو EMQCMDSالتعليماتقدرات معماريةIA32_ARCH_CAPABILITIES MSR (يسرد إجراءات التخفيف من مخاطر القنوات الجانبية التخمينية [ 115 ] )29
30avx512-bwتعليمات بايت وكلمة AVX-512sgx-lcإعدادات إطلاق بورصة سنغافورةالقدرات الأساسيةIA32_CORE_CAPABILITIES MSR (يسرد القدرات الأساسية الخاصة بالطراز)30
31avx512-vlامتدادات طول المتجه AVX-512pksمفاتيح الحماية لصفحات وضع المشرفsbdتعطيل تجاوز التخزين التخميني، [ 115 ] كإجراء تخفيفي لتجاوز التخزين التخميني (IA32_SPEC_CTRL)31
  1. 1 2 3 اعتبارًا من أبريل 2024، فإن بتات FZM وMPRR وSGX_TEM مدرجة فقط فيوثائق Intel TDX [ 112 ] ولم يتم تعيينها في أي معالج معروف.

EAX=7، ECX=1: الميزات الموسعة

هذا يُعيد علامات الميزات الموسعة في جميع السجلات الأربعة.

CPUID EAX=7,ECX=1: بتات الميزات الموسعة في EAX وEBX وECX وEDX
قليلإي إيه إكسEBXبورصة السلع الأوروبية (ECX)EDXقليل
قصيرميزةقصيرميزةقصيرميزةقصيرميزة
0sha512امتدادات SHA-512ببينIntel PPIN (رقم جرد المعالج المحمي): IA32_PPIN_CTL ( 04Eh) و IA32_PPIN ( 04Fh) MSRs.RDT_M_ غير متماثلقدرة مراقبة RDT غير المتماثلة(محجوز)0
1sm3امتدادات تجزئة SM3pbndkbتشفير التخزين الكامل: PBNDKBالتعليمات و TSE_CAPABILITY ( 9F1h) MSR.RDT_A_ غير متماثلقدرة تخصيص RDT غير المتماثلة(avx512-vnni-fp16)؟ [ أ ]1
2sm4امتدادات تشفير SM4(محجوز)(legacy_ reduced_isa )(X86S، [ 117 ] ملغى [ 118 ] )(avx512-vnni-int8)؟ [ أ ]2
3راو-إنتالعمليات الذرية عن بُعد على الأعداد الصحيحة: AADD، AAND، AOR، AXORتعليماتCPUID MAXVAL_ LIM_RMVإذا كانت القيمة 1، فلا يمكن ضبط البت 22 IA32_MISC_ENABLEعلى 1 لتقييد القيمة التي يتم إرجاعها بواسطة CPUID.(EAX=0):EAX[7:0].(محجوز)(avx512-ne-convert)؟ [ أ ]3
4avx-vnniتعليمات شبكة AVX العصبية المتجهة (VNNI) (مشفرة بتقنية VEX)(محجوز)(sipi64)SIPI 64 بت (مقاطعة بدء التشغيل بين المعالجات) (جزء من X86S الملغاة)avx-vnni-int8تعليمات AVX VNNI INT84
5avx512-bf16تعليمات AVX-512 للأرقام من نوع bfloat16(محجوز)MSR_IMMالأشكال الفورية RDMSRللتعليماتWRMSRNSavx-ne-convertتعليمات تحويل الأعداد العشرية بدون استثناءات AVX ( bfloat16 ↔FP32 و FP16 →FP32)5
6معشوقةالفصل الخطي لمساحة العناوين (CR4 بت 27)(محجوز)(محجوز)(محجوز)6
7cmpccxaddCMPccXADDتعليمات(محجوز)(محجوز)(محجوز)7
8archperf monextمراقبة الأداء المعماري - ورقة ممتدة (EAX=23h)(محجوز)(محجوز)مركب AMXدعم AMX للبلاطات "المعقدة" ( TCMMIMFP16PSو TCMMRLFP16PS)8
9(dedup) [ b ]؟(محجوز)(محجوز)(محجوز)9
10fzrmطول صفري سريع REP MOVSB(محجوز)(محجوز)avx-vnni-int16تعليمات AVX VNNI INT1610
11fsrsسريع وقصيرREP STOSB(محجوز)بارِعملحقات الحوسبة للذكاء الاصطناعي(avx512-vnni-int16)؟ [ أ ]11
12rsrcsسريع وقصير REP CMPSBوREP SCASB(محجوز)(محجوز)(محجوز)12
13(محجوز)(محجوز)(محجوز)utmrأحداث مؤقت المستخدم: IA32_UINTR_TIMER ( 1B00h) MSR13
14(محجوز)(محجوز)(محجوز)prefetchiتعليمات الجلب المسبق لذاكرة التخزين المؤقت للتعليمات ( PREFETCHIT0و PREFETCHIT1) [ ج ]14
15(محجوز)(محجوز)(محجوز)user_msrتعليمات الوصول إلى MSR في وضع المستخدم ( URDMSRو UWRMSR)15
16(محجوز)(محجوز)(محجوز)(avx512-bf16-ne)؟ [ أ ]16
17فريدإمكانية الإرجاع المرن وتوصيل الفعاليات [ 119 ](محجوز)(محجوز)uiret-uif-from-rflagsإذا كانت القيمة 1، فإن UIRETتعليمة (إرجاع مقاطعة المستخدم) ستضبط UIF (علامة مقاطعة المستخدم) على قيمة البت 1 من صورة RFLAGS التي تم إخراجها من المكدس.17
18lkgsLKGSالتعليمات [ 119 ](محجوز)(محجوز)cet-sssإذا كانت القيمة 1، فإن مكدسات الظل (SSS) الخاصة بمشرف فرض تدفق التحكم (CET) مضمونة عدم الانشغال المبكر طالما أن تبديل مكدس الظل لا يتسبب في حدوث أخطاء في الصفحات على المكدس الذي يتم التبديل إليه. [ 120 ] [ 121 ] [ 122 ]18
19wrmsrnsWRMSRNSالتعليمات (كتابة غير متسلسلة إلى سجلات MSR )(محجوز)(محجوز)avx10AVX10 Converged Vector ISA (انظر أيضًا leaf 24h) [ 123 ]19
20nmi_srcالإبلاغ عن مصادر NMI [ 119 ](محجوز)(محجوز)(محجوز)20
21amx-fp16تعليمات AMX لأرقام FP16(محجوز)(محجوز)APX_Fملحقات الأداء المتقدمة ، الأساس (يضيف ترميزات REX2 و EVEX الموسعة لدعم 32 GPRs، بالإضافة إلى بعض التعليمات الجديدة) [ 124 ]21
22hresetHRESETالتعليمات، IA32_HRESET_ENABLE ( 17DAh) MSR، و Processor History Reset Leaf (EAX=20h)(محجوز)(محجوز)شهادة السكرتيرإذا كان 1، فإن تقنيات بيئة التنفيذ الموثوقة ( Intel TDX و Intel SGX ) تدعم المصادقة المتجذرة في محرك الأمان الموجود على الشريحة.22
23avx-ifmaتعليمات AVX IFMA(محجوز)(محجوز)انتظرتعليمات MWAIT [ د ]23
24(محجوز)(محجوز)(محجوز)slsmوضع التزامن الثابت (البت 0 من IA32_INTEGRITY_STATUSسجل MSR متاح)24
25(محجوز)(محجوز)(محجوز)(محجوز)25
26لامإخفاء العناوين الخطي(محجوز)(محجوز)(محجوز)26
27msrlistRDMSRLISTوالتعليمات WRMSRLIST، و IA32_BARRIER ( 02Fh) MSR(محجوز)(محجوز)(محجوز)27
28(محجوز)(mpsadbw_512)؟ [ أ ](محجوز)(محجوز)28
29(محجوز)(محجوز)(محجوز)(محجوز)29
30invd_ disable_post_ bios_doneإذا كان الخيار 1، فإنه يدعم INVDمنع تنفيذ التعليمات بعد اكتمال BIOS.(avx512-rao-fp)؟ [ أ ](محجوز)(محجوز)30
31موفرزMOVRSوالتعليمات PREFETCHRST2المدعومة (قراءة الذاكرة/الجلب المسبق مع تلميح القراءة المشتركة)(avx512-rao-fp)؟ [ أ ](محجوز)(محجوز)31
  1. 1 2 3 4 5 6 7 8 اعتبارًا من أبريل 2026، فإن البتات "mpsadbw_512" و"avx512-rao-fp" و"avx-rao-fp" و"avx512-vnni-fp16" و"avx512-vnni-int8" و"avx512-ne-convert" و"avx512-vnni-int16" و"avx512-bf16-ne" مدرجة فقط في مجموعة من جداول ABI لوحدة Intel TDX من أبريل 2026 [ 125 ] وليست موجودة في أي معالج معروف.
  2. اعتبارًا من أبريل 2024، تم إدراج بت DEDUP فقط فيوثائق Intel TDX [ 112 ] ولم يتم تعيينه في أي معالج معروف.
  3. في معالجات AMD، لا يتم الإشارة إلى دعم تعليمات جلب التعليمات المسبقة من ذاكرة التخزين المؤقت بواسطة ،CPUID.(EAX=7,ECX=1):EDX[14]ولكن بدلاً من ذلك بواسطةCPUID.(EAX=8000_0021h):EAX[20] .
  4. قد يُشار إلى دعم التعليمة إما بواسطة CPUID . (EAX=1).ECX[3] أو CPUID.(EAX=7,ECX=1).EDX[23]. (يمكن تعيين أحدهما أو كليهما). يشير الأول إلى دعم التعليمة، بينما لا يُشير الثاني إلى وجودها من عدمه.هذاالخيار موجودًا في الأنظمة التي تدعم ميزة "Monitorless MWAIT" (والتي يُشار إليها بدورها بواسطة CPUID.(EAX=5).ECX[3] ).MWAITMONITORMONITORMWAITMONITOR

EAX=7، ECX=2: الميزات الموسعة

هذا يُعيد علامات الميزات الموسعة في EDX.

EAX و EBX و ECX محجوزة.

CPUID EAX=7,ECX=2: بتات الميزات الموسعة في EDX
قليلEDX
قصيرميزة
0psfdتم دعم تعطيل خاصية التنبؤ السريع لإعادة توجيه البيانات [ 126 ] . ( SPEC_CTRL(MSR 48h) بت 7)
1ipred_ctrlعناصر التحكم IPRED_DIS [ 127 ] مدعومة. ( SPEC_CTRLالبتات 3 و4)

يمنع IPRED_DIS تنفيذ التعليمات في هدف فرع غير مباشر بشكل تخميني حتى يتم حل عنوان هدف الفرع.

2rrsba_ctrlيدعم RRSBA تعطيل السلوك [ 128 ] [ 127 ]SPEC_CTRL ( البتات 5 و6) .
3ddpd_uتم دعم تعطيل جلب البيانات المسبق المعتمد على البيانات [ 129 ] . ( SPEC_CTRLالبت 8)
4bhi_ctrlتم دعم سلوك BHI_DIS_S [ 127 ]SPEC_CTRL ( البت 10) .

يمنع BHI_DIS_S تحديد الأهداف المتوقعة للفروع غير المباشرة المنفذة في الحلقة 0/1/2 بناءً على سجل الفروع من الفروع المنفذة في الحلقة 3.

5mcdt_noإذا تم ضبطه، فإن المعالج لا يُظهر توقيتًا يعتمد على تكوين MXCSR .
6تعطيل قفل UCتم دعم ميزة تعطيل قفل UC (مع استثناءات قفل UC التي تم الإبلاغ عنها كـ #AC).
7monitor_ mitg_noإذا تم ضبطه، فهذا يشير إلى أن التعليمات MONITOR/ UMONITORلا تتأثر بمشاكل الأداء/الطاقة الناتجة عن تجاوز التعليمات لسعة جدول تتبع الشاشة الداخلية. [ 130 ]
31:8 (محجوز)

EAX=0Dh: ميزات ومكونات حالة XSAVE

تُستخدم هذه الورقة لسرد ميزات XSAVE ومكونات الحالة.

صُممت امتدادات مجموعة تعليمات XSAVE لحفظ/استعادة حالة وحدة المعالجة المركزية الموسعة (عادةً لغرض تبديل السياق ) بطريقة قابلة للتوسيع لتشمل امتدادات جديدة لمجموعة التعليمات دون أن يحتاج رمز تبديل السياق في نظام التشغيل إلى فهم تفاصيل هذه الامتدادات الجديدة. ويتم ذلك من خلال تعريف سلسلة من مكونات الحالة ، لكل منها حجم وإزاحة ضمن منطقة حفظ محددة، ويتوافق كل منها مع مجموعة فرعية من الحالة المطلوبة لامتداد معين لوحدة المعالجة المركزية. EAX=0Dhويُستخدم مُعرّف وحدة المعالجة المركزية (CPUID) لتوفير معلومات حول مكونات الحالة التي تدعمها وحدة المعالجة المركزية وأحجامها/إزاحاتها، بحيث يتمكن نظام التشغيل من حجز المساحة المناسبة وتعيين بتات التمكين المرتبطة بها.

يمكن تقسيم مكونات الحالة إلى مجموعتين: حالة المستخدم (عناصر الحالة المرئية للتطبيق، مثل سجلات متجه AVX-512 )، وحالة المشرف (عناصر الحالة التي تؤثر على التطبيق ولكنها غير مرئية للمستخدم مباشرةً، مثل إعدادات مقاطعة وضع المستخدم). يتم تفعيل عناصر حالة المستخدم بتعيين بتاتها المرتبطة في XCR0سجل التحكم، بينما يتم تفعيل عناصر حالة المشرف بتعيين بتاتها المرتبطة في سجل إدارة الذاكرة IA32_XSS( 0DA0hMSR). تصبح عناصر الحالة المشار إليها مكونات الحالة التي يمكن حفظها واستعادتها باستخدام مجموعة تعليمات XSAVE/ .XRSTOR

تستطيع آلية XSAVE التعامل مع ما يصل إلى 63 مكونًا من مكونات الحالة بهذه الطريقة. يحتوي المكونان 0 و1 ( x87 و SSE على التوالي) على إزاحات وأحجام ثابتة. أما بالنسبة للمكونات من 2 إلى 62، فيمكن الاستعلام عن أحجامها وإزاحاتها وبعض العلامات الإضافية بتنفيذ الأمر CPUIDوتعيينها EAX=0Dhإلى ECXفهرس مكون الحالة. سيعيد هذا الأمر العناصر التالية في سجلات EAX وEBX وECX (مع حجز EDX):

CPUID EAX=0Dh, ECX≥2: معلومات مكونات حالة XSAVE
قليلإي إيه إكسEBXبورصة السلع الأوروبية (ECX)قليل
0حجم مكون الحالة (بالبايت)إزاحة (بالبايت) مكون الحالة من بداية منطقة الحفظ XSAVE/XRSTOR

(هذا الإزاحة يساوي 0 لمكونات حالة المشرف، حيث لا يمكن حفظها/استعادتها إلا باستخدام تعليمات XSAVES/ XRSTORS، والتي تستخدم دائمًا الضغط.)

مكون حالة المستخدم/المشرف:
  • 0=حالة المستخدم (مُفعّلة من خلال XCR0)
  • 1=حالة المشرف (مُفعّلة من خلال IA32_XSS)
0
1تفعيل محاذاة 64 بايت عند استخدام ضغط حفظ الحالة.

إذا تم ضبط هذا البت لمكون حالة، فسيتم عند تخزين الحالة مع الضغط، إدراج حشو بين مكون الحالة السابق ومكون الحالة الحالي حسب الحاجة لتوفير محاذاة 64 بايت. أما إذا لم يتم ضبط هذا البت، فسيتم تخزين مكون الحالة مباشرةً بعد المكون السابق.

1
2يدعم XFD Faulting لمكون الحالة.2
31:3 (محجوز)31:3

إن محاولة الاستعلام عن مكون حالة غير مدعوم بهذه الطريقة تؤدي إلى تعيين قيم EAX وEBX وECX وEDX جميعها إلى 0.

تُستخدم الأوراق الفرعية 0 و1 من CPUIDالورقة لتوفير معلومات عن الميزات:0Dh

CPUID EAX=0Dh,ECX=0: ميزات XSAVE
EBXبورصة السلع الأوروبية (ECX)EDX:EAX
الحد الأقصى لحجم منطقة حفظ XSAVE (بالبايت) لمجموعة مكونات الحالة المحددة حاليًا في XCR0.الحد الأقصى لحجم منطقة حفظ XSAVE (بالبايت) إذا XCR0تم تمكين جميع مكونات الحالة المدعومة على وحدة المعالجة المركزية هذه في نفس الوقت.خريطة بتية 64 بت لمكونات الحالة مدعومة XCR0على وحدة المعالجة المركزية هذه.
CPUID EAX=0Dh,ECX=1: ميزات XSAVE الموسعة
إي إيه إكسEBXEDX:ECX
علامات ميزة XSAVE (انظر الجدول أدناه)حجم (بالبايت) منطقة XSAVE التي تحتوي على جميع مكونات الحالة التي تم تعيينها XCR0ودمجها حاليًا IA32_XSS.خريطة بتية 64 بت لمكونات الحالة مدعومة IA32_XSSعلى وحدة المعالجة المركزية هذه.
CPUID EAX=0Dh,ECX=1: علامات ميزة XSAVE في EAX
قليلإي إيه إكس
قصيرميزة
0xsaveoptXSAVEOPTالتعليمات: احفظ مكونات الحالة التي تم تعديلها منذ آخر مرةXRSTOR
1xsavecXSAVECالتعليمات: حفظ/استعادة الحالة مع الضغط
2xgetbv_ecx1XGETBVبدعمECX=1
3xssXSAVESوالتعليمات XRSTORSو IA32_XSSMSR: حفظ/استعادة الحالة مع الضغط، بما في ذلك حالة المشرف.
4xfdيدعم XFD (تعطيل الميزات الموسعة)
31:5 (محجوز)

اعتبارًا من يوليو 2023، فإن مكونات حالة XSAVE التي تم تحديدها معماريًا هي:

مكونات حالة الحفظ (XSAVE)
فِهرِسوصفمُفعّل بواسطة
0حالة x87XCR0 [ أ ]
1حالة SSE : XMM0- XMM15وMXCSRXCR0
2حالة AVX : النصف العلوي من YMM0إلىYMM15
3حالة MPXBND0 : - BND3سجلات الحدود
4حالة MPX : BNDCFGUوالسجلاتBNDSTATUS
5حالة AVX-512 : سجلات قناع العمليات k0-k7
6حالة AVX-512 "ZMM_Hi256": النصف العلوي من ZMM0إلىZMM15
7حالة AVX-512 "Hi16_ZMM": ZMM16-ZMM31
8حالة تتبع المعالجIA32_XSS
9سجل مفاتيح حماية المستخدم (PKRU)XCR0
10حالة PASID (معرف مساحة عنوان العملية)IA32_XSS
11حالة CET_U (تقنية فرض تدفق التحكم: وظائف وضع المستخدم MSRs)
12حالة CET_S (CET: مؤشرات مكدس الظل للحلقات 0 و1 و2)
13حالة HDC (دورة تشغيل الأجهزة)
14حالة مقاطعات وضع المستخدم (UINTR)
15حالة سجل الفرع الأخير (LBR)
16حالة HWP (التحكم في حالة P للأجهزة)
17حالة تكوين بلاطة AMX :TILECFGXCR0
18سجلات بيانات بلاطات AMX: tmm0-tmm7
19سجلات APX العامة الموسعة: r16- r31[ 124 ]
من 20 إلى 61 (محجوز)
62تقنية التنميط الخفيف (LWP) (خاصة بمعالجات AMD)XCR0
63(محجوز) [ ب ]
  1. تم توصيل البت 0 منXCR0بشكل ثابت بالقيمة 1، بحيث تدعم تعليمات XSAVE دائمًا حفظ/استعادة حالة x87.
  2. بالنسبةXCR0وIA32_XSS، تم حجز البت 63 تحديدًا لتوسيع متجه البت - وهذا يمنع وجود مكون الحالة 63.

EAX=12h: إمكانيات SGX

توفر هذه الورقة معلومات حول الإمكانيات المدعومة لميزة Intel Software Guard Extensions (SGX). تحتوي الورقة على عدة أوراق فرعية، يتم اختيارها باستخدام ECX.

يوفر الفرع الفرعي 0 معلومات حول وظائف SGX المدعومة في EAX وأقصى أحجام SGX المدعومة في EDX؛ ECX محجوز. يوفر EBX خريطة بتات يمكن ضبطها في حقل MISCSELECT في SECS (بنية التحكم في SGX Enclave) - يُستخدم هذا الحقل للتحكم في المعلومات المكتوبة إلى منطقة MISC في SSA (منطقة حفظ حالة SGX) عند حدوث AEX (خروج SGX غير متزامن من Enclave).

CPUID EAX=12h,ECX=0: وظائف SGX الطرفية، MISCSELECT والأحجام القصوى
قليلإي إيه إكسEBXEDXقليل
قصيرميزةقصيرميزةقصيرميزة
0sgx1وظائف أوراق SGX1معلومات إضافيةاختيار غير دقيق: الإبلاغ عن معلومات حول خطأ الصفحة واستثناء الحماية العامة الذي حدث داخل المنطقة الآمنةحجم MaxEnclave_Not64Log2 لحجم المنطقة المعزولة الأقصى المدعوم في الوضع غير 64 بت0
1sgx2وظائف SGX2 الطرفيةسي بي إنفواختيار خاطئ: الإبلاغ عن معلومات حول استثناء حماية التحكم الذي حدث داخل المنطقة الآمنة1
2(محجوز)(محجوز)2
3(محجوز)(محجوز)3
4(محجوز)(محجوز)4
5البرمجيات مفتوحة المصدر [ أ ]ENCLVالأوراق: EINCVIRTCHILD، EDECVIRTCHILDوESETCONTEXT(محجوز)5
6ENCLS_C [ أ ] [ 132 ]ENCLSأوراق: ETRACKC، ERDINFO، ELDBC،ELDUC(محجوز)6
7تقرير التحقق 2ENCLUورقة:EVERIFYREPORT2(محجوز)7
8(محجوز)(محجوز)حجم MaxEnclave_64لوغاريتم 2 لأقصى حجم للمحمية المدعوم في وضع 64 بت8
9(محجوز)(محجوز)9
10EUPDATESVNENCLSورقة:EUPDATESVN(محجوز)10
11EDECCSSAENCLUورقة:EDECCSSA(محجوز)11
12256BITSGXENCLUوظائف الأوراق EGETKEY256وEREPORT2(محجوز)12
13(محجوز)(محجوز)13
14(محجوز)(محجوز)14
15(محجوز)(محجوز)15
31:16 (محجوز)(محجوز)(محجوز)31:16 
  1. ١ ٢ تم إدراج بتات امتدادات الاكتتاب الزائد لـ SGX (CPUID.(EAX=12h,ECX=0):EAX[bits 5 and 6]) في المراجعات من ٠٦٥ إلى ٠٨٧ من Intel SDM، ولكن تمت إزالتها من المراجعة ٠٨٨ فصاعدًا. من المعروف أن هذه البتات كانت مُفعّلة في بعضمعالجات IceLake-U على الأقل. [ ١٣١ ]

توفر الورقة الفرعية 1 خريطة بتات تحدد البتات التي يمكن ضبطها في حقل السمات (ATTRIBUTES) ذي 128 بتًا في سجلات SECS الموجودة في EDX:ECX:EBX:EAX (ينطبق هذا على نسخة SECS المستخدمة كمدخل لوظيفة ENCLS[ECREATE]الورقة). أما البتات الـ 64 العليا (الموجودة في EDX:ECX) فهي خريطة بتات تحدد البتات التي يمكن ضبطها في XFRM (قناع طلب ميزة X) - هذا القناع هو قناع بتات يحدد مكونات حالة وحدة المعالجة المركزية (انظر الورقة 0Dh) التي سيتم حفظها في SSA في حالة AEX؛ وله نفس تخطيط XCR0سجل التحكم. أما البتات الأخرى فهي موجودة في EAX وEBX، كما يلي:

CPUID EAX=12h,ECX=1: بتات SGX القابلة للضبط في SECS.ATTRIBUTES
قليلإي إيه إكسEBXقليل
قصيرميزةقصيرميزة
0(تهيئة)(يجب أن يكون 0) [ أ ](محجوز)0
1تصحيح الأخطاءالسماح للمصحح بقراءة وكتابة بيانات المنطقة الآمنة EDBGRDباستخدامEDBGWR1
2MODE64BITبيئة معزولة بنظام 64 بت2
3(محجوز)3
4مفتاح التزويدمفتاح التزويد متاح منEGETKEY4
5مفتاح EINITTOKENEINITمفتاح الرمز المميز متوفر منEGETKEY5
6بتوقيت وسط أوروباتتيح سمات تقنية فرض تدفق التحكم (CET)6
7KSSالفصل والمشاركة الرئيسية7
8(محجوز)8
9(محجوز)9
10AEXNOTIFYقد تتلقى الخيوط داخل المنطقة المعزولة إشعارات AEX [ 133 ]10
31:11 (محجوز)31:11 
  1. بالنسبة لنسخة SECS الموجودة داخل منطقة معزولة، تُستخدم البتة 0 (INIT) من SECS.ATTRIBUTES للإشارة إلى أن المنطقة المعزولة قد تم تهيئتهاENCLS[EINIT]. يجب أن تكون هذه البتة 0 في نسخة SECS المُدخلة إلى الدالةENCLS[CREATE].

تُستخدم الأوراق الفرعية 2 وما فوق لتوفير معلومات حول مناطق الذاكرة الفعلية المتاحة للاستخدام كأقسام EPC (ذاكرة التخزين المؤقت لصفحة Enclave) ضمن SGX.

CPUID EAX=12h,ECX≥2: معلومات قسم ذاكرة التخزين المؤقت لصفحات SGX Enclave
أجزاءإي إيه إكسEBXبورصة السلع الأوروبية (ECX)EDXأجزاء
3:0نوع الورقة الفرعية:
  • 0000: غير صالح
  • 0001: قسم شهادة أداء الطاقة
  • أخرى: محجوزة
البتات من 51 إلى 32 من عنوان القاعدة الفيزيائية لقسم EPCخصائص قسم شهادة أداء الطاقة:
  • 0000: غير صالح
  • 0001: يتمتع بالسرية والنزاهة وحماية إعادة التشغيل
  • 0010: يتمتع بحماية سرية فقط
  • 0011: يتمتع بحماية السرية والنزاهة
  • أخرى: محجوزة
البتات من 51 إلى 32 من حجم قسم EPC3:0
11:4 (محجوز)(محجوز)11:4 
19:12 البتات من 31 إلى 12 من عنوان القاعدة الفيزيائية لقسم EPCالبتات من 31 إلى 12 من حجم قسم EPC19:12 
31:20 (محجوز)(محجوز)31:20 

EAX=14h: تتبع المعالج

توفر هذه الورقة معلومات عن ميزات Intel Processor Trace (المعروف أيضًا باسم Real Time Instruction Trace).

بالنسبة للورقة الفرعية 0، فإن القيمة المُعادة في EAX هي فهرس أعلى ورقة فرعية مدعومة لـ CPUID مع EAX=14h. يوفر كل من EBX وECX علامات الميزات، بينما EDX محجوز.

CPUID EAX=14h,ECX=0: بتات ميزة تتبع المعالج في EBX و ECX
قليلEBXبورصة السلع الأوروبية (ECX)قليل
قصيرميزةقصيرميزة
0مرشح cr3يدعم ترشيح CR3توباوتآلية إخراج ToPA (جدول العناوين الفيزيائية) لحزم التتبع المدعومة0
1cyc_accيدعم معدل حزم PSB (حدود تدفق الحزم) القابل للتكوين ووضع الدقة الدورية (حزم CYC).مينترييمكن أن تحتوي جداول TopA على عدة مدخلات إخراج1
2مرشح IPيدعم النظام تصفية عناوين IP، وتصفية TraceStop، والحفاظ على سجلات PT MSRs عبر إعادة الضبط الدافئة.sngl_ rng_outنظام الإخراج أحادي النطاق مدعوم2
3إم تي سييدعم النظام حزم التوقيت MTC (عداد الوقت المصغر)، كما يدعم قمع حزم COFI (تغيير تعليمات التدفق).نظام النقل التتبعييدعم النظام الفرعي لنقل التتبع الإخراج3
4ptwritePTWRITEالتعليمات المدعومة(محجوز)4
5تتبع أحداث الطاقةيدعم Power Event Trace(محجوز)5
6pmi_preserveدعم الحفاظ على PSB و PMI (مقاطعة مراقبة الأداء)(محجوز)6
7تتبع الأحداثيدعم إنشاء حزم تتبع الأحداث(محجوز)7
8tnt_disتم دعم تعطيل إنشاء حزم TNT (تم أخذ الفرع - لم يتم أخذه).(محجوز)8
9PTTTيدعم PTTT (تتبع مُشغّل تتبع المعالج)(محجوز)9
30:10 (محجوز)(محجوز)30:10 
31(محجوز)شفةتنسيق IP (مؤشر التعليمات) لحزم التتبع التي تحتوي على حمولات IP:
  • 0=RIP (عنوان IP الفعال)
  • 1=LIP (عنوان IP ذو عنوان خطي، مع إضافة عنوان CS الأساسي)
31
CPUID EAX=14h,ECX=1: معلومات توليد حزمة تتبع المعالج في EAX و EBX و ECX
قليلإي إيه إكسEBXبورصة السلع الأوروبية (ECX)قليل
قصيرميزةقصيرميزةقصيرميزة
0رينجسنتعدد نطاقات العناوين القابلة للتكوين للتصفيةعتبات الدورةخريطة نقطية لترميزات قيمة عتبة الدورة المدعومةICNTإجراء التشغيل EN_ICNT مدعوم0
1إيقاف مؤقتيدعم الإجراءان TRACE_PAUSE و TRACE_RESUME1
2(محجوز)2
7:3(محجوز)(محجوز)7:3
10:8TRIGGER_ CFG_CNTعدد سجلات IA32_RTIT_TRIGGERx_CFG MSRs.

(عدد المحفزات المدعومة هو 4 أضعاف هذه القيمة)

(محجوز)10:8
14:11(محجوز)(محجوز)14:11
15(محجوز)TRIGGER_ DR_MATCHيدعم مُدخل التشغيل مطابقة DR15
31:16معدل mtcخريطة نقطية لترميزات فترات MTC المدعومةمعدل psbخريطة نقطية لترميزات ترددات PSB القابلة للتكوين المدعومة(محجوز)31:16

EAX=15h و EAX=16h: ترددات ساعة المعالج، وTSC، والناقل، وساعة الكريستال الأساسية

توفر هاتان الورقتان معلومات حول الترددات المختلفة في وحدة المعالجة المركزية في EAX و EBX و ECX (تم حجز EDX في كلتا الورقتين).

CPUID EAX=15h: معلومات تردد TSC و Core Crystal
إي إيه إكسEBXبورصة السلع الأوروبية (ECX)
نسبة تردد TSC إلى تردد ساعة الكريستال الأساسية، المقامنسبة تردد TSC إلى تردد ساعة الكريستال الأساسية، البسط [ أ ]تردد ساعة الكريستال الأساسية، بوحدة هرتز [ أ ]
CPUID EAX=16h: ترددات مواصفات المعالج والناقل [ b ]
أجزاءإي إيه إكسEBXبورصة السلع الأوروبية (ECX)أجزاء
15:0التردد الأساسي للمعالج (بالميغاهرتز) [ أ ]أقصى تردد للمعالج (بالميغاهرتز) [ أ ]تردد الناقل/المرجع (بالميغاهرتز) [ أ ]15:0
31:16(محجوز)(محجوز)(محجوز)31:16
  1. 1 2 3 4 5 الحقل غير مرقم إذا كان صفرًا.
  2. قيم التردد التي أبلغ عنها leaf 16h هي ترددات مواصفات المعالج - وهي ثابتة للمعالج المحدد ولا تعكس بالضرورة سرعة ساعة وحدة المعالجة المركزية الفعلية في وقت استدعاء CPUID.

إذا كانت القيم المُعادة في EBX و ECX للورقة 15h غير صفرية، فإن تردد TSC ( عداد الطابع الزمني ) بالهرتز يُعطى بواسطة TSCFreq = ECX*(EBX/EAX).

في بعض المعالجات (مثل Intel Skylake )، تكون قيمة CPUID_15h_ECX صفرًا، بينما تكون قيمة CPUID_16h_EAX موجودة وليست صفرًا. في جميع المعالجات المعروفة التي ينطبق عليها هذا الأمر، [ 134 ] يكون تردد TSC مساويًا لتردد المعالج الأساسي، ويمكن حساب تردد ساعة بلورة النواة بالهرتز كما يلي CoreCrystalFreq = (CPUID_16h_EAX * 10000000) * (CPUID_15h_EAX/CPUID_15h_EBX).

في المعالجات التي تُدرج نسبة تردد ساعة الكريستال الأساسية/TSC في CPUID leaf 15h، سيكون تردد مؤقت APIC هو تردد ساعة الكريستال الأساسية مقسومًا على القاسم المحدد بواسطة سجل تكوين التقسيم الخاص بـ APIC. [ 135 ]

EAX=17h: تعداد سمات مورد SoC

توجد هذه الورقة في الأنظمة التي تُنفَّذ فيها نواة معالجة مركزية x86 ضمن نظام على شريحة (SoC ) من مُصنِّع آخر، فبينما تُقدِّم الأوراق الأخرى CPUIDمعلومات حول نواة المعالجة المركزية x86، تُقدِّم هذه الورقة معلومات حول النظام على الشريحة. وتأخذ هذه الورقة فهرس ورقة فرعية في ECX.

تقوم الدالة Sub-leaf 0 بإرجاع مؤشر الورقة الفرعية الأقصى في EAX (على الأقل 3)، ومعلومات تعريف SoC في EBX/ECX/EDX:

CPUID EAX=17h,ECX=0: معلومات تعريف النظام على الشريحة (SoC)
قليلEBXبورصة السلع الأوروبية (ECX)EDXقليل
15:0معرف بائع SoCمعرف مشروع SoCتحديد خطوة SoC ضمن مشروع SoC15:0
16مخطط تعريف مورد SoC
  • 0  : معرفات البائعين التي خصصتها شركة إنتل [ أ ]
  • 1  : مخطط التعداد القياسي للصناعة [ ب ]
16
31:17(محجوز)31:17
  1. اعتبارًا من مايو 2024، من المعروف أن شركة إنتل قد خصصت معرفات البائعين التالية:
    بطاقة تعريفبائع
    1سبريدتروم [ 136 ]
  2. اعتبارًا من مايو 2024، لا تحدد وثائق Intel مخطط تعداد "المعيار الصناعي" الذي يجب استخدامه لمعرف البائع في EBX[15:0] إذا تم تعيين EBX[16].

تُعيد الدوال الفرعية من 1 إلى 3 سلسلة نصية بطول 48 بايت تُشير إلى اسم مُصنِّع المعالج (SoC) بتنسيق UTF-8 . تُعيد الدالة الفرعية 1 أول 16 بايت بالترتيب التالي: EAX، EBX، ECX، EDX؛ وتُعيد الدالة الفرعية 2 الـ 16 بايت التالية؛ وتُعيد الدالة الفرعية 3 آخر 16 بايت. يُسمح بأن تنتهي السلسلة بحرف فارغ، ولكن ليس شرطًا .

EAX=18h: التسلسل الهرمي والطوبولوجيا لـ TLB

توفر هذه الورقة معلومات حول مخازن الترجمة المؤقتة (TLBs ) المتاحة لنواة المعالج التي CPUIDتُنفذ عليها التعليمات. كما توفر هذه الورقة عدة أوراق فرعية، يتم اختيارها باستخدام ECX.

عند استدعائها مع ECX=0، فإنها ستعيد فهرس أعلى ورقة فرعية مدعومة في EAX وجميع الأصفار في البتات الخمسة السفلية من EDX - البتات المتبقية من EDX، بالإضافة إلى EBX وECX، محجوزة.

عند استدعاء هذه الدالة مع ECX≠0، فإنها تُعيد معلومات حول ذاكرة الترجمة (TLB)، حيث يُحدد ECX (الذي يتراوح من 1 إلى أعلى فرع مدعوم) ذاكرة الترجمة التي تُريد إرجاع معلومات عنها. قد تظهر ذاكرات الترجمة لمعالج مُعين بأي ترتيب. تتضمن المعلومات المُعادة لذاكرة ترجمة مُعينة عدد المجموعات في ECX، بالإضافة إلى معلومات إضافية في EBX وEDX (EAX محجوز).

CPUID EAX=18h,ECX≠0: معلومات TLB
قليلEBXEDXقليل
قصيرميزةقصيرميزة
04KB_ENTRIESيدعم TLB إدخالات للصفحات بحجم 4 كيلوبايتيكتبنوع TLB. القيم التالية مُعرّفة:
  • 0: (لا شيء) [ أ ]
  • 1: ذاكرة الترجمة للبيانات
  • 2: تعليمات TLB
  • 3: ذاكرة الترجمة الموحدة (التعليمات + البيانات)
  • 4: ذاكرة تخزين مؤقتة لتحميل البيانات فقط
  • 5: ذاكرة التخزين المؤقت للبيانات فقط
  • 6-31: محجوز
0
12MB_ENTRIESيدعم TLB إدخالات للصفحات الضخمة بحجم 2 ميجابايت1
24MB_ENTRIESيدعم TLB إدخالات للصفحات الضخمة بحجم 4 ميجابايت2
31GB_ENTRIESيدعم TLB إدخالات للصفحات الضخمة بحجم 1 جيجابايت3
4(محجوز)4
7:5رقم المستوىمستوى ذاكرة التخزين المؤقت للترجمة (بدءًا من 1)7:5
8التقسيمتقسيم ذاكرة التخزين المؤقت للترجمة (TLB):
  • 0: تقسيم مرن بين المعالجات المنطقية التي تشترك في ذاكرة الترجمة السريعة هذه
  • 1-7: محجوزة
عضو كاملTLB الترابطي بالكامل8
10:9(محجوز)10:9
13:11(محجوز)13:11
15:14MAX_LP_ADDRESSABLE_IDS​الحد الأقصى لعدد المعرفات القابلة للعنونة للمعالجات المنطقية التي تشترك في ذاكرة الترجمة السريعة هذه (ناقص 1)15:14
25:16عدد الطرقعدد طرق الترابط25:16
31:26(محجوز)31:26
  1. إذا تم إرجاع EDX[4:0] كـ 0، فسيتم اعتبار الورقة الفرعية غير صالحة - فهي لا تصف TLB، ولا توجد أي بيانات أخرى تم إرجاعها في EBX أو ECX أو البتات المتبقية من EDX صالحة.

    من الممكن أن تظهر ورقة فرعية صالحة بعد ورقة فرعية غير صالحة.

EAX=19h: ميزات قفل المفاتيح من إنتل

توفر هذه الصفحة معلومات عن ميزات Intel Key Locker في EAX وEBX وECX. EDX محجوز.

CPUID EAX=19h: بتات ميزة قفل المفاتيح في EAX وEBX وECX
قليلإي إيه إكسEBXبورصة السلع الأوروبية (ECX)قليل
قصيرميزةقصيرميزةقصيرميزة
0cpl0_ restrictيدعم نظام قفل المفاتيح CPL0 فقطaes_kleتم تفعيل تعليمات "قفل المفاتيح" AESلا يوجد نسخ احتياطيمعلمة عدم النسخ الاحتياطي إلى LOADIWKEYمدعومة0
1no_encrypt_ restrictتقييد قفل المفاتيح بعدم دعم التشفير(محجوز)rand_ iwkeyيدعم ترميز KeySource القيمة 1 (عشوائية مفتاح التغليف الداخلي).1
2no_decrypt_ restrictيدعم قفل المفاتيح تقييد عدم فك التشفيرaes_wide_klتعليمات AES "خزانة المفاتيح العريضة" مدعومة(محجوز)2
3(تقييد العملية) [ أ ](محجوز)(محجوز)3
4(محجوز)نسخة احتياطية لمفتاح iwkey"Key Locker" MSRs and backup of internal wrapping key supported(reserved)4
31:5 (reserved)(reserved)(reserved)31:5 
  1. As of April 2024, the "Process Restriction" bit is listed only in Intel TDX documentation[112] and is not set in any known processor.

EAX=1Dh: Intel AMX Tile Information

When ECX=0, the highest supported "palette" subleaf is enumerated in EAX. When ECX≥1, information on palette n is returned.

CPUID EAX=1Dh,ECX≥1: AMX Tile Palette n Information
BitsEAXEBXECXEDXBits
ShortFeatureShortFeatureShortFeatureShortFeature
15:0total_tile_bytesSize of all tile registers, in bytes (8192)bytes_per_row(64)max_rows(16)(reserved)15:0
31:16bytes_per_tileSize of one tile, in bytes (1024)max_namesNumber of tile registers (8)(reserved)(reserved)31:16

EAX=1Eh: Intel AMX Tile Multiplier (TMUL) Information

This leaf returns information on the AMXTMUL (tile multiplier) unit. The leaf provides multiple sub-leaves, selected with ECX.

Subleaf 0 returns maximum supported sub-leaf in EAX and basic TMUL information in EBX; subleaf 1 returns additional feature information in EAX.

CPUID EAX=1Eh,ECX=0: AMX TMUL Information Main Leaf
BitsEBXECXEDXBits
ShortFeatureShortFeatureShortFeature
7:0tmul_maxkMaximum number of rows or columns (16)(reserved)(reserved)7:0
23:8tmul_maxnMaximum number of bytes per column (64)(reserved)(reserved)23:8
31:24(reserved)(reserved)(reserved)31:24
CPUID EAX=1Eh,ECX=1: AMX TMUL feature information
BitsEAXEBXECXEDXBits
ShortFeatureShortFeatureShortFeatureShortFeature
0amx-int88-bit integer support(reserved)(reserved)(reserved)0
1amx-bf16bfloat16 support(reserved)(reserved)(reserved)1
2amx-complexComplex number support(reserved)(reserved)(reserved)2
3amx-fp16float16 support(reserved)(reserved)(reserved)3
4amx-fp8float8 support(reserved)(reserved)(reserved)4
5(amx-transpose)[a](Transposition instruction support)(reserved)(reserved)(reserved)5
6amx-tf32[b](TensorFloat-32 ("FP19") support)(reserved)(reserved)(reserved)6
7amx-avx512AMX-AVX512 support(reserved)(reserved)(reserved)7
8amx-movrsAMX-MOVRS support(reserved)(reserved)(reserved)8
31:9(reserved)(reserved)(reserved)(reserved)31:9
  1. Previously listed as a future extension,[137] but was removed in version 059.[138]
  2. Previously listed as a future extension, but was removed in version 062.[139]

EAX=21h: Reserved for TDX enumeration

عند تفعيل Intel TDX ( امتدادات نطاق الثقةCPUID )، سيتم اعتراض محاولات تنفيذ التعليمات من قِبل نظام تشغيل ضيف يعمل بنظام نطاق الثقة (TD) بواسطة وحدة TDX. عند CPUIDاستدعاء هذه الوحدة مع EAX=21h( ECX=0الورقة 21h، الورقة الفرعية 0)، ستُعيد فهرس أعلى ورقة فرعية مدعومة للورقة المدخلة 21h، EAXبالإضافة إلى سلسلة تعريف مُورّد وحدة TDX كسلسلة ASCII مكونة من 12 بايت في EBX، EDX، ECX (بهذا الترتيب). يُعيد تطبيق وحدة Intel الخاص سلسلة تعريف المُورّد (مع أربع مسافات في النهاية) [ 140 ] - بالنسبة لهذه الوحدة، لا تتوفر معلومات إضافية عن الميزات من خلال ، ويجب الحصول عليها بدلاً من ذلك من خلال تعليمات TDX المُخصصة ."IntelTDX    "CPUIDTDCALL

هذه الورقة محجوزة في الأجهزة وستقوم (على المعالجات التي تكون أعلى ورقة أساسية فيها هي 21hأو أعلى) بإرجاع 0 في EAX/EBX/ECX/EDX عند تشغيلها مباشرة على وحدة المعالجة المركزية.

EAX=24h, ECX=0: AVX10 Converged Vector ISA

يُعيد هذا الحد الأقصى للأوراق الفرعية المدعومة في EAX ومعلومات ميزة AVX10 في EBX. [ 123 ] (ECX وEDX محجوزان.)

CPUID EAX=24h, ECX=0: بتات ميزة AVX10 في EBX
قليلEBX
قصيرميزة
7:0إصدار vector_ isa_إصدار AVX10 Converged Vector ISA (≥1)
15:8(محجوز)
18:16(محجوز كـ 111ب) [ أ ]
31:19(محجوز)
  1. صُممت هذه البتات الثلاث في الأصل للإشارة إلى "عرض المتجه المدعوم"، حيث يشير البت 16 إلى دعم متجه 128 بت، والبت 17 إلى 256 بت، والبت 18 إلى 512 بت. وكان يُقال إن وحدات المعالجة المركزية التي تدعم 128 بت كحد أقصى تدعم "AVX10/128" ، وتلك التي تدعم 256 بت كحد أقصى تدعم "AVX10/256" ، وتلك التي تدعم 512 بت كحد أقصى تدعم "AVX10/512" . ويشير الرقم الذي يلي الشرطة المائلة إلى أقصى عرض متجه مدعوم. بعد فترة وجيزة من الإعلان عن AVX10.1، تخلت إنتل عن خططها لدعم AVX10/128 ، [ 141 ] على الأرجح بعد اعتراضات من المطورين ، مما جعل عرضي المتجه الأقصىين المدعومين هما 256 بت و512 بت فقط. مع AVX10.2، تخلت إنتل تمامًا عن التمييز بين عرضي المتجه، واشترطت دعم متجه 512 بت. بما أن وحدات المعالجة المركزية الوحيدة التي تدعم AVX10.1 كانت مبنية على معمارية Granite Rapids ، وهي تصميم يعتمد على نواة P فقط (والذي أصبح لاحقًا يدعم AVX10/512 )، لم يتم شحن أي وحدات معالجة مركزية تدعم AVX10/256 . بعبارة أخرى، كانت وحدات المعالجة المركزية الوحيدة التي تم شحنها والمزودة بتقنية AVX10 تدعم 128 و256 و512 بت، مما يجعل البتات الثلاثة جميعها 111 بت. هذه البتات موثقة الآن على أنها محجوزة، ولكنها تُقرأ 111 بت.

EAX=24h, ECX=1: ميزات AVX10 المنفصلة

تم حجز Subleaf 1 لميزات AVX10 غير المرتبطة بإصدار معين.

CPUID EAX=24h, ECX=1: ميزات AVX10 المنفصلة في ECX
قليلبورصة السلع الأوروبية (ECX)
قصيرميزة
0(VPMM)(ضرب المصفوفات المعبأة باستخدام امتداد المتجهات) [ 142 ]
1(محجوز)
2AVX10_VNNI_INTتعليمات AVX10.2 VNNI [ أ ] [ 143 ]
3AVX10_V2_AUXتعليمات AVX10.2 المساعدة [ 144 ]
31:4(محجوز)
  1. توجد تعليمات AVX10.2 VNNI إذا كان إصدار AVX10 هو 2 أو أعلى (انظر CPUID.(EAX=24h).EBX[7:0]) أو تم تعيين بت AVX10_VNNI_INT.

EAX=2000'0000h: أعلى وظيفة Xeon Phi تم تنفيذها

تُعاد أعلى دالة في EAX. هذه الورقة موجودة فقط على معالجات Xeon Phi . [ 145 ]

EAX=20000001h: بتات ميزات Xeon Phi

تقوم هذه الدالة بإرجاع علامات الميزات.

CPUID EAX=20000001h: بتات ميزات Xeon Phi
قليلإي إيه إكسEBXبورصة السلع الأوروبية (ECX)EDXقليل
قصيرميزةقصيرميزةقصيرميزةقصيرميزة
3:0(محجوز)(محجوز)(محجوز)(محجوز)3:0
4(محجوز)(محجوز)(محجوز)k1omK1OM [ 145 ]4
31:5(محجوز)(محجوز)(محجوز)(محجوز)31:5

EAX=4000'0000h-4FFFF'FFFh: محجوز للمشرفين الافتراضيين

عند CPUIDتنفيذ التعليمات في بيئة المحاكاة الافتراضية Intel VT-x أو AMD-v ، سيقوم برنامج إدارة الأجهزة الافتراضية باعتراضها، مما يُمكّنه من إرجاع CPUIDعلامات ميزات تختلف عن تلك الموجودة في الأجهزة الأساسية. لا يتم تنفيذ CPUIDهذه العلامات في الأجهزة، وهي محجوزة لاستخدام برامج إدارة الأجهزة الافتراضية لتوفير معلومات تعريفية وميزات خاصة بها من خلال آلية الاعتراض هذه.40000000h4FFFFFFFh

بالنسبة لـ leaf 40000000h، يُتوقع من برنامج إدارة الأجهزة الافتراضية (Hypervisor) إرجاع فهرس أعلى قيمة CPUID مدعومة في EAX، وسلسلة تعريف مكونة من 12 حرفًا في EBX، ECX، EDX (بهذا الترتيب). بالنسبة لـ leaf 40000001h، قد يُرجع برنامج إدارة الأجهزة الافتراضية توقيع تعريف الواجهة في EAX - على سبيل المثال، قد تُرجع برامج إدارة الأجهزة الافتراضية التي ترغب في الإعلان عن توافقها مع Hyper -V0x31237648 سلسلة تعريف الواجهة "Hv#1"في EAX. [ 146 ] [ 147 ] تختلف تنسيقات leaf 40000001hو leaf حتى أعلى قيمة مدعومة باختلاف برنامج إدارة الأجهزة الافتراضية. عادةً ما تقوم برامج إدارة الأجهزة الافتراضية التي تُنفذ هذه القيم بتعيين البت 31 من ECX لـ CPUID leaf 1 للإشارة إلى وجودها.

قد توفر برامج إدارة الأجهزة الافتراضية التي تعرض أكثر من واجهة واحدة مجموعات إضافية من أوراق CPUID للواجهات الإضافية، بمسافة محددة بين 100hالأوراق لكل واجهة. [ 148 ] ومن أمثلة برامج إدارة الأجهزة الافتراضية التي تفعل ذلك ما يلي:

  • عندما يتم تكوين QEMU لتوفير واجهات Hyper-V و KVM ، فإنه سيوفر معلومات Hyper-V بدءًا من CPUID leaf 40000000hومعلومات KVM بدءًا من leaf 40000100h. [ 149 ] [ 150 ]
  • عندما يتم تكوين Xen لتوفير محاكاة Hyper-V، فإنه سيوفر معلومات Hyper-V بدءًا من CPUID leaf 40000000hومعلومات Xen بدءًا من leaf 40000100h. [ 151 ]

40000000hتتضمن بعض برامج إدارة الأجهزة الافتراضية المعروفة بإرجاع سلسلة معرف برنامج إدارة الأجهزة الافتراضية في ورقة البيانات ما يلي :

CPUID EAX=4000'0000h: سلسلة معرف المشرف المكونة من 12 حرفًا في EBX، ECX، EDX
برنامج إدارة الأجهزة الافتراضيةسلسلة المعرف (ASCII)ملحوظات
مايكروسوفت هايبر-في"Microsoft Hv"[ 146 ]
لينكس كي في إم"KVMKVMKVM\0\0\0"[ 152 ]\0 يرمز إلى حرف NUL في نظام ASCII.
"Linux KVM Hv"[ 153 ]محاكاة Hyper-V [ 154 ]
bhyve"BHyVE BHyVE "،"bhyve bhyve "تم تغيير سلسلة المعرف من الأحرف المختلطة إلى الأحرف الصغيرة في عام 2013. [ 155 ]

تُستخدم السلاسل النصية ذات الأحرف الصغيرة أيضًا في برامج إدارة الأجهزة الافتراضية المشتقة من bhyve مثل xhyve و HyperKit. [ 156 ]

زين"XenVMMXenVMM"[ 151 ]فقط عند استخدام وضع HVM (الآلة الافتراضية للأجهزة).
كيو إي إم يو"TCGTCGTCGTCG"[ 157 ]فقط عند تفعيل مولد الشفرة الصغيرة (TCG).
أوجه التشابه"prl hyperv  "،" lrpepyh  vr"السلسلة هي نسخة معكوسة من السلسلة، والتي لوحظت في بعض إصدارات Parallels Workstation. [ 158 ]" lrpepyh  vr""prl hyperv  "
في إم وير"VMwareVMware"[ 159 ]
مشروع ACRN"ACRNACRNACRN"[ 160 ]
فيرتشوال بوكس"VBoxVBoxVBox"[ 161 ]فقط عند تهيئته لاستخدام موفر المحاكاة الافتراضية "hyperv".
برنامج QNX Hypervisor"QXNQSBMV"طريقة الكشف عن برنامج QNX hypervisor المقدمة في وثائق QNX الرسمية [ 162 ] تتحقق فقط من الأحرف الثمانية الأولى من السلسلة، كما هو موضح في EBX وECX (بما في ذلك تبديل ترتيب البايتات) - يتم تجاهل EDX ويمكن أن يأخذ أي قيمة.
NetBSD NVMM"___ NVMM ___"[ 163 ]
برنامج إدارة الأجهزة الافتراضية OpenBSD"OpenBSDVMM58"[ 164 ]
سجن سيمنز"Jailhouse\0\0\0"[ 165 ]\0 يرمز إلى حرف NUL في نظام ASCII.
Bitdefender Napoca"Napocahv    "[ 166 ]
FEX-Emu"FEXIFEXIEMU\0"[ 167 ]\0 يرمز إلى حرف NUL في نظام ASCII.
إنتل هاكسم"HAXMHAXMHAXM"[ 168 ]تم إيقاف المشروع.
إنتل كي جي تي (موثوقة)"EVMMEVMMEVMM"[ 169 ]على فرع "trusty" من KGT فقط، والذي يُستخدم لتوزيعة نظام التشغيل Trusty على معمارية Intel x86 ( أرشيف )

(يعيد KGT أيضًا توقيعًا في CPUIDالورقة 3: ECX= 0x4D4D5645 "EVMM"و EDX= 0x43544E49 "INTC")

يونيسيس إس-بار"UnisysSpar64"[ 170 ]
لوكهيد مارتن LMHS"SRESRESRESRE"[ 171 ]

EAX=8000'0000h: أعلى دالة موسعة مُنفذة

يتم إرجاع أعلى قيمة لمعامل الاستدعاء في EAX.

تقوم EBX/ECX/EDX بإرجاع سلسلة معرف الشركة المصنعة (نفس EAX=0) على معالجات AMD ولكن ليس على معالجات Intel.

EAX=80000001h: معلومات المعالج الموسعة وبتات الميزات

يُعيد هذا الأمر علامات الميزات الموسعة في ملفي EDX وECX. وفي معالجات AMD، يُعيد أيضًا توقيع وحدة المعالجة المركزية في ملف EAX، ومعرّف العلامة التجارية في ملف EBX.

بالنسبة لمعظم معالجات AMD، تكون التوقيعة المُعادة في EAX هي نفسها التوقيعة المُعادة في EAX للمعالج الطرفي EAX=1. (باستثناء عائلتي معالجات AMD K6 و AMD K7 ، حيث يختلف جزء "العائلة" من التوقيعة بين المعالج الطرفي 1والمعالج الطرفي 80000001: 1تُعيد المعالج الطرفي التوقيعة 5لـ K6 و 6K7، بينما 80000001تُعيد المعالج الطرفي التوقيعة 6لـ K6 و 7K7.) [ 172 ]

العديد من البتات في EDX(البتات من 0 إلى 9، ومن 12 إلى 17، و23، و24) هي نسخ مكررة من البتات EDXالموجودة في EAX=1الجزء الخلفي - هذه البتات مُظللة باللون الأصفر الفاتح. (توجد هذه البتات المكررة في معالجات AMD، ولكنها غير موجودة في معالجات Intel).

ميزات AMD في EDX و ECX هي كما يلي: [ 173 ] [ 174 ]

CPUID EAX=80000001h: بتات الميزات في EDX و ECX
قليلEDXبورصة السلع الأوروبية (ECX)قليل
قصيرميزةقصيرميزة
0وحدة معالجة مركزيةوحدة معالجة الفاصلة العائمة x87 المدمجةlahf_lmLAHF/ SAHFفي الوضع الطويل0
1vmeامتدادات الوضع الافتراضي (VIF)cmp_legacyتقنية Hyperthreading غير صالحة1
2ديملحقات تصحيح الأخطاء ( CR4 بت 3)svmآلة افتراضية آمنة2
3pseتوسيع حجم الصفحةإكستابيمساحة APIC الموسعة3
4tscعداد الطوابع الزمنيةcr8_legacyCR8 في وضع 32 بت4
5msrسجلات خاصة بالنموذجabm/lzcntمعالجة البتات المتقدمة و )(LZCNTPOPCNT5
6paeامتداد العنوان الفعليsse4aSSE4a6
7mceاستثناء فحص الجهازعدم المحاذاةوضع SSE غير متوافق7
8cx8CMPXCHG8Bتعليمات ( المقارنة والتبديل )3dnowprefetchPREFETCHوالتعليماتPREFETCHW8
9أبيكوحدة تحكم متقدمة قابلة للبرمجة للمقاطعات مدمجةosvwحل بديل مرئي لنظام التشغيل9
10(استدعاء النظام) [ أ ]( SYSCALL/ SYSRET، K6 فقط)متلازمة القولون المتهيّجأخذ العينات بناءً على التعليمات10
11استدعاء النظام [ ب ]SYSCALLوالتعليماتSYSRETxop [ c ]مجموعة تعليمات XOP11
12مترنطاق أنواع الذاكرةسكينيتSKINITوالتعليماتSTGI12
13صفحةتفعيل بت الصفحة العامة في CR4wdtمؤقت مراقبة النظام13
14إم سي إيهبنية فحص الآلة(tbm0)(دعم تعليمات TBM0) [ د ]14
15cmovحركة مشروطة FCMOVوتعليماتlwpالتنميط الخفيف [ 182 ]15
16بات [ هـ ]جدول سمات الصفحةfma4تعليمات الضرب والجمع المدمجة ذات 4 معاملات16
17pse36امتداد حجم الصفحة 36 بتتي سي إيملحق ذاكرة التخزين المؤقت للترجمة17
18(إلخ)(يدعم المعالج تصحيح الأخطاء ECC؛ K7 فقط) [ f ](cvt16)(أشكال البادئة XOP لتعليمات التحويل FP16↔FP32 VCVTPS2PH و VCVTPH2PS ) [ g ]18
19إلخ" أثلون إم بي " / " سيمبرون " تعريف العلامة التجارية لوحدة المعالجة المركزية [ h ]nodeid_msrNodeID MSR ( C001_100C) [ 189 ]19
20nxبت NX (بت عدم تنفيذ جدول الصفحات)(محجوز)20
21(sem)؟ [ أنا ]تي بي إممعالجة البتات اللاحقة21
22mmxextMMX الموسع (مجموعة فرعية غير XMM من SSE1 )توبو إكستامتدادات الطوبولوجيا (أوراق معرف وحدة المعالجة المركزية 80000001Dو 80000001E)22
23mmxتعليمات MMXperfctr_coreملحقات عداد الأداء الأساسي23
24fxsr [ e ]FXSAVE، FXRSTORالتعليمات، CR4 بت 9perfctr_nbتوسعات عدادات الأداء في نورثبريدج24
25fxsr_optFXSAVE/ FXRSTORالتحسينات(مراقب أداء البث)(بنية مراقبة أداء البث) [ j ]25
26pdpe1gbصفحات الجيببايتdbxامتدادات نقاط توقف البيانات26
27rdtscpRDTSCPتعليماتperftscعداد الطابع الزمني للأداء (PTSC)27
28(rex32) [ k ]( بادئة REX متوفرة في وضع 32 بت؛ إصدار K8 المبكر فقط) [ l ]pcx_l2i/ pcx_l3
  • AMD Fam 15h/16h ( Jaguar / Puma ): ملحقات عداد أداء L2I
  • عائلة AMD ≥17 ساعة ( Zen ): ملحقات عداد أداء L3
28
29لامالوضع الطويل ( x86-64 )مونيتور إكسMONITORXوالتعليماتMWAITX29
303dnowextتقنية 3DNow! الموسعةaddr_mask_extتمديد قناع العنوان إلى 32 بت لنقاط توقف التعليمات30
313dnow3DNow!(محجوز) [ م ]31
  1. استخدام البت 10 من EDX للإشارة إلى دعمSYSCALL/SYSRETصالح فقط فيAuthenticAMD معالجات Family 5 Model 7 ( AMD K6 ، 250 نانومتر "Little Foot") - بالنسبة لجميع المعالجات الأخرى، يجب استخدام البت 11 من EDX بدلاً من ذلك. تم تقديم هذه التعليمات لأول مرة في Model 7 [ 175 ] - تم نقل بت CPUID للإشارة إلى دعمها [ 176 ] إلى البت 11 من EDX بدءًا من Model 8 ( AMD K6-2 ) فصاعدًا.

    إن الإصدار SYSCALLالموجود في الطراز 7 (المشار إليه بواسطة بت EDX رقم 10) غير متوافق تمامًا مع الإصدار SYSCALLالموجود في الطراز 8 ووحدات المعالجة المركزية اللاحقة (المشار إليها بواسطة بت EDX رقم 11) في المعالجات اللاحقة (إصدار الطراز 7 لا يسمح IRETبذلك SYSCALLبينما تسمح به الإصدارات اللاحقة). [ 177 ]

  2. في معالجات Intel، يتم ضبطبت CPUID الخاص بـSYSCALL/تم تنفيذ التعليمات في وضع 64 بت. [ 178 ]SYSRETCPUID
  3. أدرجت AMD في اقتراحها الأولي لتوسيع مجموعة تعليمات SSE5 البت 11 من ECX كبت الميزة لـ SSE5. [ 179 ] عندما تخلت AMD عن اقتراحها لـ SSE5 لصالح XOP، أعيد استخدام البت 11 من ECX كبت الميزة لـ XOP.
  4. يُدرج موقع sandpile.org البت رقم 14 من تعليمات ECX (المعروفة باسم TBM0) [ 180 ] ، ويتعرف عليها برنامج HWiNFO 8.24، إلا أنها غير مُفعّلة في أي معالج معروف، ولا تُدرج في أي وثائق عامة معروفة لشركة AMD. كما يُدرج موقع sandpile.org ترميزات تعليمات TBM0 أيضًا [ 181 ] .
  5. 1 2 في بعض المعالجات - Cyrix MediaGXm ، [ 183 ] ​​والعديد من Geodes (NatSemi Geode GXm، GXLV، GX1؛ AMD Geode GX1 [ 184 ] ) و Transmeta Crusoe [ 185 ] (CyrixInstead//Geode by NSC،GenuineTMx86جميعها من عائلة 5 موديل 4) - يكون للبتات 16 و24 في EDX معنى مختلف:
    • FCMOVالبت 16: دعم النقل الشرطي للأعداد العشرية
    • البت 24: تعليمات Cyrix EMMI ( MMX الموسعة ) مدعومة. (تعليمات EMMI موجودة أيضًا في CyrixInsteadمعالجات العائلة 6، مثل 6x86MX وMII، على الرغم من أنها لا تقوم بتعيين هذا البت.)
  6. يتم ضبط بت EDX رقم 18 في بعض طرازات AMD Athlon "Thunderbird" [ 186 ] و Duron "Spitfire"/"Morgan"، ولكنه غير مدرج في أي وثائق عامة لشركة AMD. يصف موقع Sandpile.org هذا البت بأنه بت خاص بميزة تصحيح الأخطاء (ECC). [ 180 ] [ 187 ]
  7. تم إدراج البت 18 من ECX باسم CVT16 في الإصدار 3.03 من AMD APM المجلد 6، [ 188 ] ، ولكن تم حذفه من الإصدار 3.04 وما بعده. وهو غير مُفعّل في أي وحدة معالجة مركزية معروفة. وقد اعتمدت كل من Intel وAMD لاحقًا امتداد Intel F16C (المشار إليه بـ CPUID.(EAX=1):ECX[29] )، الذي يُعرّف أشكال VEX المُشفّرة لهذه التعليمات.
  8. يُستخدم البت 19 من EDX لتحديد علامة المعالج التجارية فيAuthenticAMD معالجات العائلة 6 فقط - ويُستخدم هذا البت، بالإضافة إلى توقيع المعالج وسرعة ناقل النظام الأمامي ، لتحديد ما إذا كانت المعالجات قادرة على العمل كمعالجات متعددة أو تحمل اسم العلامة التجارية Sempron . [ 172 ]
  9. تم إدراج "SEM" كبت ميزة ممتدة لـ CPUID في وثائق AMD SimNow دون تقديم أي وصف إضافي. [ 190 ] لم يتم تعيين هذا البت في أي معالج معروف، كما أنه غير مُحاكى بواسطة SimNow.
  10. تم إدراج البت 25 من ECX باسم StreamPerfMon في الإصدار 3.20 من AMD APM [ 191 ] فقط، بينما تم إدراجه كـ "محجوز" في الإصدارات اللاحقة. يتم تفعيل هذا البت في معالجات Excavator وSteamroller فقط.
  11. بالإضافة إلى استخدامها كبتة مميزة في REX32 على بعض معالجات AMD K8، يتم أيضًا ضبط بتة EDX رقم 28 على بعض معالجات VIA Nehemiah لغرض غير معروف. [ 192 ]
  12. تم إدراج ميزة REX32 في موقع sandpile.org [ 193 ] [ 194 ] ووُصفت في براءة اختراع قديمة [ 195 ] . وهي غير مدرجة في أي وثائق عامة معروفة لشركة AMD، وتوجد فقط في الإصدارات المبكرة من AMD K8.
  13. لم يتم إدراج بت ECX رقم 31 في أي من وثائق AMD العامة المعروفة، ولكن لوحظ أنه مضبوط على AMD 4700S Desktop Kit. [ 196 ]

EAX=80000002h,80000003h,80000004h: سلسلة اسم العلامة التجارية للمعالج

تُعيد هذه الأوامر سلسلة اسم المعالج بتنسيقات EAX وEBX وECX وEDX. CPUIDيجب إصدارها مع كل مُعامل بالتسلسل للحصول على سلسلة اسم المعالج الكاملة المكونة من 48 بايت بتنسيق ASCII. [ 197 ] من الضروري التحقق مما إذا كانت الميزة موجودة في وحدة المعالجة المركزية عن طريق إصدار الأمر CPUIDأولاً EAX = 80000000hوالتحقق مما إذا كانت القيمة المُعادة لا تقل عن قيمة مُحددة 80000004h.

تم تحديد السلسلة في وثائق Intel/AMD على أنها منتهية بـ null ، ولكن هذا ليس هو الحال دائمًا (على سبيل المثال، من المعروف أن DM&P Vortex86DX3 و AMD Ryzen 7 6800HS يعيدان سلاسل العلامات التجارية غير المنتهية بـ null في الأوراق 80000002h- 80000004h[ 198 ] [ 199 ] )، ولا ينبغي للبرامج الاعتماد عليها.

#include <stdio.h> #include <string.h> #include <cpuid.h>int main () { unsigned int regs [ 12 ]; char str [ sizeof ( regs ) + 1 ];__cpuid ( 0x80000000 , regs [ 0 ], regs [ 1 ], regs [ 2 ], regs [ 3 ]);إذا كانت قيمة ( regs [ 0 ] < 0x80000004 ) فارجع 1 ؛__cpuid ( 0x80000002 , regs [ 0 ], regs [ 1 ], regs [ 2 ], regs [ 3 ]); __cpuid ( 0x80000003 , regs [ 4 ], regs [ 5 ], regs [ 6 ], regs [ 7 ]); __cpuid ( 0x80000004 , regs [ 8 ], regs [ 9 ], regs [ 10 ], regs [ 11 ]);memcpy ( str , regs , sizeof ( regs )); str [ sizeof ( regs )] = '\0' ; printf ( "%s \n " , str );return 0 ; }

في معالجات AMD، بدءًا من معالجات Athlon بتقنية 180 نانومتر ( AuthenticAMDالعائلة 6، الطراز 2 وما بعده)، يُمكن تعديل سلسلة العلامة التجارية للمعالج التي تُرجعها وحدة CPUID Leaves 80000002h- 80000004hوذلك باستخدام WRMSRتعليمة لكتابة سلسلة استبدال بطول 48 بايت إلى سجلات MSR C0010030h- C0010035h. [ 172 ] [ 200 ] ويمكن القيام بذلك أيضًا على معالجات AMD Geode GX/LX، ولكن باستخدام سجلات MSR 300Ah- 300Fh. [ 201 ]

السلسلة التي يُرجعها برنامج CPUID Leaves 80000002h- 80000004hوالتي غالبًا ما تحتوي على مسافات متعددة في البداية أو النهاية أو الوسط - تتضمن بعض الأمثلة على سلاسل علامات المعالجات التجارية التي تحتوي على العديد من المسافات المتتالية والتي ظهرت في معالجات Intel/AMD ما يلي:

  •        Intel(R) Core(TM) i7-3960X CPU @ 3.30GHz[ 202 ]
  • Intel(R) Xeon(R) CPU           W3670  @ 3.20GHz[ 203 ]
  • AMD EPYC 9655 96-Core Processor                [ 204 ]

في بعض الحالات، يتطلب تحديد مُصنِّع وحدة المعالجة المركزية فحص ليس فقط مُعرِّف المُصنِّع في ورقة CPUID رقم 0 وتوقيع وحدة المعالجة المركزية في الورقة رقم 1، بل أيضًا سلسلة علامة المعالج التجارية في الأوراق 80000002h- 80000004h. ومن الحالات المعروفة ما يلي:

  • يمكن تمييز وحدات المعالجة المركزية Montage Jintide عن طرازات وحدات المعالجة المركزية Intel Xeon التي تستند إليها من خلال وجود السلسلة الفرعية Montageفي سلسلة العلامة التجارية لوحدات المعالجة المركزية Montage (على سبيل المثال، يمكن تمييز Montage Jintide C2460 [ 205 ] و Intel Xeon Platinum 8160 [ 206 ] - وكلاهما يُعرّف نفسه على أنه GenuineIntelFamily 6 Model 55h Stepping 4 - بهذه الطريقة).
  • CentaurHaulsقد تكون وحدات المعالجة المركزية من العائلة 6 إما من إنتاج VIA أو Zhaoxin - ويمكن تمييزها من خلال وجود السلسلة الفرعية ZHAOXINفي سلسلة العلامة التجارية لوحدات المعالجة المركزية Zhaoxin (على سبيل المثال، يمكن تمييز Zhaoxin KaiXian ZX-C+ C4580 [ 207 ] وVIA Eden X4 C4250 [ 208 ] - وكلاهما يُعرّف نفسه على أنه CentaurHaulsمن العائلة 6 طراز 0Fh خطوة 0Eh - بهذه الطريقة).
  • يمكن تمييز محاكي Rosetta 2 x86 من Apple - الذي يُعرّف نفسه باسم GenuineIntelFamily 6 - عن معالج Intel Xeon الذي يحاكيه من خلال وجود السلسلة الفرعية VirtualAppleفي سلسلة العلامة التجارية لـ Rosetta 2. [ 19 ]
  • يمكن تمييز محاكي x86-on-ARM من مايكروسوفت - والذي يُعرّف نفسه في وضع 64 بت باسم AuthenticAMDFamily 0Fh - عن معالج AMD الذي يحاكيه من خلال وجود السلسلة الفرعية Virtual CPUفي سلسلة العلامة التجارية للمحاكي. [ 19 ]

EAX=80000005h: مُعرّفات ذاكرة التخزين المؤقت من المستوى الأول وذاكرة الترجمة السريعة

يوفر هذا معلومات حول ذاكرة التخزين المؤقت من المستوى 1 وخصائص TLB للمعالج في EAX وEBX وECX وEDX على النحو التالي: [ أ ]

  • EAX: معلومات حول مخازن الترجمة الضخمة من المستوى الأول (مخازن الترجمة التي تحتوي على إدخالات تتوافق مع صفحات بحجم 2 ميجابايت/4 ميجابايت) [ ب ]
  • EBX: معلومات حول مخازن الترجمة ذات الصفحات الصغيرة من المستوى الأول (مخازن الترجمة التي تحتوي على إدخالات تتوافق مع صفحات بحجم 4 كيلوبايت)
  • ECX: معلومات حول ذاكرة التخزين المؤقت للبيانات من المستوى الأول
  • EDX: معلومات حول ذاكرة التخزين المؤقت للتعليمات من المستوى الأول
CPUID EAX=80000005h: معلومات ذاكرة التخزين المؤقت L1/TLB في EAX وEBX وECX وEDX
أجزاءإي إيه إكسEBXبورصة السلع الأوروبية (ECX)EDXأجزاء
7:0عدد إدخالات TLB للتعليمات [ c ]حجم سطر ذاكرة التخزين المؤقت بالبايت7:0
15:8ترابط تعليمات TLB [ د ]عدد أسطر التخزين المؤقت لكل علامة15:8
23:16عدد إدخالات TLB للبيانات [ c ]ترابط الذاكرة المؤقتة [ د ]23:16
31:24ارتباطية بيانات TLB [ د ]حجم ذاكرة التخزين المؤقت بالكيبايت31:24
  1. في بعض وحدات المعالجة المركزية القديمة من نوع Cyrix و Geode (وتحديدًا،CyrixInstead/Geode by NSCFamily 5 Model 4 فقط)،80000005hتوجد ورقة البيانات ولكن بتنسيق مختلف تمامًا، مشابه لتنسيق ورقة البيانات 2. [ 209 ]
  2. في المعالجات التي لا تدعم سوى الصفحات الصغيرة في جداول ترجمة العناوين (TLB)، تُرجع هذه الورقة القيمة 0 في سجل EAX. (في هذه المعالجات، مثل AMD K6 وTransmeta Crusoe، تُقسّم إدخالات الصفحات الكبيرة في جداول الصفحات إلى صفحات بحجم 4 كيلوبايت حسب الحاجة عند إدخالها في جدول ترجمة العناوين).في بعض المعالجات، مثل VIA Cyrix III "Samuel"، [ 210 ] تُرجع هذه الورقة القيمة0x80000005في سجل EAX. وهذا يُعادل EAX=0، أي عدم وجود جداول ترجمة عناوين للصفحات الكبيرة.
  3. 1 2 في وحدات المعالجة المركزية Transmeta، يتم استخدام القيمةFFhللإشارة إلى TLB مكون من 256 مدخلاً.
  4. 1 2 3 بالنسبة لحقول الترابط الخاصة بالورقة80000005h، يتم استخدام القيم التالية:
    قيمةمعنى
    0(محجوز)
    1التعيين المباشر
    من 2 إلىFEhمجموعة ترابطية متعددة الاتجاهات (يشفر الحقل N)
    FFhترابطي بالكامل

EAX=80000006h: ميزات ذاكرة التخزين المؤقت L2 الموسعة

يقوم بإرجاع تفاصيل ذاكرة التخزين المؤقت L2 في ECX، بما في ذلك حجم السطر بالبايت (البتات 07 - 00)، ونوع الارتباط (مشفر بواسطة حقل 4 بتات؛ البتات 15 - 12) وحجم ذاكرة التخزين المؤقت بالكيلو بايت (البتات 31 - 16).

#include <stdio.h> #include <cpuid.h>int main () { unsigned int eax , ebx , ecx , edx ; unsigned int lsize , assoc , cache ;__cpuid ( 0x80000006 , eax , ebx , ecx , edx ); lsize = ecx & 0xff ; assoc = ( ecx >> 12 ) & 0x0f ; cache = ( ecx >> 16 ) & 0xffff ;printf ( "حجم السطر: %d بايت، نوع الارتباط: %d، حجم ذاكرة التخزين المؤقت: %d كيلوبايت. \n " , lsize , assoc , cache );return 0 ; }

EAX=80000007h: معلومات إدارة طاقة المعالج وقدرات RAS

توفر هذه الوظيفة معلومات حول إدارة الطاقة، وإعداد تقارير الطاقة، وقدرات RAS ( الموثوقية والتوافر وقابلية الخدمة ) لوحدة المعالجة المركزية.

CPUID EAX=80000007h: ميزات RAS في EBX وميزات إدارة الطاقة في EDX
قليلEBXEDXقليل
قصيرميزةقصيرميزة
0استعادة تدفق MCAOverflowدعم استعادة تجاوز سعة MCA (بنية فحص الآلة)TSمستشعر درجة الحرارة0
1المعونةقدرة البرنامج على احتواء الأخطاء غير القابلة للتصحيح واستعادتهاFIDالتحكم في تعريف التردد1
2HWAدعم تأكيد الأجهزة (MSRs C001_10C0إلى C001_10DF)فيديوالتحكم في معرف الجهد2
3ScalableMCAيدعم MCA القابل للتوسعTTPمقياس الحرارة3
4PFEHمعالجة الأخطاء في النظام الأساسي أولاً [ 211 ]يدعم التحكم الحراري للأجهزة (HTC)4
5LWSMIخفيف الوزن SMI [ 211 ]شهادة نقل ملكية خاصةتم دعم التحكم الحراري بالبرمجيات (STC) [ 212 ]5
6(محجوز)خطوات 100 ميجاهرتز التحكم في مضاعف التردد 100 ميجاهرتز6
7(محجوز)HwPstateالتحكم في حالة الطاقة للأجهزة (MSRs C001_0061إلى C001_0063)7
8(محجوز)ثابت Tscمعدل TSC الثابت - معدل TSC ( عداد الطوابع الزمنية ) مضمون أن يكون ثابتًا عبر جميع حالات P وحالات C وعمليات الانتقال لمنح التوقف.8
9(محجوز)CPBتحسين الأداء الأساسي9
10(محجوز)EffFreqROواجهة التردد الفعال للقراءة فقط (MSRs C000_00E7و C000_00E8)10
11(محجوز)واجهة ProcFeedbackواجهة التغذية الراجعة للمعالج مدعومة11
12(محجوز)تقارير ProcPowerواجهة الإبلاغ عن طاقة المعالج مدعومة12
13(محجوز)وضع الاستعداد المتصلوضع الاستعداد المتصل [ 213 ]13
14(محجوز)RAPLحد متوسط ​​الطاقة التشغيلية [ 213 ]14
15(محجوز)FastCPPCيدعم Fast CPPC (التحكم التعاوني في أداء المعالج) [ 213 ]15
16(محجوز)أولوية أداء Cppcأولوية أداء CPPC [ 214 ]16
26:17 (محجوز)(محجوز)26:17 
27(محجوز)(محجوز) [ أ ]27
31:28 (محجوز)(محجوز)31:28 
  1. ذكرت المراجعة 1.00 من مواصفات أولوية أداء CPPC من AMD أن الميزة مُشار إليها بالبت 27 من EDX [ 215 ] - وقد تم تصحيح ذلك إلى البت 16 في المراجعات اللاحقة. [ 214 ]

CPUID EAX=80000007h: معلومات تغذية المعالج في EAX ومعلومات واجهة مراقبة الطاقة في ECX
أجزاءإي إيه إكسبورصة السلع الأوروبية (ECX)أجزاء
قصيرميزةقصيرميزة
7:0عدد الشاشاتعدد أزواج MSR المتاحة لتغذية المعالج الراجعة، بدءًا من MSR C001_0080فصاعدًا [ 216 ]نسبة وقت أخذ عينات طاقة المعالجنسبة فترة أخذ عينات مجمع طاقة وحدة الحوسبة إلى فترة عداد TSC.7:0
15:8إصدارإصدار إمكانيات التغذية الراجعة للمعالج15:8
31:16أقصى وقت التفافالحد الأقصى للوقت بين عمليات القراءة (بالمللي ثانية) الذي يجب أن يستخدمه البرنامج لتجنب عمليتي التفاف.31:16

EAX=80000008h: أحجام العناوين الافتراضية والمادية

CPUID EAX=80000008h: بتات الميزات في EBX
قليلEBX
قصيرميزة
0clzeroCLZEROتعليمات
1متقاعد_إنسترعدد التعليمات المتقاعدة MSR ( C000_00E9h) المدعومة
2xrstor_fp_errXRSTORيُصلح أخطاء الفاصلة العائمة
3invlpgbINVLPGBوالتعليماتTLBSYNC
4rdpruRDPRUتعليمات
5(xotext)( بلاي ستيشن 5 : ذاكرة التنفيذ فقط) [ 217 ] [ أ ]
6mbeفرض استخدام عرض نطاق الذاكرة
7(محجوز) [ أ ]
8mcommitMCOMMITتعليمات
9wbnoinvdWBNOINVDتعليمات
10LBR_EXT_V1ملحقات LBR الإصدار 1 [ 211 ]
11(محجوز) [ أ ]
12IBPBحاجز التنبؤ بالتفرع غير المباشر (يتم تنفيذه عن طريق كتابة 1 إلى البت 0 من PRED_CMD(MSR 049h))
13wbinvd_intWBINVDويمكن WBNOINVDمقاطعتها
14IBRSالمضاربة المقيدة للفرع غير المباشر
15STIBPوضع التنبؤ بالتفرع غير المباشر أحادي الخيط
16IbrsAlwaysOnيتميز وضع IBRS بأداء محسّن، ويجب تركه قيد التشغيل دائمًا.
17ستيب أونلي أونيتميز وضع STIBP بأداء محسّن، ويجب تركه قيد التشغيل دائمًا.
18ibrs_preferredيُفضّل نظام IBRS على البرامج
19حماية الوضع نفسه لـ ibrsيوفر نظام IBRS حماية من نفس الوضع
20no_efer_lmsleEFER.LMSLEغير مدعوم [ ب ]
21invlpgb_nestedINVLPGBدعم الصفحات المتداخلة
22(LBR_TSX)(معلومات LBR TSX) [ 211 ]
23ببينرقم جرد المعالج المحمي -

PPIN_CTL( C001_02F0) و PPIN( C001_02F1) MSRs موجودة [ 213 ]

24sbdتعطيل تجاوز المتجر المضارب
25sbd_legacyتجاوز المتجر المضارب تعطيل النظام القديم
26sbd_noلا يلزم تعطيل تجاوز المتجر المضارب
27cppcالتحكم في أداء المعالج التعاوني
28psfdتعطيل التخزين التنبؤي للأمام
29رقم البيتكوينتداخل نوع الفرع: المعالج غير متأثر
30IBPB_RETيقوم IBPB (انظر البت 12) أيضًا بمسح مُتنبئ عنوان الإرجاع
31أخذ عينات من الفروعدعم أخذ العينات من الفروع [ 220 ]
CPUID EAX=8000'0008h: حقول الحجم والنطاق في EAX وECX وEDX
أجزاءإي إيه إكسبورصة السلع الأوروبية (ECX)EDXأجزاء
7:0عدد بتات العنوان الفعليعدد الخيوط الفعلية في المعالج (ناقص 1)الحد الأقصى لعدد صفحات INVLPGBالتعليمات7:0
11:8عدد بتات العنوان الخطي(محجوز)11:8
15:12حجم معرف APIC15:12
17:16حجم عنوان الضيف الفعلي [ ج ]حجم عداد الطابع الزمني للأداءأقصى قيمة ECX معترف بها وفقًا RDPRUللتعليمات17:16
23:18(محجوز)23:18
31:24(محجوز)31:24
  1. 1 2 3 اعتبارًا من يونيو 2025، لم يتم إدراج البتات 5 و7 و11 من CPUID.(EAX=8000_0008):EBX في أي وثائق عامة معروفة لشركة AMD، ولكن لوحظ أنها مُفعّلة على معالجات AMD 4700S Desktop Kit. [ 218 ]
  2. لا تحتوي ميزة LMSLE (تمكين حد مقطع الوضع الطويل) على علامة CPUID خاصة بها، ويتم اكتشافها من خلال التحقق من عائلة المعالج وطرازه. وقد تم تقديمها فيAuthenticAMDعائلة 0Fh طراز 14h [ 219 ] (معالجات Athlon64/Opteron بتقنية 90 نانومتر)، وهي موجودة في جميع معالجات AMD اللاحقة - باستثناء تلك التي تم ضبط علامة 'no_efer_lmsle' عليها.
  3. تشير القيمة 0 إلى أن "حجم العنوان الفعلي للضيف" هو نفسه "عدد بتات العنوان الفعلي"، المحدد في EAX[7:0].

EAX=8000000Ah: ميزات SVM

تُعيد هذه الورقة معلومات حول ميزات AMD SVM ( الآلة الافتراضية الآمنة ) في EAX و EBX و ECX و EDX.

CPUID EAX=8000000Ah: معلومات SVM في EAX وEBX وECX
أجزاءإي إيه إكسEBXبورصة السلع الأوروبية (ECX)أجزاء
2:0رقم مراجعة SVMعدد معرفات مساحة العناوين (ASIDs) المتاحة(محجوز)2:0
3تصفية أحداث PMC للضيوف [ 221 ]3
4Page Modification Logging[222]4
5(reserved)5
6x2AVIC_EXT (4096 vCPUs supported in x2AVIC mode)6
7(reserved)7
8(hypervisor)[a]8
31:9(reserved)31:9
CPUID EAX=8000'000Ah: SVM feature flags in EDX
BitEDX
ShortFeature
0NPRapid Virtualization Indexing (Nested Paging)
1LbrVirtLBR (Last Branch Records) virtualization
2SVMLSVM-Lock
3NRIPSnRIP (next sequential instruction pointer) save on #VMEXIT supported
4TscRateMsrMSR-based TSC rate control (MSR C000_0104h)
5VmcbCleanVMCB (Virtual Machine Control Block) clean bits supported
6FlushByAsidTLB flush events (e.g. CR3 writes, CR4.PGE toggles) only flush the TLB entries of the current ASID (address space ID)
7DecodeAssistDecode assists supported
8PmcVirtPMC (Performance Monitoring Counters) virtualization
9(SseIsa10Compat)[b](reserved)
10PauseFilterPAUSE intercept filter supported
11EMPEncrypted Microcode Patch[211]
12PauseFilter­ThresholdPAUSE filter cycle count threshold supported
13AVICAMD Advanced Virtualized Interrupt Controller supported
14(reserved)
15VMSAVEvirtVMSAVE and VMLOAD virtualization
16VGIFGlobal Interrupt Flag (GIF) virtualization
17GMETGuest Mode Execution Trap
18x2AVICx2APIC mode supported for AVIC
19SSSCheckSVM Supervisor shadow stack restrictions
20SpecCtrlSPEC_CTRL (MSR 2E0h) virtualization
21ROGPTRead-Only Guest Page Table supported
22(reserved)
23HOST_MCE_­OVERRIDEGuest mode Machine-check exceptions when host CR4.MCE=1 and guest CR4.MCE=0 cause intercepts instead of shutdowns
24TlbiCtlINVLPGB/TLBSYNC hypervisor enable in VMCB and TLBSYNC intercept support
25VNMINMI (Non-Maskable interrupt) virtualization
26IbsVirtIBS (Instruction-Based Sampling) virtualization
27ExtLvtOffset­FaultChgRead/Write fault behavior for extended LVT offsets (APIC addresses 0x500-0x530) changed to Read Allowed, Write #VMEXIT[229]
28VmcbAddr­ChkChgVMCB address check change[229]
29BusLock­ThresholdBus Lock Threshold
30IdleHlt­InterceptIdle HLT (HLT instruction executed while no virtual interrupt is pending) intercept
31Enhanced­Shutdown­InterceptSupport for EXITINFO1 on shutdown intercept, and nested shutdown intercepts will result in a non-interceptible shutdown.[230]
  1. Early revisions of AMD's "Pacifica" documentation listed EAX bit 8 as an always-zero bit reserved for hypervisor use.[223]

    Later AMD documentation, such as #25481 "CPUID specification" rev 2.18[224] and later, only lists the bit as reserved.

    In rev 2.30[225] and later, a different bit is listed as reserved for hypervisor use: CPUID.(EAX=1):ECX[bit 31].

  2. EDX bit 9 is briefly listed in some older revisions of AMD's document #25481 "CPUID Specification", and is set only in some AMD Bobcat CPUs.[226]

    Rev 2.28 of #25481 lists the bit as "Ssse3Sse5Dis"[227] - in rev 2.34, it is listed as having been removed from the spec at rev 2.32 under the name "SseIsa10Compat".[228]

EAX=8000'001Fh: Encrypted Memory Capabilities

CPUID EAX=8000'001Fh: Encrypted Memory feature bits in EAX
BitEAX
ShortFeature
0SMESecure Memory Encryption
1SEV/CSV
  • AMD: Secure Encrypted Virtualization
  • Hygon: China Secure Virtualization (1st generation)[231]
2PageFlushMSRPage flush MSR (C001_011Eh) supported
3SEV-ES/CSV2 (Hygon)
  • AMD: SEV Encrypted State
  • Hygon: China Secure Virtualization (2nd generation)[231]
4SEV-SNPSEV Secure Nested Paging
5VMPLVM Privilege Levels
6RMPQUERYRMPQUERY instruction supported
7VmplSSSVMPL Supervisor shadow stack supported
8SecureTSCSecure TSC supported
9TscAux­VirtualizationVirtualization of TSC_AUX MSR (C000_0103) supported
10HwEnfCacheCohHardware cache coherency across encryption domains enforced
1164BitHostSEV Guest execution only allowed from 64-bit host
12Restricted­InjectionSEV-ES guests can refuse all event-injections except #HV (Hypervisor Injection Exception)
13Alternate­InjectionSEV-ES guests can use an encrypted VMCB field for event-injection
14DebugVirtFull debug state virtualization supported for SEV-ES and SEV-SNP guests
15PreventHostIBSPrevent host IBS for a SEV-ES guest
16VTEVirtual Transparent Encryption for SEV
17Vmgexit­ParameterVMGEXIT parameter is supported (using the RAX register)
18VirtualTomMsrVirtual TOM (top-of-memory) MSR (C001_0135) supported
19IbsVirtGuestCtlIBS virtualization is supported for SEV-ES and SEV-SNP guests
20PmcVirtGuestCtlPMC virtualization is supported for SEV-ES and SEV-SNP guests
21RMPREADRMPREAD instruction supported
22GuestIntercept­ControlGuest Intercept control supported for SEV-ES guests
23SegmentedRmpSegmented RMP (Reverse-Map Table) supported
24VmsaRegProtVMSA (VM Save Area) register protection supported
25SmtProtectionSMT Protection supported
26SecureAvicSecure AVIC supported
27AllowedSEV­featuresALLOWED_SEV_FEATURES_MASK field in VMCB (offset 138h) supported
28SVSMComm­PageMSRSVSM (Secure VM Service Module[232]) communication page MSR (C001_F000h) supported
29NestedVirt­SnpMsrVIRT_RMPUPDATE (C001_F001h) and VIRT_PSMASH (C001_F002h) MSRs supported
30HvInUse­WrAllowed/CSV3
  • AMD: Writes to Hypervisor-owned paged allowed when marked in-use
  • Hygon: China Secure Virtualization (3rd generation)[231]
31IbpbOnEntryIBPB on entry to virtual machine supported
CPUID EAX=8000'001Fh: Encrypted Memory feature information in EBX, ECX and EDX
BitsEBXECXEDXBits
5:0C-bit (encryption enable bit) location in page table entryMaximum ASID value that can be used for a SEV-enabled guest (maximum number of encrypted guests that can be supported simultaneously)Minimum ASID value for a guest that is SEV-enabled but not SEV-ES-enabled5:0
11:6Physical address width reduction when memory encryption is enabled11:6
15:12Number of VMPLs (VM Privilege Levels) supported15:12
31:16(reserved)31:16

EAX=8000'0021h: Extended Feature Identification

CPUID EAX=8000'0021h: Extended feature bits in EAX and ECX
BitEAXECXBit
ShortFeatureShortFeature
0NoNestedDataBpProcessor ignores nested data breakpoints(reserved)0
1FsGsKernelGsBase­NonSerializingWRMSR to the FS_BASE, GS_BASE and KernelGSBase MSRs is non-serializing[233]TSA_SQ_NOIf set, then CPU is not vulnerable to TSA-SQ[234]1
2LFenceAlways­SerializingLFENCE is always dispatch serializingTSA_L1_NOIf set, then CPU is not vulnerable to TSA-L1[234]2
3SmmPgCfgLockSMM paging configuration lock supported(reserved)3
4(reserved)(reserved)4
5VERW_CLEARVERW instruction can, when executed with a memory operand in Ring 0, be used to clear microarchitectural data buffers to help mitigate TSA (Transient Scheduler Attacks).[234](reserved)5
6NullSelect­ClearsBaseNull segment selector loads also clear the destination segment register base and limit(reserved)6
7UpperAddress­IgnoreUpper Address Ignore (Version 1) is supported(reserved)7
8AutomaticIBRSAutomatic IBRS(reserved)8
9NoSmmCtlMSRSMM_CTL MSR (C0010116h) is not supported(reserved)9
10FSRSFast short REP STOSB supported(reserved)10
11FSRCFast short REPE CMPSB supported(reserved)11
12PMC2Precise­RetirePreciseRetire performance counter control bit (MSR C0010002h bit 43) supported[230](reserved)12
13PrefetchCtlMsrPrefetchControl MSR (C0000108h) is supported(reserved)13
14L2TlbSIzeX32If set, L2 TLB sizes (leaf 80000006h) are encoded as multiples of 32(reserved)14
15AMD_ERMSBProcessor supports AMD implementation of Enhanced REP MOVSB and REP STOSB(reserved)15
16OPCODE_0F017_­RECLAIMReserves opcode 0F 01 /7 for AMD use, returning #UD.[230](reserved)16
17CpuidUserDisCPUID disable for non-privileged software (#GP)(reserved)17
18EPSFEnhanced Predictive Store Forwarding supported[233](reserved)18
19FAST_REP_SCASBFast Short REP SCASB supported(reserved)19
20PREFETCHIInstruction Cache prefetch instructions PREFETCHIT0 and PREFETCHIT1 supported[a](reserved)20
21FP512_­DOWNGRADEDowngrade of 512-bit datapath to 256-bit supported.[b](reserved)21
22WL_CLASS_­SUPPORTSupport for workload-based heuristic feedback to OS for scheduling decisions[230](reserved)22
23AVX512_BMMAVX-512 Bit Matrix Multiply and Bit Reverse instructions[236][237](reserved)23
24ERAPSEnhanced Return Address Predictor Security (see also EBX[23:16] "RapSize")(reserved)24
25(reserved)(reserved)25
26UpperAddress­Ignore2Upper Address Ignore (Version 2) is supported[238](reserved)26
27SBPBSelective Branch Predictor Barrier supported[239](reserved)27
28IBPB_BRTYPEIBPB flushes all branch type predictions[239](reserved)28
29SRSO_NOCPU is not subject to SRSO (Speculative Return Stack Overflow) vulnerability[239](reserved)29
30SRSO_USER_­KERNEL_NOCPU is not subject to SRSO vulnerability across user/kernel boundary[239](reserved)30
31SRSO_MSR_FIXSRSO can be mitigated by setting bit 4 of BP_CFG (MSR C001_102E)[239](reserved)31
  1. On Intel processors, support for the instruction-cache prefetch instructions is not indicated by CPUID.(EAX=8000_0021h):EAX[20] but instead by CPUID.(EAX=7,ECX=1):EDX[14].
  2. If the downgrade from 512-bit to 256-bit datapath is enabled, then AVX-512 instructions that work on 512-bit data items will be split into two 256-bit parts that will be issued over two consecutive cycles. This datapath downgrade can help improve power efficiency for some workloads.[235]
CPUID EAX=8000'0021h: Extended feature information in EBX
BitsEBX
ShortFeature
15:0Microcode­PatchSizeThe size of the Microcode patch in 16-byte multiples. If 0, the size of the patch is at most 5568 (15C0h) bytes
23:16RapSizeReturn Address Predictor Size.RapSize * 8 is the minimum number of CALL instructions without matching RET instructions that are needed to flush the Return Address Predictor.
31:24(reserved)

EAX=8000'0025h: Encrypted Memory Capabilities 2

CPUID EAX=8000'0025h: Encrypted memory feature information in EAX, EBX and EDX
BitsEAXEBXEDXBits
ShortFeatureShortFeatureShortFeature
0MinRmp­SegSizeMinimum supported RMP Segment SizeNumCached­SegmentsNumber of cached RMP segment definitionsRmpOptRMPOPT instruction[240]0
1EnhSmt­ProtectionEnhanced SMT Protection[241]1
2RmpDirtyRMP Dirty feature and RMPCHKD instruction[242]2
5:3(reserved)5:3
9:6MaxRmp­SegSizeMaximum supported RMP Segment Size(reserved)9:6
10NumSegReductionNumber of RMP segments is reduced(reserved)10
11(reserved)(reserved)11
31:12 (reserved)(reserved)(reserved)31:12 

EAX=8C86'0000h: Hygon Extended Feature Flags

Returns index of highest Hygon feature leaf in EAX (valid if greater than or equal to 8C860000h),[243] and Hygon feature flags in EDX.[244]

CPUID EAX=8C86'0000h: Hygon feature flags in EDX
BitsEDX
ShortFeature
0(reserved)
1sm3Hygon SM3 instructions
2sm4Hygon SM4 instructions
31:3 (reserved)

EAX=8FFF'FFFEh and EAX=8FFF'FFFFh: AMD Easter Eggs

Several AMD CPU models will, for CPUID with EAX=8FFF'FFFFh, return an Easter egg string in EAX, EBX, ECX and EDX.[245][246] Known Easter Egg strings include:

ProcessorString
AMD K6NexGenerationAMD
AMD K8IT'S HAMMER TIME
AMD Jaguar[247]HELLO KITTY! ^-^

Additionally, AMD K6 CPUs will, for CPUID with EAX=8FFF'FFFEh, return an Easter egg reference to "DEI" in EAX.[248]

EAX=C000'0000h: Highest Centaur Extended Function

Returns index of highest Centaur leaf in EAX. If the returned value in EAX is less than C0000001h, then Centaur extended leaves are not supported.

Present in CPUs from VIA and Zhaoxin.

On IDT WinChip CPUs (CentaurHauls Family 5), the extended leaves C0000001h-C0000005h do not encode any Centaur-specific functionality but are instead aliases of leaves 80000001h-80000005h.[249]

EAX=C000'0001h: Centaur Feature Information

This leaf returns Centaur feature information (mainly VIA/Zhaoxin PadLock) in EDX.[250][251][252][253] (EAX, EBX and ECX are reserved.)

CPUID EAX=C000'0001h: Centaur feature bits in EDX
BitEDX
ShortFeature
0sm2[a]GMI SM2 instruction present
1sm2_en[a]SM2 enabled
2rngPadLock RNG present: XSTORE and REP XSTORE instructions
3rng_enRNG enabled
4ccs[a]GMI SM3/SM4 instructions present: CCS_HASH and CCS_ENCRYPT
5ccs_en[a]SM3/SM4 instructions enabled
6xcryptPadLock Advanced Cryptographic Engine (ACE, using AES cipher) present: REP XCRYPT(ECB,CBC,CFB,OFB) instructions
7xcrypt_enACE enabled
8ace2ACE v2 present: REP XCRYPTCTR instruction, as well as support for digest mode and misaligned data for ACE's REP XCRYPT* instructions.
9ace2_enACE v2 enabled
10phePadLock Hash Engine (PHE): REP XSHA1 and REP XSHA256 instructions
11phe_enPHE enabled
12pmmPadLock Montgomery Multiplier (PMM): REP MONTMUL instruction
13pmm_enPMM enabled
14(reserved)
15zx_fmaFMA supported
16parallaxAdaptive P-state control present
17parallax_enAdaptive P-state control enabled
18overstressOverstress feature for auto overclock present
19overstress_enOverstress feature for auto overclock enabled
20tm3Thermal Monitor 3 present
21tm3_enThermal Monitor 3 enabled
22rng2RNG v2 - second generation RNG present: REP XRNG2 instruction
23rng2_enRNG v2 enabled
24smeSME feature present
25phe2PHE v2: SHA384 and SHA512 present
26phe2_enPHE v2 enabled
27xmodxRSA instructions present: XMODEXP and MONTMUL2 instructions
28xmodx_enRSA instructions enabled
29vexVEX instructions present
30vex_enVEX instructions enabled
31stkSTK is present
  1. 1234On VIA Nehemiah and Antaur CPUs (CentaurHauls Family 6 Model 9 only),[254] bits 0,1,4,5 are used differently:

EAX=C000'0002h: Centaur Extended CPUID Performance Data

This leaf returns information about CPU voltage, temperature, clock multipliers and power-on settings for VIA C7 processors in EAX, EBX, ECX and EDX.[255]

CPUID EAX=C000'0002h: Centaur Extended CPUID Performance Data
BitEAX[a]EBXECXEDXBit
7:0Fractional temperatureCurrent voltage: (16*[7:0]+700) mVHighest voltage: (16*[7:0]+700) mV(reserved)7:0
13:8Current temperature in CelsiusCurrent clock multiplierHighest clock multiplier(reserved)13:8
141MB Reset vector (0=0xFFFFFFF0,1=0x000FFFF0)14
15(reserved)15
17:16(reserved)Lowest voltage: (16*[23:16]+700) mVAPIC Cluster ID17:16
19:18Input Front Side Bus Clock (00=100MHz, 01=133Mz, 10=200MHz, 11=166MHz)19:18
21:20APIC Agent ID21:20
23:22Current clock ratio23:22
26:24Lowest clock ratioLowest clock multiplier26:24
31:27(reserved)31:27
  1. On the VIA C7, if the on-chip temperature sensor has been turned off, then EAX will return 0.

EAX=C000'0006h, ECX=0: Zhaoxin Feature Information

This sub-leaf returns feature information in EAX. EBX, ECX and EDX are reserved.

CPUID EAX=C000'0006h, ECX=0: Zhaoxin feature bits in EAX
BitEAX
ShortFeature
0pauseoptPAUSEOPT instruction[256]
1(reserved)[a]
2(reserved)
3(reserved)[a]
31:4(reserved)
  1. 12As of April 2026, bits 1 and 3 of EAX are not listed in any known public Zhaoxin documentation, but have been observed to be set on some KaiXian KX-7000 "Shijidadao" processors.[257]

CPUID usage from high-level languages

Inline assembly

This information is easy to access from other languages as well. For instance, the C code for gcc below prints the first five values, returned by the cpuid:

#include<stdio.h>#include<cpuid.h>intmain(){unsignedinti,eax,ebx,ecx,edx;for(i=0;i<5;i++){__cpuid(i,eax,ebx,ecx,edx);printf("InfoType %x\nEAX: %x\nEBX: %x\nECX: %x\nEDX: %x\n",i,eax,ebx,ecx,edx);}return0;}

In MSVC and Borland/Embarcadero C compilers (bcc32) flavored inline assembly, the clobbering information is implicit in the instructions:

#include<stdio.h>intmain(){unsignedinta,b,c,d,i=0;__asm{/* Do the call. */movEAX,i;cpuid;/* Save results. */mova,EAX;movb,EBX;movc,ECX;movd,EDX;}printf("InfoType %x\nEAX: %x\nEBX: %x\nECX: %x\nEDX: %x\n",i,a,b,c,d);return0;}

If either version was written in plain assembly language, the programmer must manually save the results of EAX, EBX, ECX, and EDX elsewhere if they want to keep using the values.

Wrapper functions

GCC also provides a header called <cpuid.h> on systems that have CPUID. The __cpuid is a macro expanding to inline assembly. Typical usage would be:

#include<stdio.h>#include<cpuid.h>intmain(){unsignedinteax,ebx,ecx,edx;__cpuid(0/* vendor string */,eax,ebx,ecx,edx);printf("EAX: %x\nEBX: %x\nECX: %x\nEDX: %x\n",eax,ebx,ecx,edx);return0;}

But if one requested an extended feature not present on this CPU, they would not notice and might get random, unexpected results. Safer version is also provided in <cpuid.h>. It checks for extended features and does some more safety checks. The output values are not passed using reference-like macro parameters, but more conventional pointers.

#include<stdio.h>#include<cpuid.h>intmain(){unsignedinteax,ebx,ecx,edx;/* 0x81234567 is nonexistent, but assume it exists */if(!__get_cpuid(0x81234567,&eax,&ebx,&ecx,&edx)){printf("Warning: CPUID request 0x81234567 not valid!\n");return1;}printf("EAX: %x\nEBX: %x\nECX: %x\nEDX: %x\n",eax,ebx,ecx,edx);return0;}

Notice the ampersands in &a, &b, &c, &d and the conditional statement. If the __get_cpuid call receives a correct request, it will return a non-zero value, if it fails, zero.[258]

Microsoft Visual C compiler has builtin function __cpuid() so the cpuid instruction may be embedded without using inline assembly, which is handy since the x86-64 version of MSVC does not allow inline assembly at all. The same program for MSVC would be:

#include<stdio.h>#ifdef _MSC_VER#include<intrin.h>#endifintmain(){unsignedintregs[4];inti;for(i=0;i<4;i++){__cpuid(regs,i);printf("The code %d gives %d, %d, %d, %d",regs[0],regs[1],regs[2],regs[3]);}return0;}

Many interpreted or compiled scripting languages are capable of using CPUID via an FFI library. One such implementation shows usage of the Ruby FFI module to execute assembly language that includes the CPUID opcode.

.NET 5 and later versions provide the System.Runtime.Intrinsics.X86.X86base.CpuId method. For instance, the C# code below prints the processor brand if it supports CPUID instruction:

usingSystem.Runtime.InteropServices;usingSystem.Runtime.Intrinsics.X86;usingSystem.Text;namespaceX86CPUID{classCPUBrandString{publicstaticvoidMain(string[]args){if(!X86Base.IsSupported){Console.WriteLine("Your CPU does not support CPUID instruction.");}else{Span<int>raw=stackallocint[12];(raw[0],raw[1],raw[2],raw[3])=X86Base.CpuId(unchecked((int)0x80000002),0);(raw[4],raw[5],raw[6],raw[7])=X86Base.CpuId(unchecked((int)0x80000003),0);(raw[8],raw[9],raw[10],raw[11])=X86Base.CpuId(unchecked((int)0x80000004),0);Span<byte>bytes=MemoryMarshal.AsBytes(raw);stringbrand=Encoding.UTF8.GetString(bytes).Trim();Console.WriteLine(brand);}}}}

CPU-specific information outside x86

Some of the non-x86 CPU architectures also provide certain forms of structured information about the processor's abilities, commonly as a set of special registers:

  • ARM architectures have a CPUID coprocessor register which requires exception level EL1 or above to access.[259]
  • System/370 through z/Architecture IBM mainframe processors have a supervisor-mode-only Store CPU ID (STIDP) instruction, which provides information that includes the CPU type.[260][261]:10-147–10-149
  • The z/Architecture mainframe processors also have a supervisor-mode-only Store Facilities List (STFL)[261]:10-149 instruction, and a non-privileged Store Facilities List Extended (STFLE) instruction,:7-394–7-395 which list the installed hardware features.
  • The MIPS32/64 architecture defines a mandatory Processor Identification (PrId) and a series of daisy-chained Configuration Registers.[262]
  • The PowerPC processor has the 32-bit read-only Processor Version Register (PVR) identifying the processor model in use. The instruction requires supervisor access level.[263]
  • The RISC-V architecture has an mcpuid "read-only register containing information regarding the capabilities of the CPU implementation"[264]

DSP and transputer-like chip families have not taken up the instruction in any noticeable way, in spite of having (in relative terms) as many variations in design. Alternate ways of silicon identification might be present; for example, DSPs from Texas Instruments contain a memory-based register set for each functional unit that starts with identifiers determining the unit type and model, its ASIC design revision and features selected at the design phase, and continues with unit-specific control and data registers. Access to these areas is performed by simply using the existing load and store instructions; thus, for such devices, there is no need for extending the register set for device identification purposes.

See also

References

  1. "Intel 64 and IA-32 Architectures Software Developer's Manual"(PDF). Intel.com. Retrieved 2013-04-11.
  2. "Detecting Intel Processors - Knowing the generation of a system CPU". Rcollins.org. Retrieved 2013-04-11.
  3. "LXR linux-old/arch/i386/kernel/head.S". Lxr.linux.no. Retrieved 2013-04-11.{{cite web}}: CS1 maint: deprecated archival service (link)
  4. 123Debbie Wiles, CPU Identification, archived on 2006-06-04
  5. B-CoolWare, TMi0SDGL x86 CPU/FPU detection library with source code, v2.15, June 2000 - see /SOURCE/REALCODE.ASM for a large collection of pre-CPUID x86 CPU detection routines. Archived on 14 Mar 2023.
  6. "CPUID, EAX=4 - Strange results (Solved)". Software.intel.com. Retrieved 2014-07-10.
  7. instlatx64. "CPUID dump for RDC IAD 100". Archived from the original on 5 December 2019. Retrieved 22 December 2022.{{cite web}}: CS1 maint: numeric names: authors list (link)
  8. @InstLatX64 (February 28, 2019). "First encounter with "GenuineIotel" (o after I, instead of n)" (Tweet) via Twitter.
  9. "GenuineIotel CPUID dump for Intel Xeon E3-1231". instlatx64. Archived from the original on 7 December 2019.
  10. Grzegorz Mazur, Identification of x86 CPUs with CPUID support, 5 May 1997. Archived from the original on 24 May 1997.
  11. Ingo Böttcher, CPUDET.PAS v1.61, 23 Oct 1996 - CPU identification program that tests for "AMD ISBETTER" string. Archived on 26 Apr 2024.
  12. sorgelig (Aug 3, 2017). "ao486 CPUID instruction (in commit 43a2004)". GitHub. Archived from the original on 2023-12-04. Retrieved 2023-12-04.
  13. 12sorgelig (Aug 30, 2020). "Update cpuid. · MiSTer-devel/ao486_MiSTer@82f5014". GitHub. Archived from the original on 2023-12-04. Retrieved 2023-12-04.
  14. sorgelig (Aug 30, 2020). "ao486 CPUID instruction". GitHub. Archived from the original on October 23, 2023. Retrieved 4 Dec 2023.
  15. "v586: 586 compatible soft core for FPGA". GitHub. 6 December 2021.
  16. 1234smxi, Inxi issue 197: Elbrus CPU support data and implementation. Retrieved 23 October 2023. Archived on 23 October 2023.
  17. Peter Ferrie, Attacks on More Virtual Machine Emulators, page 5. Archived on 15 Feb 2010.
  18. 12Amit Singh, Miscellaneous, see Solaris section. Archived from the original on 10 Dec 2004.
  19. 1234Darek Mihocka, ARM64 Boot Camp: Understanding x86/x64 Emulation on Windows on ARM, 28 Jan 2024, see "Probing CPUID" section. Archived on 24 Feb 2024.
  20. "Fun with Timers and cpuid - by Jim Cownie - CPU fun". 3 March 2021. Archived from the original on 3 March 2021.
  21. Insignia Solutions, RealPC Installation and User’s Guide, 1997, p. 71. Archived from the original on 28 Nov 2015.
  22. Philippe Geneste, (INFO) Emulation PC sur Mac (in French), 21 Jan 1998. Archived on 24 Jun 2025.
  23. Insignia Solutions, SoftWindows 98 Installation and User's Guide, 1998, p. 127. Archived from the original on 25 Nov 2015.
  24. VOGONS discussion thread "SIV support for 386/486/586 class + Alpha CPUs and 3dfx + S3 + SiS + Matrox + XGI + old ATI + NVidia GPUs - Testing Help", post by lolo799 on 2021-09-12 17:10 — see SIV32L attachments for a screenshot and a CPUID dump listing the "Compaq FX!32" string. Archived on 19 May 2024.
  25. Neko Project 21/W, help/configure (in Japanese). Archived on 22 Sep 2024.
  26. CPU-World, CPUID for emulated Neko Project CPU with "Neko Project" string. Archived on 16 Nov 2025.
  27. iXBT Labs, VIA Nano CPUID Tricks, Aug 26, 2010. Archived on Aug 29, 2010.
  28. IDT, WinChip 2A data sheet, v1.0, Jan 1999, page A-3.
  29. VIA, C3 Nehemiah Datasheet, rev 1.13, Sep 29, 2004, page A-3.
  30. Agner Fog, CpuIDFake, v1.00, Jan 22, 2010, see "Instructions.txt". Archived on Jul 9, 2010.
  31. 12Transmeta, Crusoe BIOS Programmer's Guide, Jan 23, 2004, pages 63-65.
  32. Transmeta, Efficeon BIOS Programmers Guide, Aug 19, 2003, section 8.3, page 148.
  33. AMD, Geode LX Data Book, pub.id. 33234H, Feb. 2009, page 107. Archived on Dec 3, 2023.
  34. DM&P, Vortex86EX2_A9133_Master_Data_Sheet_V11_BF, May 8, 2019, page 72.
  35. "Chapter 3 Instruction Set Reference, A-L"(PDF). Intel 64 and IA-32 Architectures Software Developer's Manual. Intel Corporation. 2018-12-20. Retrieved 2018-12-20.
  36. Intel, Pentium Processor Family Developer's Manual, 1997, order no. 241428-005, sections 3.4.1.2 (page 91), 17.5.1 (page 489) and appendix A (page 522) provide more detail on how the "processor type" field and the "dual processor" designation work.
  37. InstLatx64 (17 May 2026). "x86, x64 Instruction Latency, Memory Latency and CPUID dumps".{{cite web}}: CS1 maint: numeric names: authors list (link)
  38. AMD, Enhanced Am486DX Microprocessor Family, pub.no. 20736 rev B, March 1997, section 9.2.2, page 55. Archived on 18 Oct 2023.
  39. AMD, ÉlanSC400 and ÉlanSC410 Microcontrollers User's Manual, pub.no. 21030, 1997, section 3.6.2, page 73. Archived on 18 Oct 2023.
  40. Cyrix, 5x86 BIOS Writers Guide, rev 1.12, order no. 92426-00, 1995, page 7
  41. 12Cyrix, CPU Detection Guide, rev 1.01, 2 Oct 1997, page 6.
  42. MiSTer ao486 source code, rtl/ao486/defines.v, line 70. Archived on 23 Oct 2023.
  43. CPU-World, CPUID for Vortex86DX2 933 MHz. Archived on 15 Nov 2025.
  44. CPU-World, CPUID for Vortex86EX2. Archived on 7 Sep 2025.
  45. InstLatx64. "Centaur CNS CPUID dump". Archived from the original on 30 May 2023.{{cite web}}: CS1 maint: numeric names: authors list (link)
  46. Jeff Atwood, Nasty Software Hacks and Intel's CPUID. Coding Horror, 16 Aug 2005.
  47. 12Intel, Intel Xeon Phi Coprocessor Instruction Set Architecture Reference Manual, sep 2012, order no. 327364-001, appendix B.8, pages 673-674. Archived on 4 Aug 2021.
  48. CPU-World, CPUID for Intel Itanium 2 1.50 GHz. Archived on 14 Nov 2025.
  49. "[PATCH] x86/cpu: Add CPU model numbers for Novalake - Tony Luck". lore.kernel.org. Retrieved 2025-08-16.
  50. "[PATCH] x86/cpu: Add two Intel CPU model numbers - Tony Luck". lore.kernel.org. Retrieved 2024-09-24.
  51. InstLatX64. "72-Core Intel Xeon Phi 7290 CPUID dump".{{cite web}}: CS1 maint: numeric names: authors list (link)
  52. InstLatx64. "96-Core AMD Ryzen Threadripper Pro 7995WX CPUID dump".{{cite web}}: CS1 maint: numeric names: authors list (link)
  53. Intel Processor Identification and the CPUID Instruction(PDF), Intel, May 2002, archived from the original(PDF) on 2021-04-17
  54. Linux 6.3 kernel sources, /arch/x86/include/asm/cpuid.h, line 69
  55. gcc-patches mailing list, CPUID Patch for IDT Winchip, May 21, 2019
  56. Geoff Chappell, CMPXCHG8B Support in the 32-Bit Windows Kernel, Jan 23, 2008. Archived on Jan 30, 2023.
  57. AMD, AMD Processor Recognition Application Note, publication #20734, rev D, Jan 1997, page 13
  58. Intel, AP-485 Application Note - Intel Processor Identification and the CPUID Instruction, order no. 241618-006, march 1997, table 5 on page 10, see bit 10.
  59. Michal Necasek, SYSENTER, Where Are You?, OS/2 Museum, July 20, 2017
  60. Intel, TDX module source code, v1.0.03.03, 22 Jun 2023, see src/common/helpers/smrrs.h. Archived on 20 Jan 2025.
  61. Intel, Trust Domain CPU Architectural Extensions, order no. 343754-002, may 2021. Archived on 17 Dec 2024.
  62. Intel, Pentium 4 Processor on 90 nm Process Specification Update, order no. 302352-031, sep 2006, see erratum R85 on page 59. Archived on 31 Dec 2008.
  63. Geoff Chappell, ECX From CPUID Leaf 1, Jan 26, 2020. Archived on May 9, 2020.
  64. Huggahalli, Ram; Iyer, Ravi; Tetrick, Scott (2005). "Direct Cache Access for High Bandwidth Network I/O". ACM SIGARCH Computer Architecture News. 33 (2): 50–59. CiteSeerX 10.1.1.85.3862. doi:10.1145/1080695.1069976. CiteSeerX:10.1.1.91.957.
  65. Drepper, Ulrich (2007), What Every Programmer Should Know About Memory, CiteSeerX:10.1.1.91.957
  66. 12Intel, Itanium Architecture Software Developer's Manual, rev 2.3, volume 4: IA-32 Instruction Set, may 2010, document number: 323208, table 2-5, page 4:81, see bits 20 and 30. Archived on Feb 15, 2012.
  67. Intel, AP-485, Processor Identification and the CPUID Instruction flag, rev 30, jan 2006, page 26
  68. Michal Necasek, HTT Means Hyper-Threading, Right?, OS/2 Museum, dec 11, 2017
  69. "Mechanisms to determine if software is running in a VMware virtual machine". VMware Knowledge Base. VMWare. 2015-05-01. Intel and AMD CPUs have reserved bit 31 of ECX of CPUID leaf 0x1 as the hypervisor present bit. This bit allows hypervisors to indicate their presence to the guest operating system. Hypervisors set this bit and physical CPUs (all existing and future CPUs) set this bit to zero. Guest operating systems can test bit 31 to detect if they are running inside a virtual machine.
  70. Kataria, Alok; Hecht, Dan (2008-10-01). "Hypervisor CPUID Interface Proposal". LKML Archive on lore.kernel.org. Archived from the original on 2019-03-15. Bit 31 of ECX of CPUID leaf 0x1. This bit has been reserved by Intel & AMD for use by hypervisors and indicates the presence of a hypervisor. Virtual CPU's (hypervisors) set this bit to 1 and physical CPU's (all existing and future CPU's) set this bit to zero. This bit can be probed by the guest software to detect whether they are running inside a virtual machine.
  71. "AMD64 Technology AMD64 Architecture Programmer's Manual Volume 2: System Programming"(PDF) (3.41 ed.). Advanced Micro Devices, Inc. p. 498. 24593. Archived from the original(PDF) on 30 Sep 2023. Retrieved 9 September 2023. 15.2.2 Guest Mode This new processor mode is entered through the VMRUN instruction. When in guest mode, the behavior of some x86 instructions changes to facilitate virtualization. The CPUID function numbers 4000_0000h-4000_00FFh have been reserved for software use. Hypervisors can use these function numbers to provide an interface to pass information from the hypervisor to the guest. This is similar to extracting information about a physical CPU by using CPUID. Hypervisors use the CPUID Fn 400000[FF:00] bit to denote a virtual platform. Feature bit CPUID Fn0000_0001_ECX[31] has been reserved for use by hypervisors to indicate the presence of a hypervisor. Hypervisors set this bit to 1 and physical CPU's set this bit to zero. This bit can be probed by the guest software to detect whether they are running inside a virtual machine.
  72. Intel SDM vol 2A, order no. 253666-053, Jan 2015, p. 244
  73. 12Intel, Processor Identification and the CPUID Instruction Application Note 485, order no. 241618-037, Jan 2011, pages 31-32. Archived on 17 Oct 2023.
  74. Intel, Itanium Processor Reference Manual for Software Development, rev 2.0, order no. 245320-003, December 2001, page 110. Archived from the original on 18 Feb 2004.
  75. 12Intel, Processor Identification and the CPUID Instruction Application Note 485, order no. 241618-036, Aug 2009, page 26. Archived on 6 Oct 2023.
  76. InstLatX64, Willamette-128 CPUID dump. Archived on 7 Dec 2019.
  77. InstLatX64, Northwood-128 CPUID dump. Archived on 7 Dec 2019.
  78. InstLatX64, Prescott-256 CPUID dump. Archived on 6 Dec 2019.
  79. InstLatX64, Intel Tolapai CPUID dump. Archived on 19 Jan 2019.
  80. Jason Gaston, (PATCH 2.6.24-rc5) x86 intel_cacheinfo.c: cpu cache info entry for Intel Tolapai, LKML, 20 Dec 2007. Archived on 9 Nov 2024.
  81. VIA-Cyrix, Application Note 120: Cyrix III CPU BIOS Writer's Guide, rev 1.1, 24 Nov 1999, page 13. Archived from the original on 29 Sep 2000.
  82. InstlatX64, Intel Atom 230 CPUID dump. Archived on 7 Dec 2019.
  83. WikiChip, Bonnell. Archived on 16 Jul 2017.
  84. Cyrix, Cyrix CPU Detection Guide, rev 1.01, 2 Oct 1997, page 13.
  85. CPU-World forum, Working Timna desktop 2023, page 2 - lists a CPUID dump from a Timna engineering sample. Archived on 9 Nov 2024.
  86. Geoff Chappell, CPUID Leaf 2, 26 Jan 2020. Archived on Sep 4, 2023.
  87. Intel, Itanium 2 Processor Reference Manual, order no. 251110-003, May 2004, page 192. Archived from the original on 7 Dec 2006.
  88. Intel, Itanium 2 Processor Specification Update, order.no. 251141-028, Nov 2004, erratum 6 on page 26. Archived from the original on 25 Nov 2004.
  89. Intel, Atom C3000 Processor Product Family Specification Update, order no. 336345-020, page 16, Mar 2023. Archived on 7 Oct 2023.
  90. Intel, 6th Generation Intel Processor Specification Update, order no. 332689-030, July 2023, see erratum SKL148 on page 66. Archived from the original on 8 mar 2023.
  91. Intel, 10th Generation Intel Core Processor Specification Update, order no. 615213-013, apr 2023, see erratum CML081 on page 41. Archived on 19 Jul 2024.
  92. Intel, Xeon Processor 7500 Series Datasheet, order no. 323341-001, March 2010, page 150. Archived on Oct 8, 2023.
  93. Intel, Optimization Reference Manual, volume 1, order no. 248966-049, jan 2024, chapter 9.6.3.3, p. 361. Archived on 19 Apr 2024.
  94. Intel, AP-909 Application Note: Processor Serial Number, order no. 245125-001, March 1999. Archived from the original on 21 Jan 2004.
  95. Transmeta, Processor Recognition, 7 May 2002, page 4. Archived from the original on 19 March 2003.
  96. Transmeta, Crusoe BIOS Programmer's Guide, 23 Jan 2004, page 12. Archived from the original on 13 May 2005.
  97. InstlatX64, Transmeta Efficieon 86x0 CPUID dump, see CPUID 00000003. Archived on 7 Dec 2019.
  98. Intel, Processor Identification and the CPUID Instruction, order no. 241618-031, sep 2006, page 32.
  99. InstLatx64, Intel Xeon Phi 7210 CPUID dump. Archived on 13 May 2025.
  100. 12Shih Kuo (Jan 27, 2012). "Intel 64 Architecture Processor Topology Enumeration".
  101. "Processor and Core Enumeration Using CPUID | AMD". Developer.amd.com. Archived from the original on 2014-07-14. Retrieved 2014-07-10.
  102. "Sandybridge processors report incorrect core number?". Software.intel.com. 2012-12-29. Retrieved 2014-07-10.
  103. "cpuid, __cpuidex". Msdn.microsoft.com. 2014-06-20. Retrieved 2014-07-10.
  104. "topology.cpp in ps/trunk/source/lib/sysdep/arch/x86_x64 – Wildfire Games". Trac.wildfiregames.com. 2011-12-27. Archived from the original on 2021-03-09. Retrieved 2014-07-10.
  105. Hyper-Threading Technology and Multi-Core Processor Detection
  106. Intel, Architecture Instruction Set Extensions Programming Reference, order no. 319433-052, March 2024, chapter 17. Archived on Apr 7, 2024.
  107. Intel, Intel Processor Identification and the CPUID Instruction (AP-485, rev 30), order no. 241618-030, Jan 2006, page 19.
  108. Intel, Intel 64 and IA-32 Architecture Software Developer's Manual, order no. 352462-079, volume 3B, section 15.4.4.4, page 3503
  109. Intel, Processor Identification and the CPUID Instruction, order no. 241618-038, apr 2012, p.38
  110. Intel, Product Change Notification 108701, 1 aug 2008. Archived on May 11, 2023
  111. 12"Performance Monitoring Impact of Intel Transactional Synchronization Extension Memory Ordering Issue"(PDF). Intel. June 2023. p. 8. Retrieved 8 May 2024.
  112. 123Intel, Architecture Specification: Intel Trust Domain Extensions (Intel TDX) Module, order no. 344425-001, sep 2020, pages 120-122. Archived from the original on Jul 29, 2021.
  113. Intel, Deprecating the PCOMMIT instruction, sep 12, 2016. Archived on Mar 5, 2024.
  114. Intel, AVX512-FP16 Architecture Specification (PDF), document number 347407-001, June 2021. Archived on Oct 26, 2022
  115. 1234"Speculative Execution Side Channel Mitigations"(PDF). Revision 2.0. Intel. May 2018 [January 2018]. Document Number: 336996-002. Retrieved 2018-05-26.
  116. "IBRS patch series [LWN.net]".
  117. Intel, X86S External Architecture Specification v1.2, June 2024, order no. 351407-002, section 3.5, page 13. Archived from the original on 2 Oct 2024.
  118. Intel, Envisioning a Simplified Intel Architecture - as of 20 Dec 2024, contains a mention that Intel has chosen not to pursue X86S. Archived on 20 Dec 2024.
  119. 123Intel, Flexible Return and Event Delivery (FRED) Specification, rev 6.1, December 2023, order no. 346446-007, page 14. Archived on Dec 22, 2023.
  120. Intel, Software Developer's Manual, order no. 325462-080, June 2023 - information about prematurely busy shadow stacks provided in Volume 1, section 17.2.3 on page 410; Volume 2A, table 3.8 (CPUID EAX=7,ECX=2) on page 820; Volume 3C, table 25-14 on page 3958 and section 26.4.3 on page 3984.
  121. Intel, Complex Shadow-Stack Updates (Intel Control-Flow Enforcement Technology), order no. 356628-001, August 2023. Archived on 2 Apr 2024.
  122. LKML, Re: (PATCH v3 00/21) Enable CET Virtualization, Jun 16, 2023 - provides additional discussion of how the CET-SSS prematurely-busy stack issue interacts with virtualization. Archived on 7 Aug 2023.
  123. 12Intel, Advanced Vector Extensions 10, rev 1.0, July 2023, order no. 355989-001. Archived on Jul 24, 2023.
  124. 12Intel, Advanced Performance Extensions - Architecture Specification, rev 2.0, Aug 2023, order no. 355828-002, page 37. Archived on Sep 10, 2023.
  125. Intel, TDX Module ABI tables, April 2026 drafts, see /PDF/cpuid_virtualization.pdf pages 6-7. Archived on 1 May 2026.
  126. Intel, Fast Store Forwarding Predictor, 8 Feb 2022. Archived on 6 Apr 2024.
  127. 123Intel, Branch History Injection and Intra-mode Branch Target Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598, 4 Aug 2022. Archived on 11 Feb 2024.
  128. Intel, Return Stack Buffer Underflow / CVE-2022-29901, CVE-2022-28693 / INTEL-SA-00702, 12 Jul 2022. Archived on 3 Jul 2024.
  129. Intel, Data Dependent Prefetcher, 10 Nov 2022. Archived on 4 Aug 2024.
  130. Intel, MONITOR and UMONITOR Performance Guidance, 10 Jul 2024. Archived on 27 Nov 2024.
  131. InstLatx64, Intel Core i7-1065G7 CPUID dump — has the SGX oversubscription feature bits set (CPUID.(EAX=12h,ECX=0).EAX[6:5]). Archived on 6 Dec 2019.
  132. Intel SGX Virtualization, KVM Forum 2018, p.19. Archived on 17 Nov 2019.
  133. Intel, Asynchronous Enclave Exit Notify and the EDECCSSA User Leaf Function, 30 Jun 2022. Archived on 21 Nov 2022.
  134. Linux kernel git commit 604dc91, x86/tsc: Use CPUID.0x16 to calculate missing crystal frequency, 9 May 2019 - contains notes on computing the Core Crystal Clock frequency on CPUs that don't specify it, and corresponding C code.
  135. Intel, SDM Volume 3A, order no 253668-083, March 2024, chapter 11.5.4, page 408
  136. instlatx64, Spreadtrum SC9853I-IA CPUID dump
  137. "Intel® Architecture Instruction Set Extensions and Future Features"(PDF) (58th ed.). Jun 2025. p. 41. 319433-058. Archived(PDF) from the original on 17 Jul 2025. Retrieved 30 Oct 2025.
  138. "Intel® Architecture Instruction Set Extensions and Future Features"(PDF) (59th ed.). 2 Oct 2025. p. 41. 319433-059. Archived(PDF) from the original on 3 Oct 2025. Retrieved 3 Oct 2025.
  139. "Intel® Architecture Instruction Set Extensions and Future Features"(PDF) (62nd ed.). 27 Jun 2026. p. 41. 319433-062. Retrieved 27 Jun 2026.{{cite web}}: CS1 maint: url-status (link)
  140. Intel, Architecture Specification: Intel Trust Domain Extensions (Intel TDX) Module, order no. 344425-005, page 93, Feb 2023. Archived on 20 Jul 2023.
  141. Intel, Intel Advanced Vector Extensions 10 Architecture Specification, order no. 355989-003US, July 2024, see revision history on page 13. Archived on 8 Oct 2024.
  142. Intel, Trust Domain Extensions (Intel TDX) Module Base Architecture Specification, order no. 348549-006US, April 2025, p. 116. Archived on 24 Apr 2025.
  143. Intel, Advanced Vector Extensions 10.2 Architecture Specification, revision 4.0, order no. 361050-004US, May 2025, p. 16. Archived on 25 May 2025.
  144. "AI Compute Extensions (ACE) Specification"(PDF). x86 Ecosystem Advisory Group (published 15 June 2026). 15 May 2026. p. 10. Retrieved 18 June 2026.
  145. 12Intel, Intel Xeon Phi Coprocessor Instruction Set Architecture Reference Manual, Sep 2012, order no. 327364-001, appendix B.8, pages 677. Archived on 4 Aug 2021.
  146. 12Microsoft, Hyper-V Feature and Interface Discovery, 8 Jul 2022. Archived on 18 Nov 2023.
  147. Geoff Chappell, HV_HYPERVISOR_INTERFACE, 10 Dec 2022. Archived on 1 Feb 2023.
  148. David Woodhouse, Extended Destination ID: Supporting x86 virtual machines with many vCPUs, 20 Aug 2025, page 4. Archived on 23 Aug 2025.
  149. QEMU documentation, Hyper-V Enlightenments. Archived on 17 Apr 2024.
  150. Linux 6.8.7 kernel source, /source/arch/x86/kvm/cpuid.c, lines 1482-1488
  151. 12Xen, CPUID Interface to Xen. Archived on 22 Apr 2024.
  152. Linux kernel documentation, KVM CPUID bits. Archived on 22 Aug 2022.
  153. Linux 6.8.7 kernel source, /arch/x86/kvm/hyperv.c, line 2793
  154. Linux kernel documentation, Virtualization support: 4.118 KVM_GET_SUPPORTED_HV_CPUID. Archived on 26 Mar 2024.
  155. FreeBSD commit 560d5ed, 28 Jun 2013, see file /sys/amd64/vmm/x86.c, line 48. Archived on 22 Apr 2024.
  156. HyperKit source code, /src/lib/vmm/x86.c line 42, 8 May 2021.
  157. QEMU source code, fb/target/i386/cpu.c, line 6475, 18 Mar 2024.
  158. Xakep, Детектим виртуалки [Detecting Virtual Machines] (in Russian), 8 Nov 2013 - lists the values returned in EBX/ECX/EDX for CPUID.(EAX=40000000) on Parallels Workstation as 0x70726c20, 0x68797065 and 0x72762020, respectively - which corresponds to the endianness-swapped " lrpepyh  vr" string. Archived on 25 Mar 2015.
  159. VMWare, Mechanisms to determine if software is running in a VMware virtual machine, 1 May 2015. Archived on 23 Jan 2022.
  160. Project ACRN, CPUID Virtualization, 20 Oct 2022. Archived on 25 Mar 2023.
  161. VirtualBox documentation, 9.30 Paravirtualized Debugging. Archived on 22 Apr 2024.
  162. QNX, Hypervisor - Checking the guest's environment, 25 Mar 2022. Archived on 22 Apr 2024.
  163. NetBSD source code, /sys/dev/nvmm/x86/nvmm_x86_vmx.c, line 1430, 6 Nov 2023.
  164. OpenBSD source code, /sys/arch/amd64/include/vmmvar.h, line 24, 9 Apr 2024.
  165. Siemens Jailhouse hypervisor documentation, hypervisor-interfaces.txt, line 39, 27 Jan 2020. Archived on Jul 5, 2024.
  166. Bitdefender Napoca source code, /napoca/kernel/guestenlight.c, line 293, 30 Jul 2020.
  167. FEX-Emu documentation, FEXCore custom CPUID functions, 24 May 2024.
  168. Intel HAXM source code, /core/cpuid.c, line 979, 20 Jan 2023. Archived on 22 Apr 2024.
  169. Intel KGT source code (trusty branch), /vmm/vmexit/vmexit_cpuid.c, lines 17-75, 15 May 2019
  170. Linux kernel v5.18.19 source code, /source/drivers/visorbus/visorchipset.c, line 28
  171. N. Moore, virt: Support detection of LMHS SRE guests #25594, 1 Dec 2022 - Lockheed Martin-provided pull-request for systemd, adding CPUID hypervisor ID string for the LMHS SRE hypervisor. Archived on 23 Apr 2024.
  172. 123AMD, Processor Recognition Application Note, pub.no. 20734, rev. 3.13, december 2005:
    • Section 2.2 (p.19) provides a description of leaf 1 vs leaf 80000001 processor family numbers.
    • Section 2.2.2 (p.21) and Section 3 (pages 33 to 40) provide details on how CPUID.(EAX=8000_0001):EDX[bit 19] should be used to identify processors.
    • Section 3 also provides information on AMD's brand name string MSRs.
    Archived from the original on Jun 26, 2006.
  173. CPUID Specification, publication no.25481, rev 2.34(PDF), AMD, September 2010, archived from the original(PDF) on 18 Aug 2022
  174. Linux kernel source code
  175. AMD, AMD-K6 Processor Data Sheet, order no. 20695H/0, march 1998, section 24.2, page 283
  176. AMD, AMD-K6 Processor Revision Guide, order no. 21846H/0, June 1999, section 3.2.1, page 17
  177. Brian Gerst, syscall w/6 args support?, Linux kernel mailing list, 8-9 Dec 1999. Archived on 10 Mar 2026.
  178. Intel, Intel 64 and IA-32 Architectures Software Developer's Manual, order no. 325462-079, march 2023, table 3-8 on page 3-238
  179. AMD, AMD64 Technology: 128-bit SSE5 Instruction Set, pub.no. 43479, rev. 3.01, Aug 2007, section 1, page 1. Archived from the original on 19 Aug 2014.
  180. 12Sandpile.org, x86 architecture CPUID, extended leaf 8000_0001h, accessed 25 Apr 2026. Archived on 20 Aug 2026
  181. Sandpile.org, x86 architecture XOP opcodes. Archived on 11 Sep 2024.
  182. Lightweight Profiling Specification(PDF), AMD, August 2010, archived from the original(PDF) on 2012-11-27, retrieved 2013-04-03
  183. Cyrix, Cyrix CPU Detection Guide, rev 1.01, oct 2, 1997, page 12
  184. AMD, Geode GX1 Processor Data Book, rev 5.0, december 2003, pages 202 and 226. Archived on 20 Apr 2020.
  185. Transmeta, Processor Recognition, 2002-05-07, page 5
  186. Instlatx64, AMD Athlon "Thunderbird" CPUID dump. [https://web.archive.org/web/20250515140345/https://instlatx64.github.io/InstLatx64/AuthenticAMD/AuthenticAMD0000644_K7_Thunderbird_CPUID.txt Archived on 15 May 2025.
  187. OS/2 Museum, Mystery CPUID bit, see comment by "CL" on 22 Apr 2026. Archived on 25 Aug 2026.
  188. AMD, AMD64 Architecture Programmer’s Manual Volume 6: 128-Bit and 256-Bit XOP, FMA4 and CVT16 Instructions, pub.no. 43479, rev 3.03, May 2009, page 23. Archived on 18 Jan 2023
  189. AMD, Family 10h BKDG, document no. 31116, rev 3.62, jan 11, 2013, p. 388 - lists the NodeId bit. Archived on 16 Jan 2019.
  190. AMD, SimNow Simulator 4.6.1 User's Manual, rev 2.13, Nov 2009, page 187. Archived from the original on 24 may 2012.
  191. AMD, AMD64 Architecture Programmer's Manual Volume 3, pub. no. 24594, rev 3.20, may 2013, page 579 - lists the StreamPerfMon bit
  192. InstLatx64, VIA C5XL Nehemiah (stepping 1) CPUID dump. Archived on 7 Oct 2025
  193. "sandpile.org -- x86 architecture -- CPUID". www.sandpile.org. Retrieved 2026-04-20.
  194. Sandpile.org, x86 architecture vector floating-point registers, see bottom of page. Archived on 13 Nov 2025.
  195. AMD, US Patent 6877084B1: Central processing unit (CPU) accessing an extended register set in an extended register mode, granted on 5 Apr 2004, expired in 2023.
  196. InstLatX64, AMD 4700S CPUID dump. Archived on 10 Oct 2025.
  197. "Intel Processor Identification and the CPUID Instruction"(PDF). Download.intel.com. 2012-03-06. Retrieved 2013-04-11.
  198. InstLatx64, Vortex86DX3 CPUID dump, 27 Sep 2021. Archived on 21 Oct 2021.
  199. InstLatx64, AMD Ryzen 7 6800HS CPUID dump, 21 Feb 2022. Archived on 24 Mar 2023.
  200. Chips and Cheese, Why you can't trust CPUID, 27 Oct 2022. Archived on 3 Nov 2022.
  201. AMD, Geode LX Databook, pub.id. 33234H, Feb 2009, page 207.
  202. InstLatx64, HexaCore Intel Core i7-3960X Extreme Edition CPUID dump
  203. InstLatx64, HexaCore Intel Xeon W3670 CPUID dump
  204. InstLatx64, AMD EPYC 9655 CPUID dump
  205. InstLatx64, 2x 24-core Montage Jintide C2460 CPUID dump
  206. InstLatx64, 2x 24-core Intel Xeon Platinum 8160 CPUID dump
  207. InstLatx64, Zhaoxin KaiXian ZX-C+ C4580 CPUID dump
  208. InstLatx64, VIA Eden X4 C4250 CPUID dump
  209. Cyrix, Application Note 112: Cyrix CPU Detection Guide, page 17, 21 July 1998.
  210. Instlatx64, VIA Cyrix III "Samuel" CPUID dump
  211. 12345Sandpile, x86 architecture CPUID, extended leaf 8000_0007h. Archived on 20 Apr 2026.
  212. AMD, BKDG for AMD Family 10h Processors, pub.no. 31116, rev 3.62, jan 11, 2013, page 392. Archived on 16 Jan 2019.
  213. 1234AMD, PPR For AMD Family 19h Model 61h rev B1 procesors, pub.no. 56713, rev 3.05, Mar 8, 2023, pages 99-100. Archived on 25 Apr 2023.
  214. 12AMD, AMD64 Collaborative Processor Performance Control (CPPC) Performance Priority, pub.no. 69206, rev 1.10, 4 Mar 2026. Archived on 9 Mar 2026.
  215. AMD, AMD64 Collaborative Processor Performance Control (CPPC) Performance Priority, pub.no. 69206, rev 1.00, 25 Feb 2026. Archived on 27 Feb 2026.
  216. AMD, BKDG for AMD Family 16h Models 00-0Fh processors, pub.no. 48571, rev 3.03, Feb 19, 2015, page 482. Archived on 16 Jan 2019.
  217. SpecterDev, Next-Gen Exploitation: Exploring the PS5 Security Landscape, June 2023 hardwear.io conference presentation slide deck, pages 34, 41 and 53. Archived on 10 Jun 2023.
  218. Instlatx64, AMD 4700S 8-core Processor Desktop Kit CPUID dump
  219. AMD, BIOS and Kernel Developer's Guide for AMD Athlon 64 and AMD Opteron Processors, publication #26094, rev 3.30, feb 2006, pages 29-30 (lists Athlon 64 revision differences, including LMSLE) (archived on 16 Jan 2019), and Revision Guide for AMD Athlon 64 and AMD Opteron Processors, publication #25759, rev 3.79, july 2009, pages 7-8 (lists Athlon 64 revision IDs) (archived on 18 Jan 2019).
  220. AMD, PPR for AMD Family 19h Model 01h, Revision B1 Processors, Volume 1 of 2, document no. 55898, rev 0.50, may 27, 2021, page 98 - lists branch-sampling bit. Archived on Jul 24, 2022
  221. AMD, AMD64 Guest PMC Event Filtering, pub.no. 69202, rev 1.00, 27 Feb 2026. Archived on 11 Mar 2026.
  222. AMD, AMD64 Page Modification Logging, pub.no. 69208, rev 1.00, 10 Mar 2026. Archived on 11 Mar 2026.
  223. AMD, AMD64 Virtualization Codenamed "Pacifica" Technology, publication no. 33047, rev 3.01, May 2005, appendix B, page 81. Archived on Jun 13, 2011.
  224. AMD, CPUID specification, publication #25481, revision 2.18, jan 2006, page 18.
  225. AMD, CPUID specification, publication #25481, revision 2.34, sep 2010, pages 5 and 11.
  226. Instlatx64, AMD E-350 CPUID dump - has CPUID.(EAX=8000000A):EDX[9] set.
  227. AMD, CPUID specification, publication #25481, revision 2.28, apr 2008, page 21.
  228. AMD, CPUID specification, publication #25481, revision 2.34, sep 2010, page 5 - lists "SseIsa10Compat" as having been dropped in November 2009.
  229. 12AMD, PPR for AMD Family 19h Model 61h, Revision B1 processors, document no. 56713, rev 3.05, mar 8 2023, page 102. Archived on Apr 25, 2023.
  230. 1234AMD, Processor Programming Reference (PPR) for AMD Family 1Ah Model 70h, Revision B0 Processors, order no. 57930, rev 3.00, 30 Apr 2025, pages 103, 119 and 200. Archived on 19 Jan 2026.
  231. 123OpenAnolis cloud kernel 6.6 documentation, Hygon Secure Virtualization. Archived on 12 Mar 2026.
  232. AMD, Secure VM Service Module for SEV-SNP Guests, pub.no #58019, rev 1.00, Jul 2023, page 13. Archived on 5 Aug 2023.
  233. 12AMD, PPR for AMD Family 19h Model 61h, Revision B1 processors, document no. 56713, rev 3.05, mar 8 2023, page 116. Archived on Apr 25, 2023.
  234. 123AMD, Technical Guidance For Mitigating Transient Scheduler Attacks, rev 2.0, July 2025, page 3. Archived on 14 Aug 2025.
  235. AMD, 5th Gen AMD EPYC Processor Architecture, First Edition, October 2024, page 9. Archived on 28 Dec 2024.
  236. Binutils mailing list, [PATCH] Add AMD znver6 processor support, 7 Nov 2025.
  237. AMD, AMD64 Bit Matrix Multiply and Bit Reversal Instructions, pub.no. 69192, rev 1.00, 30 Jan 2026. Archived on 27 Feb 2026.
  238. AMD, AMD64 Upper Address Ignore Version 2, pub.no. 69207, rev 1.00, 10 Mar 2026. Archived on 11 Mar 2026.
  239. 12345AMD, Technical Update Regarding Speculative Return Stack Overflow, rev 2.0, feb 2024. Archived on Apr 12, 2024.
  240. AMD, AMD64 RMPOPT, pub.no. 69201, rev 1.00, Feb 2026. Archived on 26 Feb 2026.
  241. AMD, AMD64 Enhanced SMT Protection, pub.no. 69204, rev 1.00, Mar 2026. Archived on 29 Mar 2026.
  242. AMD, AMD64 RMP Dirty, pub.no. 69203, rev 1.00, Feb 2026. Archived on 25 Feb 2026.
  243. OpenEuler kernel 6.6, arch/x86/kernel/cpu/hygon.c, line 255. Archived on 14 mar 2026.
  244. OpenEuler kernel 6.6, arch/x86/include/asm/cpufeatures.h, line 499. Archived on 14 Mar 2026.
  245. Ferrie, Peter. "Attacks on Virtual Machine Emulators"(PDF). Symantec. Symantec Advanced Threat Research. Archived from the original(PDF) on 2007-02-07. Retrieved 15 March 2017.
  246. Sandpile, x86 architecture CPUID. Retrieved 22 December 2022.
  247. instlatx64, CPUID dump of AMD A4-5000, lists "HELLO KITTY" string for CPUID leaf 8FFFFFFFh. Retrieved 22 December 2022.
  248. Sandpile, x86 architecture CPUID. Retrieved 30 July 2025.
  249. IDT, WinChip 2B Processor Data Sheet, v0.9, April 1999, chapter 3.3.3, page 31.
  250. VIA, PadLock Programming Guide rev. 1.66, aug 4, 2005, page 5. Archived from the original on May 26, 2010
  251. OpenEuler 1.0 LTS kernel sources, /arch/x86/include/asm/cpufeatures.h lines 147-178. Archived on Jul 30, 2023.
  252. Zhaoxin, Padlock instruction set reference, 26 Dec 2024. Archived from the original on 15 Mar 2025.
  253. Zhaoxin, GMI reference, 26 Dec 2024. Archived from the original on 15 Mar 2025.
  254. VIA, C3 Nehemiah Processor Datasheet, rev 1.13, Sep 29, 2004, page 21
  255. VIA Technologies, VIA C7 Processor in nanoBGA2 Datasheet, rev 1.80, 9 Feb 2006, section 2.3.4 on page 21. Archived on 12 Apr 2021.
  256. Zhaoxin, PAUSEOPT 指令说明, section 3.1.1 (in Chinese), rev 1.0.0, 13 Aug 2024. Archived on 14 Jan 2026.
  257. InstLatx64, Zhaoxin KaiXian KX-7000 CPUID dump. Archived on 1 May 2026.
  258. "GCC-mirror/GCC". GitHub. 13 March 2022.
  259. "ARM Information Center". Infocenter.arm.com. Retrieved 2013-04-11.
  260. IBM System/370 Principles Of Operation(PDF) (First ed.). IBM. June 1970. p. 29. GA22-7000-0.
  261. 12z/Architecture Principles of Operation(PDF) (Fourteenth ed.). May 2022. SA22-7832-13.
  262. "MIPS32 Architecture For Programmers, Volume III: The MIPS32 Privileged Resource Architecture"(PDF). MIPS Technologies, Inc. 2001-03-12.
  263. "PowerPC Operating Environment Architecture, book III"(PDF).
  264. "The RISC-V Instruction Set Manual Volume II: Privileged Architecture Version 1.7"(PDF). May 9, 2015. section 3.1.1.
  265. S. Darwish, Ahmed. "[ANNOUNCE] x86-cpuid.org: A machine-readable CPUID repository". Linux Kernel Mailing List archive. Retrieved 20 July 2024.

Further reading

  • Intel Processor Identification and the CPUID Instruction (Application Note 485), last published version. Said to be incorporated into the Intel 64 and IA-32 Architectures Software Developer's Manualin 2013, but as of July 2014 the manual still directs the reader to note 485.
    • Contains some information that can be and was easily misinterpreted though, particularly with respect to processor topology identification.
    • The big Intel manuals tend to lag behind the Intel ISA document, available at the top of this page, which is updated even for processors not yet publicly available, and thus usually contains more CPUID bits. For example, as of this writing, the ISA book (at revision 19, dated May 2014) documents the CLFLUSHOPT bit in leaf 7, but the big manuals although apparently more up-to-date (at revision 51, dated June 2014) don't mention it.
  • AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions
  • cpuid command-line program for Linux
  • cpuprint.com, cpuprint.exe, cpuprint.raw command-line programs for Windows
  • instlatx64 - مجموعة من بيانات زمن استجابة التعليمات، وزمن استجابة الذاكرة، ومعلومات وحدة المعالجة المركزية (CPUID) لمعالجات x86/x64