التنفيذ خارج الترتيب

في هندسة الحاسوب ، يُعدّ التنفيذ خارج الترتيب (أو التنفيذ الديناميكي بشكل أدق ) نموذجًا لجدولة التعليمات يُستخدم في وحدات المعالجة المركزية عالية الأداء (CPUs) للاستفادة من دورات التعليمات التي كانت ستُهدر لولا ذلك. في هذا النموذج، يُنفّذ المعالج التعليمات بترتيبٍ يُحدّده توافر بيانات الإدخال ووحدات التنفيذ، [ 1 ] بدلًا من ترتيبها الأصلي في البرنامج. [ 2 ] [ 3 ] وبذلك، يتجنّب المعالج التوقف عن العمل أثناء انتظار اكتمال التعليمات السابقة، ويمكنه في الوقت نفسه معالجة التعليمات التالية التي يُمكن تنفيذها فورًا وبشكل مستقل. [ 4 ]

تاريخ

يُعد التنفيذ خارج الترتيب شكلاً مقيداً من أشكال بنية تدفق البيانات ، والتي كانت مجالاً بحثياً رئيسياً في هندسة الحاسوب في السبعينيات وأوائل الثمانينيات.

الاستخدام المبكر في الحواسيب العملاقة

يُمكن القول إن أول جهاز استخدم التنفيذ خارج الترتيب هو جهاز CDC 6600 (1964)، الذي استخدم لوحة النتائج لحل التعارضات. مع ذلك، افتقر جهاز 6600 إلى معالجة تعارضات WAW ، فاختار بدلاً من ذلك التوقف. أطلق ثورنتون على هذه الحالة اسم "تعارض من الدرجة الأولى". [ 5 ] على الرغم من امتلاكه كلاً من حل تعارضات RAW (المسمى "تعارض من الدرجة الثانية" [ 6 ] ) وحل تعارضات WAR (المسمى "تعارض من الدرجة الثالثة" [ 7 ] )، وهو ما يكفي لاعتباره قادراً على التنفيذ الكامل خارج الترتيب، إلا أن جهاز 6600 لم يكن لديه معالجة دقيقة للاستثناءات. كان من الممكن استخدام شكل مبكر ومحدود من التنبؤ بالتفرع طالما كان التفرع إلى مواقع على ما يُسمى "مكدس التعليمات"، والذي كان محدوداً بعمق سبع كلمات من عداد البرنامج. [ 8 ]

بعد ذلك بعامين تقريبًا، قدم نظام IBM System/360 Model 91 (1966) إعادة تسمية السجلات باستخدام خوارزمية توماسولو ، [ 9 ] التي تُزيل التبعيات الزائفة (WAW وWAR)، مما يُتيح التنفيذ الكامل خارج الترتيب. يُمكن تنفيذ تعليمة تُعنى بالكتابة في السجل r n قبل تنفيذ تعليمة سابقة تستخدم السجل r n ، وذلك بالكتابة فعليًا في سجل بديل (مُعاد تسميته) alt-r n ، والذي يتحول إلى سجل عادي r n فقط عند تنفيذ جميع التعليمات السابقة التي تُعنى بـ r n ، ولكن حتى ذلك الحين ، يُستخدم r n للتعليمات السابقة و alt-r n للتعليمات اللاحقة التي تُعنى بـ r n .

في معالج Model 91، تتم إعادة تسمية السجلات عبر مسار جانبي يُسمى ناقل البيانات المشترك (CDB) ومخازن مؤقتة لمعاملات مصدر الذاكرة، مما يُبقي السجلات المعمارية الفعلية غير مستخدمة لعدة دورات، حيث تُوجد أقدم حالة للسجلات التي تُشير إليها أي تعليمة غير مُنفذة على ناقل البيانات المشترك. ومن المزايا الأخرى التي يتمتع بها معالج Model 91 مقارنةً بمعالج 6600، قدرته على تنفيذ التعليمات خارج الترتيب في وحدة التنفيذ نفسها ، وليس فقط بين الوحدات كما هو الحال في معالج 6600. ويتحقق ذلك من خلال محطات الحجز ، التي تنتقل منها التعليمات إلى وحدة التنفيذ عند جاهزيتها، بدلاً من قائمة انتظار FIFO لكل وحدة تنفيذ في معالج 6600. كما يتميز معالج Model 91 بقدرته على إعادة ترتيب عمليات التحميل والتخزين لتنفيذها قبل عمليات التحميل والتخزين السابقة، [ 10 ] على عكس معالج 6600، الذي يمتلك قدرة محدودة فقط على نقل عمليات التحميل إلى ما بعد عمليات التحميل، وعمليات التخزين إلى ما بعد عمليات التخزين، ولكن ليس عمليات التحميل إلى ما بعد عمليات التخزين والعكس. [ 11 ] تم تغيير أسماء سجلات الفاصلة العائمة فقط في الطراز 91، مما يجعله خاضعًا لنفس قيود WAW وWAR التي يخضع لها جهاز CDC 6600 عند إجراء حسابات الفاصلة الثابتة. كما يعاني كل من الطرازين 91 و6600 من استثناءات غير دقيقة ، والتي كان لا بد من حلها قبل أن يصبح تنفيذ التعليمات خارج الترتيب ممكنًا بشكل عام وعمليًا خارج نطاق الحواسيب العملاقة.

استثناءات دقيقة

لضمان دقة الاستثناءات ، يجب توفر حالة التنفيذ الصحيحة للبرنامج عند حدوث الاستثناء. وبحلول عام ١٩٨٥، طُوّرت مناهج مختلفة كما وصفها جيمس إي. سميث وأندرو آر. بليزكون. [ ١٢ ] كان معالج CDC Cyber ​​205 رائدًا في هذا المجال، حيث يتم حفظ حالة المعالج بالكامل (بما في ذلك معلومات التعليمات المنفذة جزئيًا) في حزمة تبادل غير مرئية عند حدوث مقاطعة ذاكرة افتراضية ، مما يسمح باستئناف التنفيذ من نفس الحالة. [ ١٣ ] مع ذلك، ولضمان دقة جميع الاستثناءات، لا بد من وجود طريقة لإلغاء تأثيرات التعليمات. يُنفّذ معالج CDC Cyber ​​990 (١٩٨٤) المقاطعات الدقيقة باستخدام مخزن مؤقت للتاريخ، يحتفظ بالقيم القديمة (المُستبدلة) للسجلات التي تُستعاد عندما يستدعي الاستثناء التراجع عن التعليمات. [ 12 ] من خلال المحاكاة، توصل سميث إلى أن إضافة مخزن إعادة ترتيب (أو مخزن تاريخ أو ما يعادله) إلى معالج Cray-1S من شأنه أن يقلل أداء تنفيذ أول 14 حلقة من حلقات ليفرمور (غير المُحسّنة) بنسبة 3% فقط. [ 12 ] وقد قاد ييل بات بحثًا أكاديميًا هامًا في هذا المجال باستخدام محاكي HPSm الخاص به . [ 14 ]

في ثمانينيات القرن العشرين، عانت العديد من معالجات RISC المبكرة من مشكلة الكتابة غير المتسلسلة إلى السجلات، مما أدى حتمًا إلى استثناءات غير دقيقة. وكان معالج موتورولا 88100 من بين المعالجات المبكرة القليلة التي لم تعانِ من هذه الاستثناءات رغم الكتابة غير المتسلسلة، مع أنه سمح بحدوث استثناءات دقيقة وغير دقيقة في العمليات الحسابية ذات الفاصلة العائمة. [ 15 ] بدأت التعليمات بالتنفيذ بالتسلسل، لكن بعضها (مثل العمليات الحسابية ذات الفاصلة العائمة) استغرق دورات أكثر لإكمال التنفيذ. ومع ذلك، فإن تنفيذ التعليمات الأساسية في دورة واحدة قلل بشكل كبير من نطاق المشكلة مقارنةً بمعالج CDC 6600.

فك الارتباط

بحث سميث أيضًا في كيفية جعل وحدات التنفيذ المختلفة تعمل بشكل أكثر استقلالية عن بعضها البعض وعن الذاكرة والواجهة الأمامية والتفرع. [ 16 ] وقد طبّق هذه الأفكار في معالج Astronautics ZS-1 (1988)، الذي يتميز بفصل خط أنابيب الأعداد الصحيحة/التحميل/التخزين عن خط أنابيب الأعداد العشرية، مما يسمح بإعادة ترتيب العمليات بين خطوط الأنابيب. كما كان معالج ZS-1 قادرًا على تنفيذ عمليات التحميل قبل عمليات التخزين السابقة. في ورقته البحثية عام 1984، رأى أن فرض الاستثناءات الدقيقة فقط على خط أنابيب الأعداد الصحيحة/الذاكرة يجب أن يكون كافيًا للعديد من حالات الاستخدام، حيث إنه يسمح حتى بالذاكرة الافتراضية . كان لكل خط أنابيب مخزن مؤقت للتعليمات لفصله عن وحدة فك تشفير التعليمات، لمنع توقف الواجهة الأمامية. ولزيادة فصل الوصول إلى الذاكرة عن التنفيذ، تم ربط كل من خطي الأنابيب بطابورين قابلين للعنونة يقومان فعليًا بإعادة تسمية محدودة للسجلات. [ 10 ] تم استخدام بنية منفصلة مماثلة في وقت سابق في Culler 7. [ 17 ] ساعدت بنية مجموعة تعليمات ZS-1، مثل POWER اللاحقة من IBM، في التنفيذ المبكر للفروع.

البحث يؤتي ثماره

مع معالج POWER1 (1990)، عادت IBM إلى تنفيذ التعليمات خارج الترتيب. كان هذا المعالج الأول الذي يجمع بين إعادة تسمية السجلات (وإن كان ذلك مقتصرًا على سجلات الفاصلة العائمة) والاستثناءات الدقيقة. يستخدم المعالج ملف سجلات فعلي (أي ملف يُعاد تعيينه ديناميكيًا ويحتوي على قيم غير مُلتزم بها وقيم مُلتزم بها) بدلًا من مُخزن إعادة الترتيب، ولكن القدرة على إلغاء التعليمات مطلوبة فقط في وحدة التفرع، التي تُنفذ مُخزنًا للتاريخ (أطلقت عليه IBM اسم مُكدس عداد البرنامج ) للتراجع عن التغييرات التي تُجرى على سجلات العد والربط والحالة. لا تزال قدرة إعادة ترتيب حتى تعليمات الفاصلة العائمة محدودة للغاية؛ نظرًا لعدم قدرة POWER1 على إعادة ترتيب تعليمات حساب الفاصلة العائمة (حيث أصبحت النتائج متاحة بالترتيب)، لا يُعاد تسمية سجلات الوجهة الخاصة بها. كما أن POWER1 لا يحتوي على محطات حجز ضرورية للاستخدام خارج الترتيب لنفس وحدة التنفيذ. [ 18 ] [ 19 ] في العام التالي ، أُضيفت خاصية إعادة تسمية السجلات للأغراض العامة إلى طراز 900 من جهاز IBM ES/9000 . كما يحتوي على محطات حجز بستة مداخل لوحدة الأعداد الصحيحة المزدوجة (حيث يمكن اختيار وتنفيذ ما يصل إلى تعليمتين من أصل ست تعليمات في كل دورة)، وستة مداخل لوحدة الفاصلة العائمة. أما الوحدات الأخرى، فتستخدم طوابير FIFO بسيطة. وتصل مسافة إعادة الترتيب إلى 32 تعليمة. [ 20 ] وفي عام 1991، أُصدر جهاز A19 من سلسلة A لأجهزة الحاسوب المركزية من شركة Unisys ، والذي زُعم أنه يدعم التنفيذ خارج الترتيب، ووصف أحد المحللين تقنية A19 بأنها متقدمة على المنافسة بثلاث إلى خمس سنوات. [ 21 ] [ 22 ]

انتشار واسع

استخدمت أولى المعالجات أحادية الشريحة فائقة التوازي ( إنتل i960CA عام 1989) جدولة بسيطة تعتمد على لوحة النتائج، على غرار ما كان عليه الحال في معالج CDC 6600 قبل ربع قرن. وفي الفترة ما بين 1992 و1996، شهد التطور السريع للتقنيات، بفضل زيادة عدد الترانزستورات ، انتشارًا واسعًا حتى وصل إلى الحواسيب الشخصية . استخدم معالج موتورولا 88110 (1992) مخزنًا مؤقتًا لتاريخ التعليمات لعكسها. [ 23 ] كان من الممكن تنفيذ عمليات التحميل قبل عمليات التخزين السابقة. وبينما كانت عمليات التخزين والتفرعات تنتظر بدء التنفيذ، استمرت التعليمات اللاحقة من الأنواع الأخرى في التدفق عبر جميع مراحل خط الأنابيب، بما في ذلك الكتابة المؤجلة. وقد حدّت سعة المخزن المؤقت للتاريخ، البالغة 12 مدخلًا، من مسافة إعادة الترتيب. [ 24 ] [ 25 ] [ 26 ] كان معالج PowerPC 601 (1993) تطورًا لمعالج RISC أحادي الشريحة ، والذي كان بدوره تبسيطًا لمعالج POWER1. سمح معالج 601 بتعليمات التفرع وتعليمات الفاصلة العائمة بتجاوز تعليمات الأعداد الصحيحة الموجودة بالفعل في قائمة انتظار التعليمات المُستجلبة، حيث يتم فحص آخر أربعة إدخالات منها للتأكد من إمكانية تنفيذها. في حالة عدم وجود البيانات في الذاكرة المؤقتة، يمكن إعادة ترتيب عمليات التحميل والتخزين. ويمكن فقط إعادة تسمية سجلات الربط والعد. [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] في خريف عام 1994، قدمت شركتا NexGen و IBM بالتعاون مع موتورولا إعادة تسمية سجلات الأغراض العامة لوحدات المعالجة المركزية أحادية الشريحة. كان معالج Nx586 من NexGen أول معالج x86 قادر على التنفيذ خارج الترتيب، وتميز بمسافة إعادة ترتيب تصل إلى 14 عملية دقيقة . [ 32 ] أعاد معالج PowerPC 603 تسمية كل من سجلات الأغراض العامة وسجلات الفاصلة العائمة. يمكن لكل وحدة من وحدات التنفيذ الأربع غير المتفرعة أن تنتظر تعليمة واحدة أمامها دون أن يعيق ذلك تدفق التعليمات إلى الوحدات الأخرى. يسمح مخزن إعادة الترتيب ذو الخمسة مداخل بما لا يزيد عن أربع تعليمات بتجاوز تعليمة غير منفذة. وبفضل مخزن التخزين المؤقت، يمكن لعملية التحميل الوصول إلى الذاكرة المؤقتة قبل عملية التخزين السابقة. [ 33 ] [ 34 ]

كان معالج PowerPC 604 (1995) أول معالج أحادي الشريحة مزود بخاصية إعادة ترتيب التعليمات على مستوى وحدة التنفيذ ، حيث احتوت ثلاث من وحداته الست على محطة حجز ثنائية المدخلات، مما يسمح بتنفيذ المدخل الأحدث قبل الأقدم. تبلغ سعة مخزن إعادة الترتيب 16 تعليمة. ويتتبع طابور تحميل رباعي المدخلات وطابور تخزين سداسي المدخلات إعادة ترتيب عمليات التحميل والتخزين عند عدم وجود البيانات في الذاكرة المخبئية. [ 35 ] تجاوز معالج HAL SPARC64 (1995) سعة إعادة ترتيب التعليمات في معالج ES/9000 طراز 900، وذلك بفضل احتوائه على ثلاث محطات حجز ثمانية المدخلات لوحدات الأعداد الصحيحة، والأعداد العشرية، وتوليد العناوين ، ومحطة حجز اثني عشر مدخلاً لعمليات التحميل والتخزين، مما يسمح بإعادة ترتيب الوصول إلى الذاكرة المخبئية/الذاكرة الرئيسية بشكل أكبر من المعالجات السابقة. ويمكن أن تصل التعليمات التي تكون في حالة إعادة ترتيب إلى 64 تعليمة في الوقت نفسه. [ 36 ] [ 37 ] قدم معالج بنتيوم برو (1995) محطة حجز موحدة ، والتي سمحت، بسعة 20 عملية دقيقة، بإعادة ترتيب مرنة للغاية، مدعومة بمخزن مؤقت لإعادة الترتيب بسعة 40 مدخلاً. ويمكن إعادة ترتيب عمليات التحميل قبل كل من عمليات التحميل والتخزين. [ 38 ]

ارتفع معدل التنفيذ العملي لكل دورة بشكل أكبر مع اعتماد معالجات SGI / MIPS ( R10000 ) و HP PA-RISC ( PA-8000 ) للتنفيذ خارج الترتيب الكامل في عام 1996. وفي العام نفسه، أدخلت معالجات Cyrix 6x86 و AMD K5 تقنيات إعادة الترتيب المتقدمة إلى أجهزة الكمبيوتر الشخصية الشائعة. منذ أن اكتسب معالج DEC Alpha ميزة التنفيذ خارج الترتيب في عام 1998 ( Alpha 21264 )، لم تتفوق معالجات التنفيذ خارج الترتيب عالية الأداء على معالجات التنفيذ بالترتيب باستثناء معالجات HP / Intel Itanium 2 و IBM POWER6 ، على الرغم من احتواء الأخير على وحدة فاصلة عائمة للتنفيذ خارج الترتيب . [ 39 ] وتخلفت معالجات التنفيذ بالترتيب الأخرى عالية الأداء، وتحديدًا معالجات Sun UltraSPARC III / IV ، وأجهزة الكمبيوتر المركزية من IBM التي فقدت ميزة التنفيذ خارج الترتيب للمرة الثانية، وبقيت تعمل بالترتيب حتى جيل z10 . في وقت لاحق، ركزت المعالجات الكبيرة ذات الترتيب الداخلي على الأداء متعدد الخيوط، ولكن في النهاية تحولت سلسلة SPARC T و Xeon Phi إلى التنفيذ خارج الترتيب في عامي 2011 و 2016 على التوالي.

ظلت معظم معالجات الهواتف والتطبيقات الأخرى منخفضة التكلفة تعتمد على التنفيذ المتسلسل حتى عام 2010 تقريبًا . في البداية، تم طرح معالج سكوربيون من كوالكوم (بمسافة إعادة ترتيب تبلغ 32) في معالج سنابدراغون ، [ 40 ] وبعد ذلك بقليل، حلّ معالج A9 من آرم محل A8 . بالنسبة لأجهزة الكمبيوتر الشخصية منخفضة التكلفة من نوع x86، واجهت بنية بونيل الدقيقة المتسلسل في معالجات إنتل أتوم المبكرة تحديًا من بنية بوبكات الدقيقة من AMD ، وفي عام 2013، حلت محلها بنية سيلفرمونت الدقيقة غير المتسلسلة . [ 41 ] نظرًا لأن تعقيد التنفيذ غير المتسلسل يحول دون تحقيق الحد الأدنى من استهلاك الطاقة والتكلفة والحجم، لا يزال التنفيذ المتسلسل شائعًا في وحدات التحكم الدقيقة والأنظمة المدمجة ، وكذلك في أنوية الهواتف مثل معالجات A55 و A510 من آرم في تكوينات big.LITTLE .

المفهوم الأساسي

خلفية

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

معالجات الطلبات

في المعالجات القديمة، تتم معالجة التعليمات في دورة تعليمات تتكون عادةً من الخطوات التالية:

  1. جلب التعليمات .
  2. إذا كانت معاملات الإدخال متوفرة (في سجلات المعالج، على سبيل المثال)، يتم إرسال التعليمة إلى الوحدة الوظيفية المناسبة . أما إذا كان معامل واحد أو أكثر غير متوفر خلال دورة الساعة الحالية (عادةً لأنه يجب جلبها من الذاكرة )، يتوقف المعالج مؤقتًا حتى تصبح متوفرة.
  3. يتم تنفيذ التعليمات بواسطة الوحدة الوظيفية المناسبة.
  4. تقوم الوحدة الوظيفية بكتابة النتائج مرة أخرى إلى ملف التسجيل .

غالبًا ما يحتوي المعالج ذو التنفيذ المتسلسل على متجه بتات لتسجيل السجلات التي ستُكتب إليها البيانات بواسطة خط الأنابيب. [ 42 ] إذا كانت أي من معاملات الإدخال تحتوي على البت المقابل مُفعّلاً في هذا المتجه، فإن التعليمات تتوقف. في الأساس، يؤدي المتجه دورًا مبسطًا للغاية يتمثل في الحماية من مخاطر السجلات. وبالتالي، يستخدم التنفيذ غير المتسلسل مصفوفات ثنائية الأبعاد، بينما يستخدم التنفيذ المتسلسل متجهًا أحادي البعد لتجنب المخاطر.

معالجات خارج الترتيب

يقسم هذا النموذج الجديد معالجة التعليمات إلى هذه الخطوات: [ 43 ]

  1. جلب التعليمات.
  2. فك تشفير التعليمات.
  3. إعادة تسمية التعليمات.
  4. إرسال التعليمات إلى قائمة انتظار التعليمات (وتسمى أيضًا مخزن التعليمات المؤقت أو محطات الحجز ).
  5. تنتظر هذه التعليمات في قائمة الانتظار حتى تصبح معاملات الإدخال الخاصة بها متاحة. ويمكن لهذه التعليمات مغادرة قائمة الانتظار قبل التعليمات الأقدم.
  6. يتم إصدار التعليمات إلى الوحدة الوظيفية المناسبة ويتم تنفيذها من قبل تلك الوحدة.
  7. النتائج مُدرجة في قائمة الانتظار.
  8. بعد أن تُكتب نتائج جميع التعليمات القديمة في ملف السجلات، تُكتب هذه النتيجة مرة أخرى في ملف السجلات. تُسمى هذه المرحلة بمرحلة التخرج أو التقاعد.

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

تقوم المعالجات غير المتسلسلة بملء هذه الفترات الزمنية بتعليمات أخرى جاهزة ، ثم إما أن تعيد ترتيب النتائج في النهاية لإظهار أن التعليمات قد تمت معالجتها بشكل طبيعي، أو تسجل ترتيب البرنامج الأصلي وتطبقه ، أو تُنفذها على دفعات غير قابلة للمقاطعة حيث لا يؤدي الترتيب إلى تلف البيانات. يُعرف ترتيب التعليمات في شفرة الحاسوب الأصلية بترتيب البرنامج ، بينما في المعالج تُعالج بترتيب البيانات ، أي الترتيب الذي تُصبح به البيانات متاحة في سجلات المعالج. يتطلب الأمر دوائر معقدة نسبيًا للتحويل من ترتيب إلى آخر والحفاظ على ترتيب منطقي للمخرجات.

تتزايد فائدة المعالجة خارج الترتيب مع تعمق مسار التعليمات واتساع فارق السرعة بين الذاكرة الرئيسية (أو ذاكرة التخزين المؤقت ) والمعالج. في الأجهزة الحديثة، يعمل المعالج بسرعة تفوق سرعة الذاكرة بأضعاف كثيرة، لذا فإنه خلال الوقت الذي يقضيه المعالج في انتظار وصول البيانات، يكون قد عالج نظريًا عددًا كبيرًا من التعليمات.

يسمح فصل الإرسال والإصدار بالإصدار خارج الترتيب

من بين الاختلافات التي أحدثها النموذج الجديد إنشاء طوابير تسمح بفصل خطوة الإرسال عن خطوة الإصدار، وفصل مرحلة التخرج عن مرحلة التنفيذ. وقد أُطلق على هذا النموذج في وقت مبكر اسم " البنية المنفصلة" . في المعالجات الترتيبية السابقة ، كانت هذه المراحل تعمل بشكل متزامن ومتسلسل .

في المعالج ذي البنية المتوازية ، تُفصل مرحلتا جلب البيانات وفك تشفيرها عن مرحلة التنفيذ باستخدام مخزن مؤقت . يهدف المخزن المؤقت إلى تقسيم وظائف الوصول إلى الذاكرة وتنفيذها في برنامج الحاسوب، وتحقيق أداء عالٍ من خلال استغلال التوازي الدقيق بينهما. [ 44 ] وبذلك، يُخفي المخزن المؤقت فعليًا أي تأخير في الذاكرة عن المعالج.

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

تُعتبر البنى المنفصلة عمومًا غير مفيدة للحوسبة العامة لأنها لا تتعامل بكفاءة مع التعليمات البرمجية كثيفة التحكم. [ 45 ] تشمل هذه التعليمات البرمجية عناصر مثل التفرعات المتداخلة التي تتكرر بكثرة في نواة أنظمة التشغيل . تلعب البنى المنفصلة دورًا هامًا في جدولة التعليمات في بنى VLIW ( كلمات التعليمات الطويلة جدًا ). ​​[ 46 ]

يسمح فصل التنفيذ والكتابة بإعادة تشغيل البرنامج

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

خيارات معمارية دقيقة

هل يتم إرسال التعليمات إلى قائمة انتظار مركزية أم إلى قوائم انتظار موزعة متعددة؟

تستخدم معالجات IBM PowerPC طوابير موزعة بين الوحدات الوظيفية المختلفة، بينما تستخدم المعالجات الأخرى التي تعمل خارج الترتيب طابورًا مركزيًا. وتستخدم IBM مصطلح " محطات الحجز" للإشارة إلى طوابيرها الموزعة.

هل توجد قائمة انتظار فعلية للنتائج أم تُكتب النتائج مباشرةً في ملف سجلات؟ في الحالة الأخيرة، تتم معالجة وظيفة قائمة الانتظار بواسطة خرائط سجلات تحتوي على معلومات إعادة تسمية السجلات لكل تعليمة قيد التنفيذ.

تستخدم معالجات إنتل المبكرة غير المتسلسلة قائمة انتظار للنتائج تسمى مخزن إعادة الترتيب ، [ أ ] بينما تستخدم معظم المعالجات اللاحقة غير المتسلسلة خرائط السجلات. [ ب ]

انظر أيضاً

ملحوظات

  1. تحتوي معالجاتIntel P6 على كلٍ من مخزن إعادة الترتيب (ROB) وجدول أسماء مستعارة للسجلات (RAT). كان الدافع الرئيسي وراء استخدام مخزن إعادة الترتيب هو استعادة البيانات في حالة التنبؤ الخاطئ بالتفرع. تُعد عائلة Intel P6 من أوائل المعالجات التي تعمل بنظام خارج الترتيب، ولكن تم استبدالها ببنية NetBurst . بعد سنوات، أثبتت NetBurst أنها طريق مسدود بسبب خط أنابيبها الطويل الذي افترض إمكانية الوصول إلى ترددات تشغيل أعلى بكثير. لم تتمكن المواد من تلبية أهداف التردد الطموحة للتصميم بسبب مشاكل حرارية، وتم إلغاء التصاميم اللاحقة القائمة على NetBurst، وتحديدًا Tejas وJayhawk. عادت Intel إلى تصميم P6 كأساس لبنيتي Core و Nehalem الدقيقتين.
  2. تمثل البنى الدقيقة اللاحقة، ساندي بريدج وآيفي بريدج وهاسويل ، خروجًا عن تقنيات إعادة الترتيب المستخدمة في P6، وتستخدم تقنيات إعادة الترتيب من EV6 و P4 ولكن مع مسار معالجة أقصر نوعًا ما. [ 47 ] [ 48 ]

مراجع

  1. كوكوناس، جيم (2015). القوة والأداء: تحليل البرمجيات وتحسينها . مورغان كوفمان. ص  37. ISBN 9780128008140.
  2. "التنفيذ خارج الترتيب" (ملف PDF) . cs.washington.edu . 2006. تاريخ الاطلاع: 17 يناير 2014. لا تنتظر تنفيذ التعليمات السابقة إذا لم تكن هذه التعليمات تعتمد عليها.
  3. "الاحتفال بالذكرى المئوية" . مدرسة ريجيس الثانوية . 14-03-2011 . تم الاسترجاع في 25-06-2022 . تسمح الخوارزمية "بتنفيذ التعليمات المتسلسلة التي عادة ما تتوقف بسبب تبعيات معينة بشكل غير متسلسل" (المعروف أيضًا باسم التنفيذ خارج الترتيب).
  4. كوزيروك، تشارلز م . (17 أبريل 2001). "التنفيذ خارج الترتيب" . دليل الحاسوب الشخصي. مؤرشف من الأصل في 18 فبراير 2019. تم الاطلاع عليه في 17 يناير 2014. تُحسّن هذه المرونة الأداء لأنها تسمح بالتنفيذ مع تقليل وقت الانتظار.
  5. ثورنتون (1970 ، ص 125) 
  6. ثورنتون (1970 ، ص 126) 
  7. ثورنتون 1970 ، ص 127 
  8. ثورنتون 1970 ، ص 112، 123 
  9. توماسولو، روبرت ماركو (1967)، "خوارزمية فعّالة لاستغلال وحدات حسابية متعددة" (ملف PDF) ، مجلة IBM للبحوث والتطوير ، 11 (1): 25-33 ، CiteSeerX 10.1.1.639.7540 ، doi : 10.1147/rd.111.0025 ، S2CID 8445049 ، مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 12 يونيو 2018  
  10. 1 2 سميث، جيمس إي. (يوليو 1989). "جدولة التعليمات الديناميكية وجهاز الملاحة الفضائية ZS-1" (ملف PDF) . مجلة الكمبيوتر . 22 (7): 21-35 . doi : 10.1109/2.30730 . S2CID 329170 . 
  11. ثورنتون (1970 ، ص 48-50) 
  12. 1 2 3 سميث، جيمس إي .؛ بليزكون، أندرو ر. (يونيو 1985). "تنفيذ المقاطعات الدقيقة في المعالجات ذات البنية الأنبوبية" . المؤتمر الدولي الثاني عشر لأنظمة التحكم الآلي .(نُشرت نسخة موسعة في مايو 1988 بعنوان " تنفيذ المقاطعات الدقيقة في المعالجات ذات خطوط الأنابيب ".)
  13. ^ مودجيل، مايان. فاسيلياديس، ستاماتيس (يناير 1996). "في المقاطعات الدقيقة" . ص. 18. سايتسيركس 10.1.1.33.3304 . مؤرشفة من الأصلي (pdf) في 13 أكتوبر 2022.  
  14. هوو، و.؛ بات، ييل ن. (1986). HPSm، بنية تدفق بيانات مقيدة عالية الأداء ذات وظائف محدودة . ACM . ص 297-306 . ISBN  978-0-8186-0719-6تم الاطلاع عليه بتاريخ 2013-12-06 .{{cite book}}تم |work=تجاهله ( مساعدة )
  15. "دليل المستخدم للمعالج الدقيق MC88100 RISC - الطبعة الثانية" (ملف PDF) . www.bitsavers.org .
  16. سميث، جيمس إي. (نوفمبر 1984). "بنى حاسوبية منفصلة للوصول/التنفيذ" (ملف PDF) . معاملات ACM لأنظمة الحاسوب . 2 (4): 289-308 . doi : 10.1145/357401.357403 . S2CID 13903321 . 
  17. سموثرمان، مارك. "كولر-7" . جامعة كليمسون .
  18. غروهوسكي، غريغوري ف. (يناير 1990). "تنظيم الآلة لمعالج IBM RISC System/6000" (ملف PDF) . مجلة IBM للبحوث والتطوير . 34 (1): 37-58 . doi : 10.1147/rd.341.0037 . مؤرشف من الأصل (ملف PDF) في 9 يناير 2005.
  19. ^ سميث، جيمس إي . سوهي، جوريندار س. (ديسمبر 1995). “الهندسة المعمارية الدقيقة للمعالجات Superscalar” (PDF) . وقائع IEEE . 83 (12): 1617. دوى : 10.1109/5.476078 .
  20. ليبتاي، جون س. (يوليو 1992). "تصميم المعالج عالي الأداء لنظام IBM Enterprise System/9000" (ملف PDF) . مجلة IBM للبحوث والتطوير . 36 (4): 713-731 . doi : 10.1147/rd.364.0713 . مؤرشف من النسخة الأصلية (ملف PDF) في 17 يناير 2005.
  21. زيغلر، بارت (7 مارس 1991). "يونيسيس تكشف النقاب عن أجهزة الكمبيوتر المركزية 'توب غان'" . وكالة أسوشيتد برس للأنباء .
  22. «الحاسوب المركزي الجديد من يونيسيس يتفوق على نظيره من الحواسيب المركزية» . بلومبيرغ . 25 مارس 1991. يعتمد الحاسوب A19 الجديد على تقنيات «المعالجة الفائقة» المستخدمة في الحواسيب العلمية لتنفيذ العديد من التعليمات في وقت واحد. يستطيع A19 تنفيذ ما يصل إلى 140 عملية متداخلة، أي أكثر من عشرة أضعاف ما تستطيع الحواسيب المركزية التقليدية تنفيذه.
  23. الله، نصر؛ هول، مات (مارس 1993). "تنفيذ MC88110 للاستثناءات الدقيقة في بنية فائقة القياس" (ملف PDF) . أخبار هندسة الحاسوب الصادرة عن ACM SIGARCH . 21. شركة موتورولا: 15-25 . doi : 10.1145/152479.152482 . S2CID 7036627 . 
  24. سموثرمان، مارك (29 أبريل 1994). "نظرة عامة على موتورولا MC88110" .
  25. ديفندورف، كيث ؛ ألين، مايكل (أبريل 1992). "تنظيم معالج موتورولا 88110 فائق التوازي بتقنية RISC" (ملف PDF) . مجلة IEEE Micro . 12 (2): 40-63 . doi : 10.1109/40.127582 . S2CID 25668727. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 21 أكتوبر 2022. 
  26. سموثرمان، مارك؛ تشاولا، شوتشي؛ كوكس، ستان؛ مالوي، برايان (ديسمبر 1993). "جدولة التعليمات لمعالج موتورولا 88110" . وقائع الندوة الدولية السنوية السادسة والعشرين حول هندسة المعالجات الدقيقة . الصفحات 257-262 . doi : 10.1109/MICRO.1993.282761 . ISBN  0-8186-5280-2. S2CID 52806289 . 
  27. "ملخص تقني لمعالج PowerPC 601 RISC" (ملف PDF) . تم الاطلاع عليه بتاريخ 23 أكتوبر 2022 .
  28. مور، تشارلز ر .؛ بيكر، مايكل س. وآخرون. "المعالج الدقيق PowerPC 601" . مجلة IEEE Micro . 13 (5). سبتمبر 1993.
  29. ديفندورف، كيث (أغسطس 1993). "معالج باور بي سي 601" (ملف PDF) . هوت تشيبس .
  30. سميث، جيمس إي .؛ وايس، شلومو (يونيو 1994). "PowerPC 601 و Alpha 21064: قصة معالجين من نوع RISC" (ملف PDF) . مجلة IEEE Computer . 27 (6): 46-58 . doi : 10.1109/2.294853 . S2CID 1114841 . 
  31. سيما، ديزسو (سبتمبر-أكتوبر 2000). "مساحة تصميم تقنيات إعادة تسمية السجلات" . IEEE Micro . 20 (5): 70-83 . CiteSeerX 10.1.1.387.6460 . doi : 10.1109/40.877952 . S2CID 11012472 .  
  32. غويناب، لينلي (28 مارس 1994). "شركة نيكست جين تدخل السوق بمعالج Nx586 بسرعة 66 ميجاهرتز" (ملف PDF) . تقرير المعالجات الدقيقة . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 2 ديسمبر 2021.
  33. بورغيس، براد؛ الله، نصر؛ فان أوفيرين، بيتر؛ أوغدن، دين (يونيو 1994). "معالج PowerPC 603 الدقيق" . اتصالات ACM . 37 (6): 34-42 . doi : 10.1145/175208.175212 . S2CID 34385975 . 
  34. "ملخص تقني لمعالج PowerPC 603 RISC" (ملف PDF) . تم الاطلاع عليه بتاريخ 27 أكتوبر 2022 .
  35. سونغ، إس. بيتر؛ دينمان، مارفن؛ تشانغ، جو (أكتوبر 1994). "معالج PowerPC 604 RISC" (ملف PDF) . IEEE Micro . 14 (5): 8. doi : 10.1109/MM.1994.363071 . S2CID 11603864 . 
  36. "SPARC64+: معالج SPARC من الجيل الثاني ذو 64 بت من HAL" (ملف PDF) . Hot Chips .
  37. "Le Sparc64" . معهد أبحاث علوم الحاسوب والأنظمة العشوائية (بالفرنسية).
  38. غويناب، لينلي (16 فبراير 1995). "معالج P6 من إنتل يستخدم تصميمًا فائق القياس منفصلًا" (ملف PDF) . تقرير المعالجات الدقيقة .
  39. لي، هونغ كيو، وآخرون. "البنية الدقيقة لمعالج IBM POWER6" (ملف PDF) . مجلة IBM للبحوث والتطوير . 51 (6). نوفمبر 2007.
  40. ماليا، لو. "معالج كوالكوم عالي الأداء ومنصة تطبيقات الهاتف المحمول" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 29 أكتوبر 2013.
  41. أناند لال شيمبي (2013-05-06). "الكشف عن بنية سيلفرمونت من إنتل: الجدية في مجال الهواتف المحمولة" . أناند تك .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  42. "نظرة داخلية على نموذج وحدة المعالجة المركزية الصغرى: لوحة النتائج" . 2017-06-09 . تم الاطلاع عليه بتاريخ 2023-01-09 .
  43. ^ غونزاليس، أنطونيو؛ لاتوري، فرناندو؛ مجليس، غريغوريوس (2011). "البنية الدقيقة للمعالج" . محاضرات تجميعية حول هندسة الكمبيوتر . دوى : 10.1007/978-3-031-01729-2 . رقم ISBN 978-3-031-00601-2ISSN 1935-3235 
  44. سميث، جيه إي (1984). "بنى حاسوبية منفصلة للوصول/التنفيذ". معاملات ACM لأنظمة الحاسوب . 2 (4): 289-308 . CiteSeerX 10.1.1.127.4475 . doi : 10.1145/357401.357403 . S2CID 13903321 .  
  45. كوريان، ل.؛ هولينا، ب. ت.؛ كوراور، ل. د. (1994). "تأثيرات زمن استجابة الذاكرة في البنى المنفصلة" (ملف PDF) . معاملات IEEE للحواسيب . 43 (10): 1129-1139 . doi : 10.1109/12.324539 . S2CID 6913858. مؤرشف من الأصل (ملف PDF) بتاريخ 12-06-2018. 
  46. دوروجيفيتس، إم إن؛ أوكلوبدزيا، في. (1995). "معمارية متعددة الخيوط منفصلة" . المجلة الدولية للحوسبة عالية السرعة . 7 (3): 465-480 . doi : 10.1142/S0129053395000257 .
  47. كانتر، ديفيد (2010-09-25). "معمارية ساندي بريدج الدقيقة من إنتل" .
  48. "واجهة هاسويل الأمامية - تحليل معمارية هاسويل من إنتل: بناء جهاز كمبيوتر جديد ومعالج إنتل جديد" . مؤرشف من الأصل في 7 أكتوبر 2012.

للمزيد من القراءة

  • سميث، جيمس إي .؛ بليزكون، إيه آر (يونيو 1985). "تنفيذ المقاطعات الدقيقة في المعالجات ذات البنية الأنبوبية". أخبار هندسة الحاسوب من ACM SIGARCH . 13 (3): 36-44 . doi : 10.1145/327070.327125 .