ملف التسجيل

ملف التسجيل عبارة عن مصفوفة من السجلات القابلة للعنونة ، تحتوي على منفذين أو أكثر تسمح بالقراءة والكتابة المتزامنة للسجلات في المصفوفة. [ 1 ] عملية القراءة غير مُتلفة ، أي أنها لا تُغير البيانات المخزنة.
كل منفذ إما منفذ كتابة أو منفذ قراءة، مع إشارات إدخال وإخراج تتناسب مع وظيفة المنفذ. تحتوي جميع المنافذ على مدخلات عناوين تحدد السجل المراد الوصول إليه. كما تحتوي منافذ الكتابة على مدخلات بيانات تحدد القيمة المراد كتابتها في السجل، ومدخل تمكين الكتابة الذي يسمح بكتابة البيانات. أما منافذ القراءة، فتحتوي على مخرجات بيانات تنقل قيمة خرج السجل. [ 1 ]
تُستخدم ملفات التسجيل في مجموعة متنوعة من التطبيقات، بما في ذلك سجلات المعالج في وحدات المعالجة المركزية (CPUs)، وذاكرة البيانات في FIFOs ، وفي مسرعات الأجهزة .
العمارة النموذجية
مخطط مبسط لملف سجلات أساسي ثلاثي المنافذ يحتوي على m سجل، كل منها بعرض n بت. يسمح منفذا القراءة بالقراءة المتزامنة من نفس السجل أو سجلات مختلفة، بينما يُستخدم منفذ الكتابة في الوقت نفسه لكتابة أي سجل. تبدأ عملية القراءة بتفعيل عنوان السجل على ناقل RADDR الخاص بمنفذ القراءة، مما يؤدي إلى نقل القيمة المخزنة في ذلك السجل إلى ناقل الإخراج RDATA المرتبط به. تبدأ عملية كتابة السجل بتفعيل عنوان السجل على ناقل WADDR، والبيانات المراد كتابتها على ناقل WDATA، وتفعيل الكتابة (WE)؛ وتحدث عملية الكتابة عند الحافة الصاعدة التالية لنبضة الساعة.
في وحدات المعالجة المركزية (CPUs)
تُحدد بنية مجموعة التعليمات في وحدة المعالجة المركزية عادةً مجموعة من السجلات التي تُستخدم لتخزين البيانات مؤقتًا بين الذاكرة والوحدات الوظيفية على الشريحة. يُعد ملف السجلات جزءًا من البنية ومرئيًا للمبرمج، على عكس مفهوم الذاكرة المؤقتة الشفافة . في وحدات المعالجة المركزية الأبسط، تتطابق هذه السجلات المعمارية تمامًا مع المدخلات في ملف السجلات الفيزيائي (PRF) داخل وحدة المعالجة المركزية. أما وحدات المعالجة المركزية الأكثر تعقيدًا فتستخدم إعادة تسمية السجلات ، بحيث يتغير تعيين المدخل الفيزيائي الذي يخزن سجلًا معماريًا معينًا ديناميكيًا أثناء التنفيذ.
تُعدّ الخدمات المصرفية المسجلة طريقةً لاستخدام اسم واحد للوصول إلى سجلات مادية متعددة ومختلفة، وذلك حسب وضع التشغيل.
تحويل السجل المصرفي
يمكن تجميع ملفات التسجيل معًا في شكل بنوك تسجيل. [ 2 ] قد يمتلك المعالج أكثر من بنك تسجيل واحد.
تحتوي معالجات ARM على سجلات مُجمّعة وغير مُجمّعة. وبينما تشترك جميع الأوضاع دائمًا في نفس السجلات الفيزيائية للسجلات العامة الثمانية الأولى (R0 إلى R7)، فإن السجل الفيزيائي الذي تشير إليه السجلات المُجمّعة (R8 إلى R14) يعتمد على وضع التشغيل الذي يعمل به المعالج. [ 3 ] والجدير بالذكر أن وضع طلب المقاطعة السريعة (FIQ) يحتوي على مجموعة سجلات خاصة به من R8 إلى R12، كما توفر البنية أيضًا مؤشر مكدس خاص (R13) لكل وضع مقاطعة.
تستخدم معالجات x86 تبديل السياق والمقاطعات السريعة للتبديل بين التعليمات، ووحدة فك التشفير، وسجلات البيانات العامة، وملفات السجلات (إن وجدت)، قبل تنفيذ التعليمات، ولكن هذا متاح فقط في المعالجات التي تدعم التنفيذ فائق التوازي. مع ذلك، يُعد تبديل السياق آلية مختلفة تمامًا عن بنك السجلات في معالجات ARM.
يستخدم معالج MODCOMP والمعالجات المتوافقة مع 8051 اللاحقة بتات في كلمة حالة البرنامج لتحديد بنك السجلات النشط حاليًا.
التنفيذ المادي

في التخطيط المعتاد، تُقرأ المصفوفة البسيطة عموديًا. أي أن سطر كلمة واحد، يمتد أفقيًا، يُجبر صفًا من خلايا البت على وضع بياناتها على خطوط البت، التي تمتد عموديًا. عادةً ما تكون مضخمات الإشارة ، التي تُحوّل خطوط البت المقروءة ذات التأرجح المنخفض إلى مستويات منطقية ذات تأرجح كامل، في الأسفل (حسب الاصطلاح). تُنشأ ملفات السجلات الأكبر حجمًا أحيانًا عن طريق تجانب مصفوفات بسيطة معكوسة ومُدارة.
تحتوي ملفات التسجيل على سطر كلمة واحد لكل مدخل لكل منفذ، وسطر بت واحد لكل بت من العرض لكل منفذ قراءة، وسطرين بت لكل بت من العرض لكل منفذ كتابة. تحتوي كل خلية بت أيضًا على جهد تغذية (Vdd) وجهد مصدر (Vss). لذلك، تزداد مساحة تباعد الأسلاك مع مربع عدد المنافذ، وتزداد مساحة الترانزستور خطيًا. [ 4 ] عند نقطة معينة، قد يكون من الأنسب و/أو الأسرع استخدام ملفات تسجيل متعددة زائدة، ذات عدد أقل من منافذ القراءة، بدلًا من ملف تسجيل واحد يحتوي على جميع منافذ القراءة. على سبيل المثال، احتوت وحدة الأعداد الصحيحة في معالج MIPS R8000 على ملف تسجيل 64 بت، يحتوي على 9 منافذ قراءة و4 منافذ كتابة و32 مدخلًا، تم تنفيذه بتقنية 0.7 ميكرومتر، ويمكن رؤيته بوضوح عند النظر إلى الشريحة من مسافة بعيدة.
هناك طريقتان شائعتان لتقسيم السجلات إلى ملفات سجلات متعددة، وهما تكوين ملف السجل الموزع وتكوين ملف السجل المقسم. [ 4 ]
من حيث المبدأ، يمكن تنفيذ أي عملية باستخدام ملف سجلات بعرض 64 بت مع منافذ قراءة وكتابة متعددة، باستخدام ملف سجلات واحد بعرض 8 بت مع منفذ قراءة واحد ومنفذ كتابة واحد. مع ذلك، فإن التوازي على مستوى البت في ملفات السجلات العريضة ذات المنافذ المتعددة يسمح لها بالعمل بسرعة أكبر بكثير، وبالتالي، يمكنها تنفيذ عمليات في دورة واحدة كانت ستستغرق دورات عديدة مع عدد أقل من المنافذ أو عرض بت أضيق أو كليهما.
عادةً ما يكون عرض ملف السجلات بالبتات مساويًا لعدد البتات في حجم كلمة المعالج . وفي بعض الأحيان، يكون العرض أكبر قليلًا لإضافة بتات "إضافية" لكل سجل، مثل بت السم. إذا كان عرض كلمة البيانات مختلفًا عن عرض العنوان - أو في بعض الحالات، مثل معالج 68000 ، حتى عندما يكون عرضهما متساويًا - فإن سجلات العناوين تكون في ملف سجلات منفصل عن سجلات البيانات.
جهاز فك التشفير
- غالباً ما يتم تقسيم جهاز فك التشفير إلى جهاز ما قبل فك التشفير وجهاز فك التشفير نفسه.
- وحدة فك التشفير عبارة عن سلسلة من بوابات AND التي تقوم بتشغيل خطوط الكلمات.
- يوجد مُفكِّك شفرة واحد لكل منفذ قراءة أو كتابة. فإذا كانت المصفوفة تحتوي على أربعة منافذ قراءة ومنفذي كتابة، على سبيل المثال، فسيكون لديها ستة أسطر كلمات لكل خلية بت في المصفوفة، وست بوابات AND لكل صف في مُفكِّك الشفرة. تجدر الإشارة إلى أنه يجب أن يكون مُفكِّك الشفرة مُطابقًا لنطاق المصفوفة، مما يُجبر بوابات AND هذه على أن تكون عريضة وقصيرة.
المصفوفة

المخطط الأساسي لخلية البت:
- يتم تخزين الحالة في زوج من العاكسات.
- يتم قراءة البيانات بواسطة ترانزستور NMOS إلى خط البت.
- تتم كتابة البيانات عن طريق توصيل أحد الجانبين بالأرض من خلال مجموعة من اثنين من ترانزستورات NMOS.
- لذا: منافذ القراءة تتطلب ترانزستورًا واحدًا لكل خلية بت، ومنافذ الكتابة تتطلب أربعة.
هناك العديد من التحسينات الممكنة:
- مشاركة الخطوط بين الخلايا، على سبيل المثال، Vdd و Vss.
- غالبًا ما يتم شحن خطوط قراءة البت مسبقًا إلى قيمة تتراوح بين Vdd و Vss.
- غالبًا ما تتأرجح خطوط قراءة البتات جزءًا صغيرًا فقط من المسافة إلى Vdd أو Vss. يقوم مضخم الإشارة بتحويل هذه الإشارة ذات التأرجح الصغير إلى مستوى منطقي كامل. تتميز الإشارات ذات التأرجح الصغير بسرعة أكبر لأن خط البتات لديه قدرة دفع منخفضة ولكن سعة طفيلية كبيرة.
- قد تكون خطوط بت الكتابة متشابكة، بحيث تتصل بالتساوي بخطوط بت القراءة المجاورة. ولأن خطوط بت الكتابة تعمل بكامل طاقتها، فقد تُسبب اضطرابات كبيرة في خطوط بت القراءة.
- إذا كان جهد التغذية (Vdd) خطًا أفقيًا، فيمكن إيقاف تشغيله، بواسطة وحدة فك تشفير أخرى، إذا كانت أي من منافذ الكتابة تكتب على هذا الخط خلال تلك الدورة. هذا التحسين يزيد من سرعة الكتابة.
- تُعد التقنيات التي تقلل من الطاقة التي تستخدمها ملفات التسجيل مفيدة في الإلكترونيات منخفضة الطاقة . [ 5 ]
البنية الدقيقة
لا تتضمن معظم ملفات التسجيل أي إجراءات خاصة لمنع منافذ الكتابة المتعددة من الكتابة إلى نفس المدخل في وقت واحد. بدلاً من ذلك، يضمن جهاز جدولة التعليمات أن تقوم تعليمة واحدة فقط في أي دورة معينة بالكتابة إلى مدخل معين. إذا تم إصدار تعليمات متعددة تستهدف نفس السجل، فسيتم تعطيل تمكين الكتابة لجميعها باستثناء واحدة.
تستغرق العاكسات المتقاطعة فترة زمنية محددة للاستقرار بعد عملية الكتابة، وخلال هذه الفترة، قد تستغرق عملية القراءة وقتًا أطول أو تُرجع بيانات غير صالحة. من الشائع وجود مُضاعِفات تجاوز تُحوّل البيانات المكتوبة إلى منافذ القراءة عند إصدار أمر قراءة وكتابة متزامنة لنفس المدخل. غالبًا ما تكون مُضاعِفات التجاوز هذه جزءًا من شبكة تجاوز أكبر تُعيد توجيه النتائج التي لم تُعتمد بعد بين الوحدات الوظيفية.
عادةً ما تتم مطابقة ملف التسجيل مع مسار البيانات الذي يخدمه. تمنع مطابقة التسجيل مرور العديد من الحافلات فوق مسار البيانات عند المنعطفات، مما يستهلك مساحة كبيرة. ولكن بما أن كل وحدة يجب أن يكون لها نفس تباعد البتات، فإن كل وحدة في مسار البيانات ينتهي بها الأمر بتباعد بتات مفروض من قبل أوسع وحدة، مما قد يهدر مساحة في الوحدات الأخرى. غالبًا ما يمكن لملفات التسجيل، نظرًا لاحتوائها على سلكين لكل بت لكل منفذ كتابة، ولأن جميع خطوط البتات يجب أن تتصل بالسيليكون عند كل خلية بت، أن تحدد تباعد مسار البيانات.
يمكن أحيانًا توفير مساحة في الأجهزة التي تحتوي على وحدات متعددة في مسار البيانات عن طريق وجود مسارين متجاورين، لكل منهما مسافة بت أصغر من تلك الموجودة في مسار بيانات واحد. عادةً ما تتطلب هذه الحالة نسخًا متعددة من ملف التسجيل، نسخة لكل مسار بيانات.
على سبيل المثال، كانت معمارية ألفا 21264 (EV6) أول معمارية دقيقة كبيرة الحجم تُطبّق "معمارية ملف السجل الظلي". احتوت هذه المعمارية على نسختين من ملف سجل الأعداد الصحيحة ونسختين من سجل الفاصلة العائمة في واجهتها الأمامية (ملف المستقبل وملف القياس، يحتوي كل منهما على منفذي قراءة ومنفذي كتابة)، واستغرقت دورة إضافية لنقل البيانات بينهما أثناء تبديل السياق. سعت منطق الإصدار إلى تقليل عدد عمليات نقل البيانات بين الملفين، مما حسّن أداء الأعداد الصحيحة بشكل كبير، وساعد في تقليل تأثير العدد المحدود من سجلات الأغراض العامة في المعماريات فائقة القياس ذات التنفيذ التخميني. وقد تم اعتماد هذا التصميم لاحقًا في معمارية SPARC و MIPS وبعض تطبيقات x86 اللاحقة.
يستخدم معالج MIPS ملفات سجلات متعددة أيضًا. تحتوي وحدة الفاصلة العائمة R8000 على نسختين من ملف سجلات الفاصلة العائمة، لكل منهما أربعة منافذ كتابة وأربعة منافذ قراءة، وتكتب النسختين معًا باستخدام تبديل السياق. مع ذلك، لم تكن تدعم عمليات الأعداد الصحيحة، وظل ملف سجلات الأعداد الصحيحة دون تغيير. لاحقًا، ونظرًا لمتطلبات سوق الأنظمة المدمجة، تم التخلي عن ملفات السجلات الظلية في التصاميم الأحدث.
يستخدم معالج SPARC بنية "ملف سجلات الظل" في طرازاته المتطورة. يحتوي هذا المعالج على ما يصل إلى أربع نسخ من ملفات سجلات الأعداد الصحيحة (المستقبلية، والمتقاعدة، والمُقاسة، والمُهملة، وتحتوي كل منها على سبعة منافذ قراءة وأربعة منافذ كتابة) ونسختين من ملف سجلات الأعداد العشرية. مع ذلك، وعلى عكس معالجي Alpha و x86، تقع هذه السجلات في الجزء الخلفي من المعالج كوحدة تقاعد مباشرة بعد وحدة معالجة التعليمات خارج الترتيب ووحدة إعادة تسمية السجلات. لا تقوم سجلات الظل بتحميل التعليمات أثناء مراحل جلب التعليمات وفك تشفيرها، وبالتالي فإن تبديل السياق غير ضروري في هذا التصميم.
تستخدم IBM نفس آلية العديد من المعالجات الدقيقة الرئيسية، حيث تدمج ملف التسجيلات مع وحدة فك التشفير بشكل كامل، إلا أن ملفات التسجيلات تعمل بشكل مستقل عن وحدة فك التشفير ولا تتضمن تبديل السياق، وهو ما يختلف عن معالجات Alpha و x86. لا تقتصر وظيفة معظم ملفات التسجيلات على وحدة فك التشفير المخصصة لها فحسب، بل تمتد لتشمل مستوى الخيوط. على سبيل المثال، يحتوي معالج POWER8 على ما يصل إلى ثماني وحدات فك تشفير للتعليمات، ولكنه يحتوي أيضًا على ما يصل إلى 32 ملف تسجيل، كل منها يحتوي على 32 سجلًا للأغراض العامة (أربعة منافذ قراءة وأربعة منافذ كتابة) لتسهيل تعدد الخيوط المتزامن ، حيث لا يمكن استخدام تعليماته المتوازية عبر أي ملف تسجيل آخر لعدم وجود تبديل سياق.
في سلسلة معالجات x86 ، لم يكن لدى وحدة المعالجة المركزية النموذجية قبل معالج 486 ملف سجلات منفصل، حيث كانت جميع سجلات الأغراض العامة تعمل مباشرةً مع وحدة فك التشفير، وكان مكدس x87 موجودًا داخل وحدة الفاصلة العائمة نفسها. بدءًا من معالج بنتيوم ، تم دمج معالج x86 النموذجي المتوافق مع بنتيوم بنسخة واحدة من ملف سجلات معمارية أحادي المنفذ يحتوي على 6 سجلات للأغراض العامة، و4 سجلات تحكم، و8 سجلات تصحيح الأخطاء (اثنان منها محجوزان)، وسجل مؤشر مكدس واحد، وسجل قاعدة مكدس واحد، ومؤشر تعليمات واحد، وسجل أعلام واحد، و6 سجلات قطاعات.
لم تكن المعالجات مزودة بسجلات مخصصة لتقنية MMX ، لذا استخدمت إنتل مكدس الدفع الخاص بمعالجات x87. إلا أن هذا أدى إلى عدم إمكانية استخدام وحدة معالجة الفاصلة العائمة (FPU) أثناء استخدام MMX ، واضطر المعالج إلى تنفيذ التعليمات بشكل مستقل. في معالج P6، يمكن تخزين التعليمات وتنفيذها بشكل مستقل ومتوازٍ في المراحل الأولى من خط الأنابيب قبل فك تشفيرها إلى عمليات دقيقة وإعادة تسميتها في التنفيذ خارج الترتيب. بدءًا من P6 ، لم تعد ملفات السجلات تتطلب دورة إضافية لنقل البيانات، حيث توجد ملفات السجلات، مثل ملفات السجلات المعمارية وملفات الفاصلة العائمة، بين مخزن التعليمات البرمجية ووحدات فك التشفير، وتُسمى "مخزن التقاعد" و"مخزن إعادة الترتيب" و"التنفيذ خارج الترتيب"، وهي متصلة ضمن ناقل الحلقة (16 بايت). لا يزال ملف السجل نفسه عبارة عن ملف سجل x86 واحد ومكدس x87 واحد، وكلاهما يعمل كمخزن للتقاعد. تم توسيع ملف سجل x86 ليصبح ثنائي المنافذ لزيادة عرض النطاق الترددي لتخزين النتائج. تم فصل سجلات مثل debug/condition code/control/unnamed/flag من ملف السجلات الرئيسي ووضعها في ملفات منفصلة بين ذاكرة القراءة فقط (ROM) الخاصة بالعمليات الدقيقة ووحدة تسلسل التعليمات. أما السجلات غير القابلة للوصول، مثل سجل القطاع، فهي الآن منفصلة عن ملف السجلات العامة (باستثناء مؤشر التعليمات)؛ وتقع بين المجدول ومخصص التعليمات، لتسهيل إعادة تسمية السجلات وتنفيذ التعليمات خارج الترتيب. تم دمج مكدس x87 لاحقًا مع ملف سجلات الفاصلة العائمة بعد ظهور سجل XMM ذي 128 بت في معالج Pentium III، ولكن لا يزال ملف سجل XMM منفصلاً عن ملفات سجلات الأعداد الصحيحة x86.
قدمت تطبيقات P6 اللاحقة (Pentium M، Yonah) "بنية ملف سجلات الظل" التي توسعت لتشمل نسختين من ملفات سجلات معمارية ثنائية المنافذ للأعداد الصحيحة، وتتضمن تبديل السياق (بين الملف المستقبلي والملف المُتقاعد والملف المُوسّع باستخدام نفس الحيلة المستخدمة بين الأعداد الصحيحة والأعداد العشرية). تم ذلك لحل مشكلة عنق الزجاجة في السجلات التي كانت موجودة في بنية x86 بعد إدخال دمج العمليات الدقيقة، ولكنها لا تزال تحتوي على ثمانية سجلات معمارية 32 بت بإجمالي سعة 32 بايت لكل ملف (يبقى سجل القطاع ومؤشر التعليمات داخل الملف، على الرغم من عدم إمكانية الوصول إليهما من قِبل البرنامج) كملف تخميني. يُستخدم الملف الثاني كملف سجلات ظل مُوسّع، والذي لا يستطيع تخزين بعض التعليمات بشكل مستقل بدون تبديل السياق. تتطلب بعض التعليمات من SSE2/SSE3/SSSE3 هذه الميزة لإجراء العمليات على الأعداد الصحيحة، فعلى سبيل المثال، تتطلب تعليمات مثل PSHUFB وPMADDUBSW وPHSUBW وPHSUBD وPHSUBSW وPHADDW وPHADDD وPHADDSW تحميل EAX/EBX/ECX/EDX من كلا ملفي السجلات، على الرغم من أنه كان من غير الشائع أن يستخدم معالج x86 ملف سجلات آخر لنفس التعليمات. في أغلب الأحيان، يُستخدم الملف الثاني كملف سجلات مُهمل. لا تزال بنية Pentium M تحتوي على ملف سجلات نقطة عائمة ثنائي المنافذ (ثمانية مداخل MM/XMM) مشترك بين ثلاثة وحدات فك تشفير، ولا يحتوي ملف سجلات النقطة العائمة على ملف سجلات ظل، لأن بنية ملف سجلات الظل لم تكن تتضمن وظائف النقطة العائمة. في المعالجات اللاحقة لـ P6، تكون ملفات سجلات البنية خارجية وتقع في الجزء الخلفي من المعالج بعد ملف السجلات المُهمل، على عكس ملف السجلات الداخلي الموجود في النواة الداخلية لمخزن إعادة تسمية/إعادة ترتيب السجلات. مع ذلك، في معالج Core 2، أصبح هذا الجزء موجودًا ضمن وحدة تُسمى "جدول أسماء السجلات البديلة" (RAT)، ويقع مع مُخصِّص التعليمات، لكن حجم السجلات فيه هو نفسه حجمها في الإصدار السابق. زاد معالج Core 2 ناقل الحلقة الداخلية إلى 24 بايت (للسماح بفك تشفير أكثر من ثلاث تعليمات)، ووسّع ملف السجلات من منفذين (قراءة واحدة/كتابة واحدة) إلى أربعة منافذ (قراءتان/كتابتان). لا يزال عدد السجلات ثمانية في 32 بت و32 بايت (باستثناء ستة سجلات قطاعية ومؤشر تعليمات واحد، حيث لا يمكن الوصول إليها في الملف بواسطة أي كود/تعليمات)، ويتوسع إلى 16 في x64 ليصبح الحجم الإجمالي للملف 128 بايت. في معالج Pentium M، زاد منفذ خط الأنابيب ووحدة فك التشفير، لكنهما موجودان الآن مع جدول المُخصِّص بدلًا من مخزن التعليمات. كما تم زيادة ملف سجل FP XMM الخاص به إلى أربعة منافذ (اثنان للقراءة/اثنان للكتابة)، ولا تزال السجلات عند ثمانية إدخالات في 32 بت وتم توسيعها إلى 16 إدخالًا في وضع x64.
في تطبيقات x86 اللاحقة، مثل معالجات Nehalem وما بعدها، دُمجت سجلات الأعداد الصحيحة وسجلات الفاصلة العائمة في ملف سجلات عام موحد ثماني المنافذ (ستة للقراءة واثنان للكتابة) (8 + 8 في 32 بت و16 + 16 في x64 لكل ملف)، بينما تم توسيع ملف السجلات إلى اثنين مع "بنية ملف سجلات الظل" المحسّنة لدعم تنفيذ تعدد الخيوط المتزامنة ، حيث يستخدم كل خيط ملفات سجلات مستقلة لفك تشفيره. لاحقًا، استبدلت معالجات Sandy Bridge وما بعدها جدول سجلات الظل وسجلات البنية بملف سجلات فعلي أكبر بكثير وأكثر تطورًا قبل التشفير إلى مخزن إعادة الترتيب.
كان خط Atom بمثابة مراجعة حديثة ومبسطة لمعالج P5. يتضمن نسخًا منفردة من ملف السجلات المشتركة بين الخيوط ووحدة فك التشفير. يتميز ملف السجلات بتصميم ثنائي المنافذ، حيث تم دمج سجلات GPR ذات 8/16 مدخلًا، وسجل تصحيح الأخطاء ذي 8/16 مدخلًا، ورمز الحالة ذي 8/16 مدخلًا في نفس الملف. ومع ذلك، يحتوي على سجل ظل ذي 8 مداخل و64 بت، وسجل غير مسمى ذي 8 مداخل و64 بت، وهما منفصلان الآن عن سجلات GPR الرئيسية، على عكس تصميم P5 الأصلي. يقع هذا الملف بعد وحدة التنفيذ، وهو أحادي المنفذ ولا يتعرض للتعليمات مثل ملفات سجلات الظل المُوسّعة الموجودة في معالجات Core/Core2 (تتكون ملفات سجلات الظل من سجلات معمارية، ولم تُنفذها Bonnell لعدم امتلاكها "معمارية ملف سجل الظل")، ومع ذلك، يمكن استخدام الملف لأغراض إعادة التسمية نظرًا لعدم وجود تنفيذ خارج الترتيب في معمارية Bonnell. كما يحتوي على نسخة واحدة من ملف سجل الفاصلة العائمة XMM لكل خيط. يختلف معالج Bonnell عن معالج Nehalem في أنه لا يمتلك ملف سجلات موحدًا، ولا ملف سجلات مخصصًا لتقنية تعدد الخيوط المتزامنة. بدلًا من ذلك، يستخدم Bonnell سجل إعادة تسمية منفصلًا لخيوطه، على الرغم من أنها ليست خارج الترتيب. وعلى غرار Bonnell، يمتلك كل من معالجي Larrabee و Xeon Phi ملف سجلات واحد فقط للأعداد الصحيحة للأغراض العامة، ولكن Larrabee يحتوي على ما يصل إلى 16 ملف سجلات XMM (ثمانية إدخالات لكل ملف)، بينما يحتوي Xeon Phi على ما يصل إلى 128 ملف سجلات AVX-512، يحتوي كل منها على 32 سجل ZMM سعة 512 بت لتخزين تعليمات المتجهات، والتي قد تصل سعتها إلى حجم ذاكرة التخزين المؤقت من المستوى الثاني (L2).
هناك بعض خطوط معالجات x86 الأخرى من إنتل التي لا تحتوي على ملف سجلات في تصميمها الداخلي، مثل Geode GX و Vortex86 ، والعديد من المعالجات المدمجة غير المتوافقة مع بنتيوم أو التي تم هندستها عكسيًا من معالجات 80x86 المبكرة. لذلك، لا تحتوي معظم هذه المعالجات على ملف سجلات لفك التشفير، ولكن يتم استخدام سجلات GPR الخاصة بها بشكل فردي. من ناحية أخرى، لا يحتوي بنتيوم 4 (المبني على بنية NetBurst الدقيقة) على ملف سجلات لفك التشفير، حيث لم تكن سجلات GPR الخاصة به موجودة ضمن بنيته، وذلك بسبب إدخال ملف سجلات موحد فعلي لإعادة التسمية. وهو مشابه لمعالجات Sandy Bridge، ولكنه يختلف عنها قليلاً بسبب عدم قدرة بنتيوم 4 على استخدام السجل قبل التسمية. بدلاً من ذلك، يستخدم SSE لتنفيذ وتخزين الأعداد الصحيحة قبل وحدة الحساب والمنطق وبعد النتيجة؛ كما يستخدم SSE2/SSE3/SSSE3 الآلية نفسها لعمليات الأعداد الصحيحة.
لا تحتوي التصاميم المبكرة لشركة AMD ، مثل K6، على ملف سجلات مثل معالجات Intel، ولا تدعم "بنية ملف السجلات الظلية" نظرًا لافتقارها إلى مفتاح تبديل السياق وعاكس التجاوز اللازمين لعمل ملف السجلات بشكل صحيح. بدلاً من ذلك، تستخدم AMD سجلات عامة منفصلة (GPRs) ترتبط مباشرةً بجدول سجلات إعادة التسمية لوحدة المعالجة المركزية OoOE، مع مُفكِّك مخصص للأعداد الصحيحة ومُفكِّك للأعداد العشرية. تشبه هذه الآلية آلية معالجات Intel السابقة لسلسلة Pentium. على سبيل المثال، يحتوي معالج K6 على أربعة ملفات سجلات للأعداد الصحيحة (ملف سجلات مؤقتة مُخدشة من ثمانية مداخل، وملف سجلات مستقبلية من ثمانية مداخل، وملف سجلات مُستجلبة من ثمانية مداخل، وملف سجلات غير مُسمى من ثمانية مداخل) وملفي سجلات لإعادة تسمية الأعداد العشرية (ملفان x87 ST من ثمانية مداخل، أحدهما مُرتبط بـ FADD والآخر بـ FMOV) يرتبطان مباشرةً بسجل EAX x86 لإعادة تسمية الأعداد الصحيحة، وسجل XMM0 لإعادة تسمية الأعداد العشرية. لاحقًا، أضافت معالجات Athlon "سجلًا ظليًا" في واجهتها الأمامية. يتم توسيع نطاقها إلى ملف سجلات موحد يحتوي على 40 مدخلاً لإجراء عمليات الأعداد الصحيحة بالتسلسل قبل فك التشفير. يحتوي ملف السجلات على ثمانية مداخل: سجل مؤقت + 16 سجلًا عامًا مستقبليًا + 16 سجلًا عامًا غير مُسمى. في تصميمات AMD اللاحقة، تم التخلي عن تصميم السجل الظلي لصالح بنية K6 مع تصميم السجلات العامة الفردية المرتبطة مباشرةً. وكما هو الحال في Phenom ، يحتوي على ثلاثة ملفات سجلات للأعداد الصحيحة وملفين لسجلات SSE موجودة في ملف السجلات الفعلي المرتبط مباشرةً بالسجلات العامة. ومع ذلك، يتم تقليصه إلى سجل واحد للأعداد الصحيحة وسجل واحد للفاصلة العائمة في Bulldozer . وكما هو الحال في تصميمات AMD المبكرة، استخدمت معظم شركات تصنيع x86 مثل Cyrix وVIA وDM&P وSIS الآلية نفسها، مما أدى إلى نقص في أداء الأعداد الصحيحة بدون إعادة تسمية السجلات لوحدات المعالجة المركزية الخاصة بهم ذات التسلسل. اضطرت شركات مثل Cyrix وAMD إلى زيادة حجم ذاكرة التخزين المؤقت على أمل تقليل عنق الزجاجة. تعمل عمليات الأعداد الصحيحة SSE في AMD بطريقة مختلفة عن Core 2 وPentium 4. يستخدم هذا النظام سجلًا منفصلاً لإعادة تسمية الأعداد الصحيحة لتحميل القيمة مباشرةً قبل مرحلة فك التشفير. على الرغم من أنه نظريًا يحتاج إلى مسار معالجة أقصر من تطبيق SSE من إنتل، إلا أن تكلفة التنبؤ بالتفرع أعلى بكثير، ونسبة الخطأ أكبر، ويستغرق تنفيذ تعليمات SSE دورتين على الأقل بغض النظر عن عرض التعليمات، حيث لم تكن تطبيقات AMD المبكرة قادرة على تنفيذ كل من الأعداد العشرية والصحيحة في مجموعة تعليمات SSE كما فعل تطبيق إنتل.
على عكس معالجات ألفا ، وسبارك ، وميبس التي تسمح بتحميل/جلب معامل واحد فقط من ملف سجلات واحد في كل مرة، والتي تتطلب ملفات سجلات متعددة لتحقيق المعالجة الفائقة، فإن معالج ARM لا يدمج ملفات سجلات متعددة لتحميل/جلب التعليمات. لا توجد وظيفة محددة لسجلات الأغراض العامة (GPRs) في معالج ARM ضمن مجموعة التعليمات (لا تتطلب بنية مجموعة تعليمات ARM نقاط تراكم، أو فهرسة، أو مكدس/قاعدة. لا يمكن استخدام نقطة القاعدة/المكدس إلا في وضع Thumb). يتمثل الاختلاف الرئيسي بين ARM والتصاميم الأخرى في أن ARM يسمح بالعمل على نفس سجلات الأغراض العامة مع تبديل سريع بين البنوك دون الحاجة إلى ملف سجلات إضافي في المعالجة الفائقة. على الرغم من أن معالجات x86 تشترك مع معالجات ARM في آلية تخزين البيانات في سجلاتها العامة (GPRs) بشكل فردي، إلا أن x86 ستواجه مشكلة تبعية البيانات إذا تم تخزين أكثر من ثلاث تعليمات غير مترابطة، وذلك لأن عدد سجلاتها العامة في كل ملف صغير جدًا (ثمانية في وضع 32 بت و16 في وضع 64 بت، مقارنةً بـ 13 في وضع 32 بت و31 في وضع 64 بت في معالجات ARM) بالنسبة للبيانات، ومن المستحيل تحقيق المعالجة فائقة التوازي دون وجود ملفات سجلات متعددة لتغذية وحدة فك التشفير. وبالمقارنة، فإن كود x86 كبير ومعقد مقارنةً بكود ARM. فقد أصبحت معظم واجهات x86 الأمامية أكبر حجمًا وأكثر استهلاكًا للطاقة من معالجات ARM للمنافسة (مثال: Pentium M وCore 2 Duo وBay Trail). بل إن بعض معالجات x86 المكافئة من جهات خارجية أصبحت غير قادرة على منافسة ARM لافتقارها إلى بنية ملفات سجلات مخصصة. خاصةً بالنسبة لشركات AMD وCyrix وVIA التي لا تستطيع تقديم أداء معقول دون إعادة تسمية السجلات وتنفيذ العمليات خارج الترتيب، مما جعل معالج Intel Atom المعالج الوحيد من نوع x86 الذي يعمل بنظام التنفيذ المتسلسل في سوق الأجهزة المحمولة. استمر هذا الوضع حتى قام معالج Nehalem x86 بدمج سجلات الأعداد الصحيحة والفاصلة العائمة في ملف واحد، بالإضافة إلى إدخال جدول سجلات فيزيائي كبير وجدول تخصيص مُحسَّن في واجهته الأمامية قبل إعادة التسمية في نواته الداخلية التي تعمل بنظام التنفيذ خارج الترتيب.
إعادة تسمية السجل
يمكن للمعالجات التي تُجري إعادة تسمية السجلات أن تُهيئ كل وحدة وظيفية للكتابة إلى مجموعة فرعية من ملف السجلات الفعلي. يُغني هذا الترتيب عن الحاجة إلى منافذ كتابة متعددة لكل خلية بت، مما يُوفر مساحة كبيرة. يستفيد ملف السجلات الناتج، وهو في الواقع عبارة عن مجموعة من ملفات السجلات ذات منافذ كتابة فردية، من النسخ وتقسيم منافذ القراءة. في أقصى حالاته، ستضع هذه التقنية مجموعة من ملفات السجلات (ملف كتابة واحد وملف قراءة اثنين) عند مداخل كل وحدة وظيفية. ولأن ملفات السجلات ذات عدد قليل من المنافذ غالبًا ما تشغل مساحة كبيرة من الترانزستور، فمن الأفضل عدم استخدام هذه التقنية إلى هذا الحد، ولكنها تظل مفيدة.
سجل النوافذ
تُعرّف بنية مجموعة تعليمات SPARC نوافذ السجلات ، حيث تشير الأسماء المعمارية ذات الخمسة بتات للسجلات إلى نافذة في ملف سجلات أكبر بكثير، يحتوي على مئات المدخلات. يتطلب تنفيذ ملفات سجلات متعددة المنافذ تحتوي على مئات المدخلات مساحة كبيرة. تنزلق نافذة السجلات بمقدار 16 سجلاً عند تحريكها، بحيث يمكن لكل اسم سجل معماري أن يشير إلى عدد قليل فقط من السجلات في المصفوفة الأكبر، على سبيل المثال، يمكن للسجل المعماري r20 أن يشير فقط إلى السجلات الفعلية #20، #36، #52، #68، #84، #100، #116، إذا كان هناك سبع نوافذ فقط في الملف الفعلي.
لتوفير المساحة، تستخدم بعض معالجات SPARC ملف سجلات مكونًا من 32 مدخلًا، حيث تحتوي كل خلية على سبعة "بتات". يمكن قراءة وكتابة بت واحد فقط عبر المنافذ الخارجية، ولكن يمكن تدوير محتويات هذه البتات. يُنجز التدوير في دورة واحدة حركة نافذة السجل. ولأن معظم الأسلاك التي تُنفذ حركة الحالة محلية، يُمكن تحقيق نطاق ترددي هائل باستهلاك طاقة منخفض.
تُستخدم هذه التقنية نفسها في ملف تعيين إعادة تسمية سجلات R10000 ، الذي يخزن رقم سجل افتراضي مكون من 6 بتات لكل سجل فعلي. في ملف إعادة التسمية، يتم حفظ حالة إعادة التسمية عند كل تفرع، بحيث يمكن استعادة حالة إعادة التسمية السابقة في دورة واحدة عند اكتشاف خطأ في التنبؤ بالتفرع. (انظر: إعادة تسمية السجلات ).
انظر أيضاً
مراجع
- 1 2 باترسون، ديفيد؛ هينيسي، جون ل. تنظيم وتصميم الحاسوب: واجهة الأجهزة/البرمجيات ( الطبعة الثالثة). دار مورغان كوفمان للنشر. ISBN 1-55860-604-1.
- ↑ ويكي بوكس: تصميم المعالج الدقيق/ملف التسجيل#بنك التسجيل .
- ↑ "دليل مرجعي لهندسة ARM" (ملف PDF) . شركة ARM المحدودة. يوليو 2005. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 22 أكتوبر 2021. تم الاطلاع عليه بتاريخ 13 أكتوبر 2021 .
- 1 2 يوهان جانسن. "استراتيجيات المترجم للهياكل التي يتم تشغيلها بواسطة النقل" . 2001. ص 169. ص 171-173.
- ↑ "ملفات التسجيل ذات النقل غير المتماثل الموفرة للطاقة" بقلم أنيش أغاروال و م. فرانكلين. 2003.
روابط خارجية
- اعتبارات تصميم ملفات التسجيل في المعالجات المجدولة ديناميكيًا - فاركاس، جوبي ، تشاو - 1995
- هندسة الحاسوب
- الإلكترونيات الرقمية
- السجلات الرقمية
