ISA لا يغفر الأخطاء

- X86 هو سوء تفاهم تاريخي ، ولم يفقد السيد 80 عامًا حماسة الجدلية.
أجبتها ببطء: "في الواقع ، تمتلك 95٪ من سوق الخوادم". لم أكن أريد أن أجادل في موضوع تم اختراقه مائة مرة
- وأنا مرتبك بالفعل في هذه البادئات ، - لم يتراجع الأكاديمي. - 15 بايت لكل تعليمة ، هذا لا يمكن تصوره!
- حسنا ، ليس الثلج ، بالطبع. لكن من الأفضل؟
- نعم ، أي شخص ، على الأقل ARM-a.
"ما زلت لا أفهم." الإضافات مع المضاعفات يجب أن تكون؟
- ينبغي.
- والتحولات مع العمليات المنطقية؟
- نعم.
- والتنزيلات مع حفظ أيضا. ما الفرق في كيفية تسميتها وترميزها؟

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

صورة

بالنسبة إلى X86 ، لم يكن الأمر ممكنًا لمدة أسبوع ، أو لمدة أسبوعين ، أو لمدة شهر ... حتى بالنسبة للمجموعة الأساسية.

الفرق هنا ليس فقط في RISC (حوسبة مجموعة التعليمات المخفضة) لـ ARM و CISC (مجموعة التعليمات المعقدة) لـ X86. الفرق هو في طريق التطور التاريخي. منذ أكثر من 40 عامًا ، وبدأ كل شيء في عام 1978 ، كانت X86 ISA (بنية مجموعة التعليمات) عبارة عن مجموعة مدمجة من الأوامر ذات المنطق الداخلي الخاص بها. ولكن مر الوقت ، وزادت سعة الحافلة ، وتوسعت السجلات (بما في ذلك SIMD) ، وكان عدد الفرق يتزايد باستمرار. ثم قام شخص بمحاولة مثيرة للاهتمام لحساب عدد التعليمات في X86. ما إذا كان كسولًا جدًا ولا يمكنه فتح الدليلوحسابهم ، إما أنه كان يعلم بوجود رموز opcodes "بدون اسم" (فرق ليس لها اسم حتى) ، أو أنه آمن بالانتشار المطلق للمنطق. من السهل أن نفهم أن المنطق أصبح عاجزًا. :) بالمناسبة ، حاولت العثور على رسم بياني للنمو في عدد تعليمات X86 حسب السنة (أو حسب الجيل). لم أستطع بعد (ربما شخص ما لديه؟). ولكن وجدت هنا مثل هذه الصورة .

صورة

لنكون صادقين ، لا أعرف عدد التعليمات الموجودة في X86 ISA. لكني أتذكر جيدًا كل ما استثمرته في التطوير بنفسي ، دون أن أدرك أن كل جزء جديد في ISA يُطلق عليه "الاحتفاظ إلى الأبد". وكان هناك عدة آلاف من "المبدعين" مثلي في Intel. وكانت القطع من أجل ترميز جميع أوهامهم تفتقر باستمرار. :) تمت إضافة جميع البادئات الجديدة إلى مجموعة الأوامر الموجودة: REX ، VEX ... تم تقديم امتداد الأربعة بايت (EVEX) الأخير لـ AVX-512. بالمناسبة ، تتم إزالة مجموعة أوامر ARM الكاملة (حتى مع مراعاة SVE ) في نفس 4 بايت. ذهب ARM في البداية إلى الاتجاه الآخر ، حيث قام ببناء نظام قيادته على المبادئ الأساسية للبساطة والتعاقد والتوسع.

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

صورة

وكما يقولون ، اشعر بالفرق في مسارات الإدخال (الواجهة الأمامية) لـ ARM و X86. هنا يمكن القول أن الواجهة الأمامية هي جزء صغير جدًا من النواة ، حوالي 10 ٪ فقط. نعم ، ولكن لا تنسى أن كل هذا المنطق مضروب في عدد النوى على الشريحة. وهذا أمر خطير.

اعتبار آخر هو أن الواجهة الأمامية ليست سوى الجزء المسؤول عن التوافق مع الإصدارات السابقة. يمكنك المجرفة بأمان أو حتى رمي النهاية. بالمناسبة ، استفادت Intel من هذا في أوائل العقد الأول من القرن الحالي ، واستبدلت بنية NetBurst (P4) بـ Core-M (P3). لكن الواجهة الأمامية لا يمكن تقليلها بشكل كبير. على الرغم من أنني في بعض الأحيان أريد ذلك حقًا ، بسبب X86 ISA الحالية ، يتم استخدام حوالي 20 ٪ الآن. والباقي من مخلفات الماضي.

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

ومع ذلك ، على الرغم من الحمل المتراكم الضخم للتراث ، وربما بفضله ، كان مطورو X86 على صواب. تم الالتزام بمبدأ التوافق مع الإصدارات السابقة في الهندسة المعمارية منذ البداية. تعمل جميع البرامج الموجودة على الأجهزة الجديدة خارج الصندوق. هذا ما جعل من الممكن بناء مثل هذا النظام البيئي العميق والمتطور حول العمارة. ويبقى فقط خلع القبعة أمام مهندسي Intel و AMD ، الذين ، على الرغم من تصميم ISA غير المثالي على الإطلاق ، احتفظوا بالريادة في قطاع الخوادم لسنوات عديدة. ومع ذلك ، فإن الحمل القديم يزداد صعوبة.

All Articles