UDB. ما هذا؟ الجزء 4. Datapath ALU



كما وعدنا آخر مرة ، بدأنا في تحليل مفصل لوحدة الحساب والمنطق (ALU).

المحتوى العام للدورة "UDB. ما هذا؟ "
الجزء 1. مقدمة. Pld.
الجزء 2. Datapath.
الجزء 3. Datapath FIFO.
الجزء 4. Datapath ALU. (المادة الحالية)
الجزء 5. Datapath. أشياء صغيرة مفيدة.
الجزء 6. وحدة الإدارة والحالة.
الجزء 7. توقيت وإعادة ضبط وحدة التحكم
الجزء 8. معالجة UDB

21.3.2.4 Datapath ALU


يتكون ALU core من ثلاث وظائف مستقلة قابلة للبرمجة من 8 بت: كتلة حسابية / منطقية ، وكتلة سجل إزاحة وكتلة تراكب قناع.

العمليات الحسابية والمنطقية


يتم عرض وظائف ALU المحددة ديناميكيًا باستخدام ذاكرة الوصول العشوائي للتكوين في الجدول أدناه.

الجدول 21-8. وظائف ALU
فونك [2: 0]وظيفةالعملية
000تمرsrca
001INC++ srca
010ديسمبر- srca
011أضفsrca + srcb
100SUBsrca - srcb
101Xorsrca ^ srcb
110وsrca & srcb
111أوsrca | srcb

تحمل في


حمل في يستخدم في العمليات الحسابية. كما هو موضح في الجدول 21-9 ، توجد قيم ترحيل افتراضية لوظائف معينة.

الجدول 21-9. وظائف تحمل في.
وظائفالعمليةكاري الافتراضي في التنفيذ
INC++ srcasrca + 00h + ci ، حيث ci هي 1
ديسمبر- srcasrca + ffh + ci ، حيث ci هي 0
أضفsrca + srcbsrca + srcb + ci ، حيث ci هي 0
SUBsrca - srcbsrca + ~ srcb + ci ، حيث ci هي 1

بالإضافة إلى هذه التطبيقات الحسابية العادية ، هناك ثلاثة خيارات أخرى لاستخدام الواصلة. تقوم بتات CI SELA و CI SELB بتعيين قواعد استخدام الإدخال المنقول لكل قياس. التكوين الحيوي RAM يختار التكوين A أو B في كل دورة. ترد المعلمات في الجدول 21-10.

الجدول 21-10. ميزات إضافية كاري في.
CI SEL A
CI SEL B
الوضع
تحمل
الوصف
00افتراضيا
(افتراضي)
الوضع الحسابي افتراضيا ،
الموصوفة في الجدول 21-9.
01يستقر
(مسجل)
حمل العلم وهو
نتيجة النقل من الدورة السابقة.
يستخدم هذا الوضع لتنفيذ
الاستمرار في وطرح العمليات
مع الاحتلال.
10Probros
(موجه)
يتم إنشاء نقل في مكان آخر.
وأحيل إلى هذا المدخل. هذا الوضع
يمكن استخدامها لتنفيذ
عدادات المدارة.
11تسلسل
(بالسلاسل)
يتم وضع النقل في السلسلة بعد
datapath السابق. هذا الوضع يمكن
استخدامها لتنفيذ دورة واحدة
عمليات أعلى معدل بت ،
حيث يتم استخدام اثنين أو أكثر
Datapath.

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

الجدول 21-11. تتبع كاري في الميزات.
وظيفةقطبية تحمل فيكاري في نشطكاري في غير نشط
INCمباشرة++ srcasrca
ديسمبرمعكوس- srcasrca
أضفمباشرة(srca + srcb) +1srca + srcb
SUBمعكوس(srca - srcb) -1(srca - srcb)

نفذ


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

الجدول 21-12. ميزات تنفيذ.
وظيفةقطبية تنفيذتنفيذ نشطةتنفيذ غير نشط
INCمباشرة++ srca == 0srca
ديسمبرمعكوس- srca == -1srca
أضفمباشرةsrca + srcb> 255srca + srcb
SUBمعكوسsrca - srcb <0(srca - srcb)

هيكل النقل


ترد في الشكل 21-15 المعلمات الحاملة للاختيار الأكثر أهمية ، ولإنشاء التوليد. يمكن استخدام قيم التنفيذ المقفلة كحمولة لعمليات حسابية لاحقة. يمكن استخدام هذه الميزة لتنفيذ وظائف ذات سعة أعلى باستخدام الدورات.



الشكل 21-15. نقل العملية.

عملية التحول


تحدث عملية النقل بشكل مستقل عن تشغيل ALU ، وفقًا للجدول 21-13.

الجدول 21-13. وظائف عملية التحول.
التحول [1: 0]وظيفة
00تمر
01التحول اليسار
10التحول الصحيح
11مبادلة Nibbles (Nibble Swap)

يتم إصدار قيمة الإخراج لعملية التحول مع Datapath. يتم تكوين مخرجات التحول إلى اليمين ( sor ) وإلى اليسار ( sol_msb ) بنفس البتات. تحدد بت التكوين الثابت (SHIFT SEL في السجل CFG15) أي تحويل إزاحة يُستخدم كمخرج Datapath. في حالة عدم وجود تحول ، يتم تعريف الإشارات sor و sol_msb على أنها LSB و MSB لوظيفة ALU ، على التوالي.

تحدد بتات التكوين SI SELA و SI SELB إزاحة البيانات للعملية المحددة. التكوين الديناميكي RAM يختار التكوين A أو B لكل دورة على مدار الساعة. يتم استخدام البيانات المدفوعة فقط عند التبديل لليسار واليمين ، لا يتم استخدام هذا الإدخال عند تخطي وإعادة ترتيب القضم. تتعلق القيم المحددة وحالات الاستخدام بكل من الإزاحة اليمنى والإزاحة اليسرى ، وتظهر في الجدول 21-14.

الجدول 21-14. التحول في وظائف
SI SEL A
SI SEL B
المصدر
دفعت
البيانات
الوصف
00الافتراضي / الحساب
(الافتراضي / الحساب)
بشكل افتراضي ، قيمة بت DEFSI
(ثابت 1 أو 0). ومع ذلك ، إذا تم استنباط MSB SI ،
ثم المصدر هو قيمة المحدد
أمر عالي المستوى ALU (فقط للتحولات الصحيحة).
01المفاجئة
(مسجل)
يتم تعيين قيمة المدخلات لهذا التحول
قيمة الانتاج مغلق الحالية
القص (من الدورة السابقة). العملية
التحول الأيسر يستخدم القيمة الأخيرة
التحول الأيسر. يستخدم التحول الصحيح العملية
تحول الانتاج الماضي الصحيح.
10Probros
(موجه)
يصل مدخلات التحول
خارجيا ، من خلال موارد التتبع (إدخال SI).
11تسلسل
(بالسلاسل)
لإدخال اليسار التحول
يلقي من خروج الكتلة الصحيحة
Datapath في سلسلة ، لتحويل التحول
إلى اليمين - من اليسار.

يتم إخراج الإخراج عند التبديل إلى اليسار من البت المحدد على أنه مرتفع. عند التحويل إلى اليمين ، يتم ضغط بيانات الإدخال من موضع كبار (MSB) المحدد. الإخراج ، حتى عند التبديل إلى اليسار ، حتى عند التبديل إلى اليمين ، مغلق ويمكن استخدامه في القياس التالي. يمكن استخدام هذه الميزة لتنفيذ تحول بسعة أكبر في دورات متعددة.



الشكل 21-16. عملية التحول.

تجدر الإشارة إلى أن البتات المعزولة باختيار MSB لا تزال متغيرة. في المثال الموضح ، لا تزال البتة 7 تنتقل إلى sil عندما تنتقل إلى اليمين ، وتنتقل البتة 5 إلى البتة 4 عندما تنتقل إلى اليسار. سيتم فقد جزء الإخراج (اليمين أو اليسار) لمجموعة معزولة.

ALU عملية تراكب القناع


يُعرّف سجل القناع 8 بت في المساحة الثابتة لسجلات تكوين UDB عملية التقنيع. في هذه العملية ، يتم تثبيت قناع (AND العملية) بقيمة هذا السجل على إخراج ALU. الاستخدام النموذجي لعملية تقنيع ALU هو تطبيق الموقتات والعدادات المستقلة ذات الدقة التي تتضاعف قوة اثنين.

21.3.2.5. مدخلات Datapath و Multiplexing


كما هو موضح في الجدول 21-15 ، يحتوي كل Datapath على 9 مدخلات ، بما في ذلك 6 مدخلات من تتبع القناة. وتشمل هذه عناوين التكوين من ذاكرة الوصول العشوائي ، FIFO ، إشارات التحكم لتحميل سجلات البيانات ، وكذلك نقل ونقل مدخلات البيانات.

الجدول 24-15. مدخلات Datapath
تسجيل الدخولالوصف
RAD2
RAD1
RAD0
عنوان غير متزامن في ذاكرة الوصول العشوائي التكوين. العناوين
ثماني كلمات برمجة 16 بت للمستخدم. كل كلمة
يحتوي على بتات التحكم Datapath للحلقة الحالية. تسلسل
تعليمات يمكن تحديدها من خلال هذه المدخلات العنوان.
F0ld
F1LD
إذا تم إعدادها في هذه الدورة ، فسيتم تحميل البيانات في FIFO المحدد
من البطارية A0 أو A1 ، أو الإخراج من ALU. المصدر المحدد
باستخدام وحدات بت التكوين Fx INSEL [1: 0]. هذا الإدخال حساس للتأرجحات.
يتم أخذ العينات في Datapath. عند الكشف عن الانتقال
من "0" إلى "1" ، يحدث التحميل على الحافة التالية لإشارة الساعة.
D0ld
D1LD
إذا تم إعدادها في هذه الحلقة ، فسيتم تحميل سجل Dx من
المرتبطة FIFO FX. هذا الإدخال حساس للتأرجحات. يتم أخذ العينات
Datapath عند اكتشاف الانتقال من "0" إلى "1" ، التحميل
يحدث على الحافة التالية لإشارة الساعة.
SIهذه هي قيمة إدخال البيانات التي يمكن استخدامها للتبديل
اليمين أو اليسار.
سييتم استخدام هذه القيمة المحمولة إذا كانت إشارة التحكم
نقل يساوي "حمل توجيه".

كما هو مبين في الشكل 21-17 ، يحتوي كل إدخال على معدد 6 في 1 ، وبالتالي ، فإن جميع المدخلات قابلة للتبادل. تتم معالجة المدخلات بطريقتين: إما حسب المستوى أو عن طريق الفرق. العنوان في ذاكرة الوصول العشوائي للتكوين الديناميكي ، وكذلك القيم التحول والبيانات حساسة للمستوى. FIFO وتحميل إشارات بيانات السجل حساسة للاختلافات.



الشكل 21-17. إشارات إدخال Datapath.

في المقالة التالية ، سننتقل إلى مراجعة الأشياء الصغيرة المفيدة.

Source: https://habr.com/ru/post/ar437096/


All Articles