x86
تُعرف معمارية x86 (المعروفة أيضًا باسم 80x86 [ 1 ] أو عائلة 8086 ) [ 2 ] بأنها عائلة من معمارية مجموعة تعليمات الحواسيب المعقدة (CISC) [ أ ] ، والتي طورتها شركة إنتل في البداية ، استنادًا إلى المعالج الدقيق 8086 ونسخته ذات ناقل البيانات الخارجي 8 بت، وهو المعالج 8088. طُرح المعالج 8086 في عام 1978 كامتداد كامل 16 بت للمعالج الدقيق 8080 ذي 8 بت من إنتل ، مع استخدام تجزئة الذاكرة كحل لمعالجة مساحة أكبر من الذاكرة التي يمكن تغطيتها بعنوان 16 بت عادي. وقد نشأ مصطلح "x86" لأن أسماء العديد من المعالجات اللاحقة للمعالج 8086 من إنتل تنتهي بالرقم "86"، بما في ذلك 80186 و 80286 و 80386 و 80486 . كانت أسماؤهم بالعامية "186" و "286" و "386" و "486".
لا يُعدّ هذا المصطلح مرادفًا لتوافق أجهزة الكمبيوتر الشخصية من IBM ، إذ يشير ذلك إلى العديد من مكونات أجهزة الكمبيوتر الأخرى . استخدمت الأنظمة المدمجة وأجهزة الكمبيوتر العامة رقائق x86 قبل بدء سوق الأجهزة المتوافقة مع أجهزة الكمبيوتر الشخصية ، [ ب ] بعضها قبل ظهور جهاز الكمبيوتر الشخصي من IBM (1981).
اعتبارًا من يونيو 2022 تعتمد معظم أجهزة الكمبيوتر المكتبية والمحمولة المباعة على معمارية x86، [ 3 ] بينما تهيمن معمارية ARM على فئات الأجهزة المحمولة مثل الهواتف الذكية والأجهزة اللوحية . أما في الفئة العليا، فلا تزال معمارية x86 تهيمن على قطاعات محطات العمل كثيفة الحوسبة والحوسبة السحابية . [ 4 ]
ملخص
في ثمانينيات القرن الماضي وبداية التسعينيات، عندما كان معالجا 8088 و 80286 شائعي الاستخدام، كان مصطلح x86 يشير عادةً إلى أي وحدة معالجة مركزية متوافقة مع معالج 8086. أما اليوم، فيشير مصطلح x86 عادةً إلى التوافق الثنائي مع مجموعة تعليمات 32 بت الخاصة بمعالج 80386. ويعود ذلك إلى أن مجموعة التعليمات هذه أصبحت بمثابة قاسم مشترك أدنى للعديد من أنظمة التشغيل الحديثة، وربما أيضاً لأن المصطلح أصبح شائعاً بعد طرح معالج 80386 في عام 1985.
بعد بضع سنوات من طرح معالجي 8086 و8088، أضافت إنتل بعض التعقيد إلى نظام التسمية والمصطلحات، حيث جُرِّب استخدام مصطلح "iAPX" للإشارة إلى معالج Intel iAPX 432 الطموح، ولكن غير الناجح، على عائلة رقائق 8086 الأكثر نجاحًا، [ c ] كنوع من البادئة على مستوى النظام. وبذلك، وُصِف نظام 8086، بما في ذلك المعالجات المساعدة مثل 8087 و 8089 ، ورقائق النظام الأبسط الخاصة بإنتل، [ d ] بأنه نظام iAPX 86. [ 5 ] [ e ] كما وُجدت مصطلحات أخرى مثل iRMX (لأنظمة التشغيل)، و iSBC (للحواسيب أحادية اللوحة)، و iSBX (للوحات متعددة الوحدات المبنية على معمارية 8086)، جميعها تحت مسمى النظام المصغر 80. [ 6 ] [ 7 ] ومع ذلك، كان نظام التسمية هذا مؤقتًا، إذ استمر لبضع سنوات خلال أوائل الثمانينيات. [ f ]
على الرغم من أن معالج 8086 طُوّر في الأساس للأنظمة المدمجة وأجهزة الكمبيوتر الصغيرة متعددة المستخدمين أو أحادية المستخدم، كرد فعلٍ لنجاح معالج Zilog Z80 المتوافق مع معالج 8080 ، [ 8 ] إلا أن سلسلة معالجات x86 سرعان ما تطورت من حيث الميزات وقدرات المعالجة. واليوم، باتت معالجات x86 منتشرة على نطاق واسع في أجهزة الكمبيوتر الشخصية الثابتة والمحمولة، كما تُستخدم في منصات ألعاب الفيديو ، وأجهزة الكمبيوتر متوسطة المدى ، ومحطات العمل ، والخوادم، ومعظم مجموعات الحواسيب العملاقة الجديدة المدرجة في قائمة TOP500 . ويعتمد عدد كبير من البرامج ، بما في ذلك قائمة واسعة من أنظمة تشغيل x86، على مكونات مادية تعتمد على معالجات x86.
مع ذلك، يُعدّ استخدام معالجات x86 الحديثة نادرًا نسبيًا في الأنظمة المدمجة ؛ إذ تفتقر التطبيقات الصغيرة منخفضة الطاقة (التي تستخدم بطاريات صغيرة) وأسواق المعالجات الدقيقة منخفضة التكلفة، مثل الأجهزة المنزلية والألعاب، إلى وجود ملحوظ لمعالجات x86. [ g ] وتنتشر هنا البنى البسيطة القائمة على 8 و16 بت، بالإضافة إلى بنى RISC الأبسط مثل ARM و RISC-V ، على الرغم من أن معالجات VIA C7 و VIA Nano المتوافقة مع x86 ، ومعالجات Geode من AMD ، و Athlon Neo ، و Intel Atom، تُعدّ أمثلة على تصميمات 32 و 64 بت المستخدمة في بعض القطاعات منخفضة الطاقة والتكلفة نسبيًا.
شهدت السوق عدة محاولات، بما في ذلك من شركة إنتل، لإنهاء هيمنة معمارية x86 "غير الأنيقة" المصممة مباشرةً من أولى المعالجات الدقيقة البسيطة ذات 8 بت. ومن الأمثلة على ذلك معالج iAPX 432 (الذي كان يُعرف في الأصل باسم Intel 8800 [ 9 ] )، ومعالج Intel 960 ، ومعالج Intel 860، ومعمارية Intel/Hewlett-Packard Itanium . ومع ذلك، فإن التطوير المستمر لمعمارية x86 الدقيقة ، ودوائرها، وتصنيع أشباه الموصلات، يجعل من الصعب استبدالها في العديد من القطاعات. ويُعدّ امتداد AMD لمعمارية x86 إلى 64 بت (والذي استجابت له إنتل لاحقًا بتصميم متوافق) [ 10 ] ، وقابلية رقاقات x86 للتوسع في شكل وحدات معالجة مركزية حديثة متعددة النوى، مثالًا على كيفية مقاومة التطوير المستمر لمعايير الصناعة الراسخة للمنافسة من معمارية جديدة كليًا. [ 11 ]
بالنسبة لبعض الميزات المتقدمة، قد يتطلب x86 ترخيصًا من Intel، على الرغم من أن البعض لا يحتاج إليه؛ وقد يتطلب x86-64 ترخيصًا إضافيًا من AMD.
التسلسل الزمني
يسرد الجدول أدناه نماذج المعالجات وسلاسلها التي تُنفذ بنى معمارية مختلفة ضمن عائلة x86، مرتبة ترتيبًا زمنيًا. يتميز كل عنصر من عناصر الجدول بتصميمات معمارية دقيقة للمعالجات مُحسّنة بشكل ملحوظ أو ناجحة تجاريًا.
| عصر | مقدمة | نماذج المعالجات المركزية البارزة | مساحة العنوان | الميزات البارزة | |||
|---|---|---|---|---|---|---|---|
| خطي | افتراضي | بدني | |||||
| x86-16 | الأول | 1978 | إنتل 8086 ، إنتل 8088 (1979) | 16 بت | غير متوفر | 20 بت | 16-bit ISA ، IBM PC (8088)، IBM PC/XT (8088) |
| 1982 | Intel 80186 ، Intel 80188 NEC V20 /V30 (1983) | 8086-2 ISA، مضمن (80186/80188) | |||||
| الثاني | معالج إنتل 80286 والنسخ المقلدة | 30 بت | 24 بت | الوضع المحمي ، IBM PC/XT 286 ، IBM PC/AT | |||
| IA-32 | الثالث | 1985 | إنتل 80386 ، AMD Am386 (1991) | 32 بت | 46 بت | 32 بت | 32 بت ISA ، الترحيل، IBM PS/2 |
| الرابع (التوصيل، التخزين المؤقت) | 1989 | Intel 80486 Cyrix Cx486S ، DLC (1992) AMD Am486 (1993)، Am5x86 (1995) | تقنية خطوط الأنابيب ، وحدة معالجة الفاصلة العائمة x87 مدمجة (486DX)، ذاكرة تخزين مؤقت مدمجة | ||||
| المستوى الخامس ( فوق المقياس ) | 1993 | إنتل بنتيوم ، بنتيوم MMX (1996) | معالج فائق التوازي ، ناقل بيانات 64 بت ، وحدة معالجة الفاصلة العائمة أسرع، MMX (Pentium MMX)، APIC ، SMP | ||||
| 1994 | نيكس جين Nx586 ايه ام دي 5k86 / K5 (1996) | بنية دقيقة منفصلة ( ترجمة μ-op ) | |||||
| 1995 | Cyrix Cx5x86 Cyrix 6x86 /MX (1997)/ MII (1998) | التنفيذ الديناميكي | |||||
| 6th ( PAE ، ترجمة μ-op) | 1995 | معالج إنتل بنتيوم برو | 36 بت ( PAE ) | ترجمة العمليات الدقيقة، تعليمات النقل المشروطة، التنفيذ الديناميكي ، التنفيذ التخميني ، معالج x86 فائق التوازي ثلاثي الاتجاهات، وحدة معالجة الفاصلة العائمة فائقة التوازي، PAE ، ذاكرة تخزين مؤقتة من المستوى الثاني مدمجة | |||
| 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 (نورثوود)، NetBurst، ناقل رباعي الضخ، ذاكرة تخزين مؤقتة للتتبع، مقبس 478 | |||||
| 2003 | إنتل بنتيوم إم، إنتل كور (2006)، بنتيوم ثنائي النواة (2007) | μ-op fusion ، بت XD (Dothan) (Intel Core "Yonah") | |||||
| ترانسميتا إيفيسيون | CMS 6.0.4، VLIW -256، NX بت ، HT | ||||||
| IA-64 | الانتقال إلى 64 بت 1999–2005 | 2001 | إنتل إيتانيوم (2001-2017) | 52 بت | بنية EPIC ذات 64 بت ، وحزمة تعليمات VLIW ذات 128 بت، وواجهة IA-32 مدمجة تُمكّن أنظمة التشغيل x86 وتطبيقات x86 (الأجيال الأولى)، وواجهة IA-32 EL برمجية تُمكّن تطبيقات x86 (Itanium 2)، ويتم إعادة تعيين ملفات سجلات Itanium إلى سجلات x86 | ||
| x86-64 | مُوسّع 64 بت منذ عام 2001 | x86-64 هي بنية x86 الموسعة ذات 64 بت، ويحافظ وضعها القديم على بنية x86 الأصلية دون تغيير. أما البنية الأصلية لمعالجات x86-64، فتقع في وضع 64 بت، وتفتقر إلى نمط الوصول في التجزئة، وتوفر مساحة عناوين خطية تسمح بها البنية 64 بت. كما توفر بنية IA-32 مُعدّلة تقع في وضع التوافق إلى جانب وضع 64 بت لدعم معظم تطبيقات x86. | |||||
| 2003 | أثلون 64 / إف إكس / إكس 2 (2005)، أوبترون سيمبرون (2004) / إكس 2 (2008) توريون 64 (2005) / إكس 2 (2006) | 40 بت | AMD64 (باستثناء بعض معالجات Sempron التي تُعرض كمعالجات x86 خالصة)، وحدة تحكم ذاكرة مدمجة، HyperTransport ، معالج ثنائي النواة مدمج (X2)، AMD-V (Athlon 64 Orleans)، مقبس 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 نانومتر)، وتنفيذ ديناميكي واسع، ودمج العمليات الدقيقة، ودمج العمليات الكلية في وضع 16 بت و32 بت، [ 12 ] [ 13 ] معالج رباعي النواة مدمج (Core 2 Quad)، وذاكرة تخزين مؤقتة ذكية مشتركة من المستوى الثاني (Intel Core 2 "Merom"). | |||||
| 2007 | AMD Phenom / II (2008) أثلون II (2009) توريون II (2009) | 48 بت | معالج رباعي النواة (X4) / ثلاثي النواة (X3) متجانس، SSE4a ، فهرسة المحاكاة الافتراضية السريعة (RVI)، HyperTransport 3، AM2+ أو AM3 | ||||
| 2008 | معالج Intel Core 2 (45 نانومتر) | 40 بت | SSE4.1 | ||||
| إنتل أتوم | معالج جهاز نت بوك أو جهاز ذكي منخفض الطاقة، نواة P54C معاد استخدامها | ||||||
| معالجات Intel Core i7 و Core i5 (2009) و Core i3 (2010) | QuickPath، وGMCH المدمج على الشريحة ( Clarkdale )، وSSE4.2 ، وجداول الصفحات الموسعة (EPT) للمحاكاة الافتراضية، ودمج العمليات الكلية في وضع 64 بت، [ 12 ] [ 13 ] (معالج Intel Xeon "Bloomfield" مع بنية Nehalem الدقيقة) | ||||||
| VIA Nano | التشفير القائم على الأجهزة ؛ إدارة الطاقة التكيفية | ||||||
| 2010 | AMD FX | 48 بت | ثماني النواة، CMT (المعالجة المتعددة المجمعة)، FMA، OpenCL، AM3+ | ||||
| 2011 | AMD APU سلسلة A و E ( Llano ) | 40 بت | وحدة معالجة رسومات مدمجة، PCI Express 2.0، مقبس FM1 | ||||
| AMD APU سلسلة C و E و Z ( بوبكات ) | 36 بت | وحدة معالجة مساعدة للأجهزة الذكية منخفضة الطاقة | |||||
| معالجات Intel Core i3 و Core i5 و Core i7 ( ساندي بريدج / آيفي بريدج ) | اتصال حلقي داخلي، ذاكرة تخزين مؤقتة للعمليات الدقيقة مُفكَّكة التشفير، مقبس LGA 1155 | ||||||
| 2012 | معالجات AMD APU من سلسلة A ( Bulldozer وTrinity وما بعدها) | 48 بت | AVX ، وحدة معالجة مساعدة مبنية على معمارية Bulldozer، مقبس FM2 أو مقبس FM2+ | ||||
| إنتل زيون فاي ( ركن الفرسان ) | معالج مساعد لبطاقة PCI-E الإضافية لنظام XEON، شريحة متعددة النوى، In-order P54C ، وحدة معالجة فيديو واسعة جدًا (512 بت SSE)، تعليمات LRBni (8 × 64 بت). | ||||||
| 2013 | معالج AMD Jaguar (Athlon، Sempron) | معالج النظام على شريحة (SoC) ، ووحدة تحكم الألعاب، ومعالج الأجهزة الذكية منخفضة الطاقة | |||||
| إنتل سيلفرمونت (أتوم، سيليرون، بنتيوم) | 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 | إنتل زيون فاي ( نايتس لاندينغ ) | 48 بت | وحدة معالجة مركزية متعددة النوى ومعالج مساعد لأنظمة Xeon، نواة قائمة على معالج Airmont (Atom) | ||||
| 2016 | ايه ام دي بريستول ريدج (AMD (Pro) A6/A8/A10/A12) | وحدة تحكم متكاملة للوظائف على شريحة واحدة، نظام على شريحة، مقبس AM4 | |||||
| 2017 | سلسلة AMD Ryzen / سلسلة AMD Epyc | تطبيق AMD لتقنية SMT، وهي عبارة عن رقائق متعددة على الشريحة | |||||
| 2017 | تشاوكسين ووداوكو (KX-5000، KH-20000) | أول معمارية x86-64 جديدة كليًا من Zhaoxin | |||||
| 2018–2021 | إنتل ساني كوف ( آيس ليك - يو و واي)، سايبرس كوف ( روكيت ليك ) | 57 بت | أول تطبيق لتقنية AVX-512 من إنتل لقطاع المستهلكين. إضافة تعليمات الشبكة العصبية المتجهة (VNNI). | ||||
| 2019 | ماتيس | 48 بت | تصميم وحدة رقائق متعددة مع رقاقة إدخال/إخراج منفصلة عن رقاقة (رقائق) وحدة المعالجة المركزية، ودعم PCIe Gen4 | ||||
| 2020 | إنتل ويلو كوف ( تايجر ليك -Y/U/H) | 57 بت | بنية الربط البيني الحلقي المزدوج، ومسرع غاوسي عصبي محدث (GNA2)، وتعليمات تقاطع المتجهات AVX-512 الجديدة، وإضافة تقنية فرض تدفق التحكم (CET). | ||||
| 2021 | إنتل ألدر ليك | تصميم هجين يجمع بين الأداء العالي (Golden Cove) وكفاءة الطاقة (Gracemont)، مع دعم PCIe Gen5 وDDR5، ومُسرِّع عصبي غاوسي مُحدَّث (GNA3). لا يدعم AVX-512 رسميًا. | |||||
| 2022 | معالج AMD Vermeer (5800X3D) | 48 بت | تحتوي رقائق X3D على ذاكرة تخزين مؤقتة إضافية من المستوى الثالث (L3) مكدسة رأسياً ثلاثية الأبعاد بسعة 64 ميجابايت (ذاكرة تخزين مؤقتة ثلاثية الأبعاد V-Cache) ليصل إجمالي سعة ذاكرة التخزين المؤقتة من المستوى الثالث (L3) إلى 96 ميجابايت | ||||
| 2022 | AMD رافائيل | أول تطبيق لتقنية AVX-512 من AMD لقطاع المستهلكين، ووحدة معالجة الرسومات المدمجة (iGPU) أصبحت الآن قياسية في معالجات Ryzen التي تحتوي على نواتين حسابيتين من نوع RDNA 2. | |||||
تاريخ
المصممون والمصنعون

في أوقات مختلفة ، بدأت شركات مثل IBM و VIA و NEC و AMD و TI و STM و Fujitsu و OKI و Siemens و Cyrix و Intersil و C &T و NexGen و UMC و DM &P بتصميم أو تصنيع معالجات x86 ( وحدات المعالجة المركزية ) المخصصة لأجهزة الكمبيوتر الشخصية والأنظمة المدمجة. ومن بين الشركات الأخرى التي صممت أو صنعت معالجات x86 أو x87: شركة ITT ، وشركة National Semiconductor ، وشركة ULSI System Technology، وشركة Weitek .
نادرًا ما كانت تطبيقات x86 هذه نسخًا بسيطة، بل غالبًا ما استخدمت بنى دقيقة داخلية مختلفة وحلولًا متباينة على المستويين الإلكتروني والمادي. وبطبيعة الحال، كانت المعالجات الدقيقة المتوافقة الأولى 16 بت، بينما طُوّرت تصميمات 32 بت لاحقًا. أما بالنسبة لسوق الحواسيب الشخصية ، فقد بدأت تظهر بكميات كبيرة حوالي عام 1990 مع معالجات i386 و i486 المتوافقة، والتي غالبًا ما سُمّيت بأسماء مشابهة لرقائق إنتل الأصلية.
بعد معالج i486 ذي البنية المتوازية الكاملة، قدمت إنتل في عام 1993 اسم بنتيوم (الذي، على عكس الأرقام، يمكن تسجيله كعلامة تجارية ) لمجموعة معالجاتها الجديدة فائقة التوازي x86. ومع إضفاء الشرعية القانونية على نظام تسمية x86، اضطر موردو x86 الآخرون إلى اختيار أسماء مختلفة لمنتجاتهم المتوافقة مع x86، واختار البعض في البداية الاستمرار في استخدام تنويعات من نظام الترقيم: تعاونت IBM مع Cyrix لإنتاج معالجات 5x86 ، ثم معالجات 6x86 (M1) و 6x86 MX ( MII ) عالية الكفاءة ، والتي كانت أول معالجات دقيقة x86 تُطبق إعادة تسمية السجلات لتمكين التنفيذ التخميني .
في هذه الأثناء، قامت شركة AMD بتصميم وتصنيع معالج 5k86 ( K5 ) المتقدم ولكن المتأخر، والذي كان يعتمد داخليًا بشكل وثيق على تصميم AMD 29K RISC السابق ؛ على غرار معالج Nx586 من NexGen ، فقد استخدم استراتيجية تقوم فيها مراحل خط الأنابيب المخصصة بفك تشفير تعليمات x86 إلى عمليات دقيقة موحدة وسهلة التعامل ، وهي طريقة ظلت أساسًا لمعظم تصميمات x86 حتى يومنا هذا.
عانت بعض الإصدارات المبكرة من هذه المعالجات الدقيقة من مشاكل في تبديد الحرارة. كما تأثر معالج 6x86 ببعض مشاكل التوافق الطفيفة، وافتقر معالج Nx586 إلى وحدة الفاصلة العائمة (FPU) وتوافق الدبابيس (الذي كان بالغ الأهمية آنذاك)، بينما كان أداء معالج K5 مخيبًا للآمال إلى حد ما عند طرحه (في نهاية المطاف).
ساهم جهل العملاء بالبدائل المتاحة لسلسلة بنتيوم في عدم نجاح هذه التصاميم نسبيًا، على الرغم من أن معالج K5 كان يتمتع بتوافق ممتاز مع بنتيوم، وأن معالج 6x86 كان أسرع بكثير من بنتيوم في معالجة التعليمات البرمجية الصحيحة. [ j ] لاحقًا ، تمكنت AMD من أن تصبح منافسًا قويًا مع مجموعة معالجات K6 ، التي مهدت الطريق لمعالجات أثلون وأوبترون الناجحة للغاية .
كان هناك منافسون آخرون، مثل سينتور تكنولوجي (المعروفة سابقًا باسم IDT )، ورايز تكنولوجي ، وترانسميتا . وقد بيعت معالجات C3 و C7 الموفرة للطاقة من شركة VIA Technologies ، والتي صممتها شركة سينتور ، لسنوات عديدة بعد إطلاقها عام 2005. أما تصميم سينتور لعام 2008، وهو معالج VIA Nano ، فكان أول معالج لها بتقنية التنفيذ الفائق والتنفيذ التخميني . وقد طُرح في نفس الوقت تقريبًا (عام 2008) الذي طرحت فيه إنتل معالج Intel Atom ، وهو أول معالج لها بتقنية التنفيذ المتسلسل بعد معالج P5 Pentium .
أُضيفت العديد من التحسينات والتوسعات إلى مجموعة تعليمات x86 الأصلية على مر السنين، مع الحفاظ على التوافق التام مع الإصدارات السابقة . [ k ] وقد طُبقت هذه البنية في معالجات من شركات مثل إنتل، وسيريكس ، وإيه إم دي ، وفيا تكنولوجيز ، وغيرها الكثير؛ كما توجد تطبيقات مفتوحة المصدر، مثل منصة Zet SoC (غير نشطة حاليًا). [ 14 ] ومع ذلك، من بين هذه الشركات، لا تملك تراخيص بنية x86 إلا إنتل، وإيه إم دي، وفيا تكنولوجيز، ودي إم آند بي إلكترونيكس ، ومن بينها، تُنتج الشركتان الأوليان فقط تصميمات حديثة 64 بت، مما أدى إلى ما يُعرف بـ"احتكار إنتل وإيه إم دي" لمعالجات x86.
مع ذلك، في عام 2014، بدأت شركة تشاوكسين الصينية، ومقرها شنغهاي ، وهي مشروع مشترك بين شركة صينية وشركة VIA Technologies، بتصميم معالجات x86 من VIA لأجهزة الكمبيوتر المكتبية والمحمولة. وكان من المقرر إطلاق أحدث عائلة من معالجات x86 "7" [ 15 ] (مثل KX-7000)، والتي لا تضاهي سرعة معالجات AMD أو Intel، ولكنها لا تزال متطورة للغاية [ 16 ] ، في عام 2021؛ إلا أنه حتى مارس 2022 لم يتم الإطلاق [ 17 ] .
من بنية 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". [ 18 ]
استمرار دعم أوضاع التنفيذ 16 بت و32 بت
في عام 2023، اقترحت شركة إنتل تغييرًا جذريًا في بنية المعالج يُشار إليه باسم X86S (المعروف سابقًا باسم X86-S). يشير حرف S في X86S إلى "التبسيط"، والذي يهدف إلى إزالة دعم أنماط التنفيذ والتعليمات القديمة.
كان المعالج الذي ينفذ هذا الاقتراح سيفتقر إلى دعم الوضع القديم ، وسيبدأ التنفيذ مباشرة في الوضع الطويل ، وسيوفر طريقة للتبديل إلى الترحيل على 5 مستويات دون المرور بالوضع غير المرحل.
كانت البنية الجديدة ستلغي دعم أنظمة التشغيل ذات 16 بت و32 بت. وكان سيتم دعم التعليمات البرمجية ذات 32 بت فقط لتطبيقات المستخدم التي تعمل في الحلقة 3، وستستخدم نفس التجزئة المبسطة المستخدمة في الوضع الطويل. [ 19 ] [ 20 ]
كانت الميزات المحددة التي تمت إزالتها تتضمن ما يلي: [ 21 ]
- بوابات التجزئة
- الحلقة 0 ذات 32 بت
- لن يقوم VT-x بمحاكاة هذه الميزة بعد الآن
- الحلقتان 1 و 2
- الوصول إلى منفذ الإدخال/الإخراج للحلقة 3 ( مدخل / مخرج )؛ انظر الإدخال/الإخراج المُعَيَّن للمنفذ
- منافذ الإدخال/الإخراج ( INS / OUTS )
- الوضع الحقيقي (بما في ذلك الوضع الحقيقي الضخم )، وضع الحماية 16 بت، VM86
- وضع العنونة 16 بت
- لن يوفر VT-x وضعًا غير مقيد بعد الآن
- دعم 8259 ؛ وحدة التحكم المنطقية القابلة للبرمجة الوحيدة المدعومة هي X2APIC
- بعض بتات وضع نظام التشغيل غير المستخدمة
- بروتوكول بدء التشغيل 16 بت و32 بت (SIPI)
تلقى مشروع المواصفات تحديثات متعددة، ووصل إلى الإصدار 1.2 بحلول يونيو 2024. وتم التخلي عنه في نهاية المطاف اعتبارًا من ديسمبر 2024، بعد تشكيل المجموعة الاستشارية لنظام x86 البيئي من قبل إنتل وإيه إم دي. [ 22 ]
الخصائص الأساسية للهندسة المعمارية
تتميز بنية x86 بطول تعليمات متغير، وهي في الأساس تصميم " CISC " مع التركيز على التوافق مع الإصدارات السابقة . مع ذلك، فإن مجموعة التعليمات ليست نموذجية لـ CISC، بل هي في الأساس نسخة موسعة من بنيتي 8008 و 8080 البسيطتين ذواتي الثماني بتات . يتم تفعيل عنونة البايت، وتُخزن الكلمات في الذاكرة بترتيب البايتات الصغير (little-endian) . يُسمح بالوصول إلى عناوين غير محاذية في الذاكرة لجميع التعليمات تقريبًا. يبلغ الحد الأقصى للحجم الأصلي للعمليات الحسابية الصحيحة وعناوين الذاكرة (أو الإزاحات ) 16 أو 32 أو 64 بتًا، وذلك حسب جيل البنية (تتضمن المعالجات الأحدث دعمًا مباشرًا للأعداد الصحيحة الأصغر أيضًا). يمكن معالجة قيم عددية متعددة في وقت واحد عبر وحدة SIMD الموجودة في الأجيال اللاحقة، كما هو موضح أدناه. [ l ] يمكن التعبير عن إزاحات العنونة الفورية والبيانات الفورية ككميات من 8 بتات للحالات أو السياقات الشائعة التي يكون فيها النطاق من -128 إلى 127 كافيًا. لذلك فإن التعليمات النموذجية تتكون من 2 أو 3 بايتات في الطول (على الرغم من أن بعضها أطول بكثير، وبعضها الآخر يتكون من بايت واحد).
لزيادة ترشيد مساحة التخزين، تُعبَّر معظم السجلات برموز العمليات باستخدام ثلاثة أو أربعة بتات، حيث يُستخدم بادئة رمز العملية في وضع 64 بت، بينما لا يمكن أن يكون أكثر من مُعامل واحد للتعليمات موقعًا في الذاكرة. [ m ] ومع ذلك، قد يكون مُعامل الذاكرة هذا هو الوجهة (أو مصدرًا ووجهةً معًا)، بينما يمكن أن يكون المُعامل الآخر، وهو المصدر، إما سجلًا أو قيمة فورية. من بين عوامل أخرى، يُسهم هذا في حجم كود يُضاهي أجهزة 8 بت، ويُمكّن من الاستخدام الفعال لذاكرة التخزين المؤقت للتعليمات. إن العدد القليل نسبيًا من السجلات العامة (الموروثة أيضًا من أسلافها ذات 8 بت) جعل العنونة النسبية للسجلات (باستخدام إزاحات فورية صغيرة) طريقةً مهمةً للوصول إلى المُعاملات، خاصةً على المكدس. لذلك، بُذلت جهود كبيرة لجعل عمليات الوصول هذه بنفس سرعة الوصول إلى السجلات - أي، إنتاجية دورة واحدة للتعليمات، في معظم الحالات التي تكون فيها البيانات المُراد الوصول إليها مُتاحة في ذاكرة التخزين المؤقت ذات المستوى الأعلى.
الفاصلة العائمة و SIMD
طُوِّر معالج 8087 ، وهو معالج مخصص للأعداد العشرية ذو سجلات داخلية 80 بت، خصيصًا للمعالج 8086 الأصلي . ثم تطور هذا المعالج إلى المعالج 80387 الموسع ، وتضمنت المعالجات اللاحقة نسخة متوافقة مع الإصدارات السابقة من هذه الوظيفة على نفس المعالج الرئيسي. إضافةً إلى ذلك، تحتوي تصميمات x86 الحديثة على وحدة SIMD (انظر SSE أدناه) حيث يمكن للتعليمات العمل بالتوازي على كلمة واحدة أو كلمتين من 128 بت، تحتوي كل منهما على عددين أو أربعة أعداد عشرية (بعرض 64 أو 32 بت على التوالي)، أو بدلاً من ذلك، على 2 أو 4 أو 8 أو 16 عددًا صحيحًا (بعرض 64 أو 32 أو 16 أو 8 بت على التوالي).
بفضل وجود سجلات SIMD عريضة، تستطيع معالجات x86 الحالية تحميل أو تخزين ما يصل إلى 128 بت من بيانات الذاكرة في تعليمة واحدة، كما يمكنها إجراء عمليات على مستوى البت (باستثناء العمليات الحسابية الصحيحة ) على كميات كاملة بحجم 128 بت بالتوازي. أضافت معالجات Sandy Bridge من إنتل تعليمات AVX ( امتدادات المتجهات المتقدمة )، مما وسّع سجلات SIMD إلى 256 بت. تستخدم تعليمات Intel Initial Many Core Instructions (تعليمات المعالجة المتعددة الأولية) المُنفذة بواسطة معالجات Knights Corner Xeon Phi ، وتعليمات AVX-512 المُنفذة بواسطة معالجات Knights Landing Xeon Phi ومعالجات Skylake-X ، سجلات SIMD بعرض 512 بت.
التطبيقات الحالية
أثناء التنفيذ ، تستخدم معالجات x86 الحالية بضع خطوات فك تشفير إضافية لتقسيم معظم التعليمات إلى أجزاء أصغر تُسمى العمليات الدقيقة. تُسلّم هذه العمليات بعد ذلك إلى وحدة تحكم تقوم بتخزينها مؤقتًا وجدولتها وفقًا لدلالات x86، بحيث يمكن تنفيذها، جزئيًا بالتوازي، بواسطة إحدى وحدات التنفيذ المتعددة (المتخصصة بدرجات متفاوتة) . تتميز تصميمات x86 الحديثة هذه بتقنية خطوط الأنابيب ، والتوازي الفائق ، وقدرتها على التنفيذ خارج الترتيب والتنفيذ التخميني (عبر توقع التفرعات ، وإعادة تسمية السجلات ، وتوقع تبعية الذاكرة )، مما يعني أنها قد تُنفذ تعليمات x86 متعددة (جزئية أو كاملة) في وقت واحد، وليس بالضرورة بنفس الترتيب الوارد في تدفق التعليمات. [ 23 ] بعض وحدات المعالجة المركزية من إنتل ( مثل Xeon Foster MP ، وبعض معالجات Pentium 4 ، وبعض معالجات Nehalem وما بعدها من معالجات Intel Core ) ووحدات المعالجة المركزية من AMD (بدءًا من Zen ) قادرة أيضًا على تعدد الخيوط المتزامن بخيطين لكل نواة ( يحتوي Xeon Phi على أربعة خيوط لكل نواة). تدعم بعض وحدات المعالجة المركزية من إنتل الذاكرة المعاملاتية ( TSX ).
عند طرح هذه الطريقة في منتصف التسعينيات، كان يُشار إليها أحيانًا باسم "نواة RISC" أو "ترجمة RISC"، لأسباب تسويقية جزئيًا، ولأن هذه العمليات الدقيقة تشترك في بعض الخصائص مع أنواع معينة من تعليمات RISC. مع ذلك، فإن الشفرة الدقيقة التقليدية (المستخدمة منذ الخمسينيات) تشترك أيضًا في العديد من الخصائص نفسها؛ وتختلف الطريقة الجديدة بشكل أساسي في أن الترجمة إلى العمليات الدقيقة تتم الآن بشكل غير متزامن. إن عدم الحاجة إلى مزامنة وحدات التنفيذ مع خطوات فك التشفير يتيح إمكانيات لتحليل أعمق لتدفق الشفرة (المخزنة مؤقتًا)، وبالتالي يسمح باكتشاف العمليات التي يمكن تنفيذها بالتوازي، وتغذية أكثر من وحدة تنفيذ في الوقت نفسه.
كما أن أحدث المعالجات تفعل العكس عند الاقتضاء؛ فهي تجمع بين تسلسلات x86 معينة (مثل المقارنة متبوعة بقفزة شرطية) في عملية دقيقة أكثر تعقيدًا تتناسب مع نموذج التنفيذ بشكل أفضل، وبالتالي يمكن تنفيذها بشكل أسرع أو باستخدام موارد أقل للجهاز.
ثمة طريقة أخرى لتحسين الأداء تتمثل في تخزين العمليات الدقيقة المُفكَّكة مؤقتًا، بحيث يتمكن المعالج من الوصول إليها مباشرةً من ذاكرة تخزين مؤقتة خاصة، بدلًا من إعادة فك تشفيرها. وقد اتبعت إنتل هذا النهج مع ميزة ذاكرة التخزين المؤقت لتتبع التنفيذ في بنية NetBurst الدقيقة (لمعالجات بنتيوم 4)، ولاحقًا في مخزن البيانات المُفكَّكة (لمعالجات كور منذ ساندي بريدج). [ 24 ]
استخدمت شركة ترانسميتا أسلوبًا مختلفًا تمامًا في معالجاتها المتوافقة مع معمارية x86 من طراز Crusoe . فقد اعتمدت على الترجمة الفورية لتحويل تعليمات x86 إلى مجموعة تعليمات VLIW الأصلية للمعالج . وبررت ترانسميتا هذا النهج بأنه يسمح بتصميمات أكثر كفاءة في استهلاك الطاقة، إذ يمكن للمعالج الاستغناء عن خطوة فك التشفير المعقدة التي تتطلبها تطبيقات x86 التقليدية.
أنماط العنونة
يمكن تلخيص أنماط العنونة لأنماط المعالجات ذات 16 بت بالصيغة التالية: [ 25 ] [ 26 ]
يمكن تلخيص أنماط العنونة لأنماط معالج x86 32 بت [ 27 ] بالصيغة التالية: [ 28 ]
يمكن تلخيص أنماط العنونة لوضع المعالج 64 بت بالصيغة التالية: [ 28 ]
يُسهّل استخدام العنونة النسبية للتعليمات في التعليمات البرمجية ذات 64 بت (RIP + الإزاحة، حيث RIP هو سجل مؤشر التعليمات ) تنفيذ التعليمات البرمجية المستقلة عن الموضع (كما هو مستخدم في المكتبات المشتركة في بعض أنظمة التشغيل). [ 29 ]
سجلات x86
16 بت
يحتوي معالجا إنتل 8086 و 8088 الأصليان على أربعة عشر مسجلاً من 16 بت . أربعة منها (AX، BX، CX، DX) مسجلات للأغراض العامة (GPRs)، مع إمكانية استخدام كل منها لغرض إضافي؛ على سبيل المثال، يمكن استخدام 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 ]
يحتوي 808664 كيلوبايت من ثمانية بتات (أو بديلًا لذلك) مساحة إدخال/إخراج تبلغ 32 كيلوبايت (16 بت ) ، و مكدس بحجم 64 كيلوبايت (قطاع واحد) في الذاكرة، مدعوم من قبل عتاد الحاسوب . لا يمكن إضافة سوى الكلمات (بايتين) إلى المكدس. ينمو المكدس باتجاه عناوين ذات أرقام أقل، حيث يشير SS:SP إلى آخر عنصر تمت إضافته. يوجد 256 مقاطعة ، يمكن استدعاؤها بواسطة كل من العتاد والبرمجيات. يمكن للمقاطعات أن تتتالي، مستخدمةً المكدس لتخزين الحالة وعنوان الإرجاع .
إن معالجات 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 بت. [ 7 ] : S-6، S-13..S-15. كما يحتوي على سجل حالة خاص به بعرض 16 بت يمكن الوصول إليه من خلال تعليمة fstsw ، ومن الشائع استخدام بعض بتاته للتفرع عن طريق نسخها إلى سجل FLAGS العادي. [ 31 ]
في معالج إنتل 80286 ، لدعم الوضع المحمي ، تحتوي ثلاثة سجلات خاصة على عناوين جداول الواصفات (GDTR، LDTR، IDTR )، ويُستخدم سجل مهام رابع (TR) لتبديل المهام. أما معالج 80287 فهو المعالج المساعد للفاصلة العائمة لمعالج 80286، ويحتوي على نفس سجلات معالج 8087 وبنفس تنسيقات البيانات.
32 بت

مع ظهور معالج 80386 ذي 32 بت ، تم توسيع سجلات الأغراض العامة، وسجلات الأساس، وسجلات الفهرسة، ومؤشر التعليمات، وسجل FLAGS ، من 16 بت إلى 32 بت، باستثناء سجلات القطاعات . وقد تم تمثيل هذا التوسع بإضافة الحرف " E " (اختصارًا لكلمة "موسع") إلى أسماء السجلات في لغة التجميع 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 متوفرًا بوحدة معالجة الفاصلة العائمة (FPU) مدمجة، وبدونها. جميع طرازات x86 اللاحقة مزودة بوحدة معالجة الفاصلة العائمة مدمجة.
أضاف معالج بنتيوم MMX ثمانية سجلات متجهة للأعداد الصحيحة من نوع MMX ذات 64 بت (من MM0 إلى MM7، والتي تشترك في البتات الدنيا مع مكدس وحدة معالجة الفاصلة العائمة (FPU) بعرض 80 بت). [ 34 ] ومع معالج بنتيوم III ، أضافت إنتل سجل تحكم/حالة لتقنية SIMD المتدفقة (SSE) من نوع MXCSR ذو 32 بت، وثمانية سجلات فاصلة عائمة من نوع SSE ذات 128 بت (من XMM0 إلى XMM7). [ 35 ]
64 بت
بدءًا من معالج AMD Opteron ، وسّعت بنية x86 نطاق السجلات من 32 بت إلى 64 بت، على غرار عملية توسيع نطاق السجلات من 16 بت إلى 32 بت. يُشير البادئة R (اختصارًا لكلمة "register") إلى سجلات 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 على ثمانية سجلات قناع إضافية من نوع K0 إلى K7، كل منها بسعة 64 بت، لاختيار العناصر في سجل متجه. وبناءً على عرض سجل المتجه وعرض العنصر، قد تستخدم تعليمة معينة مجموعة فرعية فقط من بتات سجل القناع.
غاية
على الرغم من أن السجلات الرئيسية (باستثناء مؤشر التعليمات) هي "للأغراض العامة" في إصدارات 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: مؤشر التعليمات. يحتوي على عداد البرنامج ، وهو عنوان التعليمات التالية.
سجلات القطاعات:
- علوم الحاسوب: البرمجة
- DS: البيانات
- SS: Stack
- بيانات إضافية (ES)
- FS: بيانات إضافية رقم 2
- GS: بيانات إضافية رقم 3
لم يتم تصور أي أغراض محددة للسجلات الثمانية الأخرى المتاحة فقط في وضع 64 بت.
تُترجم بعض التعليمات وتُنفذ بكفاءة أكبر عند استخدام هذه السجلات للغرض المُصممة من أجله. على سبيل المثال، استخدام السجل AL كمُجمِّع وإضافة قيمة بايت فورية إليه يُنتج رمز العملية الفعال 04h ، بينما استخدام السجل BL يُنتج رمز العملية العام الأطول 80C3h. مثال آخر هو القسمة والضرب بدقة مزدوجة اللذان يعملان تحديدًا مع السجلين AX وDX.
استفادت المترجمات الحديثة من إدخال بايت sib ( بايت المقياس-الفهرس-الأساس ) الذي يسمح بمعاملة السجلات بشكل موحد ( كما في الحواسيب الصغيرة ). مع ذلك، فإن استخدام بايت sib بشكل عام ليس الأمثل، لأنه ينتج ترميزات أطول من استخدامه بشكل انتقائي عند الضرورة فقط. (تكمن الفائدة الرئيسية لبايت sib في التعامد وأنماط العنونة الأكثر قوة التي يوفرها، مما يُتيح توفير التعليمات واستخدام السجلات لحسابات العناوين مثل تغيير مقياس الفهرس). فقدت بعض التعليمات الخاصة أولويتها في تصميم الأجهزة وأصبحت أبطأ من تسلسلات التعليمات البرمجية الصغيرة المكافئة. ومن الأمثلة البارزة على ذلك تعليمة LODSW.
بناء
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| R?X | |||||||
| السابق | |||||||
| ؟X | |||||||
| ؟ح | ؟ل | ||||||
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| ؟ | |||||||
| ؟د | |||||||
| ؟W | |||||||
| ب | |||||||
| 16 | 8 |
|---|---|
| ؟س | |
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| R?P | |||||||
| إي؟ بي | |||||||
| ؟P | |||||||
| ؟PL | |||||||
ملاحظة: سجلات PL متاحة فقط في وضع 64 بت.
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| رود آيلاند | |||||||
| إي؟ | |||||||
| ؟أنا | |||||||
| ؟IL | |||||||
ملاحظة: سجلات IL متاحة فقط في وضع 64 بت.
| 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
|---|---|---|---|---|---|---|---|
| قطع | |||||||
| EIP | |||||||
| الملكية الفكرية | |||||||
أوضاع التشغيل
الوضع الحقيقي
نمط العنوان الحقيقي، [ 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 بت.
الوضع غير الواقعي
يتم استخدام وضع Unreal بواسطة بعض أنظمة التشغيل ذات 16 بت وبعض برامج تحميل الإقلاع ذات 32 بت .
وضع إدارة النظام
يُستخدم وضع إدارة النظام (SMM) فقط بواسطة البرامج الثابتة للنظام ( BIOS / UEFI )، وليس بواسطة أنظمة التشغيل أو برامج التطبيقات. ويتم تشغيل رمز SMM في ذاكرة SMRAM.
الوضع المحمي
بالإضافة إلى الوضع الحقيقي، يدعم معالج 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 ) .
تُستخدم تقنية الترحيل على نطاق واسع في أنظمة التشغيل الحديثة متعددة المهام. طُوّرت أنظمة لينكس ، و386BSD، وويندوز NT خصيصًا لمعالج 386، كونه أول معالج من معمارية إنتل يدعم الترحيل وإزاحات القطاعات 32 بت. وأصبحت معمارية 386 أساسًا لجميع التطورات اللاحقة في سلسلة x86.
تُشغّل معالجات x86 التي تدعم الوضع المحمي في الوضع الحقيقي لضمان التوافق مع معالجات 8086 الأقدم. عند التشغيل ، يبدأ المعالج بالعمل في الوضع الحقيقي، ثم يبدأ بتنفيذ التعليمات. قد يُخزّن رمز بدء تشغيل نظام التشغيل، الموجود في ذاكرة للقراءة فقط، في ذاكرة القراءة فقط ، مما قد يُفعّل الوضع المحمي لتمكين الترحيل وميزات أخرى. في المقابل، لا يُسمح بإجراء العمليات الحسابية على القطاعات، وهي ممارسة شائعة في الوضع الحقيقي، في الوضع المحمي.
وضع 8086 الافتراضي
يوجد أيضًا نمط تشغيل فرعي في الوضع المحمي 32 بت ( المعروف أيضًا بالوضع المحمي 80386) يُسمى الوضع الافتراضي 8086 ، أو وضع V86 . وهو في الأساس نمط تشغيل هجين خاص يسمح بتشغيل برامج وأنظمة التشغيل في الوضع الحقيقي تحت سيطرة نظام تشغيل مشرف في الوضع المحمي. يتيح هذا مرونة كبيرة في تشغيل برامج الوضع المحمي وبرامج الوضع الحقيقي في آنٍ واحد. هذا النمط متاح حصريًا لإصدار 32 بت من الوضع المحمي؛ وهو غير موجود في إصدار 16 بت من الوضع المحمي، أو في الوضع الطويل.
الوضع الطويل
في منتصف التسعينيات، كان من الواضح أن مساحة عناوين 32 بت في معمارية x86 تحدّ من أدائها في التطبيقات التي تتطلب مجموعات بيانات ضخمة. فمساحة عناوين 32 بت تسمح للمعالج بالوصول المباشر إلى 4 جيجابايت فقط من البيانات، وهو حجم تتجاوزه تطبيقات مثل معالجة الفيديو ومحركات قواعد البيانات . باستخدام عناوين 64 بت، يُمكن الوصول المباشر إلى 16 إكسابايت من البيانات، مع أن معظم معمارية 64 بت لا تدعم الوصول إلى مساحة العناوين الكاملة؛ فعلى سبيل المثال، يدعم معالج AMD64 48 بت فقط من عنوان 64 بت، مقسمة إلى أربعة مستويات ترحيل.
في عام 1999، نشرت شركة AMD مواصفات (شبه) كاملة لامتداد 64 بت لبنية x86، أطلقت عليه اسم x86-64 ، معلنةً نيتها إنتاجه. يُستخدم هذا التصميم حاليًا في جميع معالجات x86 تقريبًا، باستثناء بعض المعالجات المخصصة للأنظمة المدمجة .
أصبحت رقائق x86-64 المنتجة بكميات كبيرة والمخصصة للسوق العامة متاحة بعد أربع سنوات، في عام 2003، بعد أن تم اختبار النماذج الأولية وتطويرها؛ وفي نفس الوقت تقريبًا، تم تغيير الاسم الأولي x86-64 إلى AMD64 . أجبر نجاح سلسلة معالجات AMD64، إلى جانب الاستقبال الفاتر لبنية IA-64، شركة إنتل على إصدار تطبيقها الخاص لمجموعة تعليمات AMD64. كانت إنتل قد دعمت AMD64 سابقًا [ 38 ] ، لكنها فضّلت عدم تفعيله على أمل ألا تطرح AMD معالج AMD64 في السوق قبل أن يتم اعتماد مجموعة تعليمات IA-64 الجديدة من إيتانيوم على نطاق واسع. أطلقت إنتل على تطبيقها لـ AMD64 اسم EM64T ، ثم أعادت تسميته لاحقًا إلى Intel 64 .
في منشوراتها وأسماء إصدارات منتجاتها، تشير مايكروسوفت وسن إلى معالجات AMD64/Intel 64 مجتمعةً باسم x64 في نظامي التشغيل ويندوز وسولاريس . أما توزيعات لينكس فتشير إليها إما باسم "x86-64" أو بصيغتها المعدلة "x86_64" أو "amd64". وتستخدم أنظمة BSD اسم "amd64"، بينما يستخدم نظام macOS اسم "x86_64".
يُعدّ الوضع الطويل في الغالب امتدادًا لمجموعة تعليمات 32 بت، ولكن على عكس الانتقال من 16 إلى 32 بت، فقد تمّ حذف العديد من التعليمات في الوضع 64 بت. لا يؤثر هذا على التوافق الثنائي الفعلي مع الإصدارات السابقة (والذي سيُنفّذ التعليمات البرمجية القديمة في أوضاع أخرى تحتفظ بدعم تلك التعليمات)، ولكنه يُغيّر طريقة عمل المُجمّعات والمُترجمات للتعليمات البرمجية الجديدة.
كانت هذه المرة الأولى التي يتم فيها إطلاق امتداد رئيسي لبنية x86 من قبل شركة مصنعة غير إنتل. وكانت أيضاً المرة الأولى التي تقبل فيها إنتل تقنية من هذا النوع من مصدر خارجي.
الإضافات
x87

كان من الممكن توسيع معالجات 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 إذا احتاج إلى معالجة بسبب خطأ).
PAE
أُضيفت تقنية امتداد العنوان الفيزيائي (PAE) لأول مرة في معالج Intel Pentium Pro ، ثم لاحقًا بواسطة AMD في معالجات Athlon، [ 39 ] للسماح بعنونة ما يصل إلى 64 جيجابايت من ذاكرة الوصول العشوائي (RAM). بدون PAE، عادةً ما تقتصر ذاكرة الوصول العشوائي الفيزيائية في الوضع المحمي 32 بت على 4 جيجابايت . تُعرّف PAE بنية جدول صفحات مختلفة مع إدخالات أوسع ومستوى ثالث، مما يسمح باستخدام بتات إضافية للعنوان الفيزيائي. على الرغم من أن التطبيقات الأولية على معالجات 32 بت كانت تدعم نظريًا ما يصل إلى 64 جيجابايت من ذاكرة الوصول العشوائي، إلا أن قيود مجموعة الشرائح وغيرها من قيود النظام الأساسي غالبًا ما حدّت من الاستخدام الفعلي. تُعرّف معالجات x86-64 هياكل جدول صفحات تسمح نظريًا بما يصل إلى 52 بت من العنوان الفيزيائي، ولكن مرة أخرى، فإن قيود مجموعة الشرائح وغيرها من قيود النظام الأساسي (مثل عدد فتحات DIMM المتاحة، والحد الأقصى لذاكرة الوصول العشوائي الممكنة لكل DIMM) تمنع تحقيق مساحة عنوان فيزيائي كبيرة كهذه. في معالجات x86-64، يجب تفعيل وضع PAE قبل الانتقال إلى الوضع الطويل ، ويجب أن يبقى مفعلاً أثناء تفعيل الوضع الطويل ، لذا لا يوجد وضع "غير PAE" أثناء التواجد في الوضع الطويل. لا يؤثر وضع PAE على عرض العناوين الخطية أو الافتراضية.
MMX
MMX هي مجموعة تعليمات SIMD صممتها شركة إنتل وقدمتها عام 1997 لمعالج Pentium MMX . [ 40 ] طُوّرت مجموعة تعليمات MMX من مفهوم مشابه استُخدم لأول مرة في معالج Intel i860 . وهي مدعومة في معظم معالجات IA-32 اللاحقة من قِبل إنتل وموردين آخرين. تُستخدم MMX عادةً لمعالجة الفيديو (في تطبيقات الوسائط المتعددة، على سبيل المثال). [ 41 ]
أضافت MMX ثمانية سجلات جديدة إلى بنية المعالج، تُعرف من MM0 إلى MM7 (ويُشار إليها فيما يلي بـ MMn ). في الواقع، كانت هذه السجلات الجديدة مجرد أسماء بديلة لسجلات مكدس وحدة المعالجة النقطية x87 الموجودة. وبالتالي، فإن أي تغيير يُجرى على مكدس وحدة المعالجة النقطية سيؤثر أيضًا على سجلات MMX. على عكس مكدس وحدة المعالجة النقطية، كانت سجلات MMn ثابتة وليست نسبية، ولذلك كان الوصول إليها عشوائيًا. لم تعتمد مجموعة التعليمات دلالات المكدس، مما مكّن أنظمة التشغيل الحالية من حفظ حالة السجلات واستعادتها بشكل صحيح عند تعدد المهام دون تعديلات. [ 40 ]
كل سجل من سجلات MMn عبارة عن عدد صحيح 64 بت. مع ذلك، يتمثل أحد المفاهيم الرئيسية لمجموعة تعليمات MMX في مفهوم أنواع البيانات المعبأة ، ما يعني أنه بدلاً من استخدام السجل بأكمله لعدد صحيح واحد 64 بت ( كلمة رباعية )، يمكن استخدامه لاحتواء عددين صحيحين 32 بت ( كلمة مزدوجة )، أو أربعة أعداد صحيحة 16 بت ( كلمة )، أو ثمانية أعداد صحيحة 8 بت ( بايت ). وبما أن سجلات MMn ذات 64 بت في MMX مرتبطة بمكدس وحدة معالجة الفاصلة العائمة (FPU)، وأن كل سجل من سجلات الفاصلة العائمة يبلغ عرضه 80 بت، فإن البتات الـ 16 العليا من سجلات الفاصلة العائمة غير مستخدمة في MMX. يتم ضبط هذه البتات إلى 1 بواسطة أي تعليمة MMX، وهو ما يتوافق مع تمثيل الفاصلة العائمة للقيم غير الرقمية (NaN) أو اللانهاية. [ 40 ]
3DNow!
في عام 1997، طرحت AMD تقنية 3DNow! [ 42 ]. تزامن طرح هذه التقنية مع ازدياد تطبيقات الترفيه ثلاثية الأبعاد ، وصُممت لتحسين أداء معالجة المتجهات في وحدة المعالجة المركزية للتطبيقات كثيفة الرسومات. يستخدم مطورو ألعاب الفيديو ثلاثية الأبعاد ومورّدو أجهزة الرسومات ثلاثية الأبعاد تقنية 3DNow! لتعزيز أدائهم على معالجات AMD من سلسلتي K6 و Athlon . [ 43 ]
صُممت تقنية 3DNow! لتكون التطور الطبيعي لتقنية MMX من الأعداد الصحيحة إلى الأعداد العشرية. ولذلك، فهي تستخدم نفس اصطلاح تسمية السجلات المستخدم في MMX، أي من MM0 إلى MM7. [ 44 ] والفرق الوحيد هو أنه بدلاً من تخزين الأعداد الصحيحة في هذه السجلات، يتم تخزين عددين عشريين أحاديي الدقة في كل سجل. وتكمن ميزة استخدام أسماء بديلة لسجلات وحدة معالجة الأعداد العشرية (FPU) في إمكانية استخدام نفس التعليمات وهياكل البيانات المستخدمة لحفظ حالة سجلات FPU لحفظ حالات سجلات 3DNow!. وبالتالي، لا يلزم إجراء أي تعديلات خاصة على أنظمة التشغيل التي لا تتعرف عليها في الأحوال العادية. [ 45 ]
جنوب شرق
في عام 1999، قدمت إنتل مجموعة تعليمات Streaming SIMD Extensions (SSE) ، ثم تبعتها في عام 2000 بمجموعة SSE2. سمحت الإضافة الأولى بتفريغ عمليات الفاصلة العائمة الأساسية من مكدس x87، بينما جعلت الثانية تقنية MMX شبه منقرضة، وسمحت للمترجمات التقليدية باستهداف التعليمات بكفاءة. وفي عام 2004، مع إصدار Prescott من معالج Pentium 4 ، أضافت SSE3 تعليمات خاصة بالذاكرة ومعالجة الخيوط لتعزيز أداء تقنية HyperThreading من إنتل . حصلت AMD على ترخيص مجموعة تعليمات SSE3، ونفذت معظم تعليمات SSE3 لمعالجاتها من الإصدار E ومعالجات Athlon 64 اللاحقة. لا يدعم معالج Athlon 64 تقنية HyperThreading، ويفتقر إلى تعليمات SSE3 المستخدمة حصريًا لهذه التقنية. [ 46 ]
تخلّت تقنية SSE عن جميع الاتصالات القديمة بمكدس وحدة الفاصلة العائمة (FPU). هذا يعني أيضًا أن مجموعة التعليمات هذه تخلّت عن جميع الاتصالات القديمة بأجيال سابقة من مجموعات تعليمات SIMD مثل MMX. لكن هذا وفّر على المصممين حرية أكبر، إذ سمح لهم باستخدام سجلات أكبر، غير مقيدة بحجم سجلات وحدة الفاصلة العائمة. أنشأ المصممون ثمانية سجلات 128 بت، سُمّيت من XMM0 إلى XMM7. (في AMD64 ، زاد عدد سجلات SSE XMM من 8 إلى 16). مع ذلك، كان الجانب السلبي هو ضرورة إدراك أنظمة التشغيل لهذه المجموعة الجديدة من التعليمات لكي تتمكن من حفظ حالات سجلاتها. لذلك، ابتكرت إنتل نسخة مُعدّلة قليلاً من الوضع المحمي، تُسمى الوضع المُحسّن، والتي تُمكّن من استخدام تعليمات SSE، بينما تبقى مُعطّلة في الوضع المحمي العادي. سيُفعّل نظام التشغيل المُدرك لتقنية SSE الوضع المُحسّن، بينما سيدخل نظام التشغيل غير المُدرك لها في الوضع المحمي التقليدي فقط.
SSE هي مجموعة تعليمات SIMD تعمل فقط على قيم الفاصلة العائمة، مثل 3DNow!. ولكن على عكس 3DNow!، فإنها تقطع جميع الاتصالات القديمة بمكدس وحدة معالجة الفاصلة العائمة (FPU). ولأنها تحتوي على سجلات أكبر من 3DNow!، تستطيع SSE تخزين ضعف عدد الأعداد العشرية أحادية الدقة في سجلاتها. كانت SSE الأصلية تقتصر على الأعداد أحادية الدقة فقط، مثل 3DNow!. وقد أضافت SSE2 إمكانية تخزين الأعداد ثنائية الدقة أيضًا، وهو ما لم يكن متاحًا في 3DNow! لأن حجم العدد ثنائي الدقة هو 64 بت، وهو الحجم الكامل لسجل MMn واحد في 3DNow!. وبحجم 128 بت، تستطيع سجلات XMMn في SSE تخزين عددين عشريين ثنائيي الدقة في سجل واحد. لذا، فإن SSE2 أكثر ملاءمةً للحسابات العلمية من SSE1 أو 3DNow!، اللتين كانتا تقتصران على الدقة الأحادية فقط. لا تُضيف SSE3 أي سجلات إضافية. [ 46 ]
x86-64

بحلول العقد الأول من الألفية الثانية، شكّلت قيود معالجات x86 ذات 32 بت في عنونة الذاكرة عائقًا أمام استخدامها في مجموعات الحوسبة عالية الأداء ومحطات العمل المكتبية القوية. فقد كانت معالجات x86 القديمة ذات 32 بت تتنافس مع معمارية RISC الأكثر تطورًا ذات 64 بت، والتي كانت قادرة على عنونة ذاكرة أكبر بكثير. احتاجت إنتل، ومنظومة x86 بأكملها، إلى عنونة ذاكرة 64 بت لضمان استمرارية x86 في عصر الحوسبة 64 بت، حيث كانت تطبيقات برامج محطات العمل وأجهزة الكمبيوتر المكتبية على وشك الوصول إلى حدود عنونة ذاكرة 32 بت. مع ذلك، رأت إنتل أن الوقت قد حان لاتخاذ خطوة جريئة واستغلال الانتقال إلى أجهزة الكمبيوتر المكتبية ذات 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 بت لكل من التطبيقات عالية الأداء وأجهزة الكمبيوتر المكتبية والمنزلية.
بعد أن رأى السوق يرفض معالج Itanium غير المتوافق ودعم مايكروسوفت لمعالج AMD64، كان على إنتل أن تستجيب وتقدم معالجها الخاص x86-64، وهو Prescott Pentium 4، في يوليو 2004. [ 50 ] ونتيجة لذلك، نادرًا ما يتم استخدام معالج Itanium مع مجموعة تعليمات IA-64 الخاصة به، ولا تزال x86، من خلال تجسيدها x86-64، هي بنية وحدة المعالجة المركزية المهيمنة في أجهزة الكمبيوتر غير المدمجة.
كما قدمت معمارية x86-64 بت NX ، الذي يوفر بعض الحماية ضد الأخطاء الأمنية الناتجة عن تجاوزات المخزن المؤقت .
نتيجةً لمساهمة AMD في تطوير معمارية x86 بتقنية 64 بت، وقبول 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 )، بل وتسيطر على مجموعات الحوسبة الفائقة الكبيرة، مما يترك فعليًا بنية ARM RISC 32 بت و64 بت فقط كمنافس في سوق الهواتف الذكية والأجهزة اللوحية .
AMD-V و VT-x
قبل عام 2005، لم تكن معالجات بنية x86 قادرة على تلبية متطلبات بوبيك وغولدبيرغ للمحاكاة الافتراضية ، وهي مجموعة من الشروط اللازمة للمحاكاة الافتراضية الفعالة التي وضعها جيرالد ج. بوبيك وروبرت ب. غولدبيرغ عام 1974. ومع ذلك، تم تطوير منتجات برامج إدارة المحاكاة الافتراضية 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-NI
تم تصميم امتداد مجموعة تعليمات معيار التشفير المتقدم الجديد (AES-NI) لتسريع عمليات التشفير وفك التشفير باستخدام معيار التشفير المتقدم. وقد اقترحته شركة إنتل لأول مرة في عام 2008.
AVX
ضاعفت تقنية AVX (امتدادات المتجهات المتقدمة) حجم سجلات SSE إلى سجلات YMM بسعة 256 بت. كما قدمت نظام ترميز VEX لاستيعاب السجلات الأكبر، بالإضافة إلى بعض التعليمات لتبديل العناصر. لم تُضف AVX2 سجلات إضافية، ولكنها تميزت بإضافة تعليمات للإخفاء والتجميع والخلط .
يتميز معيار AVX-512 بتوسيع إضافي ليصل إلى 32 سجل ZMM سعة 512 بت، بالإضافة إلى نظام EVEX جديد. وعلى عكس الإصدارات السابقة التي كانت تعتمد على امتداد متكامل، ينقسم هذا المعيار إلى مجموعات فرعية متعددة يمكن لنماذج محددة من وحدات المعالجة المركزية اختيار تطبيقها.
APX
تُعدّ امتدادات الأداء المتقدمة (APX) امتداداتٍ تُضاعف عدد المسجلات العامة من 16 إلى 32، وتُضيف ميزاتٍ جديدة لتحسين الأداء العام. [ 52 ] [ 53 ] [ 54 ] [ 55 ] وقد وُصفت هذه الامتدادات بأنها "جيلية" [ 56 ] و"أكبر إضافة لمعالجات x86 منذ 64 بت". [ 57 ] وقد ساهمت إنتل بدعم APX في مجموعة مُترجمات GNU (GCC) 14. [ 58 ] كما أضافت مايكروسوفت فيجوال ستوديو 2026 دعم APX. اعتبارًا من يونيو 2025 من المقرر أن يكون الجيل الأول من الرقائق التي تدعم APX هو Diamond Rapids . [ 59 ]
وفقًا لمواصفات بنية 2023، [ 60 ] فإن الميزات الرئيسية لـ APX هي:
- 16 سجلًا إضافيًا للأغراض العامة R16-R31، تسمى سجلات الأغراض العامة الموسعة (EGPRs).
- صيغ تعليمات ذات ثلاثة معاملات للعديد من تعليمات الأعداد الصحيحة
- تعليمات شرطية جديدة لعمليات التحميل والتخزين والمقارنة مع التعليمات الشائعة التي لا تُعدّل العلامات.
- عمليات حفظ/استعادة السجلات المحسّنة
- تعليمة قفز مباشر مطلقة 64 بت؛ لا يمكن لأنظمة التشغيل 32 بت والتطبيقات 32 بت استدعاء APX
يتم ترميز سجلات GPR الموسعة للتعليمات العامة باستخدام بادئة REX2 ثنائية البايت ، بينما يتم ترميز التعليمات الجديدة والمعاملات الموسعة لتعليمات AVX / AVX2 / AVX-512 الحالية باستخدام بادئة EVEX الموسعة التي تحتوي على أربعة متغيرات تستخدم لمجموعات مختلفة من التعليمات.
مجموعة x86 الاستشارية للنظام البيئي
في أكتوبر 2024، تم تشكيل المجموعة الاستشارية لنظام x86 البيئي [ 61 ] بشكل مشترك من قبل شركتي إنتل وإيه إم دي. وشملت الأهداف تحسين اتساق البرامج وتوحيد واجهات وميزات x86 [ 62 ].
تضمنت الإنجازات التقنية الرئيسية ما يلي: FRED (العودة المرنة وتسليم الأحداث)، وهو نموذج مقاطعة مُحدَّث مصمم لتقليل زمن الاستجابة، وChkTag (وسم ذاكرة x86) لمكافحة ثغرات أمان الذاكرة، وACE (امتدادات المصفوفات المتقدمة لضرب المصفوفات) لتوحيد الإمكانيات وتجارب المطورين عبر الأجهزة. وقد تم ترسيخ AVX10 كجيل جديد من مجموعة تعليمات المتجهات والأغراض العامة.
انظر أيضاً
- مقارنة بين بنى مجموعات التعليمات
- اصطلاحات استدعاء x86
- قوائم تعليمات x86
- معرف وحدة المعالجة المركزية
- 680x0 ، بنية منافسة في حقبة 16 بت وأوائل حقبة 32 بت
- باور بي سي ، بنية منافسة في حقبتي 32 بت و64 بت اللاحقتين
- قائمة معالجات AMD
- قائمة معالجات إنتل
- قائمة ببنى المعالجات الدقيقة من إنتل
- قائمة أنوية معالجات VIA الدقيقة
- قائمة مصنعي معالجات x86
- طلب مقاطعة
- ثغرات أمنية في وحدة المعالجة المركزية ناتجة عن تنفيذ التخمين
- نموذج تيك توك
- الأسلاك القديمة الافتراضية
ملحوظات
- ↑ على عكس البنية الدقيقة (والتنفيذ الإلكتروني والمادي المحدد) المستخدمة لتصميم معالج دقيق معين.
- ↑ جهاز الكمبيوتر المحمول GRID Compass ، على سبيل المثال.
- ↑ بما في ذلك المعالجات 8088 و 80186 و 80188 و 80286 .
- ↑ احتوى هذا النظام أيضًا على المزيج المعتاد منمكونات الدعم القياسية لسلسلة 7400 ، بما في ذلك أجهزة الإرسال المتعدد ، والمخازن المؤقتة، ومنطق الربط .
- ↑ المعنى الحقيقي لـ iAPX هو بنية الأداء المتقدمة من إنتل ، أو في بعض الأحيان بنية المعالج المتقدمة من إنتل .
- ↑ أواخر عام 1981 إلى أوائل عام 1984، تقريبًا
- ↑ يضم سوق المعالجات المدمجة أكثر من 25 بنية مختلفة ، والتي، نظرًا لحساسية السعر، وانخفاض الطاقة، ومتطلبات بساطة الأجهزة، تفوق عدد معالجات x86.
- ↑ كما وفرت أجهزة NEC V20 و V30 مجموعة تعليمات 8080 القديمة، مما يسمح لأجهزة الكمبيوتر المجهزة بهذه المعالجات الدقيقة بتشغيل تطبيقات CP/M بكامل سرعتها (أي دون الحاجة إلى محاكاة 8080 بواسطة البرامج).
- ↑ قامت الشركات التي لا تمتلك مصانع تصنيع الرقائق بتصميم الشريحة ثم تعاقدت مع شركة أخرى لتصنيعها، بينما قامت الشركات التي تمتلك مصانع تصنيع الرقائق بتصميمها وتصنيعها بنفسها. بدأت بعض الشركات كمصنّعين لمصانع تصنيع الرقائق ثم أصبحت لاحقًا مصممين لها، ومن الأمثلة على ذلك شركة AMD.
- ↑ ومع ذلك، كان لديه وحدة معالجة نقطة عائمة أبطأ، وهو أمر مثير للسخرية بعض الشيء لأن شركة Cyrix بدأت كمصمم لوحدات النقطة العائمة السريعة لمعالجات x86.
- تخلّت شركة إنتل عن نظام تسمية "x86" مع معالج بنتيوم P5 عام 1993 (لأن الأرقام لا يمكن تسجيلها كعلامات تجارية). مع ذلك، كان مصطلح x86 شائعًا بالفعل بين الفنيين ومطوري البرامج الحاسوبية وغيرهم.
- ↑ تم طرح المعالجات الدقيقة 16 بت و 32 بت خلال عامي 1978 و 1985 على التوالي؛ وتم الإعلان عن خطط 64 بت خلال عام 1999 وتم طرحها تدريجياً من عام 2003 فصاعدًا.
- ↑ قد تستخدمبعض تصميمات "CISC"، مثل PDP-11 ، اثنين.
- ↑ ذلك لأن العمليات الحسابية للأعداد الصحيحة تولد حملاً بين البتات المتتالية (على عكس عمليات البت البسيطة).
- ↑ من بين سجلات MSR ذات الأهمية الخاصة، نجد SYSENTER_EIP_MSR وSYSENTER_ESP_MSR، اللذان تم تقديمهما في معالج Pentium® II، حيث يخزنان عنوان معالج خدمة النظام في وضع النواة ومؤشر مكدس النواة المقابل. يتم تهيئة SYSENTER_EIP_MSR وSYSENTER_ESP_MSR أثناء بدء تشغيل النظام، وتستخدمهما تعليمات SYSENTER (في معالجات Intel) أو SYSCALL (في معالجات AMD) لتحقيق استدعاءات نظام سريعة، أسرع بثلاث مرات تقريبًا من طريقة المقاطعة البرمجية المستخدمة سابقًا.
- بما أن العنوان المُجزأ هو مجموع مقطع 16 بت مضروبًا في 16 وإزاحة 16 بت، فإن أقصى عنوان هو 1,114,095 (10FFEF بالنظام الست عشري)، مما يُتيح عنونة 1,114,096 بايت = 1 ميجابايت + 65,520 بايت. قبل معالج 80286، كانت وحدات المعالجة المركزية x86 تحتوي على 20 خط عنوان فعلي فقط (إشارات بت العنوان)، لذا تم حذف البت 20 من العنوان، وكانت العناوين التي تتجاوز 1 ميجابايت عبارة عن نسخ طبق الأصل من الحد الأدنى لمساحة العنوان (بدءًا من العنوان صفر). منذ معالج 80286، تحتوي جميع وحدات المعالجة المركزية x86 على 24 خط عنوان فعلي على الأقل، ويتم إخراج البت 20 من العنوان المحسوب إلى ناقل العنوان في الوضع الحقيقي، مما يسمح لوحدة المعالجة المركزية بعنونة كامل 1,114,096 بايت التي يمكن الوصول إليها باستخدام عنوان مُجزأ x86. في منصة IBM PC الشهيرة، تمت إضافة أجهزة قابلة للتبديل لتعطيل بت العنوان 21 إلى الأجهزة المزودة بمعالج 80286 أو أحدث بحيث يمكن تشغيل جميع البرامج المصممة للنماذج القائمة على 8088/8086، بينما يمكن للبرامج الأحدث الاستفادة من الذاكرة "العالية" في الوضع الحقيقي ومساحة العناوين الكاملة البالغة 16 ميجابايت أو أكبر في الوضع المحمي - انظر بوابة A20.
- ↑ يلزم أيضًا سجل وصف إضافي في أعلى الجدول، لأن الجدول يبدأ من الصفر ولكن الحد الأدنى لفهرس الوصف الذي يمكن تحميله في سجل المقطع هو 1؛ القيمة 0 محجوزة لتمثيل سجل مقطع لا يشير إلى أي مقطع.
مراجع
- ↑ راو، بي في إس (2009). هندسة نظم الحاسوب . برنتيس هول الهند. ص 402 (القسم 19.1، عائلة معالجات x86 ). ISBN 978-81-203-3594-3.
- ↑ ماتري، سوابنيل تشاندراكانت (2012). المعالجات الدقيقة وتقنيات الربط البيني: لطلاب هندسة الحاسوب، الفصل الدراسي الثاني، جامعة بونا . دار جايكو للنشر. ISBN 978-81-8495-325-1.
- ↑ ألكورن، بول (9 فبراير 2022). "شركة AMD تسجل رقماً قياسياً جديداً في حصة سوق المعالجات المركزية بينما تكتسب شركة Intel مكاسب في أجهزة الكمبيوتر المكتبية والمحمولة" . موقع Tom's Hardware .
- ↑ براندون، جوناثان (15 أبريل 2015). "الحوسبة السحابية ما بعد x86: كيف تعود البنى القديمة إلى الظهور" . آي كلاود بي إي . أخبار الحوسبة السحابية للأعمال. مؤرشف من الأصل في 19 أغسطس 2021. تم الاطلاع عليه في 23 نوفمبر 2020. على الرغم من هيمنة x86 في مراكز البيانات ،
يصعب تجاهل الضجة التي أثارها الموردون خلال العامين الماضيين حول بنى غير x86 مثل ARM...
- ↑ دفوراك، جون سي. "ماذا حدث لمعالج إنتل iAPX432؟" . Dvorak.org. مؤرشف من الأصل في 25 نوفمبر 2017. تم الاطلاع عليه في 18 أبريل 2014 .
- ↑ مرجع مبرمج iAPX 286 (ملف PDF) . إنتل. 1983. مؤرشف (ملف PDF) من الأصل في 28 أغسطس 2017. تم الاطلاع عليه في 28 أغسطس 2017 .
- دليل مستخدم iAPX 86، 88 ( ملف PDF) . إنتل. أغسطس 1981. مؤرشف (ملف PDF) من الأصل بتاريخ 28 أغسطس 2017. تم الاطلاع عليه بتاريخ 28 أغسطس 2017 .
- ↑ إدواردز، بنج (16 يونيو 2008). "ميلاد معيار: معالج إنتل 8086" . بي سي وورلد . مؤرشف من الأصل في 26 سبتمبر 2010. تم الاطلاع عليه في 14 سبتمبر 2014 .
- ↑ ستانلي مازور (يناير - مارس 2010). "معالج إنتل 8086". حوليات IEEE لتاريخ الحوسبة . 32 (1): 75-79 . Bibcode : 2010IAHC...32a..75M . doi : 10.1109/MAHC.2010.22 . S2CID 16451604 .
- ↑ «شركة AMD تكشف عن تقنيات جديدة في منتدى المعالجات الدقيقة» (بيان صحفي). AMD . 5 أكتوبر 1999. مؤرشف من الأصل في 2 مارس 2000.
"مرارًا وتكرارًا، نظر مهندسو المعالجات إلى بنية x86 غير الأنيقة وأعلنوا أنه لا يمكن توسيعها لاستيعاب أحدث الابتكارات"، كما قال ناثان بروكوود، كبير المحللين في شركة Insight 64.
- ↑ بيرت، جيف (5 أبريل 2010). "مايكروسوفت ستنهي دعم معالجات إنتل إيتانيوم" . إي ويك . تم الاطلاع عليه في 2 يونيو 2022 .
- 1 2 "دليل مرجعي لتحسين معمارية Intel 64 و IA-32" (ملف PDF) . Intel. سبتمبر 2019. 3.4.2.2 التحسين لدمج الماكرو. مؤرشف (ملف PDF) من الأصل في 14 فبراير 2020. تم الاطلاع عليه في 7 مارس 2020 .
- 1 2 فوغ، أغنر. "البنية الدقيقة لوحدات المعالجة المركزية من إنتل، وإيه إم دي، وفيا" (ملف 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 .
- ↑ "تشاوكسين تُجهّز دعم نواة لينكس لمعالجات سنتور من السلسلة 7" . Phoronix.com . مؤرشف من الأصل في 5 أبريل 2022. تم الاطلاع عليه في 5 أبريل 2022 .
- ↑ "شركة تشاوكسين تستهدف إطلاق معالجاتها x86 بتقنية 7 نانومتر في عام 2021 - أخبار المعالجات - HEXUS.net" . m.hexus.net . مؤرشف من الأصل في 3 يوليو 2022. تم الاطلاع عليه في 5 أبريل 2022 .
- ↑ "Zhaoxin يضيف أخيرًا ميزة "Lujiazui" لضبط معالجات x86_64 إلى GCC" . Phoronix.com . تم الاطلاع عليه بتاريخ 5 أبريل 2022 .
- ↑ "اعتبارات الإعداد والتثبيت لأجهزة الكمبيوتر التي تعمل بنظام التشغيل Windows x64" . مؤرشف من الأصل في 11 سبتمبر 2014. تم الاطلاع عليه في 14 سبتمبر 2014 .
- ↑ "تصور بنية إنتل مبسطة" . إنتل . مؤرشف من الأصل في 20 ديسمبر 2024. تم الاطلاع عليه في 20 مايو 2023 .
- ↑ لارابيل، مايكل (20 مايو 2023). "إنتل تنشر مواصفات "X86-S" لبنية 64 بت فقط" . فورونيكس . تم الاطلاع عليه في 20 مايو 2023 .
- ↑ "تصور بنية إنتل مبسطة للمستقبل" . إنتل . مؤرشف من الأصل في 20 ديسمبر 2024. تم الاطلاع عليه في 20 مايو 2023 .
- ↑ بول ألكورن (19 ديسمبر 2024). "إنتل تُنهي مبادرة x86S - مسعاها الأحادي لتقليص حجم مجموعة تعليمات x86 يصل إلى نهايته" . تومز هاردوير . مؤرشف من الأصل في 20 ديسمبر 2024. تم الاطلاع عليه في 20 ديسمبر 2024 .
- ↑ "المعالجات - ما هي طريقة العنونة التي تستخدمها معالجات إنتل؟" . مؤرشف من الأصل في 11 سبتمبر 2014. تم الاطلاع عليه في 14 سبتمبر 2014 .
- ↑ "مفاتيح DSB" . مضخم الصوت Intel VTune 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 .
- 1 2 دليل مطوري البرامج لبنيتي Intel® 64 و IA-32، المجلد 1: البنية الأساسية . شركة Intel. مارس 2018. الفصل 3. مؤرشف من الأصل في 26 يناير 2012. تم الاطلاع عليه في 19 مارس 2014 .
- ↑ أندريسي، دينيس (2019). "6.5 تأثير إعدادات المُصرّف على التفكيك". التحليل الثنائي العملي: بناء أدوات لينكس الخاصة بك لتحليل وتفكيك وتجهيز الملفات الثنائية . سان فرانسيسكو، كاليفورنيا: دار نشر نو ستارش. رقم ISBN 978-1-59327-913-4. OCLC 1050453850 .
- ↑ "دليل لغة التجميع x86" . Cs.virginia.edu. 11 سبتمبر 2013. مؤرشف من الأصل في 24 مارس 2020. تم الاطلاع عليه في 6 فبراير 2014 .
- ↑ "FSTSW/FNSTSW — تخزين كلمة حالة وحدة الفاصلة العائمة x87" . مؤرشف من الأصل في 25 يناير 2022. تم الاطلاع عليه في 15 يناير 2020.
يُستخدم شكل FNSTSW AX من التعليمات بشكل أساسي في التفرع الشرطي
... - ↑ دليل مطوري البرامج لبنيتي Intel 64 و IA-32، المجلد 1: البنية الأساسية (ملف PDF) . Intel. مارس 2013. الفصل 8. مؤرشف (ملف PDF) من الأصل في 2 أبريل 2013. تم الاطلاع عليه في 23 أبريل 2013 .
- ↑ "عائلة معالجات إنتل 80287" . موقع CPU-world . مؤرشف من الأصل بتاريخ 9 أغسطس 2016. تم الاطلاع عليه بتاريخ 21 يوليو 2016 .
- ↑ دليل مطوري البرامج لبنيتي Intel 64 و IA-32، المجلد 1: البنية الأساسية (ملف PDF) . Intel. مارس 2013. الفصل 9. مؤرشف (ملف PDF) من الأصل في 2 أبريل 2013. تم الاطلاع عليه في 23 أبريل 2013 .
- ↑ دليل مطوري البرامج لبنيتي Intel 64 و IA-32، المجلد 1: البنية الأساسية (ملف PDF) . Intel. مارس 2013. الفصل 10. مؤرشف (ملف PDF) من الأصل في 2 أبريل 2013. تم الاطلاع عليه في 23 أبريل 2013 .
- ↑ مرجع مبرمج iAPX 286 (ملف PDF) . إنتل. 1983. القسم 1.2، "أوضاع التشغيل". مؤرشف (ملف PDF) من الأصل بتاريخ 28 أغسطس 2017. تم الاطلاع عليه بتاريخ 27 يناير 2014 .
- ↑ مرجع مبرمج iAPX 286 (ملف PDF) . إنتل. 1983. الفصل 6، "إدارة الذاكرة والعنونة الافتراضية". مؤرشف (ملف PDF) من الأصل في 28 أغسطس 2017. تم الاطلاع عليه في 27 يناير 2014 .
- ↑ "تقنية يامهيل من إنتل: متوافقة مع x86-64 | Geek.com" . تم الاطلاع عليه بتاريخ 18 يوليو 2008 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ شركة AMD (فبراير 2002). "الملحق هـ" (ملف PDF) . دليل تحسين كود معالج AMD Athlon™ x86 (الإصدار K ). صفحة 250. مؤرشف (ملف PDF) من الأصل في 13 أبريل 2017. تم الاطلاع عليه في 13 أبريل 2017. يُستخدم فهرس ثنائي البت ،
يتكون من بتات PCD وPWT من مدخل جدول الصفحات، لتحديد أحد حقول سجل PAT الأربعة عند تمكين PAE (امتدادات عناوين الصفحات)، أو عندما لا يصف PDE صفحة كبيرة.
- ١ ٢ ٣ "البرمجة باستخدام تقنية Intel MMX™" . مركز المعلومات التقنية لعائلة معالجات Pentium® المدمجة . Intel. مؤرشف من الأصل في ٢٥ يوليو ٢٠٠٣. تم الاطلاع عليه في ٥ يونيو ٢٠٢٢ .
- ↑ كريشنا براساد، س. (1 يناير 2004). "برمجة SIMD موضحة باستخدام مجموعة تعليمات MMX من إنتل" . مجلة علوم الحاسوب في الكليات . 19 (3): 268-277 . ISSN 1937-4771 .
- ↑ سيكستون، مايكل جاستن ألين (21 أبريل 2017). "تاريخ معالجات AMD" . موقع Tom's Hardware . مؤرشف من الأصل في 5 يونيو 2022. تم الاطلاع عليه في 5 يونيو 2022 .
- ↑ شيمبي، أناند لال (29 أكتوبر 1998). "معالج AMD K6-2 350: شيء يستحق التجربة..." موقع AnandTech . مؤرشف من الأصل في 14 يوليو 2012. تم الاطلاع عليه في 5 يونيو 2022 .
- ↑ "عمليات SIMD بتقنية MMX من إنتل وتقنية 3DNow! من AMD" . web.mit.edu . مؤرشف من الأصل في 27 يوليو 2022. تم الاطلاع عليه في 5 يونيو 2022 .
- ↑ "دليل تقنية 3DNow!™" (ملف PDF) . شركة أدفانسد مايكرو ديفايسز. مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 9 أكتوبر 2018. تم الاطلاع عليه بتاريخ 5 يونيو 2022 .
- 1 2 "ترقية وإصلاح أجهزة الكمبيوتر الشخصية، الإصدار 21: ميزات المعالج" . موقع Tom's Hardware . 31 أكتوبر 2013. تم الاطلاع عليه في 5 يونيو 2022 .
- ↑ مانيك دوباش (20 يوليو 2006). "هل ستتخلى إنتل عن معالج إيتانيوم؟" . تيك وورلد . مؤرشف من الأصل في 19 فبراير 2011. تم الاطلاع عليه في 19 ديسمبر 2010.
بعد أن روجت له إنتل كبديل لخط إنتاج x86، انخفضت التوقعات بشأن إيتانيوم بشكل كبير.
- ↑ "تبسيط أداء خادم تطبيقات IBM WebSphere 64 بت" ( ملف PDF) . شركة IBM. 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 .
- ↑ وينكل، سيباستيان؛ أغرون، جيسون. "امتدادات الأداء المتقدمة (APX)" . إنتل . تم الاسترجاع في 22 أكتوبر 2023 .
- ↑ روبنسون، دان. "إنتل تضيف تعليمات x86 وتعليمات متجهة جديدة للرقائق المستقبلية" . ذا ريجستر . مؤرشف من الأصل في 2 أكتوبر 2023. تم الاسترجاع في 22 أكتوبر 2023 .
- ↑ بونشور، جافين. "إنتل تكشف النقاب عن مجموعات تعليمات AVX10 وAPX: توحيد AVX-512 للهياكل الهجينة" . أناند تك . تم الاسترجاع في 22 أكتوبر 2023 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ ألكورن، بول (24 يوليو 2023). "تقنية AVX10 الجديدة من إنتل تُضيف إمكانيات AVX-512 إلى معالجات E-Core" . موقع Tom's Hardware . مؤرشف من الأصل في 25 ديسمبر 2024. تم الاطلاع عليه في 22 أكتوبر 2023 .
- ↑ شاه، أغام (9 أغسطس 2023). "تغيير الجيل الجديد في شريحة إنتل APX سيجعل جميع التطبيقات أسرع" . ذا نيو ستاك . تم الاطلاع عليه في 22 أكتوبر 2023 .
- ↑ بيرن، جوزيف. "APX أكبر إضافة إلى معالجات x86 منذ 64 بت" . رؤى تقنية . مؤرشف من الأصل في 28 نوفمبر 2023. تم الاطلاع عليه في 22 أكتوبر 2023 .
- ↑ لارابيل، مايكل. "بدء دمج كود Intel APX في مُصرّف GCC" . فورونيكس . مؤرشف من الأصل في 22 أكتوبر 2023. تم الاطلاع عليه في 22 أكتوبر 2023 .
- ↑ "تقديم الجيل التالي من تحسينات أداء وحدة المعالجة المركزية من إنتل® إلى GCC* 15" . إنتل . 15 يونيو 2025.
- ↑ "مواصفات بنية Intel® Advanced Performance Extensions (Intel® APX)" . Intel . 21 يوليو 2023. تم الاطلاع عليه في 22 أكتوبر 2023 .
- ↑ موقع مجموعة x86 الاستشارية للنظام البيئي
- ↑ "إنتل و AMD تُشكّلان مجموعة استشارية لنظام x86 البيئي لتسريع الابتكار للمطورين والعملاء" . شركة إنتل . 15 أكتوبر 2024. تم الاطلاع عليه في 12 يونيو 2026 .
للمزيد من القراءة
- روزنبلوم، ميندل؛ غارفينكل، تال (مايو 2005). "مراقبة الآلات الافتراضية: التكنولوجيا الحالية والاتجاهات المستقبلية". مجلة IEEE Computer . 38 (5): 39-47 . Bibcode : 2005Compr..38e..39R . CiteSeerX 10.1.1.614.9870 . doi : 10.1109/MC.2005.176 . S2CID 10385623 .
روابط خارجية
- مجموعة استشارية لنظام x86 البيئي ، وهي مجموعة مشتركة بين AMD و Intel
- لماذا يبدو أن شركة إنتل عاجزة عن التخلي عن معالجات x86؟
- مرجع تعليمات x86 32/64 بت
- دليل Intel Intrinsic ، أداة مرجعية تفاعلية لتعليمات Intel Intrinsic
- أدلة مطوري البرامج لأنظمة Intel® 64 و IA-32 المعمارية
- أدلة المطورين، والكتيبات، ووثائق ISA من AMD، بنية AMD64
- مقدمات متعلقة بالحاسوب في عام 1978
- منتجات إنتل
- أجهزة الكمبيوتر الشخصية المتوافقة مع IBM
- معمارية X86
