x86
| مصمم | إنتل ، أيه إم دي |
|---|---|
| أجزاء | 16 بت و 32 بت و 64 بت |
| قدَّم | 1978 (16 بت)، 1985 (32 بت)، 2003 (64 بت) |
| تصميم | سي آي إس سي |
| يكتب | سجل-الذاكرة |
| الترميز | متغير (من 1 إلى 15 بايت) |
| التفرع | كود الحالة |
| الانديانية | قليل |
| حجم الصفحة | 8086 – i286 : لا شيء i386 ، i486 : صفحات بحجم 4 كيلوبايت P5 Pentium : تمت إضافة صفحات بحجم 4 ميجابايت (إصدار PAE القديم : 4 كيلو بايت→2 ميجابايت) x86-64 : تمت إضافة صفحات بحجم 1 جيجا بايت |
| الإضافات | x87 ، IA-32 ، x86-64 ، X86S ، MMX ، 3DNow! ، SSE ، MCA ، ACPI ، SSE2 ، NX bit ، SMT ، SSE3 ، SSSE3 ، SSE4 ، SSE4.2 ، AES -NI ، CLMUL ، SM3 ، SM4 ، RDRAND ، SHA ، MPX ، SME ، SGX ، XOP ، F16C ، ADX ، مؤشر كتلة الجسم ، FMA ، AVX ، AVX2 ، AVX-VNNI ، AVX512 ، AVX10 ، AMX ، VT-x ، VT-d ، AMD-V ، AMD-Vi ، TSX ، ASF ، TXT ، APX |
| يفتح | جزئيًا. بالنسبة لبعض الميزات المتقدمة، قد تتطلب x86 ترخيصًا من Intel؛ وقد تتطلب x86-64 ترخيصًا إضافيًا من AMD. كان معالج Pentium Pro (و NetBurst ) موجودًا في السوق لأكثر من 21 عامًا [1] وبالتالي لا يمكن أن يكون خاضعًا لمطالبات براءات الاختراع. وبالتالي فإن المجموعة الفرعية i686 من بنية x86 مفتوحة بالكامل. كانت معالجات سلسلة Opteron 1000 موجودة في السوق لأكثر من 21 عامًا [2] وبالتالي لا يمكن أن تكون خاضعة لمطالبات براءات الاختراع. وبالتالي فإن المجموعة الفرعية AMD K8 من بنية x86 مفتوحة بالكامل. |
| السجلات | |
| أغراض عامة |
|
| نقطة عائمة | |



x86 (المعروف أيضًا باسم 80x86 [3] أو عائلة 8086 [4] ) هي عائلة من بنيات مجموعة تعليمات حاسوبية معقدة (CISC) [a] طورتها شركة Intel في البداية استنادًا إلى المعالج الدقيق 8086 ومتغيره ذي الناقل الخارجي 8 بت، 8088. تم تقديم 8086 في عام 1978 كامتداد كامل 16 بت لمعالج Intel الدقيق 8080 ذي 8 بت ، مع تقسيم الذاكرة كحل لمعالجة المزيد من الذاكرة التي يمكن تغطيتها بواسطة عنوان عادي 16 بت. ظهر مصطلح "x86" لأن أسماء العديد من خلفاء معالج Intel 8086 تنتهي بـ "86"، بما في ذلك 80186 و 80286 و 80386 و 80486 . باللغة العامية، كانت أسمائهم "186"، "286"، "386" و "486".
لا يعد المصطلح مرادفًا لتوافق أجهزة الكمبيوتر الشخصية من إنتاج شركة IBM ، حيث يشير هذا إلى مجموعة كبيرة من أجهزة الكمبيوتر الأخرى . استخدمت الأنظمة المضمنة وأجهزة الكمبيوتر ذات الأغراض العامة شرائح x86 قبل بدء سوق التوافق مع أجهزة الكمبيوتر الشخصية ، [ب] بعضها قبل ظهور أجهزة الكمبيوتر الشخصية من إنتاج شركة IBM (1981).
اعتبارًا من يونيو 2022 ،[تحديث] تعتمد معظم أجهزة الكمبيوتر المكتبية والمحمولة المباعة على عائلة بنية x86، [5] بينما تهيمن ARM على فئات الأجهزة المحمولة مثل الهواتف الذكية أو الأجهزة اللوحية . في الطرف الأعلى، لا يزال x86 يهيمن على قطاعات محطات العمل كثيفة الحوسبة والحوسبة السحابية . [6]
ملخص
في الثمانينيات وأوائل التسعينيات، عندما كان استخدام معالجي 8088 و 80286 لا يزال شائعًا، كان مصطلح x86 يشير عادةً إلى أي وحدة معالجة مركزية متوافقة مع 8086. ومع ذلك، يشير مصطلح x86 اليوم عادةً إلى التوافق الثنائي مع مجموعة التعليمات المكونة من 32 بت في معالج 80386. ويرجع هذا إلى حقيقة أن مجموعة التعليمات هذه أصبحت بمثابة قاسم مشترك أدنى للعديد من أنظمة التشغيل الحديثة وربما أيضًا لأن المصطلح أصبح شائعًا بعد تقديم معالج 80386 في عام 1985.
بعد بضع سنوات من طرح معالجي 8086 و8088، أضافت إنتل بعض التعقيد إلى مخطط التسمية والمصطلحات الخاصة بها حيث تم تجربة "iAPX" لمعالج Intel iAPX 432 الطموح ولكن سيئ الحظ على عائلة الرقائق 8086 الأكثر نجاحًا، [c] تم تطبيقه كنوع من البادئة على مستوى النظام. وبالتالي تم وصف نظام 8086، بما في ذلك المعالجات المساعدة مثل 8087 و 8089 ، ورقائق نظام أبسط خاصة بإنتل، [d] على أنه نظام iAPX 86. [7] [e] كانت هناك أيضًا مصطلحات iRMX (لأنظمة التشغيل)، و iSBC (لأجهزة الكمبيوتر ذات اللوحة الواحدة)، و iSBX (للوحات متعددة الوحدات المستندة إلى بنية 8086)، كلها معًا تحت عنوان Microsystem 80. [ 8] [9] ومع ذلك، كان مخطط التسمية هذا مؤقتًا تمامًا، واستمر لبضع سنوات خلال أوائل الثمانينيات. [f]
على الرغم من أن 8086 تم تطويره في المقام الأول للأنظمة المضمنة وأجهزة الكمبيوتر الصغيرة متعددة المستخدمين أو أحادية المستخدم، إلى حد كبير كاستجابة لنجاح Zilog Z80 المتوافق مع 8080 ، [10] إلا أن خط x86 سرعان ما نما في الميزات وقوة المعالجة. اليوم، أصبح x86 منتشرًا في كل من أجهزة الكمبيوتر الشخصية الثابتة والمحمولة، ويُستخدم أيضًا في أجهزة الكمبيوتر متوسطة المدى ومحطات العمل والخوادم ومعظم مجموعات أجهزة الكمبيوتر العملاقة الجديدة في قائمة TOP500 . تستخدم كمية كبيرة من البرامج ، بما في ذلك قائمة كبيرة من أنظمة التشغيل x86، أجهزة تعتمد على x86.
ومع ذلك، فإن تقنية x86 الحديثة غير شائعة نسبيًا في الأنظمة المضمنة ، كما تفتقر التطبيقات الصغيرة منخفضة الطاقة (التي تستخدم بطاريات صغيرة)، وأسواق المعالجات الدقيقة منخفضة التكلفة، مثل الأجهزة المنزلية والألعاب، إلى وجود كبير لتقنية x86. [g] تعد البنيات البسيطة القائمة على 8 و16 بت شائعة هنا، بالإضافة إلى بنيات RISC الأبسط مثل RISC-V ، على الرغم من أن VIA C7 و VIA Nano و AMD 's Geode و Athlon Neo و Intel Atom المتوافقة مع x86 هي أمثلة على تصميمات 32 و 64 بت المستخدمة في بعض القطاعات منخفضة الطاقة والتكلفة نسبيًا.
كانت هناك عدة محاولات، بما في ذلك من قبل شركة إنتل، لإنهاء هيمنة السوق على بنية x86 "غير الأنيقة" المصممة مباشرة من أول معالجات دقيقة بسيطة ذات 8 بت. ومن الأمثلة على ذلك iAPX 432 (مشروع أطلق عليه في الأصل اسم Intel 8800 [11] )، و Intel 960 ، و Intel 860 ، وبنية Intel/Hewlett-Packard Itanium . ومع ذلك، فإن التطوير المستمر للهندسة الدقيقة لـ x86 والدوائر الإلكترونية وتصنيع أشباه الموصلات من شأنه أن يجعل من الصعب استبدال x86 في العديد من القطاعات. إن توسعة AMD لـ x86 إلى 64 بت (والتي استجابت لها إنتل في النهاية بتصميم متوافق) [12] وقابلية التوسع لشرائح x86 في شكل وحدات معالجة مركزية حديثة متعددة النواة، تؤكد على أن x86 هو مثال على كيف يمكن للتطوير المستمر لمعايير الصناعة الراسخة مقاومة المنافسة من البنيات الجديدة تمامًا. [13]
التسلسل الزمني
تحتاج هذه المقالة إلى مصادر إضافية للتحقق . ( مارس 2020 ) |
يسرد الجدول أدناه نماذج المعالجات وسلسلة النماذج التي تنفذ معماريات مختلفة في عائلة x86، بالترتيب الزمني. يتميز كل عنصر من عناصر السطر بتصميمات معمارية دقيقة للمعالجات محسنة بشكل كبير أو ناجحة تجاريًا.
| عصر | مقدمة | نماذج وحدة المعالجة المركزية البارزة | مساحة العنوان | الميزات البارزة | |||
|---|---|---|---|---|---|---|---|
| خطي | افتراضي | بدني | |||||
| x86-16 | 1- الأول | 1978 | إنتل 8086 ، إنتل 8088 (1979) | 16 بت | غير متوفر | 20 بت | ISA 16 بت ، IBM PC (8088)، IBM PC/XT (8088) |
| 1982 | إنتل 80186 ، إنتل 80188 NEC V20 /V30 (1983) |
8086-2 ISA، مضمن (80186/80188) | |||||
| 2nd | Intel 80286 والنسخ المستنسخة | 30 بت | 24 بت | الوضع المحمي ، IBM PC/XT 286 ، IBM PC/AT | |||
| IA-32 | 3- الثالث | 1985 | إنتل 80386 ، أيه إم دي Am386 (1991) | 32 بت | 46 بت | 32 بت | ISA 32 بت ، الترقيم، IBM PS/2 |
| 4 (خطوط الأنابيب، التخزين المؤقت) | 1989 | Intel 80486 Cyrix Cx486S ، DLC (1992) AMD Am486 (1993)، Am5x86 (1995) |
خطوط الأنابيب ، وحدة معالجة النقطة العائمة x87 على الشريحة (486DX)، ذاكرة التخزين المؤقت على الشريحة | ||||
| الخامس ( فائق السلم ) |
1993 | إنتل بنتيوم ، بنتيوم MMX (1996) | Superscalar ، ناقل بيانات 64 بت ، وحدة معالجة نقطية أسرع، MMX (Pentium MMX)، APIC ، SMP | ||||
| 1994 | نيكس جين Nx586 ايه ام دي 5k86 / K5 (1996) |
الهندسة المعمارية الدقيقة المنفصلة ( ترجمة μ-op ) | |||||
| 1995 | سيريكس Cx5x86 سيريكس 6x86 /MX (1997)/ MII (1998) |
التنفيذ الديناميكي | |||||
| 6 ( PAE ، ترجمة μ-op) |
1995 | إنتل بنتيوم برو | 36 بت ( PAE ) | ترجمة μ-op، تعليمات نقل مشروطة، تنفيذ ديناميكي ، تنفيذ مضاربي ، 3-way x86 superscalar، FPU superscalar، PAE ، ذاكرة تخزين مؤقتة L2 على الشريحة | |||
| 1997 | إنتل بنتيوم الثاني ، بنتيوم الثالث (1999)، سيليرون (1998)، زيون (1998) |
ذاكرة تخزين مؤقتة L2 على الحزمة (Pentium II) أو على الشريحة (Celeron)، SSE (Pentium III)، الفتحة 1 ، المقبس 370 أو الفتحة 2 (Xeon) | |||||
| 1997 | ايه ام دي K6 / K6-2 (1998)/ K6-III (1999) | 32 بت | 3DNow!، نظام ذاكرة تخزين مؤقتة بثلاثة مستويات (K6-III) | ||||
| منصة محسّنة | 1999 | AMD Athlon Athlon XP / MP (2001) Duron (2000) Sempron (2004) |
36 بت | MMX+، 3DNow!+، ناقل مزدوج الضخ، الفتحة A أو المقبس A | |||
| 2000 | ترانسميتا كروزو | 32 بت | معالج منصة x86 مدعوم من CMS ، VLIW -128 نواة، وحدة تحكم ذاكرة على الشريحة، منطق جسر PCI على الشريحة | ||||
| إنتل بنتيوم 4 | 36 بت | SSE2 ، HTT (Northwood)، NetBurst، ناقل رباعي الضخ، ذاكرة تخزين مؤقتة للتتبع، مقبس 478 | |||||
| 2003 | Intel Pentium M Intel Core (2006) Pentium Dual-Core (2007) |
μ-op fusion ، بت XD (Dothan) (Intel Core "Yonah") | |||||
| تأثير ترانسميتا | CMS 6.0.4، VLIW -256، NX بت ، HT | ||||||
| أي أيه-64 | انتقال 64 بت 1999–2005 |
2001 | إنتل إيتانيوم (2001–2017) | 52 بت | هندسة EPIC 64 بت ، حزمة تعليمات VLIW 128 بت، أجهزة IA-32 H/W مدمجة في الشريحة تمكن أنظمة تشغيل x86 وتطبيقات x86 (الأجيال المبكرة)، برامج IA-32 EL تمكن تطبيقات x86 (Itanium 2)، تتم إعادة تعيين ملفات سجل Itanium إلى سجلات x86 | ||
| x86-64 | 64 بت ممتدة منذ عام 2001 |
x86-64 هي بنية 64 بت ممتدة من x86، ويحافظ وضع Legacy Mode الخاص بها على بنية x86 بالكامل دون تغيير. البنية الأصلية لمعالجات x86-64: مقيمة في وضع 64 بت، تفتقر إلى وضع الوصول في التجزئة، وتقدم مساحة عنوان خطية تسمح بالبنية 64 بت؛ يتم توفير بنية IA-32 معدلة مقيمة في وضع التوافق إلى جانب وضع 64 بت لدعم معظم تطبيقات x86 | |||||
| 2003 | Athlon 64 / FX / X2 (2005)، Opteron Sempron (2004)/ X2 (2008) Turion 64 (2005)/ X2 (2006) |
40 بت | AMD64 (باستثناء بعض معالجات Sempron المقدمة كمعالجات x86 بحتة)، وحدة تحكم ذاكرة على الشريحة، HyperTransport ، ثنائي النواة على الشريحة (X2)، AMD-V (Athlon 64 Orleans)، Socket 754 / 939 / 940 أو AM2 | ||||
| 2004 | بنتيوم 4 (بريسكوت) سيليرون دي ، بنتيوم دي (2005) |
36 بت | EM64T (ممكّن في طرز مختارة من Pentium 4 وCeleron D)، SSE3 ، خط أنابيب NetBurst من الجيل الثاني، ثنائي النواة (على الشريحة: Pentium D 8xx، على الشريحة: Pentium D 9xx)، Intel VT (Pentium 4 6x2)، مقبس LGA 775 | ||||
| 2006 | معالج Intel Core 2 Pentium ثنائي النواة (2007) ومعالج Celeron ثنائي النواة (2008) |
Intel 64 (<<== EM64T)، SSSE3 (65 نانومتر)، تنفيذ ديناميكي واسع، اندماج μ-op، اندماج macro-op في وضع 16 بت و32 بت، [14] [15] رباعي النواة على الشريحة (Core 2 Quad)، ذاكرة تخزين مؤقتة ذكية مشتركة L2 (Intel Core 2 "Merom") | |||||
| 2007 | AMD Phenom / II (2008) أثلون II (2009) توريون II (2009) |
48 بت | رباعي النواة (X4)/ثلاثي النواة (X3)، SSE4a ، فهرسة المحاكاة الافتراضية السريعة (RVI)، HyperTransport 3، AM2+ أو AM3 | ||||
| 2008 | إنتل كور 2 (45 نانومتر) | 40 بت | إس إس إي 4.1 | ||||
| إنتل أتوم | معالج الكمبيوتر المحمول أو الجهاز الذكي منخفض الطاقة، نواة P54C المعاد استخدامها | ||||||
| إنتل كور i7 كور i5 (2009) كور i3 (2010) |
QuickPath، وGMCH على الشريحة ( Clarkdale )، و SSE4.2 ، وجداول الصفحات الممتدة (EPT) للمحاكاة الافتراضية، ودمج العمليات الكلية في وضع 64 بت، [14] [15] (Intel Xeon "Bloomfield" مع بنية Nehalem الدقيقة) | ||||||
| فيا نانو | التشفير القائم على الأجهزة ؛ إدارة الطاقة التكيفية | ||||||
| 2010 | أيه إم دي إف إكس | 48 بت | ثماني النواة، CMT (متعدد الخيوط المجمعة)، FMA، OpenCL، AM3+ | ||||
| 2011 | سلسلة AMD APU A و E ( Llano ) | 40 بت | وحدة معالجة الرسومات العامة المدمجة، PCI Express 2.0، مقبس FM1 | ||||
| سلسلة AMD APU C و E و Z ( Bobcat ) | 36 بت | وحدة معالجة APU للأجهزة الذكية منخفضة الطاقة | |||||
| Intel Core i3 و Core i5 و Core i7 ( Sandy Bridge / Ivy Bridge ) |
اتصال حلقة داخلية، ذاكرة تخزين مؤقتة μ-op مفككة، مقبس LGA 1155 | ||||||
| 2012 | سلسلة AMD APU A ( Bulldozer وTrinity والإصدارات الأحدث) | 48 بت | AVX ، وحدة معالجة مركزية APU تعتمد على الجرافة، مقبس FM2 أو مقبس FM2+ | ||||
| Intel Xeon Phi ( ركن الفرسان ) | معالج مساعد لبطاقة PCI-E الإضافية لنظام XEON، شريحة Manycore، P54C بالترتيب ، وحدة معالجة مرئية واسعة جدًا (SSE 512 بت)، تعليمات LRBni (8× 64 بت) | ||||||
| 2013 | AMD Jaguar (Athlon، Sempron) |
SoC ، وحدة تحكم الألعاب ومعالج الأجهزة الذكية منخفض الطاقة | |||||
| إنتل سيلفرمونت (Atom، Celeron، Pentium) |
36 بت | SoC ، معالج للأجهزة الذكية منخفض الطاقة/منخفض الطاقة للغاية | |||||
| Intel Core i3 و Core i5 و Core i7 ( Haswell / Broadwell ) | 39 بت | تعليمات AVX2 و FMA3 و TSX و BMI1 وBMI2 ومقبس LGA 1150 | |||||
| 2015 | Intel Broadwell-U ( Intel Core i3 , Core i5 , Core i7 , Core M , Pentium , Celeron ) |
SoC، على الشريحة Broadwell-U PCH-LP (وحدة متعددة الشرائح) | |||||
| 2015–2020 | Intel Skylake / Kaby Lake / Cannon Lake / Coffee Lake / Rocket Lake (Intel Pentium/Celeron Gold، Core i3 ، Core i5 ، Core i7 ، Core i9 ) |
46 بت | AVX-512 (مقتصر على Cannon Lake-U ومتغيرات محطة العمل/الخادم من Skylake) | ||||
| 2016 | Intel Xeon Phi ( Knights Landing ) | 48 بت | وحدة المعالجة المركزية متعددة النواة والمعالج المساعد لأنظمة Xeon، نواة تعتمد على Airmont (Atom) | ||||
| 2016 | ايه ام دي بريستول ريدج (AMD (Pro) A6/A8/A10/A12) |
FCH متكامل على الشريحة، SoC، مقبس AM4 | |||||
| 2017 | سلسلة AMD Ryzen / سلسلة AMD Epyc | تنفيذ AMD لتقنية SMT، وهي عبارة عن شرائح متعددة على الشريحة | |||||
| 2017 | تشاوشين ووداوكو (KX-5000, KH-20000) | أول بنية x86-64 جديدة تمامًا من Zhaoxin | |||||
| 2018–2021 | إنتل صني كوف ( بحيرة الجليد - U و Y )، سيبرس كوف ( بحيرة روكيت ) | 57 بت | أول تنفيذ لشركة Intel لـ AVX-512 لشريحة المستهلكين. إضافة تعليمات الشبكة العصبية المتجهة (VNNI) | ||||
| 2019 | أيه إم دي ماتيس | 48 بت | تصميم وحدة شريحة متعددة مع شريحة إدخال/إخراج منفصلة عن شريحة وحدة المعالجة المركزية، ودعم PCIe Gen4 | ||||
| 2020 | إنتل ويلو كوف ( بحيرة تايجر -Y/U/H) | 57 بت | هندسة الربط الحلقي المزدوج، ومسرع الأعصاب الغاوسي المحدث (GNA2)، وتعليمات تقاطع المتجهات AVX-512 الجديدة، وإضافة تقنية فرض التحكم في التدفق (CET) | ||||
| 2021 | إنتل ألدر ليك | تصميم هجين مع نوى الأداء (Golden Cove) والكفاءة (Gracemont)، ودعم PCIe Gen5 وDDR5، ومسرع Gaussian Neural Accelerator المحدث (GNA3). AVX-512 غير مدعوم رسميًا | |||||
| 2022 | AMD فيرمير (5800X3D) | 48 بت | تحتوي شرائح X3D على ذاكرة تخزين مؤقتة L3 مكدسة رأسياً ثلاثية الأبعاد بسعة 64 ميجابايت إضافية (ذاكرة تخزين مؤقتة V-Cache ثلاثية الأبعاد) بسعة تصل إلى 96 ميجابايت من ذاكرة التخزين المؤقت L3 | ||||
| 2022 | أيه إم دي رافائيل | أول تطبيق من AMD لـ AVX-512 لشريحة المستهلكين، وحدة معالجة الرسوميات المدمجة أصبحت الآن قياسية على وحدات المعالجة المركزية Ryzen مع 2 نواة حوسبة RDNA 2 | |||||
| عصر | مقدمة | نماذج وحدة المعالجة المركزية البارزة | مساحة العنوان | الميزات البارزة | |||
تاريخ
المصممين والمصنعين

في أوقات مختلفة ، بدأت شركات مثل IBM و VIA و NEC و AMD و TI و STM و Fujitsu و OKI و Siemens و Cyrix و Intersil و C&T و NexGen و UMC و DM&P في تصميم أو تصنيع معالجات x86 (وحدات المعالجة المركزية) المخصصة لأجهزة الكمبيوتر الشخصية والأنظمة المضمنة. تشمل الشركات الأخرى التي صممت أو صنعت معالجات x86 أو x87 شركة ITT Corporation و National Semiconductor وULSI System Technology و Weitek .
نادرًا ما كانت مثل هذه التطبيقات لـ x86 عبارة عن نسخ بسيطة، بل كانت تستخدم غالبًا بنيات دقيقة داخلية مختلفة وحلولًا مختلفة على المستويين الإلكتروني والفيزيائي. بطبيعة الحال، كانت المعالجات الدقيقة المتوافقة المبكرة 16 بت، بينما تم تطوير التصميمات 32 بت في وقت لاحق كثيرًا. بالنسبة لسوق أجهزة الكمبيوتر الشخصية ، بدأت الكميات الحقيقية في الظهور حوالي عام 1990 مع معالجات متوافقة مع i386 و i486 ، والتي غالبًا ما كانت تحمل أسماء مشابهة لشرائح Intel الأصلية.
بعد خط أنابيب i486 الكامل ، قدمت شركة Intel في عام 1993 اسم العلامة التجارية Pentium (والذي، على عكس الأرقام، يمكن تسجيله كعلامة تجارية ) لمجموعة جديدة من تصميمات x86 الفائقة . مع الموافقة القانونية على مخطط تسمية x86، كان على بائعي x86 الآخرين اختيار أسماء مختلفة لمنتجاتهم المتوافقة مع x86، وفي البداية اختار البعض الاستمرار في الاختلافات في مخطط الترقيم: دخلت IBM في شراكة مع Cyrix لإنتاج 5x86 ثم خطوط 6x86 (M1) و 6x86 MX ( MII ) الفعالة للغاية من تصميمات Cyrix، والتي كانت أول معالجات x86 تنفذ إعادة تسمية السجلات لتمكين التنفيذ المضاربي .
في هذه الأثناء، قامت AMD بتصميم وتصنيع 5k86 ( K5 ) المتقدم ولكن المتأخر، والذي كان داخليًا يعتمد بشكل وثيق على تصميم AMD السابق 29K RISC ؛ على غرار Nx586 من NexGen ، فقد استخدم استراتيجية بحيث تقوم مراحل خط الأنابيب المخصصة بفك تعليمات x86 إلى عمليات دقيقة موحدة وسهلة التعامل ، وهي الطريقة التي ظلت الأساس لمعظم تصميمات x86 حتى يومنا هذا.
كانت بعض الإصدارات المبكرة من هذه المعالجات الدقيقة تعاني من مشاكل في تبديد الحرارة. كما تأثرت 6x86 أيضًا ببعض مشاكل التوافق البسيطة، حيث افتقرت Nx586 إلى وحدة النقطة العائمة (FPU) وتوافق الدبابيس (الذي كان مهمًا في ذلك الوقت)، بينما كان أداء K5 مخيبًا للآمال إلى حد ما عندما تم طرحه (في النهاية).
ساهم جهل العملاء بالبدائل لسلسلة Pentium في فشل هذه التصميمات نسبيًا، على الرغم من حقيقة أن K5 كان متوافقًا جدًا مع Pentium وكان 6x86 أسرع بشكل ملحوظ من Pentium في الكود الصحيح. [j] تمكنت AMD لاحقًا من النمو لتصبح منافسًا جادًا بمجموعة معالجات K6 ، والتي أفسحت المجال لـ Athlon و Opteron الناجحين للغاية .
كان هناك أيضًا منافسون آخرون، مثل Centaur Technology (المعروفة سابقًا باسم IDT )، و Rise Technology ، و Transmeta . تم بيع معالجات C3 و C7 الموفرة للطاقة من VIA Technologies ، والتي صممتها شركة Centaur ، لسنوات عديدة بعد إصدارها في عام 2005. كان تصميم Centaur لعام 2008، VIA Nano ، هو أول معالج لديهم بتنفيذ فائق السرعة ومضاربي . تم تقديمه في نفس الوقت تقريبًا (في عام 2008) عندما قدمت Intel معالج Intel Atom ، وهو أول معالج "حسب الترتيب" بعد P5 Pentium .
تمت إضافة العديد من الإضافات والتمديدات إلى مجموعة تعليمات x86 الأصلية على مر السنين، بشكل متسق تقريبًا مع التوافق الكامل مع الإصدارات السابقة . [k] تم تنفيذ عائلة الهندسة المعمارية في معالجات من Intel و Cyrix و AMD و VIA Technologies والعديد من الشركات الأخرى؛ هناك أيضًا تنفيذات مفتوحة، مثل منصة Zet SoC (غير نشطة حاليًا). [16] ومع ذلك، من بين تلك الشركات، فقط Intel وAMD وVIA Technologies و DM&P Electronics تمتلك تراخيص معمارية x86، ومن بين هذه الشركات، تنتج أول شركتين فقط بنشاط تصميمات حديثة 64 بت، مما يؤدي إلى ما يسمى "احتكار ثنائي" من Intel وAMD في معالجات x86.
ومع ذلك، في عام 2014، بدأت شركة Zhaoxin الصينية ومقرها شنغهاي ، وهي مشروع مشترك بين شركة صينية وشركة VIA Technologies، في تصميم معالجات x86 تعتمد على VIA لأجهزة الكمبيوتر المكتبية وأجهزة الكمبيوتر المحمولة. كان من المقرر إطلاق أحدث عائلة "7" [17] من معالجات x86 (مثل KX-7000)، والتي ليست سريعة مثل شرائح AMD أو Intel ولكنها لا تزال من أحدث التقنيات، [18] في عام 2021؛ ومع ذلك، حتى مارس 2022 لم يتم الإطلاق. [19]
من هندسة 16 بت و32 بت إلى هندسة 64 بت
تم توسيع بنية مجموعة التعليمات مرتين إلى حجم كلمة أكبر . في عام 1985، أصدرت شركة إنتل معالج 80386 ذي 32 بت (المعروف لاحقًا باسم i386) والذي حل تدريجيًا محل الرقائق السابقة ذات 16 بت في أجهزة الكمبيوتر (على الرغم من أنه لم يكن عادةً في الأنظمة المضمنة ) خلال السنوات التالية؛ تمت الإشارة إلى نموذج البرمجة الموسع هذا في الأصل باسم بنية i386 (مثل تنفيذه الأول) ولكن أطلقت عليه إنتل لاحقًا اسم IA-32 عند تقديم بنيتها (غير ذات الصلة) IA-64 .
في الفترة من 1999 إلى 2003، قامت شركة AMD بتوسيع بنية 32 بت هذه إلى 64 بت وأشارت إليها باسم x86-64 في الوثائق المبكرة ولاحقًا باسم AMD64 . سرعان ما تبنت شركة Intel امتدادات بنية AMD تحت اسم IA-32e، واستخدمت لاحقًا اسم EM64T واستخدمت أخيرًا Intel 64. تستخدم Microsoft و Sun Microsystems / Oracle أيضًا مصطلح "x64"، بينما تستخدم العديد من توزيعات Linux و BSD أيضًا مصطلح "amd64". على سبيل المثال، تحدد Microsoft Windows إصداراتها ذات 32 بت باسم "x86" وإصدارات 64 بت باسم "x64"، بينما يلزم وضع ملفات تثبيت إصدارات Windows ذات 64 بت في دليل يسمى "AMD64". [20]
في عام 2023، اقترحت شركة إنتل تغييرًا كبيرًا في البنية المشار إليها باسم X86S (المعروفة سابقًا باسم X86-S). يشير الحرف S في X86S إلى "التبسيط"، والذي يهدف إلى إزالة دعم أوضاع التنفيذ والتعليمات القديمة. سيبدأ المعالج الذي ينفذ هذا الاقتراح التنفيذ مباشرة في الوضع الطويل ولن يدعم سوى أنظمة التشغيل ذات 64 بت. سيتم دعم التعليمات البرمجية ذات 32 بت فقط لتطبيقات المستخدم التي تعمل في الحلقة 3، وستستخدم نفس التجزئة المبسطة مثل الوضع الطويل. [21] [22]
الخصائص الأساسية للعمارة
إن بنية x86 عبارة عن طول تعليمات متغير، في الأساس تصميم " CISC " مع التركيز على التوافق مع الإصدارات السابقة . ومع ذلك، فإن مجموعة التعليمات ليست CISC نموذجية، ولكنها في الأساس نسخة موسعة من بنيات 8008 و 8080 البسيطة ذات الثمانية بتات . يتم تمكين عنونة البايتات ويتم تخزين الكلمات في الذاكرة بترتيب بايتات صغير . يُسمح بالوصول إلى الذاكرة إلى العناوين غير المحاذية لجميع التعليمات تقريبًا. أكبر حجم أصلي للحسابات الصحيحة وعناوين الذاكرة (أو الإزاحات ) هو 16 أو 32 أو 64 بت حسب جيل البنية (تتضمن المعالجات الأحدث دعمًا مباشرًا للأعداد الصحيحة الأصغر أيضًا). يمكن التعامل مع قيم قياسية متعددة في وقت واحد عبر وحدة SIMD الموجودة في الأجيال اللاحقة، كما هو موضح أدناه. [l] يمكن التعبير عن إزاحات العنونة الفورية والبيانات الفورية بكميات مكونة من 8 بتات للحالات أو السياقات التي تحدث بشكل متكرر حيث يكون النطاق −128..127 كافيًا. لذلك فإن التعليمات النموذجية تكون بطول 2 أو 3 بايتات (على الرغم من أن بعضها أطول بكثير، وبعضها يتكون من بايت واحد).
للحفاظ على مساحة الترميز بشكل أكبر، يتم التعبير عن معظم السجلات في أكواد التشغيل باستخدام ثلاثة أو أربعة بتات، والأخيرة عبر بادئة كود التشغيل في وضع 64 بت، بينما يمكن أن يكون أحد المتغيرات على الأكثر لتعليمة موقع ذاكرة. [م] ومع ذلك، قد يكون متغير الذاكرة هذا أيضًا الوجهة (أو مصدرًا ووجهة مجتمعين)، بينما يمكن أن يكون المتغير الآخر، المصدر، إما سجلًا أو فوريًا. من بين عوامل أخرى، يساهم هذا في حجم الكود الذي ينافس الآلات ذات الثمانية بتات ويمكّن من الاستخدام الفعال لذاكرة التخزين المؤقت للتعليمات. جعل العدد الصغير نسبيًا من السجلات العامة (الموروثة أيضًا من أسلافها ذات الثمانية بتات) من العنونة النسبية للسجل (باستخدام إزاحات فورية صغيرة) طريقة مهمة للوصول إلى المتغيرات، وخاصة على المكدس. لذلك تم استثمار الكثير من العمل في جعل مثل هذه الوصولات سريعة مثل وصول السجلات - أي إنتاجية تعليمات دورة واحدة، في معظم الظروف حيث تكون البيانات التي تم الوصول إليها متاحة في ذاكرة التخزين المؤقت على المستوى الأعلى.
النقطة العائمة وSIMD
تم تطوير معالج مخصص للفاصلة العائمة مع سجلات داخلية 80 بت، 8087 ، للإصدار الأصلي 8086. تم تطوير هذا المعالج الدقيق لاحقًا إلى 80387 الموسع ، وتضمنت المعالجات اللاحقة إصدارًا متوافقًا مع الإصدارات السابقة من هذه الوظيفة على نفس المعالج الدقيق مثل المعالج الرئيسي. بالإضافة إلى ذلك، تحتوي تصميمات x86 الحديثة أيضًا على وحدة SIMD (انظر SSE أدناه) حيث يمكن أن تعمل التعليمات بالتوازي على (كلمة واحدة أو اثنتين) من 128 بت، تحتوي كل منها على رقمين أو أربعة أرقام فاصلة عائمة (كل منها بعرض 64 أو 32 بت على التوالي)، أو بدلاً من ذلك، 2 أو 4 أو 8 أو 16 عددًا صحيحًا (كل منها بعرض 64 أو 32 أو 16 أو 8 بت على التوالي).
إن وجود سجلات SIMD عريضة يعني أن معالجات x86 الحالية يمكنها تحميل أو تخزين ما يصل إلى 128 بت من بيانات الذاكرة في تعليمة واحدة وإجراء عمليات بتية أيضًا (على الرغم من عدم إجراء عمليات حسابية صحيحة [n] ) على كميات 128 بت كاملة بالتوازي. أضافت معالجات Sandy Bridge من Intel تعليمات Advanced Vector Extensions (AVX)، مما أدى إلى توسيع سجلات SIMD إلى 256 بت. تستخدم تعليمات Intel Initial Many Core التي تنفذها معالجات Knights Corner Xeon Phi وتعليمات AVX-512 التي تنفذها معالجات Knights Landing Xeon Phi ومعالجات Skylake-X سجلات SIMD بعرض 512 بت.
التنفيذات الحالية
أثناء التنفيذ ، تستخدم معالجات x86 الحالية بضع خطوات فك تشفير إضافية لتقسيم معظم التعليمات إلى أجزاء أصغر تسمى العمليات الدقيقة. ثم يتم تسليمها إلى وحدة تحكم تخزنها مؤقتًا وتجدولها وفقًا لدلالات x86 بحيث يمكن تنفيذها، جزئيًا بالتوازي، بواسطة إحدى وحدات التنفيذ (المتخصصة إلى حد ما) . وبالتالي، فإن تصميمات x86 الحديثة هذه مترابطة ، ومتدرجة ، وقادرة أيضًا على التنفيذ خارج الترتيب والتخميني (عبر التنبؤ بالفرع ، وإعادة تسمية السجل ، والتنبؤ بالاعتماد على الذاكرة )، مما يعني أنها قد تنفذ تعليمات x86 متعددة (جزئية أو كاملة) في وقت واحد، وليس بالضرورة بنفس الترتيب الوارد في مجرى التعليمات. [23] بعض وحدات المعالجة المركزية من Intel ( Xeon Foster MP ، وبعض Pentium 4 ، وبعض معالجات Nehalem ومعالجات Intel Core اللاحقة ) ووحدات المعالجة المركزية من AMD (بدءًا من Zen ) قادرة أيضًا على تعدد الخيوط المتزامن مع خيطين لكل نواة ( يحتوي Xeon Phi على أربعة خيوط لكل نواة). تدعم بعض وحدات المعالجة المركزية من Intel الذاكرة المعاملاتية ( TSX ).
عندما تم تقديم هذه الطريقة في منتصف تسعينيات القرن العشرين، كان يُشار إليها أحيانًا باسم "نواة RISC" أو "ترجمة RISC"، ويرجع ذلك جزئيًا إلى أسباب تسويقية، ولكن أيضًا لأن هذه العمليات الدقيقة تشترك في بعض الخصائص مع أنواع معينة من تعليمات RISC. ومع ذلك، فإن التعليمات البرمجية الدقيقة التقليدية (المستخدمة منذ الخمسينيات) تشترك أيضًا في العديد من نفس الخصائص؛ تختلف الطريقة الجديدة بشكل أساسي في أن الترجمة إلى عمليات دقيقة تحدث الآن بشكل غير متزامن. إن عدم الاضطرار إلى مزامنة وحدات التنفيذ مع خطوات فك التشفير يفتح إمكانيات لمزيد من تحليل مجرى التعليمات البرمجية (المخزنة مؤقتًا)، وبالتالي يسمح باكتشاف العمليات التي يمكن إجراؤها بالتوازي، وتغذية أكثر من وحدة تنفيذ في نفس الوقت.
كما أن أحدث المعالجات تفعل العكس عندما يكون ذلك مناسبًا؛ فهي تجمع بين تسلسلات x86 معينة (مثل المقارنة التي يتبعها قفزة مشروطة) في عملية دقيقة أكثر تعقيدًا تتناسب مع نموذج التنفيذ بشكل أفضل وبالتالي يمكن تنفيذها بشكل أسرع أو باستخدام موارد آلة أقل.
هناك طريقة أخرى لمحاولة تحسين الأداء وهي تخزين العمليات الدقيقة التي تم فك تشفيرها في ذاكرة التخزين المؤقتة، بحيث يمكن للمعالج الوصول مباشرة إلى العمليات الدقيقة التي تم فك تشفيرها من ذاكرة تخزين مؤقتة خاصة، بدلاً من فك تشفيرها مرة أخرى. اتبعت شركة Intel هذا النهج مع ميزة Execution Trace Cache في بنية NetBurst الدقيقة الخاصة بها (لمعالجات Pentium 4) وفي وقت لاحق في Decoded Stream Buffer (لمعالجات العلامة التجارية Core منذ Sandy Bridge). [24]
استخدمت شركة Transmeta طريقة مختلفة تمامًا في وحدات المعالجة المركزية المتوافقة مع Crusoe x86. فقد استخدمت الترجمة الفورية لتحويل تعليمات x86 إلى مجموعة تعليمات VLIW الأصلية لوحدة المعالجة المركزية . وزعمت شركة Transmeta أن نهجها يسمح بتصميمات أكثر كفاءة في استهلاك الطاقة نظرًا لأن وحدة المعالجة المركزية يمكنها الاستغناء عن خطوة فك التشفير المعقدة في تطبيقات x86 الأكثر تقليدية.
طرق العنونة
يمكن تلخيص أوضاع المعالجة لأوضاع المعالج 16 بت بالصيغة التالية: [25] [26]
يمكن تلخيص أوضاع التوجيه لأوضاع معالج x86 32 بت [27] بالصيغة: [28]
يمكن تلخيص أوضاع التوجيه لوضع المعالج 64 بت بالصيغة التالية: [28]
إن التوجيه النسبي للتعليمات في الكود المكون من 64 بت (RIP + الإزاحة، حيث RIP هو سجل مؤشر التعليمات ) يبسط تنفيذ الكود المستقل عن الموضع (كما هو مستخدم في المكتبات المشتركة في بعض أنظمة التشغيل). [29]
كان 808664 كيلو بايت من ثماني بتات (أو بدلاً من ذلك32 ألف كلمة من مساحة الإدخال/الإخراج 16 بت ، و64 كيلوبايت (قطعة واحدة) من المكدس في الذاكرة التي يدعمها جهاز الكمبيوتر . لا يمكن دفع سوى الكلمات (بايتين) إلى المكدس. ينمو المكدس نحو عناوين أقل عدديًا، مع إشارة SS:SP إلى العنصر المدفوع مؤخرًا. يوجد 256 مقاطعة ، والتي يمكن استدعاؤها بواسطة كل من الأجهزة والبرامج. يمكن للمقاطعات أن تتسلسل، باستخدام المكدس لتخزين عنوان الإرجاع .
سجلات x86
16 بت
تحتوي معالجات Intel 8086 و 8088 الأصلية على أربعة عشر سجلاً مكونًا من 16 بتًا . أربعة منها (AX وBX وCX وDX) هي سجلات عامة الغرض (GPR)، على الرغم من أن كل منها قد يكون له غرض إضافي؛ على سبيل المثال، يمكن استخدام CX فقط كعداد مع تعليمات الحلقة. يمكن الوصول إلى كل منها على هيئة بايتين منفصلين (وبالتالي يمكن الوصول إلى البايت العالي في BX على هيئة BH والبايت المنخفض على هيئة BL). يوجد سجلان للمؤشرات لهما أدوار خاصة: يشير SP (مؤشر المكدس) إلى "أعلى" المكدس ، وغالبًا ما يستخدم BP (مؤشر القاعدة) للإشارة إلى مكان آخر في المكدس، عادةً أعلى المتغيرات المحلية (انظر مؤشر الإطار ). السجلات SI وDI وBX وBP هي سجلات عناوين ، ويمكن أيضًا استخدامها لفهرسة المصفوفة.
يتم استخدام أحد "سجلات القطاعات" الأربعة المحتملة (CS وDS وSS وES) لتشكيل عنوان ذاكرة. في المعالجات الأصلية 8086 / 8088 / 80186 / 80188، تم بناء كل عنوان من سجل قطاع وواحد من السجلات العامة. على سبيل المثال، ds:si هو الترميز لعنوان تم تشكيله على هيئة [16 * ds + si] للسماح بالعنونة المكونة من 20 بت بدلاً من 16 بت، على الرغم من تغيير هذا في المعالجات اللاحقة. في ذلك الوقت، كانت مجموعات معينة فقط مدعومة.
يحتوي سجل FLAGS على أعلام مثل علم الحمل وعلم الفائض وعلم الصفر . وأخيرًا، يشير مؤشر التعليمات (IP) إلى التعليمات التالية التي سيتم جلبها من الذاكرة ثم تنفيذها؛ لا يمكن الوصول إلى هذا السجل مباشرة (قراءة أو كتابة) بواسطة برنامج. [30]
إن معالج Intel 80186 و 80188 عبارة عن وحدة معالجة مركزية مطورة من طراز 8086 أو 8088، على التوالي، مع إضافة أجهزة محيطية على الشريحة، ولديهما نفس سجلات وحدة المعالجة المركزية مثل 8086 و8088 (بالإضافة إلى سجلات الواجهة للأجهزة المحيطية).
يمكن لـ 8086 و 8088 و 80186 و 80188 استخدام معالج مساعد اختياري للفاصلة العائمة، وهو 8087. يظهر 8087 للمبرمج كجزء من وحدة المعالجة المركزية ويضيف ثمانية سجلات بعرض 80 بت، st(0) إلى st(7)، يمكن لكل منها الاحتفاظ ببيانات رقمية بأحد التنسيقات السبعة: فاصلة عائمة 32 أو 64 أو 80 بت، عدد صحيح (ثنائي) 16 أو 32 أو 64 بت، وعدد صحيح عشري مضغوط 80 بت. [9] : S-6، S-13..S-15 كما أن لديه سجل حالة خاص به مكون من 16 بت يمكن الوصول إليه من خلال تعليمة fstsw ، ومن الشائع ببساطة استخدام بعض بتاته للتفرع عن طريق نسخها إلى FLAGS العادية. [31]
في معالج Intel 80286 ، لدعم الوضع المحمي ، تحتفظ ثلاثة سجلات خاصة بعناوين جدول الوصف (GDTR وLDTR و IDTR )، ويُستخدم سجل مهام رابع (TR) لتبديل المهام. يُعد معالج 80287 معالجًا مساعدًا للفاصلة العائمة لمعالج 80286 ولديه نفس السجلات الموجودة في معالج 8087 بنفس تنسيقات البيانات.
32 بت

مع ظهور معالج 80386 ذي 32 بت، تم توسيع السجلات العامة ذات 16 بت، والسجلات الأساسية، وسجلات الفهرس، ومؤشر التعليمات، وسجل FLAGS ، ولكن ليس سجلات المقطع، إلى 32 بت. مثلت التسمية هذا من خلال إضافة بادئة " E " (لـ "extended") إلى أسماء السجلات في لغة التجميع x86 . وبالتالي، يتوافق سجل AX مع البتات الـ 16 السفلية من سجل EAX الجديد ذي 32 بت، ويتوافق SI مع البتات الـ 16 السفلية من ESI، وهكذا. يمكن استخدام السجلات العامة، والسجلات الأساسية، وسجلات الفهرس جميعها كأساس في أوضاع العنونة، ويمكن استخدام جميع هذه السجلات باستثناء مؤشر المكدس كمؤشر في أوضاع العنونة.
تمت إضافة سجلين جديدين للقطاعات (FS وGS). ومع زيادة عدد السجلات والتعليمات والمعاملات، تم توسيع تنسيق الكود الآلي . لتوفير التوافق مع الإصدارات السابقة، يمكن وضع علامة على القطاعات التي تحتوي على كود قابل للتنفيذ على أنها تحتوي على تعليمات 16 بت أو 32 بت. تسمح البادئات الخاصة بإدراج تعليمات 32 بت في قطاع 16 بت أو العكس.
كان لدى 80386 معالج مساعد اختياري للنقطة العائمة، وهو 80387 ؛ وكان به ثمانية سجلات بعرض 80 بت: st(0) إلى st(7)، [32] مثل 8087 و80287. يمكن لـ 80386 أيضًا استخدام معالج مساعد 80287. [33] مع 80486 وجميع طرز x86 اللاحقة، تكون وحدة المعالجة للنقطة العائمة (FPU) مدمجة على الشريحة.
أضافت معالجات Pentium MMX ثمانية سجلات متجهية صحيحة MMX بطول 64 بت (MM0 إلى MM7، والتي تشترك في بتات أقل مع مجموعة FPU بعرض 80 بت). [34] مع معالج Pentium III ، أضافت Intel سجل تحكم/حالة Streaming SIMD Extensions (SSE) بطول 32 بت (MXCSR) وثمانية سجلات فاصلة عائمة SSE بطول 128 بت (XMM0 إلى XMM7). [35]
64 بت
بدءًا من معالج AMD Opteron ، قامت بنية x86 بتوسيع سجلات 32 بت إلى سجلات 64 بت بطريقة مماثلة لكيفية حدوث التمديد من 16 إلى 32 بت. تحدد البادئة R (لـ "السجل") سجلات 64 بت (RAX وRBX وRCX وRDX وRSI وRDI وRBP وRSP وRFLAGS وRIP)، كما تم تقديم ثمانية سجلات عامة إضافية 64 بت (R8–R15) في إنشاء x86-64 . كما تمت إضافة ثمانية سجلات متجه SSE أخرى (XMM8–XMM15). ومع ذلك، لا يمكن استخدام هذه الامتدادات إلا في وضع 64 بت، وهو أحد الوضعين المتاحين فقط في الوضع الطويل . لم تتغير أوضاع التوجيه بشكل كبير من وضع 32 بت، باستثناء أن التوجيه تم تمديده إلى 64 بت، وتم الآن تمديد العناوين الافتراضية إلى 64 بت (من أجل منع بتات الوضع في العناوين الافتراضية)، وتم تقليل تفاصيل المحدد الأخرى بشكل كبير. بالإضافة إلى ذلك، تمت إضافة وضع توجيه للسماح بمراجع الذاكرة بالنسبة إلى RIP ( مؤشر التعليمات )، لتسهيل تنفيذ التعليمات البرمجية المستقلة عن الموضع ، المستخدمة في المكتبات المشتركة في بعض أنظمة التشغيل.
128 بت
يسجل SIMD XMM0–XMM15 (XMM0–XMM31 عندما يكون AVX-512 مدعومًا).
256 بت
تسجل SIMD YMM0–YMM15 (YMM0–YMM31 عندما يكون AVX-512 مدعومًا). يتم تعيين النصف السفلي من كل سجل YMM على سجل XMM المقابل.
512 بت
تسجل SIMD ZMM0–ZMM31. يتم تعيين النصف السفلي من كل من سجلات ZMM على سجل YMM المقابل.
متفرقات/أغراض خاصة
معالجات x86 التي لها وضع محمي ، أي معالجات 80286 والإصدارات الأحدث، تحتوي أيضًا على ثلاثة سجلات وصفية (GDTR وLDTR و IDTR ) وسجل مهمة (TR).
تتضمن معالجات x86 ذات 32 بت (بدءًا من 80386) أيضًا سجلات خاصة/متنوعة مثل سجلات التحكم (CR0 إلى 4، CR8 لـ 64 بت فقط)، وسجلات التصحيح (DR0 إلى 3، بالإضافة إلى 6 و7)، وسجلات الاختبار (TR3 إلى 7؛ 80486 فقط)، وسجلات خاصة بالطراز (MSRs، تظهر مع Pentium [o] ).
يحتوي AVX-512 على ثمانية سجلات قناع إضافية مكونة من 64 بت K0–K7 لاختيار العناصر في سجل متجه. اعتمادًا على سجل المتجه وعرض العناصر، قد يتم استخدام مجموعة فرعية فقط من بتات سجل القناع بواسطة تعليمات معينة.
غاية
على الرغم من أن السجلات الرئيسية (باستثناء مؤشر التعليمات) هي "أغراض عامة" في الإصدارات 32 بت و64 بت من مجموعة التعليمات ويمكن استخدامها لأي شيء، فقد كان من المتصور في الأصل استخدامها للأغراض التالية:
- AL/AH/AX/EAX/RAX: البطارية
- CL/CH/CX/ECX/RCX: عداد (للاستخدام مع الحلقات والأوتار)
- DL/DH/DX/EDX/RDX: توسيع دقة المُراكم (على سبيل المثال، الجمع بين EAX وEDX 32 بت لعمليات الأعداد الصحيحة 64 بت في الكود 32 بت)
- BL/BH/BX/EBX/RBX: الفهرس الأساسي (للاستخدام مع المصفوفات)
- SP/ESP/RSP: مؤشر المكدس لأعلى عنوان للمكدس.
- BP/EBP/RBP: مؤشر قاعدة المكدس لحمل عنوان إطار المكدس الحالي .
- SI/ESI/RSI: مؤشر المصدر لعمليات السلسلة .
- DI/EDI/RDI: مؤشر الوجهة لعمليات السلسلة.
- IP/EIP/RIP: مؤشر التعليمات. يحتوي على عداد البرنامج ، وعنوان التعليمات التالية.
سجلات القطاعات:
- CS: الكود
- DS: البيانات
- SS: كومة
- ES: بيانات إضافية
- FS: بيانات إضافية رقم 2
- GS: بيانات إضافية رقم 3
لم يتم تصور أغراض معينة للسجلات الثمانية الأخرى المتاحة فقط في وضع 64 بت.
يتم تجميع بعض التعليمات وتنفيذها بكفاءة أكبر عند استخدام هذه السجلات للغرض المصمم لها. على سبيل المثال، يؤدي استخدام AL كمُجمِّع وإضافة قيمة بايت فورية إليه إلى إنتاج رمز التشغيل الفعال للإضافة إلى AL وهو 04h، بينما يؤدي استخدام سجل BL إلى إنتاج رمز التشغيل العام والأطول للإضافة إلى السجل وهو 80C3h. مثال آخر هو القسمة والضرب بدقة مزدوجة والذي يعمل بشكل خاص مع سجلات AX وDX.
استفادت المترجمات الحديثة من تقديم بايت sib ( بايت مقياس-مؤشر-قاعدة ) الذي يسمح بمعالجة السجلات بشكل موحد ( مثل الحاسبات الصغيرة ). ومع ذلك، فإن استخدام بايت sib عالميًا ليس مثاليًا، لأنه ينتج ترميزات أطول من استخدامه فقط بشكل انتقائي عند الضرورة. (الفائدة الرئيسية لبايت sib هي التعامد وأوضاع التوجيه الأكثر قوة التي يوفرها، مما يجعل من الممكن حفظ التعليمات واستخدام السجلات لحسابات العناوين مثل توسيع مؤشر.) فقدت بعض التعليمات الخاصة الأولوية في تصميم الأجهزة وأصبحت أبطأ من تسلسلات التعليمات البرمجية الصغيرة المكافئة. ومن الأمثلة البارزة على ذلك تعليمة LODSW.
بناء
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| ر؟إكس | |||||||
| السابق | |||||||
| ؟X | |||||||
| ؟ح | ؟ل | ||||||
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| ؟ | |||||||
| ؟د | |||||||
| ؟و | |||||||
| ؟ب | |||||||
| 16 | 8 |
|---|---|
| ؟س | |
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| ر؟ب | |||||||
| ه؟ب | |||||||
| ؟ص | |||||||
| ؟بل | |||||||
ملاحظة: سجلات ?PL متاحة فقط في وضع 64 بت.
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| ر؟اي | |||||||
| ه؟اي | |||||||
| ؟أنا | |||||||
| ؟إل | |||||||
ملاحظة: سجلات ?IL متاحة فقط في وضع 64 بت.
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| قطع | |||||||
| برنامج الاستثمار الاقتصادي | |||||||
| الملكية الفكرية | |||||||
أوضاع التشغيل
الوضع الحقيقي
يحتاج هذا القسم إلى مصادر إضافية للتحقق . ( يناير 2014 ) |
وضع العنوان الحقيقي، [36] يُطلق عليه عادةً الوضع الحقيقي، هو وضع تشغيل لوحدات المعالجة المركزية المتوافقة مع x86 من 8086 وما بعدها . يتميز الوضع الحقيقي بمساحة عنوان ذاكرة مجزأة 20 بت (بمعنى أنه لا يمكن معالجة سوى ما يزيد قليلاً عن 1 ميجا بايت من الذاكرة [p] )، ووصول مباشر من البرنامج إلى الأجهزة الطرفية، وعدم وجود مفهوم لحماية الذاكرة أو تعدد المهام على مستوى الأجهزة. تبدأ جميع وحدات المعالجة المركزية x86 في سلسلة 80286 وما بعدها في الوضع الحقيقي عند تشغيل الطاقة؛ وحدات المعالجة المركزية 80186 وما قبلها كان بها وضع تشغيل واحد فقط، وهو ما يعادل الوضع الحقيقي في الرقائق اللاحقة. (على منصة IBM PC، يتوفر الوصول المباشر من البرنامج إلى روتينات IBM BIOS فقط في الوضع الحقيقي، حيث تم كتابة BIOS للوضع الحقيقي. ومع ذلك، هذه ليست خاصية لوحدة المعالجة المركزية x86 ولكنها خاصية لتصميم IBM BIOS.)
لاستخدام أكثر من 64 كيلو بايت من الذاكرة، يجب استخدام سجلات المقطع. وقد أدى هذا إلى تعقيدات كبيرة لمنفذي المترجم الذين قدموا أوضاع مؤشر غريبة مثل "قريب" و"بعيد" و"ضخم" للاستفادة من الطبيعة الضمنية للهندسة المجزأة بدرجات مختلفة، مع احتواء بعض المؤشرات على إزاحات 16 بت داخل المقاطع الضمنية ومؤشرات أخرى تحتوي على عناوين مقطع وإزاحات داخل المقاطع. من الناحية الفنية، من الممكن استخدام ما يصل إلى 256 كيلوبايت من الذاكرة للكود والبيانات، مع ما يصل إلى 64 كيلوبايت للكود، عن طريق ضبط جميع سجلات القطاعات الأربعة مرة واحدة ثم استخدام إزاحات 16 بت فقط (اختياريًا مع بادئات تجاوز القطاع الافتراضي) لمعالجة الذاكرة، ولكن هذا يفرض قيودًا كبيرة على الطريقة التي يمكن بها معالجة البيانات والجمع بين متغيرات الذاكرة، كما أنه ينتهك القصد المعماري لمصممي Intel، وهو احتواء عناصر البيانات المنفصلة (مثل المصفوفات والهياكل ووحدات التعليمات البرمجية) في قطاعات منفصلة ومعالجتها بعناوين قطاعاتها الخاصة، في البرامج الجديدة التي لم يتم نقلها من معالجات 8 بت السابقة بمساحات عناوين 16 بت.
الوضع غير الواقعي
يتم استخدام الوضع غير الواقعي بواسطة بعض أنظمة التشغيل ذات 16 بت وبعض برامج التمهيد ذات 32 بت .
وضع إدارة النظام
يتم استخدام وضع إدارة النظام (SMM) فقط بواسطة البرامج الثابتة للنظام ( BIOS / UEFI )، وليس بواسطة أنظمة التشغيل وبرامج التطبيقات. يتم تشغيل كود SMM في SMRAM.
الوضع المحمي
يحتاج هذا القسم إلى مصادر إضافية للتحقق . ( يناير 2014 ) |
بالإضافة إلى الوضع الحقيقي، يدعم Intel 80286 الوضع المحمي، وتوسيع الذاكرة الفعلية القابلة للعنونة إلى 16 ميجا بايت والذاكرة الافتراضية القابلة للعنونة إلى 1 جيجابايت ، وتوفير ذاكرة محمية ، والتي تمنع البرامج من إتلاف بعضها البعض. يتم ذلك باستخدام سجلات القطاعات فقط لتخزين فهرس في جدول واصف يتم تخزينه في الذاكرة. هناك جدولان من هذا القبيل، جدول الوصاف العالمي (GDT) وجدول الوصاف المحلي (LDT)، كل منهما يحمل ما يصل إلى 8192 واصف قطاع، كل قطاع يتيح الوصول إلى 64 كيلو بايت من الذاكرة. في 80286، يوفر واصف القطاع عنوانًا أساسيًا مكونًا من 24 بتًا ، ويضاف هذا العنوان الأساسي إلى إزاحة 16 بتًا لإنشاء عنوان مطلق. يفي العنوان الأساسي من الجدول بنفس الدور الذي تفي به القيمة الحرفية لسجل القطاع في الوضع الحقيقي؛ تم تحويل سجلات القطاع من سجلات مباشرة إلى سجلات غير مباشرة. يمكن تعيين مستوى واحد من أربعة مستويات للحلقات لكل مقطع مستخدمة في أمان الكمبيوتر القائم على الأجهزة . يحتوي كل واصف مقطع أيضًا على حقل حد المقطع الذي يحدد الحد الأقصى للإزاحة التي يمكن استخدامها مع المقطع. نظرًا لأن الإزاحات 16 بت، فإن المقاطع لا تزال محدودة بـ 64 كيلوبايت لكل منها في وضع الحماية 80286. [37]
في كل مرة يتم فيها تحميل سجل مقطع في الوضع المحمي، يجب على 80286 قراءة موصوف مقطع مكون من 6 بايتات من الذاكرة إلى مجموعة من السجلات الداخلية المخفية. وبالتالي، فإن تحميل سجلات المقطع أبطأ كثيرًا في الوضع المحمي مقارنة بالوضع الحقيقي، ويجب تجنب تغيير المقاطع بشكل متكرر للغاية. لا تتباطأ عمليات الذاكرة الفعلية باستخدام مقاطع الوضع المحمي كثيرًا لأن 80286 والإصدارات الأحدث لديها أجهزة للتحقق من الإزاحة مقابل حد المقطع بالتوازي مع تنفيذ التعليمات.
لقد قامت Intel 80386 بتوسيع الإزاحات وكذلك حقل حد المقطع في كل واصف مقطع إلى 32 بت، مما يتيح للمقطع أن يمتد على مساحة الذاكرة بالكامل. كما قدمت الدعم في الوضع المحمي للترقيم ، وهي آلية تجعل من الممكن استخدام ذاكرة افتراضية مقسمة إلى صفحات (بحجم صفحة 4 كيلوبايت). يسمح الترقيم لوحدة المعالجة المركزية بربط أي صفحة من مساحة الذاكرة الافتراضية بأي صفحة من مساحة الذاكرة الفعلية. للقيام بذلك، فإنه يستخدم جداول تعيين إضافية في الذاكرة تسمى جداول الصفحات. يمكن أن يعمل الوضع المحمي على 80386 مع تمكين الترقيم أو تعطيله؛ آلية التجزئة نشطة دائمًا وتولد عناوين افتراضية يتم تعيينها بعد ذلك بواسطة آلية الترقيم إذا تم تمكينها. يمكن أيضًا تعطيل آلية التجزئة بشكل فعال عن طريق تعيين جميع المقاطع ليكون لها عنوان أساسي 0 وحد حجم يساوي مساحة العنوان بالكامل؛ يتطلب هذا أيضًا جدول واصف مقطع بحجم ضئيل يحتوي على أربعة واصفات فقط (نظرًا لعدم الحاجة إلى استخدام مقاطع FS وGS). [q]
تُستخدم الترقيمات على نطاق واسع بواسطة أنظمة التشغيل الحديثة متعددة المهام. تم تطوير Linux و 386BSD و Windows NT لمعالج 386 لأنه كان أول معالج بهندسة معمارية من Intel يدعم الترقيمات وإزاحات القطاعات 32 بت. أصبحت هندسة 386 الأساس لجميع التطورات اللاحقة في سلسلة x86.
يتم تشغيل معالجات x86 التي تدعم الوضع المحمي في الوضع الحقيقي للتوافق مع معالجات فئة 8086 القديمة. عند التشغيل (أو التمهيد )، يبدأ المعالج في الوضع الحقيقي، ثم يبدأ في تنفيذ التعليمات. قد يضع كود تمهيد نظام التشغيل، الذي قد يتم تخزينه في ذاكرة القراءة فقط ، المعالج في الوضع المحمي لتمكين الترقيم والميزات الأخرى. وعلى العكس من ذلك، لا يُسمح بالحسابات القطاعية، وهي ممارسة شائعة في كود الوضع الحقيقي، في الوضع المحمي.
الوضع الافتراضي 8086
يوجد أيضًا وضع فرعي للتشغيل في الوضع المحمي 32 بت (المعروف أيضًا باسم الوضع المحمي 80386) يسمى الوضع الافتراضي 8086 ، والمعروف أيضًا باسم وضع V86 . هذا هو في الأساس وضع تشغيل هجين خاص يسمح لبرامج وأنظمة التشغيل في الوضع الحقيقي بالعمل أثناء وجودها تحت سيطرة نظام تشغيل مشرف الوضع المحمي. يسمح هذا بقدر كبير من المرونة في تشغيل كل من برامج الوضع المحمي وبرامج الوضع الحقيقي في وقت واحد. هذا الوضع متاح حصريًا لإصدار 32 بت من الوضع المحمي؛ ولا يوجد في إصدار 16 بت من الوضع المحمي، أو في الوضع الطويل.
الوضع الطويل
في منتصف تسعينيات القرن العشرين، كان من الواضح أن مساحة العنوان المكونة من 32 بت في بنية x86 كانت تحد من أدائها في التطبيقات التي تتطلب مجموعات بيانات كبيرة. تسمح مساحة العنوان المكونة من 32 بت للمعالج بمعالجة 4 جيجابايت فقط من البيانات بشكل مباشر، وهو حجم تجاوزته تطبيقات مثل معالجة الفيديو ومحركات قواعد البيانات . باستخدام عناوين 64 بت، من الممكن معالجة 16 إكسابايت من البيانات بشكل مباشر، على الرغم من أن معظم بنيات 64 بت لا تدعم الوصول إلى مساحة العنوان الكاملة المكونة من 64 بت؛ على سبيل المثال، تدعم AMD64 48 بت فقط من عنوان 64 بت، مقسمة إلى أربعة مستويات ترحيل.
في عام 1999، نشرت AMD مواصفات (شبه كاملة) لتمديد 64 بت لبنية x86 والتي أطلقت عليها اسم x86-64 مع نية إنتاجها. يُستخدم هذا التصميم حاليًا في جميع معالجات x86 تقريبًا، مع بعض الاستثناءات المخصصة للأنظمة المضمنة .
أصبحت شرائح x86-64 المنتجة بكميات كبيرة للسوق العامة متاحة بعد أربع سنوات، في عام 2003، بعد قضاء الوقت في اختبار النماذج الأولية العاملة وتحسينها؛ وفي نفس الوقت تقريبًا، تم تغيير الاسم الأولي x86-64 إلى AMD64 . أجبر نجاح خط معالجات AMD64 إلى جانب الاستقبال الفاتر لهندسة IA-64 شركة Intel على إصدار تنفيذها الخاص لمجموعة تعليمات AMD64. كانت Intel قد نفذت سابقًا دعمًا لـ AMD64 [38] لكنها اختارت عدم تمكينه على أمل ألا تقدم AMD AMD64 إلى السوق قبل اعتماد مجموعة تعليمات IA-64 الجديدة من Itanium على نطاق واسع. لقد أطلقت على تنفيذها لـ AMD64 اسم EM64T ، ثم أعادت تسميته لاحقًا إلى Intel 64 .
في أدبياتها وأسماء إصدارات منتجاتها، تشير Microsoft وSun إلى AMD64/Intel 64 بشكل جماعي باسم x64 في أنظمة التشغيل Windows و Solaris . وتشير توزيعات Linux إليها إما باسم "x86-64" أو "x86_64" أو "amd64". تستخدم أنظمة BSD "amd64" بينما يستخدم macOS "x86_64".
الوضع الطويل هو في الغالب امتداد لمجموعة التعليمات ذات 32 بت، ولكن على عكس الانتقال من 16 بت إلى 32 بت، تم إسقاط العديد من التعليمات في الوضع 64 بت. لا يؤثر هذا على التوافق الثنائي الفعلي (الذي من شأنه تنفيذ التعليمات البرمجية القديمة في أوضاع أخرى تحتفظ بدعم هذه التعليمات)، ولكنه يغير الطريقة التي يجب أن تعمل بها برامج التجميع والمترجمات الخاصة بالرمز الجديد.
كانت هذه هي المرة الأولى التي يتم فيها البدء في توسعة رئيسية لبنية x86 بواسطة جهة تصنيع أخرى غير Intel. وكانت أيضًا المرة الأولى التي تقبل فيها Intel تقنية من هذا النوع من مصدر خارجي.
الإضافات
وحدة النقطة العائمة
كان من الممكن توسيع معالجات x86 المبكرة باستخدام أجهزة ذات فاصلة عائمة في هيئة سلسلة من المعالجات المساعدة الرقمية ذات الفاصلة العائمة بأسماء مثل 8087 و80287 و80387، والتي تُختصر إلى x87. وكان هذا يُعرف أيضًا باسم NPX ( ملحق المعالج الرقمي )، وهو اسم مناسب لأن المعالجات المساعدة، على الرغم من استخدامها بشكل أساسي لحسابات الفاصلة العائمة، كانت تؤدي أيضًا عمليات عددية صحيحة على كل من التنسيقات الثنائية والعشرية. وباستثناءات قليلة جدًا، قامت معالجات 80486 وx86 اللاحقة بعد ذلك بدمج وظيفة x87 هذه على الشريحة مما جعل تعليمات x87 جزءًا لا يتجزأ من مجموعة تعليمات x86.
يبلغ عرض كل سجل x87، المعروف باسم ST(0) حتى ST(7)، 80 بتًا ويخزن الأرقام بتنسيق الدقة المزدوجة الموسعة القياسي للفاصلة العائمة IEEE . يتم تنظيم هذه السجلات على هيئة مكدس مع ST(0) في الأعلى. تم ذلك من أجل الحفاظ على مساحة التعليمات البرمجية، وبالتالي يمكن الوصول إلى السجلات عشوائيًا فقط لأي من المتعاملين في تعليمة من سجل إلى سجل؛ يجب أن يكون ST0 دائمًا أحد المتعاملين، إما المصدر أو الوجهة، بغض النظر عما إذا كان المتعامل الآخر هو ST(x) أو متعامل ذاكرة. ومع ذلك، يمكن الحصول على وصول عشوائي إلى سجلات المكدس من خلال تعليمة تتبادل أي ST(x) محدد مع ST(0).
تتضمن العمليات الدوال الحسابية والتجاوزية، بما في ذلك الدوال المثلثية والأسية، والتعليمات التي تحمل الثوابت المشتركة (مثل 0؛ 1؛ e، قاعدة اللوغاريتم الطبيعي؛ log2(10)؛ وlog10(2)) في أحد سجلات المكدس. وبينما غالبًا ما يتم تجاهل قدرة الأعداد الصحيحة، يمكن لـ x87 العمل على أعداد صحيحة أكبر بتعليمات واحدة مقارنة بـ 8086 أو 80286 أو 80386 أو أي وحدة معالجة مركزية x86 بدون امتدادات 64 بت، ويمكن تسريع العمليات الحسابية الصحيحة المتكررة حتى على القيم الصغيرة (على سبيل المثال، 16 بت) من خلال تنفيذ تعليمات الأعداد الصحيحة على وحدة المعالجة المركزية x86 وx87 بالتوازي. (تستمر وحدة المعالجة المركزية x86 في العمل بينما يقوم المعالج المساعد x87 بالحساب، ويضبط x87 إشارة إلى x86 عند الانتهاء أو يقاطع x86 إذا كان يحتاج إلى الاهتمام بسبب خطأ.)
إم إم إكس
MMX هي مجموعة تعليمات SIMD صممتها شركة Intel وتم تقديمها في عام 1997 لمعالج Pentium MMX . [39] تم تطوير مجموعة تعليمات MMX من مفهوم مماثل تم استخدامه لأول مرة في Intel i860 . وهي مدعومة في معظم معالجات IA-32 اللاحقة من قبل Intel وبائعين آخرين. تُستخدم MMX عادةً لمعالجة الفيديو (في تطبيقات الوسائط المتعددة، على سبيل المثال). [40]
أضافت MMX 8 سجلات جديدة إلى البنية، والمعروفة باسم MM0 حتى MM7 (المشار إليها فيما بعد باسم MMn ). في الواقع، كانت هذه السجلات الجديدة مجرد أسماء مستعارة لسجلات مكدس FPU x87 الموجودة. وبالتالي، فإن أي شيء يتم إجراؤه على مكدس النقطة العائمة سيؤثر أيضًا على سجلات MMX. على عكس مكدس FP، كانت سجلات MMn هذه ثابتة وليست نسبية، وبالتالي كانت يمكن الوصول إليها بشكل عشوائي. لم تتبنى مجموعة التعليمات الدلالات الشبيهة بالمكدس بحيث لا تزال أنظمة التشغيل الحالية قادرة على حفظ حالة السجل واستعادتها بشكل صحيح عند تعدد المهام دون تعديلات. [39]
كل من سجلات MMn عبارة عن أعداد صحيحة مكونة من 64 بت. ومع ذلك، فإن أحد المفاهيم الرئيسية لمجموعة تعليمات MMX هو مفهوم أنواع البيانات المعبأة ، مما يعني أنه بدلاً من استخدام السجل بالكامل لعدد صحيح واحد مكون من 64 بت ( كلمة رباعية )، يمكن للمرء استخدامه لاحتواء عددين صحيحين مكونين من 32 بت ( كلمة مزدوجة )، أو أربعة أعداد صحيحة مكونة من 16 بت ( كلمة ) أو ثمانية أعداد صحيحة مكونة من 8 بت ( بايت ). ونظرًا لأن سجلات MMn المكونة من 64 بت في MMX مرتبطة بمكدس FPU وأن كل سجل من سجلات النقطة العائمة يبلغ عرضه 80 بت، فإن البتات الستة عشر العلوية من سجلات النقطة العائمة غير مستخدمة في MMX. يتم تعيين هذه البتات على جميعها واحدًا بواسطة أي تعليمة MMX، والتي تتوافق مع تمثيل النقطة العائمة لـ NaNs أو اللانهائيات. [39]
3DNow!
في عام 1997، قدمت شركة AMD تقنية 3DNow! [41] وتزامن تقديم هذه التقنية مع ظهور تطبيقات الترفيه ثلاثية الأبعاد ، وصُممت لتحسين أداء معالجة المتجهات لوحدة المعالجة المركزية للتطبيقات التي تتطلب رسوميات مكثفة. يستخدم مطورو ألعاب الفيديو ثلاثية الأبعاد وبائعو أجهزة الرسوميات ثلاثية الأبعاد تقنية 3DNow! لتحسين أدائهم على سلسلة معالجات AMD K6 و Athlon . [42]
تم تصميم 3DNow! ليكون التطور الطبيعي لـ MMX من الأعداد الصحيحة إلى النقطة العائمة. وعلى هذا النحو، فإنه يستخدم نفس اتفاقية تسمية السجلات تمامًا مثل MMX، أي MM0 حتى MM7. [43] والفرق الوحيد هو أنه بدلاً من تعبئة الأعداد الصحيحة في هذه السجلات، يتم تعبئة رقمين عائمين بدقة واحدة في كل سجل. تتمثل ميزة تسمية سجلات FPU باسم مستعار في أنه يمكن أيضًا استخدام نفس التعليمات وهياكل البيانات المستخدمة لحفظ حالة سجلات FPU لحفظ حالات سجل 3DNow! وبالتالي لا يلزم إجراء تعديلات خاصة على أنظمة التشغيل التي لن تعرف عنها بخلاف ذلك. [44]
إس إس إيو AVX
في عام 1999، قدمت شركة إنتل مجموعة تعليمات Streaming SIMD Extensions (SSE) ، وتبعتها في عام 2000 بمجموعة تعليمات SSE2. سمحت الإضافة الأولى بتفريغ عمليات الفاصلة العائمة الأساسية من مكدس x87، وجعلت الإضافة الثانية MMX عتيقة تقريبًا وسمحت باستهداف التعليمات بشكل واقعي بواسطة المترجمين التقليديين. تم تقديم مجموعة تعليمات SSE3 في عام 2004 جنبًا إلى جنب مع مراجعة Prescott لمعالج Pentium 4 ، وأضافت تعليمات محددة للذاكرة ومعالجة الخيوط لتعزيز أداء تقنية HyperThreading من Intel . قامت AMD بترخيص مجموعة تعليمات SSE3 ونفذت معظم تعليمات SSE3 لمراجعتها E ومعالجات Athlon 64 اللاحقة. لا يدعم Athlon 64 HyperThreading ويفتقر إلى تعليمات SSE3 المستخدمة فقط لـ HyperThreading. [45]
لقد تخلصت تقنية SSE من جميع الاتصالات القديمة بمكدس وحدة النقطة العائمة. وهذا يعني أيضًا أن مجموعة التعليمات هذه تخلصت من جميع الاتصالات القديمة بأجيال سابقة من مجموعات تعليمات SIMD مثل MMX. ولكنها حررت المصممين، مما سمح لهم باستخدام سجلات أكبر، غير محدودة بحجم سجلات وحدة النقطة العائمة. أنشأ المصممون ثمانية سجلات 128 بت، تسمى XMM0 حتى XMM7. (في AMD64 ، تمت زيادة عدد سجلات SSE XMM من 8 إلى 16.) ومع ذلك، كان الجانب السلبي هو أن أنظمة التشغيل كان عليها أن تكون على دراية بمجموعة التعليمات الجديدة هذه حتى تتمكن من حفظ حالات سجلاتها. لذلك أنشأت Intel إصدارًا معدّلًا قليلاً من الوضع المحمي، يسمى الوضع المحسن والذي يمكّن من استخدام تعليمات SSE، بينما تظل معطلة في الوضع المحمي العادي. سيقوم نظام التشغيل الذي يدرك SSE بتنشيط الوضع المحسن، بينما سيدخل نظام التشغيل غير المدرك فقط في الوضع المحمي التقليدي.
SSE هي مجموعة تعليمات SIMD تعمل فقط على قيم الفاصلة العائمة، مثل 3DNow!. ومع ذلك، على عكس 3DNow!، فإنها تقطع كل اتصال قديم بمكدس FPU. ولأنها تحتوي على سجلات أكبر من 3DNow!، يمكن لـ SSE أن تحزم ضعف عدد الأرقام العائمة ذات الدقة المفردة في سجلاتها. كانت SSE الأصلية محدودة فقط بالأرقام ذات الدقة المفردة، مثل 3DNow!. قدمت SSE2 القدرة على حزم أرقام الدقة المزدوجة أيضًا، وهو ما لم يكن لدى 3DNow! إمكانية القيام به لأن الرقم ذي الدقة المزدوجة يبلغ حجمه 64 بتًا وهو الحجم الكامل لسجل MMn واحد في 3DNow!. عند 128 بتًا، يمكن لسجلات SSE XMMn أن تحزم رقمين عائمين بدقة مزدوجة في سجل واحد. وبالتالي فإن SSE2 أكثر ملاءمة للحسابات العلمية من SSE1 أو 3DNow!، والتي كانت محدودة فقط بدقة واحدة. لا تقدم SSE3 أي سجلات إضافية. [45]
لقد ضاعفت Advanced Vector Extensions (AVX) حجم سجلات SSE إلى سجلات YMM بحجم 256 بت. كما قدمت مخطط ترميز VEX لاستيعاب السجلات الأكبر، بالإضافة إلى بعض التعليمات لتبديل العناصر. لم تقدم AVX2 سجلات إضافية، ولكنها كانت ملحوظة لإضافة تعليمات الإخفاء والتجميع والخلط .
يتميز AVX-512 بتوسعة أخرى لسجلات ZMM التي يبلغ طولها 512 بتًا ومخطط EVEX جديد. وعلى عكس الإصدارات السابقة التي تتميز بتوسعة متجانسة، فإنه مقسم إلى العديد من المجموعات الفرعية التي يمكن لنماذج معينة من وحدات المعالجة المركزية اختيار تنفيذها.
امتداد العنوان الفعلي (PAE)
تمت إضافة امتداد العنوان المادي أو PAE لأول مرة في معالج Intel Pentium Pro ، ثم لاحقًا بواسطة AMD في معالجات Athlon، [46] للسماح بمعالجة ما يصل إلى 64 جيجابايت من ذاكرة الوصول العشوائي. بدون PAE، تقتصر ذاكرة الوصول العشوائي المادية في الوضع المحمي 32 بت عادةً على 4 جيجابايت . يحدد PAE بنية جدول صفحات مختلفة مع إدخالات جدول صفحات أوسع ومستوى ثالث من جدول الصفحات، مما يسمح ببتات إضافية من العنوان المادي. على الرغم من أن التنفيذات الأولية على معالجات 32 بت تدعم نظريًا ما يصل إلى 64 جيجابايت من ذاكرة الوصول العشوائي، إلا أن مجموعة الشرائح والقيود الأخرى على المنصة غالبًا ما تقيد ما يمكن استخدامه بالفعل. تحدد معالجات x86-64 هياكل جدول صفحات تسمح نظريًا بما يصل إلى 52 بت من العنوان المادي، على الرغم من أن مجموعة الشرائح والقيود الأخرى على المنصة (مثل عدد فتحات DIMM المتاحة، والحد الأقصى لذاكرة الوصول العشوائي الممكنة لكل DIMM) تمنع تحقيق مثل هذه المساحة الكبيرة من العنوان المادي. في معالجات x86-64، يجب أن يكون وضع PAE نشطًا قبل التبديل إلى الوضع الطويل ، ويجب أن يظل نشطًا أثناء نشاط الوضع الطويل ، وبالتالي لا يوجد وضع "غير PAE" أثناء وجودك في الوضع الطويل. لا يؤثر وضع PAE على عرض العناوين الخطية أو الافتراضية.
x86-64
يحتاج هذا القسم إلى مصادر إضافية للتحقق . ( مارس 2016 ) |

بحلول العقد الأول من القرن الحادي والعشرين، كانت حدود معالجات x86 ذات 32 بت في معالجة الذاكرة عقبة أمام استخدامها في مجموعات الحوسبة عالية الأداء ومحطات العمل المكتبية القوية. كانت معالجات x86 ذات 32 بت القديمة تنافس معماريات RISC ذات 64 بت الأكثر تقدمًا والتي يمكنها معالجة قدر أكبر من الذاكرة. احتاجت شركة Intel ونظام x86 البيئي بأكمله إلى معالجة ذاكرة 64 بت إذا كانت معالجات x86 ستنجو من عصر الحوسبة 64 بت، حيث كانت تطبيقات برامج محطات العمل وسطح المكتب ستبدأ قريبًا في الوصول إلى حدود معالجة الذاكرة 32 بت. ومع ذلك، شعرت شركة Intel أن الوقت مناسب لاتخاذ خطوة جريئة واستخدام الانتقال إلى أجهزة كمبيوتر سطح المكتب ذات 64 بت للانتقال بعيدًا عن بنية x86 بشكل عام، وهي التجربة التي فشلت في النهاية.
في عام 2001، حاولت شركة إنتل تقديم بنية 64 بت غير x86 تسمى IA-64 في معالج إيتانيوم الخاص بها ، بهدف سوق الحوسبة عالية الأداء في البداية ، على أمل أن تحل في النهاية محل x86 32 بت. [47] في حين أن IA-64 كان غير متوافق مع x86، إلا أن معالج إيتانيوم قدم قدرات محاكاة لترجمة تعليمات x86 إلى IA-64، لكن هذا أثر على أداء برامج x86 بشدة لدرجة أنه نادرًا ما كان مفيدًا للمستخدمين: يجب على المبرمجين إعادة كتابة برامج x86 لبنية IA-64 أو سيكون أداءهم على إيتانيوم أسوأ بكثير من معالج x86 الحقيقي. رفض السوق معالج إيتانيوم لأنه كسر التوافق مع الإصدارات السابقة وفضل الاستمرار في استخدام شرائح x86، وتمت إعادة كتابة عدد قليل جدًا من البرامج لـ IA-64.
قررت AMD اتباع مسار آخر نحو معالجة الذاكرة 64 بت، مع التأكد من عدم معاناة التوافق مع الإصدارات السابقة. في أبريل 2003، أصدرت AMD أول معالج x86 بسجلات للأغراض العامة 64 بت، Opteron ، القادر على معالجة أكثر من 4 جيجابايت من الذاكرة الافتراضية باستخدام امتداد x86-64 الجديد (المعروف أيضًا باسم AMD64 أو x64). تم تمكين امتدادات 64 بت لهندسة x86 فقط في الوضع الطويل الذي تم تقديمه حديثًا ، وبالتالي يمكن للتطبيقات وأنظمة التشغيل 32 بت و16 بت ببساطة الاستمرار في استخدام معالج AMD64 في الأوضاع المحمية أو غيرها، دون أدنى تضحية بالأداء [48] ومع التوافق الكامل مع التعليمات الأصلية لـ Intel 8086 16 بت. [49] : 13-14 استجاب السوق بشكل إيجابي، حيث تبنى معالجات AMD 64 بت لكل من التطبيقات عالية الأداء وأجهزة الكمبيوتر التجارية أو المنزلية.
بعد أن رأت إنتل أن السوق يرفض معالج إيتانيوم غير المتوافق ودعم مايكروسوفت لـ AMD64، اضطرت إلى الاستجابة وقدمت معالجها الخاص x86-64، Prescott Pentium 4، في يوليو 2004. [50] ونتيجة لذلك، نادرًا ما يتم استخدام معالج إيتانيوم بمجموعة تعليمات IA-64 الخاصة به، ولا يزال x86، من خلال تجسيده لـ x86-64، هو بنية وحدة المعالجة المركزية السائدة في أجهزة الكمبيوتر غير المضمنة.
قدمت x86-64 أيضًا بت NX ، الذي يوفر بعض الحماية ضد أخطاء الأمان الناتجة عن تجاوزات المخزن المؤقت .
نتيجة لمساهمة AMD ذات الـ 64 بت في سلسلة x86 وقبولها اللاحق من قبل Intel، توقفت معماريات RISC ذات الـ 64 بت عن أن تشكل تهديدًا لنظام x86 البيئي واختفت تقريبًا من سوق محطات العمل. بدأ استخدام x86-64 في أجهزة الكمبيوتر العملاقة القوية (في تجسيداتها AMD Opteron و Intel Xeon )، وهي السوق التي كانت في السابق الموطن الطبيعي لتصميمات RISC ذات الـ 64 بت (مثل معالجات IBM Power أو معالجات SPARC ). القفزة الكبيرة نحو الحوسبة 64 بت والحفاظ على التوافق مع البرامج 32 بت و 16 بت مكنت بنية x86 من أن تصبح منصة مرنة للغاية اليوم، مع استخدام شرائح x86 من أنظمة صغيرة منخفضة الطاقة (على سبيل المثال، Intel Quark و Intel Atom ) إلى أجهزة الكمبيوتر المكتبية السريعة للألعاب (على سبيل المثال، Intel Core i7 و AMD FX / Ryzen )، وحتى الهيمنة على مجموعات الحوسبة الفائقة الكبيرة ، مما يترك فعليًا بنية RISC ARM 32 بت و 64 بت فقط كمنافس في سوق الهواتف الذكية والأجهزة اللوحية .
الإفتراضية
قبل عام 2005، لم تكن معالجات بنية x86 قادرة على تلبية متطلبات Popek وGoldberg - وهي مواصفات للمحاكاة الافتراضية تم إنشاؤها في عام 1974 بواسطة Gerald J. Popek و Robert P. Goldberg . ومع ذلك، تم تطوير كل من منتجات المشرف الافتراضي x86 الملكية والمفتوحة المصدر باستخدام المحاكاة الافتراضية القائمة على البرامج . تشمل الأنظمة الملكية Hyper-V و Parallels Workstation و VMware ESX و VMware Workstation و VMware Workstation Player و Windows Virtual PC ، بينما تشمل الأنظمة المجانية والمفتوحة المصدر QEMU و Kernel-based Virtual Machine و VirtualBox و Xen .
سمح تقديم مجموعات التعليمات AMD-V وIntel VT-x في عام 2005 لمعالجات x86 بتلبية متطلبات المحاكاة الافتراضية الخاصة بـ Popek وGoldberg. [51]
AES
APX (إضافات الأداء المتقدمة)
APX (ملحقات الأداء المتقدمة) هي ملحقات تهدف إلى مضاعفة عدد السجلات العامة من 16 إلى 32 وإضافة ميزات جديدة لتحسين الأداء العام. [52] [53] [54] [55] وقد تم وصف هذه الملحقات بأنها "جيلية" [56] و"أكبر إضافة لـ x86 منذ 64 بت". [57] ساهمت شركة Intel في دعم APX لمجموعة GNU Compiler Collection (GCC) 14. [58]
وفقًا لمواصفات الهندسة المعمارية، [59] فإن الميزات الرئيسية لـ APX هي:
- 16 سجلًا إضافيًا للأغراض العامة، تسمى سجلات GPR الموسعة (EGPRs)
- تنسيقات التعليمات ثلاثية المتغيرات للعديد من التعليمات الصحيحة
- تعليمات شرطية جديدة للتحميلات والمخازن والمقارنات باستخدام تعليمات شائعة لا تعدل العلامات
- تحسين عمليات حفظ/استعادة السجل
- تعليمات القفز المباشر المطلقة 64 بت
يتم ترميز GPRs الممتدة للتعليمات ذات الأغراض العامة باستخدام بادئة REX2 المكونة من 2 بايت ، بينما يتم ترميز التعليمات الجديدة والمتغيرات الممتدة لتعليمات AVX / AVX2 / AVX-512 الموجودة باستخدام بادئة EVEX الممتدة والتي تحتوي على أربعة متغيرات تستخدم لمجموعات مختلفة من التعليمات.
انظر أيضا
- لغة التجميع x86
- اتفاقيات استدعاء x86
- قوائم تعليمات x86
- تقسيم الذاكرة x86
- معرف وحدة المعالجة المركزية
- ايتانيوم
- x86-64
- 680x0 ، وهي بنية منافسة في عصر 16 بت و32 بت المبكر
- PowerPC ، وهي بنية منافسة في عصر 32 بت و64 بت اللاحق
- الهندسة المعمارية الدقيقة
- قائمة معالجات AMD
- قائمة معالجات إنتل
- قائمة بالهندسة المعمارية الدقيقة لوحدات المعالجة المركزية من Intel
- قائمة نوى المعالجات الدقيقة VIA
- قائمة الشركات المصنعة لـ x86
- طلب المقاطعة
- اي ايه بي اكس
- ثغرة تنفيذ مؤقت في وحدة المعالجة المركزية
- نموذج تيك-توك
- أسلاك تراثية افتراضية
ملحوظات
- ^ على عكس الهندسة المعمارية الدقيقة (والتطبيقات الإلكترونية والفيزيائية المحددة) المستخدمة في تصميم المعالج الدقيق المحدد.
- ^ على سبيل المثال، الكمبيوتر المحمول GRID Compass .
- ^ بما في ذلك معالجات 8088 و 80186 و 80188 و 80286 .
- ^ يحتوي هذا النظام أيضًا على المزيج المعتاد من مكونات دعم سلسلة 7400 القياسية، بما في ذلك أجهزة الإرسال المتعددة ، والمخازن المؤقتة، ومنطق الغراء .
- ^ المعنى الفعلي لـ iAPX كان Intel Advanced Performance Architecture ، أو في بعض الأحيان Intel Advanced Processor Architecture .
- ^ أواخر عام 1981 إلى أوائل عام 1984، تقريبًا
- ^ يضم سوق المعالجات المضمنة أكثر من 25 بنية معمارية مختلفة ، والتي، بسبب حساسية السعر، وانخفاض الطاقة، ومتطلبات بساطة الأجهزة، تفوق x86 في العدد.
- ^ كما قدمت NEC V20 وV30 أيضًا مجموعة تعليمات 8080 القديمة، مما يسمح لأجهزة الكمبيوتر المجهزة بهذه المعالجات الدقيقة بتشغيل تطبيقات CP/M بأقصى سرعة (أي دون الحاجة إلى محاكاة 8080 بواسطة البرامج).
- ^ صممت شركات التصنيع الرقائق وتعاقدت مع شركة أخرى لتصنيعها، بينما كانت شركات التصنيع تقوم بتصميم وتصنيع الرقائق بنفسها. بدأت بعض الشركات كشركات تصنيع ثم أصبحت فيما بعد شركات تصميم رقائق، ومن الأمثلة على ذلك شركة AMD.
- ^ ومع ذلك، كان لديه وحدة FPU أبطأ، وهو أمر مثير للسخرية بعض الشيء حيث بدأت Cyrix كمصمم لوحدات النقطة العائمة السريعة لمعالجات x86.
- ^ تخلت شركة Intel عن نظام تسمية "x86" مع معالج Pentium P5 خلال عام 1993 (حيث لم يكن من الممكن تسجيل الأرقام كعلامة تجارية). ومع ذلك، كان مصطلح x86 قد تم ترسيخه بالفعل بين الفنيين وكتاب المترجمين وغيرهم.
- ^ تم تقديم المعالجات الدقيقة 16 بت و 32 بت خلال عامي 1978 و 1985 على التوالي؛ تم الإعلان عن خطط لـ 64 بت خلال عام 1999 وتم تقديمها تدريجيًا من عام 2003 فصاعدًا.
- ^ قد تستخدم بعض تصميمات "CISC"، مثل PDP-11 ، اثنين.
- ^ وذلك لأن العمليات الحسابية الصحيحة تولد حملًا بين البتات اللاحقة (على عكس العمليات البسيطة على كل بت).
- ^ هناك نوعان من MSRs لهما أهمية خاصة وهما SYSENTER_EIP_MSR وSYSENTER_ESP_MSR، اللذان تم تقديمهما في معالج Pentium® II، واللذان يخزنان عنوان معالج خدمة النظام في وضع kernel ومؤشر مكدس kernel المقابل. يتم استخدام SYSENTER_EIP_MSR وSYSENTER_ESP_MSR، اللذان يتم تهيئتهما أثناء بدء تشغيل النظام، بواسطة تعليمات SYSENTER (Intel) أو SYSCALL (AMD) لتحقيق مكالمات النظام السريعة، وهي أسرع بثلاث مرات تقريبًا من طريقة المقاطعة البرمجية المستخدمة سابقًا.
- ^ لأن العنوان المجزأ هو مجموع مقطع مكون من 16 بت مضروبًا في 16 وإزاحة مكونة من 16 بت، فإن الحد الأقصى للعنوان هو 1,114,095 (10FFEF hex)، لإمكانية معالجة 1,114,096 بايت = 1 ميجا بايت + 65,520 بايت. قبل 80286، كانت وحدات المعالجة المركزية x86 تحتوي على 20 سطر عنوان فعلي فقط (إشارات بت العنوان)، لذا تم إسقاط البت 21 من العنوان، البت 20، وكانت العناوين التي تتعدى 1 ميجا بايت انعكاسات للطرف الأدنى من مساحة العنوان (بدءًا من العنوان صفر). منذ 80286، تحتوي جميع وحدات المعالجة المركزية x86 على 24 سطر عنوان فعلي على الأقل، ويتم إخراج البت 20 من العنوان المحسوب إلى ناقل العنوان في الوضع الحقيقي، مما يسمح لوحدة المعالجة المركزية بمعالجة 1,114,096 بايت كاملة يمكن الوصول إليها باستخدام عنوان مجزأ x86. في منصة IBM PC الشهيرة، تمت إضافة أجهزة قابلة للتبديل لتعطيل بت العنوان رقم 21 إلى الأجهزة التي تعمل بمعالج 80286 أو أحدث حتى تتمكن جميع البرامج المصممة للطرازات المستندة إلى 8088/8086 من العمل، بينما يمكن للبرامج الأحدث الاستفادة من الذاكرة "العالية" في الوضع الحقيقي ومساحة العنوان الكاملة 16 ميجا بايت أو أكبر في الوضع المحمي - انظر بوابة A20.
- ^ مطلوب أيضًا سجل وصف إضافي في أعلى الجدول، لأن الجدول يبدأ من الصفر ولكن الحد الأدنى لمؤشر الوصف الذي يمكن تحميله في سجل مقطع هو 1؛ يتم حجز القيمة 0 لتمثيل سجل مقطع لا يشير إلى أي مقطع.
مراجع
- ^ برايس، ديف (11 مايو 1989). "معالج 80486 32 بت يحقق إنجازًا جديدًا في كثافة الرقائق وأداء التشغيل. (شركة إنتل) (إعلان عن المنتج) EDN" (بيان صحفي).
- ^ Swoyer, Stephen (24 أبريل 2003). "AMD تقدم شريحة Opteron 64 بت (ESJ) (مقال إخباري)".
- ^ راو، بي في إس (2009). هندسة أنظمة الكمبيوتر . برنتيس هول أوف إنديا. ص. 402 (القسم 19.1، عائلة معالجات x86 ). رقم ISBN 978-81-203-3594-3.
- ^ Mhatre, Swapneel Chandrakant (2012). المعالجات الدقيقة وتقنيات التوصيل: لهندسة الحاسب الآلي (SE) الفصل الدراسي الثاني بجامعة بوني . دار نشر Jaico. ISBN 978-81-8495-325-1.
- ^ ألكورن، بول (9 فبراير 2022). "AMD تسجل أعلى حصة سوقية لوحدات المعالجة المركزية على الإطلاق مع مكاسب Intel في أجهزة الكمبيوتر المكتبية والمحمولة". توم هاردوير .
- ^ براندون، جوناثان (15 أبريل 2015). "السحابة بعد x86: كيف تعود البنيات القديمة". آي كلاود بي إي . أخبار السحابة التجارية. مؤرشف من الأصل في 19 أغسطس 2021. تم الاسترجاع في 23 نوفمبر 2020.
على الرغم من هيمنة x86 في مركز البيانات، فمن الصعب تجاهل الضوضاء التي أحدثها البائعون على مدار العامين الماضيين حول البنيات غير x86 مثل ARM...
- ^ Dvorak, John C. "Whatever Happened to the Intel iAPX432?". Dvorak.org. مؤرشف من الأصل في 25 نوفمبر 2017. تم الاسترجاع في 18 أبريل 2014 .
- ^ iAPX 286 Programmer's Reference (PDF) . Intel. 1983. مؤرشف من الأصل (PDF) في 28 أغسطس 2017. تم الاسترجاع في 28 أغسطس 2017 .
- ^ دليل مستخدم iAPX 86، 88 (PDF) . Intel. أغسطس 1981. مؤرشف من الأصل (PDF) في 28 أغسطس 2017. تم الاسترجاع في 28 أغسطس 2017 .
- ^ إدواردز، بينج (16 يونيو 2008). "ميلاد معيار: معالج إنتل 8086". PCWorld . مؤرشف من الأصل في 26 سبتمبر 2010. تم الاسترجاع في 14 سبتمبر 2014 .
- ^ ستانلي مازور (يناير-مارس 2010). "Intel's 8086". IEEE Annals of the History of Computing . 32 (1): 75–79. doi :10.1109/MAHC.2010.22. S2CID 16451604.
- ^ "AMD تكشف عن تقنيات جديدة في منتدى المعالجات الدقيقة" (بيان صحفي). AMD . 5 أكتوبر 1999. مؤرشف من الأصل في 2 مارس 2000.
وقال ناثان بروكوود، المحلل الرئيسي في شركة Insight 64: "لقد نظر مهندسو المعالجات مراراً وتكراراً إلى بنية x86 غير الأنيقة وأعلنوا أنها لا يمكن أن تتوسع لاستيعاب أحدث الابتكارات".
- ^ بيرت، جيف (5 أبريل 2010). "مايكروسوفت ستنهي دعم Intel Itanium". eWeek . تم الاسترجاع في 2 يونيو 2022 .
- ^ "دليل مرجعي لتحسين معماريات Intel 64 وIA-32" (PDF) . Intel. سبتمبر 2019. 3.4.2.2 التحسين من أجل Macro-fusion. مؤرشف (PDF) من الأصل في 14 فبراير 2020. تم الاسترجاع في 7 مارس 2020 .
- ^ ab Fog, Agner. "The microarchitecture of Intel, AMD and VIA CPUs" (PDF) . ص. 107. مؤرشف (PDF) من الأصل في 22 مارس 2019. تم الاسترجاع في 7 مارس 2020.
يمكن لـ Core2 القيام بدمج العمليات الكلية فقط في وضع 16 بت و32 بت. يمكن لـ Core Nehalem أيضًا القيام بذلك في وضع 64 بت
. - ^ "Zet: The x86 (IA-32) open implementation: Overview". OpenCores . 4 نوفمبر 2013. مؤرشف من الأصل في 11 فبراير 2018 . تم الاسترجاع في 5 يناير 2014 .
- ^ "Zhaoxin تستعد لدعم نواة Linux لمعالجات Centaur من سلسلة 7". www.phoronix.com . تم الاسترجاع في 5 أبريل 2022 .
- ^ "Zhaoxin تستهدف إطلاق معالجاتها 7nm x86 في عام 2021 - CPU - News - HEXUS.net". m.hexus.net . تم الاسترجاع في 5 أبريل 2022 .
- ^ "Zhaoxin يضيف أخيرًا ضبط وحدة المعالجة المركزية "Lujiazui" x86_64 إلى GCC". www.phoronix.com . تم الاسترجاع في 5 أبريل 2022 .
- ^ "اعتبارات الإعداد والتثبيت لأجهزة الكمبيوتر التي تعمل بنظام Windows x64 Edition". مؤرشف من الأصل في 11 سبتمبر 2014. تم الاسترجاع في 14 سبتمبر 2014 .
- ^ "تصور بنية مبسطة لشركة Intel". Intel .
- ^ لارابيل، مايكل (20 مايو 2023). "إنتل تنشر مواصفات "X86-S" للهندسة المعمارية ذات 64 بت فقط". Phoronix . تم الاسترجاع في 20 مايو 2023 .
- ^ "معالجات — ما هي طريقة العنونة التي تستخدمها معالجات إنتل؟". مؤرشف من الأصل في 11 سبتمبر 2014. تم الاسترجاع في 14 سبتمبر 2014 .
- ^ "DSB Switches". Intel VTune Amplifier 2013 . Intel. مؤرشف من الأصل في 2 ديسمبر 2013 . تم الاسترجاع في 26 أغسطس 2013 .
- ^ "دليل مستخدم عائلة 8086" (PDF) . شركة إنتل. أكتوبر 1979. ص. 2-68. مؤرشف من الأصل (PDF) في 4 أبريل 2018. تم الاسترجاع في 28 مارس 2018 .
- ^ "دليل مرجعي لمبرمج iAPX 286" (PDF) . شركة إنتل. 1983. 2.4.3 أوضاع معالجة الذاكرة. مؤرشف (PDF) من الأصل في 28 أغسطس 2017. تم الاسترجاع في 28 أغسطس 2017 .
- ^ 80386 دليل مرجعي للمبرمجين (PDF) . شركة إنتل. 1986. 2.5.3.2 حساب العنوان الفعال. مؤرشف من الأصل (PDF) في 28 ديسمبر 2018. تم الاسترجاع في 28 مارس 2018 .
- ^ دليل مطوري برامج Intel® 64 وIA-32 Architectures، المجلد 1: البنية الأساسية. شركة Intel Corporation. مارس 2018. الفصل 3. مؤرشف من الأصل في 26 يناير 2012. تم الاسترجاع في 19 مارس 2014 .
- ^ Andriesse, Dennis (2019). "6.5 Effects of Compiler Settings on Disassembly". تحليل ثنائي عملي: قم ببناء أدوات Linux الخاصة بك للتحليل الثنائي والتحليل والتفكيك . سان فرانسيسكو، كاليفورنيا: No Starch Press, Inc. ISBN 978-1-59327-913-4. OCLC 1050453850.
- ^ "دليل تجميع x86". Cs.virginia.edu. 11 سبتمبر 2013. مؤرشف من الأصل في 24 مارس 2020. تم الاسترجاع في 6 فبراير 2014 .
- ^ "FSTSW/FNSTSW — Store x87 FPU Status Word". مؤرشف من الأصل في 25 يناير 2022. تم الاسترجاع في 15 يناير 2020.
يستخدم نموذج FNSTSW AX للتعليمات بشكل أساسي في التفرع الشرطي...
- ^ دليل مطوري برامج Intel 64 وIA-32 Architectures المجلد 1: البنية الأساسية (PDF) . Intel. مارس 2013. الفصل 8. مؤرشف من الأصل (PDF) في 2 أبريل 2013. تم الاسترجاع في 23 أبريل 2013 .
- ^ "عائلة Intel 80287". CPU-world . مؤرشف من الأصل في 9 أغسطس 2016 . تم الاسترجاع في 21 يوليو 2016 .
- ^ دليل مطوري برامج Intel 64 وIA-32 Architectures المجلد 1: البنية الأساسية (PDF) . Intel. مارس 2013. الفصل 9. مؤرشف من الأصل (PDF) في 2 أبريل 2013. تم الاسترجاع في 23 أبريل 2013 .
- ^ دليل مطوري برامج Intel 64 وIA-32 Architectures المجلد 1: البنية الأساسية (PDF) . Intel. مارس 2013. الفصل 10. مؤرشف من الأصل (PDF) في 2 أبريل 2013. تم الاسترجاع في 23 أبريل 2013 .
- ^ iAPX 286 Programmer's Reference (PDF) . Intel. 1983. Section 1.2, "Modes of Operation". مؤرشف من الأصل (PDF) في 28 أغسطس 2017. تم الاسترجاع في 27 يناير 2014 .
- ^ iAPX 286 Programmer's Reference (PDF) . Intel. 1983. Chapter 6, "Memory Management and Virtual Addressing". مؤرشف من الأصل (PDF) في 28 أغسطس 2017. تم الاسترجاع في 27 يناير 2014 .
- ^ "تقنية Yamhill من Intel: متوافقة مع x86-64 |Geek.com". مؤرشف من الأصل في 5 سبتمبر 2012. تم الاسترجاع في 18 يوليو 2008 .
- ^ abc "البرمجة باستخدام تقنية Intel MMX™". مركز المعلومات الفنية لعائلة معالجات Pentium® المدمجة . Intel. مؤرشف من الأصل في 25 يوليو 2003. تم الاسترجاع في 5 يونيو 2022 .
- ^ Krishnaprasad, S. (1 يناير 2004). "برمجة SIMD موضحة باستخدام مجموعة تعليمات MMX من Intel". مجلة علوم الحوسبة في الكليات . 19 (3): 268-277. ISSN 1937-4771.
- ^ Sexton, Michael Justin Allen (21 أبريل 2017). "تاريخ وحدات المعالجة المركزية AMD". Tom's Hardware . تم الاسترجاع في 5 يونيو 2022 .
- ^ Shimpi, Anand Lal (29 أكتوبر 1998). "AMD's K6-2 350: Something to do..." AnandTech . تم الاسترجاع في 5 يونيو 2022 .
- ^ "عمليات MMX من Intel و3DNow! SIMD من AMD". web.mit.edu . تم الاسترجاع في 5 يونيو 2022 .
- ^ "دليل تقنية 3DNow!™" (PDF) . Advanced Micro Devices . تم الاسترجاع في 5 يونيو 2022 .
- ^ "ترقية وإصلاح أجهزة الكمبيوتر الإصدار الحادي والعشرين: ميزات المعالج". Tom's Hardware . 31 أكتوبر 2013 . تم الاسترجاع في 5 يونيو 2022 .
- ^ AMD, Inc. (فبراير 2002). "Appendix E" (PDF) . دليل تحسين كود معالج AMD Athlon™ x86 (الطبعة K). ص. 250. مؤرشف (PDF) من الأصل في 13 أبريل 2017. تم الاسترجاع في 13 أبريل 2017.
يتم استخدام فهرس مكون من 2 بت يتكون من بتات PCD وPWT لإدخال جدول الصفحات لتحديد أحد حقول سجل PAT الأربعة عندما يتم تمكين PAE (امتدادات عنوان الصفحة)، أو عندما لا يصف PDE صفحة كبيرة.
- ^ مانيك دوباش (20 يوليو 2006). "هل ستتخلى إنتل عن إيتانيوم؟". Techworld . مؤرشف من الأصل في 19 فبراير 2011 . تم الاسترجاع في 19 ديسمبر 2010 .
بمجرد أن روجت إنتل لإيتانيوم كبديل لخط إنتاج x86، تم تقليص التوقعات بشأنه بشكل كبير.
- ^ "IBM WebSphere Application Server 64-bit Performance Demystified" (PDF) . IBM Corporation. 6 سبتمبر 2007. ص. 14. مؤرشف (PDF) من الأصل في 25 يناير 2022 . تم الاسترجاع في 9 أبريل 2010 .
تُظهر الأشكال 5 و6 و7 أيضًا أن الإصدار 32 بت من WAS يشغل التطبيقات بكامل أداء الأجهزة الأصلية على منصات POWER وx86-64. على عكس بعض بنيات المعالج 64 بت، لا تحاكي أجهزة POWER وx86-64 وضع 32 بت. لذلك يمكن للتطبيقات التي لا تستفيد من ميزات 64 بت أن تعمل بأداء كامل على الإصدار 32 بت من WebSphere الذي يعمل على منصات 64 بت المذكورة أعلاه.
- ^ "المجلد 2: برمجة النظام" (PDF) . دليل مبرمج بنية AMD64 . شركة AMD. مارس 2024. مؤرشف (PDF) من الأصل في 4 أبريل 2024 . تم الاسترجاع في 24 أبريل 2024 .
- ^ تشارلي ديميرجيان (26 سبتمبر 2003). "لماذا ستستخدم إنتل بريسكوت ملحقات AMD64". ذا إنكوايرر . مؤرشف من الأصل في 10 أكتوبر 2009. تم الاسترجاع في 7 أكتوبر 2009 .
- ^ آدامز، كيث؛ أجيسين، أولي (21-25 أكتوبر 2006). مقارنة بين تقنيات البرمجيات والأجهزة لمحاكاة x86 (PDF) . وقائع المؤتمر الدولي حول الدعم المعماري للغات البرمجة وأنظمة التشغيل، سان خوسيه، كاليفورنيا، الولايات المتحدة الأمريكية، 2006. ACM 1-59593-451-0/06/0010. مؤرشف من الأصل (PDF) في 20 أغسطس 2010. تم الاسترجاع في 22 ديسمبر 2006 .
- ^ Winkel, Sebastian; Agron, Jason. "Advanced Performance Extensions (APX)". Intel . تم الاسترجاع في 22 أكتوبر 2023 .
- ^ روبنسون، دان. "إنتل تضيف تعليمات جديدة لـ x86 وناقلات للشرائح المستقبلية". السجل . تم الاسترجاع في 22 أكتوبر 2023 .
- ^ بونشور، جافين. "Intel تكشف عن مجموعات التعليمات AVX10 وAPX: توحيد AVX-512 للهندسة المعمارية الهجينة". AnandTech . تم الاسترجاع في 22 أكتوبر 2023 .
- ^ ألكورن، بول (24 يوليو 2023). "معالج Intel الجديد AVX10 يجلب قدرات AVX-512 إلى E-Cores". Tom's Hardware . تم الاسترجاع في 22 أكتوبر 2023 .
- ^ شاه، أجام (9 أغسطس 2023). "تغيير الجيل الجديد من Intel على الشريحة APX سيجعل جميع التطبيقات أسرع". The New Stack . تم الاسترجاع في 22 أكتوبر 2023 .
- ^ بايرن، جوزيف. "APX هو أكبر إضافة إلى x86 منذ 64 بت". رؤى تقنية .
- ^ لارابيل، مايكل. "بدء وصول كود Intel APX إلى مُجمِّع GCC". Phoronix . تم الاسترجاع في 22 أكتوبر 2023 .
- ^ "مواصفات بنية Intel® Advanced Performance Extensions (Intel® APX)". Intel . 21 يوليو 2023 . تم الاسترجاع في 22 أكتوبر 2023 .
قراءة إضافية
- روزنبلوم، مندل؛ جارفينكل، تال (مايو 2005). "مراقبو الآلات الافتراضية: التكنولوجيا الحالية والاتجاهات المستقبلية". IEEE Computer . 38 (5): 39–47. CiteSeerX 10.1.1.614.9870 . doi :10.1109/MC.2005.176. S2CID 10385623.
روابط خارجية
- لماذا لا يبدو أن شركة Intel قادرة على التخلص من x86
- مرجع تعليمات x86 32/64 بت
- دليل Intel Intrinsics، أداة مرجعية تفاعلية لتعليمات Intel Intrinsics
- أدلة مطوري البرامج الخاصة بـ Intel® 64 وIA-32 Architectures
- أدلة مطوري AMD، والأدلة، ومستندات ISA، وهندسة AMD64
