بنية مُفعَّلة بالنقل
في هندسة الحاسوب ، تُعدّ بنية النقل المُفعّلة ( TTA ) نوعًا من تصميم المعالجات حيث تتحكم البرامج مباشرةً في ناقلات النقل الداخلية للمعالج. وتحدث العمليات الحسابية كنتيجة ثانوية لنقل البيانات: فكتابة البيانات في منفذ التفعيل لوحدة وظيفية يُفعّل هذه الوحدة لبدء عملية حسابية. وهذا يُشبه ما يحدث في المصفوفة الانقباضية . وبفضل بنيتها المعيارية، تُعدّ بنية النقل المُفعّلة (TTA) نموذجًا مثاليًا للمعالجات ذات مجموعات التعليمات الخاصة بالتطبيقات ( ASIP ) مع مسار بيانات مُخصّص، ولكن دون جمود التصميم وتكاليفه الباهظة التي تُصاحب مُسرّعات الأجهزة ذات الوظائف الثابتة.
عادةً ما يحتوي المعالج المُشغَّل بنقل البيانات (TTA) على عدة ناقلات نقل ووحدات وظيفية متعددة متصلة بها، مما يتيح إمكانية التوازي على مستوى التعليمات . ويُحدد المبرمج هذا التوازي بشكل ثابت. من هذا المنطلق (وبالطبع بسبب عرض كلمة التعليمات الكبير)، يُشبه تصميم TTA تصميم كلمة التعليمات الطويلة جدًا (VLIW). تتكون كلمة تعليمات TTA من عدة خانات، خانة واحدة لكل ناقل، وتُحدد كل خانة نقل البيانات الذي يتم على الناقل المقابل. يتيح هذا التحكم الدقيق بعض التحسينات غير الممكنة في المعالجات التقليدية. على سبيل المثال، يمكن للبرمجيات نقل البيانات مباشرةً بين الوحدات الوظيفية دون استخدام المسجلات.
يكشف تشغيل النقل عن بعض تفاصيل البنية الدقيقة التي عادةً ما تكون مخفية عن المبرمجين. يُبسط هذا بشكل كبير منطق التحكم في المعالج، لأن العديد من القرارات التي تُتخذ عادةً أثناء التشغيل تُحدد أثناء الترجمة . مع ذلك، يعني هذا أيضًا أن ملفًا ثنائيًا مُترجمًا لمعالج TTA معين لن يعمل على معالج آخر دون إعادة ترجمة إذا كان هناك اختلاف ولو بسيط في البنية بينهما. مشكلة عدم توافق الملفات الثنائية، بالإضافة إلى تعقيد تنفيذ تبديل السياق الكامل، تجعل معالجات TTA أكثر ملاءمة للأنظمة المدمجة منها للحوسبة العامة.
من بين جميع بنى الكمبيوتر ذات مجموعة التعليمات الواحدة ، تعد بنية TTA واحدة من البنى القليلة التي تم بناء معالجات تعتمد عليها، وهي الوحيدة التي يتم بيع معالجات تعتمد عليها تجاريًا.
مزايا مقارنة ببنى VLIW
يمكن اعتبار بنى TTA بمثابة بنى VLIW ذات مسار بيانات مكشوف. فبينما تُبرمج VLIW باستخدام العمليات، تُقسّم TTA تنفيذ العملية إلى عمليات نقل متعددة . يُتيح نموذج البرمجة منخفض المستوى العديد من المزايا مقارنةً بـ VLIW القياسي. على سبيل المثال، تُوفر بنية TTA توازيًا أكبر مع ملفات سجلات أبسط من VLIW. ولأن المبرمج يتحكم في توقيت نقل بيانات المعامل والنتيجة، فلا داعي لتعديل تعقيد ملف السجلات (RF) (عدد منافذ الإدخال والإخراج) وفقًا لأسوأ سيناريو لإصدار/إكمال التعليمات المتوازية المتعددة.
تُعرف إحدى أهم تقنيات تحسين البرمجيات الفريدة التي تُتيحها برمجة النقل باسم " تجاوز البرمجيات" . في حالة تجاوز البرمجيات، يتجاوز المبرمج عملية الكتابة إلى ملف السجلات بنقل البيانات مباشرةً إلى منافذ المعاملات في الوحدة الوظيفية التالية. عند تطبيق هذا التحسين بكثافة، يُمكن الاستغناء عن عملية النقل الأصلية التي تنقل النتيجة إلى ملف السجلات، مما يُقلل الضغط على منافذ ملف السجلات ويُتيح استخدام سجل عام لمتغيرات مؤقتة أخرى. يُؤدي انخفاض الضغط على السجلات ، بالإضافة إلى تبسيط التعقيد المطلوب لأجهزة الترددات اللاسلكية، إلى توفير كبير في طاقة وحدة المعالجة المركزية ، وهي ميزة مهمة خاصة في الأنظمة المدمجة المحمولة. [ 1 ] [ 2 ]
بناء
تتكون معالجات TTA من وحدات وظيفية مستقلة وملفات تسجيل ، والتي يتم توصيلها بحافلات النقل والمقابس .

وحدة وظيفية
تُنفّذ كل وحدة وظيفية عملية واحدة أو أكثر ، والتي تُنفّذ وظائف تتراوح من جمع بسيط للأعداد الصحيحة إلى حسابات معقدة وعشوائية خاصة بالتطبيق يحددها المستخدم. يتم نقل معاملات العمليات عبر منافذ الوحدة الوظيفية .
قد تحتوي كل وحدة وظيفية على مسار معالجة مستقل . في حال كانت الوحدة الوظيفية تعمل بنظام مسار معالجة كامل ، يمكن بدء عملية جديدة تستغرق عدة دورات ساعة لإتمامها في كل دورة ساعة. من ناحية أخرى، قد يكون مسار المعالجة غير قادر على قبول طلبات بدء عمليات جديدة أثناء تنفيذ عملية سابقة.
تتم إدارة الوصول إلى ذاكرة البيانات والتواصل مع خارج المعالج باستخدام وحدات وظيفية خاصة. تُسمى الوحدات الوظيفية التي تُنفذ عمليات الوصول إلى الذاكرة وتتصل بوحدة الذاكرة عادةً بوحدات التحميل/التخزين .
وحدة التحكم
وحدة التحكم هي حالة خاصة من وحدات الوظائف، تتحكم في تنفيذ البرامج. تتمتع وحدة التحكم بإمكانية الوصول إلى ذاكرة التعليمات لجلب التعليمات المراد تنفيذها. وللسماح للبرامج المنفذة بالانتقال (القفز) إلى أي موضع في البرنامج، توفر وحدة التحكم عمليات التحكم في التدفق. عادةً ما تحتوي وحدة التحكم على مسار تعليمات ، يتكون من مراحل لجلب تعليمات البرنامج وفك تشفيرها وتنفيذها.
ملفات التسجيل
تحتوي ملفات التسجيل على سجلات للأغراض العامة ، تُستخدم لتخزين المتغيرات في البرامج. ومثل وحدات الوظائف، تحتوي ملفات التسجيل أيضًا على منافذ إدخال وإخراج. ويختلف عدد منافذ القراءة والكتابة، أي القدرة على قراءة وكتابة سجلات متعددة في دورة ساعة واحدة، من ملف تسجيل لآخر.
حافلات النقل والمقابس
تتألف بنية الربط البيني من ناقلات نقل متصلة بمنافذ وحدات الوظائف عبر مقابس . ونظرًا لتكلفة الاتصال، يُعتاد تقليل عدد الوصلات بين الوحدات (وحدات الوظائف وملفات التسجيل). ويُقال إن بنية الربط البيني متصلة بالكامل إذا كان هناك مسار من منفذ إخراج كل وحدة إلى منافذ إدخال كل وحدة.
توفر المقابس وسيلة لبرمجة معالجات TTA من خلال السماح بتحديد اتصالات ناقل البيانات بالمنفذ التي يتم تفعيلها في أي لحظة. وبالتالي، يمكن برمجة عمليات نقل البيانات التي تتم خلال دورة الساعة بتحديد اتصال منفذ المصدر والوجهة المراد تفعيله لكل ناقل بيانات.
التنفيذ المشروط
تدعم بعض تطبيقات TTA التنفيذ المشروط .
يتم تنفيذ التنفيذ المشروط باستخدام الحراس . يمكن جعل كل عملية نقل بيانات مشروطة بواسطة حارس، متصل بسجل (غالبًا سجل شرطي أحادي البت ) وبناقل بيانات. في حال كانت قيمة السجل المحمي خاطئة (صفر)، يتم تجاهل عملية نقل البيانات المبرمجة للناقل المتصل به الحارس ، أي لا تُكتب إلى وجهتها. أما عمليات نقل البيانات غير المشروطة فلا تتصل بأي حارس، ويتم تنفيذها دائمًا.
الفروع
تتضمن جميع المعالجات، بما في ذلك معالجات TTA، تعليمات التحكم في التدفق التي تُغير عداد البرنامج، والتي تُستخدم لتنفيذ الإجراءات الفرعية ، وعبارات if-then-else ، وحلقات for ، وما إلى ذلك. وتتضمن لغة التجميع لمعالجات TTA عادةً تعليمات التحكم في التدفق مثل التفرعات غير المشروطة (JUMP)، والتفرعات النسبية المشروطة (BNZ)، واستدعاء الإجراءات الفرعية (CALL)، والعودة المشروطة (RETNZ)، وما إلى ذلك، والتي تبدو مماثلة لتعليمات لغة التجميع المقابلة للمعالجات الأخرى.
مثل جميع العمليات الأخرى على آلة TTA، يتم تنفيذ هذه التعليمات كتعليمات "نقل" إلى وحدة وظائف خاصة.
يمكن لتطبيقات TTA التي تدعم التنفيذ المشروط، مثل sTTAck والنموذج الأولي الأول لـ MOVE، تنفيذ معظم تعليمات التحكم في التدفق هذه كعملية نقل مشروطة إلى عداد البرنامج. [ 3 ] [ 4 ]
تتميز تطبيقات TTA التي تدعم فقط نقل البيانات غير المشروط، مثل Maxim Integrated MAXQ، [ 5 ] عادةً بوحدة وظائف خاصة متصلة ارتباطًا وثيقًا بعداد البرنامج، وتستجيب لمجموعة متنوعة من عناوين الوجهة. لكل عنوان من هذه العناوين، عند استخدامه كوجهة لعملية "نقل"، تأثير مختلف على عداد البرنامج؛ إذ أن لكل تعليمة "تفرع نسبي < شرط > " عنوان وجهة مختلف لكل شرط؛ وتُستخدم عناوين وجهة أخرى مثل CALL وRETNZ، إلخ.
برمجة
في بنى المعالجات التقليدية، تتم برمجة المعالج عادةً بتحديد العمليات المنفذة ومعاملاتها. على سبيل المثال، قد تبدو تعليمة الجمع في بنية RISC كما يلي.
أضف r3، r1، r2
تجمع هذه العملية قيم المسجلين العامين r1 و r2، وتخزن النتيجة في المسجل r3. بشكل عام، يؤدي تنفيذ هذه التعليمات في المعالج إلى ترجمتها إلى إشارات تحكم تتحكم في وصلات شبكة الربط البيني ووحدات الوظائف. تُستخدم شبكة الربط البيني لنقل القيم الحالية للمسجلين r1 و r2 إلى وحدة الوظائف القادرة على تنفيذ عملية الجمع، والتي تُسمى غالبًا وحدة الحساب والمنطق (ALU). أخيرًا، تقوم إشارة تحكم بتحديد عملية الجمع في وحدة الحساب والمنطق وتفعيلها، ثم تُنقل النتيجة إلى المسجل r3.
لا تُحدد برامج TTA العمليات نفسها، بل تُحدد فقط عمليات نقل البيانات اللازمة لكتابة وقراءة قيم المعاملات. يتم تفعيل العملية نفسها بكتابة البيانات إلى معامل التفعيل الخاص بها. وبالتالي، تُنفذ العملية كنتيجة ثانوية لعملية نقل البيانات المُفعِّلة. لذلك، يتطلب تنفيذ عملية جمع في TTA ثلاثة تعريفات لنقل البيانات، تُسمى أيضًا عمليات نقل . تُحدد عملية النقل نقاط نهاية لنقل البيانات الذي يتم في ناقل النقل. على سبيل المثال، يمكن أن تُحدد عملية النقل أن نقل البيانات من وحدة الوظائف F، المنفذ 1، إلى ملف التسجيل R، فهرس التسجيل 2، يجب أن يتم في الناقل B1. في حال وجود عدة نواقل في المعالج المستهدف، يمكن استخدام كل ناقل بالتوازي في دورة الساعة نفسها. وبالتالي، من الممكن استغلال التوازي على مستوى نقل البيانات عن طريق جدولة عدة عمليات نقل بيانات في نفس التعليمة.
يمكن تنفيذ عملية الجمع في معالج TTA على النحو التالي:
r1 -> ALU.operand1 r2 -> ALU.add.trigger نتيجة وحدة الحساب والمنطق -> r3
الخطوة الثانية، وهي كتابة القيمة إلى المعامل الثاني لوحدة الحساب والمنطق (ALU)، تُفعّل عملية الجمع. وهذا يجعل نتيجة الجمع متاحة في منفذ الإخراج "result" بعد زمن استجابة عملية "add".
قد تعمل المنافذ المرتبطة بوحدة الحساب والمنطق كمجمع ، مما يسمح بإنشاء تعليمات ماكرو تجرد TTA الأساسية:
lda r1 ; "تحميل وحدة الحساب والمنطق": نقل القيمة إلى معامل وحدة الحساب والمنطق 1. add r2 ; add: نقل القيمة إلى مُشغّل الجمع. sta r3 ; "تخزين وحدة الحساب والمنطق": نقل القيمة من نتيجة وحدة الحساب والمنطق.زمن استجابة العملية المرئي للمبرمج
تتمثل الفلسفة الأساسية لتقنيات المعالجة المتزامنة (TTAs) في نقل التعقيد من المكونات المادية إلى البرمجيات. ونتيجةً لذلك، يواجه المبرمج العديد من المخاطر الإضافية، منها فترات التأخير ، وهي زمن استجابة العمليات المرئي للمبرمج في وحدات الوظائف. تقع مسؤولية التوقيت بالكامل على عاتق المبرمج، حيث يتعين عليه جدولة التعليمات بحيث لا تُقرأ النتيجة مبكرًا جدًا ولا متأخرًا جدًا. لا يوجد نظام كشف في المكونات المادية لإيقاف المعالج في حال قراءة النتيجة مبكرًا جدًا. على سبيل المثال، لنفترض بنية تحتوي على عملية جمع بزمن استجابة 1، وعملية ضرب بزمن استجابة 3. عند بدء عملية الجمع ، يمكن قراءة النتيجة في التعليمة التالية (دورة الساعة التالية)، ولكن في حالة الضرب ، يجب الانتظار حتى تنفيذ تعليمتين قبل قراءة النتيجة. تصبح النتيجة جاهزة للتعليمة الثالثة بعد تعليمة البدء.
تؤدي قراءة النتيجة مبكرًا جدًا إلى قراءة نتيجة عملية سابقة، أو في حال عدم وجود أي عملية سابقة في وحدة الوظيفة، تكون القيمة المقروءة غير مُعرَّفة. من جهة أخرى، يجب قراءة النتيجة مبكرًا بما يكفي لضمان عدم استبدال نتيجة العملية التالية للنتيجة غير المقروءة في منفذ الإخراج.
نظراً لوفرة سياق المعالج المرئي للمبرمج، والذي يشمل عملياً، بالإضافة إلى محتويات ملفات التسجيل، محتويات سجلات خط أنابيب وحدة الوظائف و/أو منافذ الإدخال والإخراج لوحدة الوظائف، فإن حفظ السياق اللازم لدعم المقاطعات الخارجية قد يصبح معقداً ومكلفاً في معالج TTA. لذلك، لا تدعم معالجات TTA عادةً المقاطعات، بل تُوكل مهمتها إلى جهاز خارجي (مثل معالج الإدخال/الإخراج) أو يُستغنى عنها باستخدام آلية مزامنة/اتصال بديلة مثل الاستقصاء.
التطبيقات
- يُعدّ MAXQ [ 6 ] [ 5 ] [ 7 ] من شركة Maxim Integrated ، وهو المتحكم الدقيق الوحيد المتاح تجاريًا والمبني على بنية مُشغّلة بالنقل، حاسوبًا من نوع OISC أو " حاسوب مجموعة التعليمات الواحدة ". يُقدّم هذا المتحكم تعليمة MOVE واحدة ، وإن كانت مرنة، والتي يُمكنها أن تعمل كتعليمات افتراضية متنوعة عن طريق نقل القيم مباشرةً إلى عداد البرنامج .
- قام مشروع "النقل" بتصميم وتصنيع العديد من المعالجات الدقيقة التجريبية بتقنية TTA.
- OpenASIP عبارة عن مجموعة أدوات مفتوحة المصدر خاصة بمجموعة التعليمات الخاصة بالتطبيقات، وتستخدم TTA كقالب للمعالج.
- تتميز بنية جهاز Amiga Copper بجميع السمات الأساسية لبنية يتم تشغيلها بواسطة النقل.
- معالج Able الذي طورته شركة New England Digital .
- الحاسوب القائم على تقنية WireWorld .
- نشرت مجلة دكتور دوبز برنامج One-Der، وهو برنامج تجميعي ثلاثي الأبعاد (TTA) ذو 32 بت مكتوب بلغة Verilog مع مُجمِّع متقاطع ومترجم Forth متوافقين. [ 8 ] [ 9 ]
- معالج الرؤوس Mali (200/400) ، يستخدم كلمة تعليمات 128 بت أحادية الدقة ذات الفاصلة العائمة TTA .
انظر أيضاً
مراجع
- ↑ V. Guzma، P. Jääskeläinen، P. Kellomäki، و J. Takala، "تأثير تجاوز البرامج على التوازي على مستوى التعليمات وتسجيل حركة الملفات"
- ↑ يوهان جانسن. "استراتيجيات المترجم للهياكل التي يتم تشغيلها بواسطة النقل" مؤرشف في 2020-08-06 في Wayback Machine . 2001. ص 168.
- ↑ هينك كوربورال. "دراسة البنى المُفعّلة بالنقل لتطبيقات الأغراض العامة" . ص 6.
- ↑ ألياكسي ف. تشابيزينكا. "STTack: بنية نقل المكدس المُفعّلة" مؤرشفة في 2016-03-05 في آلة Wayback .
- 1 2 "دليل مستخدم عائلة MAXQ" . شركة ماكسيم إنتجريتد . القسم "1.1 مجموعة التعليمات".
تسمح بنية تعتمد على السجلات وتُفعَّل بنقل البيانات بترميز جميع التعليمات كعمليات نقل بسيطة. تُختزل جميع التعليمات إما إلى كتابة قيمة فورية في سجل الوجهة أو موقع الذاكرة، أو إلى نقل البيانات بين السجلات و/أو مواقع الذاكرة.
- ↑ كاتسوليس، جون (2005)، تصميم الأجهزة المدمجة ( الطبعة الثانية)، دار نشر أورايلي ميديا ، الصفحات 327-333 ، رقم ISBN 978-0-596-00755-3
- ↑ "مقدمة إلى بنية MAXQ" . ماكسيم إنتجريتد . الوصول المركزي إلى الموارد (يتضمن مخطط خريطة النقل). مؤرشف من الأصل بتاريخ 15 مايو 2022. تم الاطلاع عليه بتاريخ 15 مايو 2022 .
- ↑ "مقال دكتور دوب حول معالج FPGA ذي 32 بت مكتوب بلغة فيريلوج" . مؤرشف من الأصل بتاريخ 23 يناير 2010. تم الاطلاع عليه بتاريخ 18 نوفمبر 2009 .
- ↑ "موقع إلكتروني يحتوي على مزيد من التفاصيل حول وحدة المعالجة المركزية من دكتور دوب" . تم الاطلاع عليه بتاريخ 25-11-2010 .
روابط خارجية
- مشروع MOVE: التوليف التلقائي للمعالجات الخاصة بالتطبيقات (يمكن الوصول إليه من خلال Wayback Machine)
- مزايا البنى التي يتم تشغيلها بواسطة النقل
- معمارية المعالجات الدقيقة من VLIW إلى TTA (مؤرشفة بتاريخ 3 مارس 2016 على موقع Wayback Machine)
- مقال استعراضي عن بايت
- هندسة الحاسوب
- معالجة التعليمات
